@shalwin04/x404r-sdk 0.1.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.
Files changed (58) hide show
  1. package/README.md +391 -0
  2. package/dist/ai/index.d.ts +21 -0
  3. package/dist/ai/index.d.ts.map +1 -0
  4. package/dist/ai/index.js +344 -0
  5. package/dist/ai/index.js.map +1 -0
  6. package/dist/backend/cloud.d.ts +91 -0
  7. package/dist/backend/cloud.d.ts.map +1 -0
  8. package/dist/backend/cloud.js +257 -0
  9. package/dist/backend/cloud.js.map +1 -0
  10. package/dist/backend/embedded.d.ts +79 -0
  11. package/dist/backend/embedded.d.ts.map +1 -0
  12. package/dist/backend/embedded.js +307 -0
  13. package/dist/backend/embedded.js.map +1 -0
  14. package/dist/backend/index.d.ts +11 -0
  15. package/dist/backend/index.d.ts.map +1 -0
  16. package/dist/backend/index.js +8 -0
  17. package/dist/backend/index.js.map +1 -0
  18. package/dist/backend/interface.d.ts +88 -0
  19. package/dist/backend/interface.d.ts.map +1 -0
  20. package/dist/backend/interface.js +11 -0
  21. package/dist/backend/interface.js.map +1 -0
  22. package/dist/chaos.d.ts +117 -0
  23. package/dist/chaos.d.ts.map +1 -0
  24. package/dist/chaos.js +215 -0
  25. package/dist/chaos.js.map +1 -0
  26. package/dist/client.d.ts +242 -0
  27. package/dist/client.d.ts.map +1 -0
  28. package/dist/client.js +401 -0
  29. package/dist/client.js.map +1 -0
  30. package/dist/context.d.ts +18 -0
  31. package/dist/context.d.ts.map +1 -0
  32. package/dist/context.js +65 -0
  33. package/dist/context.js.map +1 -0
  34. package/dist/durable.d.ts +90 -0
  35. package/dist/durable.d.ts.map +1 -0
  36. package/dist/durable.js +143 -0
  37. package/dist/durable.js.map +1 -0
  38. package/dist/index.d.ts +74 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +76 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/metrics.d.ts +279 -0
  43. package/dist/metrics.d.ts.map +1 -0
  44. package/dist/metrics.js +693 -0
  45. package/dist/metrics.js.map +1 -0
  46. package/dist/types.d.ts +240 -0
  47. package/dist/types.d.ts.map +1 -0
  48. package/dist/types.js +16 -0
  49. package/dist/types.js.map +1 -0
  50. package/dist/worker.d.ts +74 -0
  51. package/dist/worker.d.ts.map +1 -0
  52. package/dist/worker.js +269 -0
  53. package/dist/worker.js.map +1 -0
  54. package/dist/workflow.d.ts +48 -0
  55. package/dist/workflow.d.ts.map +1 -0
  56. package/dist/workflow.js +190 -0
  57. package/dist/workflow.js.map +1 -0
  58. package/package.json +93 -0
