원본·분석·인용·번역 보존
# report는 이 Client로 저장한 원본 PDF 첨부 Report입니다.
client.retain_document(pdf_content_ref, source=report)
client.retain_document(analysis)
client.retain_document(analysis.citation(["segment_key"]))
reference = client.retain_document(translation)한 번의 호출로 하나의 불변 객체를 현재 Client의 범위에 보존하고 정확한 콘텐츠 참조를 반환합니다. 같은 값을 다시 보내면 같은 참조를 반환합니다. Report의 내용이나 revision은 바뀌지 않으며, 제공한 데이터의 보존이 분석·번역 엔진의 실제 실행을 인증하지는 않습니다.
PDF는 문자열 콘텐츠 참조와 source에 저장된 Report를 함께 전달합니다. 정확한 Report revision의 본문 또는 attachment 레지스트리에 그 PDF가 있어야 하며, Report는 현재 Client와 Project에 속해야 합니다. 닫힌 Client·Report나 저장하지 않은 Report는 사용할 수 없습니다. 다른 연결의 Report를 암묵적으로 빌려 쓰지 않습니다.
px.DocumentAnalysis, px.DocumentCitation, px.DocumentTranslation은 source 없이 전달합니다. 분석에 앞서 PDF를, 인용·번역에 앞서 PDF와 정확한 분석을 보존해야 합니다. 부모를 자동으로 저장하거나 다른 Project의 같은 digest로 대신하지 않습니다. Core가 형식·원본 크기·정확한 부모 관계·인용 및 번역의 원문 연결을 검증합니다.
현재 지원 경로는 안정적인 principal로 시작한 단독 Desktop 로컬 SDK입니다. 관리형 Host의 문서 권한이 연결되지 않았거나 임시 principal로 시작한 경우에는 거절합니다. 분석·인용·번역 값은 canonical bytes 기준 최대 16MiB입니다.
원본과 부모 참조는 원본 Report의 첨부 배치를 삭제하거나 Runtime을 재시작한 뒤에도 유지됩니다. 보존한 원본의 출처는 보존 시점의 정확한 Report revision을 가리킵니다. 공개 SDK 내보내기·가져오기는 선택한 Report가 참조하는 파생 객체와 부모를 함께 이동합니다. 현재 V1은 자동 GC와 보존 해제 API를 제공하지 않습니다. 보존·이동 계약을 함께 확인하세요.