cmp-standards 2.4.0 → 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 (91) hide show
  1. package/README.md +633 -611
  2. package/dist/db/drizzle-client.d.ts +3 -3
  3. package/dist/db/drizzle-client.d.ts.map +1 -1
  4. package/dist/db/drizzle-client.js +57 -58
  5. package/dist/db/drizzle-client.js.map +1 -1
  6. package/dist/db/turso-client.js +11 -11
  7. package/dist/eslint/rules/no-async-useeffect.js +6 -6
  8. package/dist/hooks/cloud-pre-tool-use.js +20 -20
  9. package/dist/hooks/cloud-session-start.d.ts +15 -3
  10. package/dist/hooks/cloud-session-start.d.ts.map +1 -1
  11. package/dist/hooks/cloud-session-start.js +135 -8
  12. package/dist/hooks/cloud-session-start.js.map +1 -1
  13. package/dist/hooks/session-start.d.ts +2 -1
  14. package/dist/hooks/session-start.d.ts.map +1 -1
  15. package/dist/hooks/session-start.js +99 -74
  16. package/dist/hooks/session-start.js.map +1 -1
  17. package/dist/index.d.ts +4 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +4 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/mcp/server.js +2 -2
  22. package/dist/mcp/server.js.map +1 -1
  23. package/dist/schema/plans.d.ts +194 -0
  24. package/dist/schema/plans.d.ts.map +1 -0
  25. package/dist/schema/plans.js +180 -0
  26. package/dist/schema/plans.js.map +1 -0
  27. package/dist/services/ContextGenerator.d.ts +16 -0
  28. package/dist/services/ContextGenerator.d.ts.map +1 -0
  29. package/dist/services/ContextGenerator.js +62 -0
  30. package/dist/services/ContextGenerator.js.map +1 -0
  31. package/dist/services/PlanManager.d.ts +99 -0
  32. package/dist/services/PlanManager.d.ts.map +1 -0
  33. package/dist/services/PlanManager.js +372 -0
  34. package/dist/services/PlanManager.js.map +1 -0
  35. package/dist/services/ProjectScaffold.js +76 -76
  36. package/dist/services/context-injector.d.ts +105 -0
  37. package/dist/services/context-injector.d.ts.map +1 -0
  38. package/dist/services/context-injector.js +357 -0
  39. package/dist/services/context-injector.js.map +1 -0
  40. package/dist/services/index.d.ts +15 -15
  41. package/dist/services/index.d.ts.map +1 -1
  42. package/dist/services/index.js +18 -20
  43. package/dist/services/index.js.map +1 -1
  44. package/dist/services/memory-router.d.ts +98 -0
  45. package/dist/services/memory-router.d.ts.map +1 -0
  46. package/dist/services/memory-router.js +373 -0
  47. package/dist/services/memory-router.js.map +1 -0
  48. package/dist/services/pattern-tracker.d.ts +93 -0
  49. package/dist/services/pattern-tracker.d.ts.map +1 -0
  50. package/dist/services/pattern-tracker.js +347 -0
  51. package/dist/services/pattern-tracker.js.map +1 -0
  52. package/dist/services/semantic-search.d.ts +33 -35
  53. package/dist/services/semantic-search.d.ts.map +1 -1
  54. package/dist/services/semantic-search.js +207 -165
  55. package/dist/services/semantic-search.js.map +1 -1
  56. package/package.json +100 -100
  57. package/standards/README.md +50 -50
  58. package/standards/experts/expert-routing.md +215 -215
  59. package/standards/general/code-quality.md +86 -86
  60. package/standards/general/memory-usage.md +205 -205
  61. package/standards/general/sync-workflow.md +235 -235
  62. package/standards/general/workflow.md +82 -82
  63. package/standards/hooks/mandatory-tracking.md +446 -446
  64. package/standards/infrastructure/cloud-database.md +287 -287
  65. package/standards/mcp/server-design.md +243 -243
  66. package/standards/mcp/tool-patterns.md +354 -354
  67. package/standards/skills/skill-structure.md +286 -286
  68. package/standards/skills/workflow-design.md +323 -323
  69. package/standards/tools/tool-design.md +297 -297
  70. package/templates/agents/architecture-expert.md +61 -61
  71. package/templates/agents/database-expert.md +62 -62
  72. package/templates/agents/documentation-expert.md +57 -57
  73. package/templates/agents/memory-expert.md +88 -88
  74. package/templates/agents/performance-expert.md +61 -61
  75. package/templates/agents/security-expert.md +59 -59
  76. package/templates/agents/ux-expert.md +63 -63
  77. package/templates/agents/worker.md +75 -75
  78. package/templates/ai-skills/SKILL_TEMPLATE.md +55 -55
  79. package/templates/claude-settings.json +72 -72
  80. package/templates/commands/experts.md +138 -138
  81. package/templates/hooks/README.md +158 -158
  82. package/templates/hooks/project.config.json.template +77 -77
  83. package/templates/hooks/settings.local.json.template +57 -57
  84. package/templates/memory-config.json +56 -56
  85. package/templates/memory-config.schema.json +212 -212
  86. package/templates/settings.json +58 -58
  87. package/templates/skills/continue.md +205 -205
  88. package/templates/workflows/business-improvement.md +264 -264
  89. package/templates/workflows/expert-review.md +153 -153
  90. package/templates/workflows/internal-app.md +245 -245
  91. package/templates/workflows/sync-docs.md +187 -187
