// generated from contracts/telemetry/kbx.telemetry.json; do not edit.
export const kbxTelemetryCatalog = {
  "screen.open": {
    "name": "screen.open",
    "category": "navigation",
    "description": "화면 진입",
    "allowedAttributes": [
      "module",
      "launchMode"
    ]
  },
  "screen.close": {
    "name": "screen.close",
    "category": "navigation",
    "description": "화면 종료",
    "allowedAttributes": [
      "module",
      "closeReason"
    ]
  },
  "task.start": {
    "name": "task.start",
    "category": "task",
    "description": "측정 가능한 업무 Task 시작",
    "allowedAttributes": [
      "taskType"
    ]
  },
  "task.complete": {
    "name": "task.complete",
    "category": "task",
    "description": "업무 Task 정상 완료",
    "allowedAttributes": [
      "taskType",
      "result"
    ],
    "requiresDuration": true
  },
  "task.abandon": {
    "name": "task.abandon",
    "category": "task",
    "description": "업무 Task 중단",
    "allowedAttributes": [
      "taskType",
      "reasonCode"
    ],
    "requiresDuration": true
  },
  "interaction.execute": {
    "name": "interaction.execute",
    "category": "interaction",
    "description": "KBX 의미 단위 업무 조작 실행",
    "allowedAttributes": [
      "interactionType",
      "commandId"
    ]
  },
  "search.execute": {
    "name": "search.execute",
    "category": "interaction",
    "description": "조회 실행",
    "allowedAttributes": [
      "resultBucket"
    ]
  },
  "command.execute": {
    "name": "command.execute",
    "category": "command",
    "description": "업무 Command 실행 시도",
    "allowedAttributes": [
      "commandId",
      "operationKind"
    ]
  },
  "command.succeeded": {
    "name": "command.succeeded",
    "category": "command",
    "description": "업무 Command 성공",
    "allowedAttributes": [
      "commandId",
      "operationKind"
    ],
    "requiresDuration": true
  },
  "command.failed": {
    "name": "command.failed",
    "category": "command",
    "description": "업무 Command 실패",
    "allowedAttributes": [
      "commandId",
      "problemType",
      "reasonCode"
    ],
    "requiresDuration": true
  },
  "lookup.open": {
    "name": "lookup.open",
    "category": "lookup",
    "description": "Lookup 열기",
    "allowedAttributes": [
      "entityType"
    ]
  },
  "lookup.select": {
    "name": "lookup.select",
    "category": "lookup",
    "description": "Lookup 선택 완료",
    "allowedAttributes": [
      "entityType",
      "selectionSource"
    ]
  },
  "grid.bulk_action": {
    "name": "grid.bulk_action",
    "category": "interaction",
    "description": "Grid 일괄처리 실행",
    "allowedAttributes": [
      "commandId",
      "countBucket"
    ]
  },
  "validation.failed": {
    "name": "validation.failed",
    "category": "quality",
    "description": "저장/업무 실행 전후 검증 실패",
    "allowedAttributes": [
      "stage",
      "errorCountBucket",
      "reasonCode"
    ]
  },
  "excel.import.start": {
    "name": "excel.import.start",
    "category": "excel",
    "description": "Excel Import 시작",
    "allowedAttributes": [
      "importType",
      "rowCountBucket"
    ]
  },
  "excel.import.completed": {
    "name": "excel.import.completed",
    "category": "excel",
    "description": "Excel Import 완료",
    "allowedAttributes": [
      "importType",
      "result",
      "rowCountBucket"
    ],
    "requiresDuration": true
  },
  "excel.import.failed": {
    "name": "excel.import.failed",
    "category": "excel",
    "description": "Excel Import 실패",
    "allowedAttributes": [
      "importType",
      "reasonCode",
      "rowCountBucket"
    ],
    "requiresDuration": true
  },
  "exception.open": {
    "name": "exception.open",
    "category": "exception",
    "description": "업무 예외 생성/노출",
    "allowedAttributes": [
      "exceptionType",
      "severity"
    ]
  },
  "exception.resolved": {
    "name": "exception.resolved",
    "category": "exception",
    "description": "업무 예외 해결",
    "allowedAttributes": [
      "exceptionType",
      "resolutionType"
    ],
    "requiresDuration": true
  },
  "ai.proposal.open": {
    "name": "ai.proposal.open",
    "category": "ai",
    "description": "AI 제안 확인",
    "allowedAttributes": [
      "proposalType"
    ]
  },
  "ai.proposal.accept": {
    "name": "ai.proposal.accept",
    "category": "ai",
    "description": "AI 제안 승인",
    "allowedAttributes": [
      "proposalType"
    ]
  },
  "ai.proposal.reject": {
    "name": "ai.proposal.reject",
    "category": "ai",
    "description": "AI 제안 거절",
    "allowedAttributes": [
      "proposalType",
      "reasonCode"
    ]
  },
  "manual.intervention": {
    "name": "manual.intervention",
    "category": "outcome",
    "description": "정상 자동처리 대신 사람의 확인/수정/판단이 필요했던 업무",
    "allowedAttributes": [
      "workType",
      "reasonCode",
      "exceptionType"
    ]
  },
  "experiment.exposed": {
    "name": "experiment.exposed",
    "category": "experiment",
    "description": "실험 Variant가 실제 화면에 렌더링되어 사용자에게 노출됨",
    "allowedAttributes": [
      "surface"
    ]
  }
} as const
export type KbxTelemetryEventName = keyof typeof kbxTelemetryCatalog
export const kbxUxMetricCatalog = {
  "task_completion_time_ms": {
    "key": "task_completion_time_ms",
    "label": "Task Completion Time",
    "numerator": "task.complete.duration_ms",
    "aggregation": "p50,p95",
    "unit": "ms"
  },
  "semantic_interactions_per_task": {
    "key": "semantic_interactions_per_task",
    "label": "Interactions / Task",
    "numerator": "interaction.execute",
    "denominator": "task.complete",
    "aggregation": "ratio",
    "unit": "count"
  },
  "manual_intervention_rate": {
    "key": "manual_intervention_rate",
    "label": "Manual Intervention Rate",
    "numerator": "ux_business_outcomes.manual_intervention_count",
    "denominator": "ux_business_outcomes.observed_count",
    "aggregation": "ratio",
    "unit": "percent"
  },
  "validation_failure_rate": {
    "key": "validation_failure_rate",
    "label": "Validation Failure Rate",
    "numerator": "validation.failed",
    "denominator": "command.execute",
    "aggregation": "ratio",
    "unit": "percent"
  },
  "import_failure_rate": {
    "key": "import_failure_rate",
    "label": "Import Failure Rate",
    "numerator": "excel.import.failed",
    "denominator": "excel.import.start",
    "aggregation": "ratio",
    "unit": "percent"
  },
  "exception_resolution_time_ms": {
    "key": "exception_resolution_time_ms",
    "label": "Exception Resolution Time",
    "numerator": "exception.resolved.duration_ms",
    "aggregation": "p50,p95",
    "unit": "ms"
  },
  "ai_proposal_acceptance_rate": {
    "key": "ai_proposal_acceptance_rate",
    "label": "AI Proposal Acceptance Rate",
    "numerator": "ai.proposal.accept",
    "denominator": "ai.proposal.open",
    "aggregation": "ratio",
    "unit": "percent"
  }
} as const
export type KbxUxMetricKey = keyof typeof kbxUxMetricCatalog
export const kbxTelemetrySourceSha256 = '9f5de69498b657cb0d60df18c1e98c504a44eec555c4fc50d46f15f83a4ea1ce' as const