@@ -0,0 +1,279 @@
1
+ /**
2
+ * x404-r Metrics & Observability
3
+ *
4
+ * Real-world production metrics for AI agent monitoring
5
+ * Supports hybrid mode: in-memory tracking + database persistence
6
+ */
7
+ import type { Pool } from 'pg';
8
+ /**
9
+ * Database configuration for metrics persistence
10
+ */
11
+ export interface MetricsDatabaseConfig {
12
+ pool: Pool;
13
+ tenantId: string;
14
+ flushIntervalMs?: number;
15
+ enabled?: boolean;
16
+ }
17
+ export interface MetricEvent {
18
+ name: string;
19
+ value: number;
20
+ timestamp: Date;
21
+ tags: Record<string, string>;
22
+ type: 'counter' | 'gauge' | 'histogram' | 'timer';
23
+ }
24
+ export interface MetricsSummary {
25
+ execution: ExecutionMetrics;
26
+ cost: CostMetrics;
27
+ performance: PerformanceMetrics;
28
+ reliability: ReliabilityMetrics;
29
+ ai: AIMetrics;
30
+ memory: MemoryMetrics;
31
+ }
32
+ export interface ExecutionMetrics {
33
+ tasksTotal: number;
34
+ tasksCompleted: number;
35
+ tasksFailed: number;
36
+ tasksPending: number;
37
+ tasksRunning: number;
38
+ successRate: number;
39
+ throughput: number;
40
+ queueDepth: number;
41
+ activeWorkers: number;
42
+ }
43
+ export interface CostMetrics {
44
+ totalCostUsd: number;
45
+ costPerTask: number;
46
+ costPerWorkflow: number;
47
+ tokensInput: number;
48
+ tokensOutput: number;
49
+ tokensTotal: number;
50
+ savingsFromCheckpoints: number;
51
+ projectedMonthlyCost: number;
52
+ }
53
+ export interface PerformanceMetrics {
54
+ latencyP50Ms: number;
55
+ latencyP95Ms: number;
56
+ latencyP99Ms: number;
57
+ latencyAvgMs: number;
58
+ throughputPerMinute: number;
59
+ checkpointLatencyMs: number;
60
+ aiLatencyMs: number;
61
+ }
62
+ export interface ReliabilityMetrics {
63
+ uptimePercent: number;
64
+ mtbfMinutes: number;
65
+ mttrSeconds: number;
66
+ crashRecoveries: number;
67
+ checkpointHitRate: number;
68
+ failedRecoveries: number;
69
+ }
70
+ export interface AIMetrics {
71
+ totalGenerations: number;
72
+ modelBreakdown: Record<string, number>;
73
+ avgTokensPerGeneration: number;
74
+ contextUtilization: number;
75
+ cacheHitRate: number;
76
+ streamingRatio: number;
77
+ }
78
+ export interface MemoryMetrics {
79
+ vectorCount: number;
80
+ avgRetrievalRelevance: number;
81
+ memoryHitRate: number;
82
+ learningImprovement: number;
83
+ }
84
+ /**
85
+ * Recovery Benchmark - The value x404-r provides
86
+ * Shows "with x404-r" vs "without x404-r" comparison
87
+ */
88
+ export interface RecoveryBenchmark {
89
+ actual: {
90
+ crashes: number;
91
+ tokensUsed: number;
92
+ costUsd: number;
93
+ timeMs: number;
94
+ tasksCompleted: number;
95
+ };
96
+ withoutX404r: {
97
+ tokensRequired: number;
98
+ costUsd: number;
99
+ timeMs: number;
100
+ tasksRestarted: number;
101
+ };
102
+ savings: {
103
+ tokensSaved: number;
104
+ costSavedUsd: number;
105
+ timeSavedMs: number;
106
+ percentTokensSaved: number;
107
+ percentCostSaved: number;
108
+ percentTimeSaved: number;
109
+ };
110
+ quality: {
111
+ recoverySuccessRate: number;
112
+ avgCheckpointAge: number;
113
+ avgRecoveryTime: number;
114
+ };
115
+ }
116
+ /**
117
+ * Histogram for tracking distributions
118
+ */
119
+ export declare class Histogram {
120
+ private values;
121
+ private maxSize;
122
+ constructor(maxSize?: number);
123
+ record(value: number): void;
124
+ percentile(p: number): number;
125
+ average(): number;
126
+ count(): number;
127
+ reset(): void;
128
+ }
129
+ /**
130
+ * Rate calculator for throughput metrics
131
+ */
132
+ export declare class RateCalculator {
133
+ private events;
134
+ private windowMs;
135
+ constructor(windowMs?: number);
136
+ record(): void;
137
+ rate(): number;
138
+ private cleanup;
139
+ }
140
+ /**
141
+ * Main metrics collector
142
+ * Supports in-memory tracking with optional database persistence
143
+ */
144
+ export declare class MetricsCollector {
145
+ private counters;
146
+ private gauges;
147
+ private histograms;
148
+ private rates;
149
+ private events;
150
+ private maxEvents;
151
+ private listeners;
152
+ private taskStartTimes;
153
+ private lastFailureTime;
154
+ private failureCount;
155
+ private recoveryTimes;
156
+ private recoveryEvents;
157
+ private taskTokenUsage;
158
+ private taskTimeUsage;
159
+ private dbConfig;
160
+ private flushInterval;
161
+ private lastFlushTime;
162
+ private flushInProgress;
163
+ constructor(maxEvents?: number);
164
+ /**
165
+ * Subscribe to metric events
166
+ */
167
+ subscribe(listener: (event: MetricEvent) => void): () => void;
168
+ /**
169
+ * Emit a metric event
170
+ */
171
+ private emit;
172
+ increment(name: string, value?: number, tags?: Record<string, string>): void;
173
+ gauge(name: string, value: number, tags?: Record<string, string>): void;
174
+ recordHistogram(name: string, value: number, tags?: Record<string, string>): void;
175
+ startTimer(name: string): () => number;
176
+ taskStarted(taskId: string, taskType: string, workflowId: string): void;
177
+ taskCompleted(taskId: string, taskType: string, workflowId: string): void;
178
+ taskFailed(taskId: string, taskType: string, workflowId: string, error: string): void;
179
+ taskRecovered(taskId: string, taskType: string, recoveryTimeMs: number): void;
180
+ /**
181
+ * Record a crash recovery event with full context
182
+ * This is used to calculate the "what if" benchmark
183
+ */
184
+ recordCrashRecovery(event: {
185
+ taskId: string;
186
+ tokensUsedBeforeCrash: number;
187
+ tokensUsedAfterRecovery: number;
188
+ timeSpentBeforeCrashMs: number;
189
+ checkpointAgeMs: number;
190
+ recoveryTimeMs: number;
191
+ }): void;
192
+ /**
193
+ * Track token usage for a task (used for benchmark calculation)
194
+ */
195
+ trackTaskTokens(taskId: string, tokens: number): void;
196
+ /**
197
+ * Track time usage for a task (used for benchmark calculation)
198
+ */
199
+ trackTaskTime(taskId: string, timeMs: number): void;
200
+ checkpointCreated(taskId: string, stepNumber: number, dataSize: number): void;
201
+ checkpointRestored(taskId: string, stepNumber: number): void;
202
+ aiGenerationStarted(model: string): () => void;
203
+ aiTokensUsed(model: string, input: number, output: number): void;
204
+ aiCostIncurred(model: string, costUsd: number): void;
205
+ memoryStored(taskType: string): void;
206
+ memoryQueried(taskType: string, resultsCount: number, relevanceScore: number): void;
207
+ getSummary(): MetricsSummary;
208
+ /**
209
+ * Get recent events for streaming
210
+ */
211
+ getRecentEvents(limit?: number): MetricEvent[];
212
+ /**
213
+ * Get the recovery benchmark - the value x404-r provides
214
+ * This shows "with x404-r" vs "without x404-r" comparison
215
+ */
216
+ getRecoveryBenchmark(): RecoveryBenchmark;
217
+ /**
218
+ * Export metrics in Prometheus format
219
+ */
220
+ toPrometheus(): string;
221
+ /**
222
+ * Reset all metrics
223
+ */
224
+ reset(): void;
225
+ /**
226
+ * Configure database connection for metrics persistence
227
+ * Call this to enable automatic flushing to CockroachDB
228
+ */
229
+ setDatabase(config: MetricsDatabaseConfig): void;
230
+ /**
231
+ * Start automatic periodic flushing
232
+ */
233
+ private startAutoFlush;
234
+ /**
235
+ * Stop automatic flushing
236
+ */
237
+ stopAutoFlush(): void;
238
+ /**
239
+ * Flush current metrics to the database
240
+ * @param snapshotType - Type of snapshot: 'periodic', 'flush', 'shutdown'
241
+ */
242
+ flush(snapshotType?: 'periodic' | 'flush' | 'shutdown'): Promise<void>;
243
+ /**
244
+ * Query historical metrics from database
245
+ */
246
+ getHistory(options?: {
247
+ hours?: number;
248
+ limit?: number;
249
+ }): Promise<MetricsSummary[]>;
250
+ /**
251
+ * Get aggregated hourly metrics
252
+ */
253
+ getHourlyMetrics(hours?: number): Promise<Array<{
254
+ hour: Date;
255
+ avgTasksCompleted: number;
256
+ avgTasksFailed: number;
257
+ avgSuccessRate: number;
258
+ totalCost: number;
259
+ avgLatencyP50: number;
260
+ }>>;
261
+ /**
262
+ * Graceful shutdown - flush final metrics
263
+ */
264
+ shutdown(): Promise<void>;
265
+ /**
266
+ * Check if database persistence is configured
267
+ */
268
+ isDatabaseEnabled(): boolean;
269
+ }
270
+ export declare const metrics: MetricsCollector;
271
+ /**
272
+ * Decorator for automatic metrics collection
273
+ */
274
+ export declare function observe(name: string): <T extends (...args: unknown[]) => Promise<unknown>>(target: unknown, propertyKey: string, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T>;
275
+ /**
276
+ * Helper to wrap async functions with metrics
277
+ */
278
+ export declare function withMetrics<T>(name: string, fn: () => Promise<T>, tags?: Record<string, string>): Promise<T>;
279
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}