cmp-standards 2.4.0 → 2.7.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 (97) hide show
  1. package/README.md +633 -611
  2. package/dist/cli/index.js +0 -0
  3. package/dist/db/drizzle-client.d.ts +3 -3
  4. package/dist/db/drizzle-client.d.ts.map +1 -1
  5. package/dist/db/drizzle-client.js +57 -58
  6. package/dist/db/drizzle-client.js.map +1 -1
  7. package/dist/db/turso-client.js +11 -11
  8. package/dist/eslint/rules/no-async-useeffect.js +6 -6
  9. package/dist/hooks/cloud-pre-tool-use.js +20 -20
  10. package/dist/hooks/cloud-session-start.d.ts +15 -3
  11. package/dist/hooks/cloud-session-start.d.ts.map +1 -1
  12. package/dist/hooks/cloud-session-start.js +135 -8
  13. package/dist/hooks/cloud-session-start.js.map +1 -1
  14. package/dist/hooks/session-start.d.ts +2 -1
  15. package/dist/hooks/session-start.d.ts.map +1 -1
  16. package/dist/hooks/session-start.js +99 -74
  17. package/dist/hooks/session-start.js.map +1 -1
  18. package/dist/index.d.ts +4 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +4 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/mcp/server.js +2 -2
  23. package/dist/mcp/server.js.map +1 -1
  24. package/dist/schema/plans.d.ts +194 -0
  25. package/dist/schema/plans.d.ts.map +1 -0
  26. package/dist/schema/plans.js +180 -0
  27. package/dist/schema/plans.js.map +1 -0
  28. package/dist/schema/tracking.d.ts +90 -90
  29. package/dist/services/ContextGenerator.d.ts +16 -0
  30. package/dist/services/ContextGenerator.d.ts.map +1 -0
  31. package/dist/services/ContextGenerator.js +62 -0
  32. package/dist/services/ContextGenerator.js.map +1 -0
  33. package/dist/services/PlanManager.d.ts +99 -0
  34. package/dist/services/PlanManager.d.ts.map +1 -0
  35. package/dist/services/PlanManager.js +372 -0
  36. package/dist/services/PlanManager.js.map +1 -0
  37. package/dist/services/ProjectScaffold.js +76 -76
  38. package/dist/services/context-injector.d.ts +111 -0
  39. package/dist/services/context-injector.d.ts.map +1 -0
  40. package/dist/services/context-injector.js +397 -0
  41. package/dist/services/context-injector.js.map +1 -0
  42. package/dist/services/index.d.ts +15 -15
  43. package/dist/services/index.d.ts.map +1 -1
  44. package/dist/services/index.js +18 -20
  45. package/dist/services/index.js.map +1 -1
  46. package/dist/services/memory-router.d.ts +122 -0
  47. package/dist/services/memory-router.d.ts.map +1 -0
  48. package/dist/services/memory-router.js +517 -0
  49. package/dist/services/memory-router.js.map +1 -0
  50. package/dist/services/pattern-tracker.d.ts +97 -0
  51. package/dist/services/pattern-tracker.d.ts.map +1 -0
  52. package/dist/services/pattern-tracker.js +425 -0
  53. package/dist/services/pattern-tracker.js.map +1 -0
  54. package/dist/services/semantic-search.d.ts +33 -35
  55. package/dist/services/semantic-search.d.ts.map +1 -1
  56. package/dist/services/semantic-search.js +207 -165
  57. package/dist/services/semantic-search.js.map +1 -1
  58. package/dist/types/index.d.ts +329 -4
  59. package/dist/types/index.d.ts.map +1 -1
  60. package/dist/types/index.js +186 -9
  61. package/dist/types/index.js.map +1 -1
  62. package/package.json +104 -100
  63. package/standards/README.md +50 -50
  64. package/standards/experts/expert-routing.md +215 -215
  65. package/standards/general/code-quality.md +86 -86
  66. package/standards/general/memory-usage.md +205 -205
  67. package/standards/general/sync-workflow.md +235 -235
  68. package/standards/general/workflow.md +82 -82
  69. package/standards/hooks/mandatory-tracking.md +446 -446
  70. package/standards/infrastructure/cloud-database.md +287 -287
  71. package/standards/mcp/server-design.md +243 -243
  72. package/standards/mcp/tool-patterns.md +354 -354
  73. package/standards/skills/skill-structure.md +286 -286
  74. package/standards/skills/workflow-design.md +323 -323
  75. package/standards/tools/tool-design.md +297 -297
  76. package/templates/agents/architecture-expert.md +61 -61
  77. package/templates/agents/database-expert.md +62 -62
  78. package/templates/agents/documentation-expert.md +57 -57
  79. package/templates/agents/memory-expert.md +88 -88
  80. package/templates/agents/performance-expert.md +61 -61
  81. package/templates/agents/security-expert.md +59 -59
  82. package/templates/agents/ux-expert.md +63 -63
  83. package/templates/agents/worker.md +75 -75
  84. package/templates/ai-skills/SKILL_TEMPLATE.md +55 -55
  85. package/templates/claude-settings.json +72 -72
  86. package/templates/commands/experts.md +138 -138
  87. package/templates/hooks/README.md +158 -158
  88. package/templates/hooks/project.config.json.template +77 -77
  89. package/templates/hooks/settings.local.json.template +57 -57
  90. package/templates/memory-config.json +56 -56
  91. package/templates/memory-config.schema.json +212 -212
  92. package/templates/settings.json +58 -58
  93. package/templates/skills/continue.md +205 -205
  94. package/templates/workflows/business-improvement.md +264 -264
  95. package/templates/workflows/expert-review.md +153 -153
  96. package/templates/workflows/internal-app.md +245 -245
  97. package/templates/workflows/sync-docs.md +187 -187
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-injector.d.ts","sourceRoot":"","sources":["../../src/services/context-injector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,397 @@
1
+ /**
2
+ * @file Context Injector Service
3
+ * @description Smart context loading for sessions and tools
4
+ *
5
+ * Provides:
6
+ * - Domain-specific memory loading
7
+ * - Semantic context matching for tasks
8
+ * - Skill suggestions based on context
9
+ * - "Did we solve this before?" detection
10
+ */
11
+ import { memoryRouter } from './memory-router.js';
12
+ import { cloud } from '../db/cloud.js';
13
+ import { upstash } from '../db/upstash-client.js';
14
+ import { loadConfig } from '../utils/config.js';
15
+ // =============================================================================
16
+ // Skill Registry
17
+ // =============================================================================
18
+ const DOMAIN_SKILLS = {
19
+ finances: [
20
+ { name: 'implement', description: 'Feature implementation with finance guards', command: '/sc:implement', relevance: 0.9 },
21
+ { name: 'analyze', description: 'Analyze code quality and security', command: '/sc:analyze --focus security', relevance: 0.8 }
22
+ ],
23
+ reserves: [
24
+ { name: 'implement', description: 'Reservation feature implementation', command: '/sc:implement', relevance: 0.9 },
25
+ { name: 'test', description: 'Execute tests', command: '/sc:test', relevance: 0.7 }
26
+ ],
27
+ marketing: [
28
+ { name: 'implement', description: 'Marketing feature implementation', command: '/sc:implement', relevance: 0.9 },
29
+ { name: 'design', description: 'Design system architecture', command: '/sc:design', relevance: 0.8 }
30
+ ],
31
+ infrastructure: [
32
+ { name: 'troubleshoot', description: 'Diagnose and resolve issues', command: '/sc:troubleshoot', relevance: 0.9 },
33
+ { name: 'build', description: 'Build and compile', command: '/sc:build', relevance: 0.8 }
34
+ ],
35
+ default: [
36
+ { name: 'implement', description: 'General implementation', command: '/sc:implement', relevance: 0.8 },
37
+ { name: 'analyze', description: 'Code analysis', command: '/sc:analyze', relevance: 0.7 },
38
+ { name: 'improve', description: 'Apply improvements', command: '/sc:improve', relevance: 0.6 }
39
+ ]
40
+ };
41
+ // =============================================================================
42
+ // Context Injector Implementation
43
+ // =============================================================================
44
+ class ContextInjectorService {
45
+ config = null;
46
+ /**
47
+ * Get full session context for SessionStart hook
48
+ */
49
+ async getSessionContext(system, domain, projectRoot) {
50
+ // Load config if needed
51
+ if (!this.config && projectRoot) {
52
+ this.config = await loadConfig(projectRoot);
53
+ }
54
+ // Run all queries in parallel for performance
55
+ const [recentMemories, unresolved, patterns, activeTasks, pendingImprovements, health] = await Promise.all([
56
+ this.getRecentMemories(system, domain),
57
+ this.getUnresolvedIssues(system, domain),
58
+ this.getFrequentPatterns(system),
59
+ this.getActiveTasks(system),
60
+ this.getPendingImprovementsCount(system),
61
+ this.checkHealth()
62
+ ]);
63
+ // Get relevant skills for the domain
64
+ const skills = this.getSkillsForDomain(domain);
65
+ return {
66
+ recentMemories,
67
+ unresolved,
68
+ patterns,
69
+ skills,
70
+ activeTasks,
71
+ pendingImprovements,
72
+ health
73
+ };
74
+ }
75
+ /**
76
+ * Get context for a specific task/operation
77
+ * Called by PreToolUse for Task tool
78
+ */
79
+ async getTaskContext(taskDescription, system) {
80
+ // Search for related past work
81
+ const searchResult = await memoryRouter.search({
82
+ query: taskDescription,
83
+ system,
84
+ limit: 5,
85
+ minScore: 0.5
86
+ });
87
+ // Filter for gotchas/warnings
88
+ const potentialGotchas = searchResult.memories.filter(m => m.title.toLowerCase().includes('gotcha') ||
89
+ m.title.toLowerCase().includes('bug') ||
90
+ m.title.toLowerCase().includes('warning') ||
91
+ m.title.toLowerCase().includes('issue'));
92
+ // Get similar completed tasks
93
+ const similarTasks = await this.getSimilarCompletedTasks(taskDescription, system);
94
+ // Generate suggested approach if we have relevant past work
95
+ let suggestedApproach;
96
+ if (searchResult.memories.length > 0) {
97
+ suggestedApproach = this.generateApproachSuggestion(searchResult.memories);
98
+ }
99
+ return {
100
+ relatedWork: searchResult.memories,
101
+ potentialGotchas,
102
+ suggestedApproach,
103
+ similarTasks
104
+ };
105
+ }
106
+ /**
107
+ * Check if similar work was done before
108
+ * Returns matching memories if found
109
+ */
110
+ async checkPreviousWork(query, system, filePath) {
111
+ // Build search query
112
+ let searchQuery = query;
113
+ if (filePath) {
114
+ // Extract filename for more specific matching
115
+ const fileName = filePath.split('/').pop() || '';
116
+ searchQuery = `${query} ${fileName}`;
117
+ }
118
+ const result = await memoryRouter.search({
119
+ query: searchQuery,
120
+ system,
121
+ limit: 3,
122
+ minScore: 0.7 // Higher threshold for "did we solve this" detection
123
+ });
124
+ if (result.memories.length === 0) {
125
+ return { found: false, memories: [] };
126
+ }
127
+ // Check for highly relevant matches
128
+ const highlyRelevant = result.memories.filter(m => m.score && m.score > 0.8);
129
+ if (highlyRelevant.length > 0) {
130
+ const most = highlyRelevant[0];
131
+ return {
132
+ found: true,
133
+ memories: highlyRelevant,
134
+ message: `📚 **Similar work found**: "${most.title}"\n\nThis might be relevant to what you're doing now.`
135
+ };
136
+ }
137
+ return {
138
+ found: result.memories.length > 0,
139
+ memories: result.memories
140
+ };
141
+ }
142
+ /**
143
+ * Format session context as markdown for injection
144
+ */
145
+ formatSessionContext(context, system) {
146
+ const lines = [];
147
+ // System status
148
+ lines.push(`## 🚀 Session Started: ${system}`);
149
+ lines.push('');
150
+ // Health indicator
151
+ const healthIcon = context.health.overall === 'healthy' ? '✅' :
152
+ context.health.overall === 'degraded' ? '⚠️' : '❌';
153
+ lines.push(`**Cloud Status**: ${healthIcon} ${context.health.overall}`);
154
+ lines.push('');
155
+ // Active tasks
156
+ if (context.activeTasks.length > 0) {
157
+ lines.push(`## 📋 Active Tasks (${context.activeTasks.length})`);
158
+ lines.push('');
159
+ for (const task of context.activeTasks.slice(0, 3)) {
160
+ lines.push(`### ${task.title}`);
161
+ lines.push(`- **Progress**: ${task.progress}`);
162
+ lines.push(`- **Last activity**: ${task.lastActivity}`);
163
+ lines.push(`- **ID**: \`${task.id}\``);
164
+ lines.push('');
165
+ }
166
+ if (context.activeTasks.length > 3) {
167
+ lines.push(`> ... and ${context.activeTasks.length - 3} more tasks`);
168
+ lines.push('');
169
+ }
170
+ }
171
+ // Pending improvements
172
+ if (context.pendingImprovements > 0) {
173
+ lines.push(`## 💡 Pending Improvements: ${context.pendingImprovements}`);
174
+ lines.push('');
175
+ lines.push(`> Run \`npm run ec improvements\` to see details`);
176
+ lines.push('');
177
+ }
178
+ // Unresolved issues
179
+ if (context.unresolved.length > 0) {
180
+ lines.push(`## ⚠️ Active Gotchas`);
181
+ lines.push('');
182
+ for (const issue of context.unresolved.slice(0, 3)) {
183
+ lines.push(`- **${issue.title}**${issue.domain ? ` (${issue.domain})` : ''}`);
184
+ }
185
+ lines.push('');
186
+ }
187
+ // Recent memories
188
+ if (context.recentMemories.length > 0) {
189
+ lines.push(`## 📚 Recent Context`);
190
+ lines.push('');
191
+ for (const memory of context.recentMemories.slice(0, 5)) {
192
+ lines.push(`- ${memory.title}${memory.domain ? ` [${memory.domain}]` : ''}`);
193
+ }
194
+ lines.push('');
195
+ }
196
+ // Available skills
197
+ if (context.skills.length > 0) {
198
+ lines.push(`## 🛠️ Available Skills`);
199
+ lines.push('');
200
+ for (const skill of context.skills.slice(0, 4)) {
201
+ lines.push(`- \`${skill.command}\` - ${skill.description}`);
202
+ }
203
+ lines.push('');
204
+ }
205
+ // Workflow reminder
206
+ lines.push(`## ⚙️ Workflow`);
207
+ lines.push('');
208
+ lines.push(`1. **Register task** before starting work`);
209
+ lines.push(`2. **Update progress** as you work`);
210
+ lines.push(`3. **Capture learnings** when done`);
211
+ lines.push('');
212
+ return lines.join('\n');
213
+ }
214
+ /**
215
+ * Format task context as markdown for injection
216
+ */
217
+ formatTaskContext(context) {
218
+ if (context.relatedWork.length === 0 && context.potentialGotchas.length === 0) {
219
+ return '';
220
+ }
221
+ const lines = [];
222
+ // Suggested approach
223
+ if (context.suggestedApproach) {
224
+ lines.push(`## 💡 Suggested Approach`);
225
+ lines.push('');
226
+ lines.push(context.suggestedApproach);
227
+ lines.push('');
228
+ }
229
+ // Potential gotchas
230
+ if (context.potentialGotchas.length > 0) {
231
+ lines.push(`## ⚠️ Potential Gotchas`);
232
+ lines.push('');
233
+ for (const gotcha of context.potentialGotchas.slice(0, 3)) {
234
+ lines.push(`- **${gotcha.title}**: ${gotcha.body.slice(0, 100)}...`);
235
+ }
236
+ lines.push('');
237
+ }
238
+ // Related past work
239
+ if (context.relatedWork.length > 0) {
240
+ lines.push(`## 📚 Related Past Work`);
241
+ lines.push('');
242
+ for (const work of context.relatedWork.slice(0, 3)) {
243
+ const score = work.score ? ` (${Math.round(work.score * 100)}% match)` : '';
244
+ lines.push(`- ${work.title}${score}`);
245
+ }
246
+ lines.push('');
247
+ }
248
+ return lines.join('\n');
249
+ }
250
+ // =============================================================================
251
+ // Private Methods
252
+ // =============================================================================
253
+ async getRecentMemories(system, domain) {
254
+ if (domain) {
255
+ return memoryRouter.getByDomain(system, domain, 5);
256
+ }
257
+ return memoryRouter.getRecent(system, 5);
258
+ }
259
+ async getUnresolvedIssues(system, domain) {
260
+ return memoryRouter.getUnresolved(system, domain);
261
+ }
262
+ async getFrequentPatterns(system) {
263
+ const patterns = await memoryRouter.getTriggeredPatterns(system);
264
+ return patterns.map(p => ({
265
+ id: p.patternId,
266
+ description: p.description,
267
+ occurrences: p.occurrences,
268
+ severity: p.severity
269
+ }));
270
+ }
271
+ async getActiveTasks(system) {
272
+ try {
273
+ const tasks = await cloud.turso.getActiveTasks(system);
274
+ return tasks.map(t => {
275
+ // Safe type assertion for dynamically stored content
276
+ const content = t.content;
277
+ return {
278
+ id: t.id,
279
+ title: content.title || 'Untitled Task',
280
+ status: content.status || 'in_progress',
281
+ progress: `Step ${(content.context?.todoItems?.length ?? 0) + 1}`,
282
+ lastActivity: this.formatTimeAgo(content.startedAt || new Date().toISOString())
283
+ };
284
+ });
285
+ }
286
+ catch {
287
+ return [];
288
+ }
289
+ }
290
+ async getPendingImprovementsCount(system) {
291
+ try {
292
+ const improvements = await cloud.turso.getPendingImprovements(system);
293
+ return improvements.length;
294
+ }
295
+ catch {
296
+ return 0;
297
+ }
298
+ }
299
+ async checkHealth() {
300
+ try {
301
+ const status = await cloud.healthCheck();
302
+ return {
303
+ turso: status.turso.ok,
304
+ redis: status.redis.ok,
305
+ vector: status.vector.ok,
306
+ overall: status.turso.ok && status.redis.ok ? 'healthy' :
307
+ status.turso.ok || status.redis.ok ? 'degraded' : 'offline'
308
+ };
309
+ }
310
+ catch {
311
+ return {
312
+ turso: false,
313
+ redis: false,
314
+ vector: false,
315
+ overall: 'offline'
316
+ };
317
+ }
318
+ }
319
+ getSkillsForDomain(domain) {
320
+ if (!domain)
321
+ return DOMAIN_SKILLS.default;
322
+ return DOMAIN_SKILLS[domain] || DOMAIN_SKILLS.default;
323
+ }
324
+ /**
325
+ * Find similar completed tasks using semantic search
326
+ *
327
+ * Uses vector embeddings to find tasks with similar descriptions,
328
+ * helping inform approach based on past successful implementations.
329
+ */
330
+ async getSimilarCompletedTasks(description, system) {
331
+ try {
332
+ // Search for similar tasks using vector search
333
+ const results = await upstash.searchVectors(description, {
334
+ topK: 5,
335
+ filter: `system = "${system}" AND type = "task"`,
336
+ includeMetadata: true
337
+ });
338
+ // Filter to completed tasks with good similarity
339
+ const similarTasks = [];
340
+ for (const result of results) {
341
+ if (result.score < 0.6)
342
+ continue; // Minimum similarity threshold
343
+ const metadata = result.metadata;
344
+ if (!metadata)
345
+ continue;
346
+ // Check if task is completed
347
+ const status = metadata.status;
348
+ if (status !== 'completed' && status !== 'done')
349
+ continue;
350
+ similarTasks.push({
351
+ id: result.id,
352
+ title: metadata.title || 'Untitled Task',
353
+ status: status,
354
+ progress: metadata.progress || 'Completed',
355
+ lastActivity: this.formatTimeAgo(metadata.completedAt ||
356
+ metadata.updatedAt ||
357
+ new Date().toISOString())
358
+ });
359
+ }
360
+ return similarTasks.slice(0, 3); // Return top 3 similar tasks
361
+ }
362
+ catch (error) {
363
+ console.warn('[ContextInjector] Semantic task search failed:', error);
364
+ return [];
365
+ }
366
+ }
367
+ generateApproachSuggestion(memories) {
368
+ if (memories.length === 0)
369
+ return '';
370
+ // Find the most relevant memory with actual content
371
+ const relevant = memories.find(m => m.body && m.body.length > 50);
372
+ if (!relevant)
373
+ return '';
374
+ return `Based on previous work on "${relevant.title}", consider reviewing the approach used there before implementing.`;
375
+ }
376
+ formatTimeAgo(isoDate) {
377
+ const date = new Date(isoDate);
378
+ const now = new Date();
379
+ const diffMs = now.getTime() - date.getTime();
380
+ const diffMins = Math.floor(diffMs / 60000);
381
+ const diffHours = Math.floor(diffMins / 60);
382
+ const diffDays = Math.floor(diffHours / 24);
383
+ if (diffMins < 1)
384
+ return 'just now';
385
+ if (diffMins < 60)
386
+ return `${diffMins}m ago`;
387
+ if (diffHours < 24)
388
+ return `${diffHours}h ago`;
389
+ return `${diffDays}d ago`;
390
+ }
391
+ }
392
+ // =============================================================================
393
+ // Export Singleton
394
+ // =============================================================================
395
+ export const contextInjector = new ContextInjectorService();
396
+ export default contextInjector;
397
+ //# sourceMappingURL=context-injector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-injector.js","sourceRoot":"","sources":["../../src/services/context-injector.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,17 @@
1
- /**
2
- * Services Index
3
- *
4
- * Export all memory services for easy consumption.
5
- */
6
- export { SemanticSearchService, createSemanticSearchService, type SemanticSearchResult, type MemoryWithEmbedding, } from './semantic-search.js';
7
- export { AutoInjectService, createAutoInjectService, type SessionContext, type InjectedMemory, type InjectedPattern, type SessionStats, } from './auto-inject.js';
8
- export { MemoryConsolidationService, createConsolidationService, type ConsolidationResult, type ConflictInfo, type DecayResult, } from './memory-consolidation.js';
9
- export { AutoTagService, createAutoTagService, type AutoTagResult, type BatchTagResult, } from './auto-tag.js';
10
- export { CrossProjectSyncService, createCrossProjectSyncService, ECOSYSTEM_SYSTEMS, type SyncConfig, type SyncResult, type SharedMemory, } from './cross-project-sync.js';
1
+ export * from "./IdeaCollector.js";
2
+ export * from "./ProjectScanner.js";
3
+ export * from "./TaskTracker.js";
4
+ export * from "./WorkPlanManager.js";
5
+ export * from "./ProjectScaffold.js";
6
+ export * from "./semantic-search.js";
7
+ export * from "./ContextGenerator.js";
8
+ export * from "./auto-inject.js";
9
+ export * from "./auto-tag.js";
10
+ export { memoryRouter, type UnifiedMemory, type SearchOptions, type SearchResult, type WriteOptions } from './memory-router.js';
11
+ export { contextInjector, type SessionContext, type TaskContext, type SystemHealth } from './context-injector.js';
12
+ export { patternTracker, type TrackedPattern, type PatternContext, type ESLintRuleSpec } from './pattern-tracker.js';
13
+ export { MemoryConsolidationService, createConsolidationService, type ConsolidationResult, type ConflictInfo, type DecayResult, type MemoryWithMeta, } from './memory-consolidation.js';
11
14
  export { WeeklyDigestService, createWeeklyDigestService, type WeeklyDigest, type DigestSummary, type DigestHighlight, type DigestPattern, type DigestRecommendation, type DigestTrend, } from './weekly-digest.js';