@@ -0,0 +1,105 @@
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 { type UnifiedMemory } from './memory-router.js';
12
+ import type { DevSystem } from '../types/index.js';
13
+ export interface SessionContext {
14
+ /** Recent memories for the detected domain */
15
+ recentMemories: UnifiedMemory[];
16
+ /** Unresolved issues/gotchas */
17
+ unresolved: UnifiedMemory[];
18
+ /** Frequent patterns in this domain */
19
+ patterns: PatternSummary[];
20
+ /** Relevant skills for the domain */
21
+ skills: SkillSuggestion[];
22
+ /** Active tasks */
23
+ activeTasks: TaskSummary[];
24
+ /** Pending improvements count */
25
+ pendingImprovements: number;
26
+ /** System health status */
27
+ health: SystemHealth;
28
+ }
29
+ export interface TaskContext {
30
+ /** Related past work */
31
+ relatedWork: UnifiedMemory[];
32
+ /** Potential gotchas to be aware of */
33
+ potentialGotchas: UnifiedMemory[];
34
+ /** Suggested approach based on past success */
35
+ suggestedApproach?: string;
36
+ /** Similar completed tasks */
37
+ similarTasks: TaskSummary[];
38
+ }
39
+ export interface PatternSummary {
40
+ id: string;
41
+ description: string;
42
+ occurrences: number;
43
+ severity: 'critical' | 'high' | 'medium' | 'low';
44
+ }
45
+ export interface SkillSuggestion {
46
+ name: string;
47
+ description: string;
48
+ command: string;
49
+ relevance: number;
50
+ }
51
+ export interface TaskSummary {
52
+ id: string;
53
+ title: string;
54
+ status: string;
55
+ progress: string;
56
+ lastActivity: string;
57
+ }
58
+ export interface SystemHealth {
59
+ turso: boolean;
60
+ redis: boolean;
61
+ vector: boolean;
62
+ overall: 'healthy' | 'degraded' | 'offline';
63
+ }
64
+ declare class ContextInjectorService {
65
+ private config;
66
+ /**
67
+ * Get full session context for SessionStart hook
68
+ */
69
+ getSessionContext(system: DevSystem, domain?: string, projectRoot?: string): Promise<SessionContext>;
70
+ /**
71
+ * Get context for a specific task/operation
72
+ * Called by PreToolUse for Task tool
73
+ */
74
+ getTaskContext(taskDescription: string, system: DevSystem): Promise<TaskContext>;
75
+ /**
76
+ * Check if similar work was done before
77
+ * Returns matching memories if found
78
+ */
79
+ checkPreviousWork(query: string, system: DevSystem, filePath?: string): Promise<{
80
+ found: boolean;
81
+ memories: UnifiedMemory[];
82
+ message?: string;
83
+ }>;
84
+ /**
85
+ * Format session context as markdown for injection
86
+ */
87
+ formatSessionContext(context: SessionContext, system: string): string;
88
+ /**
89
+ * Format task context as markdown for injection
90
+ */
91
+ formatTaskContext(context: TaskContext): string;
92
+ private getRecentMemories;
93
+ private getUnresolvedIssues;
94
+ private getFrequentPatterns;
95
+ private getActiveTasks;
96
+ private getPendingImprovementsCount;
97
+ private checkHealth;
98
+ private getSkillsForDomain;
99
+ private getSimilarCompletedTasks;
100
+ private generateApproachSuggestion;
101
+ private formatTimeAgo;
102
+ }
103
+ export declare const contextInjector: ContextInjectorService;
104
+ export default contextInjector;
105
+ //# sourceMappingURL=context-injector.d.ts.map
@@ -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,357 @@
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 { loadConfig } from '../utils/config.js';
14
+ // =============================================================================
15
+ // Skill Registry
16
+ // =============================================================================
17
+ const DOMAIN_SKILLS = {
18
+ finances: [
19
+ { name: 'implement', description: 'Feature implementation with finance guards', command: '/sc:implement', relevance: 0.9 },
20
+ { name: 'analyze', description: 'Analyze code quality and security', command: '/sc:analyze --focus security', relevance: 0.8 }
21
+ ],
22
+ reserves: [
23
+ { name: 'implement', description: 'Reservation feature implementation', command: '/sc:implement', relevance: 0.9 },
24
+ { name: 'test', description: 'Execute tests', command: '/sc:test', relevance: 0.7 }
25
+ ],
26
+ marketing: [
27
+ { name: 'implement', description: 'Marketing feature implementation', command: '/sc:implement', relevance: 0.9 },
28
+ { name: 'design', description: 'Design system architecture', command: '/sc:design', relevance: 0.8 }
29
+ ],
30
+ infrastructure: [
31
+ { name: 'troubleshoot', description: 'Diagnose and resolve issues', command: '/sc:troubleshoot', relevance: 0.9 },
32
+ { name: 'build', description: 'Build and compile', command: '/sc:build', relevance: 0.8 }
33
+ ],
34
+ default: [
35
+ { name: 'implement', description: 'General implementation', command: '/sc:implement', relevance: 0.8 },
36
+ { name: 'analyze', description: 'Code analysis', command: '/sc:analyze', relevance: 0.7 },
37
+ { name: 'improve', description: 'Apply improvements', command: '/sc:improve', relevance: 0.6 }
38
+ ]
39
+ };
40
+ // =============================================================================
41
+ // Context Injector Implementation
42
+ // =============================================================================
43
+ class ContextInjectorService {
44
+ config = null;
45
+ /**
46
+ * Get full session context for SessionStart hook
47
+ */
48
+ async getSessionContext(system, domain, projectRoot) {
49
+ // Load config if needed
50
+ if (!this.config && projectRoot) {
51
+ this.config = await loadConfig(projectRoot);
52
+ }
53
+ // Run all queries in parallel for performance
54
+ const [recentMemories, unresolved, patterns, activeTasks, pendingImprovements, health] = await Promise.all([
55
+ this.getRecentMemories(system, domain),
56
+ this.getUnresolvedIssues(system, domain),
57
+ this.getFrequentPatterns(system),
58
+ this.getActiveTasks(system),
59
+ this.getPendingImprovementsCount(system),
60
+ this.checkHealth()
61
+ ]);
62
+ // Get relevant skills for the domain
63
+ const skills = this.getSkillsForDomain(domain);
64
+ return {
65
+ recentMemories,
66
+ unresolved,
67
+ patterns,
68
+ skills,
69
+ activeTasks,
70
+ pendingImprovements,
71
+ health
72
+ };
73
+ }
74
+ /**
75
+ * Get context for a specific task/operation
76
+ * Called by PreToolUse for Task tool
77
+ */
78
+ async getTaskContext(taskDescription, system) {
79
+ // Search for related past work
80
+ const searchResult = await memoryRouter.search({
81
+ query: taskDescription,
82
+ system,
83
+ limit: 5,
84
+ minScore: 0.5
85
+ });
86
+ // Filter for gotchas/warnings
87
+ const potentialGotchas = searchResult.memories.filter(m => m.title.toLowerCase().includes('gotcha') ||
88
+ m.title.toLowerCase().includes('bug') ||
89
+ m.title.toLowerCase().includes('warning') ||
90
+ m.title.toLowerCase().includes('issue'));
91
+ // Get similar completed tasks
92
+ const similarTasks = await this.getSimilarCompletedTasks(taskDescription, system);
93
+ // Generate suggested approach if we have relevant past work
94
+ let suggestedApproach;
95
+ if (searchResult.memories.length > 0) {
96
+ suggestedApproach = this.generateApproachSuggestion(searchResult.memories);
97
+ }
98
+ return {
99
+ relatedWork: searchResult.memories,
100
+ potentialGotchas,
101
+ suggestedApproach,
102
+ similarTasks
103
+ };
104
+ }
105
+ /**
106
+ * Check if similar work was done before
107
+ * Returns matching memories if found
108
+ */
109
+ async checkPreviousWork(query, system, filePath) {
110
+ // Build search query
111
+ let searchQuery = query;
112
+ if (filePath) {
113
+ // Extract filename for more specific matching
114
+ const fileName = filePath.split('/').pop() || '';
115
+ searchQuery = `${query} ${fileName}`;
116
+ }
117
+ const result = await memoryRouter.search({
118
+ query: searchQuery,
119
+ system,
120
+ limit: 3,
121
+ minScore: 0.7 // Higher threshold for "did we solve this" detection
122
+ });
123
+ if (result.memories.length === 0) {
124
+ return { found: false, memories: [] };
125
+ }
126
+ // Check for highly relevant matches
127
+ const highlyRelevant = result.memories.filter(m => m.score && m.score > 0.8);
128
+ if (highlyRelevant.length > 0) {
129
+ const most = highlyRelevant[0];
130
+ return {
131
+ found: true,
132
+ memories: highlyRelevant,
133
+ message: `📚 **Similar work found**: "${most.title}"\n\nThis might be relevant to what you're doing now.`
134
+ };
135
+ }
136
+ return {
137
+ found: result.memories.length > 0,
138
+ memories: result.memories
139
+ };
140
+ }
141
+ /**
142
+ * Format session context as markdown for injection
143
+ */
144
+ formatSessionContext(context, system) {
145
+ const lines = [];
146
+ // System status
147
+ lines.push(`## 🚀 Session Started: ${system}`);
148
+ lines.push('');
149
+ // Health indicator
150
+ const healthIcon = context.health.overall === 'healthy' ? '✅' :
151
+ context.health.overall === 'degraded' ? '⚠️' : '❌';
152
+ lines.push(`**Cloud Status**: ${healthIcon} ${context.health.overall}`);
153
+ lines.push('');
154
+ // Active tasks
155
+ if (context.activeTasks.length > 0) {
156
+ lines.push(`## 📋 Active Tasks (${context.activeTasks.length})`);
157
+ lines.push('');
158
+ for (const task of context.activeTasks.slice(0, 3)) {
159
+ lines.push(`### ${task.title}`);
160
+ lines.push(`- **Progress**: ${task.progress}`);
161
+ lines.push(`- **Last activity**: ${task.lastActivity}`);
162
+ lines.push(`- **ID**: \`${task.id}\``);
163
+ lines.push('');
164
+ }
165
+ if (context.activeTasks.length > 3) {
166
+ lines.push(`> ... and ${context.activeTasks.length - 3} more tasks`);
167
+ lines.push('');
168
+ }
169
+ }
170
+ // Pending improvements
171
+ if (context.pendingImprovements > 0) {
172
+ lines.push(`## 💡 Pending Improvements: ${context.pendingImprovements}`);
173
+ lines.push('');
174
+ lines.push(`> Run \`npm run ec improvements\` to see details`);
175
+ lines.push('');
176
+ }
177
+ // Unresolved issues
178
+ if (context.unresolved.length > 0) {
179
+ lines.push(`## ⚠️ Active Gotchas`);
180
+ lines.push('');
181
+ for (const issue of context.unresolved.slice(0, 3)) {
182
+ lines.push(`- **${issue.title}**${issue.domain ? ` (${issue.domain})` : ''}`);
183
+ }
184
+ lines.push('');
185
+ }
186
+ // Recent memories
187
+ if (context.recentMemories.length > 0) {
188
+ lines.push(`## 📚 Recent Context`);
189
+ lines.push('');
190
+ for (const memory of context.recentMemories.slice(0, 5)) {
191
+ lines.push(`- ${memory.title}${memory.domain ? ` [${memory.domain}]` : ''}`);
192
+ }
193
+ lines.push('');
194
+ }
195
+ // Available skills
196
+ if (context.skills.length > 0) {
197
+ lines.push(`## 🛠️ Available Skills`);
198
+ lines.push('');
199
+ for (const skill of context.skills.slice(0, 4)) {
200
+ lines.push(`- \`${skill.command}\` - ${skill.description}`);
201
+ }
202
+ lines.push('');
203
+ }
204
+ // Workflow reminder
205
+ lines.push(`## ⚙️ Workflow`);
206
+ lines.push('');
207
+ lines.push(`1. **Register task** before starting work`);
208
+ lines.push(`2. **Update progress** as you work`);
209
+ lines.push(`3. **Capture learnings** when done`);
210
+ lines.push('');
211
+ return lines.join('\n');
212
+ }
213
+ /**
214
+ * Format task context as markdown for injection
215
+ */
216
+ formatTaskContext(context) {
217
+ if (context.relatedWork.length === 0 && context.potentialGotchas.length === 0) {
218
+ return '';
219
+ }
220
+ const lines = [];
221
+ // Suggested approach
222
+ if (context.suggestedApproach) {
223
+ lines.push(`## 💡 Suggested Approach`);
224
+ lines.push('');
225
+ lines.push(context.suggestedApproach);
226
+ lines.push('');
227
+ }
228
+ // Potential gotchas
229
+ if (context.potentialGotchas.length > 0) {
230
+ lines.push(`## ⚠️ Potential Gotchas`);
231
+ lines.push('');
232
+ for (const gotcha of context.potentialGotchas.slice(0, 3)) {
233
+ lines.push(`- **${gotcha.title}**: ${gotcha.body.slice(0, 100)}...`);
234
+ }
235
+ lines.push('');
236
+ }
237
+ // Related past work
238
+ if (context.relatedWork.length > 0) {
239
+ lines.push(`## 📚 Related Past Work`);
240
+ lines.push('');
241
+ for (const work of context.relatedWork.slice(0, 3)) {
242
+ const score = work.score ? ` (${Math.round(work.score * 100)}% match)` : '';
243
+ lines.push(`- ${work.title}${score}`);
244
+ }
245
+ lines.push('');
246
+ }
247
+ return lines.join('\n');
248
+ }
249
+ // =============================================================================
250
+ // Private Methods
251
+ // =============================================================================
252
+ async getRecentMemories(system, domain) {
253
+ if (domain) {
254
+ return memoryRouter.getByDomain(system, domain, 5);
255
+ }
256
+ return memoryRouter.getRecent(system, 5);
257
+ }
258
+ async getUnresolvedIssues(system, domain) {
259
+ return memoryRouter.getUnresolved(system, domain);
260
+ }
261
+ async getFrequentPatterns(system) {
262
+ const patterns = await memoryRouter.getTriggeredPatterns(system);
263
+ return patterns.map(p => ({
264
+ id: p.patternId,
265
+ description: p.description,
266
+ occurrences: p.occurrences,
267
+ severity: p.severity
268
+ }));
269
+ }
270
+ async getActiveTasks(system) {
271
+ try {
272
+ const tasks = await cloud.turso.getActiveTasks(system);
273
+ return tasks.map(t => {
274
+ // Safe type assertion for dynamically stored content
275
+ const content = t.content;
276
+ return {
277
+ id: t.id,
278
+ title: content.title || 'Untitled Task',
279
+ status: content.status || 'in_progress',
280
+ progress: `Step ${(content.context?.todoItems?.length ?? 0) + 1}`,
281
+ lastActivity: this.formatTimeAgo(content.startedAt || new Date().toISOString())
282
+ };
283
+ });
284
+ }
285
+ catch {
286
+ return [];
287
+ }
288
+ }
289
+ async getPendingImprovementsCount(system) {
290
+ try {
291
+ const improvements = await cloud.turso.getPendingImprovements(system);
292
+ return improvements.length;
293
+ }
294
+ catch {
295
+ return 0;
296
+ }
297
+ }
298
+ async checkHealth() {
299
+ try {
300
+ const status = await cloud.healthCheck();
301
+ return {
302
+ turso: status.turso.ok,
303
+ redis: status.redis.ok,
304
+ vector: status.vector.ok,
305
+ overall: status.turso.ok && status.redis.ok ? 'healthy' :
306
+ status.turso.ok || status.redis.ok ? 'degraded' : 'offline'
307
+ };
308
+ }
309
+ catch {
310
+ return {
311
+ turso: false,
312
+ redis: false,
313
+ vector: false,
314
+ overall: 'offline'
315
+ };
316
+ }
317
+ }
318
+ getSkillsForDomain(domain) {
319
+ if (!domain)
320
+ return DOMAIN_SKILLS.default;
321
+ return DOMAIN_SKILLS[domain] || DOMAIN_SKILLS.default;
322
+ }
323
+ async getSimilarCompletedTasks(_description, _system) {
324
+ // TODO: Implement semantic search for tasks
325
+ return [];
326
+ }
327
+ generateApproachSuggestion(memories) {
328
+ if (memories.length === 0)
329
+ return '';
330
+ // Find the most relevant memory with actual content
331
+ const relevant = memories.find(m => m.body && m.body.length > 50);
332
+ if (!relevant)
333
+ return '';
334
+ return `Based on previous work on "${relevant.title}", consider reviewing the approach used there before implementing.`;
335
+ }
336
+ formatTimeAgo(isoDate) {
337
+ const date = new Date(isoDate);
338
+ const now = new Date();
339
+ const diffMs = now.getTime() - date.getTime();
340
+ const diffMins = Math.floor(diffMs / 60000);
341
+ const diffHours = Math.floor(diffMins / 60);
342
+ const diffDays = Math.floor(diffHours / 24);
343
+ if (diffMins < 1)
344
+ return 'just now';
345
+ if (diffMins < 60)
346
+ return `${diffMins}m ago`;
347
+ if (diffHours < 24)
348
+ return `${diffHours}h ago`;
349
+ return `${diffDays}d ago`;
350
+ }
351
+ }
352
+ // =============================================================================
353
+ // Export Singleton
354
+ // =============================================================================
355
+ export const contextInjector = new ContextInjectorService();
356
+ export default contextInjector;
357
+ //# 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"}