export type DataServiceUsage = { document_count: number; total_bytes: number; }; export type DataServiceCollection = { name: string; document_count: number; total_bytes: number; created_at: string; }; export type DataServiceLimits = { max_collections: number; max_documents: number; max_total_bytes: number; max_document_bytes: number; list_default_limit: number; list_max_limit: number; list_max_data_bytes: number; mutations_per_minute: number; }; export type DataServiceInstanceState = { instance_id: string; project_id: string; collections: DataServiceCollection[]; usage: DataServiceUsage; limits: DataServiceLimits; created_at: string; updated_at: string; }; export type DataServiceInstanceList = { items: DataServiceInstanceState[]; total: number; instance_limit: number; }; export type DataServiceCollectionRemoval = { removed: boolean; usage: DataServiceUsage; }; export type DataServiceInstanceRemoval = { removed: boolean; }; export type DataServiceDocument = { id: string; data: Record; revision: number; created_at: string; updated_at: string; }; export type DataServiceDocumentList = { items: DataServiceDocument[]; next_cursor: string | null; limit: number; }; export type DataServiceErrorContext = Record; export const DATA_SERVICE_PI_TOOL_NAMES = [ 'data_service_configure', 'data_service_inspect', 'data_service_list_projects', 'data_service_get_document', 'data_service_list_documents', 'data_service_put_document', 'data_service_delete_document', 'data_service_remove_collection', 'data_service_reset', 'data_service_remove_project', ] as const; export type DataServicePiToolName = (typeof DATA_SERVICE_PI_TOOL_NAMES)[number]; export type DataServiceHostResult = { success: boolean; status: number; code: string | null; error: string | null; retryable: boolean; retry_after_seconds?: number; context?: DataServiceErrorContext; data: T | null; }; export type DataServiceToolData = | DataServiceInstanceState | DataServiceInstanceList | DataServiceDocument | DataServiceDocumentList | DataServiceCollectionRemoval | DataServiceInstanceRemoval; export type DataServiceToolDetailsV1 = DataServiceHostResult & { schema: 'data-service.v1'; operation: DataServicePiToolName; }; export type DataServicePutDocumentInput = { collection: string; document_id: string; data: Record; if_revision?: number; }; export type DataServiceDocumentTargetInput = { collection: string; document_id: string; if_revision?: number; }; export type DataServiceCollectionTargetInput = { collection: string; confirmed: true; }; export type DataServiceConfirmationInput = { confirmed: true; };