@smithers-orchestrator/observability 0.16.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 (202) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +44 -0
  3. package/src/MetricName.ts +1 -0
  4. package/src/MetricsServiceLive.js +9 -0
  5. package/src/ResolvedSmithersObservabilityOptions.ts +10 -0
  6. package/src/SmithersEvent.ts +603 -0
  7. package/src/SmithersLogFormat.ts +1 -0
  8. package/src/SmithersMetricDefinition.ts +15 -0
  9. package/src/SmithersMetricType.ts +1 -0
  10. package/src/SmithersMetricUnit.ts +8 -0
  11. package/src/SmithersObservability.js +6 -0
  12. package/src/SmithersObservabilityOptions.ts +10 -0
  13. package/src/SmithersObservabilityService.ts +15 -0
  14. package/src/_coreCorrelation/CorrelationContext.ts +10 -0
  15. package/src/_coreCorrelation/CorrelationContextLive.js +11 -0
  16. package/src/_coreCorrelation/CorrelationContextService.js +6 -0
  17. package/src/_coreCorrelation/CorrelationContextServiceShape.ts +14 -0
  18. package/src/_coreCorrelation/CorrelationPatch.ts +3 -0
  19. package/src/_coreCorrelation/_correlationStorage.js +4 -0
  20. package/src/_coreCorrelation/correlationContextFiberRef.js +2 -0
  21. package/src/_coreCorrelation/correlationContextToLogAnnotations.js +28 -0
  22. package/src/_coreCorrelation/getCurrentCorrelationContext.js +9 -0
  23. package/src/_coreCorrelation/getCurrentCorrelationContextEffect.js +11 -0
  24. package/src/_coreCorrelation/index.js +14 -0
  25. package/src/_coreCorrelation/mergeCorrelationContext.js +61 -0
  26. package/src/_coreCorrelation/runWithCorrelationContext.js +14 -0
  27. package/src/_coreCorrelation/updateCurrentCorrelationContext.js +19 -0
  28. package/src/_coreCorrelation/withCorrelationContext.js +15 -0
  29. package/src/_coreCorrelation/withCurrentCorrelationContext.js +13 -0
  30. package/src/_coreMetrics.js +510 -0
  31. package/src/_coreMetricsShape.ts +55 -0
  32. package/src/_corePrometheus.js +93 -0
  33. package/src/_corePrometheusShape.ts +11 -0
  34. package/src/_coreTracing.js +142 -0
  35. package/src/_coreTracingShape.ts +17 -0
  36. package/src/_smithersSpanAttributeAliases.js +19 -0
  37. package/src/_smithersTraceSpanStorage.js +3 -0
  38. package/src/annotateSmithersTrace.js +11 -0
  39. package/src/correlation.js +20 -0
  40. package/src/createSmithersObservabilityLayer.js +49 -0
  41. package/src/createSmithersOtelLayer.js +21 -0
  42. package/src/createSmithersRuntimeLayer.js +2 -0
  43. package/src/getCurrentSmithersTraceAnnotations.js +14 -0
  44. package/src/getCurrentSmithersTraceSpan.js +7 -0
  45. package/src/index.d.ts +1032 -0
  46. package/src/index.js +35 -0
  47. package/src/logging.js +91 -0
  48. package/src/makeSmithersSpanAttributes.js +20 -0
  49. package/src/metrics/SmithersMetricDefinition.ts +17 -0
  50. package/src/metrics/SmithersMetricType.ts +1 -0
  51. package/src/metrics/SmithersMetricUnit.ts +8 -0
  52. package/src/metrics/_asyncExternalWaitCounts.js +4 -0
  53. package/src/metrics/_buckets.js +43 -0
  54. package/src/metrics/_processStartMs.js +1 -0
  55. package/src/metrics/activeNodes.js +2 -0
  56. package/src/metrics/activeRuns.js +2 -0
  57. package/src/metrics/agentActionsTotal.js +2 -0
  58. package/src/metrics/agentDurationMs.js +3 -0
  59. package/src/metrics/agentErrorsTotal.js +2 -0
  60. package/src/metrics/agentEventsTotal.js +2 -0
  61. package/src/metrics/agentInvocationsTotal.js +2 -0
  62. package/src/metrics/agentRetriesTotal.js +2 -0
  63. package/src/metrics/agentSessionsTotal.js +2 -0
  64. package/src/metrics/agentTokensTotal.js +2 -0
  65. package/src/metrics/alertDeliveriesAttempted.js +2 -0
  66. package/src/metrics/alertDeliveriesSuppressed.js +2 -0
  67. package/src/metrics/alertsAcknowledgedTotal.js +2 -0
  68. package/src/metrics/alertsActive.js +2 -0
  69. package/src/metrics/alertsEscalatedTotal.js +2 -0
  70. package/src/metrics/alertsFiredTotal.js +2 -0
  71. package/src/metrics/alertsReopenedTotal.js +2 -0
  72. package/src/metrics/alertsResolvedTotal.js +2 -0
  73. package/src/metrics/alertsSilencedTotal.js +2 -0
  74. package/src/metrics/approvalPending.js +2 -0
  75. package/src/metrics/approvalWaitDuration.js +3 -0
  76. package/src/metrics/approvalsDenied.js +2 -0
  77. package/src/metrics/approvalsGranted.js +2 -0
  78. package/src/metrics/approvalsRequested.js +2 -0
  79. package/src/metrics/attemptDuration.js +3 -0
  80. package/src/metrics/attentionBacklog.js +2 -0
  81. package/src/metrics/cacheHits.js +2 -0
  82. package/src/metrics/cacheMisses.js +2 -0
  83. package/src/metrics/dbQueryDuration.js +3 -0
  84. package/src/metrics/dbRetries.js +2 -0
  85. package/src/metrics/dbTransactionDuration.js +3 -0
  86. package/src/metrics/dbTransactionRetries.js +2 -0
  87. package/src/metrics/dbTransactionRollbacks.js +2 -0
  88. package/src/metrics/devtoolsActiveSubscribers.js +2 -0
  89. package/src/metrics/devtoolsBackpressureDisconnectTotal.js +2 -0
  90. package/src/metrics/devtoolsDeltaBuildMs.js +3 -0
  91. package/src/metrics/devtoolsEventBytes.js +3 -0
  92. package/src/metrics/devtoolsEventTotal.js +2 -0
  93. package/src/metrics/devtoolsSnapshotBuildMs.js +3 -0
  94. package/src/metrics/devtoolsSubscribeTotal.js +2 -0
  95. package/src/metrics/errorsTotal.js +2 -0
  96. package/src/metrics/eventsEmittedTotal.js +2 -0
  97. package/src/metrics/externalWaitAsyncPending.js +2 -0
  98. package/src/metrics/gatewayApprovalDecisionsTotal.js +2 -0
  99. package/src/metrics/gatewayAuthEventsTotal.js +2 -0
  100. package/src/metrics/gatewayConnectionsActive.js +2 -0
  101. package/src/metrics/gatewayConnectionsClosedTotal.js +2 -0
  102. package/src/metrics/gatewayConnectionsTotal.js +2 -0
  103. package/src/metrics/gatewayCronTriggersTotal.js +2 -0
  104. package/src/metrics/gatewayErrorsTotal.js +2 -0
  105. package/src/metrics/gatewayHeartbeatTicksTotal.js +2 -0
  106. package/src/metrics/gatewayMessagesReceivedTotal.js +2 -0
  107. package/src/metrics/gatewayMessagesSentTotal.js +2 -0
  108. package/src/metrics/gatewayRpcCallsTotal.js +2 -0
  109. package/src/metrics/gatewayRpcDuration.js +3 -0
  110. package/src/metrics/gatewayRunsCompletedTotal.js +2 -0
  111. package/src/metrics/gatewayRunsStartedTotal.js +2 -0
  112. package/src/metrics/gatewaySignalsTotal.js +2 -0
  113. package/src/metrics/gatewayWebhooksReceivedTotal.js +2 -0
  114. package/src/metrics/gatewayWebhooksRejectedTotal.js +2 -0
  115. package/src/metrics/gatewayWebhooksVerifiedTotal.js +2 -0
  116. package/src/metrics/heartbeatDataSizeBytes.js +3 -0
  117. package/src/metrics/heartbeatIntervalMs.js +3 -0
  118. package/src/metrics/hotReloadDuration.js +3 -0
  119. package/src/metrics/hotReloadFailures.js +2 -0
  120. package/src/metrics/hotReloads.js +2 -0
  121. package/src/metrics/httpRequestDuration.js +3 -0
  122. package/src/metrics/httpRequests.js +2 -0
  123. package/src/metrics/index.js +151 -0
  124. package/src/metrics/metricsServiceAdapter.js +188 -0
  125. package/src/metrics/nodeDuration.js +3 -0
  126. package/src/metrics/nodeRetriesTotal.js +2 -0
  127. package/src/metrics/nodesFailed.js +2 -0
  128. package/src/metrics/nodesFinished.js +2 -0
  129. package/src/metrics/nodesStarted.js +2 -0
  130. package/src/metrics/processHeapUsedBytes.js +2 -0
  131. package/src/metrics/processMemoryRssBytes.js +2 -0
  132. package/src/metrics/processUptimeSeconds.js +2 -0
  133. package/src/metrics/promptSizeBytes.js +3 -0
  134. package/src/metrics/responseSizeBytes.js +3 -0
  135. package/src/metrics/rewindDurationMs.js +3 -0
  136. package/src/metrics/rewindFramesDeleted.js +3 -0
  137. package/src/metrics/rewindRollbackTotal.js +2 -0
  138. package/src/metrics/rewindSandboxesReverted.js +3 -0
  139. package/src/metrics/rewindTotal.js +2 -0
  140. package/src/metrics/runDuration.js +3 -0
  141. package/src/metrics/runsAncestryDepth.js +3 -0
  142. package/src/metrics/runsCancelledTotal.js +2 -0
  143. package/src/metrics/runsCarriedStateBytes.js +3 -0
  144. package/src/metrics/runsContinuedTotal.js +2 -0
  145. package/src/metrics/runsFailedTotal.js +2 -0
  146. package/src/metrics/runsFinishedTotal.js +2 -0
  147. package/src/metrics/runsResumedTotal.js +2 -0
  148. package/src/metrics/runsTotal.js +2 -0
  149. package/src/metrics/sandboxActive.js +2 -0
  150. package/src/metrics/sandboxBundleSizeBytes.js +3 -0
  151. package/src/metrics/sandboxCompletedTotal.js +2 -0
  152. package/src/metrics/sandboxCreatedTotal.js +2 -0
  153. package/src/metrics/sandboxDurationMs.js +3 -0
  154. package/src/metrics/sandboxPatchCount.js +3 -0
  155. package/src/metrics/sandboxTransportDurationMs.js +3 -0
  156. package/src/metrics/schedulerConcurrencyUtilization.js +2 -0
  157. package/src/metrics/schedulerQueueDepth.js +2 -0
  158. package/src/metrics/schedulerWaitDuration.js +3 -0
  159. package/src/metrics/scorerEventsFailed.js +2 -0
  160. package/src/metrics/scorerEventsFinished.js +2 -0
  161. package/src/metrics/scorerEventsStarted.js +2 -0
  162. package/src/metrics/smithersMetricCatalog.js +484 -0
  163. package/src/metrics/smithersMetricCatalogByKey.js +2 -0
  164. package/src/metrics/smithersMetricCatalogByName.js +2 -0
  165. package/src/metrics/smithersMetricCatalogByPrometheusName.js +2 -0
  166. package/src/metrics/supervisorPollDuration.js +3 -0
  167. package/src/metrics/supervisorPollsTotal.js +2 -0
  168. package/src/metrics/supervisorResumeLag.js +3 -0
  169. package/src/metrics/supervisorResumedTotal.js +2 -0
  170. package/src/metrics/supervisorSkippedTotal.js +2 -0
  171. package/src/metrics/supervisorStaleDetected.js +2 -0
  172. package/src/metrics/taskHeartbeatTimeoutTotal.js +2 -0
  173. package/src/metrics/taskHeartbeatsTotal.js +2 -0
  174. package/src/metrics/timerDelayDuration.js +3 -0
  175. package/src/metrics/timersCancelled.js +2 -0
  176. package/src/metrics/timersCreated.js +2 -0
  177. package/src/metrics/timersFired.js +2 -0
  178. package/src/metrics/timersPending.js +2 -0
  179. package/src/metrics/toPrometheusMetricName.js +8 -0
  180. package/src/metrics/tokensCacheReadTotal.js +2 -0
  181. package/src/metrics/tokensCacheWriteTotal.js +2 -0
  182. package/src/metrics/tokensContextWindowBucketTotal.js +2 -0
  183. package/src/metrics/tokensContextWindowPerCall.js +3 -0
  184. package/src/metrics/tokensInputPerCall.js +3 -0
  185. package/src/metrics/tokensInputTotal.js +2 -0
  186. package/src/metrics/tokensOutputPerCall.js +3 -0
  187. package/src/metrics/tokensOutputTotal.js +2 -0
  188. package/src/metrics/tokensReasoningTotal.js +2 -0
  189. package/src/metrics/toolCallErrorsTotal.js +2 -0
  190. package/src/metrics/toolCallsTotal.js +2 -0
  191. package/src/metrics/toolDuration.js +3 -0
  192. package/src/metrics/toolOutputTruncatedTotal.js +2 -0
  193. package/src/metrics/trackEvent.js +604 -0
  194. package/src/metrics/updateAsyncExternalWaitPending.js +14 -0
  195. package/src/metrics/updateProcessMetrics.js +17 -0
  196. package/src/metrics/vcsDuration.js +3 -0
  197. package/src/prometheusContentType.js +1 -0
  198. package/src/renderPrometheusMetrics.js +205 -0
  199. package/src/resolveSmithersObservabilityOptions.js +79 -0
  200. package/src/smithersMetrics.js +2 -0
  201. package/src/smithersSpanNames.js +6 -0
  202. package/src/withSmithersSpan.js +15 -0
