cmp-standards 3.7.0 → 3.8.1

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 (56) hide show
  1. package/dist/hooks/auto-learning-hook.d.ts +48 -0
  2. package/dist/hooks/auto-learning-hook.d.ts.map +1 -0
  3. package/dist/hooks/auto-learning-hook.js +258 -0
  4. package/dist/hooks/auto-learning-hook.js.map +1 -0
  5. package/dist/hooks/cloud-post-tool-use.d.ts.map +1 -1
  6. package/dist/hooks/cloud-post-tool-use.js +20 -3
  7. package/dist/hooks/cloud-post-tool-use.js.map +1 -1
  8. package/dist/hooks/cloud-pre-tool-use.d.ts.map +1 -1
  9. package/dist/hooks/cloud-pre-tool-use.js +27 -16
  10. package/dist/hooks/cloud-pre-tool-use.js.map +1 -1
  11. package/dist/hooks/fast-session-start.d.ts +24 -0
  12. package/dist/hooks/fast-session-start.d.ts.map +1 -0
  13. package/dist/hooks/fast-session-start.js +363 -0
  14. package/dist/hooks/fast-session-start.js.map +1 -0
  15. package/dist/hooks/session-start.d.ts.map +1 -1
  16. package/dist/hooks/session-start.js +24 -1
  17. package/dist/hooks/session-start.js.map +1 -1
  18. package/dist/index.d.ts +12 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +17 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/services/ProjectScaffold.d.ts.map +1 -1
  23. package/dist/services/ProjectScaffold.js +31 -0
  24. package/dist/services/ProjectScaffold.js.map +1 -1
  25. package/dist/services/auto-evolution-trigger.d.ts +101 -0
  26. package/dist/services/auto-evolution-trigger.d.ts.map +1 -0
  27. package/dist/services/auto-evolution-trigger.js +359 -0
  28. package/dist/services/auto-evolution-trigger.js.map +1 -0
  29. package/dist/services/cloud-memory-service.d.ts +101 -0
  30. package/dist/services/cloud-memory-service.d.ts.map +1 -0
  31. package/dist/services/cloud-memory-service.js +363 -0
  32. package/dist/services/cloud-memory-service.js.map +1 -0
  33. package/dist/services/memory-keeper-client.d.ts +106 -0
  34. package/dist/services/memory-keeper-client.d.ts.map +1 -0
  35. package/dist/services/memory-keeper-client.js +319 -0
  36. package/dist/services/memory-keeper-client.js.map +1 -0
  37. package/dist/services/skill-learning-bridge.d.ts +100 -0
  38. package/dist/services/skill-learning-bridge.d.ts.map +1 -0
  39. package/dist/services/skill-learning-bridge.js +331 -0
  40. package/dist/services/skill-learning-bridge.js.map +1 -0
  41. package/dist/services/unified-memory-router.d.ts +123 -0
  42. package/dist/services/unified-memory-router.d.ts.map +1 -0
  43. package/dist/services/unified-memory-router.js +555 -0
  44. package/dist/services/unified-memory-router.js.map +1 -0
  45. package/dist/utils/env-loader.js +1 -1
  46. package/dist/utils/env-loader.js.map +1 -1
  47. package/package.json +1 -1
  48. package/templates/agents/_reasoning-framework.md +250 -0
  49. package/templates/agents/architecture-expert.md +294 -31
  50. package/templates/agents/database-expert.md +297 -34
  51. package/templates/agents/documentation-expert.md +232 -31
  52. package/templates/agents/memory-expert.md +264 -46
  53. package/templates/agents/performance-expert.md +319 -32
  54. package/templates/agents/security-expert.md +258 -30
  55. package/templates/agents/ux-expert.md +293 -35
  56. package/templates/commands/experts.md +322 -85