12
- export { TaskTracker, getTaskTracker, createTaskTracker, type StartTaskOptions, type UpdateTaskOptions, type CompleteTaskOptions, } from './TaskTracker.js';
13
- export { IdeaCollector, getIdeaCollector, createIdeaCollector, type IdeaInput, type ImprovementInput, type IdeaStats, type ImprovementStats, } from './IdeaCollector.js';
14
- export { WorkPlanManager, getWorkPlanManager, createWorkPlanManager, type CreatePlanOptions, type PlanTask, type PlanSummary, } from './WorkPlanManager.js';
15
- export { ProjectScanner, createProjectScanner, type ProjectScanResult, } from './ProjectScanner.js';
16
- export { ProjectScaffold, createProjectScaffold, type ScaffoldOptions, type ScaffoldResult, type ProjectConfig, } from './ProjectScaffold.js';
15
+ export { CrossProjectSyncService, createCrossProjectSyncService, ECOSYSTEM_SYSTEMS, type SyncConfig, type SyncResult, type SharedMemory, } from './cross-project-sync.js';
16
+ export { PlanManager, getPlanManager, createPlanManager } from './PlanManager.js';
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,YAAY,GAClB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,WAAW,GACjB,MAAM,oBAAoB,CAAA;AAM3B,OAAO,EACL,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,WAAW,GACjB,MAAM,sBAAsB,CAAA;AAM7B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAG9B,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChI,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAClH,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGrH,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,cAAc,GACpB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,WAAW,GACjB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,YAAY,GAClB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,23 +1,21 @@
1
- /**
2
- * Services Index
3
- *
4
- * Export all memory services for easy consumption.
5
- */
6
- export { SemanticSearchService, createSemanticSearchService, } from './semantic-search.js';
7
- export { AutoInjectService, createAutoInjectService, } from './auto-inject.js';
1
+ export * from "./IdeaCollector.js";
2
+ export * from "./ProjectScanner.js";
3
+ export * from "./TaskTracker.js";
4
+ export * from "./WorkPlanManager.js";
5
+ export * from "./ProjectScaffold.js";
6
+ export * from "./semantic-search.js";
7
+ export * from "./ContextGenerator.js";
8
+ export * from "./auto-inject.js";
9
+ export * from "./auto-tag.js";
10
+ // v3.0 Services
11
+ export { memoryRouter } from './memory-router.js';
12
+ export { contextInjector } from './context-injector.js';
13
+ export { patternTracker } from './pattern-tracker.js';
14
+ // Memory Consolidation & Weekly Digest
8
15
  export { MemoryConsolidationService, createConsolidationService, } from './memory-consolidation.js';
