cmp-standards 3.4.2 → 3.5.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.
@@ -0,0 +1,318 @@
1
+ /**
2
+ * @file EcosystemStatsService - cmp-standards v3.5
3
+ * @description Aggregates statistics across all projects for the landing page
4
+ *
5
+ * Features:
6
+ * - Queries all project_doc items from Turso
7
+ * - Aggregates totals (LOC, files, symbols, features)
8
+ * - Calculates language breakdown across ecosystem
9
+ * - Detects AI integrations and frameworks
10
+ * - Stores aggregated stats as ecosystem_stats item
11
+ *
12
+ * Integration:
13
+ * - Called by DocsGenerator after generating/updating a project_doc
14
+ * - Provides data for /api/ecosystem/stats endpoint
15
+ * - Auto-regenerates when any project_doc changes
16
+ */
17
+ import { turso, getTurso, create } from '../db/turso-client.js';
18
+ import { getLogger } from '../utils/logger.js';
19
+ import { createEmptyEcosystemStats, createPublicProjectSummary, } from '../schema/ecosystem-types.js';
20
+ const logger = getLogger();
21
+ // AI-related feature IDs to detect AI integrations
22
+ const AI_FEATURE_IDS = [
23
+ 'ai-integration',
24
+ 'claude-integration',
25
+ 'openai',
26
+ 'llm',
27
+ 'embeddings',
28
+ 'vector-search',
29
+ 'semantic-search',
30
+ 'machine-learning',
31
+ 'ml',
32
+ 'ai',
33
+ ];
34
+ // =============================================================================
35
+ // EcosystemStatsService
36
+ // =============================================================================
37
+ export class EcosystemStatsService {
38
+ ecosystemSystem;
39
+ constructor(options = {}) {
40
+ this.ecosystemSystem = options.ecosystemSystem ?? 'ECOSYSTEM';
41
+ }
42
+ /**
43
+ * Regenerate ecosystem stats from all project_docs
44
+ */
45
+ async regenerate() {
46
+ const errors = [];
47
+ logger.info('[EcosystemStats] Starting regeneration');
48
+ try {
49
+ // Fetch all project_docs
50
+ const projectDocs = await this.getAllProjectDocs();
51
+ logger.info(`[EcosystemStats] Found ${projectDocs.length} project docs`);
52
+ if (projectDocs.length === 0) {
53
+ const emptyStats = createEmptyEcosystemStats();
54
+ return {
55
+ stats: emptyStats,
56
+ projectCount: 0,
57
+ stored: false,
58
+ errors: ['No project docs found'],
59
+ };
60
+ }
61
+ // Aggregate stats
62
+ const stats = this.aggregateStats(projectDocs);
63
+ // Store stats
64
+ let stored = false;
65
+ try {
66
+ await this.storeStats(stats);
67
+ stored = true;
68
+ logger.info('[EcosystemStats] Stats stored successfully');
69
+ }
70
+ catch (storeError) {
71
+ const msg = storeError instanceof Error ? storeError.message : String(storeError);
72
+ errors.push(`Failed to store stats: ${msg}`);
73
+ logger.error(`[EcosystemStats] Store error: ${msg}`);
74
+ }
75
+ return {
76
+ stats,
77
+ projectCount: projectDocs.length,
78
+ stored,
79
+ errors,
80
+ };
81
+ }
82
+ catch (error) {
83
+ const msg = error instanceof Error ? error.message : String(error);
84
+ errors.push(`Regeneration failed: ${msg}`);
85
+ logger.error(`[EcosystemStats] Regeneration error: ${msg}`);
86
+ return {
87
+ stats: createEmptyEcosystemStats(),
88
+ projectCount: 0,
89
+ stored: false,
90
+ errors,
91
+ };
92
+ }
93
+ }
94
+ /**
95
+ * Get current ecosystem stats
96
+ */
97
+ async getStats() {
98
+ try {
99
+ getTurso();
100
+ }
101
+ catch {
102
+ return null;
103
+ }
104
+ try {
105
+ const items = await turso.query({
106
+ system: this.ecosystemSystem,
107
+ type: 'ecosystem_stats',
108
+ limit: 1,
109
+ orderBy: 'updated_at',
110
+ orderDir: 'DESC',
111
+ });
112
+ if (items.length === 0)
113
+ return null;
114
+ const item = items[0];
115
+ return item.content;
116
+ }
117
+ catch (error) {
118
+ logger.error(`[EcosystemStats] Failed to get stats: ${error}`);
119
+ return null;
120
+ }
121
+ }
122
+ /**
123
+ * Get all featured projects with public-safe summaries
124
+ */
125
+ async getFeaturedProjects() {
126
+ const projectDocs = await this.getAllProjectDocs();
127
+ // Filter to active projects and sort by LOC
128
+ // Valid statuses: 'active', 'beta', 'stable', 'deprecated', 'internal'
129
+ const activeProjects = projectDocs
130
+ .filter(p => p.content.status === 'active' || p.content.status === 'beta' || p.content.status === 'stable')
131
+ .sort((a, b) => (b.content.stats?.totalLOC ?? 0) - (a.content.stats?.totalLOC ?? 0));
132
+ // Convert to public summaries
133
+ return activeProjects.map(p => {
134
+ const doc = p.content;
135
+ return createPublicProjectSummary(p.system, doc.name, {
136
+ category: doc.category,
137
+ status: doc.status,
138
+ description: doc.description,
139
+ stats: {
140
+ totalLOC: doc.stats?.totalLOC ?? 0,
141
+ totalFiles: doc.stats?.totalFiles ?? 0,
142
+ totalSymbols: doc.stats?.totalSymbols ?? 0,
143
+ components: doc.stats?.components ?? 0,
144
+ tests: doc.stats?.tests ?? 0,
145
+ languages: doc.stats?.languages,
146
+ frameworks: doc.stats?.frameworks,
147
+ },
148
+ features: doc.features?.map(f => ({
149
+ id: f.id,
150
+ name: f.name,
151
+ category: f.category,
152
+ description: f.description,
153
+ })),
154
+ });
155
+ });
156
+ }
157
+ // ===========================================================================
158
+ // Private Methods
159
+ // ===========================================================================
160
+ async getAllProjectDocs() {
161
+ try {
162
+ getTurso();
163
+ }
164
+ catch {
165
+ return [];
166
+ }
167
+ try {
168
+ // Query all project_docs across all systems
169
+ const db = getTurso();
170
+ const result = await db.execute({
171
+ sql: `SELECT system, content FROM items WHERE type = 'project_doc' ORDER BY updated_at DESC`,
172
+ args: [],
173
+ });
174
+ return result.rows.map(row => ({
175
+ system: row.system,
176
+ content: JSON.parse(row.content),
177
+ }));
178
+ }
179
+ catch (error) {
180
+ logger.error(`[EcosystemStats] Failed to get project docs: ${error}`);
181
+ return [];
182
+ }
183
+ }
184
+ aggregateStats(projectDocs) {
185
+ const stats = createEmptyEcosystemStats();
186
+ // Language breakdown accumulator
187
+ const languageTotals = new Map();
188
+ // Features accumulator
189
+ const featureCounts = new Map();
190
+ const featuresByCategory = new Map();
191
+ // Framework accumulator (framework -> project count)
192
+ const frameworkProjects = new Map();
193
+ // Technology usage (package name -> count)
194
+ const technologyUsage = new Map();
195
+ // AI integrations count
196
+ let aiIntegrations = 0;
197
+ // Process each project
198
+ for (const { system, content } of projectDocs) {
199
+ stats.totalProjects++;
200
+ stats.projectsIncluded.push(system);
201
+ const projectStats = content.stats;
202
+ if (!projectStats)
203
+ continue;
204
+ // Accumulate totals
205
+ stats.totalLOC += projectStats.totalLOC ?? 0;
206
+ stats.totalFiles += projectStats.totalFiles ?? 0;
207
+ stats.totalSymbols += projectStats.totalSymbols ?? 0;
208
+ stats.totalComponents += projectStats.components ?? 0;
209
+ stats.totalTests += projectStats.tests ?? 0;
210
+ // Accumulate languages
211
+ if (projectStats.languages) {
212
+ for (const [lang, loc] of Object.entries(projectStats.languages)) {
213
+ languageTotals.set(lang, (languageTotals.get(lang) ?? 0) + loc);
214
+ }
215
+ }
216
+ // Accumulate frameworks
217
+ if (projectStats.frameworks) {
218
+ for (const framework of projectStats.frameworks) {
219
+ frameworkProjects.set(framework, (frameworkProjects.get(framework) ?? 0) + 1);
220
+ }
221
+ }
222
+ // Accumulate top packages as technologies
223
+ if (projectStats.topPackages) {
224
+ for (const pkg of projectStats.topPackages) {
225
+ technologyUsage.set(pkg.name, (technologyUsage.get(pkg.name) ?? 0) + pkg.usageCount);
226
+ }
227
+ }
228
+ // Process features
229
+ const features = content.features ?? [];
230
+ for (const feature of features) {
231
+ featureCounts.set(feature.id, (featureCounts.get(feature.id) ?? 0) + 1);
232
+ featuresByCategory.set(feature.category, (featuresByCategory.get(feature.category) ?? 0) + 1);
233
+ // Check for AI integrations
234
+ if (AI_FEATURE_IDS.some(ai => feature.id.toLowerCase().includes(ai))) {
235
+ aiIntegrations++;
236
+ }
237
+ }
238
+ }
239
+ // Build final stats object
240
+ stats.languageBreakdown = Object.fromEntries(languageTotals);
241
+ stats.uniqueFeatures = featureCounts.size;
242
+ stats.featuresByCategory = Object.fromEntries(featuresByCategory);
243
+ stats.frameworksUsed = Array.from(frameworkProjects.keys());
244
+ stats.aiIntegrations = aiIntegrations;
245
+ stats.generatedAt = new Date().toISOString();
246
+ // Top technologies by project count
247
+ stats.topTechnologies = Array.from(frameworkProjects.entries())
248
+ .map(([name, projectCount]) => ({
249
+ name,
250
+ projectCount,
251
+ totalUsages: technologyUsage.get(name),
252
+ }))
253
+ .sort((a, b) => b.projectCount - a.projectCount)
254
+ .slice(0, 15);
255
+ return stats;
256
+ }
257
+ async storeStats(stats) {
258
+ getTurso();
259
+ // Check for existing stats
260
+ try {
261
+ const db = getTurso();
262
+ const existing = await db.execute({
263
+ sql: `SELECT id FROM items WHERE system = ? AND type = 'ecosystem_stats' LIMIT 1`,
264
+ args: [this.ecosystemSystem],
265
+ });
266
+ if (existing.rows.length > 0) {
267
+ // Update existing
268
+ const id = existing.rows[0].id;
269
+ await db.execute({
270
+ sql: `UPDATE items SET content = ?, updated_at = ? WHERE id = ?`,
271
+ args: [JSON.stringify(stats), new Date().toISOString(), id],
272
+ });
273
+ logger.info(`[EcosystemStats] Updated existing stats ${id}`);
274
+ return;
275
+ }
276
+ }
277
+ catch (queryErr) {
278
+ logger.warn(`[EcosystemStats] Query for existing stats failed: ${queryErr}`);
279
+ }
280
+ // Create new stats
281
+ try {
282
+ const id = await create('ecosystem_stats', this.ecosystemSystem, stats, 'active');
283
+ logger.info(`[EcosystemStats] Created new stats ${id}`);
284
+ }
285
+ catch (createErr) {
286
+ const errMsg = createErr instanceof Error ? createErr.message : String(createErr);
287
+ logger.error(`[EcosystemStats] Create failed: ${errMsg}`);
288
+ throw createErr;
289
+ }
290
+ }
291
+ }
292
+ // =============================================================================
293
+ // Singleton Management
294
+ // =============================================================================
295
+ let instance = null;
296
+ /**
297
+ * Get EcosystemStatsService singleton
298
+ */
299
+ export function getEcosystemStatsService(options) {
300
+ if (!instance) {
301
+ instance = new EcosystemStatsService(options);
302
+ }
303
+ return instance;
304
+ }
305
+ /**
306
+ * Create new EcosystemStatsService instance
307
+ */
308
+ export function createEcosystemStatsService(options) {
309
+ return new EcosystemStatsService(options);
310
+ }
311
+ /**
312
+ * Reset singleton (for testing)
313
+ */
314
+ export function resetEcosystemStatsService() {
315
+ instance = null;
316
+ }
317
+ export default EcosystemStatsService;
318
+ //# sourceMappingURL=EcosystemStatsService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EcosystemStatsService.js","sourceRoot":"","sources":["../../src/services/EcosystemStatsService.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cmp-standards",
3
- "version": "3.4.2",
3
+ "version": "3.5.0",
4
4
  "type": "module",
5
5
  "description": "Collective Memory Protocol - Persistent memory, cross-project learning, and multi-agent collaboration",
6
6
  "main": "dist/index.js",