@@ -0,0 +1,319 @@
1
+ /**
2
+ * @file Memory-Keeper MCP Client
3
+ * @description Client for interacting with memory-keeper MCP server
4
+ *
5
+ * Uses stdio transport to communicate with the memory-keeper MCP process.
6
+ * Provides typed methods for all memory operations.
7
+ *
8
+ * @version 1.0.0
9
+ */
10
+ import { spawn } from 'child_process';
11
+ import { homedir } from 'os';
12
+ import { join } from 'path';
13
+ import { existsSync } from 'fs';
14
+ // =============================================================================
15
+ // Memory-Keeper Client
16
+ // =============================================================================
17
+ export class MemoryKeeperClient {
18
+ process = null;
19
+ requestId = 0;
20
+ pendingRequests = new Map();
21
+ buffer = '';
22
+ initialized = false;
23
+ /**
24
+ * Initialize connection to memory-keeper MCP server
25
+ */
26
+ async connect() {
27
+ if (this.initialized)
28
+ return true;
29
+ const mcpPath = this.findMCPServer();
30
+ if (!mcpPath) {
31
+ console.error('[memory-keeper-client] MCP server not found');
32
+ return false;
33
+ }
34
+ try {
35
+ this.process = spawn('node', [mcpPath], {
36
+ stdio: ['pipe', 'pipe', 'pipe'],
37
+ env: { ...process.env, NODE_ENV: 'production' }
38
+ });
39
+ if (!this.process.stdout || !this.process.stdin) {
40
+ throw new Error('Failed to get stdio streams');
41
+ }
42
+ this.process.stdout.on('data', (data) => {
43
+ this.handleData(data.toString());
44
+ });
45
+ this.process.stderr?.on('data', (data) => {
46
+ console.error('[memory-keeper-client] stderr:', data.toString());
47
+ });
48
+ this.process.on('error', (error) => {
49
+ console.error('[memory-keeper-client] process error:', error);
50
+ this.initialized = false;
51
+ });
52
+ this.process.on('exit', (code) => {
53
+ console.log('[memory-keeper-client] process exited with code:', code);
54
+ this.initialized = false;
55
+ });
56
+ // Initialize MCP connection
57
+ await this.sendRequest('initialize', {
58
+ protocolVersion: '2024-11-05',
59
+ capabilities: {},
60
+ clientInfo: { name: 'cmp-standards', version: '3.7.0' }
61
+ });
62
+ this.initialized = true;
63
+ return true;
64
+ }
65
+ catch (error) {
66
+ console.error('[memory-keeper-client] Connection failed:', error);
67
+ return false;
68
+ }
69
+ }
70
+ /**
71
+ * Find the memory-keeper MCP server path
72
+ */
73
+ findMCPServer() {
74
+ const possiblePaths = [
75
+ join(homedir(), '.claude', 'plugins', 'cache', 'thedotmack', 'claude-mem', 'server.js'),
76
+ join(homedir(), '.claude', 'plugins', 'thedotmack', 'claude-mem', 'server.js'),
77
+ ];
78
+ for (const p of possiblePaths) {
79
+ if (existsSync(p))
80
+ return p;
81
+ }
82
+ return null;
83
+ }
84
+ /**
85
+ * Handle incoming data from MCP server
86
+ */
87
+ handleData(data) {
88
+ this.buffer += data;
89
+ // Try to parse complete JSON-RPC messages
90
+ const lines = this.buffer.split('\n');
91
+ this.buffer = lines.pop() || '';
92
+ for (const line of lines) {
93
+ if (!line.trim())
94
+ continue;
95
+ try {
96
+ const response = JSON.parse(line);
97
+ const pending = this.pendingRequests.get(response.id);
98
+ if (pending) {
99
+ this.pendingRequests.delete(response.id);
100
+ if (response.error) {
101
+ pending.reject(new Error(response.error.message));
102
+ }
103
+ else {
104
+ pending.resolve(response.result);
105
+ }
106
+ }
107
+ }
108
+ catch {
109
+ // Ignore parse errors for partial messages
110
+ }
111
+ }
112
+ }
113
+ /**
114
+ * Send a request to the MCP server
115
+ */
116
+ sendRequest(method, params) {
117
+ return new Promise((resolve, reject) => {
118
+ if (!this.process?.stdin) {
119
+ reject(new Error('Not connected to MCP server'));
120
+ return;
121
+ }
122
+ const id = ++this.requestId;
123
+ const request = {
124
+ jsonrpc: '2.0',
125
+ id,
126
+ method,
127
+ params
128
+ };
129
+ this.pendingRequests.set(id, { resolve, reject });
130
+ // Set timeout for request
131
+ setTimeout(() => {
132
+ if (this.pendingRequests.has(id)) {
133
+ this.pendingRequests.delete(id);
134
+ reject(new Error(`Request timeout for ${method}`));
135
+ }
136
+ }, 10000);
137
+ this.process.stdin.write(JSON.stringify(request) + '\n');
138
+ });
139
+ }
140
+ /**
141
+ * Call a tool on the MCP server
142
+ */
143
+ async callTool(name, args) {
144
+ if (!this.initialized) {
145
+ const connected = await this.connect();
146
+ if (!connected)
147
+ throw new Error('Failed to connect to memory-keeper');
148
+ }
149
+ const result = await this.sendRequest('tools/call', {
150
+ name,
151
+ arguments: args
152
+ });
153
+ return result;
154
+ }
155
+ // ===========================================================================
156
+ // Public API
157
+ // ===========================================================================
158
+ /**
159
+ * Save a context item
160
+ */
161
+ async save(item) {
162
+ try {
163
+ await this.callTool('context_save', {
164
+ key: item.key,
165
+ value: item.value,
166
+ category: item.category,
167
+ channel: item.channel,
168
+ priority: item.priority,
169
+ private: item.private
170
+ });
171
+ return true;
172
+ }
173
+ catch (error) {
174
+ console.error('[memory-keeper-client] Save failed:', error);
175
+ return false;
176
+ }
177
+ }
178
+ /**
179
+ * Get a context item by key
180
+ */
181
+ async get(key) {
182
+ try {
183
+ const result = await this.callTool('context_get', { key });
184
+ return result?.items?.[0] || null;
185
+ }
186
+ catch (error) {
187
+ console.error('[memory-keeper-client] Get failed:', error);
188
+ return null;
189
+ }
190
+ }
191
+ /**
192
+ * Search context items
193
+ */
194
+ async search(options) {
195
+ try {
196
+ const result = await this.callTool('context_search', {
197
+ query: options.query,
198
+ category: options.category,
199
+ channel: options.channel,
200
+ limit: options.limit || 20,
201
+ includeMetadata: options.includeMetadata
202
+ });
203
+ return result || { items: [], total: 0 };
204
+ }
205
+ catch (error) {
206
+ console.error('[memory-keeper-client] Search failed:', error);
207
+ return { items: [], total: 0 };
208
+ }
209
+ }
210
+ /**
211
+ * Search across all sessions
212
+ */
213
+ async searchAll(query, limit = 20) {
214
+ try {
215
+ const result = await this.callTool('context_search_all', {
216
+ query,
217
+ limit,
218
+ includeMetadata: true
219
+ });
220
+ return result || { items: [], total: 0 };
221
+ }
222
+ catch (error) {
223
+ console.error('[memory-keeper-client] SearchAll failed:', error);
224
+ return { items: [], total: 0 };
225
+ }
226
+ }
227
+ /**
228
+ * Get current session status
229
+ */
230
+ async getStatus() {
231
+ try {
232
+ const result = await this.callTool('context_status', {});
233
+ return result;
234
+ }
235
+ catch (error) {
236
+ console.error('[memory-keeper-client] Status failed:', error);
237
+ return null;
238
+ }
239
+ }
240
+ /**
241
+ * Create a checkpoint
242
+ */
243
+ async checkpoint(name, description) {
244
+ try {
245
+ const result = await this.callTool('context_checkpoint', {
246
+ name,
247
+ description,
248
+ includeGitStatus: true
249
+ });
250
+ return result?.checkpointId || null;
251
+ }
252
+ catch (error) {
253
+ console.error('[memory-keeper-client] Checkpoint failed:', error);
254
+ return null;
255
+ }
256
+ }
257
+ /**
258
+ * Get items by channel
259
+ */
260
+ async getByChannel(channel, limit = 50) {
261
+ try {
262
+ const result = await this.callTool('context_get', {
263
+ channel,
264
+ limit,
265
+ includeMetadata: true
266
+ });
267
+ return result?.items || [];
268
+ }
269
+ catch (error) {
270
+ console.error('[memory-keeper-client] GetByChannel failed:', error);
271
+ return [];
272
+ }
273
+ }
274
+ /**
275
+ * Get recent items
276
+ */
277
+ async getRecent(limit = 20) {
278
+ try {
279
+ const result = await this.callTool('context_get', {
280
+ limit,
281
+ sort: 'created_desc',
282
+ includeMetadata: true
283
+ });
284
+ return result?.items || [];
285
+ }
286
+ catch (error) {
287
+ console.error('[memory-keeper-client] GetRecent failed:', error);
288
+ return [];
289
+ }
290
+ }
291
+ /**
292
+ * Disconnect from MCP server
293
+ */
294
+ disconnect() {
295
+ if (this.process) {
296
+ this.process.kill();
297
+ this.process = null;
298
+ this.initialized = false;
299
+ }
300
+ }
301
+ }
302
+ // =============================================================================
303
+ // Singleton & Factory
304
+ // =============================================================================
305
+ let clientInstance = null;
306
+ export function getMemoryKeeperClient() {
307
+ if (!clientInstance) {
308
+ clientInstance = new MemoryKeeperClient();
309
+ }
310
+ return clientInstance;
311
+ }
312
+ export function resetMemoryKeeperClient() {
313
+ if (clientInstance) {
314
+ clientInstance.disconnect();
315
+ clientInstance = null;
316
+ }
317
+ }
318
+ export default MemoryKeeperClient;
319
+ //# sourceMappingURL=memory-keeper-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-keeper-client.js","sourceRoot":"","sources":["../../src/services/memory-keeper-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * @file Skill-Learning Bridge Service
3
+ * @description Connects memory systems with the skills learning framework
4
+ *
5
+ * ## Purpose
6
+ *
7
+ * This bridge service synchronizes learnings across:
8
+ * 1. memory-keeper MCP (local SQLite)
9
+ * 2. cmp-standards cloud (Turso/Upstash)
10
+ * 3. Skills markdown files (.claude/skills/SKILL/learnings.md)
11
+ *
12
+ * ## Flow
13
+ *
14
+ * Learning Detected -> SkillLearningBridge
15
+ * - memory-keeper (immediate, local)
16
+ * - skills/learnings.md (immediate, local)
17
+ * - cmp-standards cloud (async, persistent)
18
+ *
19
+ * @version 1.0.0
20
+ */
21
+ export interface Learning {
22
+ id?: string;
23
+ type: 'type-safety' | 'pattern' | 'bugfix' | 'architecture' | 'performance' | 'general';
24
+ skill: string;
25
+ context: string;
26
+ problem: string;
27
+ solution: string;
28
+ file?: string;
29
+ confidence: number;
30
+ timestamp: string;
31
+ source: 'auto' | 'manual' | 'sync';
32
+ }
33
+ export interface SkillStats {
34
+ name: string;
35
+ path: string;
36
+ totalLearnings: number;
37
+ pendingLearnings: number;
38
+ lastEvolution: string | null;
39
+ readyForEvolution: boolean;
40
+ }
41
+ export interface BridgeConfig {
42
+ skillsDir: string;
43
+ evolutionThreshold: number;
44
+ syncToCloud: boolean;
45
+ }
46
+ export declare class SkillLearningBridge {
47
+ private config;
48
+ constructor(config?: Partial<BridgeConfig>);
49
+ /**
50
+ * Record a learning to all systems
51
+ */
52
+ recordLearning(learning: Learning): Promise<{
53
+ skillsWritten: boolean;
54
+ memoryKeeperWritten: boolean;
55
+ cloudSynced: boolean;
56
+ }>;
57
+ /**
58
+ * Write learning to skill's learnings.md file
59
+ */
60
+ private writeToSkillFile;
61
+ /**
62
+ * Format a learning entry as markdown
63
+ */
64
+ private formatLearningEntry;
65
+ /**
66
+ * Get statistics for all skills
67
+ */
68
+ getSkillStats(): Promise<SkillStats[]>;
69
+ /**
70
+ * Check if any skills are ready for evolution
71
+ */
72
+ getSkillsReadyForEvolution(): Promise<SkillStats[]>;
73
+ /**
74
+ * Trigger skill evolution for ready skills
75
+ */
76
+ triggerEvolution(skillName?: string): Promise<string[]>;
77
+ /**
78
+ * Evolve a single skill
79
+ */
80
+ private evolveSkill;
81
+ /**
82
+ * Analyze learnings to find common patterns
83
+ */
84
+ private analyzeLearningPatterns;
85
+ /**
86
+ * Migrate memories from memory-keeper to skills
87
+ */
88
+ migrateFromMemoryKeeper(memories: Array<{
89
+ key: string;
90
+ value: string;
91
+ category?: string;
92
+ }>): Promise<number>;
93
+ /**
94
+ * Detect which skill a memory content relates to
95
+ */
96
+ private detectSkillFromContent;
97
+ }
98
+ export declare function getSkillLearningBridge(config?: Partial<BridgeConfig>): SkillLearningBridge;
99
+ export default SkillLearningBridge;
100
+ //# sourceMappingURL=skill-learning-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-learning-bridge.d.ts","sourceRoot":"","sources":["../../src/services/skill-learning-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAUH,MAAM,WAAW,QAAQ;IACvB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,cAAc,GAAG,aAAa,GAAG,SAAS,CAAA;IACvF,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,iBAAiB,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,WAAW,EAAE,OAAO,CAAA;CACrB;AA4BD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAc;gBAEhB,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM;IAI9C;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;QAChD,aAAa,EAAE,OAAO,CAAA;QACtB,mBAAmB,EAAE,OAAO,CAAA;QAC5B,WAAW,EAAE,OAAO,CAAA;KACrB,CAAC;IA2BF;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuDxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAiC5C;;OAEG;IACG,0BAA0B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAKzD;;OAEG;IACG,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAqB7D;;OAEG;YACW,WAAW;IA4EzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAsB/B;;OAEG;IACG,uBAAuB,CAAC,QAAQ,EAAE,KAAK,CAAC;QAC5C,GAAG,EAAE,MAAM,CAAA;QACX,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BpB;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAqB/B;AAQD,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,mBAAmB,CAK1F;AAED,eAAe,mBAAmB,CAAA"}