cmp-standards 2.0.1 → 2.6.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 (167) hide show
  1. package/README.md +633 -541
  2. package/dist/cli/index.js +239 -7
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/dashboard/server.d.ts.map +1 -1
  5. package/dist/dashboard/server.js +203 -39
  6. package/dist/dashboard/server.js.map +1 -1
  7. package/dist/db/cloud.d.ts +174 -0
  8. package/dist/db/cloud.d.ts.map +1 -0
  9. package/dist/db/cloud.js +241 -0
  10. package/dist/db/cloud.js.map +1 -0
  11. package/dist/db/drizzle-client.d.ts +3 -3
  12. package/dist/db/drizzle-client.d.ts.map +1 -1
  13. package/dist/db/drizzle-client.js +57 -58
  14. package/dist/db/drizzle-client.js.map +1 -1
  15. package/dist/db/errors.d.ts +76 -0
  16. package/dist/db/errors.d.ts.map +1 -0
  17. package/dist/db/errors.js +135 -0
  18. package/dist/db/errors.js.map +1 -0
  19. package/dist/db/turso-client.d.ts +178 -0
  20. package/dist/db/turso-client.d.ts.map +1 -0
  21. package/dist/db/turso-client.js +455 -0
  22. package/dist/db/turso-client.js.map +1 -0
  23. package/dist/db/upstash-client.d.ts +161 -0
  24. package/dist/db/upstash-client.d.ts.map +1 -0
  25. package/dist/db/upstash-client.js +325 -0
  26. package/dist/db/upstash-client.js.map +1 -0
  27. package/dist/eslint/rules/no-async-useeffect.js +6 -6
  28. package/dist/hooks/cloud-post-tool-use.d.ts +30 -0
  29. package/dist/hooks/cloud-post-tool-use.d.ts.map +1 -0
  30. package/dist/hooks/cloud-post-tool-use.js +116 -0
  31. package/dist/hooks/cloud-post-tool-use.js.map +1 -0
  32. package/dist/hooks/cloud-pre-tool-use.d.ts +19 -0
  33. package/dist/hooks/cloud-pre-tool-use.d.ts.map +1 -0
  34. package/dist/hooks/cloud-pre-tool-use.js +149 -0
  35. package/dist/hooks/cloud-pre-tool-use.js.map +1 -0
  36. package/dist/hooks/cloud-session-start.d.ts +32 -0
  37. package/dist/hooks/cloud-session-start.d.ts.map +1 -0
  38. package/dist/hooks/cloud-session-start.js +257 -0
  39. package/dist/hooks/cloud-session-start.js.map +1 -0
  40. package/dist/hooks/index.d.ts +3 -0
  41. package/dist/hooks/index.d.ts.map +1 -1
  42. package/dist/hooks/index.js +5 -0
  43. package/dist/hooks/index.js.map +1 -1
  44. package/dist/hooks/memory-checkpoint.d.ts.map +1 -1
  45. package/dist/hooks/memory-checkpoint.js +12 -20
  46. package/dist/hooks/memory-checkpoint.js.map +1 -1
  47. package/dist/hooks/pre-tool-use.d.ts +2 -8
  48. package/dist/hooks/pre-tool-use.d.ts.map +1 -1
  49. package/dist/hooks/pre-tool-use.js +7 -106
  50. package/dist/hooks/pre-tool-use.js.map +1 -1
  51. package/dist/hooks/session-start.d.ts +2 -1
  52. package/dist/hooks/session-start.d.ts.map +1 -1
  53. package/dist/hooks/session-start.js +111 -77
  54. package/dist/hooks/session-start.js.map +1 -1
  55. package/dist/index.d.ts +14 -0
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +18 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/mcp/server.d.ts.map +1 -1
  60. package/dist/mcp/server.js +225 -2
  61. package/dist/mcp/server.js.map +1 -1
  62. package/dist/schema/plans.d.ts +194 -0
  63. package/dist/schema/plans.d.ts.map +1 -0
  64. package/dist/schema/plans.js +180 -0
  65. package/dist/schema/plans.js.map +1 -0
  66. package/dist/schema/tracking.d.ts +644 -0
  67. package/dist/schema/tracking.d.ts.map +1 -0
  68. package/dist/schema/tracking.js +204 -0
  69. package/dist/schema/tracking.js.map +1 -0
  70. package/dist/services/ContextGenerator.d.ts +16 -0
  71. package/dist/services/ContextGenerator.d.ts.map +1 -0
  72. package/dist/services/ContextGenerator.js +62 -0
  73. package/dist/services/ContextGenerator.js.map +1 -0
  74. package/dist/services/PlanManager.d.ts +99 -0
  75. package/dist/services/PlanManager.d.ts.map +1 -0
  76. package/dist/services/PlanManager.js +372 -0
  77. package/dist/services/PlanManager.js.map +1 -0
  78. package/dist/services/ProjectScaffold.d.ts.map +1 -1
  79. package/dist/services/ProjectScaffold.js +109 -81
  80. package/dist/services/ProjectScaffold.js.map +1 -1
  81. package/dist/services/TaskTracker.d.ts +1 -1
  82. package/dist/services/TaskTracker.d.ts.map +1 -1
  83. package/dist/services/TaskTracker.js +4 -8
  84. package/dist/services/TaskTracker.js.map +1 -1
  85. package/dist/services/WorkPlanManager.d.ts +1 -1
  86. package/dist/services/WorkPlanManager.d.ts.map +1 -1
  87. package/dist/services/WorkPlanManager.js +8 -14
  88. package/dist/services/WorkPlanManager.js.map +1 -1
  89. package/dist/services/auto-inject.d.ts +1 -0
  90. package/dist/services/auto-inject.d.ts.map +1 -1
  91. package/dist/services/auto-inject.js +12 -17
  92. package/dist/services/auto-inject.js.map +1 -1
  93. package/dist/services/context-injector.d.ts +105 -0
  94. package/dist/services/context-injector.d.ts.map +1 -0
  95. package/dist/services/context-injector.js +357 -0
  96. package/dist/services/context-injector.js.map +1 -0
  97. package/dist/services/cross-project-sync.d.ts +2 -0
  98. package/dist/services/cross-project-sync.d.ts.map +1 -1
  99. package/dist/services/cross-project-sync.js +26 -21
  100. package/dist/services/cross-project-sync.js.map +1 -1
  101. package/dist/services/index.d.ts +15 -15
  102. package/dist/services/index.d.ts.map +1 -1
  103. package/dist/services/index.js +18 -20
  104. package/dist/services/index.js.map +1 -1
  105. package/dist/services/memory-consolidation.d.ts.map +1 -1
  106. package/dist/services/memory-consolidation.js +30 -27
  107. package/dist/services/memory-consolidation.js.map +1 -1
  108. package/dist/services/memory-router.d.ts +98 -0
  109. package/dist/services/memory-router.d.ts.map +1 -0
  110. package/dist/services/memory-router.js +373 -0
  111. package/dist/services/memory-router.js.map +1 -0
  112. package/dist/services/pattern-tracker.d.ts +93 -0
  113. package/dist/services/pattern-tracker.d.ts.map +1 -0
  114. package/dist/services/pattern-tracker.js +347 -0
  115. package/dist/services/pattern-tracker.js.map +1 -0
  116. package/dist/services/semantic-search.d.ts +33 -35
  117. package/dist/services/semantic-search.d.ts.map +1 -1
  118. package/dist/services/semantic-search.js +207 -165
  119. package/dist/services/semantic-search.js.map +1 -1
  120. package/dist/utils/env-loader.d.ts +41 -0
  121. package/dist/utils/env-loader.d.ts.map +1 -0
  122. package/dist/utils/env-loader.js +78 -0
  123. package/dist/utils/env-loader.js.map +1 -0
  124. package/dist/utils/git.d.ts +52 -0
  125. package/dist/utils/git.d.ts.map +1 -0
  126. package/dist/utils/git.js +267 -0
  127. package/dist/utils/git.js.map +1 -0
  128. package/dist/utils/paths.d.ts +39 -5
  129. package/dist/utils/paths.d.ts.map +1 -1
  130. package/dist/utils/paths.js +88 -7
  131. package/dist/utils/paths.js.map +1 -1
  132. package/package.json +100 -94
  133. package/standards/README.md +50 -0
  134. package/standards/experts/expert-routing.md +215 -0
  135. package/standards/general/code-quality.md +86 -0
  136. package/standards/general/memory-usage.md +205 -0
  137. package/standards/general/sync-workflow.md +235 -0
  138. package/standards/general/workflow.md +82 -0
  139. package/standards/hooks/mandatory-tracking.md +446 -0
  140. package/standards/infrastructure/cloud-database.md +287 -0
  141. package/standards/mcp/server-design.md +243 -0
  142. package/standards/mcp/tool-patterns.md +354 -0
  143. package/standards/skills/skill-structure.md +286 -0
  144. package/standards/skills/workflow-design.md +323 -0
  145. package/standards/tools/tool-design.md +297 -0
  146. package/templates/agents/architecture-expert.md +61 -61
  147. package/templates/agents/database-expert.md +62 -62
  148. package/templates/agents/documentation-expert.md +57 -57
  149. package/templates/agents/memory-expert.md +88 -88
  150. package/templates/agents/performance-expert.md +61 -61
  151. package/templates/agents/security-expert.md +59 -59
  152. package/templates/agents/ux-expert.md +63 -63
  153. package/templates/agents/worker.md +75 -75
  154. package/templates/ai-skills/SKILL_TEMPLATE.md +55 -55
  155. package/templates/claude-settings.json +72 -0
  156. package/templates/commands/experts.md +138 -138
  157. package/templates/hooks/README.md +158 -158
  158. package/templates/hooks/project.config.json.template +77 -77
  159. package/templates/hooks/settings.local.json.template +57 -57
  160. package/templates/memory-config.json +56 -82
  161. package/templates/memory-config.schema.json +212 -212
  162. package/templates/settings.json +58 -58
  163. package/templates/skills/continue.md +205 -0
  164. package/templates/workflows/business-improvement.md +264 -264
  165. package/templates/workflows/expert-review.md +153 -153
  166. package/templates/workflows/internal-app.md +245 -245
  167. package/templates/workflows/sync-docs.md +187 -187
