cmp-standards 3.4.3 → 3.5.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.
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +2 -0
- package/dist/db/client.js.map +1 -1
- package/dist/db/drizzle-client.d.ts +2 -2
- package/dist/db/drizzle-client.d.ts.map +1 -1
- package/dist/db/drizzle-client.js +0 -1
- package/dist/db/drizzle-client.js.map +1 -1
- package/dist/db/migrations.d.ts +1 -1
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +56 -0
- package/dist/db/migrations.js.map +1 -1
- package/dist/feedback/collector.d.ts.map +1 -1
- package/dist/feedback/collector.js +6 -2
- package/dist/feedback/collector.js.map +1 -1
- package/dist/hooks/cloud-session-start.d.ts.map +1 -1
- package/dist/hooks/cloud-session-start.js +14 -11
- package/dist/hooks/cloud-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 +7 -0
- package/dist/index.js.map +1 -1
- package/dist/registry/generator.d.ts.map +1 -1
- package/dist/registry/generator.js +31 -21
- package/dist/registry/generator.js.map +1 -1
- package/dist/schema/ecosystem-types.d.ts +372 -0
- package/dist/schema/ecosystem-types.d.ts.map +1 -0
- package/dist/schema/ecosystem-types.js +157 -0
- package/dist/schema/ecosystem-types.js.map +1 -0
- package/dist/schema/expert-types.d.ts +2 -2
- package/dist/schema/opportunity-types.d.ts +6 -6
- package/dist/schema/tracking.d.ts +2 -2
- package/dist/services/DocsGenerator.d.ts +3 -1
- package/dist/services/DocsGenerator.d.ts.map +1 -1
- package/dist/services/DocsGenerator.js +15 -1
- package/dist/services/DocsGenerator.js.map +1 -1
- package/dist/services/EcosystemStatsService.d.ts +64 -0
- package/dist/services/EcosystemStatsService.d.ts.map +1 -0
- package/dist/services/EcosystemStatsService.js +318 -0
- package/dist/services/EcosystemStatsService.js.map +1 -0
- package/dist/services/GitIntegration.d.ts.map +1 -1
- package/dist/services/GitIntegration.js +18 -14
- package/dist/services/GitIntegration.js.map +1 -1
- package/dist/services/semantic-search.d.ts.map +1 -1
- package/dist/services/semantic-search.js +10 -6
- package/dist/services/semantic-search.js.map +1 -1
- package/package.json +1 -1
|
@@ -173,7 +173,7 @@ export declare const ExpertRecommendationContentSchema: z.ZodObject<{
|
|
|
173
173
|
}>>;
|
|
174
174
|
}, "strip", z.ZodTypeAny, {
|
|
175
175
|
title: string;
|
|
176
|
-
status: "pending" | "
|
|
176
|
+
status: "pending" | "rejected" | "implemented" | "deferred" | "approved";
|
|
177
177
|
description: string;
|
|
178
178
|
priority: "critical" | "high" | "medium" | "low";
|
|
179
179
|
effort: "medium" | "small" | "large" | "trivial";
|
|
@@ -198,7 +198,7 @@ export declare const ExpertRecommendationContentSchema: z.ZodObject<{
|
|
|
198
198
|
taskId: string;
|
|
199
199
|
area: string;
|
|
200
200
|
expertId: string;
|
|
201
|
-
status?: "pending" | "
|
|
201
|
+
status?: "pending" | "rejected" | "implemented" | "deferred" | "approved" | undefined;
|
|
202
202
|
feedback?: {
|
|
203
203
|
helpful: boolean;
|
|
204
204
|
comment?: string | undefined;
|
|
@@ -84,7 +84,7 @@ export declare const OpportunitySchema: z.ZodObject<{
|
|
|
84
84
|
}, "strip", z.ZodTypeAny, {
|
|
85
85
|
title: string;
|
|
86
86
|
source: "pattern_detection" | "code_analysis" | "expert_review" | "usage_analytics" | "user_suggestion" | "best_practice_gap" | "dependency_analysis";
|
|
87
|
-
status: "in_progress" | "
|
|
87
|
+
status: "in_progress" | "rejected" | "implemented" | "deferred" | "new" | "evaluating" | "accepted";
|
|
88
88
|
relatedFiles: string[];
|
|
89
89
|
description: string;
|
|
90
90
|
id: string;
|
|
@@ -118,7 +118,7 @@ export declare const OpportunitySchema: z.ZodObject<{
|
|
|
118
118
|
updatedAt: string;
|
|
119
119
|
impact: "high" | "medium" | "low";
|
|
120
120
|
discoveredAt: string;
|
|
121
|
-
status?: "in_progress" | "
|
|
121
|
+
status?: "in_progress" | "rejected" | "implemented" | "deferred" | "new" | "evaluating" | "accepted" | undefined;
|
|
122
122
|
relatedFiles?: string[] | undefined;
|
|
123
123
|
tags?: string[] | undefined;
|
|
124
124
|
suggestedApproach?: string | undefined;
|
|
@@ -288,7 +288,7 @@ export declare const OpportunityDiscoveryResultSchema: z.ZodObject<{
|
|
|
288
288
|
}, "strip", z.ZodTypeAny, {
|
|
289
289
|
title: string;
|
|
290
290
|
source: "pattern_detection" | "code_analysis" | "expert_review" | "usage_analytics" | "user_suggestion" | "best_practice_gap" | "dependency_analysis";
|
|
291
|
-
status: "in_progress" | "
|
|
291
|
+
status: "in_progress" | "rejected" | "implemented" | "deferred" | "new" | "evaluating" | "accepted";
|
|
292
292
|
relatedFiles: string[];
|
|
293
293
|
description: string;
|
|
294
294
|
id: string;
|
|
@@ -322,7 +322,7 @@ export declare const OpportunityDiscoveryResultSchema: z.ZodObject<{
|
|
|
322
322
|
updatedAt: string;
|
|
323
323
|
impact: "high" | "medium" | "low";
|
|
324
324
|
discoveredAt: string;
|
|
325
|
-
status?: "in_progress" | "
|
|
325
|
+
status?: "in_progress" | "rejected" | "implemented" | "deferred" | "new" | "evaluating" | "accepted" | undefined;
|
|
326
326
|
relatedFiles?: string[] | undefined;
|
|
327
327
|
tags?: string[] | undefined;
|
|
328
328
|
suggestedApproach?: string | undefined;
|
|
@@ -431,7 +431,7 @@ export declare const OpportunityDiscoveryResultSchema: z.ZodObject<{
|
|
|
431
431
|
opportunities: {
|
|
432
432
|
title: string;
|
|
433
433
|
source: "pattern_detection" | "code_analysis" | "expert_review" | "usage_analytics" | "user_suggestion" | "best_practice_gap" | "dependency_analysis";
|
|
434
|
-
status: "in_progress" | "
|
|
434
|
+
status: "in_progress" | "rejected" | "implemented" | "deferred" | "new" | "evaluating" | "accepted";
|
|
435
435
|
relatedFiles: string[];
|
|
436
436
|
description: string;
|
|
437
437
|
id: string;
|
|
@@ -497,7 +497,7 @@ export declare const OpportunityDiscoveryResultSchema: z.ZodObject<{
|
|
|
497
497
|
updatedAt: string;
|
|
498
498
|
impact: "high" | "medium" | "low";
|
|
499
499
|
discoveredAt: string;
|
|
500
|
-
status?: "in_progress" | "
|
|
500
|
+
status?: "in_progress" | "rejected" | "implemented" | "deferred" | "new" | "evaluating" | "accepted" | undefined;
|
|
501
501
|
relatedFiles?: string[] | undefined;
|
|
502
502
|
tags?: string[] | undefined;
|
|
503
503
|
suggestedApproach?: string | undefined;
|
|
@@ -434,7 +434,7 @@ export declare const ImprovementRecordSchema: z.ZodObject<{
|
|
|
434
434
|
}, "strip", z.ZodTypeAny, {
|
|
435
435
|
system: string;
|
|
436
436
|
type: "improvement";
|
|
437
|
-
status: "in_progress" | "pending" | "
|
|
437
|
+
status: "in_progress" | "pending" | "rejected" | "implemented" | "deferred";
|
|
438
438
|
id: string;
|
|
439
439
|
createdAt: string;
|
|
440
440
|
updatedAt: string;
|
|
@@ -456,7 +456,7 @@ export declare const ImprovementRecordSchema: z.ZodObject<{
|
|
|
456
456
|
}, {
|
|
457
457
|
system: string;
|
|
458
458
|
type: "improvement";
|
|
459
|
-
status: "in_progress" | "pending" | "
|
|
459
|
+
status: "in_progress" | "pending" | "rejected" | "implemented" | "deferred";
|
|
460
460
|
id: string;
|
|
461
461
|
createdAt: string;
|
|
462
462
|
updatedAt: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @file DocsGenerator Service - cmp-standards v3.
|
|
2
|
+
* @file DocsGenerator Service - cmp-standards v3.5
|
|
3
3
|
* @description Automated project documentation generator from CodeWiki data
|
|
4
4
|
*
|
|
5
5
|
* Features:
|
|
@@ -8,11 +8,13 @@
|
|
|
8
8
|
* - Generates architecture diagrams (Mermaid)
|
|
9
9
|
* - Creates simple explanations for beginners
|
|
10
10
|
* - Stores documentation as project_doc items in Turso
|
|
11
|
+
* - Triggers EcosystemStatsService after storing (v3.5)
|
|
11
12
|
*
|
|
12
13
|
* Integration:
|
|
13
14
|
* - Consumes data from CodeWikiIndexer
|
|
14
15
|
* - Can be triggered by WikiSyncService after indexing
|
|
15
16
|
* - Provides data for web UI pages
|
|
17
|
+
* - Auto-updates ecosystem stats when any project changes
|
|
16
18
|
*/
|
|
17
19
|
import type { DevSystem } from '../types/index.js';
|
|
18
20
|
import { type ProjectDocContent, type FeaturePattern } from '../schema/docs-types.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocsGenerator.d.ts","sourceRoot":"","sources":["../../src/services/DocsGenerator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"DocsGenerator.d.ts","sourceRoot":"","sources":["../../src/services/DocsGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAMlD,OAAO,EACL,KAAK,iBAAiB,EAKtB,KAAK,cAAc,EAMpB,MAAM,yBAAyB,CAAA;AAQhC,MAAM,WAAW,oBAAoB;IACnC,wBAAwB;IACxB,MAAM,EAAE,SAAS,CAAA;IACjB,qCAAqC;IACrC,eAAe,CAAC,EAAE,cAAc,EAAE,CAAA;IAClC,kCAAkC;IAClC,yBAAyB,CAAC,EAAE,OAAO,CAAA;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,GAAG,EAAE,iBAAiB,CAAA;IACtB,yCAAyC;IACzC,MAAM,EAAE,OAAO,CAAA;IACf,yBAAyB;IACzB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAMD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,yBAAyB,CAAS;gBAE9B,OAAO,EAAE,oBAAoB;IAMzC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAwFzC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IA0BvD;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IA0B3C;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;YAa5C,eAAe;YAmBf,iBAAiB;YAmBjB,mBAAmB;YAmBnB,cAAc;IA8B5B,OAAO,CAAC,cAAc;IAqDtB,OAAO,CAAC,cAAc;IAsEtB,OAAO,CAAC,kBAAkB;IAuB1B,OAAO,CAAC,kBAAkB;IA0F1B,OAAO,CAAC,sBAAsB;IA2C9B,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,YAAY;YAoBN,QAAQ;CAqCvB;AAQD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,aAAa,CAKjE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAEhF;AAED,eAAe,aAAa,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @file DocsGenerator Service - cmp-standards v3.
|
|
2
|
+
* @file DocsGenerator Service - cmp-standards v3.5
|
|
3
3
|
* @description Automated project documentation generator from CodeWiki data
|
|
4
4
|
*
|
|
5
5
|
* Features:
|
|
@@ -8,11 +8,13 @@
|
|
|
8
8
|
* - Generates architecture diagrams (Mermaid)
|
|
9
9
|
* - Creates simple explanations for beginners
|
|
10
10
|
* - Stores documentation as project_doc items in Turso
|
|
11
|
+
* - Triggers EcosystemStatsService after storing (v3.5)
|
|
11
12
|
*
|
|
12
13
|
* Integration:
|
|
13
14
|
* - Consumes data from CodeWikiIndexer
|
|
14
15
|
* - Can be triggered by WikiSyncService after indexing
|
|
15
16
|
* - Provides data for web UI pages
|
|
17
|
+
* - Auto-updates ecosystem stats when any project changes
|
|
16
18
|
*/
|
|
17
19
|
import { turso, getTurso, create } from '../db/turso-client.js';
|
|
18
20
|
import { getLogger } from '../utils/logger.js';
|
|
@@ -80,6 +82,18 @@ export class DocsGenerator {
|
|
|
80
82
|
await this.storeDoc(doc);
|
|
81
83
|
stored = true;
|
|
82
84
|
logger.info(`[DocsGenerator] Stored docs for ${config.name}`);
|
|
85
|
+
// Trigger ecosystem stats regeneration (v3.5)
|
|
86
|
+
try {
|
|
87
|
+
const { getEcosystemStatsService } = await import('./EcosystemStatsService.js');
|
|
88
|
+
const ecosystemService = getEcosystemStatsService();
|
|
89
|
+
await ecosystemService.regenerate();
|
|
90
|
+
logger.info(`[DocsGenerator] Ecosystem stats regenerated`);
|
|
91
|
+
}
|
|
92
|
+
catch (ecosystemError) {
|
|
93
|
+
const msg = ecosystemError instanceof Error ? ecosystemError.message : String(ecosystemError);
|
|
94
|
+
logger.warn(`[DocsGenerator] Ecosystem stats regeneration failed (non-blocking): ${msg}`);
|
|
95
|
+
// Non-blocking: don't fail the main operation
|
|
96
|
+
}
|
|
83
97
|
}
|
|
84
98
|
catch (storeError) {
|
|
85
99
|
const msg = storeError instanceof Error ? storeError.message : String(storeError);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocsGenerator.js","sourceRoot":"","sources":["../../src/services/DocsGenerator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DocsGenerator.js","sourceRoot":"","sources":["../../src/services/DocsGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
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 { type EcosystemStatsContent, type PublicProjectSummary } from '../schema/ecosystem-types.js';
|
|
18
|
+
export interface EcosystemStatsServiceOptions {
|
|
19
|
+
/** System identifier for the ecosystem stats item (default: 'ECOSYSTEM') */
|
|
20
|
+
ecosystemSystem?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface RegenerateResult {
|
|
23
|
+
/** Generated stats */
|
|
24
|
+
stats: EcosystemStatsContent;
|
|
25
|
+
/** Number of projects aggregated */
|
|
26
|
+
projectCount: number;
|
|
27
|
+
/** Whether stats were stored */
|
|
28
|
+
stored: boolean;
|
|
29
|
+
/** Errors encountered */
|
|
30
|
+
errors: string[];
|
|
31
|
+
}
|
|
32
|
+
export declare class EcosystemStatsService {
|
|
33
|
+
private ecosystemSystem;
|
|
34
|
+
constructor(options?: EcosystemStatsServiceOptions);
|
|
35
|
+
/**
|
|
36
|
+
* Regenerate ecosystem stats from all project_docs
|
|
37
|
+
*/
|
|
38
|
+
regenerate(): Promise<RegenerateResult>;
|
|
39
|
+
/**
|
|
40
|
+
* Get current ecosystem stats
|
|
41
|
+
*/
|
|
42
|
+
getStats(): Promise<EcosystemStatsContent | null>;
|
|
43
|
+
/**
|
|
44
|
+
* Get all featured projects with public-safe summaries
|
|
45
|
+
*/
|
|
46
|
+
getFeaturedProjects(): Promise<PublicProjectSummary[]>;
|
|
47
|
+
private getAllProjectDocs;
|
|
48
|
+
private aggregateStats;
|
|
49
|
+
private storeStats;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Get EcosystemStatsService singleton
|
|
53
|
+
*/
|
|
54
|
+
export declare function getEcosystemStatsService(options?: EcosystemStatsServiceOptions): EcosystemStatsService;
|
|
55
|
+
/**
|
|
56
|
+
* Create new EcosystemStatsService instance
|
|
57
|
+
*/
|
|
58
|
+
export declare function createEcosystemStatsService(options?: EcosystemStatsServiceOptions): EcosystemStatsService;
|
|
59
|
+
/**
|
|
60
|
+
* Reset singleton (for testing)
|
|
61
|
+
*/
|
|
62
|
+
export declare function resetEcosystemStatsService(): void;
|
|
63
|
+
export default EcosystemStatsService;
|
|
64
|
+
//# sourceMappingURL=EcosystemStatsService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EcosystemStatsService.d.ts","sourceRoot":"","sources":["../../src/services/EcosystemStatsService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAI1B,MAAM,8BAA8B,CAAA;AAQrC,MAAM,WAAW,4BAA4B;IAC3C,4EAA4E;IAC5E,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB;IACtB,KAAK,EAAE,qBAAqB,CAAA;IAC5B,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,gCAAgC;IAChC,MAAM,EAAE,OAAO,CAAA;IACf,yBAAyB;IACzB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAoBD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,eAAe,CAAQ;gBAEnB,OAAO,GAAE,4BAAiC;IAItD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAsD7C;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IA0BvD;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;YA2C9C,iBAAiB;IAyB/B,OAAO,CAAC,cAAc;YA2FR,UAAU;CAmCzB;AAQD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,CAAC,EAAE,4BAA4B,GACrC,qBAAqB,CAKvB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,CAAC,EAAE,4BAA4B,GACrC,qBAAqB,CAEvB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAED,eAAe,qBAAqB,CAAA"}
|
|
@@ -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
|