@uploadista/observability 0.0.3 → 0.0.4

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 (91) hide show
  1. package/.turbo/turbo-build.log +19 -2
  2. package/dist/index.cjs +1 -0
  3. package/dist/index.d.cts +736 -0
  4. package/dist/index.d.cts.map +1 -0
  5. package/dist/index.d.ts +735 -7
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2 -14
  8. package/dist/index.js.map +1 -0
  9. package/package.json +4 -3
  10. package/tsdown.config.ts +11 -0
  11. package/dist/core/errors.d.ts +0 -8
  12. package/dist/core/errors.d.ts.map +0 -1
  13. package/dist/core/errors.js +0 -108
  14. package/dist/core/index.d.ts +0 -8
  15. package/dist/core/index.d.ts.map +0 -1
  16. package/dist/core/index.js +0 -8
  17. package/dist/core/layers.d.ts +0 -104
  18. package/dist/core/layers.d.ts.map +0 -1
  19. package/dist/core/layers.js +0 -110
  20. package/dist/core/logging.d.ts +0 -18
  21. package/dist/core/logging.d.ts.map +0 -1
  22. package/dist/core/logging.js +0 -41
  23. package/dist/core/metrics.d.ts +0 -37
  24. package/dist/core/metrics.d.ts.map +0 -1
  25. package/dist/core/metrics.js +0 -72
  26. package/dist/core/testing.d.ts +0 -43
  27. package/dist/core/testing.d.ts.map +0 -1
  28. package/dist/core/testing.js +0 -93
  29. package/dist/core/tracing.d.ts +0 -19
  30. package/dist/core/tracing.d.ts.map +0 -1
  31. package/dist/core/tracing.js +0 -43
  32. package/dist/core/utilities.d.ts +0 -11
  33. package/dist/core/utilities.d.ts.map +0 -1
  34. package/dist/core/utilities.js +0 -41
  35. package/dist/flow/errors.d.ts +0 -15
  36. package/dist/flow/errors.d.ts.map +0 -1
  37. package/dist/flow/errors.js +0 -66
  38. package/dist/flow/index.d.ts +0 -6
  39. package/dist/flow/index.d.ts.map +0 -1
  40. package/dist/flow/index.js +0 -6
  41. package/dist/flow/layers.d.ts +0 -40
  42. package/dist/flow/layers.d.ts.map +0 -1
  43. package/dist/flow/layers.js +0 -94
  44. package/dist/flow/metrics.d.ts +0 -52
  45. package/dist/flow/metrics.d.ts.map +0 -1
  46. package/dist/flow/metrics.js +0 -89
  47. package/dist/flow/testing.d.ts +0 -11
  48. package/dist/flow/testing.d.ts.map +0 -1
  49. package/dist/flow/testing.js +0 -27
  50. package/dist/flow/tracing.d.ts +0 -35
  51. package/dist/flow/tracing.d.ts.map +0 -1
  52. package/dist/flow/tracing.js +0 -42
  53. package/dist/service/metrics.d.ts +0 -23
  54. package/dist/service/metrics.d.ts.map +0 -1
  55. package/dist/service/metrics.js +0 -17
  56. package/dist/storage/azure.d.ts +0 -47
  57. package/dist/storage/azure.d.ts.map +0 -1
  58. package/dist/storage/azure.js +0 -89
  59. package/dist/storage/filesystem.d.ts +0 -47
  60. package/dist/storage/filesystem.d.ts.map +0 -1
  61. package/dist/storage/filesystem.js +0 -70
  62. package/dist/storage/gcs.d.ts +0 -47
  63. package/dist/storage/gcs.d.ts.map +0 -1
  64. package/dist/storage/gcs.js +0 -90
  65. package/dist/storage/index.d.ts +0 -5
  66. package/dist/storage/index.d.ts.map +0 -1
  67. package/dist/storage/index.js +0 -5
  68. package/dist/storage/s3.d.ts +0 -47
  69. package/dist/storage/s3.d.ts.map +0 -1
  70. package/dist/storage/s3.js +0 -67
  71. package/dist/test-observability.d.ts +0 -12
  72. package/dist/test-observability.d.ts.map +0 -1
  73. package/dist/test-observability.js +0 -153
  74. package/dist/upload/errors.d.ts +0 -16
  75. package/dist/upload/errors.d.ts.map +0 -1
  76. package/dist/upload/errors.js +0 -107
  77. package/dist/upload/index.d.ts +0 -6
  78. package/dist/upload/index.d.ts.map +0 -1
  79. package/dist/upload/index.js +0 -6
  80. package/dist/upload/layers.d.ts +0 -32
  81. package/dist/upload/layers.d.ts.map +0 -1
  82. package/dist/upload/layers.js +0 -63
  83. package/dist/upload/metrics.d.ts +0 -46
  84. package/dist/upload/metrics.d.ts.map +0 -1
  85. package/dist/upload/metrics.js +0 -80
  86. package/dist/upload/testing.d.ts +0 -32
  87. package/dist/upload/testing.d.ts.map +0 -1
  88. package/dist/upload/testing.js +0 -52
  89. package/dist/upload/tracing.d.ts +0 -25
  90. package/dist/upload/tracing.d.ts.map +0 -1
  91. package/dist/upload/tracing.js +0 -35
