@pcircle/memesh 4.2.6 → 4.2.8

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 (86) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.de.md +106 -2
  4. package/README.es.md +106 -2
  5. package/README.fr.md +106 -2
  6. package/README.ja.md +106 -2
  7. package/README.ko.md +106 -2
  8. package/README.md +89 -3
  9. package/README.pt.md +106 -2
  10. package/README.th.md +124 -6
  11. package/README.vi.md +106 -2
  12. package/README.zh-CN.md +105 -2
  13. package/README.zh-TW.md +105 -2
  14. package/dashboard/dist/index.html +7 -7
  15. package/dist/cli/view-live.d.ts.map +1 -1
  16. package/dist/cli/view-live.js +3 -1
  17. package/dist/cli/view-live.js.map +1 -1
  18. package/dist/core/analytics.d.ts +0 -31
  19. package/dist/core/analytics.d.ts.map +1 -1
  20. package/dist/core/analytics.js +0 -59
  21. package/dist/core/analytics.js.map +1 -1
  22. package/dist/core/config.d.ts +0 -1
  23. package/dist/core/config.d.ts.map +1 -1
  24. package/dist/core/config.js +25 -4
  25. package/dist/core/config.js.map +1 -1
  26. package/dist/core/digest-validator.d.ts +1 -1
  27. package/dist/core/digest-validator.d.ts.map +1 -1
  28. package/dist/core/digest-validator.js +7 -2
  29. package/dist/core/digest-validator.js.map +1 -1
  30. package/dist/core/doctor.d.ts +6 -0
  31. package/dist/core/doctor.d.ts.map +1 -1
  32. package/dist/core/doctor.js +121 -5
  33. package/dist/core/doctor.js.map +1 -1
  34. package/dist/core/dreamer.d.ts.map +1 -1
  35. package/dist/core/dreamer.js.map +1 -1
  36. package/dist/core/embedder.d.ts +1 -0
  37. package/dist/core/embedder.d.ts.map +1 -1
  38. package/dist/core/embedder.js +14 -2
  39. package/dist/core/embedder.js.map +1 -1
  40. package/dist/core/extractor.d.ts.map +1 -1
  41. package/dist/core/extractor.js +10 -1
  42. package/dist/core/extractor.js.map +1 -1
  43. package/dist/core/failure-analyzer.d.ts.map +1 -1
  44. package/dist/core/failure-analyzer.js +16 -2
  45. package/dist/core/failure-analyzer.js.map +1 -1
  46. package/dist/core/install-hooks.d.ts +6 -0
  47. package/dist/core/install-hooks.d.ts.map +1 -1
  48. package/dist/core/install-hooks.js +37 -0
  49. package/dist/core/install-hooks.js.map +1 -1
  50. package/dist/core/llm-telemetry.d.ts +12 -0
  51. package/dist/core/llm-telemetry.d.ts.map +1 -1
  52. package/dist/core/llm-telemetry.js +21 -3
  53. package/dist/core/llm-telemetry.js.map +1 -1
  54. package/dist/core/operations.d.ts +5 -0
  55. package/dist/core/operations.d.ts.map +1 -1
  56. package/dist/core/operations.js +16 -0
  57. package/dist/core/operations.js.map +1 -1
  58. package/dist/core/paths.d.ts +2 -0
  59. package/dist/core/paths.d.ts.map +1 -1
  60. package/dist/core/paths.js +43 -0
  61. package/dist/core/paths.js.map +1 -1
  62. package/dist/core/project-tags.d.ts +20 -0
  63. package/dist/core/project-tags.d.ts.map +1 -0
  64. package/dist/core/project-tags.js +42 -0
  65. package/dist/core/project-tags.js.map +1 -0
  66. package/dist/core/schema-export.d.ts.map +1 -1
  67. package/dist/core/schema-export.js +17 -1
  68. package/dist/core/schema-export.js.map +1 -1
  69. package/dist/core/skill-usage-log.d.ts +1 -1
  70. package/dist/core/skill-usage-log.d.ts.map +1 -1
  71. package/dist/core/skill-usage-log.js +2 -2
  72. package/dist/core/skill-usage-log.js.map +1 -1
  73. package/dist/core/verifier.d.ts.map +1 -1
  74. package/dist/core/verifier.js +1 -6
  75. package/dist/core/verifier.js.map +1 -1
  76. package/dist/skills-manifest.json +10 -10
  77. package/dist/transports/cli/cli.js +156 -9
  78. package/dist/transports/cli/cli.js.map +1 -1
  79. package/dist/transports/http/server.d.ts.map +1 -1
  80. package/dist/transports/http/server.js +7 -1
  81. package/dist/transports/http/server.js.map +1 -1
  82. package/package.json +1 -1
  83. package/scripts/hooks/_shared.js +79 -3
  84. package/scripts/hooks/pre-compact.js +32 -8
  85. package/scripts/hooks/session-start.js +168 -17
  86. package/scripts/hooks/session-summary.js +137 -23
