// The statuses a knowledge document moves through. `unavailable` and `disabled` are not rows: they // are the module's and the service's answers, and the UI maps all eight states from what a page // reads (the module flag, the service readiness, the document row). export const DOCUMENT_STATUSES = ["queued", "indexing", "indexed", "failed", "cancelled"] as const export type DocumentStatus = (typeof DOCUMENT_STATUSES)[number] /** The search backend a deployment binds: the platform's managed service, and no other (ADR-061). */ export const KNOWLEDGE_BACKENDS = ["platform"] as const export type KnowledgeBackend = (typeof KNOWLEDGE_BACKENDS)[number] /** The readiness states the search port answers (the managed toolset's readiness + unavailable). */ export const SERVICE_STATES = ["registered", "indexing", "ready", "degraded", "disabled", "unavailable"] as const export type ServiceState = (typeof SERVICE_STATES)[number] /** The enablement flow's typed refusal reasons, surfaced in the UI as states. */ export const ENABLEMENT_REASONS = ["plan_required", "feature_disabled", "quota_exhausted"] as const export type EnablementReason = (typeof ENABLEMENT_REASONS)[number] /** * Why the platform's knowledge service will not serve this deployment, as the pages show it. The service's * reason codes reach the module as these (adapters/refusals.ts): `scope_missing` is the service refusing * the deployment's token, whose `conusai.json` asks for `knowledge.collections:use`. */ export const KNOWLEDGE_REFUSALS = [ "plan_required", "feature_disabled", "quota_exhausted", "budget_exhausted", "scope_missing", "indexing", "approval_required", "runtime_unavailable", "configuration_missing", ] as const export type KnowledgeRefusal = (typeof KNOWLEDGE_REFUSALS)[number] /** The indexing failure codes a document row records: the file's own, and a refusal waiting cannot fix. */ export const INDEX_FAILURES = [ "processing_exhausted", "configuration_missing", "not_indexable", "too_large", "not_text", "file_changed", "plan_required", "feature_disabled", "quota_exhausted", "budget_exhausted", "scope_missing", "approval_required", ] as const export type IndexFailure = (typeof INDEX_FAILURES)[number]