@@ -0,0 +1,736 @@
1
+ import { Context, Effect, Layer, Metric, Option } from "effect";
2
+ import * as effect_MetricKeyType19 from "effect/MetricKeyType";
3
+ import * as effect_MetricState19 from "effect/MetricState";
4
+ import * as effect_Tracer0 from "effect/Tracer";
5
+ import * as _effect_opentelemetry_Resource0 from "@effect/opentelemetry/Resource";
6
+ import * as effect_Metric0 from "effect/Metric";
7
+
8
+ //#region src/core/metrics.d.ts
9
+ declare const createUploadMetrics: (storageType: string) => {
10
+ uploadRequestsTotal: Metric.Metric.Counter<number>;
11
+ uploadPartsTotal: Metric.Metric.Counter<number>;
12
+ uploadSuccessTotal: Metric.Metric.Counter<number>;
13
+ uploadErrorsTotal: Metric.Metric.Counter<number>;
14
+ apiCallsTotal: Metric.Metric.Counter<number>;
15
+ };
16
+ declare const createUploadHistograms: (storageType: string) => {
17
+ uploadDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
18
+ partUploadDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
19
+ fileSizeHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
20
+ partSizeHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
21
+ };
22
+ declare const createUploadGauges: (storageType: string) => {
23
+ activeUploadsGauge: Metric.Metric.Gauge<number>;
24
+ uploadThroughputGauge: Metric.Metric.Gauge<number>;
25
+ };
26
+ declare const createUploadSummaries: (storageType: string) => {
27
+ uploadLatencySummary: Metric.Metric.Summary<number>;
28
+ };
29
+ declare const createStorageMetrics: (storageType: string) => {
30
+ uploadLatencySummary: Metric.Metric.Summary<number>;
31
+ activeUploadsGauge: Metric.Metric.Gauge<number>;
32
+ uploadThroughputGauge: Metric.Metric.Gauge<number>;
33
+ uploadDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
34
+ partUploadDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
35
+ fileSizeHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
36
+ partSizeHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
37
+ uploadRequestsTotal: Metric.Metric.Counter<number>;
38
+ uploadPartsTotal: Metric.Metric.Counter<number>;
39
+ uploadSuccessTotal: Metric.Metric.Counter<number>;
40
+ uploadErrorsTotal: Metric.Metric.Counter<number>;
41
+ apiCallsTotal: Metric.Metric.Counter<number>;
42
+ };
43
+ type StorageMetrics = ReturnType<typeof createStorageMetrics>;
44
+ //#endregion
45
+ //#region src/core/errors.d.ts
46
+ type StorageErrorCategory = "network_error" | "authentication_error" | "authorization_error" | "throttling_error" | "server_error" | "client_error" | "unknown_error";
47
+ declare const classifyStorageError: (error: unknown) => StorageErrorCategory;
48
+ declare const createStorageErrorClassifier: (storageType: string, customErrorMapping?: (error: unknown) => StorageErrorCategory | null) => (error: unknown) => StorageErrorCategory;
49
+ declare const trackStorageError: (storageType: string, metrics: StorageMetrics, operation: string, error: unknown, context?: Record<string, unknown>, errorClassifier?: (error: unknown) => StorageErrorCategory) => Effect.Effect<void, never, never>;
50
+ declare const createStorageErrorTracker: (storageType: string, metrics: StorageMetrics, customErrorClassifier?: (error: unknown) => StorageErrorCategory | null) => (operation: string, error: unknown, context?: Record<string, unknown>) => Effect.Effect<void, never, never>;
51
+ //#endregion
52
+ //#region src/core/layers.d.ts
53
+ /**
54
+ * Core observability service providing tracing, metrics, and logging capabilities
55
+ */
56
+ interface ObservabilityService {
57
+ readonly serviceName: string;
58
+ readonly enabled: boolean;
59
+ }
60
+ declare const Observability_base: Context.TagClass<Observability, "Observability", ObservabilityService>;
61
+ /**
62
+ * Observability service tag for Effect Context
63
+ */
64
+ declare class Observability extends Observability_base {}
65
+ /**
66
+ * Storage observability service extending base observability with storage-specific metrics
67
+ */
68
+ interface StorageObservabilityService extends ObservabilityService {
69
+ readonly storageType: string;
70
+ readonly metrics: StorageMetrics;
71
+ }
72
+ declare const StorageObservability_base: Context.TagClass<StorageObservability, "StorageObservability", StorageObservabilityService>;
73
+ /**
74
+ * Storage observability service tag
75
+ */
76
+ declare class StorageObservability extends StorageObservability_base {}
77
+ /**
78
+ * Upload observability service for upload-specific operations
79
+ */
80
+ interface UploadObservabilityService extends ObservabilityService {
81
+ readonly metrics: {
82
+ uploadCreated: Effect.Effect<void>;
83
+ uploadCompleted: Effect.Effect<void>;
84
+ uploadFailed: Effect.Effect<void>;
85
+ chunkUploaded: Effect.Effect<void>;
86
+ };
87
+ }
88
+ declare const UploadObservability_base: Context.TagClass<UploadObservability, "UploadObservability", UploadObservabilityService>;
89
+ /**
90
+ * Upload observability service tag
91
+ */
92
+ declare class UploadObservability extends UploadObservability_base {}
93
+ /**
94
+ * Flow observability service for flow execution operations
95
+ */
96
+ interface FlowObservabilityService extends ObservabilityService {
97
+ readonly metrics: {
98
+ flowStarted: Effect.Effect<void>;
99
+ flowCompleted: Effect.Effect<void>;
100
+ flowFailed: Effect.Effect<void>;
101
+ nodeExecuted: Effect.Effect<void>;
102
+ };
103
+ }
104
+ declare const FlowObservability_base: Context.TagClass<FlowObservability, "FlowObservability", FlowObservabilityService>;
105
+ /**
106
+ * Flow observability service tag
107
+ */
108
+ declare class FlowObservability extends FlowObservability_base {}
109
+ /**
110
+ * Create a base observability layer
111
+ */
112
+ declare const makeObservabilityLayer: (serviceName: string, enabled?: boolean) => Layer.Layer<Observability>;
113
+ /**
114
+ * Create a storage observability layer
115
+ */
116
+ declare const makeStorageObservabilityLayer: (storageType: string, metrics: StorageMetrics, enabled?: boolean) => Layer.Layer<StorageObservability>;
117
+ /**
118
+ * Create an upload observability layer
119
+ */
120
+ declare const makeUploadObservabilityLayer: (enabled?: boolean) => Layer.Layer<UploadObservability>;
121
+ /**
122
+ * Create a flow observability layer
123
+ */
124
+ declare const makeFlowObservabilityLayer: (enabled?: boolean) => Layer.Layer<FlowObservability>;
125
+ /**
126
+ * No-op observability layer (disabled)
127
+ */
128
+ declare const ObservabilityDisabled: Layer.Layer<Observability, never, never>;
129
+ /**
130
+ * No-op storage observability layer
131
+ */
132
+ declare const StorageObservabilityDisabled: (storageType: string) => Layer.Layer<StorageObservability, never, never>;
133
+ /**
134
+ * No-op upload observability layer
135
+ */
136
+ declare const UploadObservabilityDisabled: Layer.Layer<UploadObservability, never, never>;
137
+ /**
138
+ * No-op flow observability layer
139
+ */
140
+ declare const FlowObservabilityDisabled: Layer.Layer<FlowObservability, never, never>;
141
+ /**
142
+ * Check if observability is enabled in the current context
143
+ */
144
+ declare const isObservabilityEnabled: Effect.Effect<boolean, never, never>;
145
+ /**
146
+ * Execute an effect only if observability is enabled
147
+ */
148
+ declare const whenObservabilityEnabled: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<Option.Option<A>, E, R | Observability>;
149
+ //#endregion
150
+ //#region src/core/logging.d.ts
151
+ declare const logWithContext: (message: string, context: Record<string, unknown>) => Effect.Effect<void, never, never>;
152
+ declare const logUploadProgress: (storageType: string, uploadId: string, progress: {
153
+ uploadedBytes: number;
154
+ totalBytes: number;
155
+ partNumber?: number;
156
+ speed?: number;
157
+ }) => Effect.Effect<void, never, never>;
158
+ declare const logStorageOperation: (storageType: string, operation: string, uploadId: string, metadata?: Record<string, unknown>) => Effect.Effect<void, never, never>;
159
+ declare const logUploadCompletion: (storageType: string, uploadId: string, metrics: {
160
+ fileSize: number;
161
+ totalDurationMs: number;
162
+ partsCount?: number;
163
+ averagePartSize?: number;
164
+ throughputBps?: number;
165
+ retryCount?: number;
166
+ }) => Effect.Effect<void, never, never>;
167
+ //#endregion
168
+ //#region src/core/testing.d.ts
169
+ /**
170
+ * Mock storage observability for testing
171
+ */
172
+ declare const makeTestStorageObservability: (storageType: string) => Layer.Layer<StorageObservability>;
173
+ /**
174
+ * Mock upload observability for testing
175
+ */
176
+ declare const makeTestUploadObservability: () => Layer.Layer<UploadObservability>;
177
+ /**
178
+ * Mock flow observability for testing
179
+ */
180
+ declare const makeTestFlowObservability: () => Layer.Layer<FlowObservability>;
181
+ /**
182
+ * Capture metrics snapshot from an effect for testing
183
+ * Note: Metric snapshots are simplified - for full metric testing,
184
+ * use Effect's built-in metric testing utilities
185
+ */
186
+ declare const captureMetrics: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
187
+ /**
188
+ * Test helper to capture metrics around effect execution
189
+ * This is a simplified version - for production testing,
190
+ * use Effect's metric testing utilities
191
+ */
192
+ declare const withMetricTracking: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
193
+ /**
194
+ * Test fixture for observability testing
195
+ */
196
+ interface ObservabilityTestFixture {
197
+ readonly storageObservability: Layer.Layer<StorageObservability>;
198
+ readonly uploadObservability: Layer.Layer<UploadObservability>;
199
+ readonly flowObservability: Layer.Layer<FlowObservability>;
200
+ }
201
+ /**
202
+ * Create a complete test fixture with all observability layers
203
+ */
204
+ declare const createTestFixture: (storageType?: string) => ObservabilityTestFixture;
205
+ /**
206
+ * Run an effect with test observability layers
207
+ */
208
+ declare const runWithTestObservability: <A, E>(effect: Effect.Effect<A, E, StorageObservability | UploadObservability | FlowObservability>, storageType?: string) => Effect.Effect<A, E>;
209
+ //#endregion
210
+ //#region src/core/tracing.d.ts
211
+ declare const TracingService: Context.Tag<{
212
+ serviceName: string;
213
+ }, {
214
+ serviceName: string;
215
+ }>;
216
+ declare const createTracingLayer: (options?: {
217
+ serviceName?: string;
218
+ }) => Layer.Layer<{
219
+ serviceName: string;
220
+ }, never, never>;
221
+ declare const createStorageTracingLayer: (storageType: string) => Layer.Layer<{
222
+ serviceName: string;
223
+ }, never, never>;
224
+ declare const withStorageSpan: <A, E, R>(operation: string, storageType: string, attributes?: Record<string, unknown>) => (effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, effect_Tracer0.ParentSpan>>;
225
+ declare const WebSdkLive: Layer.Layer<_effect_opentelemetry_Resource0.Resource, never, never>;
226
+ declare const NodeSdkLive: Layer.Layer<_effect_opentelemetry_Resource0.Resource, never, never>;
227
+ declare const WorkersSdkLive: Layer.Layer<_effect_opentelemetry_Resource0.Resource, never, never>;
228
+ //#endregion
229
+ //#region src/core/utilities.d.ts
230
+ declare const withUploadMetrics: <A, E, R>(metrics: StorageMetrics, uploadId: string, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
231
+ declare const withApiMetrics: <A, E, R>(metrics: StorageMetrics, operation: string, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
232
+ declare const withTimingMetrics: <A, E, R>(metric: Metric.Metric.Histogram<number>, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
233
+ declare const trackFileSize: <A, E, R>(metrics: StorageMetrics, fileSize: number, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
234
+ declare const trackPartSize: <A, E, R>(metrics: StorageMetrics, partSize: number, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
235
+ declare const withActiveUploadTracking: <A, E, R>(metrics: StorageMetrics, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
236
+ declare const withThroughputTracking: <A, E, R>(metrics: StorageMetrics, bytes: number, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
237
+ declare const withStorageOperationMetrics: <A, E, R>(metrics: StorageMetrics, operation: string, uploadId: string, effect: Effect.Effect<A, E, R>, fileSize?: number) => Effect.Effect<A, E, R>;
238
+ //#endregion
239
+ //#region src/flow/metrics.d.ts
240
+ /**
241
+ * Flow engine metrics for tracking flow execution operations
242
+ */
243
+ declare const createFlowMetrics: () => {
244
+ flowStartedTotal: Metric.Metric.Counter<number>;
245
+ flowCompletedTotal: Metric.Metric.Counter<number>;
246
+ flowFailedTotal: Metric.Metric.Counter<number>;
247
+ flowPausedTotal: Metric.Metric.Counter<number>;
248
+ flowResumedTotal: Metric.Metric.Counter<number>;
249
+ nodeExecutedTotal: Metric.Metric.Counter<number>;
250
+ nodeSuccessTotal: Metric.Metric.Counter<number>;
251
+ nodeFailedTotal: Metric.Metric.Counter<number>;
252
+ nodeSkippedTotal: Metric.Metric.Counter<number>;
253
+ flowDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
254
+ nodeDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
255
+ flowNodeCountHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
256
+ parallelNodesHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
257
+ activeFlowsGauge: Metric.Metric.Gauge<number>;
258
+ activeNodesGauge: Metric.Metric.Gauge<number>;
259
+ pausedFlowsGauge: Metric.Metric.Gauge<number>;
260
+ flowLatencySummary: Metric.Metric.Summary<number>;
261
+ nodeLatencySummary: Metric.Metric.Summary<number>;
262
+ };
263
+ /**
264
+ * Type for flow metrics
265
+ */
266
+ type FlowMetrics = ReturnType<typeof createFlowMetrics>;
267
+ /**
268
+ * Default flow metrics instance
269
+ */
270
+ declare const flowMetrics: {
271
+ flowStartedTotal: Metric.Metric.Counter<number>;
272
+ flowCompletedTotal: Metric.Metric.Counter<number>;
273
+ flowFailedTotal: Metric.Metric.Counter<number>;
274
+ flowPausedTotal: Metric.Metric.Counter<number>;
275
+ flowResumedTotal: Metric.Metric.Counter<number>;
276
+ nodeExecutedTotal: Metric.Metric.Counter<number>;
277
+ nodeSuccessTotal: Metric.Metric.Counter<number>;
278
+ nodeFailedTotal: Metric.Metric.Counter<number>;
279
+ nodeSkippedTotal: Metric.Metric.Counter<number>;
280
+ flowDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
281
+ nodeDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
282
+ flowNodeCountHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
283
+ parallelNodesHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
284
+ activeFlowsGauge: Metric.Metric.Gauge<number>;
285
+ activeNodesGauge: Metric.Metric.Gauge<number>;
286
+ pausedFlowsGauge: Metric.Metric.Gauge<number>;
287
+ flowLatencySummary: Metric.Metric.Summary<number>;
288
+ nodeLatencySummary: Metric.Metric.Summary<number>;
289
+ };
290
+ //#endregion
291
+ //#region src/flow/tracing.d.ts
292
+ /**
293
+ * Wrap an Effect with a flow operation span
294
+ */
295
+ declare const withFlowSpan: <A, E, R>(operation: string, attributes?: Record<string, unknown>) => (effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
296
+ /**
297
+ * Add flow context to the current span
298
+ */
299
+ declare const withFlowContext: (context: {
300
+ flowId?: string;
301
+ flowName?: string;
302
+ jobId?: string;
303
+ nodeCount?: number;
304
+ storageId?: string;
305
+ }) => Effect.Effect<void, never, never>;
306
+ /**
307
+ * Add node context to the current span
308
+ */
309
+ declare const withNodeContext: (context: {
310
+ nodeId: string;
311
+ nodeType: string;
312
+ nodeName?: string;
313
+ flowId?: string;
314
+ jobId?: string;
315
+ }) => Effect.Effect<void, never, never>;
316
+ /**
317
+ * Add execution state context to the current span
318
+ */
319
+ declare const withExecutionContext: (context: {
320
+ executionOrder?: string[];
321
+ currentIndex?: number;
322
+ totalNodes?: number;
323
+ parallelCount?: number;
324
+ }) => Effect.Effect<void, never, never>;
325
+ //#endregion
326
+ //#region src/flow/layers.d.ts
327
+ /**
328
+ * Create a live flow observability layer with full metrics
329
+ */
330
+ declare const makeFlowObservabilityLive: (serviceName?: string) => Layer.Layer<FlowObservability>;
331
+ /**
332
+ * Default live flow observability layer
333
+ */
334
+ declare const FlowObservabilityLive: Layer.Layer<FlowObservability, never, never>;
335
+ /**
336
+ * Helper to get flow metrics from context
337
+ */
338
+ declare const getFlowMetrics: Effect.Effect<{
339
+ flowStarted: Effect.Effect<void>;
340
+ flowCompleted: Effect.Effect<void>;
341
+ flowFailed: Effect.Effect<void>;
342
+ nodeExecuted: Effect.Effect<void>;
343
+ }, never, FlowObservability>;
344
+ /**
345
+ * Helper to track flow duration
346
+ */
347
+ declare const withFlowDuration: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
348
+ /**
349
+ * Helper to track node duration
350
+ */
351
+ declare const withNodeDuration: <A, E, R>(nodeId: string, nodeType: string, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
352
+ /**
353
+ * Helper to track active flows
354
+ */
355
+ declare const trackActiveFlow: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
356
+ /**
357
+ * Helper to track active nodes
358
+ */
359
+ declare const trackActiveNode: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
360
+ //#endregion
361
+ //#region src/flow/errors.d.ts
362
+ type FlowErrorCategory = "flow_validation_error" | "node_execution_error" | "node_not_found_error" | "flow_timeout_error" | "flow_cancelled_error" | "unknown_flow_error";
363
+ /**
364
+ * Classify flow execution errors
365
+ */
366
+ declare const classifyFlowError: (error: unknown) => FlowErrorCategory;
367
+ /**
368
+ * Track flow errors with classification
369
+ */
370
+ declare const trackFlowError: <E>(error: E) => Effect.Effect<void, never, never>;
371
+ /**
372
+ * Track node errors with classification
373
+ */
374
+ declare const trackNodeError: <E>(nodeId: string, nodeType: string, error: E) => Effect.Effect<void, never, never>;
375
+ //#endregion
376
+ //#region src/flow/testing.d.ts
377
+ /**
378
+ * Mock flow observability for testing
379
+ */
380
+ declare const makeTestFlowObservability$1: () => Layer.Layer<FlowObservability>;
381
+ /**
382
+ * Run an effect with test flow observability
383
+ */
384
+ declare const runWithTestFlowObservability: <A, E>(effect: Effect.Effect<A, E, FlowObservability>) => Effect.Effect<A, E>;
385
+ //#endregion
386
+ //#region src/service/metrics.d.ts
387
+ declare const MetricsService_base: Context.TagClass<MetricsService, "MetricsService", {
388
+ /**
389
+ * Record upload metrics for an organization
390
+ */
391
+ readonly recordUpload: (clientId: string, bytes: number, metadata?: Record<string, unknown>) => Effect.Effect<void, never>;
392
+ }>;
393
+ /**
394
+ * Metrics Recording Service
395
+ *
396
+ * Provides access to metrics recording functionality throughout
397
+ * the upload and flow processing pipeline. The service is provided
398
+ * via Effect Layer and can be accessed using Effect.service().
399
+ */
400
+ declare class MetricsService extends MetricsService_base {}
401
+ /**
402
+ * No-op implementation of MetricsService that does nothing.
403
+ * Used when metrics are disabled or database is not available.
404
+ */
405
+ declare const NoOpMetricsServiceLive: Layer.Layer<MetricsService>;
406
+ //#endregion
407
+ //#region src/storage/s3.d.ts
408
+ declare const s3Metrics: {
409
+ uploadLatencySummary: effect_Metric0.Metric.Summary<number>;
410
+ activeUploadsGauge: effect_Metric0.Metric.Gauge<number>;
411
+ uploadThroughputGauge: effect_Metric0.Metric.Gauge<number>;
412
+ uploadDurationHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
413
+ partUploadDurationHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
414
+ fileSizeHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
415
+ partSizeHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
416
+ uploadRequestsTotal: effect_Metric0.Metric.Counter<number>;
417
+ uploadPartsTotal: effect_Metric0.Metric.Counter<number>;
418
+ uploadSuccessTotal: effect_Metric0.Metric.Counter<number>;
419
+ uploadErrorsTotal: effect_Metric0.Metric.Counter<number>;
420
+ apiCallsTotal: effect_Metric0.Metric.Counter<number>;
421
+ };
422
+ declare const S3TracingLayer: Layer.Layer<{
423
+ serviceName: string;
424
+ }, never, never>;
425
+ declare const trackS3Error: (operation: string, error: unknown, context?: Record<string, unknown>) => Effect.Effect<void, never, never>;
426
+ declare const S3ObservabilityLayer: Layer.Layer<{
427
+ serviceName: string;
428
+ }, never, never>;
429
+ declare const withS3UploadMetrics: <A, E, R>(uploadId: string, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
430
+ declare const withS3ApiMetrics: <A, E, R>(operation: string, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
431
+ declare const withS3TimingMetrics: <A, E, R>(metric: effect_Metric0.Metric.Histogram<number>, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
432
+ declare const withS3OperationMetrics: <A, E, R>(operation: string, uploadId: string, effect: Effect.Effect<A, E, R>, fileSize?: number) => Effect.Effect<A, E, R>;
433
+ declare const withS3Span: <A, E, R>(operation: string, attributes?: Record<string, unknown>) => (effect: Effect.Effect<A, E, R>) => Effect.Effect<unknown, unknown, unknown>;
434
+ declare const logS3Operation: (operation: string, uploadId: string, metadata?: Record<string, unknown> | undefined) => Effect.Effect<void, never, never>;
435
+ declare const logS3UploadProgress: (uploadId: string, progress: {
436
+ uploadedBytes: number;
437
+ totalBytes: number;
438
+ partNumber?: number;
439
+ speed?: number;
440
+ }) => Effect.Effect<void, never, never>;
441
+ declare const logS3UploadCompletion: (uploadId: string, metrics: {
442
+ fileSize: number;
443
+ totalDurationMs: number;
444
+ partsCount?: number;
445
+ averagePartSize?: number;
446
+ throughputBps?: number;
447
+ retryCount?: number;
448
+ }) => Effect.Effect<void, never, never>;
449
+ declare const logS3Context: (message: string, context: Record<string, unknown>) => Effect.Effect<void, never, never>;
450
+ declare const s3UploadRequestsTotal: effect_Metric0.Metric.Counter<number>, s3UploadPartsTotal: effect_Metric0.Metric.Counter<number>, s3UploadSuccessTotal: effect_Metric0.Metric.Counter<number>, s3UploadErrorsTotal: effect_Metric0.Metric.Counter<number>, s3ApiCallsTotal: effect_Metric0.Metric.Counter<number>, s3UploadDurationHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, s3PartUploadDurationHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, s3FileSizeHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, s3PartSizeHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, s3ActiveUploadsGauge: effect_Metric0.Metric.Gauge<number>, s3UploadThroughputGauge: effect_Metric0.Metric.Gauge<number>, s3UploadLatencySummary: effect_Metric0.Metric.Summary<number>;
451
+ type S3Metrics = StorageMetrics;
452
+ //#endregion
453
+ //#region src/storage/azure.d.ts
454
+ declare const azureMetrics: {
455
+ uploadLatencySummary: effect_Metric0.Metric.Summary<number>;
456
+ activeUploadsGauge: effect_Metric0.Metric.Gauge<number>;
457
+ uploadThroughputGauge: effect_Metric0.Metric.Gauge<number>;
458
+ uploadDurationHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
459
+ partUploadDurationHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
460
+ fileSizeHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
461
+ partSizeHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
462
+ uploadRequestsTotal: effect_Metric0.Metric.Counter<number>;
463
+ uploadPartsTotal: effect_Metric0.Metric.Counter<number>;
464
+ uploadSuccessTotal: effect_Metric0.Metric.Counter<number>;
465
+ uploadErrorsTotal: effect_Metric0.Metric.Counter<number>;
466
+ apiCallsTotal: effect_Metric0.Metric.Counter<number>;
467
+ };
468
+ declare const AzureTracingLayer: Layer.Layer<{
469
+ serviceName: string;
470
+ }, never, never>;
471
+ declare const trackAzureError: (operation: string, error: unknown, context?: Record<string, unknown>) => Effect.Effect<void, never, never>;
472
+ declare const AzureObservabilityLayer: Layer.Layer<{
473
+ serviceName: string;
474
+ }, never, never>;
475
+ declare const withAzureUploadMetrics: <A, E, R>(uploadId: string, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
476
+ declare const withAzureApiMetrics: <A, E, R>(operation: string, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
477
+ declare const withAzureTimingMetrics: <A, E, R>(metric: effect_Metric0.Metric.Histogram<number>, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
478
+ declare const withAzureOperationMetrics: <A, E, R>(operation: string, uploadId: string, effect: Effect.Effect<A, E, R>, fileSize?: number) => Effect.Effect<A, E, R>;
479
+ declare const withAzureSpan: <A, E, R>(operation: string, attributes?: Record<string, unknown>) => (effect: Effect.Effect<A, E, R>) => Effect.Effect<unknown, unknown, unknown>;
480
+ declare const logAzureOperation: (operation: string, uploadId: string, metadata?: Record<string, unknown> | undefined) => Effect.Effect<void, never, never>;
481
+ declare const logAzureUploadProgress: (uploadId: string, progress: {
482
+ uploadedBytes: number;
483
+ totalBytes: number;
484
+ partNumber?: number;
485
+ speed?: number;
486
+ }) => Effect.Effect<void, never, never>;
487
+ declare const logAzureUploadCompletion: (uploadId: string, metrics: {
488
+ fileSize: number;
489
+ totalDurationMs: number;
490
+ partsCount?: number;
491
+ averagePartSize?: number;
492
+ throughputBps?: number;
493
+ retryCount?: number;
494
+ }) => Effect.Effect<void, never, never>;
495
+ declare const logAzureContext: (message: string, context: Record<string, unknown>) => Effect.Effect<void, never, never>;
496
+ declare const azureUploadRequestsTotal: effect_Metric0.Metric.Counter<number>, azureUploadPartsTotal: effect_Metric0.Metric.Counter<number>, azureUploadSuccessTotal: effect_Metric0.Metric.Counter<number>, azureUploadErrorsTotal: effect_Metric0.Metric.Counter<number>, azureApiCallsTotal: effect_Metric0.Metric.Counter<number>, azureUploadDurationHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, azurePartUploadDurationHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, azureFileSizeHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, azurePartSizeHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, azureActiveUploadsGauge: effect_Metric0.Metric.Gauge<number>, azureUploadThroughputGauge: effect_Metric0.Metric.Gauge<number>, azureUploadLatencySummary: effect_Metric0.Metric.Summary<number>;
497
+ type AzureMetrics = StorageMetrics;
498
+ //#endregion
499
+ //#region src/storage/gcs.d.ts
500
+ declare const gcsMetrics: {
501
+ uploadLatencySummary: effect_Metric0.Metric.Summary<number>;
502
+ activeUploadsGauge: effect_Metric0.Metric.Gauge<number>;
503
+ uploadThroughputGauge: effect_Metric0.Metric.Gauge<number>;
504
+ uploadDurationHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
505
+ partUploadDurationHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
506
+ fileSizeHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
507
+ partSizeHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
508
+ uploadRequestsTotal: effect_Metric0.Metric.Counter<number>;
509
+ uploadPartsTotal: effect_Metric0.Metric.Counter<number>;
510
+ uploadSuccessTotal: effect_Metric0.Metric.Counter<number>;
511
+ uploadErrorsTotal: effect_Metric0.Metric.Counter<number>;
512
+ apiCallsTotal: effect_Metric0.Metric.Counter<number>;
513
+ };
514
+ declare const GCSTracingLayer: Layer.Layer<{
515
+ serviceName: string;
516
+ }, never, never>;
517
+ declare const trackGCSError: (operation: string, error: unknown, context?: Record<string, unknown>) => Effect.Effect<void, never, never>;
518
+ declare const GCSObservabilityLayer: Layer.Layer<{
519
+ serviceName: string;
520
+ }, never, never>;
521
+ declare const withGCSUploadMetrics: <A, E, R>(uploadId: string, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
522
+ declare const withGCSApiMetrics: <A, E, R>(operation: string, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
523
+ declare const withGCSTimingMetrics: <A, E, R>(metric: effect_Metric0.Metric.Histogram<number>, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
524
+ declare const withGCSOperationMetrics: <A, E, R>(operation: string, uploadId: string, effect: Effect.Effect<A, E, R>, fileSize?: number) => Effect.Effect<A, E, R>;
525
+ declare const withGCSSpan: <A, E, R>(operation: string, attributes?: Record<string, unknown>) => (effect: Effect.Effect<A, E, R>) => Effect.Effect<unknown, unknown, unknown>;
526
+ declare const logGCSOperation: (operation: string, uploadId: string, metadata?: Record<string, unknown> | undefined) => Effect.Effect<void, never, never>;
527
+ declare const logGCSUploadProgress: (uploadId: string, progress: {
528
+ uploadedBytes: number;
529
+ totalBytes: number;
530
+ partNumber?: number;
531
+ speed?: number;
532
+ }) => Effect.Effect<void, never, never>;
533
+ declare const logGCSUploadCompletion: (uploadId: string, metrics: {
534
+ fileSize: number;
535
+ totalDurationMs: number;
536
+ partsCount?: number;
537
+ averagePartSize?: number;
538
+ throughputBps?: number;
539
+ retryCount?: number;
540
+ }) => Effect.Effect<void, never, never>;
541
+ declare const logGCSContext: (message: string, context: Record<string, unknown>) => Effect.Effect<void, never, never>;
542
+ declare const gcsUploadRequestsTotal: effect_Metric0.Metric.Counter<number>, gcsUploadPartsTotal: effect_Metric0.Metric.Counter<number>, gcsUploadSuccessTotal: effect_Metric0.Metric.Counter<number>, gcsUploadErrorsTotal: effect_Metric0.Metric.Counter<number>, gcsApiCallsTotal: effect_Metric0.Metric.Counter<number>, gcsUploadDurationHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, gcsPartUploadDurationHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, gcsFileSizeHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, gcsPartSizeHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, gcsActiveUploadsGauge: effect_Metric0.Metric.Gauge<number>, gcsUploadThroughputGauge: effect_Metric0.Metric.Gauge<number>, gcsUploadLatencySummary: effect_Metric0.Metric.Summary<number>;
543
+ type GCSMetrics = StorageMetrics;
544
+ //#endregion
545
+ //#region src/storage/filesystem.d.ts
546
+ declare const filesystemMetrics: {
547
+ uploadLatencySummary: effect_Metric0.Metric.Summary<number>;
548
+ activeUploadsGauge: effect_Metric0.Metric.Gauge<number>;
549
+ uploadThroughputGauge: effect_Metric0.Metric.Gauge<number>;
550
+ uploadDurationHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
551
+ partUploadDurationHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
552
+ fileSizeHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
553
+ partSizeHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
554
+ uploadRequestsTotal: effect_Metric0.Metric.Counter<number>;
555
+ uploadPartsTotal: effect_Metric0.Metric.Counter<number>;
556
+ uploadSuccessTotal: effect_Metric0.Metric.Counter<number>;
557
+ uploadErrorsTotal: effect_Metric0.Metric.Counter<number>;
558
+ apiCallsTotal: effect_Metric0.Metric.Counter<number>;
559
+ };
560
+ declare const FilesystemTracingLayer: Layer.Layer<{
561
+ serviceName: string;
562
+ }, never, never>;
563
+ declare const trackFilesystemError: (operation: string, error: unknown, context?: Record<string, unknown>) => Effect.Effect<void, never, never>;
564
+ declare const FilesystemObservabilityLayer: Layer.Layer<{
565
+ serviceName: string;
566
+ }, never, never>;
567
+ declare const withFilesystemUploadMetrics: <A, E, R>(uploadId: string, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
568
+ declare const withFilesystemApiMetrics: <A, E, R>(operation: string, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
569
+ declare const withFilesystemTimingMetrics: <A, E, R>(metric: effect_Metric0.Metric.Histogram<number>, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
570
+ declare const withFilesystemOperationMetrics: <A, E, R>(operation: string, uploadId: string, effect: Effect.Effect<A, E, R>, fileSize?: number) => Effect.Effect<A, E, R>;
571
+ declare const withFilesystemSpan: <A, E, R>(operation: string, attributes?: Record<string, unknown>) => (effect: Effect.Effect<A, E, R>) => Effect.Effect<unknown, unknown, unknown>;
572
+ declare const logFilesystemOperation: (operation: string, uploadId: string, metadata?: Record<string, unknown> | undefined) => Effect.Effect<void, never, never>;
573
+ declare const logFilesystemUploadProgress: (uploadId: string, progress: {
574
+ uploadedBytes: number;
575
+ totalBytes: number;
576
+ partNumber?: number;
577
+ speed?: number;
578
+ }) => Effect.Effect<void, never, never>;
579
+ declare const logFilesystemUploadCompletion: (uploadId: string, metrics: {
580
+ fileSize: number;
581
+ totalDurationMs: number;
582
+ partsCount?: number;
583
+ averagePartSize?: number;
584
+ throughputBps?: number;
585
+ retryCount?: number;
586
+ }) => Effect.Effect<void, never, never>;
587
+ declare const logFilesystemContext: (message: string, context: Record<string, unknown>) => Effect.Effect<void, never, never>;
588
+ declare const filesystemUploadRequestsTotal: effect_Metric0.Metric.Counter<number>, filesystemUploadPartsTotal: effect_Metric0.Metric.Counter<number>, filesystemUploadSuccessTotal: effect_Metric0.Metric.Counter<number>, filesystemUploadErrorsTotal: effect_Metric0.Metric.Counter<number>, filesystemApiCallsTotal: effect_Metric0.Metric.Counter<number>, filesystemUploadDurationHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, filesystemPartUploadDurationHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, filesystemFileSizeHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, filesystemPartSizeHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>, filesystemActiveUploadsGauge: effect_Metric0.Metric.Gauge<number>, filesystemUploadThroughputGauge: effect_Metric0.Metric.Gauge<number>, filesystemUploadLatencySummary: effect_Metric0.Metric.Summary<number>;
589
+ type FilesystemMetrics = StorageMetrics;
590
+ //#endregion
591
+ //#region src/upload/metrics.d.ts
592
+ /**
593
+ * Upload server metrics for tracking upload operations
594
+ */
595
+ declare const createUploadServerMetrics: () => {
596
+ uploadCreatedTotal: Metric.Metric.Counter<number>;
597
+ uploadCompletedTotal: Metric.Metric.Counter<number>;
598
+ uploadFailedTotal: Metric.Metric.Counter<number>;
599
+ chunkUploadedTotal: Metric.Metric.Counter<number>;
600
+ uploadFromUrlTotal: Metric.Metric.Counter<number>;
601
+ uploadFromUrlSuccessTotal: Metric.Metric.Counter<number>;
602
+ uploadFromUrlFailedTotal: Metric.Metric.Counter<number>;
603
+ uploadDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
604
+ chunkUploadDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
605
+ uploadFileSizeHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
606
+ chunkSizeHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
607
+ activeUploadsGauge: Metric.Metric.Gauge<number>;
608
+ uploadThroughputGauge: Metric.Metric.Gauge<number>;
609
+ uploadLatencySummary: Metric.Metric.Summary<number>;
610
+ chunkLatencySummary: Metric.Metric.Summary<number>;
611
+ };
612
+ /**
613
+ * Type for upload server metrics
614
+ */
615
+ type UploadServerMetrics = ReturnType<typeof createUploadServerMetrics>;
616
+ /**
617
+ * Default upload server metrics instance
618
+ */
619
+ declare const uploadServerMetrics: {
620
+ uploadCreatedTotal: Metric.Metric.Counter<number>;
621
+ uploadCompletedTotal: Metric.Metric.Counter<number>;
622
+ uploadFailedTotal: Metric.Metric.Counter<number>;
623
+ chunkUploadedTotal: Metric.Metric.Counter<number>;
624
+ uploadFromUrlTotal: Metric.Metric.Counter<number>;
625
+ uploadFromUrlSuccessTotal: Metric.Metric.Counter<number>;
626
+ uploadFromUrlFailedTotal: Metric.Metric.Counter<number>;
627
+ uploadDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
628
+ chunkUploadDurationHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
629
+ uploadFileSizeHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
630
+ chunkSizeHistogram: Metric.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
631
+ activeUploadsGauge: Metric.Metric.Gauge<number>;
632
+ uploadThroughputGauge: Metric.Metric.Gauge<number>;
633
+ uploadLatencySummary: Metric.Metric.Summary<number>;
634
+ chunkLatencySummary: Metric.Metric.Summary<number>;
635
+ };
636
+ //#endregion
637
+ //#region src/upload/tracing.d.ts
638
+ /**
639
+ * Wrap an Effect with an upload operation span
640
+ */
641
+ declare const withUploadSpan: <A, E, R>(operation: string, attributes?: Record<string, unknown>) => (effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
642
+ /**
643
+ * Add upload context to the current span
644
+ */
645
+ declare const withUploadContext: (context: {
646
+ uploadId?: string;
647
+ fileName?: string;
648
+ fileSize?: number;
649
+ storageId?: string;
650
+ mimeType?: string;
651
+ }) => Effect.Effect<void, never, never>;
652
+ /**
653
+ * Add chunk context to the current span
654
+ */
655
+ declare const withChunkContext: (context: {
656
+ uploadId: string;
657
+ chunkSize: number;
658
+ offset: number;
659
+ totalSize?: number;
660
+ }) => Effect.Effect<void, never, never>;
661
+ //#endregion
662
+ //#region src/upload/layers.d.ts
663
+ /**
664
+ * Create a live upload observability layer with full metrics
665
+ */
666
+ declare const makeUploadObservabilityLive: (serviceName?: string) => Layer.Layer<UploadObservability>;
667
+ /**
668
+ * Default live upload observability layer
669
+ */
670
+ declare const UploadObservabilityLive: Layer.Layer<UploadObservability, never, never>;
671
+ /**
672
+ * Helper to get upload metrics from context
673
+ */
674
+ declare const getUploadMetrics: Effect.Effect<{
675
+ uploadCreated: Effect.Effect<void>;
676
+ uploadCompleted: Effect.Effect<void>;
677
+ uploadFailed: Effect.Effect<void>;
678
+ chunkUploaded: Effect.Effect<void>;
679
+ }, never, UploadObservability>;
680
+ /**
681
+ * Helper to track upload duration
682
+ */
683
+ declare const withUploadDuration: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R | UploadObservability>;
684
+ /**
685
+ * Helper to track chunk upload duration
686
+ */
687
+ declare const withChunkDuration: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
688
+ //#endregion
689
+ //#region src/upload/errors.d.ts
690
+ type UploadErrorCategory = "network_error" | "authentication_error" | "authorization_error" | "validation_error" | "size_limit_error" | "storage_error" | "abort_error" | "unknown_error";
691
+ /**
692
+ * Classify upload errors into standard categories
693
+ */
694
+ declare const classifyUploadError: (error: unknown) => UploadErrorCategory;
695
+ /**
696
+ * Track upload errors with metrics and structured logging
697
+ */
698
+ declare const trackUploadError: (metrics: UploadServerMetrics, operation: string, error: unknown, context?: Record<string, unknown>) => Effect.Effect<void, never, never>;
699
+ /**
700
+ * Create a custom error classifier for upload operations
701
+ */
702
+ declare const createUploadErrorClassifier: (customErrorMapping?: (error: unknown) => UploadErrorCategory | null) => (error: unknown) => UploadErrorCategory;
703
+ //#endregion
704
+ //#region src/upload/testing.d.ts
705
+ /**
706
+ * Create a test upload observability layer that doesn't actually emit metrics
707
+ * but validates that the observability system is wired correctly
708
+ */
709
+ declare const UploadObservabilityTest: Layer.Layer<UploadObservability, never, never>;
710
+ /**
711
+ * Get metrics for validation (useful for testing metric definitions)
712
+ */
713
+ declare const getTestMetrics: () => {
714
+ uploadCreatedTotal: effect_Metric0.Metric.Counter<number>;
715
+ uploadCompletedTotal: effect_Metric0.Metric.Counter<number>;
716
+ uploadFailedTotal: effect_Metric0.Metric.Counter<number>;
717
+ chunkUploadedTotal: effect_Metric0.Metric.Counter<number>;
718
+ uploadFromUrlTotal: effect_Metric0.Metric.Counter<number>;
719
+ uploadFromUrlSuccessTotal: effect_Metric0.Metric.Counter<number>;
720
+ uploadFromUrlFailedTotal: effect_Metric0.Metric.Counter<number>;
721
+ uploadDurationHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
722
+ chunkUploadDurationHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
723
+ uploadFileSizeHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
724
+ chunkSizeHistogram: effect_Metric0.Metric<effect_MetricKeyType19.MetricKeyType.Histogram, number, effect_MetricState19.MetricState.Histogram>;
725
+ activeUploadsGauge: effect_Metric0.Metric.Gauge<number>;
726
+ uploadThroughputGauge: effect_Metric0.Metric.Gauge<number>;
727
+ uploadLatencySummary: effect_Metric0.Metric.Summary<number>;
728
+ chunkLatencySummary: effect_Metric0.Metric.Summary<number>;
729
+ };
730
+ /**
731
+ * Validate that all required metrics exist
732
+ */
733
+ declare const validateMetricsExist: () => boolean;
734
+ //#endregion
735
+ export { AzureMetrics, AzureObservabilityLayer, AzureTracingLayer, FilesystemMetrics, FilesystemObservabilityLayer, FilesystemTracingLayer, FlowErrorCategory, FlowMetrics, FlowObservability, FlowObservabilityDisabled, FlowObservabilityLive, FlowObservabilityService, GCSMetrics, GCSObservabilityLayer, GCSTracingLayer, MetricsService, NoOpMetricsServiceLive, NodeSdkLive, Observability, ObservabilityDisabled, ObservabilityService, ObservabilityTestFixture, S3Metrics, S3ObservabilityLayer, S3TracingLayer, StorageErrorCategory, StorageMetrics, StorageObservability, StorageObservabilityDisabled, StorageObservabilityService, TracingService, UploadErrorCategory, UploadObservability, UploadObservabilityDisabled, UploadObservabilityLive, UploadObservabilityService, UploadObservabilityTest, UploadServerMetrics, WebSdkLive, WorkersSdkLive, azureActiveUploadsGauge, azureApiCallsTotal, azureFileSizeHistogram, azureMetrics, azurePartSizeHistogram, azurePartUploadDurationHistogram, azureUploadDurationHistogram, azureUploadErrorsTotal, azureUploadLatencySummary, azureUploadPartsTotal, azureUploadRequestsTotal, azureUploadSuccessTotal, azureUploadThroughputGauge, captureMetrics, classifyFlowError, classifyStorageError, classifyUploadError, createFlowMetrics, createStorageErrorClassifier, createStorageErrorTracker, createStorageMetrics, createStorageTracingLayer, createTestFixture, createTracingLayer, createUploadErrorClassifier, createUploadGauges, createUploadHistograms, createUploadMetrics, createUploadServerMetrics, createUploadSummaries, filesystemActiveUploadsGauge, filesystemApiCallsTotal, filesystemFileSizeHistogram, filesystemMetrics, filesystemPartSizeHistogram, filesystemPartUploadDurationHistogram, filesystemUploadDurationHistogram, filesystemUploadErrorsTotal, filesystemUploadLatencySummary, filesystemUploadPartsTotal, filesystemUploadRequestsTotal, filesystemUploadSuccessTotal, filesystemUploadThroughputGauge, flowMetrics, gcsActiveUploadsGauge, gcsApiCallsTotal, gcsFileSizeHistogram, gcsMetrics, gcsPartSizeHistogram, gcsPartUploadDurationHistogram, gcsUploadDurationHistogram, gcsUploadErrorsTotal, gcsUploadLatencySummary, gcsUploadPartsTotal, gcsUploadRequestsTotal, gcsUploadSuccessTotal, gcsUploadThroughputGauge, getFlowMetrics, getTestMetrics, getUploadMetrics, isObservabilityEnabled, logAzureContext, logAzureOperation, logAzureUploadCompletion, logAzureUploadProgress, logFilesystemContext, logFilesystemOperation, logFilesystemUploadCompletion, logFilesystemUploadProgress, logGCSContext, logGCSOperation, logGCSUploadCompletion, logGCSUploadProgress, logS3Context, logS3Operation, logS3UploadCompletion, logS3UploadProgress, logStorageOperation, logUploadCompletion, logUploadProgress, logWithContext, makeFlowObservabilityLayer, makeFlowObservabilityLive, makeObservabilityLayer, makeStorageObservabilityLayer, makeTestFlowObservability, makeTestFlowObservability$1 as makeTestFlowObservabilityUtil, makeTestStorageObservability, makeTestUploadObservability, makeUploadObservabilityLayer, makeUploadObservabilityLive, runWithTestFlowObservability, runWithTestObservability, s3ActiveUploadsGauge, s3ApiCallsTotal, s3FileSizeHistogram, s3Metrics, s3PartSizeHistogram, s3PartUploadDurationHistogram, s3UploadDurationHistogram, s3UploadErrorsTotal, s3UploadLatencySummary, s3UploadPartsTotal, s3UploadRequestsTotal, s3UploadSuccessTotal, s3UploadThroughputGauge, trackActiveFlow, trackActiveNode, trackAzureError, trackFileSize, trackFilesystemError, trackFlowError, trackGCSError, trackNodeError, trackPartSize, trackS3Error, trackStorageError, trackUploadError, uploadServerMetrics, validateMetricsExist, whenObservabilityEnabled, withActiveUploadTracking, withApiMetrics, withAzureApiMetrics, withAzureOperationMetrics, withAzureSpan, withAzureTimingMetrics, withAzureUploadMetrics, withChunkContext, withChunkDuration, withExecutionContext, withFilesystemApiMetrics, withFilesystemOperationMetrics, withFilesystemSpan, withFilesystemTimingMetrics, withFilesystemUploadMetrics, withFlowContext, withFlowDuration, withFlowSpan, withGCSApiMetrics, withGCSOperationMetrics, withGCSSpan, withGCSTimingMetrics, withGCSUploadMetrics, withMetricTracking, withNodeContext, withNodeDuration, withS3ApiMetrics, withS3OperationMetrics, withS3Span, withS3TimingMetrics, withS3UploadMetrics, withStorageOperationMetrics, withStorageSpan, withThroughputTracking, withTimingMetrics, withUploadContext, withUploadDuration, withUploadMetrics, withUploadSpan };
736
+ //# sourceMappingURL=index.d.cts.map