@smthrs/observability 0.34.0 → 1.0.0-rc.3

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 (363) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/LICENSE +1 -1
  3. package/README.md +84 -0
  4. package/dist/cjs/BrowserOtel.d.ts +37 -0
  5. package/dist/cjs/BrowserOtel.d.ts.map +1 -0
  6. package/dist/cjs/BrowserOtel.js +47 -0
  7. package/dist/cjs/BrowserOtel.js.map +7 -0
  8. package/dist/cjs/Endpoint.d.ts +70 -0
  9. package/dist/cjs/Endpoint.d.ts.map +1 -0
  10. package/dist/cjs/Endpoint.js +85 -0
  11. package/dist/cjs/Endpoint.js.map +7 -0
  12. package/dist/cjs/JournalLogger.d.ts +232 -0
  13. package/dist/cjs/JournalLogger.d.ts.map +1 -0
  14. package/dist/cjs/JournalLogger.js +388 -0
  15. package/dist/cjs/JournalLogger.js.map +7 -0
  16. package/dist/cjs/Logger.d.ts +55 -0
  17. package/dist/cjs/Logger.d.ts.map +1 -0
  18. package/dist/cjs/Logger.js +72 -0
  19. package/dist/cjs/Logger.js.map +7 -0
  20. package/dist/cjs/Metric.d.ts +67 -0
  21. package/dist/cjs/Metric.d.ts.map +1 -0
  22. package/dist/cjs/Metric.js +68 -0
  23. package/dist/cjs/Metric.js.map +7 -0
  24. package/dist/cjs/NodeOtel.d.ts +42 -0
  25. package/dist/cjs/NodeOtel.d.ts.map +1 -0
  26. package/dist/cjs/NodeOtel.js +78 -0
  27. package/dist/cjs/NodeOtel.js.map +7 -0
  28. package/dist/cjs/Otel.d.ts +62 -0
  29. package/dist/cjs/Otel.d.ts.map +1 -0
  30. package/dist/cjs/Otel.js +75 -0
  31. package/dist/cjs/Otel.js.map +7 -0
  32. package/dist/cjs/Otlp.d.ts +200 -0
  33. package/dist/cjs/Otlp.d.ts.map +1 -0
  34. package/dist/cjs/Otlp.js +235 -0
  35. package/dist/cjs/Otlp.js.map +7 -0
  36. package/dist/cjs/Resource.d.ts +162 -0
  37. package/dist/cjs/Resource.d.ts.map +1 -0
  38. package/dist/cjs/Resource.js +186 -0
  39. package/dist/cjs/Resource.js.map +7 -0
  40. package/dist/cjs/index.d.ts +61 -0
  41. package/dist/cjs/index.d.ts.map +1 -0
  42. package/dist/cjs/index.js +47 -0
  43. package/dist/cjs/index.js.map +7 -0
  44. package/dist/cjs/internal/schemaIssuePath.d.ts +31 -0
  45. package/dist/cjs/internal/schemaIssuePath.d.ts.map +1 -0
  46. package/dist/cjs/internal/schemaIssuePath.js +49 -0
  47. package/dist/cjs/internal/schemaIssuePath.js.map +7 -0
  48. package/dist/cjs/package.json +1 -0
  49. package/dist/esm/BrowserOtel.d.ts +37 -0
  50. package/dist/esm/BrowserOtel.d.ts.map +1 -0
  51. package/dist/esm/BrowserOtel.js +24 -0
  52. package/dist/esm/BrowserOtel.js.map +1 -0
  53. package/dist/esm/Endpoint.d.ts +70 -0
  54. package/dist/esm/Endpoint.d.ts.map +1 -0
  55. package/dist/esm/Endpoint.js +110 -0
  56. package/dist/esm/Endpoint.js.map +1 -0
  57. package/dist/esm/JournalLogger.d.ts +232 -0
  58. package/dist/esm/JournalLogger.d.ts.map +1 -0
  59. package/dist/esm/JournalLogger.js +482 -0
  60. package/dist/esm/JournalLogger.js.map +1 -0
  61. package/dist/esm/Logger.d.ts +55 -0
  62. package/dist/esm/Logger.d.ts.map +1 -0
  63. package/dist/esm/Logger.js +60 -0
  64. package/dist/esm/Logger.js.map +1 -0
  65. package/dist/esm/Metric.d.ts +67 -0
  66. package/dist/esm/Metric.d.ts.map +1 -0
  67. package/dist/esm/Metric.js +80 -0
  68. package/dist/esm/Metric.js.map +1 -0
  69. package/dist/esm/NodeOtel.d.ts +42 -0
  70. package/dist/esm/NodeOtel.d.ts.map +1 -0
  71. package/dist/esm/NodeOtel.js +56 -0
  72. package/dist/esm/NodeOtel.js.map +1 -0
  73. package/dist/esm/Otel.d.ts +62 -0
  74. package/dist/esm/Otel.d.ts.map +1 -0
  75. package/dist/esm/Otel.js +51 -0
  76. package/dist/esm/Otel.js.map +1 -0
  77. package/dist/esm/Otlp.d.ts +200 -0
  78. package/dist/esm/Otlp.d.ts.map +1 -0
  79. package/dist/esm/Otlp.js +350 -0
  80. package/dist/esm/Otlp.js.map +1 -0
  81. package/dist/esm/Resource.d.ts +162 -0
  82. package/dist/esm/Resource.d.ts.map +1 -0
  83. package/dist/esm/Resource.js +237 -0
  84. package/dist/esm/Resource.js.map +1 -0
  85. package/dist/esm/index.d.ts +61 -0
  86. package/dist/esm/index.d.ts.map +1 -0
  87. package/dist/esm/index.js +61 -0
  88. package/dist/esm/index.js.map +1 -0
  89. package/dist/esm/internal/schemaIssuePath.d.ts +31 -0
  90. package/dist/esm/internal/schemaIssuePath.d.ts.map +1 -0
  91. package/dist/esm/internal/schemaIssuePath.js +59 -0
  92. package/dist/esm/internal/schemaIssuePath.js.map +1 -0
  93. package/docs/README.md +162 -0
  94. package/docs/api.md +768 -0
  95. package/docs/concepts/instrumentation-and-export.md +68 -0
  96. package/docs/concepts/layer-map.md +72 -0
  97. package/docs/concepts/validated-acquisition.md +105 -0
  98. package/docs/guides/export-to-a-collector.md +167 -0
  99. package/docs/guides/forward-logs-to-the-journal.md +226 -0
  100. package/docs/guides/install-a-logger.md +111 -0
  101. package/docs/guides/read-runtime-metrics.md +83 -0
  102. package/docs/guides/testing.md +134 -0
  103. package/docs/guides/wire-an-opentelemetry-sdk.md +220 -0
  104. package/docs/installation.md +98 -0
  105. package/docs/quickstart.md +145 -0
  106. package/docs/troubleshooting.md +168 -0
  107. package/package.json +221 -32
  108. package/src/BrowserOtel.ts +51 -0
  109. package/src/Endpoint.ts +131 -0
  110. package/src/JournalLogger.ts +596 -0
  111. package/src/Logger.ts +106 -0
  112. package/src/Metric.ts +88 -0
  113. package/src/NodeOtel.ts +90 -0
  114. package/src/Otel.ts +117 -0
  115. package/src/Otlp.ts +477 -0
  116. package/src/Resource.ts +324 -0
  117. package/src/index.ts +67 -0
  118. package/src/internal/schemaIssuePath.ts +65 -0
  119. package/docker-compose.otel.yml +0 -104
  120. package/grafana/dashboards/smithers-dashboard.json +0 -453
  121. package/grafana/provisioning/dashboards/dashboards.yml +0 -12
  122. package/grafana/provisioning/datasources/datasources.yml +0 -49
  123. package/loki/loki-config.yaml +0 -35
  124. package/otel-collector-config.yml +0 -38
  125. package/prometheus/prometheus.yml +0 -8
  126. package/src/MetricName.ts +0 -1
  127. package/src/MetricsServiceLive.js +0 -9
  128. package/src/README.md +0 -28
  129. package/src/ResolvedSmithersObservabilityOptions.ts +0 -12
  130. package/src/SmithersEvent.ts +0 -798
  131. package/src/SmithersLogFormat.ts +0 -1
  132. package/src/SmithersMetricDefinition.ts +0 -15
  133. package/src/SmithersMetricType.ts +0 -1
  134. package/src/SmithersMetricUnit.ts +0 -1
  135. package/src/SmithersObservability.js +0 -15
  136. package/src/SmithersObservabilityOptions.ts +0 -12
  137. package/src/SmithersObservabilityService.ts +0 -13
  138. package/src/_coreCorrelation/CorrelationContext.ts +0 -10
  139. package/src/_coreCorrelation/CorrelationContextLive.js +0 -11
  140. package/src/_coreCorrelation/CorrelationContextService.js +0 -15
  141. package/src/_coreCorrelation/CorrelationContextServiceShape.ts +0 -12
  142. package/src/_coreCorrelation/CorrelationPatch.ts +0 -3
  143. package/src/_coreCorrelation/README.md +0 -20
  144. package/src/_coreCorrelation/_correlationStorage.js +0 -4
  145. package/src/_coreCorrelation/correlationContextFiberRef.js +0 -5
  146. package/src/_coreCorrelation/correlationContextToLogAnnotations.js +0 -18
  147. package/src/_coreCorrelation/getCurrentCorrelationContext.js +0 -9
  148. package/src/_coreCorrelation/getCurrentCorrelationContextEffect.js +0 -11
  149. package/src/_coreCorrelation/index.js +0 -14
  150. package/src/_coreCorrelation/mergeCorrelationContext.js +0 -51
  151. package/src/_coreCorrelation/runWithCorrelationContext.js +0 -14
  152. package/src/_coreCorrelation/updateCurrentCorrelationContext.js +0 -17
  153. package/src/_coreCorrelation/withCorrelationContext.js +0 -38
  154. package/src/_coreCorrelation/withCurrentCorrelationContext.js +0 -11
  155. package/src/_coreMetrics.js +0 -14
  156. package/src/_coreMetricsShape.ts +0 -44
  157. package/src/_corePrometheus.js +0 -91
  158. package/src/_corePrometheusShape.ts +0 -11
  159. package/src/_coreTracing.js +0 -132
  160. package/src/_coreTracingShape.ts +0 -17
  161. package/src/_otelLogBuilders.js +0 -102
  162. package/src/_sessionFileResolvers.js +0 -164
  163. package/src/_smithersSpanAttributeAliases.js +0 -19
  164. package/src/_smithersTraceSpanStorage.js +0 -3
  165. package/src/_traceEventNormalizers.js +0 -499
  166. package/src/_traceRedaction.js +0 -162
  167. package/src/agentSessionEventToOtelLogRecord.js +0 -55
  168. package/src/agentTrace.ts +0 -144
  169. package/src/agentTraceCapabilities.js +0 -151
  170. package/src/annotateSmithersTrace.js +0 -11
  171. package/src/canonicalTraceEventToOtelLogRecord.js +0 -55
  172. package/src/correlation.js +0 -56
  173. package/src/createSmithersObservabilityLayer.js +0 -59
  174. package/src/createSmithersOtelLayer.js +0 -23
  175. package/src/createSmithersRuntimeLayer.js +0 -2
  176. package/src/detectAgentFamily.js +0 -26
  177. package/src/detectCaptureMode.js +0 -29
  178. package/src/emitOtelLogRecord.js +0 -19
  179. package/src/getCurrentSmithersTraceAnnotations.js +0 -14
  180. package/src/getCurrentSmithersTraceSpan.js +0 -7
  181. package/src/index.d.ts +0 -1343
  182. package/src/index.js +0 -136
  183. package/src/kindPhase.js +0 -17
  184. package/src/logging.js +0 -248
  185. package/src/makeSmithersSpanAttributes.js +0 -20
  186. package/src/metrics/README.md +0 -22
  187. package/src/metrics/SmithersMetricDefinition.ts +0 -17
  188. package/src/metrics/SmithersMetricType.ts +0 -1
  189. package/src/metrics/SmithersMetricUnit.ts +0 -1
  190. package/src/metrics/_asyncExternalWaitCounts.js +0 -4
  191. package/src/metrics/_buckets.js +0 -37
  192. package/src/metrics/_incrementGauge.js +0 -11
  193. package/src/metrics/_processStartMs.js +0 -1
  194. package/src/metrics/activeNodes.js +0 -2
  195. package/src/metrics/activeRuns.js +0 -2
  196. package/src/metrics/agentActionsTotal.js +0 -2
  197. package/src/metrics/agentDurationMs.js +0 -3
  198. package/src/metrics/agentErrorsTotal.js +0 -2
  199. package/src/metrics/agentEventsTotal.js +0 -2
  200. package/src/metrics/agentInvocationsTotal.js +0 -2
  201. package/src/metrics/agentRetriesTotal.js +0 -2
  202. package/src/metrics/agentSessionsTotal.js +0 -2
  203. package/src/metrics/agentTokensTotal.js +0 -2
  204. package/src/metrics/alertDeliveriesAttempted.js +0 -2
  205. package/src/metrics/alertDeliveriesSuppressed.js +0 -2
  206. package/src/metrics/alertsAcknowledgedTotal.js +0 -2
  207. package/src/metrics/alertsActive.js +0 -2
  208. package/src/metrics/alertsEscalatedTotal.js +0 -2
  209. package/src/metrics/alertsFiredTotal.js +0 -2
  210. package/src/metrics/alertsReopenedTotal.js +0 -2
  211. package/src/metrics/alertsResolvedTotal.js +0 -2
  212. package/src/metrics/alertsSilencedTotal.js +0 -2
  213. package/src/metrics/approvalPending.js +0 -2
  214. package/src/metrics/approvalWaitDuration.js +0 -5
  215. package/src/metrics/approvalsDenied.js +0 -2
  216. package/src/metrics/approvalsGranted.js +0 -2
  217. package/src/metrics/approvalsRequested.js +0 -2
  218. package/src/metrics/attemptDuration.js +0 -3
  219. package/src/metrics/attentionBacklog.js +0 -2
  220. package/src/metrics/cacheHits.js +0 -2
  221. package/src/metrics/cacheMisses.js +0 -2
  222. package/src/metrics/dbQueryDuration.js +0 -3
  223. package/src/metrics/dbRetries.js +0 -2
  224. package/src/metrics/dbTransactionDuration.js +0 -3
  225. package/src/metrics/dbTransactionRetries.js +0 -2
  226. package/src/metrics/dbTransactionRollbacks.js +0 -2
  227. package/src/metrics/devtoolsActiveSubscribers.js +0 -2
  228. package/src/metrics/devtoolsBackpressureDisconnectTotal.js +0 -2
  229. package/src/metrics/devtoolsDeltaBuildMs.js +0 -3
  230. package/src/metrics/devtoolsEventBytes.js +0 -3
  231. package/src/metrics/devtoolsEventTotal.js +0 -2
  232. package/src/metrics/devtoolsSnapshotBuildMs.js +0 -5
  233. package/src/metrics/devtoolsSubscribeTotal.js +0 -2
  234. package/src/metrics/errorsTotal.js +0 -2
  235. package/src/metrics/eventsEmittedTotal.js +0 -2
  236. package/src/metrics/externalWaitAsyncPending.js +0 -2
  237. package/src/metrics/gatewayApprovalDecisionsTotal.js +0 -2
  238. package/src/metrics/gatewayAuthEventsTotal.js +0 -2
  239. package/src/metrics/gatewayConnectionsActive.js +0 -2
  240. package/src/metrics/gatewayConnectionsClosedTotal.js +0 -2
  241. package/src/metrics/gatewayConnectionsTotal.js +0 -2
  242. package/src/metrics/gatewayCronTriggersTotal.js +0 -2
  243. package/src/metrics/gatewayErrorsTotal.js +0 -2
  244. package/src/metrics/gatewayHeartbeatTicksTotal.js +0 -2
  245. package/src/metrics/gatewayMessagesReceivedTotal.js +0 -2
  246. package/src/metrics/gatewayMessagesSentTotal.js +0 -2
  247. package/src/metrics/gatewayRpcCallsTotal.js +0 -2
  248. package/src/metrics/gatewayRpcDuration.js +0 -3
  249. package/src/metrics/gatewayRunEventBackpressureDisconnectTotal.js +0 -4
  250. package/src/metrics/gatewayRunsCompletedTotal.js +0 -2
  251. package/src/metrics/gatewayRunsStartedTotal.js +0 -2
  252. package/src/metrics/gatewaySignalsTotal.js +0 -2
  253. package/src/metrics/gatewayWebhooksReceivedTotal.js +0 -2
  254. package/src/metrics/gatewayWebhooksRejectedTotal.js +0 -2
  255. package/src/metrics/gatewayWebhooksVerifiedTotal.js +0 -2
  256. package/src/metrics/heartbeatDataSizeBytes.js +0 -5
  257. package/src/metrics/heartbeatIntervalMs.js +0 -3
  258. package/src/metrics/hotReloadDuration.js +0 -3
  259. package/src/metrics/hotReloadFailures.js +0 -2
  260. package/src/metrics/hotReloads.js +0 -2
  261. package/src/metrics/httpRequestDuration.js +0 -3
  262. package/src/metrics/httpRequests.js +0 -2
  263. package/src/metrics/index.d.ts +0 -1185
  264. package/src/metrics/index.js +0 -168
  265. package/src/metrics/memoryFactReads.js +0 -3
  266. package/src/metrics/memoryFactWrites.js +0 -3
  267. package/src/metrics/memoryMessageSaves.js +0 -3
  268. package/src/metrics/memoryRecallDuration.js +0 -11
  269. package/src/metrics/memoryRecallQueries.js +0 -3
  270. package/src/metrics/metricsServiceAdapter.js +0 -181
  271. package/src/metrics/nodeDuration.js +0 -3
  272. package/src/metrics/nodeRetriesTotal.js +0 -2
  273. package/src/metrics/nodesFailed.js +0 -2
  274. package/src/metrics/nodesFinished.js +0 -2
  275. package/src/metrics/nodesStarted.js +0 -2
  276. package/src/metrics/openApiToolCallErrorsTotal.js +0 -3
  277. package/src/metrics/openApiToolCallsTotal.js +0 -3
  278. package/src/metrics/openApiToolDuration.js +0 -9
  279. package/src/metrics/processHeapUsedBytes.js +0 -2
  280. package/src/metrics/processMemoryRssBytes.js +0 -2
  281. package/src/metrics/processUptimeSeconds.js +0 -2
  282. package/src/metrics/promptSizeBytes.js +0 -3
  283. package/src/metrics/replaysStarted.js +0 -3
  284. package/src/metrics/responseSizeBytes.js +0 -3
  285. package/src/metrics/rewindDurationMs.js +0 -3
  286. package/src/metrics/rewindFramesDeleted.js +0 -3
  287. package/src/metrics/rewindRollbackTotal.js +0 -2
  288. package/src/metrics/rewindSandboxesReverted.js +0 -3
  289. package/src/metrics/rewindTotal.js +0 -2
  290. package/src/metrics/runDuration.js +0 -3
  291. package/src/metrics/runForksCreated.js +0 -3
  292. package/src/metrics/runsAncestryDepth.js +0 -3
  293. package/src/metrics/runsCancelledTotal.js +0 -2
  294. package/src/metrics/runsCarriedStateBytes.js +0 -5
  295. package/src/metrics/runsContinuedTotal.js +0 -2
  296. package/src/metrics/runsFailedTotal.js +0 -2
  297. package/src/metrics/runsFinishedTotal.js +0 -2
  298. package/src/metrics/runsResumedTotal.js +0 -2
  299. package/src/metrics/runsTotal.js +0 -2
  300. package/src/metrics/sandboxActive.js +0 -2
  301. package/src/metrics/sandboxBundleSizeBytes.js +0 -5
  302. package/src/metrics/sandboxCompletedTotal.js +0 -2
  303. package/src/metrics/sandboxCreatedTotal.js +0 -2
  304. package/src/metrics/sandboxDurationMs.js +0 -3
  305. package/src/metrics/sandboxPatchCount.js +0 -3
  306. package/src/metrics/sandboxTransportDurationMs.js +0 -5
  307. package/src/metrics/schedulerConcurrencyUtilization.js +0 -2
  308. package/src/metrics/schedulerQueueDepth.js +0 -2
  309. package/src/metrics/schedulerWaitDuration.js +0 -5
  310. package/src/metrics/scorerDuration.js +0 -9
  311. package/src/metrics/scorerEventsFailed.js +0 -2
  312. package/src/metrics/scorerEventsFinished.js +0 -2
  313. package/src/metrics/scorerEventsStarted.js +0 -2
  314. package/src/metrics/scorersFailed.js +0 -3
  315. package/src/metrics/scorersFinished.js +0 -3
  316. package/src/metrics/scorersStarted.js +0 -3
  317. package/src/metrics/smithersMetricCatalog.js +0 -893
  318. package/src/metrics/smithersMetricCatalogByKey.js +0 -2
  319. package/src/metrics/smithersMetricCatalogByName.js +0 -2
  320. package/src/metrics/smithersMetricCatalogByPrometheusName.js +0 -4
  321. package/src/metrics/snapshotDuration.js +0 -9
  322. package/src/metrics/snapshotsCaptured.js +0 -3
  323. package/src/metrics/supervisorPollDuration.js +0 -5
  324. package/src/metrics/supervisorPollsTotal.js +0 -2
  325. package/src/metrics/supervisorResumeLag.js +0 -5
  326. package/src/metrics/supervisorResumedTotal.js +0 -2
  327. package/src/metrics/supervisorSkippedTotal.js +0 -2
  328. package/src/metrics/supervisorStaleDetected.js +0 -2
  329. package/src/metrics/taskHeartbeatTimeoutTotal.js +0 -2
  330. package/src/metrics/taskHeartbeatsTotal.js +0 -2
  331. package/src/metrics/timerDelayDuration.js +0 -3
  332. package/src/metrics/timersCancelled.js +0 -2
  333. package/src/metrics/timersCreated.js +0 -2
  334. package/src/metrics/timersFired.js +0 -2
  335. package/src/metrics/timersPending.js +0 -2
  336. package/src/metrics/toPrometheusMetricName.js +0 -8
  337. package/src/metrics/tokensCacheReadTotal.js +0 -2
  338. package/src/metrics/tokensCacheWriteTotal.js +0 -2
  339. package/src/metrics/tokensContextWindowBucketTotal.js +0 -2
  340. package/src/metrics/tokensContextWindowPerCall.js +0 -5
  341. package/src/metrics/tokensInputPerCall.js +0 -3
  342. package/src/metrics/tokensInputTotal.js +0 -2
  343. package/src/metrics/tokensOutputPerCall.js +0 -3
  344. package/src/metrics/tokensOutputTotal.js +0 -2
  345. package/src/metrics/tokensReasoningTotal.js +0 -2
  346. package/src/metrics/toolCallErrorsTotal.js +0 -2
  347. package/src/metrics/toolCallsTotal.js +0 -2
  348. package/src/metrics/toolDuration.js +0 -3
  349. package/src/metrics/toolOutputTruncatedTotal.js +0 -2
  350. package/src/metrics/trackEvent.js +0 -608
  351. package/src/metrics/updateAsyncExternalWaitPending.js +0 -18
  352. package/src/metrics/updateProcessMetrics.js +0 -20
  353. package/src/metrics/vcsDuration.js +0 -3
  354. package/src/normalizeStructuredEvent.js +0 -15
  355. package/src/prometheusContentType.js +0 -1
  356. package/src/renderPrometheusMetrics.js +0 -212
  357. package/src/resolveAgentTraceCapabilities.js +0 -59
  358. package/src/resolveSmithersObservabilityOptions.js +0 -109
  359. package/src/smithersMetrics.js +0 -2
  360. package/src/smithersSpanNames.js +0 -6
  361. package/src/unsupportedKindsForCapabilities.js +0 -32
  362. package/src/withSmithersSpan.js +0 -17
  363. package/tempo/tempo.yml +0 -17