@@ -91,6 +91,9 @@ export class MemoryConsolidationService {
91
91
  result.analyzed = memories.length;
92
92
  const now = Date.now();
93
93
  const thresholdMs = daysThreshold * 24 * 60 * 60 * 1000;
94
+ // Prepare updates for batch processing
95
+ const archiveUpdates = [];
96
+ const decayUpdates = [];
94
97
  for (const memory of memories) {
95
98
  const content = memory.content;
96
99
  if (!content)
@@ -105,30 +108,28 @@ export class MemoryConsolidationService {
105
108
  // Calculate decay score
106
109
  const currentScore = content.decayScore ?? 1.0;
107
110
  const newScore = currentScore * decayFactor;
108
- if (!dryRun) {
109
- if (newScore < archiveThreshold) {
110
- // Archive the memory
111
- await this.client.update(memory.id, { status: 'archived' });
112
- result.archived++;
113
- }
114
- else {
115
- // Update decay score
116
- await this.client.update(memory.id, {
117
- content: { ...content, decayScore: newScore },
118
- });
119
- result.decayed++;
120
- }
111
+ if (newScore < archiveThreshold) {
112
+ archiveUpdates.push(memory.id);
113
+ result.archived++;
121
114
  }
122
115
  else {
123
- if (newScore < archiveThreshold) {
124
- result.archived++;
125
- }
126
- else {
127
- result.decayed++;
128
- }
116
+ decayUpdates.push({
117
+ id: memory.id,
118
+ content: { ...content, decayScore: newScore },
119
+ });
120
+ result.decayed++;
129
121
  }
130
122
  }
131
123
  }
124
+ // Execute updates in parallel if not dry run
125
+ if (!dryRun) {
126
+ await Promise.all([
127
+ // Archive updates
128
+ ...archiveUpdates.map(id => this.client.update(id, { status: 'archived' })),
129
+ // Decay updates
130
+ ...decayUpdates.map(({ id, content }) => this.client.update(id, { content })),
131
+ ]);
132
+ }
132
133
  return result;
133
134
  }
134
135
  /**
@@ -239,14 +240,16 @@ export class MemoryConsolidationService {
239
240
  body: mergedBody,
240
241
  mergedFrom: others.map(o => o.id),
241
242
  };
242
- await this.client.update(primary.id, {
243
- content: mergedContent,
244
- tags: Array.from(allTags),
245
- });
246
- // Archive others
247
- for (const other of others) {
248
- await this.client.update(other.id, { status: 'archived' });
249
- }
243
+ // Execute all updates in parallel to avoid N+1
244
+ await Promise.all([
245
+ // Update primary
246
+ this.client.update(primary.id, {
247
+ content: mergedContent,
248
+ tags: Array.from(allTags),
249
+ }),
250
+ // Archive others
251
+ ...others.map(other => this.client.update(other.id, { status: 'archived' })),
252
+ ]);
250
253
  return primary;
251
254
  }
252
255
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"memory-consolidation.js","sourceRoot":"","sources":["../../src/services/memory-consolidation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-consolidation.js","sourceRoot":"","sources":["../../src/services/memory-consolidation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * @file Memory Router Service
3
+ * @description Unified memory layer that routes queries across all backends
4
+ *
5
+ * Backends:
6
+ * - DEV_Items (Turso/SQLite) - Persistent structured storage
7
+ * - Upstash Vector - Semantic search with embeddings
8
+ * - Upstash Redis - Session cache and quick lookups
9
+ */
10
+ import type { DevSystem, PatternContent } from '../types/index.js';
11
+ export interface UnifiedMemory {
12
+ id: string;
13
+ title: string;
14
+ body: string;
15
+ domain?: string;
16
+ source: 'turso' | 'vector' | 'redis' | 'claude-mem';
17
+ score?: number;
18
+ createdAt: string;
19
+ tags?: string[];
20
+ metadata?: Record<string, unknown>;
21
+ }
22
+ export interface SearchOptions {
23
+ query: string;
24
+ system: DevSystem;
25
+ domain?: string;
26
+ limit?: number;
27
+ includeArchived?: boolean;
28
+ minScore?: number;
29
+ }
30
+ export interface SearchResult {
31
+ memories: UnifiedMemory[];
32
+ sources: {
33
+ turso: number;
34
+ vector: number;
35
+ redis: number;
36
+ };
37
+ took: number;
38
+ }
39
+ export interface WriteOptions {
40
+ system: DevSystem;
41
+ title: string;
42
+ body: string;
43
+ domain?: string;
44
+ tags?: string[];
45
+ source?: 'claude' | 'gemini' | 'user' | 'system' | 'checkpoint';
46
+ priority?: 'critical' | 'high' | 'medium' | 'low';
47
+ sessionId?: string;
48
+ relatedFiles?: string[];
49
+ }
50
+ declare class MemoryRouterService {
51
+ private initialized;
52
+ /**
53
+ * Initialize all backends
54
+ */
55
+ init(): Promise<void>;
56
+ /**
57
+ * Unified search across all memory backends
58
+ */
59
+ search(options: SearchOptions): Promise<SearchResult>;
60
+ /**
61
+ * Write memory to all backends atomically
62
+ */
63
+ write(options: WriteOptions): Promise<string>;
64
+ /**
65
+ * Get memories by domain for context loading
66
+ */
67
+ getByDomain(system: DevSystem, domain: string, limit?: number): Promise<UnifiedMemory[]>;
68
+ /**
69
+ * Get unresolved issues/gotchas for a domain
70
+ */
71
+ getUnresolved(system: DevSystem, domain?: string): Promise<UnifiedMemory[]>;
72
+ /**
73
+ * Get recent memories across all domains
74
+ */
75
+ getRecent(system: DevSystem, limit?: number): Promise<UnifiedMemory[]>;
76
+ /**
77
+ * Get patterns that have reached threshold
78
+ */
79
+ getTriggeredPatterns(system: DevSystem): Promise<PatternContent[]>;
80
+ /**
81
+ * Sync claude-mem observations to DEV_Items
82
+ * Call this periodically or on session start
83
+ */
84
+ syncFromClaudeMem(_system: DevSystem): Promise<number>;
85
+ private searchTurso;
86
+ private searchVector;
87
+ private searchRedis;
88
+ private writeToTurso;
89
+ private writeToVector;
90
+ private writeToRedis;
91
+ /**
92
+ * Convert a raw database row to UnifiedMemory
93
+ */
94
+ private rowToUnifiedMemory;
95
+ }
96
+ export declare const memoryRouter: MemoryRouterService;
97
+ export default memoryRouter;
98
+ //# sourceMappingURL=memory-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-router.d.ts","sourceRoot":"","sources":["../../src/services/memory-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAiB,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAMjF,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,CAAA;IACnD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,SAAS,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAA;IAC/D,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;IACjD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB;AAMD,cAAM,mBAAmB;IACvB,OAAO,CAAC,WAAW,CAAQ;IAE3B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAyD3D;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IA0CnD;;OAEG;IACG,WAAW,CACf,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,SAAI,GACR,OAAO,CAAC,aAAa,EAAE,CAAC;IAsB3B;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAiCjF;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAqBxE;;OAEG;IACG,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA+BxE;;;OAGG;IACG,iBAAiB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;YAW9C,WAAW;YA+CX,YAAY;YA8BZ,WAAW;YAoBX,YAAY;YAWZ,aAAa;YAwBb,YAAY;IA+B1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAsB3B;AAMD,eAAO,MAAM,YAAY,qBAA4B,CAAA;AACrD,eAAe,YAAY,CAAA"}
@@ -0,0 +1,373 @@
1
+ /**
2
+ * @file Memory Router Service
3
+ * @description Unified memory layer that routes queries across all backends
4
+ *
5
+ * Backends:
6
+ * - DEV_Items (Turso/SQLite) - Persistent structured storage
7
+ * - Upstash Vector - Semantic search with embeddings
8
+ * - Upstash Redis - Session cache and quick lookups
9
+ */
10
+ import { cloud } from '../db/cloud.js';
11
+ import { upstash } from '../db/upstash-client.js';
12
+ import { turso } from '../db/turso-client.js';
13
+ // =============================================================================
14
+ // Memory Router Implementation
15
+ // =============================================================================
16
+ class MemoryRouterService {
17
+ initialized = false;
18
+ /**
19
+ * Initialize all backends
20
+ */
21
+ async init() {
22
+ if (this.initialized)
23
+ return;
24
+ await cloud.ensure();
25
+ this.initialized = true;
26
+ }
27
+ /**
28
+ * Unified search across all memory backends
29
+ */
30
+ async search(options) {
31
+ await this.init();
32
+ const start = Date.now();
33
+ const { query, system, domain, limit = 10, minScore = 0.5 } = options;
34
+ const results = [];
35
+ const sources = { turso: 0, vector: 0, redis: 0 };
36
+ // 1. Search Turso (keyword-based)
37
+ try {
38
+ const tursoResults = await this.searchTurso(query, system, domain, limit);
39
+ results.push(...tursoResults);
40
+ sources.turso = tursoResults.length;
41
+ }
42
+ catch (error) {
43
+ console.error('[MemoryRouter] Turso search failed:', error);
44
+ }
45
+ // 2. Search Vector (semantic)
46
+ try {
47
+ const vectorResults = await this.searchVector(query, system, limit, minScore);
48
+ // Deduplicate by title
49
+ const existingTitles = new Set(results.map(r => r.title.toLowerCase()));
50
+ const newVectorResults = vectorResults.filter(r => !existingTitles.has(r.title.toLowerCase()));
51
+ results.push(...newVectorResults);
52
+ sources.vector = newVectorResults.length;
53
+ }
54
+ catch (error) {
55
+ console.error('[MemoryRouter] Vector search failed:', error);
56
+ }
57
+ // 3. Check Redis cache for recent memories
58
+ try {
59
+ const redisResults = await this.searchRedis(query, system, limit);
60
+ const existingIds = new Set(results.map(r => r.id));
61
+ const newRedisResults = redisResults.filter(r => !existingIds.has(r.id));
62
+ results.push(...newRedisResults);
63
+ sources.redis = newRedisResults.length;
64
+ }
65
+ catch (error) {
66
+ console.error('[MemoryRouter] Redis search failed:', error);
67
+ }
68
+ // Sort by score (if available) or recency
69
+ results.sort((a, b) => {
70
+ if (a.score !== undefined && b.score !== undefined) {
71
+ return b.score - a.score;
72
+ }
73
+ return new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime();
74
+ });
75
+ return {
76
+ memories: results.slice(0, limit),
77
+ sources,
78
+ took: Date.now() - start
79
+ };
80
+ }
81
+ /**
82
+ * Write memory to all backends atomically
83
+ */
84
+ async write(options) {
85
+ await this.init();
86
+ const { system, title, body, domain, tags = [], source = 'system', priority = 'medium', sessionId, relatedFiles = [] } = options;
87
+ const id = `mem_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
88
+ const createdAt = new Date().toISOString();
89
+ const content = {
90
+ title,
91
+ body,
92
+ domain,
93
+ source,
94
+ sessionId,
95
+ relatedFiles
96
+ };
97
+ // Write to all backends in parallel
98
+ await Promise.all([
99
+ // 1. Turso (primary)
100
+ this.writeToTurso(id, system, content, tags, priority),
101
+ // 2. Vector (for semantic search)
102
+ this.writeToVector(id, title, body, system, domain),
103
+ // 3. Redis (for quick access cache)
104
+ this.writeToRedis(id, system, { ...content, createdAt }, tags)
105
+ ]);
106
+ return id;
107
+ }
108
+ /**
109
+ * Get memories by domain for context loading
110
+ */
111
+ async getByDomain(system, domain, limit = 5) {
112
+ await this.init();
113
+ try {
114
+ const db = turso.getClient();
115
+ const result = await db.execute({
116
+ sql: `SELECT * FROM items
117
+ WHERE system = ? AND type = 'memory'
118
+ AND json_extract(content, '$.domain') = ?
119
+ AND status != 'archived'
120
+ ORDER BY updated_at DESC
121
+ LIMIT ?`,
122
+ args: [system, domain, limit]
123
+ });
124
+ return result.rows.map(row => this.rowToUnifiedMemory(row));
125
+ }
126
+ catch (error) {
127
+ console.error('[MemoryRouter] getByDomain failed:', error);
128
+ return [];
129
+ }
130
+ }
131
+ /**
132
+ * Get unresolved issues/gotchas for a domain
133
+ */
134
+ async getUnresolved(system, domain) {
135
+ await this.init();
136
+ try {
137
+ const db = turso.getClient();
138
+ let sql = `
139
+ SELECT * FROM items
140
+ WHERE system = ? AND type = 'memory'
141
+ AND status = 'active'
142
+ AND (
143
+ json_extract(content, '$.title') LIKE '%gotcha%'
144
+ OR json_extract(content, '$.title') LIKE '%bug%'
145
+ OR json_extract(content, '$.title') LIKE '%issue%'
146
+ OR json_extract(content, '$.title') LIKE '%warning%'
147
+ )
148
+ `;
149
+ const args = [system];
150
+ if (domain) {
151
+ sql += ` AND json_extract(content, '$.domain') = ?`;
152
+ args.push(domain);
153
+ }
154
+ sql += ` ORDER BY updated_at DESC LIMIT 10`;
155
+ const result = await db.execute({ sql, args });
156
+ return result.rows.map(row => this.rowToUnifiedMemory(row));
157
+ }
158
+ catch (error) {
159
+ console.error('[MemoryRouter] getUnresolved failed:', error);
160
+ return [];
161
+ }
162
+ }
163
+ /**
164
+ * Get recent memories across all domains
165
+ */
166
+ async getRecent(system, limit = 10) {
167
+ await this.init();
168
+ try {
169
+ const db = turso.getClient();
170
+ const result = await db.execute({
171
+ sql: `SELECT * FROM items
172
+ WHERE system = ? AND type = 'memory'
173
+ AND status != 'archived'
174
+ ORDER BY updated_at DESC
175
+ LIMIT ?`,
176
+ args: [system, limit]
177
+ });
178
+ return result.rows.map(row => this.rowToUnifiedMemory(row));
179
+ }
180
+ catch (error) {
181
+ console.error('[MemoryRouter] getRecent failed:', error);
182
+ return [];
183
+ }
184
+ }
185
+ /**
186
+ * Get patterns that have reached threshold
187
+ */
188
+ async getTriggeredPatterns(system) {
189
+ await this.init();
190
+ try {
191
+ const db = turso.getClient();
192
+ const result = await db.execute({
193
+ sql: `SELECT * FROM items
194
+ WHERE system = ? AND type = 'pattern'
195
+ AND status = 'triggered'
196
+ ORDER BY updated_at DESC`,
197
+ args: [system]
198
+ });
199
+ return result.rows
200
+ .map(row => {
201
+ try {
202
+ const content = typeof row.content === 'string'
203
+ ? JSON.parse(row.content)
204
+ : row.content;
205
+ return content;
206
+ }
207
+ catch {
208
+ return null;
209
+ }
210
+ })
211
+ .filter((p) => p !== null);
212
+ }
213
+ catch (error) {
214
+ console.error('[MemoryRouter] getTriggeredPatterns failed:', error);
215
+ return [];
216
+ }
217
+ }
218
+ /**
219
+ * Sync claude-mem observations to DEV_Items
220
+ * Call this periodically or on session start
221
+ */
222
+ async syncFromClaudeMem(_system) {
223
+ // This would integrate with claude-mem MCP
224
+ // For now, return 0 as placeholder
225
+ // TODO: Implement claude-mem integration
226
+ return 0;
227
+ }
228
+ // =============================================================================
229
+ // Private Backend Methods
230
+ // =============================================================================
231
+ async searchTurso(query, system, domain, limit) {
232
+ const searchTerms = query.toLowerCase().split(' ').filter(t => t.length > 2);
233
+ if (searchTerms.length === 0) {
234
+ return this.getRecent(system, limit);
235
+ }
236
+ // Build LIKE conditions for each term
237
+ const likeConditions = searchTerms.map(() => `(LOWER(json_extract(content, '$.title')) LIKE ? OR LOWER(json_extract(content, '$.body')) LIKE ?)`).join(' AND ');
238
+ const args = [system];
239
+ for (const term of searchTerms) {
240
+ args.push(`%${term}%`, `%${term}%`);
241
+ }
242
+ let sql = `
243
+ SELECT * FROM items
244
+ WHERE system = ? AND type = 'memory'
245
+ AND status != 'archived'
246
+ AND (${likeConditions})
247
+ `;
248
+ if (domain) {
249
+ sql += ` AND json_extract(content, '$.domain') = ?`;
250
+ args.push(domain);
251
+ }
252
+ sql += ` ORDER BY updated_at DESC LIMIT ?`;
253
+ args.push(limit);
254
+ try {
255
+ const db = turso.getClient();
256
+ const result = await db.execute({ sql, args });
257
+ return result.rows.map(row => this.rowToUnifiedMemory(row));
258
+ }
259
+ catch (error) {
260
+ console.error('[MemoryRouter] searchTurso failed:', error);
261
+ return [];
262
+ }
263
+ }
264
+ async searchVector(query, system, limit, minScore) {
265
+ try {
266
+ const results = await upstash.searchVectors(query, {
267
+ topK: limit,
268
+ filter: `system = "${system}"`,
269
+ includeMetadata: true
270
+ });
271
+ return results
272
+ .filter(r => r.score >= minScore)
273
+ .map(r => ({
274
+ id: r.id,
275
+ title: r.metadata?.title || 'Untitled',
276
+ body: r.metadata?.body || '',
277
+ domain: r.metadata?.domain,
278
+ source: 'vector',
279
+ score: r.score,
280
+ createdAt: r.metadata?.createdAt || new Date().toISOString(),
281
+ tags: r.metadata?.tags
282
+ }));
283
+ }
284
+ catch {
285
+ return [];
286
+ }
287
+ }
288
+ async searchRedis(_query, system, limit) {
289
+ try {
290
+ // Get recent memories from Redis cache
291
+ const cacheKey = `recent_memories:${system}`;
292
+ const cached = await upstash.getCache(cacheKey);
293
+ if (cached) {
294
+ return cached.slice(0, limit);
295
+ }
296
+ return [];
297
+ }
298
+ catch {
299
+ return [];
300
+ }
301
+ }
302
+ async writeToTurso(id, system, content, _tags, _priority) {
303
+ // Use the turso.create method which handles the insert properly
304
+ await turso.create('memory', system, content, 'active');
305
+ }
306
+ async writeToVector(id, title, body, system, domain) {
307
+ try {
308
+ await upstash.upsertVector(id, `${title}\n\n${body}`, {
309
+ title,
310
+ body: body.slice(0, 500), // Limit body size in metadata
311
+ system,
312
+ domain,
313
+ createdAt: new Date().toISOString()
314
+ });
315
+ }
316
+ catch (error) {
317
+ console.error('[MemoryRouter] Vector write failed:', error);
318
+ }
319
+ }
320
+ async writeToRedis(id, system, content, tags) {
321
+ try {
322
+ // Cache individual memory
323
+ await upstash.setCache(`memory:${id}`, { ...content, tags }, 3600 * 24); // 24h TTL
324
+ // Update recent memories list
325
+ const recentKey = `recent_memories:${system}`;
326
+ const existing = await upstash.getCache(recentKey) || [];
327
+ const newMemory = {
328
+ id,
329
+ title: content.title,
330
+ body: content.body,
331
+ domain: content.domain,
332
+ source: 'redis',
333
+ createdAt: content.createdAt,
334
+ tags
335
+ };
336
+ const updated = [newMemory, ...existing].slice(0, 20); // Keep last 20
337
+ await upstash.setCache(recentKey, updated, 3600); // 1h TTL
338
+ }
339
+ catch (error) {
340
+ console.error('[MemoryRouter] Redis write failed:', error);
341
+ }
342
+ }
343
+ /**
344
+ * Convert a raw database row to UnifiedMemory
345
+ */
346
+ rowToUnifiedMemory(row) {
347
+ let content;
348
+ try {
349
+ content = typeof row.content === 'string'
350
+ ? JSON.parse(row.content)
351
+ : row.content || { title: 'Untitled', body: '' };
352
+ }
353
+ catch {
354
+ content = { title: 'Untitled', body: '' };
355
+ }
356
+ return {
357
+ id: row.id || '',
358
+ title: content.title || 'Untitled',
359
+ body: content.body || '',
360
+ domain: content.domain,
361
+ source: 'turso',
362
+ createdAt: row.created_at || row.updated_at || new Date().toISOString(),
363
+ tags: undefined,
364
+ metadata: content
365
+ };
366
+ }
367
+ }
368
+ // =============================================================================
369
+ // Export Singleton
370
+ // =============================================================================
371
+ export const memoryRouter = new MemoryRouterService();
372
+ export default memoryRouter;
373
+ //# sourceMappingURL=memory-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-router.js","sourceRoot":"","sources":["../../src/services/memory-router.ts"],"names":[],"mappings":"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"}