// AUTO-GENERATED FILE. DO NOT EDIT. // // Source: copilot/copilot/contracts/trace-attributes-v1.schema.json // Regenerate with: bun run trace-attributes-contract:generate // // Canonical custom mothership OTel span attribute keys. Call sites // should reference `TraceAttr.` (e.g. // `TraceAttr.ChatId`, `TraceAttr.ToolCallId`) rather than raw // string literals, so the Go-side contract is the single source of // truth and typos become compile errors. // // For OTel semantic-convention keys (`http.*`, `db.*`, // `gen_ai.*`, `net.*`, `messaging.*`, `service.*`, // `deployment.environment`), import from // `@opentelemetry/semantic-conventions` directly — those are owned // by the upstream OTel spec, not by this contract. export const TraceAttr = { AbortBackend: 'abort.backend', AbortFound: 'abort.found', AbortRedisResult: 'abort.redis_result', AnalyticsAborted: 'analytics.aborted', AnalyticsBilledCacheReadCost: 'analytics.billed_cache_read_cost', AnalyticsBilledCacheWriteCost: 'analytics.billed_cache_write_cost', AnalyticsBilledInputCost: 'analytics.billed_input_cost', AnalyticsBilledOutputCost: 'analytics.billed_output_cost', AnalyticsBilledTotalCost: 'analytics.billed_total_cost', AnalyticsCacheAttemptedRequests: 'analytics.cache_attempted_requests', AnalyticsCacheHitRequests: 'analytics.cache_hit_requests', AnalyticsCacheReadTokens: 'analytics.cache_read_tokens', AnalyticsCacheWriteRequests: 'analytics.cache_write_requests', AnalyticsCacheWriteTokens: 'analytics.cache_write_tokens', AnalyticsCustomerType: 'analytics.customer_type', AnalyticsDurationMs: 'analytics.duration_ms', AnalyticsError: 'analytics.error', AnalyticsInputTokens: 'analytics.input_tokens', AnalyticsModel: 'analytics.model', AnalyticsOutputTokens: 'analytics.output_tokens', AnalyticsProvider: 'analytics.provider', AnalyticsRawCacheReadCost: 'analytics.raw_cache_read_cost', AnalyticsRawCacheWriteCost: 'analytics.raw_cache_write_cost', AnalyticsRawInputCost: 'analytics.raw_input_cost', AnalyticsRawOutputCost: 'analytics.raw_output_cost', AnalyticsRawTotalCost: 'analytics.raw_total_cost', AnalyticsSource: 'analytics.source', AnalyticsToolCallCount: 'analytics.tool_call_count', ApiKeyId: 'api_key.id', ApiKeyName: 'api_key.name', AuthIncomingInternal: 'auth.incoming_internal', AuthKeyMatch: 'auth.key.match', AuthKeyPreview: 'auth.key.preview', AuthKeySource: 'auth.key.source', AuthKeyType: 'auth.key.type', AuthProvider: 'auth.provider', AuthValidateStatusCode: 'auth.validate.status_code', AwsRegion: 'aws.region', BillingAttempts: 'billing.attempts', BillingByok: 'billing.byok', BillingChangeType: 'billing.change_type', BillingCostInputUsd: 'billing.cost.input_usd', BillingCostOutputUsd: 'billing.cost.output_usd', BillingCostTotalUsd: 'billing.cost.total_usd', BillingCostUsd: 'billing.cost_usd', BillingCustomerType: 'billing.customer_type', BillingDuplicate: 'billing.duplicate', BillingDurationMs: 'billing.duration_ms', BillingHasIdempotencyKey: 'billing.has_idempotency_key', BillingIdempotencyKey: 'billing.idempotency_key', BillingInterval: 'billing.interval', BillingIsMcp: 'billing.is_mcp', BillingLlmCost: 'billing.llm_cost', BillingNewPlan: 'billing.new_plan', BillingOutcome: 'billing.outcome', BillingPlan: 'billing.plan', BillingPreviousPlan: 'billing.previous_plan', BillingServiceCharges: 'billing.service_charges', BillingSource: 'billing.source', BillingTotalCost: 'billing.total_cost', BillingUsageCurrent: 'billing.usage.current', BillingUsageExceeded: 'billing.usage.exceeded', BillingUsageLimit: 'billing.usage.limit', BlockId: 'block.id', BlockName: 'block.name', BlockType: 'block.type', ChatActiveMessagesBytes: 'chat.active_messages_bytes', ChatActiveMessagesCount: 'chat.active_messages_count', ChatAppendBytes: 'chat.append_bytes', ChatAppendCount: 'chat.append_count', ChatArtifactKeys: 'chat.artifact_keys', ChatArtifactsBytes: 'chat.artifacts_bytes', ChatAuthType: 'chat.auth_type', ChatContextCount: 'chat.context_count', ChatContextUsage: 'chat.context_usage', ChatContinuationMessagesBefore: 'chat.continuation.messages_before', ChatContinuationToolResultBytes: 'chat.continuation.tool_result_bytes', ChatContinuationToolResultFailure: 'chat.continuation.tool_result_failure', ChatContinuationToolResultSuccess: 'chat.continuation.tool_result_success', ChatContinuationToolResults: 'chat.continuation.tool_results', ChatContinuationTotalToolCalls: 'chat.continuation.total_tool_calls', ChatExistingMessageCount: 'chat.existing_message_count', ChatFileAttachmentCount: 'chat.file_attachment_count', ChatFinalizeOutcome: 'chat.finalize.outcome', ChatFound: 'chat.found', ChatHasAssistantMessage: 'chat.has_assistant_message', ChatHasOutputConfigs: 'chat.has_output_configs', ChatId: 'chat.id', ChatMessageBytes: 'chat.message_bytes', ChatMessagesAfter: 'chat.messages_after', ChatMessagesBytes: 'chat.messages_bytes', ChatMessagesCount: 'chat.messages_count', ChatPersistOutcome: 'chat.persist.outcome', ChatPreexisting: 'chat.preexisting', ChatRollbackIndex: 'chat.rollback_index', ChatTokensUsed: 'chat.tokens_used', ChatType: 'chat.type', ChatUserMessageId: 'chat.user_message_id', CheckpointAge: 'checkpoint.age', CheckpointAttemptsBytes: 'checkpoint.attempts_bytes', CheckpointBytesAssistantToolUse: 'checkpoint.bytes.assistant_tool_use', CheckpointBytesCurrentMessages: 'checkpoint.bytes.current_messages', CheckpointBytesImmediateResults: 'checkpoint.bytes.immediate_results', CheckpointBytesPendingToolCalls: 'checkpoint.bytes.pending_tool_calls', CheckpointBytesProviderRequest: 'checkpoint.bytes.provider_request', CheckpointBytesRequestContext: 'checkpoint.bytes.request_context', CheckpointBytesToolUsage: 'checkpoint.bytes.tool_usage', CheckpointCachedCredentialsBytes: 'checkpoint.cached_credentials_bytes', CheckpointClaimed: 'checkpoint.claimed', CheckpointClaimedNow: 'checkpoint.claimed_now', CheckpointCompletedBytes: 'checkpoint.completed_bytes', CheckpointCompletedSteps: 'checkpoint.completed_steps', CheckpointCurrentMessages: 'checkpoint.current_messages', CheckpointDecisionsBytes: 'checkpoint.decisions_bytes', CheckpointFound: 'checkpoint.found', CheckpointFrames: 'checkpoint.frames', CheckpointId: 'checkpoint.id', CheckpointImmediateResults: 'checkpoint.immediate_results', CheckpointMessageId: 'checkpoint.message_id', CheckpointPendingBytes: 'checkpoint.pending_bytes', CheckpointPendingSteps: 'checkpoint.pending_steps', CheckpointPendingToolCount: 'checkpoint.pending_tool_count', CheckpointRows: 'checkpoint.rows', CheckpointTaskId: 'checkpoint.task_id', CheckpointTotalToolCalls: 'checkpoint.total_tool_calls', CheckpointWorkflowSnapshotBytes: 'checkpoint.workflow_snapshot_bytes', ClientVersion: 'client.version', ConditionId: 'condition.id', ConditionName: 'condition.name', ConditionResult: 'condition.result', ContextReduceBudgetChars: 'context.reduce.budget_chars', ContextReduceCaller: 'context.reduce.caller', ContextReduceDidReduce: 'context.reduce.did_reduce', ContextReduceInputChars: 'context.reduce.input_chars', ContextReduceInputMessages: 'context.reduce.input_messages', ContextReduceOutcome: 'context.reduce.outcome', ContextReduceOutputChars: 'context.reduce.output_chars', ContextReduceOutputMessages: 'context.reduce.output_messages', ContextReduced: 'context.reduced', ContextSummarizeInputChars: 'context.summarize.input_chars', ContextSummarizeOutputChars: 'context.summarize.output_chars', ContextTransformCaller: 'context.transform.caller', ContextTransformCharsIn: 'context.transform.chars_in', ContextTransformCharsOut: 'context.transform.chars_out', ContextTransformDropCount: 'context.transform.drop_count', ContextTransformDrops: 'context.transform.drops', ContextTransformMessagesIn: 'context.transform.messages_in', ContextTransformMessagesOut: 'context.transform.messages_out', ContextTransformStage: 'context.transform.stage', CopilotAbortControllerFired: 'copilot.abort.controller_fired', CopilotAbortGoMarkerOk: 'copilot.abort.go_marker_ok', CopilotAbortLocalAborted: 'copilot.abort.local_aborted', CopilotAbortMarkerWritten: 'copilot.abort.marker_written', CopilotAbortOutcome: 'copilot.abort.outcome', CopilotAbortUnknownReason: 'copilot.abort.unknown_reason', CopilotAsyncToolClaimedBy: 'copilot.async_tool.claimed_by', CopilotAsyncToolHasError: 'copilot.async_tool.has_error', CopilotAsyncToolIdsCount: 'copilot.async_tool.ids_count', CopilotAsyncToolStatus: 'copilot.async_tool.status', CopilotAsyncToolWorkerId: 'copilot.async_tool.worker_id', CopilotBranchKind: 'copilot.branch.kind', CopilotChatIsNew: 'copilot.chat.is_new', CopilotCheckpointPendingToolCallId: 'copilot.checkpoint.pending_tool_call_id', CopilotCommandsCount: 'copilot.commands.count', CopilotConfirmOutcome: 'copilot.confirm.outcome', CopilotContextsCount: 'copilot.contexts.count', CopilotExecutionId: 'copilot.execution.id', CopilotFileAttachmentsCount: 'copilot.file_attachments.count', CopilotFinalizeOutcome: 'copilot.finalize.outcome', CopilotInterruptedPriorStream: 'copilot.interrupted_prior_stream', CopilotLeg: 'copilot.leg', CopilotMode: 'copilot.mode', CopilotOperation: 'copilot.operation', CopilotOutputFileBytes: 'copilot.output_file.bytes', CopilotOutputFileFormat: 'copilot.output_file.format', CopilotOutputFileId: 'copilot.output_file.id', CopilotOutputFileMimeType: 'copilot.output_file.mime_type', CopilotOutputFileMode: 'copilot.output_file.mode', CopilotOutputFileName: 'copilot.output_file.name', CopilotOutputFileOutcome: 'copilot.output_file.outcome', CopilotOutputFilePath: 'copilot.output_file.path', CopilotOutputFileSandboxPath: 'copilot.output_file.sandbox_path', CopilotPendingStreamWaitMs: 'copilot.pending_stream.wait_ms', CopilotPrefetch: 'copilot.prefetch', CopilotPublisherClientDisconnected: 'copilot.publisher.client_disconnected', CopilotPublisherSawComplete: 'copilot.publisher.saw_complete', CopilotRecoveryLatestSeq: 'copilot.recovery.latest_seq', CopilotRecoveryOldestSeq: 'copilot.recovery.oldest_seq', CopilotRecoveryOutcome: 'copilot.recovery.outcome', CopilotRecoveryRequestedAfterSeq: 'copilot.recovery.requested_after_seq', CopilotRequestCancelReason: 'copilot.request.cancel_reason', CopilotRequestOutcome: 'copilot.request.outcome', CopilotRequestWillRetryOnStreamError: 'copilot.request.will_retry_on_stream_error', CopilotResourceAttachmentsCount: 'copilot.resource_attachments.count', CopilotResourcesAborted: 'copilot.resources.aborted', CopilotResourcesOp: 'copilot.resources.op', CopilotResourcesRemovedCount: 'copilot.resources.removed_count', CopilotResourcesUpsertedCount: 'copilot.resources.upserted_count', CopilotResultContentBlocks: 'copilot.result.content_blocks', CopilotResultContentLength: 'copilot.result.content_length', CopilotResultToolCalls: 'copilot.result.tool_calls', CopilotResumeAfterCursor: 'copilot.resume.after_cursor', CopilotResumeDurationMs: 'copilot.resume.duration_ms', CopilotResumeEventCount: 'copilot.resume.event_count', CopilotResumeOutcome: 'copilot.resume.outcome', CopilotResumePollIterations: 'copilot.resume.poll_iterations', CopilotResumePreviewSessionCount: 'copilot.resume.preview_session_count', CopilotRoute: 'copilot.route', CopilotRunAgent: 'copilot.run.agent', CopilotRunHasCompletedAt: 'copilot.run.has_completed_at', CopilotRunHasError: 'copilot.run.has_error', CopilotRunModel: 'copilot.run.model', CopilotRunParentId: 'copilot.run.parent_id', CopilotRunProvider: 'copilot.run.provider', CopilotRunStatus: 'copilot.run.status', CopilotSseBytesReceived: 'copilot.sse.bytes_received', CopilotSseChunksReceived: 'copilot.sse.chunks_received', CopilotSseCloseReason: 'copilot.sse.close_reason', CopilotSseEventsComplete: 'copilot.sse.events.complete', CopilotSseEventsError: 'copilot.sse.events.error', CopilotSseEventsReceived: 'copilot.sse.events.received', CopilotSseEventsResource: 'copilot.sse.events.resource', CopilotSseEventsRun: 'copilot.sse.events.run', CopilotSseEventsSession: 'copilot.sse.events.session', CopilotSseEventsSpan: 'copilot.sse.events.span', CopilotSseEventsText: 'copilot.sse.events.text', CopilotSseEventsTool: 'copilot.sse.events.tool', CopilotSseExpectedTerminal: 'copilot.sse.expected_terminal', CopilotSseFirstEventMs: 'copilot.sse.first_event_ms', CopilotSseLongestDispatchMs: 'copilot.sse.longest_dispatch_ms', CopilotSseLongestInboundGapMs: 'copilot.sse.longest_inbound_gap_ms', CopilotSseTerminalEventMissing: 'copilot.sse.terminal_event_missing', CopilotSseTerminalEventSeen: 'copilot.sse.terminal_event_seen', CopilotSseTotalDispatchMs: 'copilot.sse.total_dispatch_ms', CopilotStopAppendedAssistant: 'copilot.stop.appended_assistant', CopilotStopBlocksCount: 'copilot.stop.blocks_count', CopilotStopContentLength: 'copilot.stop.content_length', CopilotStopOutcome: 'copilot.stop.outcome', CopilotStream: 'copilot.stream', CopilotSurface: 'copilot.surface', CopilotTableId: 'copilot.table.id', CopilotTableOutcome: 'copilot.table.outcome', CopilotTableRowCount: 'copilot.table.row_count', CopilotTableSourceContentBytes: 'copilot.table.source.content_bytes', CopilotTableSourceFormat: 'copilot.table.source.format', CopilotTableSourcePath: 'copilot.table.source.path', CopilotTraceSpanCount: 'copilot.trace.span_count', CopilotTransport: 'copilot.transport', CopilotUserMessagePreview: 'copilot.user.message_preview', CopilotValidateOutcome: 'copilot.validate.outcome', CopilotVfsDeltaOutcome: 'copilot.vfs.delta.outcome', CopilotVfsFileExtension: 'copilot.vfs.file.extension', CopilotVfsFileMediaType: 'copilot.vfs.file.media_type', CopilotVfsFileName: 'copilot.vfs.file.name', CopilotVfsFileSizeBytes: 'copilot.vfs.file.size_bytes', CopilotVfsHasAlpha: 'copilot.vfs.has_alpha', CopilotVfsInputBytes: 'copilot.vfs.input.bytes', CopilotVfsInputHeight: 'copilot.vfs.input.height', CopilotVfsInputMediaTypeClaimed: 'copilot.vfs.input.media_type_claimed', CopilotVfsInputMediaTypeDetected: 'copilot.vfs.input.media_type_detected', CopilotVfsInputWidth: 'copilot.vfs.input.width', CopilotVfsMaterializeFileCount: 'copilot.vfs.materialize.file_count', CopilotVfsMaterializePhaseMs: 'copilot.vfs.materialize.phase_ms', CopilotVfsMetadataFailed: 'copilot.vfs.metadata.failed', CopilotVfsOutcome: 'copilot.vfs.outcome', CopilotVfsOutputBytes: 'copilot.vfs.output.bytes', CopilotVfsOutputMediaType: 'copilot.vfs.output.media_type', CopilotVfsPhase: 'copilot.vfs.phase', CopilotVfsReadImageResized: 'copilot.vfs.read.image.resized', CopilotVfsReadOutcome: 'copilot.vfs.read.outcome', CopilotVfsReadOutputBytes: 'copilot.vfs.read.output.bytes', CopilotVfsReadOutputLines: 'copilot.vfs.read.output.lines', CopilotVfsReadOutputMediaType: 'copilot.vfs.read.output.media_type', CopilotVfsReadPath: 'copilot.vfs.read.path', CopilotVfsResizeAttempts: 'copilot.vfs.resize.attempts', CopilotVfsResizeChosenDimension: 'copilot.vfs.resize.chosen_dimension', CopilotVfsResizeChosenQuality: 'copilot.vfs.resize.chosen_quality', CopilotVfsResizeDimension: 'copilot.vfs.resize.dimension', CopilotVfsResizeFitsBudget: 'copilot.vfs.resize.fits_budget', CopilotVfsResizeOutputBytes: 'copilot.vfs.resize.output_bytes', CopilotVfsResizeQuality: 'copilot.vfs.resize.quality', CopilotVfsResized: 'copilot.vfs.resized', CopilotVfsSharpLoadFailed: 'copilot.vfs.sharp.load_failed', CostDefaultCost: 'cost.default_cost', CredentialSetId: 'credential_set.id', CredentialSetName: 'credential_set.name', DbOperation: 'db.operation', DbSqlTable: 'db.sql.table', DbSystem: 'db.system', DeploymentEnvironment: 'deployment.environment', DeploymentVersion: 'deployment.version', DocumentFileSize: 'document.file_size', DocumentMimeType: 'document.mime_type', DocumentsCount: 'documents.count', DocumentsUploadType: 'documents.upload_type', Error: 'error', ErrorCode: 'error.code', ErrorInternal: 'error.internal', ErrorMessage: 'error.message', ErrorType: 'error.type', EventName: 'event.name', EventTimestamp: 'event.timestamp', ExecutionBlocksExecuted: 'execution.blocks_executed', ExecutionDurationMs: 'execution.duration_ms', ExecutionErrorMessage: 'execution.error_message', ExecutionHasErrors: 'execution.has_errors', ExecutionStatus: 'execution.status', ExecutionTotalCost: 'execution.total_cost', ExecutionTrigger: 'execution.trigger', FunctionExecutionTimeMs: 'function.execution_time_ms', FunctionId: 'function.id', FunctionName: 'function.name', GenAiAgentId: 'gen_ai.agent.id', GenAiAgentName: 'gen_ai.agent.name', GenAiCacheOutcome: 'gen_ai.cache.outcome', GenAiCacheTokenType: 'gen_ai.cache.token.type', GenAiCostInput: 'gen_ai.cost.input', GenAiCostOutput: 'gen_ai.cost.output', GenAiCostTotal: 'gen_ai.cost.total', GenAiInputMessages: 'gen_ai.input.messages', GenAiOperationName: 'gen_ai.operation.name', GenAiOutputMessages: 'gen_ai.output.messages', GenAiProviderName: 'gen_ai.provider.name', GenAiRequestAssistantMessages: 'gen_ai.request.assistant_messages', GenAiRequestCacheableSystemBlocks: 'gen_ai.request.cacheable_system_blocks', GenAiRequestContentBlocks: 'gen_ai.request.content_blocks', GenAiRequestHasCacheControl: 'gen_ai.request.has_cache_control', GenAiRequestImageBlocks: 'gen_ai.request.image_blocks', GenAiRequestImageDataBytes: 'gen_ai.request.image_data_bytes', GenAiRequestMaxMessageBlocks: 'gen_ai.request.max_message_blocks', GenAiRequestMessagesCount: 'gen_ai.request.messages.count', GenAiRequestModel: 'gen_ai.request.model', GenAiRequestPromptCacheBreakpointCreated: 'gen_ai.request.prompt_cache.breakpoint.created', GenAiRequestPromptCacheBreakpointDynamicWriteSuppressReason: 'gen_ai.request.prompt_cache.breakpoint.dynamic_write_suppress_reason', GenAiRequestPromptCacheBreakpointDynamicWriteSuppressed: 'gen_ai.request.prompt_cache.breakpoint.dynamic_write_suppressed', GenAiRequestPromptCacheBreakpointEligible: 'gen_ai.request.prompt_cache.breakpoint.eligible', GenAiRequestPromptCacheBreakpointKind: 'gen_ai.request.prompt_cache.breakpoint.kind', GenAiRequestPromptCacheBreakpointMinimumTokens: 'gen_ai.request.prompt_cache.breakpoint.minimum_tokens', GenAiRequestPromptCacheBreakpointPrefixTokensEstimated: 'gen_ai.request.prompt_cache.breakpoint.prefix_tokens_estimated', GenAiRequestPromptCacheBreakpointPreviousBoundaryTokens: 'gen_ai.request.prompt_cache.breakpoint.previous_boundary_tokens', GenAiRequestPromptCacheBreakpointSection: 'gen_ai.request.prompt_cache.breakpoint.section', GenAiRequestPromptCacheBreakpointSkipReason: 'gen_ai.request.prompt_cache.breakpoint.skip_reason', GenAiRequestPromptCacheBreakpointTargetIndex: 'gen_ai.request.prompt_cache.breakpoint.target_index', GenAiRequestPromptCacheBreakpointTargetRole: 'gen_ai.request.prompt_cache.breakpoint.target_role', GenAiRequestPromptCacheBreakpointTargetType: 'gen_ai.request.prompt_cache.breakpoint.target_type', GenAiRequestPromptCacheBreakpointThresholdTokens: 'gen_ai.request.prompt_cache.breakpoint.threshold_tokens', GenAiRequestPromptCacheBreakpointTtl: 'gen_ai.request.prompt_cache.breakpoint.ttl', GenAiRequestPromptCacheBreakpointsCount: 'gen_ai.request.prompt_cache.breakpoints.count', GenAiRequestPromptCacheBreakpointsCreated: 'gen_ai.request.prompt_cache.breakpoints.created', GenAiRequestPromptCacheDynamicMinimumTokens: 'gen_ai.request.prompt_cache.dynamic.minimum_tokens', GenAiRequestPromptCacheDynamicPrefixTokensEstimated: 'gen_ai.request.prompt_cache.dynamic.prefix_tokens_estimated', GenAiRequestPromptCacheDynamicPreviousBoundaryTokens: 'gen_ai.request.prompt_cache.dynamic.previous_boundary_tokens', GenAiRequestPromptCacheDynamicSkipReason: 'gen_ai.request.prompt_cache.dynamic.skip_reason', GenAiRequestPromptCacheDynamicTargetType: 'gen_ai.request.prompt_cache.dynamic.target_type', GenAiRequestPromptCacheDynamicThresholdTokens: 'gen_ai.request.prompt_cache.dynamic.threshold_tokens', GenAiRequestPromptCacheDynamicTtl: 'gen_ai.request.prompt_cache.dynamic.ttl', GenAiRequestPromptCacheDynamicUserEligible: 'gen_ai.request.prompt_cache.dynamic_user_eligible', GenAiRequestPromptCacheDynamicUserSkipReason: 'gen_ai.request.prompt_cache.dynamic_user_skip_reason', GenAiRequestPromptCacheStaticTtl: 'gen_ai.request.prompt_cache.static.ttl', GenAiRequestPromptCacheStaticSystem: 'gen_ai.request.prompt_cache.static_system', GenAiRequestPromptCacheStaticTools: 'gen_ai.request.prompt_cache.static_tools', GenAiRequestRuntimeContextChars: 'gen_ai.request.runtime_context_chars', GenAiRequestRuntimeContextMessages: 'gen_ai.request.runtime_context_messages', GenAiRequestSystemBlocks: 'gen_ai.request.system_blocks', GenAiRequestSystemChars: 'gen_ai.request.system_chars', GenAiRequestTextBlocks: 'gen_ai.request.text_blocks', GenAiRequestToolResultBlocks: 'gen_ai.request.tool_result_blocks', GenAiRequestToolUseBlocks: 'gen_ai.request.tool_use_blocks', GenAiRequestToolsCount: 'gen_ai.request.tools.count', GenAiRequestUserMessages: 'gen_ai.request.user_messages', GenAiResponseFinishReasons: 'gen_ai.response.finish_reasons', GenAiResponseModel: 'gen_ai.response.model', GenAiStreamPhaseTextBytes: 'gen_ai.stream.phase.text.bytes', GenAiStreamPhaseTextChunks: 'gen_ai.stream.phase.text.chunks', GenAiStreamPhaseTextFirstMs: 'gen_ai.stream.phase.text.first_ms', GenAiStreamPhaseTextMs: 'gen_ai.stream.phase.text.ms', GenAiStreamPhaseThinkingBytes: 'gen_ai.stream.phase.thinking.bytes', GenAiStreamPhaseThinkingChunks: 'gen_ai.stream.phase.thinking.chunks', GenAiStreamPhaseThinkingFirstMs: 'gen_ai.stream.phase.thinking.first_ms', GenAiStreamPhaseThinkingMs: 'gen_ai.stream.phase.thinking.ms', GenAiStreamPhaseToolArgsBytes: 'gen_ai.stream.phase.tool_args.bytes', GenAiStreamPhaseToolArgsChunks: 'gen_ai.stream.phase.tool_args.chunks', GenAiStreamPhaseToolArgsFirstMs: 'gen_ai.stream.phase.tool_args.first_ms', GenAiStreamPhaseToolArgsMs: 'gen_ai.stream.phase.tool_args.ms', GenAiSystem: 'gen_ai.system', GenAiThinkingBlocksCaptured: 'gen_ai.thinking.blocks_captured', GenAiThinkingRedactedBlocks: 'gen_ai.thinking.redacted_blocks', GenAiTokenType: 'gen_ai.token.type', GenAiToolName: 'gen_ai.tool.name', GenAiUsageCacheCreationInputTokens: 'gen_ai.usage.cache_creation.input_tokens', GenAiUsageCacheCreationTokens: 'gen_ai.usage.cache_creation_tokens', GenAiUsageCacheReadInputTokens: 'gen_ai.usage.cache_read.input_tokens', GenAiUsageCacheReadTokens: 'gen_ai.usage.cache_read_tokens', GenAiUsageInputTokens: 'gen_ai.usage.input_tokens', GenAiUsageOutputTokens: 'gen_ai.usage.output_tokens', GenAiUsageThinkingTokens: 'gen_ai.usage.thinking_tokens', GenAiUsageTotalTokens: 'gen_ai.usage.total_tokens', GenAiWorkflowId: 'gen_ai.workflow.id', GenAiWorkflowName: 'gen_ai.workflow.name', HostedKeyEnvVar: 'hosted_key.env_var', HttpHost: 'http.host', HttpMethod: 'http.method', HttpPath: 'http.path', HttpRemoteAddr: 'http.remote_addr', HttpRequestContentLength: 'http.request.content_length', HttpResponseBodyBytes: 'http.response.body_bytes', HttpResponseContentLength: 'http.response.content_length', HttpResponseHeadersMs: 'http.response.headers_ms', HttpResponseTotalMs: 'http.response.total_ms', HttpRoute: 'http.route', HttpServerDurationMs: 'http.server.duration_ms', HttpStatusCode: 'http.status_code', HttpTarget: 'http.target', HttpUrl: 'http.url', HttpUserAgent: 'http.user_agent', InvitationRole: 'invitation.role', KnowledgeBaseId: 'knowledge_base.id', KnowledgeBaseName: 'knowledge_base.name', LlmBackend: 'llm.backend', LlmErrorStage: 'llm.error_stage', LlmProtocol: 'llm.protocol', LlmRequestBodyBytes: 'llm.request.body_bytes', LlmStreamBytes: 'llm.stream.bytes', LlmStreamChunks: 'llm.stream.chunks', LlmStreamFirstChunkBytes: 'llm.stream.first_chunk_bytes', LlmStreamFirstChunkMs: 'llm.stream.first_chunk_ms', LlmStreamOpenMs: 'llm.stream.open_ms', LlmStreamTotalMs: 'llm.stream.total_ms', LockAcquired: 'lock.acquired', LockBackend: 'lock.backend', LockTimedOut: 'lock.timed_out', LockTimeoutMs: 'lock.timeout_ms', LoopId: 'loop.id', LoopIterations: 'loop.iterations', LoopName: 'loop.name', McpExecutionStatus: 'mcp.execution_status', McpServerId: 'mcp.server_id', McpServerName: 'mcp.server_name', McpToolName: 'mcp.tool_name', McpTransport: 'mcp.transport', MemberRole: 'member.role', MemoryContentBytes: 'memory.content_bytes', MemoryFound: 'memory.found', MemoryPath: 'memory.path', MemoryRowCount: 'memory.row_count', MessageId: 'message.id', MessagesDeserializeMs: 'messages.deserialize_ms', MessagesSerializeOp: 'messages.serialize.op', MessagesSerializeSite: 'messages.serialize.site', MessagesSerializeMs: 'messages.serialize_ms', MessagingDestinationName: 'messaging.destination.name', MessagingSystem: 'messaging.system', ModelDurationMs: 'model.duration_ms', ModelId: 'model.id', ModelName: 'model.name', MothershipOrigin: 'mothership.origin', NetPeerName: 'net.peer.name', OauthProvider: 'oauth.provider', ParallelBranches: 'parallel.branches', ParallelId: 'parallel.id', ParallelName: 'parallel.name', PrefsToolCount: 'prefs.tool_count', ProcessingChunkSize: 'processing.chunk_size', ProcessingRecipe: 'processing.recipe', PromptCacheableBlocks: 'prompt.cacheable_blocks', PromptSet: 'prompt.set', PromptSystemBlocks: 'prompt.system_blocks', PromptSystemChars: 'prompt.system_chars', ProviderId: 'provider.id', RateLimitAttempt: 'rate_limit.attempt', RateLimitCount: 'rate_limit.count', RateLimitDelayMs: 'rate_limit.delay_ms', RateLimitLimit: 'rate_limit.limit', RateLimitMaxRetries: 'rate_limit.max_retries', RateLimitOutcome: 'rate_limit.outcome', RateLimitRetryAfterMs: 'rate_limit.retry_after_ms', RequestGoTraceId: 'request.go_trace_id', RequestId: 'request.id', RequiredVersion: 'required.version', ResumeRequestBodyBytes: 'resume.request.body_bytes', ResumeResultsCount: 'resume.results.count', ResumeResultsDataBytes: 'resume.results.data_bytes', ResumeResultsFailureCount: 'resume.results.failure_count', ResumeResultsSuccessCount: 'resume.results.success_count', RouterBackendName: 'router.backend_name', RouterConfigVersion: 'router.config_version', RouterId: 'router.id', RouterName: 'router.name', RouterRouteReason: 'router.route_reason', RouterSelectedBackend: 'router.selected_backend', RouterSelectedPath: 'router.selected_path', RunId: 'run.id', SearchResultsCount: 'search.results_count', ServerAddress: 'server.address', ServiceInstanceId: 'service.instance.id', ServiceName: 'service.name', ServiceNamespace: 'service.namespace', ServiceVersion: 'service.version', SettleCompleted: 'settle.completed', SettleTimeoutMs: 'settle.timeout_ms', SettleWaitMs: 'settle.wait_ms', SimOperation: 'sim.operation', SimRequestId: 'sim.request_id', SpanDurationMs: 'span.duration_ms', SpanStatus: 'span.status', SpanType: 'span.type', StreamId: 'stream.id', SubagentDepth: 'subagent.depth', SubagentId: 'subagent.id', SubagentNested: 'subagent.nested', SubagentOutcomeContentBytes: 'subagent.outcome.content_bytes', SubagentOutcomeError: 'subagent.outcome.error', SubagentOutcomeFirstChunkMs: 'subagent.outcome.first_chunk_ms', SubagentOutcomeLlmRounds: 'subagent.outcome.llm_rounds', SubagentOutcomeStructuredType: 'subagent.outcome.structured_type', SubagentOutcomeSuccess: 'subagent.outcome.success', SubagentOutcomeToolCallCount: 'subagent.outcome.tool_call_count', SubagentParentAgentId: 'subagent.parent_agent_id', SubagentToolCallId: 'subagent.tool_call_id', TaskAge: 'task.age', TaskDecisionCount: 'task.decision_count', TaskErrorCount: 'task.error_count', TaskFound: 'task.found', TaskId: 'task.id', TaskListLimit: 'task.list_limit', TaskRows: 'task.rows', TaskStatus: 'task.status', TaskStepCount: 'task.step_count', TelemetrySdkLanguage: 'telemetry.sdk.language', TelemetrySdkName: 'telemetry.sdk.name', TelemetrySdkVersion: 'telemetry.sdk.version', TemplateId: 'template.id', TemplateName: 'template.name', ThrottleReason: 'throttle.reason', ToolArgsBytes: 'tool.args.bytes', ToolArgsCount: 'tool.args.count', ToolArgsPreview: 'tool.args.preview', ToolAsyncWaiterPollCount: 'tool.async_waiter.poll_count', ToolAsyncWaiterPubsubDeliveries: 'tool.async_waiter.pubsub_deliveries', ToolAsyncWaiterResolution: 'tool.async_waiter.resolution', ToolCallId: 'tool.call_id', ToolClientCount: 'tool.client.count', ToolClientExecutable: 'tool.client_executable', ToolCompletionReceived: 'tool.completion.received', ToolConfirmationStatus: 'tool.confirmation.status', ToolDeferredCount: 'tool.deferred.count', ToolDurationMs: 'tool.duration_ms', ToolErrorKind: 'tool.error_kind', ToolExecutor: 'tool.executor', ToolExternalService: 'tool.external.service', ToolId: 'tool.id', ToolLoadedCount: 'tool.loaded.count', ToolName: 'tool.name', ToolOutcome: 'tool.outcome', ToolOutcomeMessage: 'tool.outcome.message', ToolParentSpan: 'tool.parent_span', ToolPayloadBytes: 'tool.payload.bytes', ToolResultArtifact: 'tool.result.artifact', ToolResultBytes: 'tool.result.bytes', ToolResultSuccess: 'tool.result.success', ToolScheduled: 'tool.scheduled', ToolStatus: 'tool.status', ToolStatusCode: 'tool.status_code', ToolStoreStatus: 'tool.store_status', ToolSync: 'tool.sync', ToolTimeoutMs: 'tool.timeout_ms', ToolVisibleCount: 'tool.visible.count', ToolVisibleNames: 'tool.visible.names', TraceAborted: 'trace.aborted', TraceBilledTotalCost: 'trace.billed_total_cost', TraceCacheAttemptedRequests: 'trace.cache_attempted_requests', TraceCacheHitRequests: 'trace.cache_hit_requests', TraceCacheReadTokens: 'trace.cache_read_tokens', TraceCacheWriteRequests: 'trace.cache_write_requests', TraceCacheWriteTokens: 'trace.cache_write_tokens', TraceDurationMs: 'trace.duration_ms', TraceError: 'trace.error', TraceGoId: 'trace.go_id', TraceInputTokens: 'trace.input_tokens', TraceModel: 'trace.model', TraceOutcome: 'trace.outcome', TraceOutputTokens: 'trace.output_tokens', TraceProvider: 'trace.provider', TraceRawTotalCost: 'trace.raw_total_cost', TraceSpanCount: 'trace.span_count', TraceToolCallCount: 'trace.tool_call_count', UserAuthMethod: 'user.auth_method', UserAuthProvider: 'user.auth_provider', UserEmail: 'user.email', UserId: 'user.id', WebhookId: 'webhook.id', WebhookProvider: 'webhook.provider', WebhookTriggerSuccess: 'webhook.trigger_success', WorkflowBlockTypes: 'workflow.block_types', WorkflowBlocksCount: 'workflow.blocks_count', WorkflowCreatedId: 'workflow.created_id', WorkflowDurationMs: 'workflow.duration_ms', WorkflowEdgesCount: 'workflow.edges_count', WorkflowHasFolder: 'workflow.has_folder', WorkflowHasWorkspace: 'workflow.has_workspace', WorkflowId: 'workflow.id', WorkflowLoopsCount: 'workflow.loops_count', WorkflowName: 'workflow.name', WorkflowNewId: 'workflow.new_id', WorkflowParallelsCount: 'workflow.parallels_count', WorkflowSourceId: 'workflow.source_id', WorkflowTrigger: 'workflow.trigger', WorkspaceId: 'workspace.id', WorkspaceName: 'workspace.name', } as const export type TraceAttrKey = keyof typeof TraceAttr export type TraceAttrValue = (typeof TraceAttr)[TraceAttrKey] /** Readonly sorted list of every canonical custom attribute key. */ export const TraceAttrValues: readonly TraceAttrValue[] = [ 'abort.backend', 'abort.found', 'abort.redis_result', 'analytics.aborted', 'analytics.billed_cache_read_cost', 'analytics.billed_cache_write_cost', 'analytics.billed_input_cost', 'analytics.billed_output_cost', 'analytics.billed_total_cost', 'analytics.cache_attempted_requests', 'analytics.cache_hit_requests', 'analytics.cache_read_tokens', 'analytics.cache_write_requests', 'analytics.cache_write_tokens', 'analytics.customer_type', 'analytics.duration_ms', 'analytics.error', 'analytics.input_tokens', 'analytics.model', 'analytics.output_tokens', 'analytics.provider', 'analytics.raw_cache_read_cost', 'analytics.raw_cache_write_cost', 'analytics.raw_input_cost', 'analytics.raw_output_cost', 'analytics.raw_total_cost', 'analytics.source', 'analytics.tool_call_count', 'api_key.id', 'api_key.name', 'auth.incoming_internal', 'auth.key.match', 'auth.key.preview', 'auth.key.source', 'auth.key.type', 'auth.provider', 'auth.validate.status_code', 'aws.region', 'billing.attempts', 'billing.byok', 'billing.change_type', 'billing.cost.input_usd', 'billing.cost.output_usd', 'billing.cost.total_usd', 'billing.cost_usd', 'billing.customer_type', 'billing.duplicate', 'billing.duration_ms', 'billing.has_idempotency_key', 'billing.idempotency_key', 'billing.interval', 'billing.is_mcp', 'billing.llm_cost', 'billing.new_plan', 'billing.outcome', 'billing.plan', 'billing.previous_plan', 'billing.service_charges', 'billing.source', 'billing.total_cost', 'billing.usage.current', 'billing.usage.exceeded', 'billing.usage.limit', 'block.id', 'block.name', 'block.type', 'chat.active_messages_bytes', 'chat.active_messages_count', 'chat.append_bytes', 'chat.append_count', 'chat.artifact_keys', 'chat.artifacts_bytes', 'chat.auth_type', 'chat.context_count', 'chat.context_usage', 'chat.continuation.messages_before', 'chat.continuation.tool_result_bytes', 'chat.continuation.tool_result_failure', 'chat.continuation.tool_result_success', 'chat.continuation.tool_results', 'chat.continuation.total_tool_calls', 'chat.existing_message_count', 'chat.file_attachment_count', 'chat.finalize.outcome', 'chat.found', 'chat.has_assistant_message', 'chat.has_output_configs', 'chat.id', 'chat.message_bytes', 'chat.messages_after', 'chat.messages_bytes', 'chat.messages_count', 'chat.persist.outcome', 'chat.preexisting', 'chat.rollback_index', 'chat.tokens_used', 'chat.type', 'chat.user_message_id', 'checkpoint.age', 'checkpoint.attempts_bytes', 'checkpoint.bytes.assistant_tool_use', 'checkpoint.bytes.current_messages', 'checkpoint.bytes.immediate_results', 'checkpoint.bytes.pending_tool_calls', 'checkpoint.bytes.provider_request', 'checkpoint.bytes.request_context', 'checkpoint.bytes.tool_usage', 'checkpoint.cached_credentials_bytes', 'checkpoint.claimed', 'checkpoint.claimed_now', 'checkpoint.completed_bytes', 'checkpoint.completed_steps', 'checkpoint.current_messages', 'checkpoint.decisions_bytes', 'checkpoint.found', 'checkpoint.frames', 'checkpoint.id', 'checkpoint.immediate_results', 'checkpoint.message_id', 'checkpoint.pending_bytes', 'checkpoint.pending_steps', 'checkpoint.pending_tool_count', 'checkpoint.rows', 'checkpoint.task_id', 'checkpoint.total_tool_calls', 'checkpoint.workflow_snapshot_bytes', 'client.version', 'condition.id', 'condition.name', 'condition.result', 'context.reduce.budget_chars', 'context.reduce.caller', 'context.reduce.did_reduce', 'context.reduce.input_chars', 'context.reduce.input_messages', 'context.reduce.outcome', 'context.reduce.output_chars', 'context.reduce.output_messages', 'context.reduced', 'context.summarize.input_chars', 'context.summarize.output_chars', 'context.transform.caller', 'context.transform.chars_in', 'context.transform.chars_out', 'context.transform.drop_count', 'context.transform.drops', 'context.transform.messages_in', 'context.transform.messages_out', 'context.transform.stage', 'copilot.abort.controller_fired', 'copilot.abort.go_marker_ok', 'copilot.abort.local_aborted', 'copilot.abort.marker_written', 'copilot.abort.outcome', 'copilot.abort.unknown_reason', 'copilot.async_tool.claimed_by', 'copilot.async_tool.has_error', 'copilot.async_tool.ids_count', 'copilot.async_tool.status', 'copilot.async_tool.worker_id', 'copilot.branch.kind', 'copilot.chat.is_new', 'copilot.checkpoint.pending_tool_call_id', 'copilot.commands.count', 'copilot.confirm.outcome', 'copilot.contexts.count', 'copilot.execution.id', 'copilot.file_attachments.count', 'copilot.finalize.outcome', 'copilot.interrupted_prior_stream', 'copilot.leg', 'copilot.mode', 'copilot.operation', 'copilot.output_file.bytes', 'copilot.output_file.format', 'copilot.output_file.id', 'copilot.output_file.mime_type', 'copilot.output_file.mode', 'copilot.output_file.name', 'copilot.output_file.outcome', 'copilot.output_file.path', 'copilot.output_file.sandbox_path', 'copilot.pending_stream.wait_ms', 'copilot.prefetch', 'copilot.publisher.client_disconnected', 'copilot.publisher.saw_complete', 'copilot.recovery.latest_seq', 'copilot.recovery.oldest_seq', 'copilot.recovery.outcome', 'copilot.recovery.requested_after_seq', 'copilot.request.cancel_reason', 'copilot.request.outcome', 'copilot.request.will_retry_on_stream_error', 'copilot.resource_attachments.count', 'copilot.resources.aborted', 'copilot.resources.op', 'copilot.resources.removed_count', 'copilot.resources.upserted_count', 'copilot.result.content_blocks', 'copilot.result.content_length', 'copilot.result.tool_calls', 'copilot.resume.after_cursor', 'copilot.resume.duration_ms', 'copilot.resume.event_count', 'copilot.resume.outcome', 'copilot.resume.poll_iterations', 'copilot.resume.preview_session_count', 'copilot.route', 'copilot.run.agent', 'copilot.run.has_completed_at', 'copilot.run.has_error', 'copilot.run.model', 'copilot.run.parent_id', 'copilot.run.provider', 'copilot.run.status', 'copilot.sse.bytes_received', 'copilot.sse.chunks_received', 'copilot.sse.close_reason', 'copilot.sse.events.complete', 'copilot.sse.events.error', 'copilot.sse.events.received', 'copilot.sse.events.resource', 'copilot.sse.events.run', 'copilot.sse.events.session', 'copilot.sse.events.span', 'copilot.sse.events.text', 'copilot.sse.events.tool', 'copilot.sse.expected_terminal', 'copilot.sse.first_event_ms', 'copilot.sse.longest_dispatch_ms', 'copilot.sse.longest_inbound_gap_ms', 'copilot.sse.terminal_event_missing', 'copilot.sse.terminal_event_seen', 'copilot.sse.total_dispatch_ms', 'copilot.stop.appended_assistant', 'copilot.stop.blocks_count', 'copilot.stop.content_length', 'copilot.stop.outcome', 'copilot.stream', 'copilot.surface', 'copilot.table.id', 'copilot.table.outcome', 'copilot.table.row_count', 'copilot.table.source.content_bytes', 'copilot.table.source.format', 'copilot.table.source.path', 'copilot.trace.span_count', 'copilot.transport', 'copilot.user.message_preview', 'copilot.validate.outcome', 'copilot.vfs.delta.outcome', 'copilot.vfs.file.extension', 'copilot.vfs.file.media_type', 'copilot.vfs.file.name', 'copilot.vfs.file.size_bytes', 'copilot.vfs.has_alpha', 'copilot.vfs.input.bytes', 'copilot.vfs.input.height', 'copilot.vfs.input.media_type_claimed', 'copilot.vfs.input.media_type_detected', 'copilot.vfs.input.width', 'copilot.vfs.materialize.file_count', 'copilot.vfs.materialize.phase_ms', 'copilot.vfs.metadata.failed', 'copilot.vfs.outcome', 'copilot.vfs.output.bytes', 'copilot.vfs.output.media_type', 'copilot.vfs.phase', 'copilot.vfs.read.image.resized', 'copilot.vfs.read.outcome', 'copilot.vfs.read.output.bytes', 'copilot.vfs.read.output.lines', 'copilot.vfs.read.output.media_type', 'copilot.vfs.read.path', 'copilot.vfs.resize.attempts', 'copilot.vfs.resize.chosen_dimension', 'copilot.vfs.resize.chosen_quality', 'copilot.vfs.resize.dimension', 'copilot.vfs.resize.fits_budget', 'copilot.vfs.resize.output_bytes', 'copilot.vfs.resize.quality', 'copilot.vfs.resized', 'copilot.vfs.sharp.load_failed', 'cost.default_cost', 'credential_set.id', 'credential_set.name', 'db.operation', 'db.sql.table', 'db.system', 'deployment.environment', 'deployment.version', 'document.file_size', 'document.mime_type', 'documents.count', 'documents.upload_type', 'error', 'error.code', 'error.internal', 'error.message', 'error.type', 'event.name', 'event.timestamp', 'execution.blocks_executed', 'execution.duration_ms', 'execution.error_message', 'execution.has_errors', 'execution.status', 'execution.total_cost', 'execution.trigger', 'function.execution_time_ms', 'function.id', 'function.name', 'gen_ai.agent.id', 'gen_ai.agent.name', 'gen_ai.cache.outcome', 'gen_ai.cache.token.type', 'gen_ai.cost.input', 'gen_ai.cost.output', 'gen_ai.cost.total', 'gen_ai.input.messages', 'gen_ai.operation.name', 'gen_ai.output.messages', 'gen_ai.provider.name', 'gen_ai.request.assistant_messages', 'gen_ai.request.cacheable_system_blocks', 'gen_ai.request.content_blocks', 'gen_ai.request.has_cache_control', 'gen_ai.request.image_blocks', 'gen_ai.request.image_data_bytes', 'gen_ai.request.max_message_blocks', 'gen_ai.request.messages.count', 'gen_ai.request.model', 'gen_ai.request.prompt_cache.breakpoint.created', 'gen_ai.request.prompt_cache.breakpoint.dynamic_write_suppress_reason', 'gen_ai.request.prompt_cache.breakpoint.dynamic_write_suppressed', 'gen_ai.request.prompt_cache.breakpoint.eligible', 'gen_ai.request.prompt_cache.breakpoint.kind', 'gen_ai.request.prompt_cache.breakpoint.minimum_tokens', 'gen_ai.request.prompt_cache.breakpoint.prefix_tokens_estimated', 'gen_ai.request.prompt_cache.breakpoint.previous_boundary_tokens', 'gen_ai.request.prompt_cache.breakpoint.section', 'gen_ai.request.prompt_cache.breakpoint.skip_reason', 'gen_ai.request.prompt_cache.breakpoint.target_index', 'gen_ai.request.prompt_cache.breakpoint.target_role', 'gen_ai.request.prompt_cache.breakpoint.target_type', 'gen_ai.request.prompt_cache.breakpoint.threshold_tokens', 'gen_ai.request.prompt_cache.breakpoint.ttl', 'gen_ai.request.prompt_cache.breakpoints.count', 'gen_ai.request.prompt_cache.breakpoints.created', 'gen_ai.request.prompt_cache.dynamic.minimum_tokens', 'gen_ai.request.prompt_cache.dynamic.prefix_tokens_estimated', 'gen_ai.request.prompt_cache.dynamic.previous_boundary_tokens', 'gen_ai.request.prompt_cache.dynamic.skip_reason', 'gen_ai.request.prompt_cache.dynamic.target_type', 'gen_ai.request.prompt_cache.dynamic.threshold_tokens', 'gen_ai.request.prompt_cache.dynamic.ttl', 'gen_ai.request.prompt_cache.dynamic_user_eligible', 'gen_ai.request.prompt_cache.dynamic_user_skip_reason', 'gen_ai.request.prompt_cache.static.ttl', 'gen_ai.request.prompt_cache.static_system', 'gen_ai.request.prompt_cache.static_tools', 'gen_ai.request.runtime_context_chars', 'gen_ai.request.runtime_context_messages', 'gen_ai.request.system_blocks', 'gen_ai.request.system_chars', 'gen_ai.request.text_blocks', 'gen_ai.request.tool_result_blocks', 'gen_ai.request.tool_use_blocks', 'gen_ai.request.tools.count', 'gen_ai.request.user_messages', 'gen_ai.response.finish_reasons', 'gen_ai.response.model', 'gen_ai.stream.phase.text.bytes', 'gen_ai.stream.phase.text.chunks', 'gen_ai.stream.phase.text.first_ms', 'gen_ai.stream.phase.text.ms', 'gen_ai.stream.phase.thinking.bytes', 'gen_ai.stream.phase.thinking.chunks', 'gen_ai.stream.phase.thinking.first_ms', 'gen_ai.stream.phase.thinking.ms', 'gen_ai.stream.phase.tool_args.bytes', 'gen_ai.stream.phase.tool_args.chunks', 'gen_ai.stream.phase.tool_args.first_ms', 'gen_ai.stream.phase.tool_args.ms', 'gen_ai.system', 'gen_ai.thinking.blocks_captured', 'gen_ai.thinking.redacted_blocks', 'gen_ai.token.type', 'gen_ai.tool.name', 'gen_ai.usage.cache_creation.input_tokens', 'gen_ai.usage.cache_creation_tokens', 'gen_ai.usage.cache_read.input_tokens', 'gen_ai.usage.cache_read_tokens', 'gen_ai.usage.input_tokens', 'gen_ai.usage.output_tokens', 'gen_ai.usage.thinking_tokens', 'gen_ai.usage.total_tokens', 'gen_ai.workflow.id', 'gen_ai.workflow.name', 'hosted_key.env_var', 'http.host', 'http.method', 'http.path', 'http.remote_addr', 'http.request.content_length', 'http.response.body_bytes', 'http.response.content_length', 'http.response.headers_ms', 'http.response.total_ms', 'http.route', 'http.server.duration_ms', 'http.status_code', 'http.target', 'http.url', 'http.user_agent', 'invitation.role', 'knowledge_base.id', 'knowledge_base.name', 'llm.backend', 'llm.error_stage', 'llm.protocol', 'llm.request.body_bytes', 'llm.stream.bytes', 'llm.stream.chunks', 'llm.stream.first_chunk_bytes', 'llm.stream.first_chunk_ms', 'llm.stream.open_ms', 'llm.stream.total_ms', 'lock.acquired', 'lock.backend', 'lock.timed_out', 'lock.timeout_ms', 'loop.id', 'loop.iterations', 'loop.name', 'mcp.execution_status', 'mcp.server_id', 'mcp.server_name', 'mcp.tool_name', 'mcp.transport', 'member.role', 'memory.content_bytes', 'memory.found', 'memory.path', 'memory.row_count', 'message.id', 'messages.deserialize_ms', 'messages.serialize.op', 'messages.serialize.site', 'messages.serialize_ms', 'messaging.destination.name', 'messaging.system', 'model.duration_ms', 'model.id', 'model.name', 'mothership.origin', 'net.peer.name', 'oauth.provider', 'parallel.branches', 'parallel.id', 'parallel.name', 'prefs.tool_count', 'processing.chunk_size', 'processing.recipe', 'prompt.cacheable_blocks', 'prompt.set', 'prompt.system_blocks', 'prompt.system_chars', 'provider.id', 'rate_limit.attempt', 'rate_limit.count', 'rate_limit.delay_ms', 'rate_limit.limit', 'rate_limit.max_retries', 'rate_limit.outcome', 'rate_limit.retry_after_ms', 'request.go_trace_id', 'request.id', 'required.version', 'resume.request.body_bytes', 'resume.results.count', 'resume.results.data_bytes', 'resume.results.failure_count', 'resume.results.success_count', 'router.backend_name', 'router.config_version', 'router.id', 'router.name', 'router.route_reason', 'router.selected_backend', 'router.selected_path', 'run.id', 'search.results_count', 'server.address', 'service.instance.id', 'service.name', 'service.namespace', 'service.version', 'settle.completed', 'settle.timeout_ms', 'settle.wait_ms', 'sim.operation', 'sim.request_id', 'span.duration_ms', 'span.status', 'span.type', 'stream.id', 'subagent.depth', 'subagent.id', 'subagent.nested', 'subagent.outcome.content_bytes', 'subagent.outcome.error', 'subagent.outcome.first_chunk_ms', 'subagent.outcome.llm_rounds', 'subagent.outcome.structured_type', 'subagent.outcome.success', 'subagent.outcome.tool_call_count', 'subagent.parent_agent_id', 'subagent.tool_call_id', 'task.age', 'task.decision_count', 'task.error_count', 'task.found', 'task.id', 'task.list_limit', 'task.rows', 'task.status', 'task.step_count', 'telemetry.sdk.language', 'telemetry.sdk.name', 'telemetry.sdk.version', 'template.id', 'template.name', 'throttle.reason', 'tool.args.bytes', 'tool.args.count', 'tool.args.preview', 'tool.async_waiter.poll_count', 'tool.async_waiter.pubsub_deliveries', 'tool.async_waiter.resolution', 'tool.call_id', 'tool.client.count', 'tool.client_executable', 'tool.completion.received', 'tool.confirmation.status', 'tool.deferred.count', 'tool.duration_ms', 'tool.error_kind', 'tool.executor', 'tool.external.service', 'tool.id', 'tool.loaded.count', 'tool.name', 'tool.outcome', 'tool.outcome.message', 'tool.parent_span', 'tool.payload.bytes', 'tool.result.artifact', 'tool.result.bytes', 'tool.result.success', 'tool.scheduled', 'tool.status', 'tool.status_code', 'tool.store_status', 'tool.sync', 'tool.timeout_ms', 'tool.visible.count', 'tool.visible.names', 'trace.aborted', 'trace.billed_total_cost', 'trace.cache_attempted_requests', 'trace.cache_hit_requests', 'trace.cache_read_tokens', 'trace.cache_write_requests', 'trace.cache_write_tokens', 'trace.duration_ms', 'trace.error', 'trace.go_id', 'trace.input_tokens', 'trace.model', 'trace.outcome', 'trace.output_tokens', 'trace.provider', 'trace.raw_total_cost', 'trace.span_count', 'trace.tool_call_count', 'user.auth_method', 'user.auth_provider', 'user.email', 'user.id', 'webhook.id', 'webhook.provider', 'webhook.trigger_success', 'workflow.block_types', 'workflow.blocks_count', 'workflow.created_id', 'workflow.duration_ms', 'workflow.edges_count', 'workflow.has_folder', 'workflow.has_workspace', 'workflow.id', 'workflow.loops_count', 'workflow.name', 'workflow.new_id', 'workflow.parallels_count', 'workflow.source_id', 'workflow.trigger', 'workspace.id', 'workspace.name', ] as const