package/src/index.d.ts ADDED
@@ -0,0 +1,1032 @@
1
+ import { Layer, Context, Effect, LogLevel, Metric, FiberRef } from 'effect';
2
+ import * as Tracer$1 from 'effect/Tracer';
3
+ import * as effect_Metric from 'effect/Metric';
4
+ import * as BunContext from '@effect/platform-bun/BunContext';
5
+ import * as effect_MetricState from 'effect/MetricState';
6
+ import * as effect_MetricKeyType from 'effect/MetricKeyType';
7
+
8
+ type SmithersLogFormat$1 = "json" | "pretty" | "string" | "logfmt";
9
+
10
+ type ResolvedSmithersObservabilityOptions$2 = {
11
+ readonly enabled: boolean;
12
+ readonly endpoint: string;
13
+ readonly serviceName: string;
14
+ readonly logFormat: SmithersLogFormat$1;
15
+ readonly logLevel: LogLevel.LogLevel;
16
+ };
17
+
18
+ type SmithersObservabilityService$1 = {
19
+ readonly options: ResolvedSmithersObservabilityOptions$2;
20
+ readonly annotate: (attributes: Readonly<Record<string, unknown>>) => Effect.Effect<void>;
21
+ readonly withSpan: <A, E, R>(name: string, effect: Effect.Effect<A, E, R>, attributes?: Readonly<Record<string, unknown>>) => Effect.Effect<A, E, Exclude<R, Tracer$1.ParentSpan>>;
22
+ };
23
+
24
+ type SmithersObservabilityOptions$4 = {
25
+ readonly enabled?: boolean;
26
+ readonly endpoint?: string;
27
+ readonly serviceName?: string;
28
+ readonly logFormat?: SmithersLogFormat$1;
29
+ readonly logLevel?: LogLevel.LogLevel | string;
30
+ };
31
+
32
+ type MetricLabels$1 = Readonly<Record<string, string | number | boolean>>;
33
+
34
+ type SmithersMetricType$1 = "counter" | "gauge" | "histogram";
35
+
36
+ type SmithersMetricUnit$1 = "count" | "milliseconds" | "seconds" | "bytes" | "tokens" | "ratio" | "depth";
37
+
38
+ type SmithersMetricDefinition$2 = {
39
+ readonly key: string;
40
+ readonly name: string;
41
+ readonly prometheusName: string;
42
+ readonly type: SmithersMetricType$1;
43
+ readonly label: string;
44
+ readonly unit?: SmithersMetricUnit$1;
45
+ readonly labels?: readonly string[];
46
+ readonly defaultLabels?: readonly MetricLabels$1[];
47
+ readonly boundaries?: readonly number[];
48
+ };
49
+
50
+ type RunStatus = "running" | "waiting-approval" | "waiting-event" | "waiting-timer" | "finished" | "continued" | "failed" | "cancelled";
51
+ type RunState = "running" | "waiting-approval" | "waiting-event" | "waiting-timer" | "recovering" | "stale" | "orphaned" | "failed" | "cancelled" | "succeeded" | "unknown";
52
+ type AgentCliActionKind = "turn" | "command" | "tool" | "file_change" | "web_search" | "todo_list" | "reasoning" | "warning" | "note";
53
+ type AgentCliActionPhase = "started" | "updated" | "completed";
54
+ type AgentCliEventLevel = "debug" | "info" | "warning" | "error";
55
+ type AgentCliStartedEvent = {
56
+ type: "started";
57
+ engine: string;
58
+ title: string;
59
+ resume?: string;
60
+ detail?: Record<string, unknown>;
61
+ };
62
+ type AgentCliActionEvent = {
63
+ type: "action";
64
+ engine: string;
65
+ phase: AgentCliActionPhase;
66
+ entryType?: "thought" | "message";
67
+ action: {
68
+ id: string;
69
+ kind: AgentCliActionKind;
70
+ title: string;
71
+ detail?: Record<string, unknown>;
72
+ };
73
+ message?: string;
74
+ ok?: boolean;
75
+ level?: AgentCliEventLevel;
76
+ };
77
+ type AgentCliCompletedEvent = {
78
+ type: "completed";
79
+ engine: string;
80
+ ok: boolean;
81
+ answer?: string;
82
+ error?: string;
83
+ resume?: string;
84
+ usage?: Record<string, unknown>;
85
+ };
86
+ type AgentCliEvent = AgentCliStartedEvent | AgentCliActionEvent | AgentCliCompletedEvent;
87
+ type SmithersEvent$2 = {
88
+ type: "SupervisorStarted";
89
+ runId: string;
90
+ pollIntervalMs: number;
91
+ staleThresholdMs: number;
92
+ timestampMs: number;
93
+ } | {
94
+ type: "SupervisorPollCompleted";
95
+ runId: string;
96
+ staleCount: number;
97
+ resumedCount: number;
98
+ skippedCount: number;
99
+ durationMs: number;
100
+ timestampMs: number;
101
+ } | {
102
+ type: "RunAutoResumed";
103
+ runId: string;
104
+ lastHeartbeatAtMs: number | null;
105
+ staleDurationMs: number;
106
+ timestampMs: number;
107
+ } | {
108
+ type: "RunAutoResumeSkipped";
109
+ runId: string;
110
+ reason: "pid-alive" | "missing-workflow" | "rate-limited";
111
+ timestampMs: number;
112
+ } | {
113
+ type: "RunStarted";
114
+ runId: string;
115
+ timestampMs: number;
116
+ } | {
117
+ type: "RunStatusChanged";
118
+ runId: string;
119
+ status: RunStatus;
120
+ timestampMs: number;
121
+ } | {
122
+ type: "RunStateChanged";
123
+ runId: string;
124
+ before: RunState;
125
+ after: RunState;
126
+ timestampMs: number;
127
+ } | {
128
+ type: "RunFinished";
129
+ runId: string;
130
+ timestampMs: number;
131
+ } | {
132
+ type: "RunFailed";
133
+ runId: string;
134
+ error: unknown;
135
+ timestampMs: number;
136
+ } | {
137
+ type: "RunCancelled";
138
+ runId: string;
139
+ timestampMs: number;
140
+ } | {
141
+ type: "RunContinuedAsNew";
142
+ runId: string;
143
+ newRunId: string;
144
+ iteration: number;
145
+ carriedStateSize: number;
146
+ ancestryDepth?: number;
147
+ timestampMs: number;
148
+ } | {
149
+ type: "RunHijackRequested";
150
+ runId: string;
151
+ target?: string;
152
+ timestampMs: number;
153
+ } | {
154
+ type: "RunHijacked";
155
+ runId: string;
156
+ nodeId: string;
157
+ iteration: number;
158
+ attempt: number;
159
+ engine: string;
160
+ mode: "native-cli" | "conversation";
161
+ resume?: string | null;
162
+ cwd: string;
163
+ timestampMs: number;
164
+ } | {
165
+ type: "SandboxCreated";
166
+ runId: string;
167
+ sandboxId: string;
168
+ runtime: "bubblewrap" | "docker" | "codeplane";
169
+ configJson: string;
170
+ timestampMs: number;
171
+ } | {
172
+ type: "SandboxShipped";
173
+ runId: string;
174
+ sandboxId: string;
175
+ runtime: "bubblewrap" | "docker" | "codeplane";
176
+ bundleSizeBytes: number;
177
+ timestampMs: number;
178
+ } | {
179
+ type: "SandboxHeartbeat";
180
+ runId: string;
181
+ sandboxId: string;
182
+ remoteRunId?: string;
183
+ progress?: number;
184
+ timestampMs: number;
185
+ } | {
186
+ type: "SandboxBundleReceived";
187
+ runId: string;
188
+ sandboxId: string;
189
+ bundleSizeBytes: number;
190
+ patchCount: number;
191
+ hasOutputs: boolean;
192
+ timestampMs: number;
193
+ } | {
194
+ type: "SandboxCompleted";
195
+ runId: string;
196
+ sandboxId: string;
197
+ remoteRunId?: string;
198
+ runtime: "bubblewrap" | "docker" | "codeplane";
199
+ status: "finished" | "failed" | "cancelled";
200
+ durationMs: number;
201
+ timestampMs: number;
202
+ } | {
203
+ type: "SandboxFailed";
204
+ runId: string;
205
+ sandboxId: string;
206
+ runtime: "bubblewrap" | "docker" | "codeplane";
207
+ error: unknown;
208
+ timestampMs: number;
209
+ } | {
210
+ type: "SandboxDiffReviewRequested";
211
+ runId: string;
212
+ sandboxId: string;
213
+ patchCount: number;
214
+ totalDiffLines: number;
215
+ timestampMs: number;
216
+ } | {
217
+ type: "SandboxDiffAccepted";
218
+ runId: string;
219
+ sandboxId: string;
220
+ patchCount: number;
221
+ timestampMs: number;
222
+ } | {
223
+ type: "SandboxDiffRejected";
224
+ runId: string;
225
+ sandboxId: string;
226
+ reason?: string;
227
+ timestampMs: number;
228
+ } | {
229
+ type: "FrameCommitted";
230
+ runId: string;
231
+ frameNo: number;
232
+ xmlHash: string;
233
+ timestampMs: number;
234
+ } | {
235
+ type: "NodePending";
236
+ runId: string;
237
+ nodeId: string;
238
+ iteration: number;
239
+ timestampMs: number;
240
+ } | {
241
+ type: "NodeStarted";
242
+ runId: string;
243
+ nodeId: string;
244
+ iteration: number;
245
+ attempt: number;
246
+ timestampMs: number;
247
+ } | {
248
+ type: "TaskHeartbeat";
249
+ runId: string;
250
+ nodeId: string;
251
+ iteration: number;
252
+ attempt: number;
253
+ hasData: boolean;
254
+ dataSizeBytes: number;
255
+ intervalMs?: number;
256
+ timestampMs: number;
257
+ } | {
258
+ type: "TaskHeartbeatTimeout";
259
+ runId: string;
260
+ nodeId: string;
261
+ iteration: number;
262
+ attempt: number;
263
+ lastHeartbeatAtMs: number;
264
+ timeoutMs: number;
265
+ timestampMs: number;
266
+ } | {
267
+ type: "NodeFinished";
268
+ runId: string;
269
+ nodeId: string;
270
+ iteration: number;
271
+ attempt: number;
272
+ timestampMs: number;
273
+ } | {
274
+ type: "NodeFailed";
275
+ runId: string;
276
+ nodeId: string;
277
+ iteration: number;
278
+ attempt: number;
279
+ error: unknown;
280
+ timestampMs: number;
281
+ } | {
282
+ type: "NodeCancelled";
283
+ runId: string;
284
+ nodeId: string;
285
+ iteration: number;
286
+ attempt?: number;
287
+ reason?: string;
288
+ timestampMs: number;
289
+ } | {
290
+ type: "NodeSkipped";
291
+ runId: string;
292
+ nodeId: string;
293
+ iteration: number;
294
+ timestampMs: number;
295
+ } | {
296
+ type: "NodeRetrying";
297
+ runId: string;
298
+ nodeId: string;
299
+ iteration: number;
300
+ attempt: number;
301
+ timestampMs: number;
302
+ } | {
303
+ type: "NodeWaitingApproval";
304
+ runId: string;
305
+ nodeId: string;
306
+ iteration: number;
307
+ timestampMs: number;
308
+ } | {
309
+ type: "NodeWaitingTimer";
310
+ runId: string;
311
+ nodeId: string;
312
+ iteration: number;
313
+ firesAtMs: number;
314
+ timestampMs: number;
315
+ } | {
316
+ type: "ApprovalRequested";
317
+ runId: string;
318
+ nodeId: string;
319
+ iteration: number;
320
+ timestampMs: number;
321
+ } | {
322
+ type: "ApprovalGranted";
323
+ runId: string;
324
+ nodeId: string;
325
+ iteration: number;
326
+ timestampMs: number;
327
+ } | {
328
+ type: "ApprovalAutoApproved";
329
+ runId: string;
330
+ nodeId: string;
331
+ iteration: number;
332
+ timestampMs: number;
333
+ } | {
334
+ type: "ApprovalDenied";
335
+ runId: string;
336
+ nodeId: string;
337
+ iteration: number;
338
+ timestampMs: number;
339
+ } | {
340
+ type: "ToolCallStarted";
341
+ runId: string;
342
+ nodeId: string;
343
+ iteration: number;
344
+ attempt: number;
345
+ toolName: string;
346
+ seq: number;
347
+ timestampMs: number;
348
+ } | {
349
+ type: "ToolCallFinished";
350
+ runId: string;
351
+ nodeId: string;
352
+ iteration: number;
353
+ attempt: number;
354
+ toolName: string;
355
+ seq: number;
356
+ status: "success" | "error";
357
+ timestampMs: number;
358
+ } | {
359
+ type: "NodeOutput";
360
+ runId: string;
361
+ nodeId: string;
362
+ iteration: number;
363
+ attempt: number;
364
+ text: string;
365
+ stream: "stdout" | "stderr";
366
+ timestampMs: number;
367
+ } | {
368
+ type: "AgentEvent";
369
+ runId: string;
370
+ nodeId: string;
371
+ iteration: number;
372
+ attempt: number;
373
+ engine: string;
374
+ event: AgentCliEvent;
375
+ timestampMs: number;
376
+ } | {
377
+ type: "RetryTaskStarted";
378
+ runId: string;
379
+ nodeId: string;
380
+ iteration: number;
381
+ resetDependents: boolean;
382
+ resetNodes: string[];
383
+ timestampMs: number;
384
+ } | {
385
+ type: "RetryTaskFinished";
386
+ runId: string;
387
+ nodeId: string;
388
+ iteration: number;
389
+ resetNodes: string[];
390
+ success: boolean;
391
+ error?: string;
392
+ timestampMs: number;
393
+ } | {
394
+ type: "RevertStarted";
395
+ runId: string;
396
+ nodeId: string;
397
+ iteration: number;
398
+ attempt: number;
399
+ jjPointer: string;
400
+ timestampMs: number;
401
+ } | {
402
+ type: "RevertFinished";
403
+ runId: string;
404
+ nodeId: string;
405
+ iteration: number;
406
+ attempt: number;
407
+ jjPointer: string;
408
+ success: boolean;
409
+ error?: string;
410
+ timestampMs: number;
411
+ } | {
412
+ type: "TimeTravelStarted";
413
+ runId: string;
414
+ nodeId: string;
415
+ iteration: number;
416
+ attempt: number;
417
+ jjPointer?: string;
418
+ timestampMs: number;
419
+ } | {
420
+ type: "TimeTravelFinished";
421
+ runId: string;
422
+ nodeId: string;
423
+ iteration: number;
424
+ attempt: number;
425
+ jjPointer?: string;
426
+ success: boolean;
427
+ vcsRestored: boolean;
428
+ resetNodes: string[];
429
+ error?: string;
430
+ timestampMs: number;
431
+ } | {
432
+ type: "TimeTravelJumped";
433
+ runId: string;
434
+ fromFrameNo: number;
435
+ toFrameNo: number;
436
+ timestampMs: number;
437
+ caller?: string;
438
+ } | {
439
+ type: "WorkflowReloadDetected";
440
+ runId: string;
441
+ changedFiles: string[];
442
+ timestampMs: number;
443
+ } | {
444
+ type: "WorkflowReloaded";
445
+ runId: string;
446
+ generation: number;
447
+ changedFiles: string[];
448
+ timestampMs: number;
449
+ } | {
450
+ type: "WorkflowReloadFailed";
451
+ runId: string;
452
+ error: unknown;
453
+ changedFiles: string[];
454
+ timestampMs: number;
455
+ } | {
456
+ type: "WorkflowReloadUnsafe";
457
+ runId: string;
458
+ reason: string;
459
+ changedFiles: string[];
460
+ timestampMs: number;
461
+ } | {
462
+ type: "ScorerStarted";
463
+ runId: string;
464
+ nodeId: string;
465
+ scorerId: string;
466
+ scorerName: string;
467
+ timestampMs: number;
468
+ } | {
469
+ type: "ScorerFinished";
470
+ runId: string;
471
+ nodeId: string;
472
+ scorerId: string;
473
+ scorerName: string;
474
+ score: number;
475
+ timestampMs: number;
476
+ } | {
477
+ type: "ScorerFailed";
478
+ runId: string;
479
+ nodeId: string;
480
+ scorerId: string;
481
+ scorerName: string;
482
+ error: unknown;
483
+ timestampMs: number;
484
+ } | {
485
+ type: "TokenUsageReported";
486
+ runId: string;
487
+ nodeId: string;
488
+ iteration: number;
489
+ attempt: number;
490
+ model: string;
491
+ agent: string;
492
+ inputTokens: number;
493
+ outputTokens: number;
494
+ cacheReadTokens?: number;
495
+ cacheWriteTokens?: number;
496
+ reasoningTokens?: number;
497
+ timestampMs: number;
498
+ } | {
499
+ type: "SnapshotCaptured";
500
+ runId: string;
501
+ frameNo: number;
502
+ contentHash: string;
503
+ timestampMs: number;
504
+ } | {
505
+ type: "RunForked";
506
+ runId: string;
507
+ parentRunId: string;
508
+ parentFrameNo: number;
509
+ branchLabel?: string;
510
+ timestampMs: number;
511
+ } | {
512
+ type: "ReplayStarted";
513
+ runId: string;
514
+ parentRunId: string;
515
+ parentFrameNo: number;
516
+ restoreVcs: boolean;
517
+ timestampMs: number;
518
+ } | {
519
+ type: "MemoryFactSet";
520
+ runId: string;
521
+ namespace: string;
522
+ key: string;
523
+ timestampMs: number;
524
+ } | {
525
+ type: "MemoryRecalled";
526
+ runId: string;
527
+ namespace: string;
528
+ query: string;
529
+ resultCount: number;
530
+ timestampMs: number;
531
+ } | {
532
+ type: "MemoryMessageSaved";
533
+ runId: string;
534
+ threadId: string;
535
+ role: string;
536
+ timestampMs: number;
537
+ } | {
538
+ type: "OpenApiToolCalled";
539
+ runId: string;
540
+ operationId: string;
541
+ method: string;
542
+ path: string;
543
+ durationMs: number;
544
+ status: "success" | "error";
545
+ timestampMs: number;
546
+ } | {
547
+ type: "TimerCreated";
548
+ runId: string;
549
+ timerId: string;
550
+ firesAtMs: number;
551
+ timerType: "duration" | "absolute";
552
+ timestampMs: number;
553
+ } | {
554
+ type: "TimerFired";
555
+ runId: string;
556
+ timerId: string;
557
+ firesAtMs: number;
558
+ firedAtMs: number;
559
+ delayMs: number;
560
+ timestampMs: number;
561
+ } | {
562
+ type: "TimerCancelled";
563
+ runId: string;
564
+ timerId: string;
565
+ timestampMs: number;
566
+ };
567
+
568
+ type MetricName = string;
569
+
570
+ type SmithersMetricEvent = {
571
+ readonly type: string;
572
+ readonly [key: string]: unknown;
573
+ };
574
+ type CounterEntry = {
575
+ readonly type: "counter";
576
+ value: number;
577
+ readonly labels: MetricLabels$1;
578
+ };
579
+ type GaugeEntry = {
580
+ readonly type: "gauge";
581
+ value: number;
582
+ readonly labels: MetricLabels$1;
583
+ };
584
+ type HistogramEntry = {
585
+ readonly type: "histogram";
586
+ sum: number;
587
+ count: number;
588
+ readonly labels: MetricLabels$1;
589
+ readonly buckets: Map<number, number>;
590
+ };
591
+ type MetricEntry = CounterEntry | GaugeEntry | HistogramEntry;
592
+ type MetricsSnapshot$1 = ReadonlyMap<string, MetricEntry>;
593
+ type MetricsServiceShape$2 = {
594
+ readonly increment: (name: MetricName, labels?: MetricLabels$1) => Effect.Effect<void>;
595
+ readonly incrementBy: (name: MetricName, value: number, labels?: MetricLabels$1) => Effect.Effect<void>;
596
+ readonly gauge: (name: MetricName, value: number, labels?: MetricLabels$1) => Effect.Effect<void>;
597
+ readonly histogram: (name: MetricName, value: number, labels?: MetricLabels$1) => Effect.Effect<void>;
598
+ readonly recordEvent: (event: SmithersMetricEvent) => Effect.Effect<void>;
599
+ readonly updateProcessMetrics: () => Effect.Effect<void>;
600
+ readonly updateAsyncExternalWaitPending: (kind: "approval" | "event", delta: number) => Effect.Effect<void>;
601
+ readonly renderPrometheus: () => Effect.Effect<string>;
602
+ readonly snapshot: () => Effect.Effect<MetricsSnapshot$1>;
603
+ };
604
+
605
+ type CorrelationContext$5 = {
606
+ runId: string;
607
+ nodeId?: string;
608
+ iteration?: number;
609
+ attempt?: number;
610
+ workflowName?: string;
611
+ parentRunId?: string;
612
+ traceId?: string;
613
+ spanId?: string;
614
+ };
615
+
616
+ type CorrelationPatch$5 = Partial<CorrelationContext$5> | undefined | null;
617
+
618
+ declare class MetricsService extends Context.TagClassShape<"MetricsService", MetricsServiceShape$2> {
619
+ }
620
+
621
+ declare class SmithersObservability extends Context.TagClassShape<"SmithersObservability", SmithersObservabilityService$1> {
622
+ }
623
+
624
+ declare const prometheusContentType: "text/plain; version=0.0.4; charset=utf-8";
625
+
626
+ declare namespace smithersSpanNames {
627
+ let run: string;
628
+ let task: string;
629
+ let agent: string;
630
+ let tool: string;
631
+ }
632
+
633
+ /**
634
+ * @returns {Tracer.AnySpan | undefined}
635
+ */
636
+ declare function getCurrentSmithersTraceSpan(): Tracer.AnySpan | undefined;
637
+
638
+ /**
639
+ * @returns {| Readonly<Record<string, string>> | undefined}
640
+ */
641
+ declare function getCurrentSmithersTraceAnnotations(): Readonly<Record<string, string>> | undefined;
642
+
643
+ /**
644
+ * @typedef {Readonly<Record<string, unknown>>} SmithersSpanAttributesInput
645
+ */
646
+ /**
647
+ * @param {SmithersSpanAttributesInput} [attributes]
648
+ * @returns {Record<string, unknown>}
649
+ */
650
+ declare function makeSmithersSpanAttributes(attributes?: SmithersSpanAttributesInput): Record<string, unknown>;
651
+ type SmithersSpanAttributesInput = Readonly<Record<string, unknown>>;
652
+
653
+ /**
654
+ * @param {Readonly<Record<string, unknown>>} [attributes]
655
+ * @returns {Effect.Effect<void>}
656
+ */
657
+ declare function annotateSmithersTrace(attributes?: Readonly<Record<string, unknown>>): Effect.Effect<void>;
658
+
659
+ /**
660
+ * @template A, E, R
661
+ * @param {string} name
662
+ * @param {Effect.Effect<A, E, R>} effect
663
+ * @param {Readonly<Record<string, unknown>>} [attributes]
664
+ * @param {Omit<Tracer.SpanOptions, "attributes" | "kind"> & { readonly kind?: Tracer.SpanKind; }} [_options]
665
+ * @returns {Effect.Effect<A, E, Exclude<R, Tracer.ParentSpan>>}
666
+ */
667
+ declare function withSmithersSpan<A, E, R>(name: string, effect: Effect.Effect<A, E, R>, attributes?: Readonly<Record<string, unknown>>, _options?: Omit<Tracer.SpanOptions, "attributes" | "kind"> & {
668
+ readonly kind?: Tracer.SpanKind;
669
+ }): Effect.Effect<A, E, Exclude<R, Tracer.ParentSpan>>;
670
+
671
+ /**
672
+ * @returns {string}
673
+ */
674
+ declare function renderPrometheusMetrics(): string;
675
+
676
+ /**
677
+ * @param {SmithersObservabilityOptions} [options]
678
+ * @returns {ResolvedSmithersObservabilityOptions}
679
+ */
680
+ declare function resolveSmithersObservabilityOptions(options?: SmithersObservabilityOptions$3): ResolvedSmithersObservabilityOptions$1;
681
+ type ResolvedSmithersObservabilityOptions$1 = ResolvedSmithersObservabilityOptions$2;
682
+ type SmithersObservabilityOptions$3 = SmithersObservabilityOptions$4;
683
+
684
+ declare const smithersMetrics: {
685
+ [k: string]: effect_Metric.Metric<any, any, any>;
686
+ };
687
+
688
+ /** @type {Layer.Layer<MetricsService, never, never>} */
689
+ declare const MetricsServiceLive: Layer.Layer<MetricsService, never, never>;
690
+
691
+ /** @typedef {import("./SmithersObservabilityOptions.ts").SmithersObservabilityOptions} SmithersObservabilityOptions */
692
+ /**
693
+ * @param {SmithersObservabilityOptions} [options]
694
+ */
695
+ declare function createSmithersOtelLayer(options?: SmithersObservabilityOptions$2): Layer.Layer<never, never, never>;
696
+ type SmithersObservabilityOptions$2 = SmithersObservabilityOptions$4;
697
+
698
+ type TracingServiceShape = {
699
+ readonly withSpan: <A, E, R>(name: string, effect: Effect.Effect<A, E, R>, attributes?: Record<string, unknown>) => Effect.Effect<A, E, R>;
700
+ readonly annotate: (attributes: Record<string, unknown>) => Effect.Effect<void>;
701
+ readonly withCorrelation: <A, E, R>(context: CorrelationPatch$5, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
702
+ };
703
+
704
+ declare class TracingService extends Context.TagClassShape<"TracingService", TracingServiceShape> {
705
+ }
706
+ /** @type {Layer.Layer<TracingService, never, never>} */
707
+ declare const TracingServiceLive: Layer.Layer<TracingService, never, never>;
708
+
709
+ /**
710
+ * @param {SmithersObservabilityOptions} [options]
711
+ */
712
+ declare function createSmithersObservabilityLayer(options?: SmithersObservabilityOptions$1): Layer.Layer<MetricsService | TracingService | SmithersObservability | BunContext.BunContext, never, never>;
713
+ type SmithersObservabilityOptions$1 = SmithersObservabilityOptions$4;
714
+
715
+ declare const createSmithersRuntimeLayer: typeof createSmithersObservabilityLayer;
716
+
717
+ /**
718
+ * @param {string} name
719
+ * @returns {string}
720
+ */
721
+ declare function toPrometheusMetricName(name: string): string;
722
+
723
+ /**
724
+ * @returns {Effect.Effect<void>}
725
+ */
726
+ declare function updateProcessMetrics(): Effect.Effect<void>;
727
+
728
+ /**
729
+ * @param {SmithersEvent} event
730
+ * @returns {Effect.Effect<void>}
731
+ */
732
+ declare function trackEvent(event: SmithersEvent$1): Effect.Effect<void>;
733
+ type SmithersEvent$1 = SmithersEvent$2;
734
+
735
+ type SmithersMetricType = "counter" | "gauge" | "histogram";
736
+
737
+ type SmithersMetricUnit = "count" | "milliseconds" | "seconds" | "bytes" | "tokens" | "ratio" | "depth";
738
+
739
+ type SmithersMetricDefinition$1 = {
740
+ readonly key: string;
741
+ readonly metric: Metric.Metric<any, any, any>;
742
+ readonly name: string;
743
+ readonly prometheusName: string;
744
+ readonly type: SmithersMetricType;
745
+ readonly label: string;
746
+ readonly unit?: SmithersMetricUnit;
747
+ readonly description?: string;
748
+ readonly labels?: readonly string[];
749
+ readonly boundaries?: readonly number[];
750
+ readonly defaultLabels?: readonly Readonly<Record<string, string>>[];
751
+ };
752
+
753
+ declare const smithersMetricCatalog: SmithersMetricDefinition$1[];
754
+
755
+ /** @type {MetricsServiceShape} */
756
+ declare const metricsServiceAdapter: MetricsServiceShape$1;
757
+ type MetricsServiceShape$1 = MetricsServiceShape$2;
758
+
759
+ declare const runsTotal: Metric.Metric.Counter<number>;
760
+
761
+ declare const nodesStarted: Metric.Metric.Counter<number>;
762
+
763
+ declare const nodesFinished: Metric.Metric.Counter<number>;
764
+
765
+ declare const nodesFailed: Metric.Metric.Counter<number>;
766
+
767
+ declare const toolCallsTotal: Metric.Metric.Counter<number>;
768
+
769
+ declare const cacheHits: Metric.Metric.Counter<number>;
770
+
771
+ declare const cacheMisses: Metric.Metric.Counter<number>;
772
+
773
+ declare const dbRetries: Metric.Metric.Counter<number>;
774
+
775
+ declare const dbTransactionRollbacks: Metric.Metric.Counter<number>;
776
+
777
+ declare const dbTransactionRetries: Metric.Metric.Counter<number>;
778
+
779
+ declare const hotReloads: Metric.Metric.Counter<number>;
780
+
781
+ declare const hotReloadFailures: Metric.Metric.Counter<number>;
782
+
783
+ declare const httpRequests: Metric.Metric.Counter<number>;
784
+
785
+ declare const approvalsRequested: Metric.Metric.Counter<number>;
786
+
787
+ declare const approvalsGranted: Metric.Metric.Counter<number>;
788
+
789
+ declare const approvalsDenied: Metric.Metric.Counter<number>;
790
+
791
+ declare const timersCreated: Metric.Metric.Counter<number>;
792
+
793
+ declare const timersFired: Metric.Metric.Counter<number>;
794
+
795
+ declare const timersCancelled: Metric.Metric.Counter<number>;
796
+
797
+ declare const sandboxCreatedTotal: Metric.Metric.Counter<number>;
798
+
799
+ declare const sandboxCompletedTotal: Metric.Metric.Counter<number>;
800
+
801
+ declare const scorerEventsStarted: Metric.Metric.Counter<number>;
802
+
803
+ declare const scorerEventsFinished: Metric.Metric.Counter<number>;
804
+
805
+ declare const scorerEventsFailed: Metric.Metric.Counter<number>;
806
+
807
+ declare const tokensInputTotal: Metric.Metric.Counter<number>;
808
+
809
+ declare const tokensOutputTotal: Metric.Metric.Counter<number>;
810
+
811
+ declare const tokensCacheReadTotal: Metric.Metric.Counter<number>;
812
+
813
+ declare const tokensCacheWriteTotal: Metric.Metric.Counter<number>;
814
+
815
+ declare const tokensReasoningTotal: Metric.Metric.Counter<number>;
816
+
817
+ declare const tokensContextWindowBucketTotal: Metric.Metric.Counter<number>;
818
+
819
+ declare const runsFinishedTotal: Metric.Metric.Counter<number>;
820
+
821
+ declare const runsFailedTotal: Metric.Metric.Counter<number>;
822
+
823
+ declare const runsCancelledTotal: Metric.Metric.Counter<number>;
824
+
825
+ declare const runsResumedTotal: Metric.Metric.Counter<number>;
826
+
827
+ declare const runsContinuedTotal: Metric.Metric.Counter<number>;
828
+
829
+ declare const errorsTotal: Metric.Metric.Counter<number>;
830
+
831
+ declare const nodeRetriesTotal: Metric.Metric.Counter<number>;
832
+
833
+ declare const toolCallErrorsTotal: Metric.Metric.Counter<number>;
834
+
835
+ declare const toolOutputTruncatedTotal: Metric.Metric.Counter<number>;
836
+
837
+ declare const eventsEmittedTotal: Metric.Metric.Counter<number>;
838
+
839
+ declare const activeRuns: Metric.Metric.Gauge<number>;
840
+
841
+ declare const activeNodes: Metric.Metric.Gauge<number>;
842
+
843
+ declare const schedulerQueueDepth: Metric.Metric.Gauge<number>;
844
+
845
+ declare const sandboxActive: Metric.Metric.Gauge<number>;
846
+
847
+ declare const approvalPending: Metric.Metric.Gauge<number>;
848
+
849
+ declare const externalWaitAsyncPending: Metric.Metric.Gauge<number>;
850
+
851
+ declare const timersPending: Metric.Metric.Gauge<number>;
852
+
853
+ declare const schedulerConcurrencyUtilization: Metric.Metric.Gauge<number>;
854
+
855
+ declare const processUptimeSeconds: Metric.Metric.Gauge<number>;
856
+
857
+ declare const processMemoryRssBytes: Metric.Metric.Gauge<number>;
858
+
859
+ declare const processHeapUsedBytes: Metric.Metric.Gauge<number>;
860
+
861
+ declare const nodeDuration: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
862
+
863
+ declare const attemptDuration: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
864
+
865
+ declare const toolDuration: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
866
+
867
+ declare const dbQueryDuration: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
868
+
869
+ declare const dbTransactionDuration: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
870
+
871
+ declare const httpRequestDuration: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
872
+
873
+ declare const hotReloadDuration: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
874
+
875
+ declare const vcsDuration: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
876
+
877
+ declare const tokensInputPerCall: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
878
+
879
+ declare const tokensOutputPerCall: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
880
+
881
+ declare const tokensContextWindowPerCall: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
882
+
883
+ declare const runDuration: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
884
+
885
+ declare const promptSizeBytes: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
886
+
887
+ declare const responseSizeBytes: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
888
+
889
+ declare const approvalWaitDuration: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
890
+
891
+ declare const timerDelayDuration: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
892
+
893
+ declare const schedulerWaitDuration: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
894
+
895
+ declare const runsAncestryDepth: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
896
+
897
+ declare const runsCarriedStateBytes: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
898
+
899
+ declare const sandboxDurationMs: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
900
+
901
+ declare const sandboxBundleSizeBytes: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
902
+
903
+ declare const sandboxTransportDurationMs: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
904
+
905
+ declare const sandboxPatchCount: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
906
+
907
+ declare const rewindTotal: Metric.Metric.Counter<number>;
908
+
909
+ declare const rewindRollbackTotal: Metric.Metric.Counter<number>;
910
+
911
+ declare const rewindDurationMs: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
912
+
913
+ declare const rewindFramesDeleted: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
914
+
915
+ declare const rewindSandboxesReverted: Metric.Metric<effect_MetricKeyType.MetricKeyType.Histogram, number, effect_MetricState.MetricState.Histogram>;
916
+
917
+ declare const correlationContextFiberRef: FiberRef.FiberRef<undefined>;
918
+
919
+ type CorrelationContextServiceShape = {
920
+ readonly current: () => Effect.Effect<CorrelationContext$5 | undefined>;
921
+ readonly withCorrelation: <A, E, R>(patch: CorrelationPatch$5, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
922
+ readonly toLogAnnotations: (context?: CorrelationContext$5 | null) => Record<string, unknown> | undefined;
923
+ };
924
+
925
+ declare class CorrelationContextService extends Context.TagClassShape<"CorrelationContextService", CorrelationContextServiceShape> {
926
+ }
927
+
928
+ /** @type {Layer.Layer<CorrelationContextService, never, never>} */
929
+ declare const CorrelationContextLive: Layer.Layer<CorrelationContextService, never, never>;
930
+
931
+ /**
932
+ * @param {CorrelationContext | null} [base]
933
+ * @param {CorrelationPatch} [patch]
934
+ * @returns {CorrelationContext | undefined}
935
+ */
936
+ declare function mergeCorrelationContext(base?: CorrelationContext$4 | null, patch?: CorrelationPatch$4): CorrelationContext$4 | undefined;
937
+ type CorrelationContext$4 = CorrelationContext$5;
938
+ type CorrelationPatch$4 = CorrelationPatch$5;
939
+
940
+ /** @typedef {import("./CorrelationContext.ts").CorrelationContext} CorrelationContext */
941
+ /**
942
+ * @returns {CorrelationContext | undefined}
943
+ */
944
+ declare function getCurrentCorrelationContext(): CorrelationContext$3 | undefined;
945
+ type CorrelationContext$3 = CorrelationContext$5;
946
+
947
+ /** @typedef {import("./CorrelationContext.ts").CorrelationContext} CorrelationContext */
948
+ /**
949
+ * @returns {Effect.Effect< CorrelationContext | undefined >}
950
+ */
951
+ declare function getCurrentCorrelationContextEffect(): Effect.Effect<CorrelationContext$2 | undefined>;
952
+ type CorrelationContext$2 = CorrelationContext$5;
953
+
954
+ /** @typedef {import("./CorrelationPatch.ts").CorrelationPatch} CorrelationPatch */
955
+ /**
956
+ * @template T
957
+ * @param {CorrelationPatch} patch
958
+ * @param {() => T} fn
959
+ * @returns {T}
960
+ */
961
+ declare function runWithCorrelationContext<T>(patch: CorrelationPatch$3, fn: () => T): T;
962
+ type CorrelationPatch$3 = CorrelationPatch$5;
963
+
964
+ /** @typedef {import("./CorrelationPatch.ts").CorrelationPatch} CorrelationPatch */
965
+ /**
966
+ * @template A, E, R
967
+ * @param {Effect.Effect<A, E, R>} effect
968
+ * @param {CorrelationPatch} patch
969
+ */
970
+ declare function withCorrelationContext<A, E, R>(effect: Effect.Effect<A, E, R>, patch: CorrelationPatch$2): Effect.Effect<A, E, R>;
971
+ type CorrelationPatch$2 = CorrelationPatch$5;
972
+
973
+ /**
974
+ * @template A, E, R
975
+ * @param {Effect.Effect<A, E, R>} effect
976
+ */
977
+ declare function withCurrentCorrelationContext<A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R>;
978
+
979
+ /** @typedef {import("./CorrelationContext.ts").CorrelationContext} CorrelationContext */
980
+ /**
981
+ * @param {CorrelationContext | null} [context]
982
+ * @returns {Record<string, unknown> | undefined}
983
+ */
984
+ declare function correlationContextToLogAnnotations(context?: CorrelationContext$1 | null): Record<string, unknown> | undefined;
985
+ type CorrelationContext$1 = CorrelationContext$5;
986
+
987
+ /**
988
+ * @param {CorrelationPatch} patch
989
+ */
990
+ declare function updateCurrentCorrelationContext(patch: CorrelationPatch$1): void;
991
+ type CorrelationPatch$1 = CorrelationPatch$5;
992
+
993
+ /**
994
+ * @param {string} message
995
+ * @param {LogAnnotations} [annotations]
996
+ * @param {string} [span]
997
+ */
998
+ declare function logDebug(message: string, annotations?: LogAnnotations, span?: string): void;
999
+ /**
1000
+ * @param {string} message
1001
+ * @param {LogAnnotations} [annotations]
1002
+ * @param {string} [span]
1003
+ */
1004
+ declare function logInfo(message: string, annotations?: LogAnnotations, span?: string): void;
1005
+ /**
1006
+ * @param {string} message
1007
+ * @param {LogAnnotations} [annotations]
1008
+ * @param {string} [span]
1009
+ */
1010
+ declare function logWarning(message: string, annotations?: LogAnnotations, span?: string): void;
1011
+ /**
1012
+ * @param {string} message
1013
+ * @param {LogAnnotations} [annotations]
1014
+ * @param {string} [span]
1015
+ */
1016
+ declare function logError(message: string, annotations?: LogAnnotations, span?: string): void;
1017
+ type LogAnnotations = Record<string, unknown> | undefined;
1018
+
1019
+ type CorrelationContext = CorrelationContext$5;
1020
+ type CorrelationPatch = CorrelationPatch$5;
1021
+ type CorrelationContextPatch = CorrelationPatch;
1022
+ type MetricLabels = MetricLabels$1;
1023
+ type MetricsServiceShape = MetricsServiceShape$2;
1024
+ type MetricsSnapshot = MetricsSnapshot$1;
1025
+ type ResolvedSmithersObservabilityOptions = ResolvedSmithersObservabilityOptions$2;
1026
+ type SmithersEvent = SmithersEvent$2;
1027
+ type SmithersLogFormat = SmithersLogFormat$1;
1028
+ type SmithersMetricDefinition = SmithersMetricDefinition$2;
1029
+ type SmithersObservabilityOptions = SmithersObservabilityOptions$4;
1030
+ type SmithersObservabilityService = SmithersObservabilityService$1;
1031
+
1032
+ export { type CorrelationContext, CorrelationContextLive, type CorrelationContextPatch, CorrelationContextService, type CorrelationPatch, type MetricLabels, MetricsService, MetricsServiceLive, type MetricsServiceShape, type MetricsSnapshot, type ResolvedSmithersObservabilityOptions, type SmithersEvent, type SmithersLogFormat, type SmithersMetricDefinition, SmithersObservability, type SmithersObservabilityOptions, type SmithersObservabilityService, TracingService, TracingServiceLive, activeNodes, activeRuns, annotateSmithersTrace, approvalPending, approvalWaitDuration, approvalsDenied, approvalsGranted, approvalsRequested, attemptDuration, cacheHits, cacheMisses, correlationContextFiberRef, correlationContextToLogAnnotations, createSmithersObservabilityLayer, createSmithersOtelLayer, createSmithersRuntimeLayer, dbQueryDuration, dbRetries, dbTransactionDuration, dbTransactionRetries, dbTransactionRollbacks, errorsTotal, eventsEmittedTotal, externalWaitAsyncPending, getCurrentCorrelationContext, getCurrentCorrelationContextEffect, getCurrentSmithersTraceAnnotations, getCurrentSmithersTraceSpan, hotReloadDuration, hotReloadFailures, hotReloads, httpRequestDuration, httpRequests, logDebug, logError, logInfo, logWarning, makeSmithersSpanAttributes, mergeCorrelationContext, metricsServiceAdapter, nodeDuration, nodeRetriesTotal, nodesFailed, nodesFinished, nodesStarted, processHeapUsedBytes, processMemoryRssBytes, processUptimeSeconds, prometheusContentType, promptSizeBytes, renderPrometheusMetrics, resolveSmithersObservabilityOptions, responseSizeBytes, rewindDurationMs, rewindFramesDeleted, rewindRollbackTotal, rewindSandboxesReverted, rewindTotal, runDuration, runWithCorrelationContext, runsAncestryDepth, runsCancelledTotal, runsCarriedStateBytes, runsContinuedTotal, runsFailedTotal, runsFinishedTotal, runsResumedTotal, runsTotal, sandboxActive, sandboxBundleSizeBytes, sandboxCompletedTotal, sandboxCreatedTotal, sandboxDurationMs, sandboxPatchCount, sandboxTransportDurationMs, schedulerConcurrencyUtilization, schedulerQueueDepth, schedulerWaitDuration, scorerEventsFailed, scorerEventsFinished, scorerEventsStarted, smithersMetricCatalog, smithersMetrics, smithersSpanNames, timerDelayDuration, timersCancelled, timersCreated, timersFired, timersPending, toPrometheusMetricName, tokensCacheReadTotal, tokensCacheWriteTotal, tokensContextWindowBucketTotal, tokensContextWindowPerCall, tokensInputPerCall, tokensInputTotal, tokensOutputPerCall, tokensOutputTotal, tokensReasoningTotal, toolCallErrorsTotal, toolCallsTotal, toolDuration, toolOutputTruncatedTotal, trackEvent as trackSmithersEvent, updateCurrentCorrelationContext, updateProcessMetrics, vcsDuration, withCorrelationContext, withCurrentCorrelationContext, withSmithersSpan };