cmp-memory-system 1.0.0

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 (161) hide show
  1. package/README.md +541 -0
  2. package/dist/analytics/index.d.ts +5 -0
  3. package/dist/analytics/index.d.ts.map +1 -0
  4. package/dist/analytics/index.js +5 -0
  5. package/dist/analytics/index.js.map +1 -0
  6. package/dist/analytics/tracker.d.ts +107 -0
  7. package/dist/analytics/tracker.d.ts.map +1 -0
  8. package/dist/analytics/tracker.js +333 -0
  9. package/dist/analytics/tracker.js.map +1 -0
  10. package/dist/auto-improve/eslint-generator.d.ts +36 -0
  11. package/dist/auto-improve/eslint-generator.d.ts.map +1 -0
  12. package/dist/auto-improve/eslint-generator.js +280 -0
  13. package/dist/auto-improve/eslint-generator.js.map +1 -0
  14. package/dist/auto-improve/index.d.ts +6 -0
  15. package/dist/auto-improve/index.d.ts.map +1 -0
  16. package/dist/auto-improve/index.js +6 -0
  17. package/dist/auto-improve/index.js.map +1 -0
  18. package/dist/auto-improve/pattern-detector.d.ts +92 -0
  19. package/dist/auto-improve/pattern-detector.d.ts.map +1 -0
  20. package/dist/auto-improve/pattern-detector.js +231 -0
  21. package/dist/auto-improve/pattern-detector.js.map +1 -0
  22. package/dist/cli/index.d.ts +16 -0
  23. package/dist/cli/index.d.ts.map +1 -0
  24. package/dist/cli/index.js +636 -0
  25. package/dist/cli/index.js.map +1 -0
  26. package/dist/dashboard/index.d.ts +6 -0
  27. package/dist/dashboard/index.d.ts.map +1 -0
  28. package/dist/dashboard/index.js +6 -0
  29. package/dist/dashboard/index.js.map +1 -0
  30. package/dist/dashboard/server.d.ts +15 -0
  31. package/dist/dashboard/server.d.ts.map +1 -0
  32. package/dist/dashboard/server.js +373 -0
  33. package/dist/dashboard/server.js.map +1 -0
  34. package/dist/dashboard/ui.d.ts +9 -0
  35. package/dist/dashboard/ui.d.ts.map +1 -0
  36. package/dist/dashboard/ui.js +530 -0
  37. package/dist/dashboard/ui.js.map +1 -0
  38. package/dist/db/client.d.ts +66 -0
  39. package/dist/db/client.d.ts.map +1 -0
  40. package/dist/db/client.js +159 -0
  41. package/dist/db/client.js.map +1 -0
  42. package/dist/db/drizzle-client.d.ts +302 -0
  43. package/dist/db/drizzle-client.d.ts.map +1 -0
  44. package/dist/db/drizzle-client.js +404 -0
  45. package/dist/db/drizzle-client.js.map +1 -0
  46. package/dist/db/index.d.ts +5 -0
  47. package/dist/db/index.d.ts.map +1 -0
  48. package/dist/db/index.js +5 -0
  49. package/dist/db/index.js.map +1 -0
  50. package/dist/feedback/collector.d.ts +74 -0
  51. package/dist/feedback/collector.d.ts.map +1 -0
  52. package/dist/feedback/collector.js +231 -0
  53. package/dist/feedback/collector.js.map +1 -0
  54. package/dist/feedback/index.d.ts +5 -0
  55. package/dist/feedback/index.d.ts.map +1 -0
  56. package/dist/feedback/index.js +5 -0
  57. package/dist/feedback/index.js.map +1 -0
  58. package/dist/hooks/index.d.ts +8 -0
  59. package/dist/hooks/index.d.ts.map +1 -0
  60. package/dist/hooks/index.js +8 -0
  61. package/dist/hooks/index.js.map +1 -0
  62. package/dist/hooks/memory-checkpoint.d.ts +43 -0
  63. package/dist/hooks/memory-checkpoint.d.ts.map +1 -0
  64. package/dist/hooks/memory-checkpoint.js +257 -0
  65. package/dist/hooks/memory-checkpoint.js.map +1 -0
  66. package/dist/hooks/post-tool-use.d.ts +61 -0
  67. package/dist/hooks/post-tool-use.d.ts.map +1 -0
  68. package/dist/hooks/post-tool-use.js +262 -0
  69. package/dist/hooks/post-tool-use.js.map +1 -0
  70. package/dist/hooks/pre-tool-use.d.ts +34 -0
  71. package/dist/hooks/pre-tool-use.d.ts.map +1 -0
  72. package/dist/hooks/pre-tool-use.js +358 -0
  73. package/dist/hooks/pre-tool-use.js.map +1 -0
  74. package/dist/hooks/session-start.d.ts +38 -0
  75. package/dist/hooks/session-start.d.ts.map +1 -0
  76. package/dist/hooks/session-start.js +274 -0
  77. package/dist/hooks/session-start.js.map +1 -0
  78. package/dist/index.d.ts +29 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +39 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/mcp/index.d.ts +5 -0
  83. package/dist/mcp/index.d.ts.map +1 -0
  84. package/dist/mcp/index.js +5 -0
  85. package/dist/mcp/index.js.map +1 -0
  86. package/dist/mcp/server.d.ts +42 -0
  87. package/dist/mcp/server.d.ts.map +1 -0
  88. package/dist/mcp/server.js +599 -0
  89. package/dist/mcp/server.js.map +1 -0
  90. package/dist/registry/embeddings.d.ts +38 -0
  91. package/dist/registry/embeddings.d.ts.map +1 -0
  92. package/dist/registry/embeddings.js +110 -0
  93. package/dist/registry/embeddings.js.map +1 -0
  94. package/dist/registry/generator.d.ts +41 -0
  95. package/dist/registry/generator.d.ts.map +1 -0
  96. package/dist/registry/generator.js +323 -0
  97. package/dist/registry/generator.js.map +1 -0
  98. package/dist/registry/index.d.ts +6 -0
  99. package/dist/registry/index.d.ts.map +1 -0
  100. package/dist/registry/index.js +6 -0
  101. package/dist/registry/index.js.map +1 -0
  102. package/dist/services/IdeaCollector.d.ts +103 -0
  103. package/dist/services/IdeaCollector.d.ts.map +1 -0
  104. package/dist/services/IdeaCollector.js +371 -0
  105. package/dist/services/IdeaCollector.js.map +1 -0
  106. package/dist/services/TaskTracker.d.ts +89 -0
  107. package/dist/services/TaskTracker.d.ts.map +1 -0
  108. package/dist/services/TaskTracker.js +324 -0
  109. package/dist/services/TaskTracker.js.map +1 -0
  110. package/dist/services/WorkPlanManager.d.ts +107 -0
  111. package/dist/services/WorkPlanManager.d.ts.map +1 -0
  112. package/dist/services/WorkPlanManager.js +440 -0
  113. package/dist/services/WorkPlanManager.js.map +1 -0
  114. package/dist/services/auto-inject.d.ts +77 -0
  115. package/dist/services/auto-inject.d.ts.map +1 -0
  116. package/dist/services/auto-inject.js +289 -0
  117. package/dist/services/auto-inject.js.map +1 -0
  118. package/dist/services/auto-tag.d.ts +61 -0
  119. package/dist/services/auto-tag.d.ts.map +1 -0
  120. package/dist/services/auto-tag.js +203 -0
  121. package/dist/services/auto-tag.js.map +1 -0
  122. package/dist/services/cross-project-sync.d.ts +76 -0
  123. package/dist/services/cross-project-sync.d.ts.map +1 -0
  124. package/dist/services/cross-project-sync.js +235 -0
  125. package/dist/services/cross-project-sync.js.map +1 -0
  126. package/dist/services/index.d.ts +15 -0
  127. package/dist/services/index.d.ts.map +1 -0
  128. package/dist/services/index.js +18 -0
  129. package/dist/services/index.js.map +1 -0
  130. package/dist/services/memory-consolidation.d.ts +77 -0
  131. package/dist/services/memory-consolidation.d.ts.map +1 -0
  132. package/dist/services/memory-consolidation.js +298 -0
  133. package/dist/services/memory-consolidation.js.map +1 -0
  134. package/dist/services/semantic-search.d.ts +93 -0
  135. package/dist/services/semantic-search.d.ts.map +1 -0
  136. package/dist/services/semantic-search.js +278 -0
  137. package/dist/services/semantic-search.js.map +1 -0
  138. package/dist/services/weekly-digest.d.ts +105 -0
  139. package/dist/services/weekly-digest.d.ts.map +1 -0
  140. package/dist/services/weekly-digest.js +292 -0
  141. package/dist/services/weekly-digest.js.map +1 -0
  142. package/dist/types/index.d.ts +274 -0
  143. package/dist/types/index.d.ts.map +1 -0
  144. package/dist/types/index.js +84 -0
  145. package/dist/types/index.js.map +1 -0
  146. package/dist/utils/config.d.ts +21 -0
  147. package/dist/utils/config.d.ts.map +1 -0
  148. package/dist/utils/config.js +89 -0
  149. package/dist/utils/config.js.map +1 -0
  150. package/dist/utils/index.d.ts +6 -0
  151. package/dist/utils/index.d.ts.map +1 -0
  152. package/dist/utils/index.js +6 -0
  153. package/dist/utils/index.js.map +1 -0
  154. package/dist/utils/paths.d.ts +28 -0
  155. package/dist/utils/paths.d.ts.map +1 -0
  156. package/dist/utils/paths.js +80 -0
  157. package/dist/utils/paths.js.map +1 -0
  158. package/package.json +89 -0
  159. package/templates/memory-config.json +82 -0
  160. package/templates/memory-config.schema.json +212 -0
  161. package/templates/settings.json +58 -0
