Package: @effect/ai
Module: Telemetry
Utility type for converting camelCase names to snake_case format.
This type recursively transforms string literal types from camelCase to snake_case, which is the standard format for OpenTelemetry attributes.
Example
import { Telemetry } from "@effect/ai"
type Formatted1 = Telemetry.FormatAttributeName<"modelName"> // "model_name"
type Formatted2 = Telemetry.FormatAttributeName<"maxTokens"> // "max_tokens"
type Formatted3 = Telemetry.FormatAttributeName<"temperature"> // "temperature"
Signature
type FormatAttributeName<T> = T extends string ?
T extends `${infer First}${infer Rest}`
? `${First extends Uppercase<First> ? "_" : ""}${Lowercase<First>}${FormatAttributeName<Rest>}`
: T :
never
Since v1.0.0