@@ -1 +1 @@
1
- {"version":3,"file":"view-live.d.ts","sourceRoot":"","sources":["../../src/cli/view-live.ts"],"names":[],"mappings":"AAwBA,wBAAgB,yBAAyB,IAAI,MAAM,CA4nElD"}
1
+ {"version":3,"file":"view-live.d.ts","sourceRoot":"","sources":["../../src/cli/view-live.ts"],"names":[],"mappings":"AAwBA,wBAAgB,yBAAyB,IAAI,MAAM,CA8nElD"}
@@ -423,7 +423,9 @@ export function generateLiveDashboardHtml() {
423
423
  var isLight = document.body.classList.contains('light');
424
424
  themeBtn.textContent = isLight ? '\\ud83c\\udf19' : '\\u2600\\ufe0f';
425
425
  localStorage.setItem('memesh-theme', isLight ? 'light' : 'dark');
426
- try { apiCall('POST', '/v1/config', { theme: isLight ? 'light' : 'dark' }); } catch (_) {}
426
+ // Theme is persisted client-side in localStorage only. An earlier
427
+ // POST /v1/config { theme } wrote a config.theme that nothing ever
428
+ // read back; removed with that dead field.
427
429
  // Update graph label colors if graph has been rendered
428
430
  var newLabelColor = isLight ? '#09090b' : '#fafafa';
429
431
  var graphWrap = document.getElementById('graph-svg-wrap');
@@ -1 +1 @@
1
- {"version":3,"file":"view-live.js","sourceRoot":"","sources":["../../src/cli/view-live.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view-live.js","sourceRoot":"","sources":["../../src/cli/view-live.ts"],"names":[],"mappings":"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"}
@@ -4,26 +4,6 @@ export interface HealthFactor {
4
4
  weight: number;
5
5
  detail: string;
6
6
  }
7
- export interface RecallEffectiveness {
8
- overallHitRate: number;
9
- totalHits: number;
10
- totalMisses: number;
11
- trackedEntities: number;
12
- topEffective: Array<{
13
- name: string;
14
- type: string;
15
- hits: number;
16
- misses: number;
17
- hitRate: number;
18
- }>;
19
- mostIgnored: Array<{
20
- name: string;
21
- type: string;
22
- hits: number;
23
- misses: number;
24
- hitRate: number;
25
- }>;
26
- }
27
7
  export declare const NOISE_TYPES: Set<string>;
28
8
  export type AgeBucket = 'week' | 'month' | 'quarter' | 'older';
29
9
  export interface AgeMatrixEntry {
@@ -58,17 +38,6 @@ export interface AnalyticsResult {
58
38
  created: number;
59
39
  recalled: number;
60
40
  }>;
61
- valueMetrics: {
62
- totalRecalls: number;
63
- lessonCount: number;
64
- lessonsWithWarnings: number;
65
- typeDistribution: unknown[];
66
- };
67
- recallEffectiveness: RecallEffectiveness | null;
68
- cleanup: {
69
- staleEntities: unknown[];
70
- duplicateCandidates: unknown[];
71
- };
72
41
  ageMatrix: AgeMatrixEntry[];
73
42
  knowledgeRadar: KnowledgeRadarEntry[];
74
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/core/analytics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/core/analytics.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,eAAO,MAAM,WAAW,aAGtB,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IAGzB,cAAc,EAAE,MAAM,CAAC;IAEvB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAI9C,YAAY,EAAE,aAAa,GAAG,gCAAgC,CAAC;CAChE;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE;QACb,QAAQ,EAAE,YAAY,CAAC;QACvB,OAAO,EAAE,YAAY,CAAC;QACtB,SAAS,EAAE,YAAY,CAAC;QACxB,OAAO,EAAE,YAAY,CAAC;KACvB,CAAC;IACF,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,cAAc,EAAE,mBAAmB,EAAE,CAAC;CACvC;AAOD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,eAAe,CA0MvE;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE;QACR,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,EAAE;QACT,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,aAAa,EAAE;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAMD,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,UAAU,SAAK,GACd,iBAAiB,CA8DnB"}
@@ -63,62 +63,6 @@ export function computeAnalytics(db) {
63
63
  }
64
64
  }
65
65
  const timeline = Array.from(timelineMap.values()).sort((a, b) => a.date.localeCompare(b.date));
66
- const totalRecalls = db.prepare("SELECT COALESCE(SUM(access_count), 0) as c FROM entities").get().c;
67
- const lessonsWithWarnings = db.prepare("SELECT COUNT(*) as c FROM entities WHERE type = 'lesson_learned' AND access_count > 0").get().c;
68
- const typeDistribution = db.prepare("SELECT type, COUNT(*) as count FROM entities GROUP BY type ORDER BY count DESC").all();
69
- const valueMetrics = {
70
- totalRecalls,
71
- lessonCount,
72
- lessonsWithWarnings,
73
- typeDistribution,
74
- };
75
- const staleEntities = db.prepare(`
76
- SELECT id, name, type, confidence,
77
- CAST((julianday('now') - julianday(COALESCE(last_accessed_at, created_at))) AS INTEGER) as days_unused
78
- FROM entities
79
- WHERE status = 'active'
80
- AND confidence < 0.4
81
- AND (last_accessed_at IS NULL OR last_accessed_at < datetime('now', '-30 days'))
82
- ORDER BY confidence ASC
83
- LIMIT 10
84
- `).all();
85
- const duplicateCandidates = db.prepare(`
86
- SELECT e1.name as name1, e2.name as name2, e1.type
87
- FROM entities e1
88
- JOIN entities e2 ON e1.id < e2.id AND e1.type = e2.type
89
- WHERE e1.status = 'active' AND e2.status = 'active'
90
- AND (INSTR(LOWER(e1.name), LOWER(e2.name)) > 0 OR INSTR(LOWER(e2.name), LOWER(e1.name)) > 0)
91
- LIMIT 5
92
- `).all();
93
- const cleanup = { staleEntities, duplicateCandidates };
94
- let recallEffectiveness = null;
95
- try {
96
- const recallColCheck = db.prepare("PRAGMA table_info(entities)").all();
97
- if (recallColCheck.some((c) => c.name === 'recall_hits')) {
98
- const totals = db.prepare(`SELECT COALESCE(SUM(recall_hits), 0) as hits, COALESCE(SUM(recall_misses), 0) as misses,
99
- COUNT(*) as tracked FROM entities WHERE (recall_hits > 0 OR recall_misses > 0)`).get();
100
- const total = totals.hits + totals.misses;
101
- const overallHitRate = total > 0 ? totals.hits / total : 0;
102
- const topEffective = db.prepare(`SELECT name, type, COALESCE(recall_hits, 0) as hits, COALESCE(recall_misses, 0) as misses,
103
- CAST(COALESCE(recall_hits, 0) AS REAL) / (COALESCE(recall_hits, 0) + COALESCE(recall_misses, 0)) as hitRate
104
- FROM entities WHERE (COALESCE(recall_hits, 0) + COALESCE(recall_misses, 0)) > 0
105
- ORDER BY hitRate DESC, hits DESC LIMIT 5`).all();
106
- const mostIgnored = db.prepare(`SELECT name, type, COALESCE(recall_hits, 0) as hits, COALESCE(recall_misses, 0) as misses,
107
- CAST(COALESCE(recall_hits, 0) AS REAL) / (COALESCE(recall_hits, 0) + COALESCE(recall_misses, 0)) as hitRate
108
- FROM entities WHERE (COALESCE(recall_hits, 0) + COALESCE(recall_misses, 0)) > 0
109
- ORDER BY hitRate ASC, misses DESC LIMIT 5`).all();
110
- recallEffectiveness = {
111
- overallHitRate,
112
- totalHits: totals.hits,
113
- totalMisses: totals.misses,
114
- trackedEntities: totals.tracked,
115
- topEffective,
116
- mostIgnored,
117
- };
118
- }
119
- }
120
- catch {
121
- }
122
66
  const ageMatrixRaw = db.prepare(`
123
67
  SELECT type,
124
68
  CASE
@@ -196,9 +140,6 @@ export function computeAnalytics(db) {
196
140
  healthFactors,
197
141
  loopMetric,
198
142
  timeline,
199
- valueMetrics,
200
- recallEffectiveness,
201
- cleanup,
202
143
  ageMatrix,
203
144
  knowledgeRadar,
204
145
  };
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/core/analytics.ts"],"names":[],"mappings":"AA4BA,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IACjC,kBAAkB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB;IACjE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB;CAC1D,CAAC,CAAC;AA0DH,MAAM,UAAU,gBAAgB,CAAC,EAAqB;IAEpD,MAAM,WAAW,GAAI,EAAE,CAAC,OAAO,CAC7B,4DAA4D,CAC7D,CAAC,GAAG,EAAe,CAAC,CAAC,CAAC;IAEvB,MAAM,gBAAgB,GAAI,EAAE,CAAC,OAAO,CAClC,gHAAgH,CACjH,CAAC,GAAG,EAAe,CAAC,CAAC,CAAC;IACvB,MAAM,aAAa,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3E,MAAM,cAAc,GAAI,EAAE,CAAC,OAAO,CAChC,iFAAiF,CAClF,CAAC,GAAG,EAAe,CAAC,CAAC,CAAC;IACvB,MAAM,YAAY,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAExE,MAAM,WAAW,GAAI,EAAE,CAAC,OAAO,CAC7B,mFAAmF,CACpF,CAAC,GAAG,EAAe,CAAC,CAAC,CAAC;IACvB,MAAM,cAAc,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtF,MAAM,WAAW,GAAI,EAAE,CAAC,OAAO,CAC7B,kEAAkE,CACnE,CAAC,GAAG,EAAe,CAAC,CAAC,CAAC;IACvB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAEnD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,aAAa,GAAG,EAAE,GAAG,YAAY,GAAG,EAAE,GAAG,cAAc,GAAG,EAAE,GAAG,WAAW,GAAG,EAAE,CAChF,CAAC;IAEF,MAAM,aAAa,GAAG;QACpB,QAAQ,EAAE;YACR,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC;YACrC,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,GAAG,gBAAgB,IAAI,WAAW,2CAA2C;SACtF;QACD,OAAO,EAAE;YACP,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC;YACpC,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,GAAG,cAAc,IAAI,WAAW,wCAAwC;SACjF;QACD,SAAS,EAAE;YACT,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC;YACtC,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,GAAG,WAAW,yBAAyB;SAChD;QACD,OAAO,EAAE;YACP,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;YACnC,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,GAAG,WAAW,kBAAkB;SACzC;KACF,CAAC;IAGF,MAAM,eAAe,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;GAMlC,CAAC,CAAC,GAAG,EAA6C,CAAC;IAEpD,MAAM,gBAAgB,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;GAMnC,CAAC,CAAC,GAAG,EAA8C,CAAC;IAErD,MAAM,WAAW,GAAG,IAAI,GAAG,EAA+D,CAAC;IAC3F,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAClC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAG/F,MAAM,YAAY,GAAI,EAAE,CAAC,OAAO,CAC9B,0DAA0D,CAC3D,CAAC,GAAG,EAAe,CAAC,CAAC,CAAC;IAEvB,MAAM,mBAAmB,GAAI,EAAE,CAAC,OAAO,CACrC,uFAAuF,CACxF,CAAC,GAAG,EAAe,CAAC,CAAC,CAAC;IAEvB,MAAM,gBAAgB,GAAG,EAAE,CAAC,OAAO,CACjC,gFAAgF,CACjF,CAAC,GAAG,EAAE,CAAC;IAER,MAAM,YAAY,GAAG;QACnB,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,gBAAgB;KACjB,CAAC;IAGF,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;;GAShC,CAAC,CAAC,GAAG,EAAE,CAAC;IAET,MAAM,mBAAmB,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;GAOtC,CAAC,CAAC,GAAG,EAAE,CAAC;IAET,MAAM,OAAO,GAAG,EAAE,aAAa,EAAE,mBAAmB,EAAE,CAAC;IAGvD,IAAI,mBAAmB,GAA+B,IAAI,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,GAAG,EAAuB,CAAC;QAC5F,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;YAC1E,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CACvB;wFACgF,CACjF,CAAC,GAAG,EAAuD,CAAC;YAE7D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;YAC1C,MAAM,cAAc,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAE3D,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAC7B;;;kDAG0C,CAC3C,CAAC,GAAG,EAAyC,CAAC;YAE/C,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B;;;mDAG2C,CAC5C,CAAC,GAAG,EAAwC,CAAC;YAE9C,mBAAmB,GAAG;gBACpB,cAAc;gBACd,SAAS,EAAE,MAAM,CAAC,IAAI;gBACtB,WAAW,EAAE,MAAM,CAAC,MAAM;gBAC1B,eAAe,EAAE,MAAM,CAAC,OAAO;gBAC/B,YAAY;gBACZ,WAAW;aACZ,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAGD,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;;GAa/B,CAAC,CAAC,GAAG,EAA+D,CAAC;IAEtE,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAGrE,MAAM,UAAU,GAA6C;QAC3D,EAAE,IAAI,EAAE,SAAS,EAAO,KAAK,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;QACxE,EAAE,IAAI,EAAE,WAAW,EAAK,KAAK,EAAE,CAAC,UAAU,EAAE,uBAAuB,EAAE,iBAAiB,CAAC,EAAE;QACzF,EAAE,IAAI,EAAE,UAAU,EAAM,KAAK,EAAE,CAAC,SAAS,EAAE,mBAAmB,EAAE,eAAe,CAAC,EAAE;QAClF,EAAE,IAAI,EAAE,MAAM,EAAU,KAAK,EAAE,CAAC,SAAS,EAAE,qBAAqB,EAAE,aAAa,CAAC,EAAE;QAClF,EAAE,IAAI,EAAE,WAAW,EAAK,KAAK,EAAE,CAAC,SAAS,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE;QACjG,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE;KAC1F,CAAC;IAEF,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAI,GAAG,CAAC,KAAgB,CAAC;IAC7E,CAAC;IAED,MAAM,cAAc,GAA0B,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACjF,IAAI;QACJ,KAAK;QACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;KAC/D,CAAC,CAAC,CAAC;IAaJ,MAAM,mBAAmB,GAAG;QAC1B,gBAAgB,EAAE,QAAQ,EAAE,SAAS;QACrC,UAAU,EAAE,uBAAuB,EAAE,iBAAiB;QACtD,SAAS,EAAE,mBAAmB,EAAE,eAAe;QAC/C,SAAS,EAAE,qBAAqB,EAAE,aAAa;QAC/C,SAAS,EAAE,cAAc,EAAE,gBAAgB;QAC3C,SAAS,EAAE,SAAS,EAAE,aAAa;KACpC,CAAC;IACF,MAAM,yBAAyB,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE/E,MAAM,cAAc,GAAI,EAAE,CAAC,OAAO,CAChC;sBACkB,yBAAyB;;0DAEW,CACvD,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAc,CAAC,CAAC,CAAC;IAE7C,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAAC;;;qBAGd,yBAAyB;;;;;GAK3C,CAAC,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAA0C,CAAC;IAQxE,IAAI,gBAAgB,GAA+B,gCAAgC,CAAC;IACpF,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,GAAG,EAAuB,CAAC;QAC5F,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;YACzD,MAAM,YAAY,GAAI,EAAE,CAAC,OAAO,CAC9B;0BACkB,yBAAyB;;+DAEY,CACxD,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAc,CAAC,CAAC,CAAC;YAC7C,IAAI,YAAY,GAAG,CAAC;gBAAE,gBAAgB,GAAG,aAAa,CAAC;QACzD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAA+D,CAAC;IAEzE,MAAM,UAAU,GAAe;QAC7B,cAAc;QACd,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAClE,YAAY,EAAE,gBAAgB;KAC/B,CAAC;IAEF,OAAO;QACL,WAAW;QACX,aAAa;QACb,UAAU;QACV,QAAQ;QACR,YAAY;QACZ,mBAAmB;QACnB,OAAO;QACP,SAAS;QACT,cAAc;KACf,CAAC;AACJ,CAAC;AAuBD,MAAM,UAAU,kBAAkB,CAChC,EAAqB,EACrB,UAAU,GAAG,EAAE;IAEf,MAAM,iBAAiB,GAAI,EAAE,CAAC,OAAO,CACnC;4DACwD,CACzD,CAAC,GAAG,CAAC,UAAU,CAAmB,CAAC,CAAC,CAAC;IAEtC,MAAM,gBAAgB,GAAI,EAAE,CAAC,OAAO,CAClC;4DACwD,CACzD,CAAC,GAAG,CAAC,UAAU,CAAmB,CAAC,CAAC,CAAC;IAEtC,MAAM,UAAU,GAAI,EAAE,CAAC,OAAO,CAC5B;;wFAEoF,CACrF,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAG5B,MAAM,aAAa,GAAI,EAAE,CAAC,OAAO,CAC/B;;;;;;SAMK,CACN,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAE5B,MAAM,WAAW,GAAI,EAAE,CAAC,OAAO,CAC7B,0DAA0D,CAC3D,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAE5B,MAAM,aAAa,GAAI,EAAE,CAAC,OAAO,CAC/B;;;6BAGyB,CAC1B,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAE5B,MAAM,cAAc,GAAI,EAAE,CAAC,OAAO,CAChC,qCAAqC,CACtC,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAE5B,MAAM,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,UAAU,GAAG,EAAE,CAAC;IAE/B,OAAO;QACL,QAAQ,EAAE;YACR,gBAAgB,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3D,gBAAgB,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5D,UAAU;SACX;QACD,SAAS,EAAE;YACT,cAAc,EAAE,UAAU;YAC1B,iBAAiB,EAAE,aAAa;SACjC;QACD,aAAa,EAAE;YACb,UAAU,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,aAAa,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7E,cAAc;YACd,cAAc,EAAE,WAAW;SAC5B;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/core/analytics.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IACjC,kBAAkB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB;IACjE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB;CAC1D,CAAC,CAAC;AA+CH,MAAM,UAAU,gBAAgB,CAAC,EAAqB;IAEpD,MAAM,WAAW,GAAI,EAAE,CAAC,OAAO,CAC7B,4DAA4D,CAC7D,CAAC,GAAG,EAAe,CAAC,CAAC,CAAC;IAEvB,MAAM,gBAAgB,GAAI,EAAE,CAAC,OAAO,CAClC,gHAAgH,CACjH,CAAC,GAAG,EAAe,CAAC,CAAC,CAAC;IACvB,MAAM,aAAa,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3E,MAAM,cAAc,GAAI,EAAE,CAAC,OAAO,CAChC,iFAAiF,CAClF,CAAC,GAAG,EAAe,CAAC,CAAC,CAAC;IACvB,MAAM,YAAY,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAExE,MAAM,WAAW,GAAI,EAAE,CAAC,OAAO,CAC7B,mFAAmF,CACpF,CAAC,GAAG,EAAe,CAAC,CAAC,CAAC;IACvB,MAAM,cAAc,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtF,MAAM,WAAW,GAAI,EAAE,CAAC,OAAO,CAC7B,kEAAkE,CACnE,CAAC,GAAG,EAAe,CAAC,CAAC,CAAC;IACvB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAEnD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,aAAa,GAAG,EAAE,GAAG,YAAY,GAAG,EAAE,GAAG,cAAc,GAAG,EAAE,GAAG,WAAW,GAAG,EAAE,CAChF,CAAC;IAEF,MAAM,aAAa,GAAG;QACpB,QAAQ,EAAE;YACR,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC;YACrC,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,GAAG,gBAAgB,IAAI,WAAW,2CAA2C;SACtF;QACD,OAAO,EAAE;YACP,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC;YACpC,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,GAAG,cAAc,IAAI,WAAW,wCAAwC;SACjF;QACD,SAAS,EAAE;YACT,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC;YACtC,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,GAAG,WAAW,yBAAyB;SAChD;QACD,OAAO,EAAE;YACP,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;YACnC,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,GAAG,WAAW,kBAAkB;SACzC;KACF,CAAC;IAGF,MAAM,eAAe,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;GAMlC,CAAC,CAAC,GAAG,EAA6C,CAAC;IAEpD,MAAM,gBAAgB,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;GAMnC,CAAC,CAAC,GAAG,EAA8C,CAAC;IAErD,MAAM,WAAW,GAAG,IAAI,GAAG,EAA+D,CAAC;IAC3F,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAClC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAU/F,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;;GAa/B,CAAC,CAAC,GAAG,EAA+D,CAAC;IAEtE,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAGrE,MAAM,UAAU,GAA6C;QAC3D,EAAE,IAAI,EAAE,SAAS,EAAO,KAAK,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;QACxE,EAAE,IAAI,EAAE,WAAW,EAAK,KAAK,EAAE,CAAC,UAAU,EAAE,uBAAuB,EAAE,iBAAiB,CAAC,EAAE;QACzF,EAAE,IAAI,EAAE,UAAU,EAAM,KAAK,EAAE,CAAC,SAAS,EAAE,mBAAmB,EAAE,eAAe,CAAC,EAAE;QAClF,EAAE,IAAI,EAAE,MAAM,EAAU,KAAK,EAAE,CAAC,SAAS,EAAE,qBAAqB,EAAE,aAAa,CAAC,EAAE;QAClF,EAAE,IAAI,EAAE,WAAW,EAAK,KAAK,EAAE,CAAC,SAAS,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE;QACjG,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE;KAC1F,CAAC;IAEF,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAI,GAAG,CAAC,KAAgB,CAAC;IAC7E,CAAC;IAED,MAAM,cAAc,GAA0B,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACjF,IAAI;QACJ,KAAK;QACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;KAC/D,CAAC,CAAC,CAAC;IAaJ,MAAM,mBAAmB,GAAG;QAC1B,gBAAgB,EAAE,QAAQ,EAAE,SAAS;QACrC,UAAU,EAAE,uBAAuB,EAAE,iBAAiB;QACtD,SAAS,EAAE,mBAAmB,EAAE,eAAe;QAC/C,SAAS,EAAE,qBAAqB,EAAE,aAAa;QAC/C,SAAS,EAAE,cAAc,EAAE,gBAAgB;QAC3C,SAAS,EAAE,SAAS,EAAE,aAAa;KACpC,CAAC;IACF,MAAM,yBAAyB,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE/E,MAAM,cAAc,GAAI,EAAE,CAAC,OAAO,CAChC;sBACkB,yBAAyB;;0DAEW,CACvD,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAc,CAAC,CAAC,CAAC;IAE7C,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAAC;;;qBAGd,yBAAyB;;;;;GAK3C,CAAC,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAA0C,CAAC;IAQxE,IAAI,gBAAgB,GAA+B,gCAAgC,CAAC;IACpF,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,GAAG,EAAuB,CAAC;QAC5F,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;YACzD,MAAM,YAAY,GAAI,EAAE,CAAC,OAAO,CAC9B;0BACkB,yBAAyB;;+DAEY,CACxD,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAc,CAAC,CAAC,CAAC;YAC7C,IAAI,YAAY,GAAG,CAAC;gBAAE,gBAAgB,GAAG,aAAa,CAAC;QACzD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAA+D,CAAC;IAEzE,MAAM,UAAU,GAAe;QAC7B,cAAc;QACd,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAClE,YAAY,EAAE,gBAAgB;KAC/B,CAAC;IAEF,OAAO;QACL,WAAW;QACX,aAAa;QACb,UAAU;QACV,QAAQ;QACR,SAAS;QACT,cAAc;KACf,CAAC;AACJ,CAAC;AAuBD,MAAM,UAAU,kBAAkB,CAChC,EAAqB,EACrB,UAAU,GAAG,EAAE;IAEf,MAAM,iBAAiB,GAAI,EAAE,CAAC,OAAO,CACnC;4DACwD,CACzD,CAAC,GAAG,CAAC,UAAU,CAAmB,CAAC,CAAC,CAAC;IAEtC,MAAM,gBAAgB,GAAI,EAAE,CAAC,OAAO,CAClC;4DACwD,CACzD,CAAC,GAAG,CAAC,UAAU,CAAmB,CAAC,CAAC,CAAC;IAEtC,MAAM,UAAU,GAAI,EAAE,CAAC,OAAO,CAC5B;;wFAEoF,CACrF,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAG5B,MAAM,aAAa,GAAI,EAAE,CAAC,OAAO,CAC/B;;;;;;SAMK,CACN,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAE5B,MAAM,WAAW,GAAI,EAAE,CAAC,OAAO,CAC7B,0DAA0D,CAC3D,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAE5B,MAAM,aAAa,GAAI,EAAE,CAAC,OAAO,CAC/B;;;6BAGyB,CAC1B,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAE5B,MAAM,cAAc,GAAI,EAAE,CAAC,OAAO,CAChC,qCAAqC,CACtC,CAAC,GAAG,EAAoB,CAAC,CAAC,CAAC;IAE5B,MAAM,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,UAAU,GAAG,EAAE,CAAC;IAE/B,OAAO;QACL,QAAQ,EAAE;YACR,gBAAgB,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3D,gBAAgB,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5D,UAAU;SACX;QACD,SAAS,EAAE;YACT,cAAc,EAAE,UAAU;YAC1B,iBAAiB,EAAE,aAAa;SACjC;QACD,aAAa,EAAE;YACb,UAAU,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,aAAa,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7E,cAAc;YACd,cAAc,EAAE,WAAW;SAC5B;KACF,CAAC;AACJ,CAAC"}
@@ -15,7 +15,6 @@ export interface MeMeshConfig {
15
15
  sessionLimit?: number;
16
16
  enableAgenticOrchestration?: boolean;
17
17
  autoUpdate?: 'off' | 'patch' | 'minor' | 'major';
18
- theme?: 'light' | 'dark';
19
18
  setupCompleted?: boolean;
20
19
  }
21
20
  export interface Capabilities {
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAkBD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,SAAS,CAAC;IAgBhB,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC;IAM3B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IAMtB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAWrC,UAAU,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IACjD,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,YAAY,EAAE,IAAI,CAAC;IACnB,OAAO,EAAE,IAAI,CAAC;IACd,kBAAkB,EAAE,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;IACjE,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IAOtB,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC;CACpB;AAsBD,wBAAgB,UAAU,IAAI,YAAY,CAQzC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAetD;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,GACvE,YAAY,CAmBd;AAID,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG9C;AAoCD,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,CAyBtE;AA+CD,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAOnE;AAQD,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CAM3D;AAID,wBAAgB,YAAY,IAAI,MAAM,CAAwB;AAC9D,wBAAgB,aAAa,IAAI,MAAM,CAA6B"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAkBD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,SAAS,CAAC;IAgBhB,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC;IAM3B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IAMtB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAWrC,UAAU,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IACjD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,IAAI,CAAC;IACX,YAAY,EAAE,IAAI,CAAC;IACnB,OAAO,EAAE,IAAI,CAAC;IACd,kBAAkB,EAAE,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;IACjE,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IAOtB,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC;CACpB;AA2BD,wBAAgB,UAAU,IAAI,YAAY,CA2BzC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAetD;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,GACvE,YAAY,CAmBd;AAID,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG9C;AAiED,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,CAyBtE;AA+CD,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAOnE;AAQD,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CAM3D;AAID,wBAAgB,YAAY,IAAI,MAAM,CAAwB;AAC9D,wBAAgB,aAAa,IAAI,MAAM,CAA6B"}
@@ -10,14 +10,26 @@ function configDir() {
10
10
  function configFilePath() {
11
11
  return path.join(configDir(), 'config.json');
12
12
  }
13
+ let lastConfigReadWarning = null;
13
14
  export function readConfig() {
15
+ const p = configFilePath();
16
+ if (!fs.existsSync(p))
17
+ return {};
14
18
  try {
15
- const p = configFilePath();
16
- if (!fs.existsSync(p))
17
- return {};
18
19
  return JSON.parse(fs.readFileSync(p, 'utf8'));
19
20
  }
20
- catch {
21
+ catch (err) {
22
+ const msg = err instanceof Error ? err.message : String(err);
23
+ const key = `${p}::${msg}`;
24
+ if (key !== lastConfigReadWarning) {
25
+ lastConfigReadWarning = key;
26
+ try {
27
+ process.stderr.write(`[memesh config] ${p} exists but could not be read/parsed (${msg}). ` +
28
+ `Every setting in it — LLM provider, fallbacks, embedder — is being ignored, ` +
29
+ `so Smart Mode is off until this is fixed.\n`);
30
+ }
31
+ catch { }
32
+ }
21
33
  return {};
22
34
  }
23
35
  }
@@ -58,7 +70,16 @@ export function maskApiKey(key) {
58
70
  return '***';
59
71
  return key.slice(0, 4) + '***' + key.slice(-4);
60
72
  }
73
+ function envAutoDetectDisabled() {
74
+ const raw = process.env.MEMESH_AUTO_DETECT_LLM;
75
+ if (raw === undefined)
76
+ return false;
77
+ const v = raw.trim().toLowerCase();
78
+ return v === '0' || v === 'false' || v === 'no' || v === 'off';
79
+ }
61
80
  function detectFromEnv() {
81
+ if (envAutoDetectDisabled())
82
+ return null;
62
83
  if (process.env.ANTHROPIC_API_KEY) {
63
84
  return { provider: 'anthropic', model: 'claude-haiku-4-5', apiKey: process.env.ANTHROPIC_API_KEY };
64
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ export interface SuspiciousClaim {
5
5
  reason: string;
6
6
  }
7
7
  export interface ValidationResult {
8
- status: 'pass' | 'soften' | 'reject';
8
+ status: 'pass' | 'soften' | 'reject' | 'unavailable';
9
9
  suspiciousClaims: SuspiciousClaim[];
10
10
  rawResponse: string;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"digest-validator.d.ts","sourceRoot":"","sources":["../../src/core/digest-validator.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAOD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IAEpC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;CAC9C;AAgBD,wBAAsB,cAAc,CAClC,kBAAkB,EAAE,MAAM,EAAE,EAC5B,kBAAkB,EAAE,MAAM,EAAE,EAC5B,GAAG,EAAE,SAAS,EACd,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CAwC3B;AAaD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAoDrE"}
1
+ {"version":3,"file":"digest-validator.d.ts","sourceRoot":"","sources":["../../src/core/digest-validator.ts"],"names":[],"mappings":"AAsCA,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAOD,MAAM,WAAW,gBAAgB;IAY/B,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAAC;IACrD,gBAAgB,EAAE,eAAe,EAAE,CAAC;IAEpC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;CAC9C;AAgBD,wBAAsB,cAAc,CAClC,kBAAkB,EAAE,MAAM,EAAE,EAC5B,kBAAkB,EAAE,MAAM,EAAE,EAC5B,GAAG,EAAE,SAAS,EACd,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CA8C3B;AAaD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAoDrE"}
@@ -27,8 +27,13 @@ export async function validateDigest(digestObservations, sourceObservations, llm
27
27
  onAttempt: opts.onAttempt,
28
28
  });
29
29
  }
30
- catch {
31
- return { status: 'pass', suspiciousClaims: [], rawResponse: '' };
30
+ catch (err) {
31
+ const msg = err instanceof Error ? err.message : String(err);
32
+ try {
33
+ process.stderr.write(`[memesh digest-validator] validation did not run: ${msg}\n`);
34
+ }
35
+ catch { }
36
+ return { status: 'unavailable', suspiciousClaims: [], rawResponse: '' };
32
37
  }
33
38
  return parseValidatorResponse(rawResponse);
34
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"digest-validator.js","sourceRoot":"","sources":["../../src/core/digest-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"digest-validator.js","sourceRoot":"","sources":["../../src/core/digest-validator.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import fs from 'fs';
2
2
  import { detectCapabilities, getConfigPath } from './config.js';
3
+ import { probeProvider } from './llm-validator.js';
3
4
  import { openDatabase, closeDatabase, isDatabaseOpen } from '../db.js';
4
5
  import { getUpdateCheck } from './version-check.js';
5
6
  import { getCurrentInstallChannel, getInstallChannelSupport } from './install-channel.js';
@@ -11,6 +12,7 @@ export interface DoctorCheck {
11
12
  status: DoctorCheckStatus;
12
13
  summary: string;
13
14
  fix?: string;
15
+ informational?: boolean;
14
16
  }
15
17
  export interface DoctorResult {
16
18
  status: DoctorOverallStatus;
@@ -20,6 +22,9 @@ interface DoctorOptions {
20
22
  packageRoot: string;
21
23
  packageVersion: string;
22
24
  probeHttp?: boolean;
25
+ probeCapabilities?: boolean;
26
+ embedTextImpl?: (text: string) => Promise<Float32Array | null>;
27
+ probeProviderImpl?: typeof probeProvider;
23
28
  httpBaseUrl?: string;
24
29
  platform?: NodeJS.Platform;
25
30
  openDatabaseImpl?: typeof openDatabase;
@@ -40,6 +45,7 @@ interface DoctorOptions {
40
45
  ok: false;
41
46
  message: string;
42
47
  };
48
+ resolveShellMemeshImpl?: () => string | null;
43
49
  }
44
50
  export declare function runDoctor(options: DoctorOptions): Promise<DoctorResult>;
45
51
  export declare function formatDoctorReport(result: DoctorResult, packageVersion: string): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAKpB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAyB,cAAc,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAI1F,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AACzD,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,oBAAoB,GAAG,MAAM,CAAC;AAEzE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAUD,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,YAAY,CAAC;IACvC,iBAAiB,CAAC,EAAE,OAAO,aAAa,CAAC;IACzC,kBAAkB,CAAC,EAAE,OAAO,cAAc,CAAC;IAC3C,sBAAsB,CAAC,EAAE,OAAO,kBAAkB,CAAC;IACnD,iBAAiB,CAAC,EAAE,OAAO,aAAa,CAAC;IACzC,kBAAkB,CAAC,EAAE,OAAO,cAAc,CAAC;IAC3C,4BAA4B,CAAC,EAAE,OAAO,wBAAwB,CAAC;IAC/D,4BAA4B,CAAC,EAAE,OAAO,wBAAwB,CAAC;IAC/D,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC;IACtC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC;IAC1C,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAMzB,sBAAsB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACjG;AAm8BD,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAoM7E;AAaD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAazF"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/core/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAKpB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAqB,MAAM,aAAa,CAAC;AAEnF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAyB,cAAc,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAI1F,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AACzD,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,oBAAoB,GAAG,MAAM,CAAC;AAEzE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IAqBb,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAUD,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IAQpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC/D,iBAAiB,CAAC,EAAE,OAAO,aAAa,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,YAAY,CAAC;IACvC,iBAAiB,CAAC,EAAE,OAAO,aAAa,CAAC;IACzC,kBAAkB,CAAC,EAAE,OAAO,cAAc,CAAC;IAC3C,sBAAsB,CAAC,EAAE,OAAO,kBAAkB,CAAC;IACnD,iBAAiB,CAAC,EAAE,OAAO,aAAa,CAAC;IACzC,kBAAkB,CAAC,EAAE,OAAO,cAAc,CAAC;IAC3C,4BAA4B,CAAC,EAAE,OAAO,wBAAwB,CAAC;IAC/D,4BAA4B,CAAC,EAAE,OAAO,wBAAwB,CAAC;IAC/D,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC;IACtC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC;IAC1C,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAMzB,sBAAsB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAMhG,sBAAsB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;CAC9C;AAuwCD,wBAAsB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA+M7E;AAaD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBzF"}
@@ -4,11 +4,14 @@ import { createHash } from 'crypto';
4
4
  import { createRequire } from 'module';
5
5
  import { pathToFileURL } from 'url';
6
6
  import { detectCapabilities, getConfigPath } from './config.js';
7
+ import { embedText, isOnnxModelCached } from './embedder.js';
8
+ import { probeProvider } from './llm-validator.js';
7
9
  import { openDatabase, closeDatabase, getPendingReindexInfo, isDatabaseOpen } from '../db.js';
8
10
  import { getUpdateCheck } from './version-check.js';
9
11
  import { getCurrentInstallChannel, getInstallChannelSupport } from './install-channel.js';
10
12
  import { getInstallRecord } from './install-id.js';
11
13
  import { getDbPath, memeshDir } from './paths.js';
14
+ const EMBEDDING_PROBE_TIMEOUT_MS = 15000;
12
15
  const EXPECTED_HOOK_TYPES = ['PreToolUse', 'SessionStart', 'PostToolUse', 'Stop', 'PreCompact'];
13
16
  const LOCALE_README_FILES = [
14
17
  'README.de.md',
@@ -90,6 +93,9 @@ function resolveDatabasePath() {
90
93
  function createCheck(id, label, status, summary, fix) {
91
94
  return { id, label, status, summary, fix };
92
95
  }
96
+ function createInfo(id, label, summary, fix) {
97
+ return { id, label, status: 'pass', summary, fix, informational: true };
98
+ }
93
99
  function parseJsonFile(filePath, readFileSyncImpl) {
94
100
  try {
95
101
  const raw = readFileSyncImpl(filePath, 'utf8');
@@ -279,6 +285,19 @@ function inspectHookActivity(openDatabaseImpl, closeDatabaseImpl, existsSyncImpl
279
285
  catch { }
280
286
  }
281
287
  }
288
+ function defaultResolveShellMemesh() {
289
+ try {
290
+ const cmd = process.platform === 'win32' ? 'where' : 'which';
291
+ const localRequire = createRequire(import.meta.url);
292
+ const { execFileSync } = localRequire('child_process');
293
+ const out = execFileSync(cmd, ['memesh'], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] });
294
+ const first = String(out).split(/\r?\n/).map((s) => s.trim()).find(Boolean);
295
+ return first || null;
296
+ }
297
+ catch {
298
+ return null;
299
+ }
300
+ }
282
301
  function defaultNativeBindingProbe(packageRoot) {
283
302
  try {
284
303
  const localRequire = createRequire(pathToFileURL(path.join(packageRoot, 'package.json')).href);
@@ -309,6 +328,26 @@ function inspectNativeBinding(packageRoot, _existsSyncImpl, probeImpl = defaultN
309
328
  }
310
329
  return createCheck('native-binding', 'Native SQLite binding', 'fail', `better-sqlite3 failed to load: ${result.message}`, `Run: cd "${packageRoot}" && npm rebuild better-sqlite3`);
311
330
  }
331
+ function inspectShellCli(installChannel, packageRoot, resolveShellMemeshImpl) {
332
+ const shellPath = resolveShellMemeshImpl();
333
+ const isSameAsCurrent = shellPath ? path.resolve(shellPath).startsWith(path.resolve(packageRoot)) : false;
334
+ const hasDistinctShellCli = !!shellPath && !isSameAsCurrent;
335
+ if (installChannel === 'npm-global') {
336
+ return createCheck('shell-cli', 'Shell CLI on PATH', 'pass', shellPath
337
+ ? `\`memesh\` resolves to ${shellPath} (npm-global install — terminals across the machine pick it up).`
338
+ : 'Running from npm-global install — shell access available in this terminal.');
339
+ }
340
+ if (hasDistinctShellCli) {
341
+ return createCheck('shell-cli', 'Shell CLI on PATH', 'pass', `\`memesh\` resolves to ${shellPath} (separate from this install at ${packageRoot}). Both paths coexist and share the same DB.`);
342
+ }
343
+ if (installChannel === 'plugin-marketplace') {
344
+ return createCheck('shell-cli', 'Shell CLI on PATH', 'warn', 'Plugin is installed but `memesh` is not on the shell PATH. Typing `memesh` in a regular terminal will report `command not found`. '
345
+ + 'Claude Code MCP / hooks / `/memesh` skill still work — this only affects standalone shell usage and other MCP clients (Cursor, Cline, etc.).', 'Run `npm install -g @pcircle/memesh` to add the shell CLI. Both paths coexist; they share the same `~/.memesh/knowledge-graph.db`.');
346
+ }
347
+ return createCheck('shell-cli', 'Shell CLI on PATH', 'pass', shellPath
348
+ ? `\`memesh\` resolves to ${shellPath}.`
349
+ : `No shell-PATH \`memesh\` detected. If you want terminal access, run \`npm install -g @pcircle/memesh\` (this install is a ${installChannel}, so the check is informational only).`);
350
+ }
312
351
  function inspectDashboardArtifact(packageRoot, existsSyncImpl) {
313
352
  const dashboardPath = path.join(packageRoot, 'dashboard', 'dist', 'index.html');
314
353
  if (!existsSyncImpl(dashboardPath)) {
@@ -438,15 +477,88 @@ function verifySkillsManifest(packageRoot, existsSyncImpl, readFileSyncImpl) {
438
477
  ].filter(Boolean).join('; ');
439
478
  return createCheck('skills-manifest', 'Skills + hooks integrity', 'fail', `Manifest verification failed: ${detail}.`, 'Reinstall the package: `npm install -g @pcircle/memesh`. If the problem reproduces on a fresh install, open a security issue at https://github.com/PCIRCLE-AI/memesh-llm-memory/security.');
440
479
  }
480
+ async function inspectConfigParse(getConfigPathImpl, existsSyncImpl, readFileSyncImpl) {
481
+ const configPath = getConfigPathImpl();
482
+ if (!existsSyncImpl(configPath)) {
483
+ return createCheck('config_parse', 'Config parses', 'pass', 'No config file yet — defaults apply. This is normal for a fresh install.');
484
+ }
485
+ try {
486
+ const raw = readFileSyncImpl(configPath, 'utf8');
487
+ const parsed = JSON.parse(raw);
488
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
489
+ return createCheck('config_parse', 'Config parses', 'fail', `${configPath} parsed but is not a JSON object — every setting is being ignored.`, `Fix or remove ${configPath}, then re-run memesh doctor.`);
490
+ }
491
+ return createCheck('config_parse', 'Config parses', 'pass', `${configPath} is valid JSON and its settings are in effect.`);
492
+ }
493
+ catch (err) {
494
+ const msg = err instanceof Error ? err.message : String(err);
495
+ return createCheck('config_parse', 'Config parses', 'fail', `${configPath} could not be read or parsed (${msg}). Every setting in it — LLM provider, fallbacks, embedder — is being silently ignored right now.`, `Fix the JSON or remove the file to fall back to defaults: mv ${configPath} ${configPath}.bak`);
496
+ }
497
+ }
498
+ async function inspectEmbeddingProbe(capabilities, probeCapabilities, embedTextImpl) {
499
+ if (capabilities.embeddings === 'tfidf') {
500
+ return createInfo('embeddings_probe', 'Embeddings work', 'No neural embedder configured — recall runs on FTS5 keyword search alone. That is a supported mode, not a fault.');
501
+ }
502
+ if (!probeCapabilities) {
503
+ const isLocal = capabilities.embeddings === 'onnx';
504
+ if (!isLocal) {
505
+ return createInfo('embeddings_probe', 'Embeddings work', `NOT VERIFIED. Config names "${capabilities.embeddings}", but generating a test embedding is a network call (billed on hosted providers) so it was not made — a revoked key or an unreachable host would look identical to a healthy setup here.`, 'Run: memesh doctor --probe (generates one test embedding to confirm)');
506
+ }
507
+ if (!isOnnxModelCached()) {
508
+ return createInfo('embeddings_probe', 'Embeddings work', `NOT VERIFIED. Config names "onnx" but the model is not in the local cache yet, and probing would download ~90 MB — which a diagnostic command must not do on its own.`, 'Run: memesh doctor --probe (downloads the model once, then verifies)');
509
+ }
510
+ }
511
+ let timer;
512
+ try {
513
+ const vector = await Promise.race([
514
+ embedTextImpl('memesh doctor embedding probe'),
515
+ new Promise((_, reject) => {
516
+ timer = setTimeout(() => reject(new Error(`no response within ${EMBEDDING_PROBE_TIMEOUT_MS / 1000}s`)), EMBEDDING_PROBE_TIMEOUT_MS);
517
+ }),
518
+ ]);
519
+ if (!vector || vector.length === 0) {
520
+ return createCheck('embeddings_probe', 'Embeddings work', 'warn', `Config selects "${capabilities.embeddings}" but generating a test embedding returned nothing. Semantic recall is degraded to FTS5-only; keyword search still works.`, 'Run: memesh doctor --probe for detail, or check network access to the embedding provider.');
521
+ }
522
+ return createCheck('embeddings_probe', 'Embeddings work', 'pass', `Generated a ${vector.length}-dim test embedding via "${capabilities.embeddings}".`);
523
+ }
524
+ catch (err) {
525
+ const msg = err instanceof Error ? err.message : String(err);
526
+ return createCheck('embeddings_probe', 'Embeddings work', 'warn', `Config selects "${capabilities.embeddings}" but the embedder threw (${msg}). Semantic recall is degraded to FTS5-only.`, 'Check the embedding provider is reachable, or set: memesh config set embedder.provider onnx');
527
+ }
528
+ finally {
529
+ clearTimeout(timer);
530
+ }
531
+ }
532
+ async function inspectLlmProbe(capabilities, probeCapabilities, probeProviderImpl) {
533
+ const llm = capabilities.llm;
534
+ if (!llm) {
535
+ return createInfo('llm_probe', 'LLM reachable', 'No LLM configured — Core Mode. Write-side features (consolidate, lessons, auto-tag, dream) are off by design.');
536
+ }
537
+ if (!probeCapabilities) {
538
+ return createInfo('llm_probe', 'LLM reachable', `NOT VERIFIED. Config names ${llm.provider} (${llm.model ?? 'default'}), but no live call was made — an expired key or an unreachable host would look identical to a healthy setup here.`, 'Run: memesh doctor --probe (makes one small live call to confirm)');
539
+ }
540
+ try {
541
+ const result = await probeProviderImpl(llm.provider, llm.apiKey);
542
+ if (result.valid) {
543
+ return createCheck('llm_probe', 'LLM reachable', 'pass', `${llm.provider} answered a live probe.`);
544
+ }
545
+ return createCheck('llm_probe', 'LLM reachable', 'fail', `${llm.provider} is configured but did not answer: ${result.error ?? 'unknown error'}. Every LLM-backed feature is silently doing nothing.`, 'Check the API key / host, then re-run: memesh doctor --probe');
546
+ }
547
+ catch (err) {
548
+ const msg = err instanceof Error ? err.message : String(err);
549
+ return createCheck('llm_probe', 'LLM reachable', 'fail', `${llm.provider} probe threw: ${msg}. Every LLM-backed feature is silently doing nothing.`, 'Check the API key / host, then re-run: memesh doctor --probe');
550
+ }
551
+ }
441
552
  function summarizeOverallStatus(checks) {
442
- if (checks.some((check) => check.status === 'fail'))
553
+ const assertions = checks.filter((check) => !check.informational);
554
+ if (assertions.some((check) => check.status === 'fail'))
443
555
  return 'FAIL';
444
- if (checks.some((check) => check.status === 'warn'))
556
+ if (assertions.some((check) => check.status === 'warn'))
445
557
  return 'PASS_WITH_CONCERNS';
446
558
  return 'PASS';
447
559
  }