@@ -1,17 +0,0 @@
1
- import type { Effect } from "effect";
2
- import type { CorrelationPatch } from "./_coreCorrelation/CorrelationPatch.ts";
3
-
4
- export type SmithersSpanAttributesInput = Readonly<Record<string, unknown>>;
5
-
6
- export type TracingServiceShape = {
7
- readonly withSpan: <A, E, R>(
8
- name: string,
9
- effect: Effect.Effect<A, E, R>,
10
- attributes?: Record<string, unknown>,
11
- ) => Effect.Effect<A, E, R>;
12
- readonly annotate: (attributes: Record<string, unknown>) => Effect.Effect<void>;
13
- readonly withCorrelation: <A, E, R>(
14
- context: CorrelationPatch,
15
- effect: Effect.Effect<A, E, R>,
16
- ) => Effect.Effect<A, E, R>;
17
- };
@@ -1,102 +0,0 @@
1
- /**
2
- * @typedef {"INFO" | "WARN" | "ERROR"} OtelLogSeverity
3
- *
4
- * @typedef {{
5
- * body: string;
6
- * attributes: Record<string, unknown>;
7
- * severity: OtelLogSeverity;
8
- * }} OtelLogRecord
9
- *
10
- * @typedef {import('./agentTrace.ts').CanonicalAgentTraceEvent} CanonicalAgentTraceEvent
11
- */
12
-
13
- /**
14
- * @param {Record<string, unknown>} base
15
- * @param {Record<string, string | number | boolean>} annotations
16
- * @returns {Record<string, unknown>}
17
- */
18
- export function buildOtelAttributes(base, annotations) {
19
- /** @type {Record<string, unknown>} */
20
- const attributes = {};
21
- for (const [key, value] of Object.entries(base)) {
22
- if (value !== undefined) attributes[key] = value;
23
- }
24
- for (const [key, value] of Object.entries(annotations)) {
25
- attributes[key.startsWith("custom.") ? key : `custom.${key}`] = value;
26
- }
27
- return attributes;
28
- }
29
-
30
- /**
31
- * @param {{
32
- * category: "agent-trace" | "agent-session";
33
- * payload: unknown;
34
- * raw: unknown;
35
- * redaction: { applied: boolean; ruleIds: string[] };
36
- * annotations: Record<string, string | number | boolean>;
37
- * }} body
38
- * @param {Record<string, unknown>} attributes
39
- * @param {OtelLogSeverity} severity
40
- * @returns {OtelLogRecord}
41
- */
42
- export function buildOtelLogRecord(body, attributes, severity) {
43
- return {
44
- body: JSON.stringify({
45
- category: body.category,
46
- payload: body.payload,
47
- raw: body.raw,
48
- redaction: body.redaction,
49
- annotations: body.annotations,
50
- }),
51
- attributes,
52
- severity,
53
- };
54
- }
55
-
56
- /**
57
- * @param {CanonicalAgentTraceEvent} event
58
- * @returns {OtelLogSeverity}
59
- */
60
- export function inferCanonicalSeverity(event) {
61
- if (event.event.kind === "capture.error") {
62
- // Truncated output is a non-fatal capture issue, not an error
63
- if (event.payload?.reason === "truncated-json-stream") {
64
- return "WARN";
65
- }
66
- return "ERROR";
67
- }
68
- if (event.event.kind === "capture.warning" || event.event.kind === "stderr") {
69
- return "WARN";
70
- }
71
- return "INFO";
72
- }
73
-
74
- /**
75
- * @param {unknown} raw
76
- * @returns {OtelLogSeverity}
77
- */
78
- export function inferSessionSeverity(raw) {
79
- const row = /** @type {any} */ (raw);
80
- const rowType = String(row?.type ?? "").toLowerCase();
81
- if (
82
- row?.is_error === true ||
83
- row?.isError === true ||
84
- row?.error ||
85
- row?.errorMessage ||
86
- row?.message?.stopReason === "error" ||
87
- row?.message?.errorMessage ||
88
- rowType.includes("error")
89
- ) {
90
- return "ERROR";
91
- }
92
- if (rowType.includes("warning")) return "WARN";
93
- return "INFO";
94
- }
95
-
96
- /**
97
- * @param {CanonicalAgentTraceEvent} event
98
- * @returns {boolean}
99
- */
100
- export function shouldExportTraceEventToOtel(event) {
101
- return event.event.kind !== "artifact.created";
102
- }
@@ -1,164 +0,0 @@
1
- import { readFile, readdir, stat } from "node:fs/promises";
2
- import { homedir } from "node:os";
3
- import { basename, join } from "node:path";
4
-
5
- /**
6
- * @param {string} dir
7
- * @returns {Promise<string[]>}
8
- */
9
- async function listJsonlFiles(dir) {
10
- try {
11
- const entries = await readdir(dir, { withFileTypes: true });
12
- const nested = await Promise.all(
13
- entries.map(async (entry) => {
14
- const path = join(dir, entry.name);
15
- if (entry.isDirectory()) return listJsonlFiles(path);
16
- return entry.isFile() && path.endsWith(".jsonl") ? [path] : [];
17
- }),
18
- );
19
- return nested.flat();
20
- } catch {
21
- return [];
22
- }
23
- }
24
-
25
- /**
26
- * @param {any} agent
27
- * @returns {string[]}
28
- */
29
- function buildCodexSessionRoots(agent) {
30
- const custom = agent?.opts?.sessionDir ?? agent?.opts?.codexSessionDir;
31
- if (typeof custom === "string" && custom) return [custom];
32
- if (String(agent?.constructor?.name ?? "") !== "CodexAgent") return [];
33
- // The Codex CLI keeps all state (including sessions) under CODEX_HOME
34
- // when set; ~/.codex is only its default.
35
- const codexHome = process.env.CODEX_HOME?.trim();
36
- return [codexHome ? join(codexHome, "sessions") : join(homedir(), ".codex", "sessions")];
37
- }
38
-
39
- /**
40
- * @param {any} agent
41
- * @returns {string[]}
42
- */
43
- function buildClaudeSessionRoots(agent) {
44
- const custom = agent?.opts?.sessionDir ?? agent?.opts?.claudeProjectsDir ?? agent?.opts?.projectsDir;
45
- if (typeof custom === "string" && custom) return [custom];
46
- if (String(agent?.constructor?.name ?? "") !== "ClaudeCodeAgent") return [];
47
- return [join(homedir(), ".claude", "projects")];
48
- }
49
-
50
- /**
51
- * @param {any} agent
52
- * @returns {string[]}
53
- */
54
- function buildPiSessionRoots(agent) {
55
- if (typeof agent?.opts?.session === "string" && agent.opts.session) {
56
- return [agent.opts.session];
57
- }
58
- const custom = agent?.opts?.sessionDir;
59
- if (typeof custom === "string" && custom) return [custom];
60
- if (String(agent?.constructor?.name ?? "") !== "PiAgent") return [];
61
- return [join(homedir(), ".pi", "agent", "sessions")];
62
- }
63
-
64
- /**
65
- * @param {string} cwd
66
- * @returns {string}
67
- */
68
- function sanitizeClaudeProjectPath(cwd) {
69
- return cwd.replace(/[\\/]/g, "-");
70
- }
71
-
72
- /**
73
- * @param {unknown} sessionCwd
74
- * @param {string} cwd
75
- * @returns {boolean}
76
- */
77
- function isCorrelatedSessionCwd(sessionCwd, cwd) {
78
- if (typeof sessionCwd !== "string" || !sessionCwd) return false;
79
- return sessionCwd === cwd || sessionCwd.startsWith(`${cwd}/`) || cwd.startsWith(`${sessionCwd}/`);
80
- }
81
-
82
- /**
83
- * @param {any} agent
84
- * @param {string} [sessionId]
85
- * @returns {Promise<string | null>}
86
- */
87
- export async function resolvePiSessionFile(agent, sessionId) {
88
- if (typeof agent?.opts?.session === "string" && agent.opts.session) {
89
- return agent.opts.session;
90
- }
91
- if (!sessionId) return null;
92
- for (const root of buildPiSessionRoots(agent)) {
93
- const files = await listJsonlFiles(root);
94
- const match = files.find((file) => file.includes(sessionId));
95
- if (match) return match;
96
- }
97
- return null;
98
- }
99
-
100
- /**
101
- * @param {any} agent
102
- * @param {string} cwd
103
- * @param {string} [sessionId]
104
- * @returns {Promise<string | null>}
105
- */
106
- export async function resolveClaudeSessionFile(agent, cwd, sessionId) {
107
- if (!sessionId) return null;
108
- for (const root of buildClaudeSessionRoots(agent)) {
109
- const direct = join(root, sanitizeClaudeProjectPath(cwd), `${sessionId}.jsonl`);
110
- try {
111
- const info = await stat(direct);
112
- if (info.isFile()) return direct;
113
- } catch {}
114
- const files = await listJsonlFiles(root);
115
- const match = files.find((file) => basename(file) === `${sessionId}.jsonl`);
116
- if (match) return match;
117
- }
118
- return null;
119
- }
120
-
121
- /**
122
- * @param {any} agent
123
- * @param {string} cwd
124
- * @param {number} startedAtMs
125
- * @returns {Promise<string | null>}
126
- */
127
- export async function resolveCodexSessionFile(agent, cwd, startedAtMs) {
128
- const dayFolders = new Set();
129
- for (const offset of [-1, 0, 1]) {
130
- const day = new Date(startedAtMs + offset * 24 * 60 * 60 * 1000);
131
- dayFolders.add(
132
- join(
133
- String(day.getUTCFullYear()),
134
- String(day.getUTCMonth() + 1).padStart(2, "0"),
135
- String(day.getUTCDate()).padStart(2, "0"),
136
- ),
137
- );
138
- dayFolders.add(
139
- join(
140
- String(day.getFullYear()),
141
- String(day.getMonth() + 1).padStart(2, "0"),
142
- String(day.getDate()).padStart(2, "0"),
143
- ),
144
- );
145
- }
146
- const dayRoots = buildCodexSessionRoots(agent).flatMap((root) => [...dayFolders].map((folder) => join(root, folder)));
147
- const candidates = (await Promise.all(dayRoots.map((root) => listJsonlFiles(root)))).flat();
148
- /** @type {{ file: string; delta: number } | null} */
149
- let best = null;
150
- for (const file of candidates) {
151
- try {
152
- const firstLine = (await readFile(file, "utf8")).split(/\r?\n/, 1)[0];
153
- if (!firstLine) continue;
154
- const parsed = JSON.parse(firstLine);
155
- if (parsed?.type !== "session_meta") continue;
156
- const sessionCwd = parsed?.payload?.cwd;
157
- const sessionTs = Date.parse(String(parsed?.payload?.timestamp ?? parsed?.timestamp ?? ""));
158
- if (!isCorrelatedSessionCwd(sessionCwd, cwd) || !Number.isFinite(sessionTs)) continue;
159
- const delta = Math.abs(sessionTs - startedAtMs);
160
- if (!best || delta < best.delta) best = { file, delta };
161
- } catch {}
162
- }
163
- return best?.file ?? null;
164
- }
@@ -1,19 +0,0 @@
1
- export const smithersSpanAttributeAliases = {
2
- runId: "smithers.run_id",
3
- run_id: "smithers.run_id",
4
- workflowName: "smithers.workflow_name",
5
- workflow_name: "smithers.workflow_name",
6
- nodeId: "smithers.node_id",
7
- node_id: "smithers.node_id",
8
- iteration: "smithers.iteration",
9
- attempt: "smithers.attempt",
10
- nodeLabel: "smithers.node_label",
11
- node_label: "smithers.node_label",
12
- toolName: "smithers.tool_name",
13
- tool_name: "smithers.tool_name",
14
- agent: "smithers.agent",
15
- model: "smithers.model",
16
- status: "smithers.status",
17
- waitReason: "smithers.wait_reason",
18
- wait_reason: "smithers.wait_reason",
19
- };
@@ -1,3 +0,0 @@
1
- import { AsyncLocalStorage } from "node:async_hooks";
2
- /** @type {AsyncLocalStorage<import("effect/Tracer").AnySpan>} */
3
- export const smithersTraceSpanStorage = new AsyncLocalStorage();