9
- export { AutoTagService, createAutoTagService, } from './auto-tag.js';
10
- export { CrossProjectSyncService, createCrossProjectSyncService, ECOSYSTEM_SYSTEMS, } from './cross-project-sync.js';
11
16
  export { WeeklyDigestService, createWeeklyDigestService, } from './weekly-digest.js';
12
- // =============================================================================
13
- // WORKFLOW SERVICES (NEW)
14
- // =============================================================================
15
- export { TaskTracker, getTaskTracker, createTaskTracker, } from './TaskTracker.js';
16
- export { IdeaCollector, getIdeaCollector, createIdeaCollector, } from './IdeaCollector.js';
17
- export { WorkPlanManager, getWorkPlanManager, createWorkPlanManager, } from './WorkPlanManager.js';
18
- // =============================================================================
19
- // PROJECT SETUP SERVICES
20
- // =============================================================================
21
- export { ProjectScanner, createProjectScanner, } from './ProjectScanner.js';
22
- export { ProjectScaffold, createProjectScaffold, } from './ProjectScaffold.js';
17
+ // Cross-Project Sync
18
+ export { CrossProjectSyncService, createCrossProjectSyncService, ECOSYSTEM_SYSTEMS, } from './cross-project-sync.js';
19
+ // Plan Manager (v2.5.0+)
20
+ export { PlanManager, getPlanManager, createPlanManager } from './PlanManager.js';
23
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,qBAAqB,EACrB,2BAA2B,GAG5B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GAKxB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAI3B,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,cAAc,EACd,oBAAoB,GAGrB,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,iBAAiB,GAIlB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,GAO1B,MAAM,oBAAoB,CAAA;AAE3B,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF,OAAO,EACL,WAAW,EACX,cAAc,EACd,iBAAiB,GAIlB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,mBAAmB,GAKpB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,qBAAqB,GAItB,MAAM,sBAAsB,CAAA;AAE7B,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF,OAAO,EACL,cAAc,EACd,oBAAoB,GAErB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,eAAe,EACf,qBAAqB,GAItB,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAE9B,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAgF,MAAM,oBAAoB,CAAC;AAChI,OAAO,EAAE,eAAe,EAA4D,MAAM,uBAAuB,CAAC;AAClH,OAAO,EAAE,cAAc,EAAiE,MAAM,sBAAsB,CAAC;AAErH,uCAAuC;AACvC,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAK3B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,GAO1B,MAAM,oBAAoB,CAAC;AAE5B,qBAAqB;AACrB,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,iBAAiB,GAIlB,MAAM,yBAAyB,CAAC;AAEjC,yBAAyB;AACzB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,122 @@
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
+ * @param system - Target DevSystem for the memories
85
+ * @param options - Sync options
86
+ * @returns Number of observations synced
87
+ */
88
+ syncFromClaudeMem(system: DevSystem, options?: {
89
+ project?: string;
90
+ sinceEpoch?: number;
91
+ limit?: number;
92
+ }): Promise<{
93
+ synced: number;
94
+ skipped: number;
95
+ errors: number;
96
+ }>;
97
+ /**
98
+ * Get existing claude-mem synced IDs to avoid duplicates
99
+ */
100
+ private getExistingClaudeMemIds;
101
+ /**
102
+ * Map observation type to priority
103
+ */
104
+ private mapObsTypeToPriority;
105
+ /**
106
+ * Detect domain from file paths
107
+ */
108
+ private detectDomainFromFiles;
109
+ private searchTurso;
110
+ private searchVector;
111
+ private searchRedis;
112
+ private writeToTurso;
113
+ private writeToVector;
114
+ private writeToRedis;
115
+ /**
116
+ * Convert a raw database row to UnifiedMemory
117
+ */
118
+ private rowToUnifiedMemory;
119
+ }
120
+ export declare const memoryRouter: MemoryRouterService;
121
+ export default memoryRouter;
122
+ //# sourceMappingURL=memory-router.d.ts.map