{"claims":[{"basis":"diagram-fields-only","condition":"Console request succeeds","confidence":"asserted","id":"relation-web-nginx","object":{"direction":"forward","from":"web","kind":"http","to":"nginx"},"predicate":"relation","reason":"Authored fields match; source causality still requires independent review.","required":true,"source_refs":["src-web","src-file","src-nginx"],"status":"pending","subject":"web-nginx"},{"basis":"diagram-fields-only","condition":"Basic CHAT; streaming response mode","confidence":"asserted","id":"relation-caller-nginx","object":{"direction":"bidirectional","from":"caller","kind":"http","to":"nginx"},"predicate":"relation","reason":"Authored fields match; source causality still requires independent review.","required":true,"source_refs":["src-nginx","src-chat-api"],"status":"pending","subject":"caller-nginx"},{"basis":"diagram-fields-only","condition":"Console API or /v1 route","confidence":"asserted","id":"relation-nginx-api","object":{"direction":"bidirectional","from":"nginx","kind":"http","to":"api"},"predicate":"relation","reason":"Authored fields match; source causality still requires independent review.","required":true,"source_refs":["src-nginx","src-chat-api"],"status":"pending","subject":"nginx-api"},{"basis":"diagram-fields-only","condition":"Local uploaded text file; validation succeeds","confidence":"asserted","id":"relation-api-files","object":{"direction":"forward","from":"api","kind":"storage-access","to":"files"},"predicate":"relation","reason":"Authored fields match; source causality still requires independent review.","required":true,"source_refs":["src-file"],"status":"pending","subject":"api-files"},{"basis":"diagram-fields-only","condition":"Upload and document creation succeed","confidence":"asserted","id":"relation-api-sql","object":{"direction":"forward","from":"api","kind":"database-access","to":"sql"},"predicate":"relation","reason":"Authored fields match; source causality still requires independent review.","required":true,"source_refs":["src-file","src-document"],"status":"pending","subject":"api-sql"},{"basis":"diagram-fields-only","condition":"Index dispatch after document commit; query embedding cache access on semantic retrieval","confidence":"asserted","id":"relation-api-redis","object":{"direction":"forward","from":"api","kind":"dependency","to":"redis"},"predicate":"relation","reason":"Authored fields match; source causality still requires independent review.","required":true,"source_refs":["src-document","src-task-proxy","src-task-policy","src-broker","src-broker-default","src-query-embedding"],"status":"pending","subject":"api-redis"},{"basis":"diagram-fields-only","condition":"Worker consumes Celery broker; self-hosted priority_dataset queue","confidence":"asserted","id":"relation-redis-worker","object":{"direction":"forward","from":"redis","kind":"task-delivery","to":"worker"},"predicate":"relation","reason":"Authored fields match; source causality still requires independent review.","required":true,"source_refs":["src-broker","src-task-policy","src-task","src-task-run"],"status":"pending","subject":"redis-worker"},{"basis":"diagram-fields-only","condition":"FILE source in extraction","confidence":"asserted","id":"relation-worker-files","object":{"direction":"forward","from":"worker","kind":"storage-access","to":"files"},"predicate":"relation","reason":"Authored fields match; source causality still requires independent review.","required":true,"source_refs":["src-task-run","src-index","src-extract"],"status":"pending","subject":"worker-files"},{"basis":"diagram-fields-only","condition":"Successful paragraph indexing","confidence":"asserted","id":"relation-worker-sql","object":{"direction":"forward","from":"worker","kind":"database-access","to":"sql"},"predicate":"relation","reason":"Authored fields match; source causality still requires independent review.","required":true,"source_refs":["src-index","src-doc-embedding"],"status":"pending","subject":"worker-sql"},{"basis":"diagram-fields-only","condition":"high_quality paragraph indexing; embedding succeeds","confidence":"asserted","id":"relation-worker-vector","object":{"direction":"forward","from":"worker","kind":"vector-access","to":"vector"},"predicate":"relation","reason":"Authored fields match; source causality still requires independent review.","required":true,"source_refs":["src-index","src-paragraph","src-vector-create"],"status":"pending","subject":"worker-vector"},{"basis":"diagram-fields-only","condition":"Dataset configured and selected; internal high_quality semantic retrieval; filters permit results","confidence":"asserted","id":"relation-api-vector","object":{"direction":"forward","from":"api","kind":"vector-access","to":"vector"},"predicate":"relation","reason":"Authored fields match; source causality still requires independent review.","required":true,"source_refs":["src-chat","src-retrieval","src-search","src-vector-query"],"status":"pending","subject":"api-vector"},{"basis":"diagram-fields-only","condition":"Document embedding cache miss; model configured","confidence":"asserted","id":"relation-worker-plugin","object":{"direction":"forward","from":"worker","kind":"model-invocation","to":"plugin"},"predicate":"relation","reason":"Authored fields match; source causality still requires independent review.","required":true,"source_refs":["src-vector-create","src-doc-embedding","src-model","src-plugin-embedding","src-plugin-base"],"status":"pending","subject":"worker-plugin"},{"basis":"diagram-fields-only","condition":"Query embedding cache miss and/or LLM invocation; validated normal CHAT path","confidence":"asserted","id":"relation-api-plugin","object":{"direction":"forward","from":"api","kind":"model-invocation","to":"plugin"},"predicate":"relation","reason":"Authored fields match; source causality still requires independent review.","required":true,"source_refs":["src-chat","src-query-embedding","src-model","src-plugin-runtime","src-plugin-llm","src-plugin-embedding","src-plugin-base"],"status":"pending","subject":"api-plugin"},{"basis":"source-review-required","condition":"","confidence":"asserted","id":"thread-not-celery","object":"Basic CHAT uses ChatAppGenerator to create a threading.Thread and call ChatAppRunner. This worker thread lives in the API process; it is not a Celery Worker.","predicate":"behavior","reason":"References do not establish behavioral meaning.","required":true,"source_refs":["src-dispatch","src-thread","src-chat"],"status":"pending","subject":"api"},{"basis":"source-review-required","condition":"","confidence":"asserted","id":"separate-storage","object":"storage.save stores uploaded file bytes; SQL stores UploadFile metadata.","predicate":"behavior","reason":"References do not establish behavioral meaning.","required":true,"source_refs":["src-file"],"status":"pending","subject":"files"},{"basis":"source-review-required","condition":"","confidence":"asserted","id":"commit-before-queue","object":"Document creation commits SQL before dispatching an indexing task through DocumentIndexingTaskProxy.delay.","predicate":"behavior","reason":"References do not establish behavioral meaning.","required":true,"source_refs":["src-document","src-task-policy","src-task-proxy"],"status":"pending","subject":"api-redis"},{"basis":"source-review-required","condition":"","confidence":"asserted","id":"cache-condition","object":"A Redis query-embedding cache hit returns the cached vector. Not every retrieval calls an embedding model.","predicate":"behavior","reason":"References do not establish behavioral meaning.","required":true,"source_refs":["src-query-embedding"],"status":"pending","subject":"api-plugin"},{"basis":"source-review-required","condition":"","confidence":"asserted","id":"retrieval-condition","object":"Retrieval here requires a configured and selected internal dataset. Single-dataset routing may call an LLM first; this is not a strict sequence diagram.","predicate":"behavior","reason":"References do not establish behavioral meaning.","required":true,"source_refs":["src-chat","src-retrieval"],"status":"pending","subject":"api-vector"},{"basis":"source-review-required","condition":"","confidence":"asserted","id":"plugin-boundary","object":"The main repository calls Plugin Daemon model endpoints over HTTP. This review does not cover the daemon implementation or specific model-provider plugins.","predicate":"behavior","reason":"References do not establish behavioral meaning.","required":true,"source_refs":["src-plugin-base","src-plugin-llm","src-plugin-embedding"],"status":"pending","subject":"plugin"},{"basis":"python-ast","condition":"","confidence":"asserted","id":"definition-file","object":{"path":"api/services/file_service.py","symbol":"FileService.upload_file"},"predicate":"python-definition","reason":"Definition found in pinned blob at lines 50–125.","required":true,"source_refs":["src-file"],"status":"supported","subject":"files"},{"basis":"python-ast","condition":"","confidence":"asserted","id":"definition-index","object":{"path":"api/core/indexing_runner.py","symbol":"IndexingRunner.run"},"predicate":"python-definition","reason":"Definition found in pinned blob at lines 81–165.","required":true,"source_refs":["src-index"],"status":"supported","subject":"worker"},{"basis":"python-ast","condition":"","confidence":"asserted","id":"definition-vector-query","object":{"path":"api/core/rag/datasource/vdb/vector_factory.py","symbol":"Vector.search_by_vector"},"predicate":"python-definition","reason":"Definition found in pinned blob at lines 252–254.","required":true,"source_refs":["src-vector-query"],"status":"supported","subject":"vector"},{"basis":"python-ast","condition":"","confidence":"asserted","id":"definition-plugin-llm","object":{"path":"api/core/plugin/impl/model.py","symbol":"PluginModelClient.invoke_llm"},"predicate":"python-definition","reason":"Definition found in pinned blob at lines 170–218.","required":true,"source_refs":["src-plugin-llm"],"status":"supported","subject":"plugin"}],"coverage":{"completeness":"not-assessed","provided_claims":23,"required_claims":23},"facts_sha256":"e670322f4254d93c95e137bd6560d7eb4f5f0ef575aa05bf9fa2df5bb7826c65","gates":{"rendered_readability":"not-checked","semantic_review":"pending","source_references":"verified"},"limits":"AST proves lexical definitions only; matching diagram fields is not source causality. Review records are assertions, not authenticated independent proof. No target code is executed.","ok":false,"ready":false,"reviewer":null,"schema":{"name":"AniDiagramAccuracyCheck","version":"0.1"},"specification_sha256":"3645c85565887b7e42c081c966cdf91a4a9760757d94450b15666fc7af3fe691","status":"needs-review","strict":true}