448
560
  export async function runDoctor(options) {
449
- const { packageRoot, packageVersion, probeHttp = false, httpBaseUrl = 'http://127.0.0.1:3737', platform = process.platform, openDatabaseImpl = openDatabase, closeDatabaseImpl = closeDatabase, isDatabaseOpenImpl = isDatabaseOpen, detectCapabilitiesImpl = detectCapabilities, getConfigPathImpl = getConfigPath, getUpdateCheckImpl = getUpdateCheck, getCurrentInstallChannelImpl = getCurrentInstallChannel, getInstallChannelSupportImpl = getInstallChannelSupport, existsSyncImpl = fs.existsSync, readFileSyncImpl = fs.readFileSync, statSyncImpl = fs.statSync, fetchImpl = fetch, nativeBindingProbeImpl, } = options;
561
+ const { packageRoot, packageVersion, probeHttp = false, probeCapabilities = false, embedTextImpl = embedText, probeProviderImpl = probeProvider, httpBaseUrl = 'http://127.0.0.1:3737', platform = process.platform, openDatabaseImpl = openDatabase, closeDatabaseImpl = closeDatabase, isDatabaseOpenImpl = isDatabaseOpen, detectCapabilitiesImpl = detectCapabilities, getConfigPathImpl = getConfigPath, getUpdateCheckImpl = getUpdateCheck, getCurrentInstallChannelImpl = getCurrentInstallChannel, getInstallChannelSupportImpl = getInstallChannelSupport, existsSyncImpl = fs.existsSync, readFileSyncImpl = fs.readFileSync, statSyncImpl = fs.statSync, fetchImpl = fetch, nativeBindingProbeImpl, resolveShellMemeshImpl = defaultResolveShellMemesh, } = options;
450
562
  const wasDbOpenBeforeUs = isDatabaseOpenImpl();
451
563
  const safeCloseDatabaseImpl = wasDbOpenBeforeUs
452
564
  ? () => undefined
@@ -535,9 +647,13 @@ export async function runDoctor(options) {
535
647
  checks.push(inspectHookActivity(openDatabaseImpl, safeCloseDatabaseImpl, existsSyncImpl, statSyncImpl));
536
648
  checks.push(inspectDashboardArtifact(packageRoot, existsSyncImpl));
537
649
  checks.push(inspectNativeBinding(packageRoot, existsSyncImpl, nativeBindingProbeImpl));
650
+ checks.push(inspectShellCli(install, packageRoot, resolveShellMemeshImpl));
538
651
  checks.push(verifySkillsManifest(packageRoot, existsSyncImpl, readFileSyncImpl));
539
652
  const capabilities = detectCapabilitiesImpl();
540
- checks.push(createCheck('capabilities', 'Capabilities', 'pass', `Search level ${capabilities.searchLevel} (${capabilities.searchLevel === 1 ? 'Smart Mode' : 'Core'}); embeddings: ${capabilities.embeddings}; LLM: ${capabilities.llm ? `${capabilities.llm.provider} (${capabilities.llm.model ?? 'default'})` : 'not configured'}.`));
653
+ checks.push(createInfo('capabilities', 'Capabilities (configured)', `Search level ${capabilities.searchLevel} (${capabilities.searchLevel === 1 ? 'Smart Mode' : 'Core'}); embeddings: ${capabilities.embeddings}; LLM: ${capabilities.llm ? `${capabilities.llm.provider} (${capabilities.llm.model ?? 'default'})` : 'not configured'}. Configured values only — see the probe rows below for what actually works.`));
654
+ checks.push(await inspectConfigParse(getConfigPathImpl, existsSyncImpl, readFileSyncImpl));
655
+ checks.push(await inspectEmbeddingProbe(capabilities, probeCapabilities, embedTextImpl));
656
+ checks.push(await inspectLlmProbe(capabilities, probeCapabilities, probeProviderImpl));
541
657
  checks.push(await inspectUpdateStatus(packageVersion, getUpdateCheckImpl, installSupport));
542
658
  try {
543
659
  const record = getInstallRecord();
@@ -568,7 +684,7 @@ export function formatDoctorReport(result, packageVersion) {
568
684
  const lines = [`MeMesh doctor v${packageVersion}`, `Overall: ${result.status}`];
569
685
  for (const check of result.checks) {
570
686
  lines.push('');
571
- lines.push(`[${iconForStatus(check.status)}] ${check.label}`);
687
+ lines.push(`[${check.informational ? 'INFO' : iconForStatus(check.status)}] ${check.label}`);
572
688
  lines.push(` ${check.summary}`);
573
689
  if (check.fix) {
574
690
  lines.push(` Fix: ${check.fix}`);