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.
- package/README.md +633 -611
- package/dist/db/drizzle-client.d.ts +3 -3
- package/dist/db/drizzle-client.d.ts.map +1 -1
- package/dist/db/drizzle-client.js +57 -58
- package/dist/db/drizzle-client.js.map +1 -1
- package/dist/db/turso-client.js +11 -11
- package/dist/eslint/rules/no-async-useeffect.js +6 -6
- package/dist/hooks/cloud-pre-tool-use.js +20 -20
- package/dist/hooks/cloud-session-start.d.ts +15 -3
- package/dist/hooks/cloud-session-start.d.ts.map +1 -1
- package/dist/hooks/cloud-session-start.js +135 -8
- package/dist/hooks/cloud-session-start.js.map +1 -1
- package/dist/hooks/session-start.d.ts +2 -1
- package/dist/hooks/session-start.d.ts.map +1 -1
- package/dist/hooks/session-start.js +99 -74
- package/dist/hooks/session-start.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.js +2 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/schema/plans.d.ts +194 -0
- package/dist/schema/plans.d.ts.map +1 -0
- package/dist/schema/plans.js +180 -0
- package/dist/schema/plans.js.map +1 -0
- package/dist/services/ContextGenerator.d.ts +16 -0
- package/dist/services/ContextGenerator.d.ts.map +1 -0
- package/dist/services/ContextGenerator.js +62 -0
- package/dist/services/ContextGenerator.js.map +1 -0
- package/dist/services/PlanManager.d.ts +99 -0
- package/dist/services/PlanManager.d.ts.map +1 -0
- package/dist/services/PlanManager.js +372 -0
- package/dist/services/PlanManager.js.map +1 -0
- package/dist/services/ProjectScaffold.js +76 -76
- package/dist/services/context-injector.d.ts +105 -0
- package/dist/services/context-injector.d.ts.map +1 -0
- package/dist/services/context-injector.js +357 -0
- package/dist/services/context-injector.js.map +1 -0
- package/dist/services/index.d.ts +15 -15
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +18 -20
- package/dist/services/index.js.map +1 -1
- package/dist/services/memory-router.d.ts +98 -0
- package/dist/services/memory-router.d.ts.map +1 -0
- package/dist/services/memory-router.js +373 -0
- package/dist/services/memory-router.js.map +1 -0
- package/dist/services/pattern-tracker.d.ts +93 -0
- package/dist/services/pattern-tracker.d.ts.map +1 -0
- package/dist/services/pattern-tracker.js +347 -0
- package/dist/services/pattern-tracker.js.map +1 -0
- package/dist/services/semantic-search.d.ts +33 -35
- package/dist/services/semantic-search.d.ts.map +1 -1
- package/dist/services/semantic-search.js +207 -165
- package/dist/services/semantic-search.js.map +1 -1
- package/package.json +100 -100
- package/standards/README.md +50 -50
- package/standards/experts/expert-routing.md +215 -215
- package/standards/general/code-quality.md +86 -86
- package/standards/general/memory-usage.md +205 -205
- package/standards/general/sync-workflow.md +235 -235
- package/standards/general/workflow.md +82 -82
- package/standards/hooks/mandatory-tracking.md +446 -446
- package/standards/infrastructure/cloud-database.md +287 -287
- package/standards/mcp/server-design.md +243 -243
- package/standards/mcp/tool-patterns.md +354 -354
- package/standards/skills/skill-structure.md +286 -286
- package/standards/skills/workflow-design.md +323 -323
- package/standards/tools/tool-design.md +297 -297
- package/templates/agents/architecture-expert.md +61 -61
- package/templates/agents/database-expert.md +62 -62
- package/templates/agents/documentation-expert.md +57 -57
- package/templates/agents/memory-expert.md +88 -88
- package/templates/agents/performance-expert.md +61 -61
- package/templates/agents/security-expert.md +59 -59
- package/templates/agents/ux-expert.md +63 -63
- package/templates/agents/worker.md +75 -75
- package/templates/ai-skills/SKILL_TEMPLATE.md +55 -55
- package/templates/claude-settings.json +72 -72
- package/templates/commands/experts.md +138 -138
- package/templates/hooks/README.md +158 -158
- package/templates/hooks/project.config.json.template +77 -77
- package/templates/hooks/settings.local.json.template +57 -57
- package/templates/memory-config.json +56 -56
- package/templates/memory-config.schema.json +212 -212
- package/templates/settings.json +58 -58
- package/templates/skills/continue.md +205 -205
- package/templates/workflows/business-improvement.md +264 -264
- package/templates/workflows/expert-review.md +153 -153
- package/templates/workflows/internal-app.md +245 -245
- 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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"}
|
package/dist/services/index.d.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export {
|
|
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 {
|
|
13
|
-
export {
|
|
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
|
|
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"}
|
package/dist/services/index.js
CHANGED
|
@@ -1,23 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
|
|
6
|
-
export
|
|
7
|
-
export
|
|
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
|
-
|
|
14
|
-
//
|
|
15
|
-
export {
|
|
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
|
|
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"}
|