39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
/**
|
|
* Shared analytics configuration
|
|
*
|
|
* Common logic for determining when analytics should be disabled
|
|
* across all analytics systems (Datadog, 1P)
|
|
*/
|
|
|
|
import { isEnvTruthy } from '../../utils/envUtils.js'
|
|
import { isTelemetryDisabled } from '../../utils/privacyLevel.js'
|
|
|
|
/**
|
|
* Check if analytics operations should be disabled
|
|
*
|
|
* Analytics is disabled in the following cases:
|
|
* - Test environment (NODE_ENV === 'test')
|
|
* - Third-party cloud providers (Bedrock/Vertex)
|
|
* - Privacy level is no-telemetry or essential-traffic
|
|
*/
|
|
export function isAnalyticsDisabled(): boolean {
|
|
return (
|
|
process.env.NODE_ENV === 'test' ||
|
|
isEnvTruthy(process.env.CLAUDE_CODE_USE_BEDROCK) ||
|
|
isEnvTruthy(process.env.CLAUDE_CODE_USE_VERTEX) ||
|
|
isEnvTruthy(process.env.CLAUDE_CODE_USE_FOUNDRY) ||
|
|
isTelemetryDisabled()
|
|
)
|
|
}
|
|
|
|
/**
|
|
* Check if the feedback survey should be suppressed.
|
|
*
|
|
* Unlike isAnalyticsDisabled(), this does NOT block on 3P providers
|
|
* (Bedrock/Vertex/Foundry). The survey is a local UI prompt with no
|
|
* transcript data — enterprise customers capture responses via OTEL.
|
|
*/
|
|
export function isFeedbackSurveyDisabled(): boolean {
|
|
return process.env.NODE_ENV === 'test' || isTelemetryDisabled()
|
|
}
|