feat(telemetry): greenfield dsh-sdk telemetry modules
Add @deepseek-ai/dsh-telemetry, a launcher-side (non-plugin) library for the ConsentResolver (parses cordis.yml consent + DO_NOT_TRACK/CI), buildTelemetryPayload (redacted cordis.yml + package.json full content, never .env), getOrCreateAnonymousId (random UUID in a per-machine global config file), and TelemetryReporter (fire-and-forget, never blocks or crashes the command). Endpoint is a fixed .invalid placeholder pending the real endpoint. Launcher dispatch wiring and the helper feature-catalog entry are intentionally out of scope. Registers the package in tsconfig references, the module graph, and the README model-experience audit map. Per-file 100% coverage.
This commit is contained in:
45
packages/sdk/telemetry/src/index.ts
Normal file
45
packages/sdk/telemetry/src/index.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
/**
|
||||
* Launcher-side telemetry for the dsh-sdk toolchain: secret redaction, consent
|
||||
* resolution, anonymous id, payload assembly, and a fire-and-forget reporter.
|
||||
*
|
||||
* This package is a plain library the launcher imports around each command — it
|
||||
* is NOT a Cordis plugin (several commands never boot Cordis). Wiring it into
|
||||
* the launcher command dispatch and the helper feature catalog lives outside
|
||||
* this package.
|
||||
*
|
||||
* @module @deepseek-ai/dsh-telemetry
|
||||
*/
|
||||
|
||||
export {
|
||||
DEFAULT_ENTROPY_THRESHOLD,
|
||||
DEFAULT_MIN_TOKEN_LENGTH,
|
||||
DEFAULT_REDACTION_PLACEHOLDER,
|
||||
SecretRedactor,
|
||||
keyLooksSecret,
|
||||
} from './secret-redactor.ts'
|
||||
export type { SecretRedactorOptions } from './secret-redactor.ts'
|
||||
export {
|
||||
ConsentResolver,
|
||||
DEFAULT_TELEMETRY_PLUGIN_NAME,
|
||||
} from './consent-resolver.ts'
|
||||
export type {
|
||||
ConsentDecision,
|
||||
ConsentReason,
|
||||
ConsentResolverOptions,
|
||||
} from './consent-resolver.ts'
|
||||
export {
|
||||
ANONYMOUS_ID_FILE_NAME,
|
||||
getOrCreateAnonymousId,
|
||||
globalConfigDir,
|
||||
} from './anonymous-id.ts'
|
||||
export type { AnonymousId, AnonymousIdOptions } from './anonymous-id.ts'
|
||||
export { buildTelemetryPayload } from './payload.ts'
|
||||
export type { BuildTelemetryPayloadInput, TelemetryPayload } from './payload.ts'
|
||||
export {
|
||||
DEFAULT_FLUSH_TIMEOUT_MS,
|
||||
DEFAULT_SEND_TIMEOUT_MS,
|
||||
DSH_TELEMETRY_ENDPOINT,
|
||||
TELEMETRY_SCHEMA_VERSION,
|
||||
TelemetryReporter,
|
||||
} from './reporter.ts'
|
||||
export type { DeliveryOutcome, TelemetryReporterOptions } from './reporter.ts'
|
||||
Reference in New Issue
Block a user