@skillsmith/core 0.4.0 → 0.4.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/.tsbuildinfo +1 -1
- package/dist/src/analysis/CodebaseAnalyzer.d.ts.map +1 -1
- package/dist/src/analysis/CodebaseAnalyzer.js.map +1 -1
- package/dist/src/analysis/adapters/__tests__/python.test.js.map +1 -1
- package/dist/src/analysis/language-detector.d.ts +4 -20
- package/dist/src/analysis/language-detector.d.ts.map +1 -1
- package/dist/src/analysis/language-detector.js +2 -399
- package/dist/src/analysis/language-detector.js.map +1 -1
- package/dist/src/analysis/language-detector.patterns.d.ts +17 -0
- package/dist/src/analysis/language-detector.patterns.d.ts.map +1 -0
- package/dist/src/analysis/language-detector.patterns.js +413 -0
- package/dist/src/analysis/language-detector.patterns.js.map +1 -0
- package/dist/src/analysis/language-detector.types.d.ts +48 -0
- package/dist/src/analysis/language-detector.types.d.ts.map +1 -0
- package/dist/src/analysis/language-detector.types.js +6 -0
- package/dist/src/analysis/language-detector.types.js.map +1 -0
- package/dist/src/analysis/metrics.d.ts +22 -219
- package/dist/src/analysis/metrics.d.ts.map +1 -1
- package/dist/src/analysis/metrics.implementations.d.ts +39 -0
- package/dist/src/analysis/metrics.implementations.d.ts.map +1 -0
- package/dist/src/analysis/metrics.implementations.js +114 -0
- package/dist/src/analysis/metrics.implementations.js.map +1 -0
- package/dist/src/analysis/metrics.js +21 -224
- package/dist/src/analysis/metrics.js.map +1 -1
- package/dist/src/analysis/metrics.types.d.ts +79 -0
- package/dist/src/analysis/metrics.types.d.ts.map +1 -0
- package/dist/src/analysis/metrics.types.js +6 -0
- package/dist/src/analysis/metrics.types.js.map +1 -0
- package/dist/src/analytics/ROIDashboardService.js +4 -2
- package/dist/src/analytics/ROIDashboardService.js.map +1 -1
- package/dist/src/api/cache.d.ts.map +1 -1
- package/dist/src/api/cache.js.map +1 -1
- package/dist/src/api/client.d.ts +1 -0
- package/dist/src/api/client.d.ts.map +1 -1
- package/dist/src/api/client.js +17 -3
- package/dist/src/api/client.js.map +1 -1
- package/dist/src/api/types.d.ts +1 -1
- package/dist/src/api/types.d.ts.map +1 -1
- package/dist/src/benchmarks/BenchmarkRunner.d.ts.map +1 -1
- package/dist/src/benchmarks/BenchmarkRunner.js +1 -1
- package/dist/src/benchmarks/BenchmarkRunner.js.map +1 -1
- package/dist/src/billing/BillingService.d.ts +15 -53
- package/dist/src/billing/BillingService.d.ts.map +1 -1
- package/dist/src/billing/BillingService.helpers.d.ts +15 -0
- package/dist/src/billing/BillingService.helpers.d.ts.map +1 -0
- package/dist/src/billing/BillingService.helpers.js +45 -0
- package/dist/src/billing/BillingService.helpers.js.map +1 -0
- package/dist/src/billing/BillingService.js +49 -179
- package/dist/src/billing/BillingService.js.map +1 -1
- package/dist/src/billing/BillingService.types.d.ts +52 -0
- package/dist/src/billing/BillingService.types.d.ts.map +1 -0
- package/dist/src/billing/BillingService.types.js +6 -0
- package/dist/src/billing/BillingService.types.js.map +1 -0
- package/dist/src/billing/StripeClient.d.ts +3 -2
- package/dist/src/billing/StripeClient.d.ts.map +1 -1
- package/dist/src/billing/StripeClient.js +4 -3
- package/dist/src/billing/StripeClient.js.map +1 -1
- package/dist/src/billing/StripeWebhookHandler.d.ts +13 -0
- package/dist/src/billing/StripeWebhookHandler.d.ts.map +1 -1
- package/dist/src/billing/StripeWebhookHandler.js +52 -9
- package/dist/src/billing/StripeWebhookHandler.js.map +1 -1
- package/dist/src/db/migration.d.ts +129 -0
- package/dist/src/db/migration.d.ts.map +1 -0
- package/dist/src/db/migration.js +289 -0
- package/dist/src/db/migration.js.map +1 -0
- package/dist/src/db/schema.d.ts +2 -2
- package/dist/src/db/schema.d.ts.map +1 -1
- package/dist/src/db/schema.js +23 -1
- package/dist/src/db/schema.js.map +1 -1
- package/dist/src/embeddings/hnsw-store.d.ts +8 -518
- package/dist/src/embeddings/hnsw-store.d.ts.map +1 -1
- package/dist/src/embeddings/hnsw-store.helpers.d.ts +83 -0
- package/dist/src/embeddings/hnsw-store.helpers.d.ts.map +1 -0
- package/dist/src/embeddings/hnsw-store.helpers.js +147 -0
- package/dist/src/embeddings/hnsw-store.helpers.js.map +1 -0
- package/dist/src/embeddings/hnsw-store.js +66 -517
- package/dist/src/embeddings/hnsw-store.js.map +1 -1
- package/dist/src/embeddings/hnsw-store.types.d.ts +154 -0
- package/dist/src/embeddings/hnsw-store.types.d.ts.map +1 -0
- package/dist/src/embeddings/hnsw-store.types.js +26 -0
- package/dist/src/embeddings/hnsw-store.types.js.map +1 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +1 -1
- package/dist/src/errors.js.map +1 -1
- package/dist/src/index.d.ts +8 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +18 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/indexer/GitHubIndexer.d.ts.map +1 -1
- package/dist/src/indexer/GitHubIndexer.js +17 -4
- package/dist/src/indexer/GitHubIndexer.js.map +1 -1
- package/dist/src/indexer/SwarmIndexer.d.ts.map +1 -1
- package/dist/src/indexer/SwarmIndexer.js +1 -1
- package/dist/src/indexer/SwarmIndexer.js.map +1 -1
- package/dist/src/learning/PatternStore.d.ts +6 -426
- package/dist/src/learning/PatternStore.d.ts.map +1 -1
- package/dist/src/learning/PatternStore.helpers.d.ts +88 -0
- package/dist/src/learning/PatternStore.helpers.d.ts.map +1 -0
- package/dist/src/learning/PatternStore.helpers.js +286 -0
- package/dist/src/learning/PatternStore.helpers.js.map +1 -0
- package/dist/src/learning/PatternStore.js +52 -598
- package/dist/src/learning/PatternStore.js.map +1 -1
- package/dist/src/learning/PatternStore.queries.d.ts +83 -0
- package/dist/src/learning/PatternStore.queries.d.ts.map +1 -0
- package/dist/src/learning/PatternStore.queries.js +189 -0
- package/dist/src/learning/PatternStore.queries.js.map +1 -0
- package/dist/src/learning/PatternStore.types.d.ts +308 -0
- package/dist/src/learning/PatternStore.types.d.ts.map +1 -0
- package/dist/src/learning/PatternStore.types.js +44 -0
- package/dist/src/learning/PatternStore.types.js.map +1 -0
- package/dist/src/learning/ReasoningBankIntegration.d.ts +5 -345
- package/dist/src/learning/ReasoningBankIntegration.d.ts.map +1 -1
- package/dist/src/learning/ReasoningBankIntegration.helpers.d.ts +49 -0
- package/dist/src/learning/ReasoningBankIntegration.helpers.d.ts.map +1 -0
- package/dist/src/learning/ReasoningBankIntegration.helpers.js +180 -0
- package/dist/src/learning/ReasoningBankIntegration.helpers.js.map +1 -0
- package/dist/src/learning/ReasoningBankIntegration.js +21 -390
- package/dist/src/learning/ReasoningBankIntegration.js.map +1 -1
- package/dist/src/learning/ReasoningBankIntegration.types.d.ts +167 -0
- package/dist/src/learning/ReasoningBankIntegration.types.d.ts.map +1 -0
- package/dist/src/learning/ReasoningBankIntegration.types.js +51 -0
- package/dist/src/learning/ReasoningBankIntegration.types.js.map +1 -0
- package/dist/src/learning/interfaces.d.ts.map +1 -1
- package/dist/src/pipeline/DailyIndexPipeline.js +1 -1
- package/dist/src/pipeline/DailyIndexPipeline.js.map +1 -1
- package/dist/src/repositories/IndexerRepository.d.ts +1 -0
- package/dist/src/repositories/IndexerRepository.d.ts.map +1 -1
- package/dist/src/repositories/IndexerRepository.js +6 -0
- package/dist/src/repositories/IndexerRepository.js.map +1 -1
- package/dist/src/repositories/SkillRepository.d.ts.map +1 -1
- package/dist/src/repositories/SkillRepository.js +20 -5
- package/dist/src/repositories/SkillRepository.js.map +1 -1
- package/dist/src/routing/SONARouter.d.ts +3 -101
- package/dist/src/routing/SONARouter.d.ts.map +1 -1
- package/dist/src/routing/SONARouter.helpers.d.ts +112 -0
- package/dist/src/routing/SONARouter.helpers.d.ts.map +1 -0
- package/dist/src/routing/SONARouter.helpers.js +184 -0
- package/dist/src/routing/SONARouter.helpers.js.map +1 -0
- package/dist/src/routing/SONARouter.js +16 -318
- package/dist/src/routing/SONARouter.js.map +1 -1
- package/dist/src/scripts/github-import/github-client.js +0 -1
- package/dist/src/scripts/github-import/github-client.js.map +1 -1
- package/dist/src/scripts/ingest-lenny-skills.d.ts +40 -0
- package/dist/src/scripts/ingest-lenny-skills.d.ts.map +1 -0
- package/dist/src/scripts/ingest-lenny-skills.js +346 -0
- package/dist/src/scripts/ingest-lenny-skills.js.map +1 -0
- package/dist/src/scripts/review-lenny-skills.d.ts +25 -0
- package/dist/src/scripts/review-lenny-skills.d.ts.map +1 -0
- package/dist/src/scripts/review-lenny-skills.js +520 -0
- package/dist/src/scripts/review-lenny-skills.js.map +1 -0
- package/dist/src/scripts/sync-to-supabase.d.ts +10 -0
- package/dist/src/scripts/sync-to-supabase.d.ts.map +1 -0
- package/dist/src/scripts/sync-to-supabase.js +93 -0
- package/dist/src/scripts/sync-to-supabase.js.map +1 -0
- package/dist/src/security/AuditLogger.js +1 -1
- package/dist/src/security/AuditLogger.js.map +1 -1
- package/dist/src/security/__tests__/pathValidation.test.js.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.d.ts +12 -88
- package/dist/src/security/scanner/SecurityScanner.d.ts.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.formatters.d.ts +49 -0
- package/dist/src/security/scanner/SecurityScanner.formatters.d.ts.map +1 -0
- package/dist/src/security/scanner/SecurityScanner.formatters.js +139 -0
- package/dist/src/security/scanner/SecurityScanner.formatters.js.map +1 -0
- package/dist/src/security/scanner/SecurityScanner.helpers.d.ts +40 -0
- package/dist/src/security/scanner/SecurityScanner.helpers.d.ts.map +1 -0
- package/dist/src/security/scanner/SecurityScanner.helpers.js +142 -0
- package/dist/src/security/scanner/SecurityScanner.helpers.js.map +1 -0
- package/dist/src/security/scanner/SecurityScanner.js +26 -255
- package/dist/src/security/scanner/SecurityScanner.js.map +1 -1
- package/dist/src/services/SearchService.d.ts +5 -0
- package/dist/src/services/SearchService.d.ts.map +1 -1
- package/dist/src/services/SearchService.js +143 -11
- package/dist/src/services/SearchService.js.map +1 -1
- package/dist/src/services/SkillAnalyzer.d.ts +117 -0
- package/dist/src/services/SkillAnalyzer.d.ts.map +1 -0
- package/dist/src/services/SkillAnalyzer.js +421 -0
- package/dist/src/services/SkillAnalyzer.js.map +1 -0
- package/dist/src/services/SkillDecomposer.d.ts +103 -0
- package/dist/src/services/SkillDecomposer.d.ts.map +1 -0
- package/dist/src/services/SkillDecomposer.js +359 -0
- package/dist/src/services/SkillDecomposer.js.map +1 -0
- package/dist/src/services/SubagentGenerator.d.ts +68 -0
- package/dist/src/services/SubagentGenerator.d.ts.map +1 -0
- package/dist/src/services/SubagentGenerator.js +319 -0
- package/dist/src/services/SubagentGenerator.js.map +1 -0
- package/dist/src/services/TransformationService.d.ts +163 -0
- package/dist/src/services/TransformationService.d.ts.map +1 -0
- package/dist/src/services/TransformationService.js +291 -0
- package/dist/src/services/TransformationService.js.map +1 -0
- package/dist/src/services/__tests__/SkillAnalyzer.test.d.ts +6 -0
- package/dist/src/services/__tests__/SkillAnalyzer.test.d.ts.map +1 -0
- package/dist/src/services/__tests__/SkillAnalyzer.test.js +177 -0
- package/dist/src/services/__tests__/SkillAnalyzer.test.js.map +1 -0
- package/dist/src/services/__tests__/SkillDecomposer.test.d.ts +6 -0
- package/dist/src/services/__tests__/SkillDecomposer.test.d.ts.map +1 -0
- package/dist/src/services/__tests__/SkillDecomposer.test.js +235 -0
- package/dist/src/services/__tests__/SkillDecomposer.test.js.map +1 -0
- package/dist/src/services/__tests__/SubagentGenerator.test.d.ts +6 -0
- package/dist/src/services/__tests__/SubagentGenerator.test.d.ts.map +1 -0
- package/dist/src/services/__tests__/SubagentGenerator.test.js +174 -0
- package/dist/src/services/__tests__/SubagentGenerator.test.js.map +1 -0
- package/dist/src/services/__tests__/TransformationService.test.d.ts +6 -0
- package/dist/src/services/__tests__/TransformationService.test.d.ts.map +1 -0
- package/dist/src/services/__tests__/TransformationService.test.js +242 -0
- package/dist/src/services/__tests__/TransformationService.test.js.map +1 -0
- package/dist/src/session/SessionContext.js +1 -1
- package/dist/src/session/SessionContext.js.map +1 -1
- package/dist/src/session/SessionManager.d.ts +3 -67
- package/dist/src/session/SessionManager.d.ts.map +1 -1
- package/dist/src/session/SessionManager.helpers.d.ts +68 -0
- package/dist/src/session/SessionManager.helpers.d.ts.map +1 -0
- package/dist/src/session/SessionManager.helpers.js +152 -0
- package/dist/src/session/SessionManager.helpers.js.map +1 -0
- package/dist/src/session/SessionManager.js +58 -163
- package/dist/src/session/SessionManager.js.map +1 -1
- package/dist/src/session/SessionManager.types.d.ts +88 -0
- package/dist/src/session/SessionManager.types.d.ts.map +1 -0
- package/dist/src/session/SessionManager.types.js +27 -0
- package/dist/src/session/SessionManager.types.js.map +1 -0
- package/dist/src/session/SessionRecovery.d.ts.map +1 -1
- package/dist/src/session/SessionRecovery.js +3 -2
- package/dist/src/session/SessionRecovery.js.map +1 -1
- package/dist/src/sources/RawUrlSourceAdapter.js.map +1 -1
- package/dist/src/sources/SourceAdapterRegistry.js +1 -1
- package/dist/src/sources/SourceAdapterRegistry.js.map +1 -1
- package/dist/src/telemetry/tracer.d.ts.map +1 -1
- package/dist/src/telemetry/tracer.js +2 -3
- package/dist/src/telemetry/tracer.js.map +1 -1
- package/dist/src/testing/MultiLLMProvider.d.ts +17 -293
- package/dist/src/testing/MultiLLMProvider.d.ts.map +1 -1
- package/dist/src/testing/MultiLLMProvider.helpers.d.ts +54 -0
- package/dist/src/testing/MultiLLMProvider.helpers.d.ts.map +1 -0
- package/dist/src/testing/MultiLLMProvider.helpers.js +126 -0
- package/dist/src/testing/MultiLLMProvider.helpers.js.map +1 -0
- package/dist/src/testing/MultiLLMProvider.js +50 -323
- package/dist/src/testing/MultiLLMProvider.js.map +1 -1
- package/dist/src/testing/MultiLLMProvider.types.d.ts +253 -0
- package/dist/src/testing/MultiLLMProvider.types.d.ts.map +1 -0
- package/dist/src/testing/MultiLLMProvider.types.js +111 -0
- package/dist/src/testing/MultiLLMProvider.types.js.map +1 -0
- package/dist/src/triggers/__tests__/TriggerDetector.test.js +1 -1
- package/dist/src/triggers/__tests__/TriggerDetector.test.js.map +1 -1
- package/dist/src/types/skill.d.ts +29 -0
- package/dist/src/types/skill.d.ts.map +1 -1
- package/dist/src/types/skill.js +11 -1
- package/dist/src/types/skill.js.map +1 -1
- package/dist/src/types.d.ts +22 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/retry.js +2 -2
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/validation/index.js +2 -2
- package/dist/src/validation/index.js.map +1 -1
- package/dist/src/webhooks/WebhookHandler.d.ts.map +1 -1
- package/dist/src/webhooks/WebhookHandler.js.map +1 -1
- package/dist/src/webhooks/WebhookPayload.js +1 -1
- package/dist/src/webhooks/WebhookPayload.js.map +1 -1
- package/dist/tests/Analytics.integration.test.js +2 -2
- package/dist/tests/Analytics.integration.test.js.map +1 -1
- package/dist/tests/AnalyticsRepository.test.js +3 -5
- package/dist/tests/AnalyticsRepository.test.js.map +1 -1
- package/dist/tests/AnalyticsStorage.test.js.map +1 -1
- package/dist/tests/ApiPartialResponses.test.d.ts +12 -0
- package/dist/tests/ApiPartialResponses.test.d.ts.map +1 -0
- package/dist/tests/ApiPartialResponses.test.js +202 -0
- package/dist/tests/ApiPartialResponses.test.js.map +1 -0
- package/dist/tests/AuditLogger.test.js.map +1 -1
- package/dist/tests/BenchmarkRunner.test.js +6 -6
- package/dist/tests/BenchmarkRunner.test.js.map +1 -1
- package/dist/tests/CacheSecurity.test.js.map +1 -1
- package/dist/tests/CodebaseAnalyzer.test.js.map +1 -1
- package/dist/tests/DailyIndexPipeline.test.js.map +1 -1
- package/dist/tests/EmbeddingService.test.js.map +1 -1
- package/dist/tests/GitHubIndexer.test.js +4 -3
- package/dist/tests/GitHubIndexer.test.js.map +1 -1
- package/dist/tests/MemoryProfiler.test.js +3 -3
- package/dist/tests/MemoryProfiler.test.js.map +1 -1
- package/dist/tests/QualityScorer.test.js.map +1 -1
- package/dist/tests/RateLimiter.test.js.map +1 -1
- package/dist/tests/ScraperAdapters.test.js.map +1 -1
- package/dist/tests/SecurityScanner.test.js +4 -4
- package/dist/tests/SecurityScanner.test.js.map +1 -1
- package/dist/tests/SessionManager.security.test.js +1 -1
- package/dist/tests/SessionManager.security.test.js.map +1 -1
- package/dist/tests/SessionManager.test.js +4 -4
- package/dist/tests/SessionManager.test.js.map +1 -1
- package/dist/tests/SwarmIndexer.test.js +1 -1
- package/dist/tests/SwarmIndexer.test.js.map +1 -1
- package/dist/tests/TieredCache.test.js +2 -11
- package/dist/tests/TieredCache.test.js.map +1 -1
- package/dist/tests/WebhookHandler.test.js.map +1 -1
- package/dist/tests/fixtures/api-responses/index.d.ts +119 -0
- package/dist/tests/fixtures/api-responses/index.d.ts.map +1 -0
- package/dist/tests/fixtures/api-responses/index.js +419 -0
- package/dist/tests/fixtures/api-responses/index.js.map +1 -0
- package/dist/tests/logger.test.js +1 -1
- package/dist/tests/logger.test.js.map +1 -1
- package/dist/tests/performance/LargeScalePerformance.test.js +1 -1
- package/dist/tests/performance/LargeScalePerformance.test.js.map +1 -1
- package/dist/tests/sanitization.test.js.map +1 -1
- package/dist/tests/session/SessionManager.helpers.test.d.ts +8 -0
- package/dist/tests/session/SessionManager.helpers.test.d.ts.map +1 -0
- package/dist/tests/session/SessionManager.helpers.test.js +105 -0
- package/dist/tests/session/SessionManager.helpers.test.js.map +1 -0
- package/dist/tests/sources.test.js.map +1 -1
- package/dist/tests/webhooks/WebhookHandler.idempotency.test.js +1 -1
- package/dist/tests/webhooks/WebhookHandler.idempotency.test.js.map +1 -1
- package/dist/tests/webhooks/WebhookPayload.security.test.js.map +1 -1
- package/package.json +9 -9
|
@@ -9,121 +9,13 @@
|
|
|
9
9
|
* - Memory usage (gauge)
|
|
10
10
|
* - Error counts by type (counter)
|
|
11
11
|
*
|
|
12
|
-
* Configuration:
|
|
13
|
-
* - SKILLSMITH_TELEMETRY_ENABLED: Master switch for all telemetry (default: auto)
|
|
14
|
-
* - SKILLSMITH_ANALYSIS_METRICS_ENABLED: Enable/disable analysis metrics (default: true)
|
|
15
|
-
*
|
|
16
|
-
* Graceful Fallback:
|
|
17
|
-
* - If OpenTelemetry packages are not installed, uses in-memory implementations
|
|
18
|
-
* - Metrics APIs remain functional for local statistics
|
|
19
|
-
*
|
|
20
12
|
* @see docs/architecture/multi-language-analysis.md
|
|
21
13
|
* @module analysis/metrics
|
|
22
14
|
*/
|
|
23
|
-
import type { Counter, Histogram, Gauge, MetricLabels } from '../telemetry/metrics.js';
|
|
24
15
|
import type { SupportedLanguage } from './types.js';
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
export interface AnalysisMetricsConfig {
|
|
29
|
-
/** Whether to enable metrics collection (default: true) */
|
|
30
|
-
enabled?: boolean;
|
|
31
|
-
/** Prefix for all metric names (default: skillsmith.analysis) */
|
|
32
|
-
metricPrefix?: string;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* In-memory counter implementation
|
|
36
|
-
*/
|
|
37
|
-
declare class InMemoryCounter implements Counter {
|
|
38
|
-
private values;
|
|
39
|
-
add(value: number, labels?: MetricLabels): void;
|
|
40
|
-
increment(labels?: MetricLabels): void;
|
|
41
|
-
getValues(): Map<string, number>;
|
|
42
|
-
getTotal(): number;
|
|
43
|
-
reset(): void;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* In-memory histogram implementation
|
|
47
|
-
*/
|
|
48
|
-
declare class InMemoryHistogram implements Histogram {
|
|
49
|
-
private values;
|
|
50
|
-
private labeledValues;
|
|
51
|
-
record(value: number, labels?: MetricLabels): void;
|
|
52
|
-
getStats(): {
|
|
53
|
-
count: number;
|
|
54
|
-
sum: number;
|
|
55
|
-
mean: number;
|
|
56
|
-
p50: number;
|
|
57
|
-
p95: number;
|
|
58
|
-
p99: number;
|
|
59
|
-
};
|
|
60
|
-
getStatsByLabel(labels: MetricLabels): ReturnType<typeof this.getStats>;
|
|
61
|
-
reset(): void;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* In-memory gauge implementation
|
|
65
|
-
*/
|
|
66
|
-
declare class InMemoryGauge implements Gauge {
|
|
67
|
-
private values;
|
|
68
|
-
set(value: number, labels?: MetricLabels): void;
|
|
69
|
-
getValue(labels?: MetricLabels): number;
|
|
70
|
-
getAllValues(): Map<string, number>;
|
|
71
|
-
reset(): void;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Analysis metrics snapshot for export
|
|
75
|
-
*/
|
|
76
|
-
export interface AnalysisMetricsSnapshot {
|
|
77
|
-
timestamp: string;
|
|
78
|
-
filesParsed: {
|
|
79
|
-
total: number;
|
|
80
|
-
byLanguage: Record<string, number>;
|
|
81
|
-
};
|
|
82
|
-
parseDuration: {
|
|
83
|
-
stats: {
|
|
84
|
-
count: number;
|
|
85
|
-
sum: number;
|
|
86
|
-
mean: number;
|
|
87
|
-
p50: number;
|
|
88
|
-
p95: number;
|
|
89
|
-
p99: number;
|
|
90
|
-
};
|
|
91
|
-
byLanguage: Record<string, {
|
|
92
|
-
count: number;
|
|
93
|
-
sum: number;
|
|
94
|
-
mean: number;
|
|
95
|
-
p50: number;
|
|
96
|
-
p95: number;
|
|
97
|
-
p99: number;
|
|
98
|
-
}>;
|
|
99
|
-
};
|
|
100
|
-
cache: {
|
|
101
|
-
hits: number;
|
|
102
|
-
misses: number;
|
|
103
|
-
hitRate: number;
|
|
104
|
-
size: number;
|
|
105
|
-
};
|
|
106
|
-
workerPool: {
|
|
107
|
-
activeWorkers: number;
|
|
108
|
-
queuedTasks: number;
|
|
109
|
-
utilization: number;
|
|
110
|
-
};
|
|
111
|
-
memory: {
|
|
112
|
-
heapUsed: number;
|
|
113
|
-
heapTotal: number;
|
|
114
|
-
rss: number;
|
|
115
|
-
};
|
|
116
|
-
errors: {
|
|
117
|
-
total: number;
|
|
118
|
-
byType: Record<string, number>;
|
|
119
|
-
};
|
|
120
|
-
aggregator: {
|
|
121
|
-
filesProcessed: number;
|
|
122
|
-
totalImports: number;
|
|
123
|
-
totalExports: number;
|
|
124
|
-
totalFunctions: number;
|
|
125
|
-
};
|
|
126
|
-
}
|
|
16
|
+
import type { AnalysisMetricsConfig, AnalysisMetricsSnapshot } from './metrics.types.js';
|
|
17
|
+
import { InMemoryCounter, InMemoryHistogram, InMemoryGauge } from './metrics.implementations.js';
|
|
18
|
+
export type { AnalysisMetricsConfig, AnalysisMetricsSnapshot } from './metrics.types.js';
|
|
127
19
|
/**
|
|
128
20
|
* Analysis Pipeline Metrics Collector
|
|
129
21
|
*
|
|
@@ -169,132 +61,43 @@ export declare class AnalysisMetrics {
|
|
|
169
61
|
readonly aggregatorExports: InMemoryGauge;
|
|
170
62
|
readonly aggregatorFunctions: InMemoryGauge;
|
|
171
63
|
constructor(config?: AnalysisMetricsConfig);
|
|
172
|
-
/**
|
|
173
|
-
* Check if metrics collection is enabled
|
|
174
|
-
*/
|
|
64
|
+
/** Check if metrics collection is enabled */
|
|
175
65
|
isEnabled(): boolean;
|
|
176
|
-
/**
|
|
177
|
-
* Record a file being parsed
|
|
178
|
-
*
|
|
179
|
-
* @param language - The language of the parsed file
|
|
180
|
-
*/
|
|
66
|
+
/** Record a file being parsed */
|
|
181
67
|
recordFileParsed(language: SupportedLanguage | string): void;
|
|
182
|
-
/**
|
|
183
|
-
* Record parse duration for a file
|
|
184
|
-
*
|
|
185
|
-
* @param language - The language of the parsed file
|
|
186
|
-
* @param durationMs - Parse duration in milliseconds
|
|
187
|
-
*/
|
|
68
|
+
/** Record parse duration for a file */
|
|
188
69
|
recordParseDuration(language: SupportedLanguage | string, durationMs: number): void;
|
|
189
|
-
/**
|
|
190
|
-
* Record a cache hit
|
|
191
|
-
*
|
|
192
|
-
* @param language - Optional language for the cache hit
|
|
193
|
-
*/
|
|
70
|
+
/** Record a cache hit */
|
|
194
71
|
recordCacheHit(language?: SupportedLanguage | string): void;
|
|
195
|
-
/**
|
|
196
|
-
* Record a cache miss
|
|
197
|
-
*
|
|
198
|
-
* @param language - Optional language for the cache miss
|
|
199
|
-
*/
|
|
72
|
+
/** Record a cache miss */
|
|
200
73
|
recordCacheMiss(language?: SupportedLanguage | string): void;
|
|
201
|
-
/**
|
|
202
|
-
* Update cache size
|
|
203
|
-
*
|
|
204
|
-
* @param size - Current cache size in bytes
|
|
205
|
-
* @param entries - Current number of cache entries
|
|
206
|
-
*/
|
|
74
|
+
/** Update cache size */
|
|
207
75
|
updateCacheSize(size: number, entries?: number): void;
|
|
208
|
-
/**
|
|
209
|
-
* Update worker pool metrics
|
|
210
|
-
*
|
|
211
|
-
* @param activeWorkers - Number of currently active workers
|
|
212
|
-
* @param queuedTasks - Number of tasks waiting in queue
|
|
213
|
-
* @param poolSize - Total pool size for utilization calculation
|
|
214
|
-
*/
|
|
76
|
+
/** Update worker pool metrics */
|
|
215
77
|
updateWorkerPool(activeWorkers: number, queuedTasks: number, poolSize?: number): void;
|
|
216
|
-
/**
|
|
217
|
-
* Update memory usage metrics
|
|
218
|
-
*
|
|
219
|
-
* Records current Node.js memory usage stats.
|
|
220
|
-
*/
|
|
78
|
+
/** Update memory usage metrics */
|
|
221
79
|
updateMemoryUsage(): void;
|
|
222
|
-
/**
|
|
223
|
-
* Record an error
|
|
224
|
-
*
|
|
225
|
-
* @param errorType - Type/category of the error
|
|
226
|
-
* @param language - Optional language context
|
|
227
|
-
*/
|
|
80
|
+
/** Record an error */
|
|
228
81
|
recordError(errorType: string, language?: SupportedLanguage | string): void;
|
|
229
|
-
/**
|
|
230
|
-
* Update aggregator metrics
|
|
231
|
-
*
|
|
232
|
-
* @param filesProcessed - Number of files processed
|
|
233
|
-
* @param imports - Total imports found
|
|
234
|
-
* @param exports - Total exports found
|
|
235
|
-
* @param functions - Total functions found
|
|
236
|
-
*/
|
|
82
|
+
/** Update aggregator metrics */
|
|
237
83
|
updateAggregatorStats(filesProcessed: number, imports: number, exports: number, functions: number): void;
|
|
238
|
-
/**
|
|
239
|
-
* Get cache hit rate
|
|
240
|
-
*
|
|
241
|
-
* @returns Cache hit rate as a decimal (0-1)
|
|
242
|
-
*/
|
|
84
|
+
/** Get cache hit rate */
|
|
243
85
|
getCacheHitRate(): number;
|
|
244
|
-
/**
|
|
245
|
-
* Get files parsed by language
|
|
246
|
-
*
|
|
247
|
-
* @returns Map of language to count
|
|
248
|
-
*/
|
|
86
|
+
/** Get files parsed by language */
|
|
249
87
|
getFilesByLanguage(): Record<string, number>;
|
|
250
|
-
/**
|
|
251
|
-
* Get parse duration stats by language
|
|
252
|
-
*
|
|
253
|
-
* @param language - Language to get stats for
|
|
254
|
-
* @returns Duration statistics
|
|
255
|
-
*/
|
|
88
|
+
/** Get parse duration stats by language */
|
|
256
89
|
getParseDurationByLanguage(language: SupportedLanguage | string): ReturnType<InMemoryHistogram['getStats']>;
|
|
257
|
-
/**
|
|
258
|
-
* Get complete metrics snapshot
|
|
259
|
-
*
|
|
260
|
-
* @returns Snapshot of all current metrics
|
|
261
|
-
*/
|
|
90
|
+
/** Get complete metrics snapshot */
|
|
262
91
|
getSnapshot(): AnalysisMetricsSnapshot;
|
|
263
|
-
/**
|
|
264
|
-
* Reset all metrics
|
|
265
|
-
*/
|
|
92
|
+
/** Reset all metrics */
|
|
266
93
|
reset(): void;
|
|
267
94
|
}
|
|
268
|
-
/**
|
|
269
|
-
* Get the default analysis metrics instance
|
|
270
|
-
*
|
|
271
|
-
* @returns The shared AnalysisMetrics instance
|
|
272
|
-
*/
|
|
95
|
+
/** Get the default analysis metrics instance */
|
|
273
96
|
export declare function getAnalysisMetrics(): AnalysisMetrics;
|
|
274
|
-
/**
|
|
275
|
-
* Initialize the default analysis metrics instance
|
|
276
|
-
*
|
|
277
|
-
* @param config - Optional configuration
|
|
278
|
-
* @returns The initialized AnalysisMetrics instance
|
|
279
|
-
*/
|
|
97
|
+
/** Initialize the default analysis metrics instance */
|
|
280
98
|
export declare function initializeAnalysisMetrics(config?: AnalysisMetricsConfig): AnalysisMetrics;
|
|
281
|
-
/**
|
|
282
|
-
* Helper: Time an async operation and record to analysis metrics
|
|
283
|
-
*
|
|
284
|
-
* @param language - Language being parsed
|
|
285
|
-
* @param fn - Async function to time
|
|
286
|
-
* @param metrics - Optional metrics instance (uses default if not provided)
|
|
287
|
-
* @returns Result of the function
|
|
288
|
-
*/
|
|
99
|
+
/** Helper: Time an async operation and record to analysis metrics */
|
|
289
100
|
export declare function timeParseAsync<T>(language: SupportedLanguage | string, fn: () => Promise<T>, metrics?: AnalysisMetrics): Promise<T>;
|
|
290
|
-
/**
|
|
291
|
-
* Helper: Time a sync operation and record to analysis metrics
|
|
292
|
-
*
|
|
293
|
-
* @param language - Language being parsed
|
|
294
|
-
* @param fn - Function to time
|
|
295
|
-
* @param metrics - Optional metrics instance (uses default if not provided)
|
|
296
|
-
* @returns Result of the function
|
|
297
|
-
*/
|
|
101
|
+
/** Helper: Time a sync operation and record to analysis metrics */
|
|
298
102
|
export declare function timeParseSync<T>(language: SupportedLanguage | string, fn: () => T, metrics?: AnalysisMetrics): T;
|
|
299
|
-
export {};
|
|
300
103
|
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/analysis/metrics.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/analysis/metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-Memory Metrics Implementations
|
|
3
|
+
* @module analysis/metrics.implementations
|
|
4
|
+
*/
|
|
5
|
+
import type { Counter, Histogram, Gauge, MetricLabels } from '../telemetry/metrics.js';
|
|
6
|
+
import type { HistogramStats } from './metrics.types.js';
|
|
7
|
+
/**
|
|
8
|
+
* In-memory counter implementation
|
|
9
|
+
*/
|
|
10
|
+
export declare class InMemoryCounter implements Counter {
|
|
11
|
+
private values;
|
|
12
|
+
add(value: number, labels?: MetricLabels): void;
|
|
13
|
+
increment(labels?: MetricLabels): void;
|
|
14
|
+
getValues(): Map<string, number>;
|
|
15
|
+
getTotal(): number;
|
|
16
|
+
reset(): void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* In-memory histogram implementation
|
|
20
|
+
*/
|
|
21
|
+
export declare class InMemoryHistogram implements Histogram {
|
|
22
|
+
private values;
|
|
23
|
+
private labeledValues;
|
|
24
|
+
record(value: number, labels?: MetricLabels): void;
|
|
25
|
+
getStats(): HistogramStats;
|
|
26
|
+
getStatsByLabel(labels: MetricLabels): HistogramStats;
|
|
27
|
+
reset(): void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* In-memory gauge implementation
|
|
31
|
+
*/
|
|
32
|
+
export declare class InMemoryGauge implements Gauge {
|
|
33
|
+
private values;
|
|
34
|
+
set(value: number, labels?: MetricLabels): void;
|
|
35
|
+
getValue(labels?: MetricLabels): number;
|
|
36
|
+
getAllValues(): Map<string, number>;
|
|
37
|
+
reset(): void;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=metrics.implementations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.implementations.d.ts","sourceRoot":"","sources":["../../../src/analysis/metrics.implementations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD;;GAEG;AACH,qBAAa,eAAgB,YAAW,OAAO;IAC7C,OAAO,CAAC,MAAM,CAA4B;IAE1C,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI;IAM/C,SAAS,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI;IAItC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAIhC,QAAQ,IAAI,MAAM;IAQlB,KAAK,IAAI,IAAI;CAGd;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,SAAS;IACjD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,aAAa,CAA8B;IAEnD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI;IAUlD,QAAQ,IAAI,cAAc;IAwB1B,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc;IA2BrD,KAAK,IAAI,IAAI;CAId;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,KAAK;IACzC,OAAO,CAAC,MAAM,CAA4B;IAE1C,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI;IAK/C,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM;IAKvC,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAInC,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-Memory Metrics Implementations
|
|
3
|
+
* @module analysis/metrics.implementations
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* In-memory counter implementation
|
|
7
|
+
*/
|
|
8
|
+
export class InMemoryCounter {
|
|
9
|
+
values = new Map();
|
|
10
|
+
add(value, labels) {
|
|
11
|
+
const key = labels ? JSON.stringify(labels) : '';
|
|
12
|
+
const current = this.values.get(key) ?? 0;
|
|
13
|
+
this.values.set(key, current + value);
|
|
14
|
+
}
|
|
15
|
+
increment(labels) {
|
|
16
|
+
this.add(1, labels);
|
|
17
|
+
}
|
|
18
|
+
getValues() {
|
|
19
|
+
return new Map(this.values);
|
|
20
|
+
}
|
|
21
|
+
getTotal() {
|
|
22
|
+
let total = 0;
|
|
23
|
+
for (const count of this.values.values()) {
|
|
24
|
+
total += count;
|
|
25
|
+
}
|
|
26
|
+
return total;
|
|
27
|
+
}
|
|
28
|
+
reset() {
|
|
29
|
+
this.values.clear();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* In-memory histogram implementation
|
|
34
|
+
*/
|
|
35
|
+
export class InMemoryHistogram {
|
|
36
|
+
values = [];
|
|
37
|
+
labeledValues = new Map();
|
|
38
|
+
record(value, labels) {
|
|
39
|
+
this.values.push(value);
|
|
40
|
+
if (labels) {
|
|
41
|
+
const key = JSON.stringify(labels);
|
|
42
|
+
const arr = this.labeledValues.get(key) ?? [];
|
|
43
|
+
arr.push(value);
|
|
44
|
+
this.labeledValues.set(key, arr);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
getStats() {
|
|
48
|
+
if (this.values.length === 0) {
|
|
49
|
+
return { count: 0, sum: 0, mean: 0, p50: 0, p95: 0, p99: 0 };
|
|
50
|
+
}
|
|
51
|
+
const sorted = [...this.values].sort((a, b) => a - b);
|
|
52
|
+
const sum = sorted.reduce((acc, v) => acc + v, 0);
|
|
53
|
+
const mean = sum / sorted.length;
|
|
54
|
+
const percentile = (p) => {
|
|
55
|
+
const index = Math.ceil((p / 100) * sorted.length) - 1;
|
|
56
|
+
return sorted[Math.max(0, index)];
|
|
57
|
+
};
|
|
58
|
+
return {
|
|
59
|
+
count: sorted.length,
|
|
60
|
+
sum,
|
|
61
|
+
mean,
|
|
62
|
+
p50: percentile(50),
|
|
63
|
+
p95: percentile(95),
|
|
64
|
+
p99: percentile(99),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
getStatsByLabel(labels) {
|
|
68
|
+
const key = JSON.stringify(labels);
|
|
69
|
+
const values = this.labeledValues.get(key) ?? [];
|
|
70
|
+
if (values.length === 0) {
|
|
71
|
+
return { count: 0, sum: 0, mean: 0, p50: 0, p95: 0, p99: 0 };
|
|
72
|
+
}
|
|
73
|
+
const sorted = [...values].sort((a, b) => a - b);
|
|
74
|
+
const sum = sorted.reduce((acc, v) => acc + v, 0);
|
|
75
|
+
const mean = sum / sorted.length;
|
|
76
|
+
const percentile = (p) => {
|
|
77
|
+
const index = Math.ceil((p / 100) * sorted.length) - 1;
|
|
78
|
+
return sorted[Math.max(0, index)];
|
|
79
|
+
};
|
|
80
|
+
return {
|
|
81
|
+
count: sorted.length,
|
|
82
|
+
sum,
|
|
83
|
+
mean,
|
|
84
|
+
p50: percentile(50),
|
|
85
|
+
p95: percentile(95),
|
|
86
|
+
p99: percentile(99),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
reset() {
|
|
90
|
+
this.values = [];
|
|
91
|
+
this.labeledValues.clear();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* In-memory gauge implementation
|
|
96
|
+
*/
|
|
97
|
+
export class InMemoryGauge {
|
|
98
|
+
values = new Map();
|
|
99
|
+
set(value, labels) {
|
|
100
|
+
const key = labels ? JSON.stringify(labels) : '';
|
|
101
|
+
this.values.set(key, value);
|
|
102
|
+
}
|
|
103
|
+
getValue(labels) {
|
|
104
|
+
const key = labels ? JSON.stringify(labels) : '';
|
|
105
|
+
return this.values.get(key) ?? 0;
|
|
106
|
+
}
|
|
107
|
+
getAllValues() {
|
|
108
|
+
return new Map(this.values);
|
|
109
|
+
}
|
|
110
|
+
reset() {
|
|
111
|
+
this.values.clear();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=metrics.implementations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.implementations.js","sourceRoot":"","sources":["../../../src/analysis/metrics.implementations.ts"],"names":[],"mappings":"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"}
|