package/README.md ADDED
@@ -0,0 +1,541 @@
1
+ # cmp-memory-system
2
+
3
+ > Unified memory & workflow system for Claude Code projects
4
+
5
+ ## Features
6
+
7
+ - **Task Tracking** - Automatic task registration in database
8
+ - **Idea Capture** - Collect ideas and improvements during work
9
+ - **Work Plans** - Persistent work plans across sessions
10
+ - **Memory System** - Session context and memory management
11
+ - **Auto-Improvement** - Pattern detection → ESLint rule generation
12
+ - **Dashboard** - Web UI for visualization
13
+ - **MCP Server** - Model Context Protocol integration
14
+ - **Analytics** - Usage tracking and insights
15
+
16
+ ## Installation
17
+
18
+ ```bash
19
+ npm install cmp-memory-system
20
+ ```
21
+
22
+ ## Quick Start
23
+
24
+ ```bash
25
+ # Initialize in project
26
+ cmp-memory init --system MYPROJECT --name "My Project"
27
+
28
+ # Check status
29
+ cmp-memory status
30
+
31
+ # Check status
32
+ claude-memory status
33
+ ```
34
+
35
+ ## CLI Commands
36
+
37
+ ### `claude-memory init`
38
+
39
+ Initialize memory system in current project.
40
+
41
+ ```bash
42
+ claude-memory init [options]
43
+
44
+ Options:
45
+ -s, --system <system> System identifier (SWARMSCALE, PANEL)
46
+ -n, --name <name> Project name
47
+ -f, --force Overwrite existing configuration
48
+ ```
49
+
50
+ ### `claude-memory generate`
51
+
52
+ Generate embedding registry from documentation.
53
+
54
+ ```bash
55
+ claude-memory generate [options]
56
+
57
+ Options:
58
+ -i, --incremental Only update changed files
59
+ --files <files> Specific files (comma-separated)
60
+ ```
61
+
62
+ ### `claude-memory scan`
63
+
64
+ Scan codebase for patterns.
65
+
66
+ ```bash
67
+ claude-memory scan [options]
68
+
69
+ Options:
70
+ -d, --dir <directory> Directory to scan (default: src)
71
+ -t, --threshold <n> Pattern threshold (default: 3)
72
+ ```
73
+
74
+ ### `claude-memory improve`
75
+
76
+ Run auto-improvement for triggered patterns.
77
+
78
+ ```bash
79
+ claude-memory improve [options]
80
+
81
+ Options:
82
+ --dry-run Show without making changes
83
+ -p, --pattern <id> Specific pattern to improve
84
+ ```
85
+
86
+ ### `claude-memory status`
87
+
88
+ Show memory system status.
89
+
90
+ ### `claude-memory dashboard`
91
+
92
+ Start the memory dashboard web UI.
93
+
94
+ ```bash
95
+ claude-memory dashboard [options]
96
+
97
+ Options:
98
+ -p, --port <port> Port to run on (default: 3847)
99
+ --no-open Don't open browser automatically
100
+ ```
101
+
102
+ ### `claude-memory analytics`
103
+
104
+ Show analytics and system health.
105
+
106
+ ```bash
107
+ claude-memory analytics [options]
108
+
109
+ Options:
110
+ -p, --period <period> Time period (day, week, month)
111
+ --json Output as JSON
112
+ ```
113
+
114
+ ### `claude-memory feedback`
115
+
116
+ View feedback statistics.
117
+
118
+ ### `claude-memory mcp`
119
+
120
+ Start the MCP server for Claude integration.
121
+
122
+ ---
123
+
124
+ ## Workflow Commands (NEW)
125
+
126
+ ### `claude-memory tasks`
127
+
128
+ View and manage tasks.
129
+
130
+ ```bash
131
+ claude-memory tasks [options]
132
+
133
+ Options:
134
+ -a, --all Show all tasks including completed
135
+ -l, --limit <number> Limit number of tasks (default: 10)
136
+ ```
137
+
138
+ ### `claude-memory ideas`
139
+
140
+ View captured ideas.
141
+
142
+ ```bash
143
+ claude-memory ideas [options]
144
+
145
+ Options:
146
+ -c, --category <cat> Filter by category (feature, refactor, bug, optimization, documentation)
147
+ -p, --priority <pri> Filter by priority (high, medium, low)
148
+ -l, --limit <number> Limit number of ideas (default: 20)
149
+ ```
150
+
151
+ ### `claude-memory improvements`
152
+
153
+ View suggested improvements.
154
+
155
+ ```bash
156
+ claude-memory improvements [options]
157
+
158
+ Options:
159
+ -t, --type <type> Filter by type (code_quality, performance, security, ux, architecture)
160
+ -e, --effort <effort> Filter by effort (small, medium, large)
161
+ -l, --limit <number> Limit number (default: 20)
162
+ ```
163
+
164
+ ### `claude-memory plan`
165
+
166
+ Manage work plans.
167
+
168
+ ```bash
169
+ claude-memory plan [options]
170
+
171
+ Options:
172
+ -s, --status Show current plan status
173
+ -c, --complete Complete current task
174
+ -n, --next Move to next task
175
+ -h, --history Show plan history
176
+ ```
177
+
178
+ ### `claude-memory capture <text>`
179
+
180
+ Quick capture an idea or improvement. Auto-categorizes based on content.
181
+
182
+ ```bash
183
+ claude-memory capture "Consider adding caching to API calls"
184
+ ```
185
+
186
+ ### `claude-memory export`
187
+
188
+ Export ideas and improvements as markdown.
189
+
190
+ ```bash
191
+ claude-memory export [options]
192
+
193
+ Options:
194
+ -o, --output <file> Output file (default: IDEAS_AND_IMPROVEMENTS.md)
195
+ ```
196
+
197
+ ---
198
+
199
+ ## Architecture
200
+
201
+ ```
202
+ @metanautical/claude-memory
203
+ ├── src/
204
+ │ ├── hooks/
205
+ │ │ ├── session-start.ts # Context loader on session start
206
+ │ │ ├── pre-tool-use.ts # Guards + embedding injection
207
+ │ │ ├── post-tool-use.ts # Record changes after Edit/Write
208
+ │ │ └── memory-checkpoint.ts # Record learnings after changes
209
+ │ ├── registry/
210
+ │ │ ├── generator.ts # Parse docs → embeddings
211
+ │ │ └── embeddings.ts # OpenAI/Gemini embedding service
212
+ │ ├── auto-improve/
213
+ │ │ ├── pattern-detector.ts # Detect repeated violations
214
+ │ │ └── eslint-generator.ts # Generate ESLint rules
215
+ │ ├── db/
216
+ │ │ ├── client.ts # DEV_Items database client (mock)
217
+ │ │ └── drizzle-client.ts # Real Drizzle ORM client
218
+ │ ├── mcp/
219
+ │ │ └── server.ts # MCP server for Claude tools
220
+ │ ├── dashboard/
221
+ │ │ ├── server.ts # Express dashboard server
222
+ │ │ └── ui.ts # React UI generator
223
+ │ ├── feedback/
224
+ │ │ └── collector.ts # User feedback collection
225
+ │ ├── analytics/
226
+ │ │ └── tracker.ts # Usage analytics & insights
227
+ │ ├── utils/
228
+ │ │ ├── config.ts # Configuration management
229
+ │ │ └── paths.ts # Path utilities
230
+ │ ├── types/
231
+ │ │ └── index.ts # Type definitions
232
+ │ ├── cli/
233
+ │ │ └── index.ts # CLI commands
234
+ │ └── index.ts # Main exports
235
+ ```
236
+
237
+ ## Configuration
238
+
239
+ ### `.claude/memory-config.json`
240
+
241
+ ```json
242
+ {
243
+ "system": "SWARMSCALE",
244
+ "projectName": "SwarmScale",
245
+ "domains": ["video-studio", "avatars", "campaigns"],
246
+ "guards": {
247
+ "enabled": true,
248
+ "rules": [
249
+ {
250
+ "id": "schema-protection",
251
+ "type": "block",
252
+ "filePattern": "src/server/schema/auth.ts",
253
+ "message": "PANEL_* tables are READ-ONLY"
254
+ }
255
+ ]
256
+ },
257
+ "embedding": {
258
+ "enabled": true,
259
+ "threshold": 0.60,
260
+ "maxSections": 3
261
+ },
262
+ "autoImprovement": {
263
+ "enabled": true,
264
+ "violationThreshold": 3,
265
+ "generateEslintRules": true
266
+ }
267
+ }
268
+ ```
269
+
270
+ ### `.claude/settings.json`
271
+
272
+ ```json
273
+ {
274
+ "hooks": {
275
+ "PreToolUse": [
276
+ {
277
+ "matcher": "Task",
278
+ "hooks": [{
279
+ "type": "command",
280
+ "command": "npx tsx node_modules/@metanautical/claude-memory/dist/hooks/pre-tool-use.js"
281
+ }]
282
+ }
283
+ ],
284
+ "SessionStart": [
285
+ {
286
+ "matcher": "",
287
+ "hooks": [{
288
+ "type": "command",
289
+ "command": "npx tsx node_modules/@metanautical/claude-memory/dist/hooks/session-start.js"
290
+ }]
291
+ }
292
+ ]
293
+ },
294
+ "plugins": {
295
+ "metanautical-memory": {
296
+ "version": "1.0.0",
297
+ "enabled": true
298
+ }
299
+ }
300
+ }
301
+ ```
302
+
303
+ ## Hooks
304
+
305
+ ### SessionStart Hook
306
+
307
+ Executes on session start:
308
+ 1. Detects module from `git diff` (last 24h)
309
+ 2. Queries DEV_Items for relevant memories
310
+ 3. Returns formatted context
311
+
312
+ ```typescript
313
+ import { SessionStartHook } from '@metanautical/claude-memory/hooks'
314
+
315
+ const hook = new SessionStartHook()
316
+ const result = await hook.execute()
317
+ // result.context contains session context
318
+ ```
319
+
320
+ ### PreToolUse Hook
321
+
322
+ Executes before Edit/Write/Task tools:
323
+ 1. **Edit/Write**: Validates against guard rules
324
+ 2. **Task**: Injects relevant knowledge via embeddings
325
+
326
+ ```typescript
327
+ import { PreToolUseHook } from '@metanautical/claude-memory/hooks'
328
+
329
+ const hook = new PreToolUseHook()
330
+ const result = await hook.execute({
331
+ tool_name: 'Edit',
332
+ parameters: { file_path: 'src/file.ts', new_string: '...' }
333
+ })
334
+
335
+ if (result.mode === 'block') {
336
+ // Guard violation - block operation
337
+ }
338
+ ```
339
+
340
+ ## Auto-Improvement
341
+
342
+ ### Pattern Detection
343
+
344
+ Built-in patterns detected:
345
+ - `any-type` - Using `any` type
346
+ - `console-log` - Console.log in production
347
+ - `eslint-disable` - ESLint disable comments
348
+ - `hardcoded-string` - UI strings not using i18n
349
+ - `direct-db-query` - Database queries in components
350
+ - `inline-style` - Inline styles instead of Tailwind
351
+
352
+ ### ESLint Rule Generation
353
+
354
+ When a pattern is detected 3+ times:
355
+
356
+ ```bash
357
+ # Scan for patterns
358
+ claude-memory scan
359
+
360
+ # Output:
361
+ # 🔴 any-type [high]
362
+ # Count: 5, Files: 3
363
+ # ⚠️ Patterns ready for auto-improvement
364
+
365
+ # Generate ESLint rule
366
+ claude-memory improve
367
+
368
+ # Creates: eslint-plugin-charter/rules/no-any-type.js
369
+ ```
370
+
371
+ ## Programmatic Usage
372
+
373
+ ```typescript
374
+ import {
375
+ loadConfig,
376
+ PatternDetector,
377
+ ESLintGenerator,
378
+ RegistryGenerator
379
+ } from '@metanautical/claude-memory'
380
+
381
+ // Load config
382
+ const config = await loadConfig(process.cwd())
383
+
384
+ // Detect patterns
385
+ const detector = new PatternDetector(config)
386
+ const patterns = detector.scan(fileContent, filePath)
387
+ const results = detector.getResults()
388
+
389
+ // Generate ESLint rules
390
+ const generator = new ESLintGenerator()
391
+ await generator.generateAllRules(results.triggered)
392
+
393
+ // Generate registry
394
+ const registry = new RegistryGenerator()
395
+ await registry.generate()
396
+ ```
397
+
398
+ ## System Isolation
399
+
400
+ Data is isolated by `system` field in DEV_Items:
401
+
402
+ | System | Project |
403
+ |--------|---------|
404
+ | `SWARMSCALE` | SwarmScale |
405
+ | `PANEL` | TheCharterPanel |
406
+ | `ECOSYSTEM` | Cross-project |
407
+
408
+ Always filter by system:
409
+
410
+ ```typescript
411
+ // Correct
412
+ db.select().from(devItems).where(eq(devItems.system, 'SWARMSCALE'))
413
+
414
+ // Wrong - returns ALL projects' data
415
+ db.select().from(devItems)
416
+ ```
417
+
418
+ ## Environment Variables
419
+
420
+ ```bash
421
+ # Required for embedding generation
422
+ OPENAI_API_KEY=sk-... # Preferred
423
+ GEMINI_API_KEY=... # Fallback
424
+
425
+ # Optional
426
+ MEMORY_DEBUG=true # Enable debug logging
427
+ ```
428
+
429
+ ## Development
430
+
431
+ ```bash
432
+ # Install dependencies
433
+ npm install
434
+
435
+ # Build
436
+ npm run build
437
+
438
+ # Watch mode
439
+ npm run dev
440
+
441
+ # Run tests
442
+ npm test
443
+
444
+ # Link for local development
445
+ npm link
446
+ ```
447
+
448
+ ## MCP Server
449
+
450
+ The MCP (Model Context Protocol) server exposes memory tools that Claude can use directly:
451
+
452
+ ```bash
453
+ # Start MCP server
454
+ claude-memory mcp
455
+ ```
456
+
457
+ **Available Tools:**
458
+ - `memory_search` - Search memories by query
459
+ - `memory_write` - Write new memory/learning
460
+ - `memory_list` - List recent memories
461
+ - `pattern_check` - Check for detected patterns
462
+ - `pattern_report` - Report a new pattern occurrence
463
+ - `session_context` - Get current session context
464
+ - `feedback_submit` - Submit feedback on a memory
465
+
466
+ ## Dashboard
467
+
468
+ Start the standalone web dashboard:
469
+
470
+ ```bash
471
+ claude-memory dashboard
472
+ # Opens http://localhost:3847
473
+ ```
474
+
475
+ **Features:**
476
+ - View all memories with search and filtering
477
+ - Browse detected patterns
478
+ - See session history
479
+ - Submit feedback on memories
480
+ - Create new memories
481
+ - View analytics and system health
482
+
483
+ ## Feedback Loop
484
+
485
+ The feedback system adjusts memory relevance based on user feedback:
486
+
487
+ ```typescript
488
+ import { createFeedbackCollector } from '@metanautical/claude-memory'
489
+
490
+ const collector = createFeedbackCollector('SWARMSCALE')
491
+
492
+ // Submit feedback
493
+ await collector.submitFeedback(memoryId, true, 'Very helpful!')
494
+
495
+ // Get feedback stats
496
+ const stats = await collector.getStats()
497
+ // { helpfulRate: 0.85, topHelpfulMemories: [...] }
498
+
499
+ // Get suggestions for deprecation
500
+ const deprecations = await collector.getSuggestedDeprecations()
501
+ ```
502
+
503
+ ## Analytics
504
+
505
+ Track usage and get insights:
506
+
507
+ ```typescript
508
+ import { createAnalyticsTracker } from '@metanautical/claude-memory'
509
+
510
+ const tracker = createAnalyticsTracker('SWARMSCALE')
511
+
512
+ // Track an event
513
+ await tracker.track('memory_access', { memoryId: '...' })
514
+
515
+ // Get usage stats
516
+ const usage = await tracker.getUsageStats('week')
517
+ // { sessions: 12, memoriesCreated: 5, searchesPerformed: 23, ... }
518
+
519
+ // Get system health
520
+ const health = await tracker.getSystemHealth()
521
+ // { status: 'healthy', issues: [], recommendations: [...] }
522
+
523
+ // Generate full report
524
+ const report = await tracker.generateReport()
525
+ ```
526
+
527
+ ## Database Configuration
528
+
529
+ Set environment variables for database connection:
530
+
531
+ ```bash
532
+ DATABASE_HOST=localhost
533
+ DATABASE_PORT=3306
534
+ DATABASE_USER=root
535
+ DATABASE_PASSWORD=your-password
536
+ DATABASE_NAME=metanautical
537
+ ```
538
+
539
+ ## License
540
+
541
+ MIT - MetaNautical Group
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Analytics module exports
3
+ */
4
+ export { AnalyticsTracker, createAnalyticsTracker, type AnalyticsEvent, type UsageStats, type MemoryInsights, type PatternInsights, type SystemHealth, } from './tracker.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,cAAc,CAAA"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Analytics module exports
3
+ */
4
+ export { AnalyticsTracker, createAnalyticsTracker, } from './tracker.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GAMvB,MAAM,cAAc,CAAA"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Analytics Tracker
3
+ *
4
+ * Tracks memory system usage and provides insights for optimization.
5
+ */
6
+ import type { DevSystem } from '../types/index.js';
7
+ export interface AnalyticsEvent {
8
+ type: 'session_start' | 'memory_access' | 'memory_create' | 'pattern_detected' | 'feedback_given' | 'search_performed';
9
+ metadata: Record<string, unknown>;
10
+ timestamp: string;
11
+ }
12
+ export interface UsageStats {
13
+ period: 'day' | 'week' | 'month';
14
+ sessions: number;
15
+ memoriesCreated: number;
16
+ memoriesAccessed: number;
17
+ searchesPerformed: number;
18
+ patternsDetected: number;
19
+ feedbackGiven: number;
20
+ avgSessionDuration: number;
21
+ }
22
+ export interface MemoryInsights {
23
+ mostAccessedMemories: Array<{
24
+ id: string;
25
+ title: string;
26
+ accessCount: number;
27
+ }>;
28
+ leastUsedMemories: Array<{
29
+ id: string;
30
+ title: string;
31
+ daysSinceAccess: number;
32
+ }>;
33
+ domainDistribution: Record<string, number>;
34
+ sourceDistribution: Record<string, number>;
35
+ memoryGrowthTrend: Array<{
36
+ date: string;
37
+ count: number;
38
+ }>;
39
+ }
40
+ export interface PatternInsights {
41
+ mostFrequentPatterns: Array<{
42
+ patternId: string;
43
+ occurrences: number;
44
+ severity: string;
45
+ }>;
46
+ patternsOverTime: Array<{
47
+ date: string;
48
+ patternId: string;
49
+ count: number;
50
+ }>;
51
+ autoImprovementCandidates: Array<{
52
+ patternId: string;
53
+ occurrences: number;
54
+ files: number;
55
+ }>;
56
+ }
57
+ export interface SystemHealth {
58
+ status: 'healthy' | 'degraded' | 'critical';
59
+ metrics: {
60
+ totalMemories: number;
61
+ activePatterns: number;
62
+ triggeredPatterns: number;
63
+ recentSessions: number;
64
+ feedbackRate: number;
65
+ avgMemoryAge: number;
66
+ };
67
+ issues: string[];
68
+ recommendations: string[];
69
+ }
70
+ export declare class AnalyticsTracker {
71
+ private client;
72
+ private system;
73
+ constructor(system: DevSystem);
74
+ /**
75
+ * Track an analytics event
76
+ */
77
+ track(type: AnalyticsEvent['type'], metadata?: Record<string, unknown>): Promise<void>;
78
+ /**
79
+ * Get usage statistics for a time period
80
+ */
81
+ getUsageStats(period?: UsageStats['period']): Promise<UsageStats>;
82
+ /**
83
+ * Get memory insights
84
+ */
85
+ getMemoryInsights(): Promise<MemoryInsights>;
86
+ /**
87
+ * Get pattern insights
88
+ */
89
+ getPatternInsights(): Promise<PatternInsights>;
90
+ /**
91
+ * Get system health status
92
+ */
93
+ getSystemHealth(): Promise<SystemHealth>;
94
+ /**
95
+ * Generate a comprehensive analytics report
96
+ */
97
+ generateReport(): Promise<{
98
+ generatedAt: string;
99
+ system: DevSystem;
100
+ health: SystemHealth;
101
+ usage: UsageStats;
102
+ memoryInsights: MemoryInsights;
103
+ patternInsights: PatternInsights;
104
+ }>;
105
+ }
106
+ export declare function createAnalyticsTracker(system: DevSystem): AnalyticsTracker;
107
+ //# sourceMappingURL=tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../src/analytics/tracker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAiC,MAAM,mBAAmB,CAAA;AAOjF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,eAAe,GAAG,eAAe,GAAG,eAAe,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,kBAAkB,CAAA;IACtH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAA;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,oBAAoB,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC/E,iBAAiB,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAChF,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,iBAAiB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC1D;AAED,MAAM,WAAW,eAAe;IAC9B,oBAAoB,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACzF,gBAAgB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC3E,yBAAyB,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC5F;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAA;IAC3C,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,CAAA;QACrB,cAAc,EAAE,MAAM,CAAA;QACtB,iBAAiB,EAAE,MAAM,CAAA;QACzB,cAAc,EAAE,MAAM,CAAA;QACtB,YAAY,EAAE,MAAM,CAAA;QACpB,YAAY,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,eAAe,EAAE,MAAM,EAAE,CAAA;CAC1B;AAMD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAAW;gBAEb,MAAM,EAAE,SAAS;IAK7B;;OAEG;IACG,KAAK,CACT,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,EAC5B,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,OAAO,CAAC,IAAI,CAAC;IAchB;;OAEG;IACG,aAAa,CAAC,MAAM,GAAE,UAAU,CAAC,QAAQ,CAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAuE/E;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAwFlD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IAmDpD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC;IAsF9C;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC;QAC9B,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,YAAY,CAAA;QACpB,KAAK,EAAE,UAAU,CAAA;QACjB,cAAc,EAAE,cAAc,CAAA;QAC9B,eAAe,EAAE,eAAe,CAAA;KACjC,CAAC;CAiBH;AAMD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,gBAAgB,CAE1E"}