Resumen
El tipo DocumentType (en src/types/document-type.ts) no incluye el campo conversionMode, aunque la API lo devuelve y DocumentTypeCreateParams sí lo acepta. Esto obliga a los consumers a usar un cast as unknown as {conversionMode?: string} cuando quieren leerlo desde el resultado.
Contexto
Detectado en review de docutray/docutray-cli#34 / docutray/docutray-cli#35. El CLI tuvo que mantener un cast en src/commands/types/create.ts para mostrar el Mode en la salida de types create:
// docutray@0.1.3 no expone conversionMode en DocumentType.
const conversionMode = (result as unknown as {conversionMode?: string}).conversionMode
Estado actual (docutray@0.1.3)
DocumentType declara:
interface DocumentType {
id: string
name: string
codeType: string
description: string | null
isPublic: boolean
isDraft: boolean
status: string
createdAt: string | null
updatedAt: string | null
jsonSchema: Record<string, unknown> | null
}
Falta conversionMode?: 'json' | 'toon' | 'multi_prompt' (la API lo devuelve, y el create lo acepta como input — la asimetría es lo que motiva el cast en el CLI).
Fix propuesto
Agregar el campo opcional al tipo:
interface DocumentType {
// ...resto
/** Conversion mode used when extracting from this document type. */
conversionMode?: 'json' | 'toon' | 'multi_prompt'
}
Idealmente el tipo del field se reusa del que ya existe en DocumentTypeCreateParams para mantener una sola fuente de verdad.
Criterios de aceptación
Referencias
Resumen
El tipo
DocumentType(ensrc/types/document-type.ts) no incluye el campoconversionMode, aunque la API lo devuelve yDocumentTypeCreateParamssí lo acepta. Esto obliga a los consumers a usar un castas unknown as {conversionMode?: string}cuando quieren leerlo desde el resultado.Contexto
Detectado en review de docutray/docutray-cli#34 / docutray/docutray-cli#35. El CLI tuvo que mantener un cast en
src/commands/types/create.tspara mostrar elModeen la salida detypes create:Estado actual (
docutray@0.1.3)DocumentTypedeclara:Falta
conversionMode?: 'json' | 'toon' | 'multi_prompt'(la API lo devuelve, y el create lo acepta como input — la asimetría es lo que motiva el cast en el CLI).Fix propuesto
Agregar el campo opcional al tipo:
Idealmente el tipo del field se reusa del que ya existe en
DocumentTypeCreateParamspara mantener una sola fuente de verdad.Criterios de aceptación
DocumentTypeincluyeconversionMode?: 'json' | 'toon' | 'multi_prompt'.docutray-clise puede remover el cast ensrc/commands/types/create.ts.Referencias