{"version":"2.0.0","project":"datamerge01","updated":"2026-08-04","agent_entry":{"mcp_server":"datamerge-portal","manifest_path":"portal/manifest.json","knowhow":"cursor_project_rules/","skills_dir":".cursor/skills/"},"web_apps":[{"id":"portal-hub","name":"Datamerge","description":"统一呈现生产工作台、数据资产、Agent 工具与实时服务状态。","summary":"统一能力入口","category":"system","display_order":0,"capabilities":["应用目录","实时状态","Manifest","MCP"],"type":"hub","url":"/","availability":"production","port":8090,"entry":"portal/server.py","start":"python3 portal/server.py"},{"id":"ppt-extractor","name":"PPT 内容提取","description":"将 PPTX 逐页转换为图像、结构化元数据、HTML 报告和可下载交付包。","summary":"PPTX → 图像 / JSON / HTML","category":"understand","display_order":20,"capabilities":["逐页提取","JSON 元数据","HTML 报告","ZIP 交付"],"type":"fastapi","url":"/apps/ppt-extractor/","availability":"production","port":8000,"path":"ppt_extractor_webapp/","entry":"ppt_extractor_webapp/app/main.py","start":"cd ppt_extractor_webapp && .venv/bin/uvicorn app.main:app --host 127.0.0.1 --port 8000","env":["PPTEX_ALLOWED_ROOT","PPTEX_DATA_DIR","PPTEX_AUTH_PASSWORD"],"routes":["/","/app","/app/extract","/api/jobs/from-folder","/api/jobs/from-zip"],"knowhow":"cursor_project_rules/README.md"},{"id":"card-manager","name":"名片批量排版","description":"面向中英双语名片的批量编辑、版式预览与 PDF/PNG 导出。","summary":"名片批量编辑与导出","category":"deliver","display_order":60,"capabilities":["中英双语","批量编辑","PDF","PNG"],"type":"static","url":"/apps/card-manager/","availability":"production","path":"card-manager/","entry":"card-manager/index.html","note":"Also at card-manager-export/ (duplicate export copy; not deleted)."},{"id":"ingredients-browser","name":"食材与地理","description":"只读预览全球食材（ing.*）与地理参考（place.*）：搜索、详情、营养 match_basis、place_ids 跳转。","summary":"版本化食材与地理知识库","category":"data","display_order":70,"capabilities":["食材检索","地理关联","营养依据","版本化数据"],"type":"static","url":"/apps/ingredients/","availability":"production","path":"portal/apps/ingredients/","entry":"portal/apps/ingredients/index.html","api":["/api/ingredients/status","/api/ingredients/search","/api/ingredients/{id}","/api/places/status","/api/places/search","/api/places/{id}"],"knowhow":"cursor_project_rules/ingredient-database.md"},{"id":"pdf-destructure","name":"PDF 全量解构","description":"逐页 Docling/OCR 与 Precision MinerU 全量 PDF 解构；私有 COS、无损分片、完整性审计、facts 与思维导图。","summary":"PDF → Markdown / Facts / 思维导图","category":"understand","display_order":30,"capabilities":["MinerU Precision","无损分片","结构化 Markdown","完整性审计"],"type":"static","url":"/apps/pdf-destructure/","map_url":"/apps/pdf-destructure/map.html","availability":"production","path":"portal/apps/pdf-destructure/","entry":"portal/apps/pdf-destructure/index.html","api":["/api/pdf-destructure/jobs","/api/pdf-destructure/start","/api/pdf-destructure/mineru/capabilities","/api/pdf-destructure/mineru/uploads","/api/pdf-destructure/mineru/jobs","/api/pdf-destructure/mineru/jobs/{job_id}","/api/pdf-destructure/mineru/jobs/{job_id}/events","/api/pdf-destructure/mineru/jobs/{job_id}/chunks","/api/pdf-destructure/mineru/jobs/{job_id}/artifacts","/api/pdf-destructure/mineru/jobs/{job_id}/retry","/api/pdf-destructure/mineru/jobs/{job_id}/cancel"],"workflow":"2process/pdf_destructure/","start":"python -m 2process.pdf_destructure.run_workflow --pdf <path>","mineru_full":{"required_provider":"MinerU Precision","model_version":"vlm","fallback":"disabled","chunk_limit":"100 pages and 180 MB","facts_model":"Tongyi qwen3.7-max","storage":"Private COS with stable authenticated asset gateway","verified_definition":"zero missing/duplicate pages, render hashes pass, all raw blocks retained, all assets reachable"}},{"id":"image-ocr","name":"临床量表数据核验","description":"临床量表按连续两页组成一份，左侧正背面扫描件、右侧仅核验手写值与勾选项，支持密码协作编辑与全量导出。","summary":"管理员管理、项目密码访问的双页临床量表核验","category":"understand","display_order":40,"capabilities":["双页病历","手写字段","勾选核验","项目密码","全量导出"],"type":"static","url":"/apps/image-ocr/","availability":"production","access":"admin","path":"portal/apps/image-ocr/","entry":"portal/apps/image-ocr/index.html","api":["/api/pdf-destructure/jobs/{job_id}/clinical-records/{record_no}","/api/pdf-destructure/jobs/{job_id}/clinical-access","/api/pdf-destructure/jobs/{job_id}/clinical-password","/api/pdf-destructure/clinical-projects/unlock","/api/pdf-destructure/jobs/{job_id}/clinical-shares","/api/pdf-destructure/clinical-shares/unlock","/api/pdf-destructure/jobs/{job_id}/pages/{page_no}/image","/api/pdf-destructure/jobs/{job_id}/pages/{page_no}/reocr-box","/api/pdf-destructure/jobs/{job_id}/clinical-export"],"workflow":"2process/pdf_destructure/","clinical_review":{"record_unit":"two sequential pages","focus":"handwritten values and checkbox marks","empty_policy":"leave blank and require manual review"}},{"id":"image-to-html","name":"图片转可编辑 HTML","description":"将海报、简历和页面截图转换为绝对定位的可编辑 DOM 文本层，并提供背景重建、置信度标记与逐层视觉校验。","summary":"图片 → 可编辑 HTML / IR / 视觉差异","category":"deliver","display_order":45,"capabilities":["文字层 OCR","原生 DOM 编辑","背景重建","SSIM 校验","离线 HTML"],"type":"fastapi-pipeline","url":"/apps/image-to-html/","availability":"production","access":"admin","path":"image_to_html/","entry":"image_to_html/apps/web/src/main.tsx","api":["/api/image-html/v1/capabilities","/api/image-html/v1/documents","/api/image-html/v1/documents/{doc_id}","/api/image-html/v1/documents/{doc_id}/layers/{layer_id}","/api/image-html/v1/documents/{doc_id}/reprocess","/api/image-html/v1/documents/{doc_id}/export","/api/image-html/v1/jobs/{job_id}","/api/image-html/v1/jobs/{job_id}/events"],"runtime":{"ocr":"RapidOCR PP-OCRv4 via ONNX Runtime","pipeline":"Standalone Python 3.13 package","editor":"React 19 native DOM","llm_required":false},"quality":{"verified":"full-canvas SSIM >= 0.95 and every text box SSIM >= 0.90","otherwise":"needs_review"}},{"id":"admin-console","name":"管理控制台","description":"管理员专用的访问密钥创建与撤销、账户、权限、调用历史和错误审计入口。","summary":"API Key、账户与调用审计","category":"system","display_order":46,"capabilities":["API Key 治理","权限与归属","调用审计","账户管理"],"type":"static","url":"/apps/admin/","availability":"production","access":"admin","path":"portal/apps/admin/","entry":"portal/apps/admin/index.html","api":["/api/admin/api-keys","/api/admin/usage","/api/admin/users","/api/admin/errors"]},{"id":"md-preview","name":"品牌文档工作台","description":"基于 Pandoc 规范 AST 的通用文档工作台，支持健康 QA、办公/出版/标记/社交格式、私有历史和 MCP。","summary":"Markdown / 文本 → DOCX / XLSX","category":"deliver","display_order":1,"capabilities":["DOCX","XLSX","品牌模板","Agent Judge","内容保真"],"type":"fastapi-worker","url":"/apps/md-preview/","availability":"production","path":"portal/apps/md-preview/","entry":"portal/apps/md-preview/index.html","api":["/api/md-preview/config","/api/md-preview/convert","/api/conversion/capabilities","/api/conversion/formats","/api/conversion/preflight","/api/conversion/preview","/api/conversion/assets","/api/conversion/themes","/api/conversion/jobs","/api/conversion/jobs/{job_id}","/api/conversion/jobs/{job_id}/retry","/api/conversion/jobs/{job_id}/facts","/api/conversion/jobs/{job_id}/clone","/api/conversion/batches","/api/conversion/batches/{batch_id}","/api/conversion/batches/{batch_id}/download","/api/auth/me","/api/auth/login","/api/account/entitlements","/api/conversion/clipboard","/api/conversion/imports/docx","/api/conversion/imports/{id}","/api/conversion/assist","/api/conversion/assets/generate","/api/conversion/assets/generate/{id}","/api/conversion/brands","/api/conversion/brand-sync/status","/api/conversion/brand-sync","/api/conversion/templates","/api/conversion/validate","/api/conversion/convert","/api/conversion/workflows","/api/conversion/judge","/api/conversion/agent-run","/api/conversion/docforge/inspect","/api/conversion/docforge/run"],"agent_guidance":{"primary_sync":"For agents: MCP conversion_convert({content, output:'docx', brand:'default'|'table-ai'|'kind', filename?}). Binary responses include content_base64 + filename. brand defaults to default.","quick_mode":"Use /api/conversion/convert (or MCP conversion_convert) for deterministic DOCX/XLSX/HTML/MD/TXT/ZIP when Markdown or tables are clean.","jobs_mode":"For large Markdown: MCP conversion_submit({content, outputs:['docx'], theme_id:'default', branding:{enabled, brand_id}, quality_mode:'quick'|'verified'}) then poll conversion_job_status for download_url. Job branding.brand_id is separate from sync brand.","assisted_mode":"Use /api/conversion/judge; prefer workflows with executes:true / status:ready. Workflows marked upstream_required (OCR, PDF destructure, repair) return needs_upstream_workflow until those pipelines are wired.","agent_mode":"Use conversion_list_workflows, conversion_judge, then conversion_agent_run only for executable workflows (quick_docx, quick_xlsx, quick_bundle, split_bundle, preserve_content_docx).","verified_docx":"Use /api/conversion/docforge/inspect for immutable block and IR preflight, then /api/conversion/docforge/run for fail-closed DOCX delivery with manifest, decision log, and verification report.","brands":["default","table-ai","kind"],"branding_fields":{"sync_convert":"brand string on ConversionRequest / conversion_convert","async_jobs":"theme_id plus branding.enabled + branding.brand_id on conversion_submit"},"storage":"Sync convert returns the artifact inline (MCP: content_base64). Async jobs use private COS when CONVERSION_STORAGE=cos, else local download_url."}},{"id":"web-capture","name":"网页切割与社媒交付","description":"采集微信公众号单篇文章、公开历史页或经 Admin 扫码认证后的历史文章，并将网页转为经过 QA 的完整长图、公众号连续切图和小红书分卷图片包。","summary":"网页 → 长图 / 公众号 / 小红书","category":"collect","display_order":2,"capabilities":["微信公众号文章采集","认证历史链接发现","完整长图","公众号切图","小红书分卷","视觉 QA"],"type":"fastapi-worker","url":"/apps/web-capture/","availability":"production","path":"portal/web_capture.py","entry":"portal/capture_worker.py","api":["/api/web-capture/capabilities","/api/web-capture/session","/api/web-capture/wechat/discover","/api/web-capture/wechat/mp/login","/api/web-capture/wechat/mp/status","/api/web-capture/wechat/mp/discover","/api/web-capture/jobs","/api/web-capture/jobs/{job_id}","/api/web-capture/jobs/{job_id}/retry","/api/web-capture/jobs/{job_id}/wechat-draft","/api/web-capture/jobs/{job_id}/artifacts/{path}"],"defaults":{"viewport":"390x844 CSS px at DPR 3","output_width":1080,"slice_height":1440,"xiaohongshu_max_images_per_volume":18},"deployment":{"domain":"datame.opcglobal.cn","region":"ap-nanjing","storage":"private COS with 24-hour signed downloads"}},{"id":"docling-gui","name":"Docling Batch (desktop)","description":"Tk GUI or CLI: PPTX → Markdown via Docling.","type":"desktop","availability":"local-only","entry":"docling_batch_gui.py","start":"python3 docling_batch_gui.py --convert-all","default_in":"2process/ppt/","default_out":"2process/docling_out/"},{"id":"workflow-dashboard","name":"工作流与能力蓝图","description":"PDF 解构流水线可视化 + Prompt/Taxonomy/Agent 系统文档","summary":"可视化生产流程与 Agent 逻辑","category":"system","display_order":80,"capabilities":["Pipeline","Prompt","Taxonomy","Agent"],"type":"static","url":"/apps/workflows/","availability":"production","path":"portal/apps/workflows/","entry":"portal/apps/workflows/index.html"},{"id":"legacy-next","name":"Next.js blog (legacy)","description":"Archived blog app under old/my-app/.","type":"nextjs","availability":"legacy","port":3000,"path":"old/my-app/","status":"legacy"}],"skills":[{"id":"paper-acquisition","name":"paper-acquisition","path":".cursor/skills/paper-acquisition/SKILL.md","description":"Agent entry for PDFs and AOA collection; routes to manifest and know-how.","triggers":["paper","PDF","DOI","abstract","literature"]},{"id":"paper-fetch","name":"paper-fetch","path":".cursor/skills/paper-fetch/SKILL.md","script":".cursor/skills/paper-fetch/scripts/fetch.py","description":"Download PDF by DOI/title; OA chain + Sci-Hub fallback.","triggers":["fetch","download","Sci-Hub","Unpaywall"]},{"id":"webpage-to-social-images","name":"webpage-to-social-images","path":".cursor/skills/webpage-to-social-images/SKILL.md","script":".cursor/skills/webpage-to-social-images/scripts/capture.py","description":"Preview, capture, validate, slice, name, upload, and return verified social-image packages for public H5 pages.","triggers":["网页转长图","H5 截图","公众号切图","小红书长图","URL 转图片"]},{"id":"anysearch","name":"anysearch","path":".cursor/skills/anysearch/SKILL.md","script":"scripts/anysearch_search.py","description":"AnySearch REST/MCP web+vertical search and URL extract for ingest discovery.","triggers":["AnySearch","web search","实时检索","vertical search","extract URL"]},{"id":"ingredient-database","name":"ingredient-database","path":".cursor/skills/ingredient-database/SKILL.md","description":"Global+regional ingredient DB with Places links, releases, portal/MCP APIs.","triggers":["食材","ingredient","风物","地理标志","nutrition","places"]},{"id":"mineru-api","name":"mineru-api","path":".cursor/skills/mineru-api/SKILL.md","script":"scripts/mineru_parse.py","description":"Official MinerU Precision VLM parsing for PDFs and document images with auditable raw artifacts.","triggers":["MinerU","PDF OCR","PDF 解构","document parsing","table OCR"]}],"optional_skills":[{"id":"paper-lookup","source":"K-Dense scientific-skills/paper-lookup","description":"Search PubMed/Crossref/OpenAlex for DOI — install per paper-acquisition-knowhow.md"},{"id":"semanticscholar-skill","source":"Agents365-ai/semanticscholar-skill","description":"Metadata search before fetch"},{"id":"tavily","source":"Tavily Search API","description":"RAG-friendly web snippets — set TAVILY_API_KEY"},{"id":"brave-search","source":"Brave Search API","description":"Independent web index — set BRAVE_SEARCH_API_KEY"},{"id":"exa","source":"Exa API","description":"Semantic web search — set EXA_API_KEY"},{"id":"serper","source":"Serper / SerpAPI","description":"Google SERP proxy — set SERPER_API_KEY or SERPAPI_API_KEY"}],"mcp":{"project_server":{"id":"datamerge-portal","config":".cursor/mcp.json","server_script":"portal/mcp_server.py","streamable_http":"https://datame.opcglobal.cn/mcp","tools":["get_manifest","list_capabilities","list_apps_status","paper_collection_status","get_skill","get_knowhow","ocr_list_providers","ocr_run_high_accuracy","ocr_run_status","pdf_mineru_capabilities","pdf_mineru_create_upload","pdf_mineru_submit","pdf_mineru_job_status","pdf_mineru_chunks","pdf_mineru_artifacts","pdf_mineru_retry","pdf_mineru_cancel","image_html_capabilities","image_html_list_documents","image_html_get_document","image_html_reprocess","image_html_export","conversion_capabilities","conversion_list_formats","conversion_list_input_formats","conversion_preflight","conversion_history","conversion_delete_job","conversion_list_themes","conversion_validate","conversion_upload_asset","conversion_upload_source","conversion_submit","conversion_job_status","conversion_retry","conversion_import_docx","conversion_import_status","conversion_assist","conversion_generate_illustration","conversion_illustration_status","conversion_list_brands","conversion_list_workflows","conversion_list_templates","conversion_judge","conversion_agent_run","conversion_convert","conversion_docforge_inspect","conversion_docforge_run","brand_sync_status","brand_sync_now","pdf_destructure_list_jobs","pdf_destructure_job_status","pdf_destructure_sync","pdf_destructure_start","pdf_destructure_search","pdf_destructure_export","workflow_pdf_destructure_spec","ppt_extractor_status","web_capture_list_jobs","web_capture_get_artifacts","web_capture_create_wechat_draft","web_capture_capabilities","web_capture_submit","web_capture_job_status","web_capture_retry","ingredient_status","ingredient_search","ingredient_get","ingredient_export","ingredient_schema","place_status","place_search","place_get"]},"workspace_servers":[{"id":"user-context7","use":"Library/API documentation (Crossref, FastAPI, Docling syntax) — not PDF download"},{"id":"cursor-ide-browser","use":"Paywalled publisher pages when user is logged in"},{"id":"cursor-app-control","use":"Cursor IDE workspace control"}]},"scripts":{"docling":[{"id":"pdf-destructure","path":"2process/pdf_destructure/run_workflow.py","description":"PDF 逐页解构 → 内容地图（Docling+OCR+VLM）"},{"id":"pdf-destructure-sh","path":"2process/pdf_destructure/run_pdf_destructure.sh","description":"Shell wrapper for pdf_destructure workflow"},{"id":"docling-batch","path":"docling_batch_gui.py","description":"Batch convert PPTX → MD"},{"id":"merge-docling-md","path":"merge_docling_markdown.py","description":"Merge docling_out/*.md → 全部文档合并.md"}],"ocr":[{"id":"firered-ocr-install","path":"2process/pdf_destructure/install_firered_ocr.py","description":"Install pinned FireRed-OCR source, MPS runtime, and model outside Git"},{"id":"firered-ocr-worker","path":"2process/pdf_destructure/firered_worker.py","description":"Local-only experimental Apple MPS FireRed-OCR worker"},{"id":"mineru-api","path":"2process/pdf_destructure/mineru_ocr.py","description":"Prioritized MinerU Precision VLM API; full-document jobs explicitly forbid Agent fallback"},{"id":"mineru-full-pipeline","path":"2process/pdf_destructure/mineru_pipeline.py","description":"Lossless PDF chunking, render-hash verification, raw-block assembly, assets, coverage, facts, and mind maps"}],"ppt":[{"id":"ppt-to-excel","path":"ppt_to_excel.py","description":"PPTX → Excel via python-pptx"}],"papers":[{"id":"paper-run-download","path":"papers/aoa-ionophore/run_download.py","description":"OA/title batch download"},{"id":"paper-scihub","path":"papers/aoa-ionophore/download_scihub.py","description":"Paywalled DOIs via Sci-Hub (Referer fix)"},{"id":"paper-fetch-missing","path":"papers/aoa-ionophore/fetch_missing_fulltext.py","description":"Abstracts + PDF retry for gaps (refs 6, 18, 31)"},{"id":"paper-rename","path":"papers/aoa-ionophore/rename_pdfs_inplace.py","description":"Prefix PDFs 01_…32_"},{"id":"paper-number","path":"papers/aoa-ionophore/number_references.py","description":"Copy to pdfs/numbered/RefNN_…"}],"ingredients":[{"id":"ingredients-extract","path":"scripts/ingredients/extract_source.py","description":"Extract/merge Hubei corpus hits into seed TSV"},{"id":"ingredients-enrich","path":"scripts/ingredients/enrich.py","description":"Enrich via Wikidata + USDA FDC + Open Food Facts (cached)"},{"id":"ingredients-release","path":"scripts/ingredients/build_release.py","description":"Validate schemas and write immutable JSONL release"},{"id":"ingredients-sqlite","path":"scripts/ingredients/build_sqlite.py","description":"Build versioned SQLite + FTS5 for portal API"}],"dev":[{"id":"dev-up","path":"scripts/dev-up.sh","description":"Start portal :8090 + PPT extractor :8000"},{"id":"frontcap","path":"scripts/frontcap/frontcap","description":"Local macOS CLI: hotkey start/stop frontmost-app content video, save folder + notification"}],"data_ingest":[{"id":"data-ingest-cli","path":"scripts/data_ingest/cli.py","description":"Orchestrator: search/places/ingredients pipelines"},{"id":"anysearch-cli","path":"scripts/anysearch_search.py","description":"AnySearch REST search CLI"},{"id":"places-release","path":"scripts/places/build_release.py","description":"Build places JSONL release"},{"id":"places-sqlite","path":"scripts/places/build_sqlite.py","description":"Build places SQLite+FTS"},{"id":"ingredients-migrate-1-1","path":"scripts/ingredients/migrate_to_1_1.py","description":"Migrate hb.* 1.0.0 → ing.* 1.1.0"}]},"alimail":{"root":"alimail/","collections":[{"id":"lantu","path":"alimail/lantu/","description":"岚图 (Voyah) related mail — raw .eml, attachments, index.jsonl","download_script":"alimail/download_lantu.py"}]},"data_stores":[{"id":"ppt-jobs","type":"filesystem","path":"ppt_extractor_webapp/data/jobs/","description":"Per-job extraction output (in-memory job store; JSON artifacts per job)"},{"id":"pdf-destructure-jobs","type":"filesystem","path":"2process/pdf_destructure/jobs/","description":"PDF destructure job output (pages, content_map, cache)"},{"id":"pdf-mineru-jobs","type":"postgresql+private-cos","path":"pdf-destructure/YYYY/MM/DD/{job_id}/","description":"Owned full-document MinerU jobs, chunks, events, artifacts, original PDFs, raw ZIPs, structured outputs, and delivery bundles"},{"id":"docling-output","type":"filesystem","path":"2process/docling_out/","description":"Docling Markdown output"},{"id":"docling-source","type":"filesystem","path":"2process/ppt/","description":"Source PPTX for Docling batch"},{"id":"aoa-papers","type":"filesystem","path":"papers/aoa-ionophore/pdfs/","description":"AOA ionophore reference PDFs/abstracts (01_–32_)","index":"papers/aoa-ionophore/REFERENCE_INDEX.md"},{"id":"casino-dataset","type":"csv","path":"data-set/","description":"Macau casino normalized CSV/XLSX (not linked to PPT/papers pipeline)"},{"id":"web-capture-jobs","type":"sqlite+cos","path":"/data/web-capture/jobs.sqlite3","description":"Capture job state locally; verified artifacts in private COS under web-captures/YYYY/MM/DD/{job_id}/"},{"id":"global-ingredients","type":"sqlite+jsonl","path":"datasets/ingredients/","description":"Global ingredient DB (ing.* from 1.1.0; hb.* frozen at 1.0.0) + CN-HB corpus; JSONL releases + portal/data/ingredients/*.sqlite3; API /api/ingredients/*","index":"datasets/ingredients/latest.json"},{"id":"places","type":"sqlite+jsonl","path":"datasets/places/","description":"Geography reference (ISO/ADM/locality) linked from ingredient origin.place_ids","index":"datasets/places/latest.json"}],"knowhow":[{"id":"project-rules","path":"cursor_project_rules/README.md","topic":"PPT extractor Route A contract"},{"id":"paper-acquisition","path":"cursor_project_rules/paper-acquisition-knowhow.md","topic":"Paper download skills, Sci-Hub, MCP usage"},{"id":"portal","path":"cursor_project_rules/portal.md","topic":"This portal — agents and humans"},{"id":"pdf-destructure","path":"2process/pdf_destructure/SYSTEM.md","topic":"PDF destructure workflow — architecture, prompts, reuse"},{"id":"implementation-plan","path":"implementation-plan.mdc","topic":"Feature implementation log"},{"id":"ingredient-database","path":"cursor_project_rules/ingredient-database.md","topic":"Hubei ingredient DB schema, API, versioning, licenses"},{"id":"data-ingest","path":"cursor_project_rules/data-ingest.md","topic":"Data scrape/build project for datasets/*"},{"id":"search-apis","path":"cursor_project_rules/search-apis.md","topic":"AnySearch and other search/data APIs"},{"id":"docx-conversion","path":"cursor_project_rules/docx-conversion.md","topic":"MD→DOCX fail-closed quarantine corpus and case intake"}],"live":{"catalog":{"workbenches":10,"skills":6,"mcp_tools":73,"data_stores":10,"pipelines":25},"paper_collection":{"collection":"papers/aoa-ionophore","pdf_dir":"papers/aoa-ionophore/pdfs","summary":{"pdf":0,"abstract_only":0,"missing":32,"total":32},"references":[{"ref":1,"status":"missing","file":null,"size_bytes":0},{"ref":2,"status":"missing","file":null,"size_bytes":0},{"ref":3,"status":"missing","file":null,"size_bytes":0},{"ref":4,"status":"missing","file":null,"size_bytes":0},{"ref":5,"status":"missing","file":null,"size_bytes":0},{"ref":6,"status":"missing","file":null,"size_bytes":0},{"ref":7,"status":"missing","file":null,"size_bytes":0},{"ref":8,"status":"missing","file":null,"size_bytes":0},{"ref":9,"status":"missing","file":null,"size_bytes":0},{"ref":10,"status":"missing","file":null,"size_bytes":0},{"ref":11,"status":"missing","file":null,"size_bytes":0},{"ref":12,"status":"missing","file":null,"size_bytes":0},{"ref":13,"status":"missing","file":null,"size_bytes":0},{"ref":14,"status":"missing","file":null,"size_bytes":0},{"ref":15,"status":"missing","file":null,"size_bytes":0},{"ref":16,"status":"missing","file":null,"size_bytes":0},{"ref":17,"status":"missing","file":null,"size_bytes":0},{"ref":18,"status":"missing","file":null,"size_bytes":0},{"ref":19,"status":"missing","file":null,"size_bytes":0},{"ref":20,"status":"missing","file":null,"size_bytes":0},{"ref":21,"status":"missing","file":null,"size_bytes":0},{"ref":22,"status":"missing","file":null,"size_bytes":0},{"ref":23,"status":"missing","file":null,"size_bytes":0},{"ref":24,"status":"missing","file":null,"size_bytes":0},{"ref":25,"status":"missing","file":null,"size_bytes":0},{"ref":26,"status":"missing","file":null,"size_bytes":0},{"ref":27,"status":"missing","file":null,"size_bytes":0},{"ref":28,"status":"missing","file":null,"size_bytes":0},{"ref":29,"status":"missing","file":null,"size_bytes":0},{"ref":30,"status":"missing","file":null,"size_bytes":0},{"ref":31,"status":"missing","file":null,"size_bytes":0},{"ref":32,"status":"missing","file":null,"size_bytes":0}]},"pdf_destructure":{"jobs_root":"2process/pdf_destructure/jobs","db":{"db_path":"/app/2process/pdf_destructure/jobs/_registry/jobs.sqlite","jobs":7,"pages":198,"events":31,"complete":6},"summary":{"total":7,"running":0,"complete":6},"jobs":[{"job_id":"image30-46d845a7","job_dir":"/app/2process/pdf_destructure/jobs/image30-46d845a7","filename":"image30.pdf","source_pdf":"/app/2process/pdf_destructure/jobs/image30-46d845a7/image30.pdf","page_count":1,"status":"complete","running":false,"runner_pid":null,"overall_pct":100.0,"stages":{"inventory":{"done":true,"at":"2026-07-25T00:35:10.366700+00:00"},"render":{"done":true,"current":1,"total":1,"pct":100.0},"docling":{"done":false,"current":0,"total":1,"chunks_done":0,"chunks_total":1,"pct":0.0},"extract":{"done":true,"current":1,"total":1,"pct":100.0},"layout":{"done":true,"current":1,"total":1,"pct":100.0},"analyze":{"done":true,"current":1,"total":1,"pct":100.0},"map":{"done":true,"has_merged_text":false}},"manifest_stages":{},"category_distribution":{"封面":1},"activity":"=== upload destructure complete → /app/2process/pdf_destructure/jobs/image30-46d845a7 ===","log_updated_at":"2026-07-25T00:35:16.621253+00:00","updated_at":"2026-09-22T04:09:29.323581+00:00","pages_in_db":1,"stages_db":{"analyze":{"status":"done","current":1,"total":1,"pct":100.0,"started_at":"2026-07-25T00:35:13.506674+00:00","completed_at":"2026-09-15T18:23:08.545432+00:00","meta":null},"docling":{"status":"pending","current":0,"total":1,"pct":0.0,"started_at":"2026-07-25T00:35:13.506582+00:00","completed_at":null,"meta":null},"extract":{"status":"done","current":1,"total":1,"pct":100.0,"started_at":"2026-07-25T00:35:13.506609+00:00","completed_at":"2026-09-15T18:23:08.545329+00:00","meta":null},"inventory":{"status":"done","current":null,"total":null,"pct":null,"started_at":"2026-07-25T00:35:13.506361+00:00","completed_at":"2026-09-15T18:23:08.541267+00:00","meta":null},"layout":{"status":"done","current":1,"total":1,"pct":100.0,"started_at":"2026-07-25T00:35:13.506634+00:00","completed_at":"2026-09-15T18:23:08.545363+00:00","meta":null},"map":{"status":"done","current":1,"total":1,"pct":100.0,"started_at":"2026-07-25T00:35:13.506698+00:00","completed_at":"2026-09-15T18:23:08.545468+00:00","meta":null},"render":{"status":"done","current":1,"total":1,"pct":100.0,"started_at":"2026-07-25T00:35:10.367661+00:00","completed_at":"2026-09-15T18:23:08.545229+00:00","meta":null}}},{"job_id":"image30-0422498c","job_dir":"/app/2process/pdf_destructure/jobs/image30-0422498c","filename":"image30.pdf","source_pdf":"/app/2process/pdf_destructure/jobs/image30-0422498c/image30.pdf","page_count":1,"status":"complete","running":false,"runner_pid":null,"overall_pct":100.0,"stages":{"inventory":{"done":true,"at":"2026-07-25T00:34:41.951754+00:00"},"render":{"done":true,"current":1,"total":1,"pct":100.0},"docling":{"done":false,"current":0,"total":1,"chunks_done":0,"chunks_total":1,"pct":0.0},"extract":{"done":true,"current":1,"total":1,"pct":100.0},"layout":{"done":true,"current":1,"total":1,"pct":100.0},"analyze":{"done":true,"current":1,"total":1,"pct":100.0},"map":{"done":true,"has_merged_text":false}},"manifest_stages":{},"category_distribution":{"封面":1},"activity":"=== upload destructure complete → /app/2process/pdf_destructure/jobs/image30-0422498c ===","log_updated_at":"2026-07-25T00:34:48.039169+00:00","updated_at":"2026-09-22T04:09:29.319322+00:00","pages_in_db":1,"stages_db":{"analyze":{"status":"done","current":1,"total":1,"pct":100.0,"started_at":"2026-07-25T00:34:43.475914+00:00","completed_at":"2026-09-15T18:23:08.580855+00:00","meta":null},"docling":{"status":"pending","current":0,"total":1,"pct":0.0,"started_at":"2026-07-25T00:34:43.475811+00:00","completed_at":null,"meta":null},"extract":{"status":"done","current":1,"total":1,"pct":100.0,"started_at":"2026-07-25T00:34:43.475865+00:00","completed_at":"2026-09-15T18:23:08.580802+00:00","meta":null},"inventory":{"status":"done","current":null,"total":null,"pct":null,"started_at":"2026-07-25T00:34:43.475514+00:00","completed_at":"2026-09-15T18:23:08.580542+00:00","meta":null},"layout":{"status":"done","current":1,"total":1,"pct":100.0,"started_at":"2026-07-25T00:34:43.475891+00:00","completed_at":"2026-09-15T18:23:08.580829+00:00","meta":null},"map":{"status":"done","current":1,"total":1,"pct":100.0,"started_at":"2026-07-25T00:34:43.475940+00:00","completed_at":"2026-09-15T18:23:08.580881+00:00","meta":null},"render":{"status":"done","current":1,"total":1,"pct":100.0,"started_at":"2026-07-25T00:34:41.952967+00:00","completed_at":"2026-09-15T18:23:08.580736+00:00","meta":null}}},{"job_id":"pdf-production-fixed-72bfc966","job_dir":"/app/2process/pdf_destructure/jobs/pdf-production-fixed-72bfc966","filename":"pdf-production-fixed.pdf","source_pdf":"/app/2process/pdf_destructure/jobs/pdf-production-fixed-72bfc966/pdf-production-fixed.pdf","page_count":5,"status":"complete","running":false,"runner_pid":null,"overall_pct":100.0,"stages":{"inventory":{"done":true,"at":"2026-07-24T22:27:05.667928+00:00"},"render":{"done":true,"current":5,"total":5,"pct":100.0},"docling":{"done":true,"current":5,"total":5,"chunks_done":1,"chunks_total":1,"pct":100.0},"extract":{"done":true,"current":5,"total":5,"pct":100.0},"layout":{"done":true,"current":5,"total":5,"pct":100.0},"analyze":{"done":true,"current":5,"total":5,"pct":100.0},"map":{"done":true,"has_merged_text":true}},"manifest_stages":{"inventory":{"status":"done","at":"2026-07-24T22:27:05.668113+00:00"},"extract":{"status":"done","at":"2026-07-24T22:28:11.997665+00:00"},"analyze":{"status":"done","at":"2026-07-24T22:28:12.028260+00:00"},"map":{"status":"done","at":"2026-07-24T22:28:12.042771+00:00"}},"category_distribution":{"封面":4,"章节扉页":1},"activity":"=== workflow complete → /app/2process/pdf_destructure/jobs/pdf-production-fixed-72bfc966 ===","log_updated_at":"2026-07-24T22:28:12.051267+00:00","updated_at":"2026-09-22T04:09:29.327923+00:00","pages_in_db":5,"stages_db":{"analyze":{"status":"done","current":5,"total":5,"pct":100.0,"started_at":"2026-07-24T22:28:12.004806+00:00","completed_at":"2026-09-15T18:23:08.625422+00:00","meta":null},"docling":{"status":"done","current":5,"total":5,"pct":100.0,"started_at":"2026-07-24T22:28:12.004748+00:00","completed_at":"2026-09-15T18:23:08.625330+00:00","meta":null},"extract":{"status":"done","current":5,"total":5,"pct":100.0,"started_at":"2026-07-24T22:27:05.672728+00:00","completed_at":"2026-09-15T18:23:08.625363+00:00","meta":null},"inventory":{"status":"done","current":5,"total":5,"pct":100.0,"started_at":"2026-07-24T22:27:05.664511+00:00","completed_at":"2026-09-15T18:23:08.625046+00:00","meta":null},"layout":{"status":"done","current":5,"total":5,"pct":100.0,"started_at":"2026-07-24T22:28:12.000804+00:00","completed_at":"2026-09-15T18:23:08.625394+00:00","meta":null},"map":{"status":"done","current":null,"total":null,"pct":100.0,"started_at":"2026-07-24T22:28:12.004824+00:00","completed_at":"2026-09-15T18:23:08.625450+00:00","meta":null},"render":{"status":"done","current":5,"total":5,"pct":100.0,"started_at":"2026-07-24T22:28:12.004717+00:00","completed_at":"2026-09-15T18:23:08.625286+00:00","meta":null}}},{"job_id":"pdf-production-valid-74d3f796","job_dir":"/app/2process/pdf_destructure/jobs/pdf-production-valid-74d3f796","filename":"pdf-production-valid.pdf","source_pdf":"/app/2process/pdf_destructure/jobs/pdf-production-valid-74d3f796/pdf-production-valid.pdf","page_count":5,"status":"pending","running":false,"runner_pid":null,"overall_pct":7.0,"stages":{"inventory":{"done":true,"at":"2026-07-24T22:18:57.122124+00:00"},"render":{"done":true,"current":5,"total":5,"pct":100.0},"docling":{"done":false,"current":0,"total":5,"chunks_done":0,"chunks_total":1,"pct":0.0},"extract":{"done":false,"current":0,"total":5,"pct":0.0},"layout":{"done":false,"current":0,"total":5,"pct":0.0},"analyze":{"done":false,"current":0,"total":5,"pct":0.0},"map":{"done":false,"has_merged_text":false}},"manifest_stages":{"inventory":{"status":"done","at":"2026-07-24T22:18:57.122320+00:00"}},"category_distribution":{},"activity":"Docling OCR 1-5 …","log_updated_at":"2026-07-24T22:18:58.020586+00:00","updated_at":"2026-09-22T04:09:29.335912+00:00","pages_in_db":0,"stages_db":{"analyze":{"status":"pending","current":0,"total":5,"pct":0.0,"started_at":"2026-07-24T22:19:03.486854+00:00","completed_at":null,"meta":null},"docling":{"status":"pending","current":0,"total":5,"pct":0.0,"started_at":"2026-07-24T22:19:03.486779+00:00","completed_at":null,"meta":null},"extract":{"status":"pending","current":0,"total":5,"pct":0.0,"started_at":"2026-07-24T22:18:57.127260+00:00","completed_at":null,"meta":null},"inventory":{"status":"done","current":5,"total":5,"pct":100.0,"started_at":"2026-07-24T22:18:57.118808+00:00","completed_at":"2026-09-15T18:23:08.680371+00:00","meta":null},"layout":{"status":"pending","current":0,"total":5,"pct":0.0,"started_at":"2026-07-24T22:19:03.486817+00:00","completed_at":null,"meta":null},"map":{"status":"pending","current":null,"total":null,"pct":0.0,"started_at":"2026-07-24T22:19:03.486881+00:00","completed_at":null,"meta":null},"render":{"status":"done","current":5,"total":5,"pct":100.0,"started_at":"2026-07-24T22:19:03.486750+00:00","completed_at":"2026-09-15T18:23:08.680597+00:00","meta":null}}},{"job_id":"pdf-production-qa-05ff27c4","job_dir":"/app/2process/pdf_destructure/jobs/pdf-production-qa-05ff27c4","filename":"pdf-production-qa.pdf","source_pdf":"/app/2process/pdf_destructure/jobs/pdf-production-qa-05ff27c4/pdf-production-qa.pdf","page_count":0,"status":"complete","running":false,"runner_pid":null,"overall_pct":100.0,"stages":{"inventory":{"done":true,"at":"2026-07-24T22:18:48.257617+00:00"},"render":{"done":false,"current":0,"total":0,"pct":0},"docling":{"done":false,"current":0,"total":0,"chunks_done":0,"chunks_total":0,"pct":0},"extract":{"done":false,"current":0,"total":0,"pct":0},"layout":{"done":false,"current":0,"total":0,"pct":0},"analyze":{"done":false,"current":0,"total":0,"pct":0},"map":{"done":true,"has_merged_text":true}},"manifest_stages":{"inventory":{"status":"done","at":"2026-07-24T22:18:48.257799+00:00"},"extract":{"status":"done","at":"2026-07-24T22:18:48.633575+00:00"},"analyze":{"status":"done","at":"2026-07-24T22:18:48.647340+00:00"},"map":{"status":"done","at":"2026-07-24T22:18:48.657109+00:00"}},"category_distribution":{},"activity":"=== workflow complete → /app/2process/pdf_destructure/jobs/pdf-production-qa-05ff27c4 ===","log_updated_at":"2026-07-24T22:18:48.663558+00:00","updated_at":"2026-09-22T04:09:29.331966+00:00","pages_in_db":0,"stages_db":{"analyze":{"status":"pending","current":0,"total":0,"pct":0.0,"started_at":"2026-07-24T22:18:48.640996+00:00","completed_at":null,"meta":null},"docling":{"status":"pending","current":0,"total":0,"pct":0.0,"started_at":"2026-07-24T22:18:48.640940+00:00","completed_at":null,"meta":null},"extract":{"status":"pending","current":0,"total":0,"pct":0.0,"started_at":"2026-07-24T22:18:48.262618+00:00","completed_at":null,"meta":null},"inventory":{"status":"done","current":0,"total":0,"pct":100.0,"started_at":"2026-07-24T22:18:48.254338+00:00","completed_at":"2026-09-15T18:23:08.700877+00:00","meta":null},"layout":{"status":"pending","current":0,"total":0,"pct":0.0,"started_at":"2026-07-24T22:18:48.637144+00:00","completed_at":null,"meta":null},"map":{"status":"done","current":null,"total":null,"pct":100.0,"started_at":"2026-07-24T22:18:48.641013+00:00","completed_at":"2026-09-15T18:23:08.701258+00:00","meta":null},"render":{"status":"pending","current":0,"total":0,"pct":0.0,"started_at":"2026-07-24T22:18:48.640905+00:00","completed_at":null,"meta":null}}},{"job_id":"ui-ocr-production-0e2dadf6","job_dir":"/app/2process/pdf_destructure/jobs/ui-ocr-production-0e2dadf6","filename":"ui-ocr-production.pdf","source_pdf":"/app/2process/pdf_destructure/jobs/ui-ocr-production-0e2dadf6/ui-ocr-production.pdf","page_count":1,"status":"complete","running":false,"runner_pid":null,"overall_pct":100.0,"stages":{"inventory":{"done":true,"at":"2026-07-24T22:17:58.630860+00:00"},"render":{"done":true,"current":1,"total":1,"pct":100.0},"docling":{"done":false,"current":0,"total":1,"chunks_done":0,"chunks_total":1,"pct":0.0},"extract":{"done":true,"current":1,"total":1,"pct":100.0},"layout":{"done":true,"current":1,"total":1,"pct":100.0},"analyze":{"done":true,"current":1,"total":1,"pct":100.0},"map":{"done":true,"has_merged_text":false}},"manifest_stages":{},"category_distribution":{"封面":1},"activity":"=== upload destructure complete → /app/2process/pdf_destructure/jobs/ui-ocr-production-0e2dadf6 ===","log_updated_at":"2026-07-24T22:18:05.790428+00:00","updated_at":"2026-09-22T04:09:29.339962+00:00","pages_in_db":1,"stages_db":{"analyze":{"status":"done","current":1,"total":1,"pct":100.0,"started_at":"2026-07-24T22:18:05.776222+00:00","completed_at":"2026-09-15T18:23:08.733866+00:00","meta":null},"docling":{"status":"pending","current":0,"total":1,"pct":0.0,"started_at":"2026-07-24T22:18:05.783761+00:00","completed_at":null,"meta":null},"extract":{"status":"done","current":1,"total":1,"pct":100.0,"started_at":"2026-07-24T22:18:05.763124+00:00","completed_at":"2026-09-15T18:23:08.733813+00:00","meta":null},"inventory":{"status":"done","current":null,"total":null,"pct":null,"started_at":"2026-07-24T22:18:05.783577+00:00","completed_at":"2026-09-15T18:23:08.733534+00:00","meta":null},"layout":{"status":"done","current":1,"total":1,"pct":100.0,"started_at":"2026-07-24T22:18:05.759632+00:00","completed_at":"2026-09-15T18:23:08.733840+00:00","meta":null},"map":{"status":"done","current":1,"total":1,"pct":100.0,"started_at":"2026-07-24T22:18:05.778528+00:00","completed_at":"2026-09-15T18:23:08.733892+00:00","meta":null},"render":{"status":"done","current":1,"total":1,"pct":100.0,"started_at":"2026-07-24T22:17:58.632008+00:00","completed_at":"2026-09-15T18:23:08.733740+00:00","meta":null}}},{"job_id":"huangtitong-clinical-outcomes-190p","job_dir":"/app/2process/pdf_destructure/jobs/huangtitong-clinical-outcomes-190p","filename":"黄体酮注射临床特征与结局评估量表.pdf","source_pdf":"/Users/af/Public/APUCH/IPTrust/TableAI/proposal/0论文哈哈/护理article/数据/黄体酮注射临床特征与结局评估量表.pdf","page_count":190,"status":"complete","running":false,"runner_pid":null,"overall_pct":100.0,"stages":{"inventory":{"done":true,"at":"2026-08-27T23:11:54.077661+00:00"},"render":{"done":true,"current":190,"total":190,"pct":100.0},"docling":{"done":false,"current":0,"total":190,"chunks_done":0,"chunks_total":10,"pct":0.0},"extract":{"done":true,"current":190,"total":190,"pct":100.0},"layout":{"done":true,"current":190,"total":190,"pct":100.0},"analyze":{"done":true,"current":190,"total":190,"pct":100.0},"map":{"done":true,"has_merged_text":true}},"manifest_stages":{"inventory":{"status":"done","at":"2026-08-27T23:11:54.077974+00:00"},"extract":{"status":"done","at":"2026-08-27T23:19:41.633644+00:00"},"analyze":{"status":"done","at":"2026-08-27T23:19:41.746921+00:00"},"map":{"status":"done","at":"2026-08-27T23:19:41.757728+00:00"}},"category_distribution":{"封面":96,"章节扉页":42,"引用":52},"activity":"","log_updated_at":null,"updated_at":"2026-09-22T04:09:29.315068+00:00","pages_in_db":190,"stages_db":{"analyze":{"status":"done","current":190,"total":190,"pct":100.0,"started_at":"2026-08-29T03:50:20.878156+00:00","completed_at":"2026-09-15T18:23:08.785264+00:00","meta":null},"docling":{"status":"pending","current":0,"total":190,"pct":0.0,"started_at":"2026-08-29T03:50:20.878076+00:00","completed_at":null,"meta":null},"extract":{"status":"done","current":190,"total":190,"pct":100.0,"started_at":"2026-08-29T03:50:20.878104+00:00","completed_at":"2026-09-15T18:23:08.785202+00:00","meta":null},"inventory":{"status":"done","current":null,"total":null,"pct":null,"started_at":"2026-08-29T03:50:20.877833+00:00","completed_at":"2026-09-15T18:23:08.778864+00:00","meta":null},"layout":{"status":"done","current":190,"total":190,"pct":100.0,"started_at":"2026-08-29T03:50:20.878130+00:00","completed_at":"2026-09-15T18:23:08.785234+00:00","meta":null},"map":{"status":"done","current":null,"total":null,"pct":100.0,"started_at":"2026-08-29T03:50:20.878183+00:00","completed_at":"2026-09-15T18:23:08.785292+00:00","meta":null},"render":{"status":"done","current":190,"total":190,"pct":100.0,"started_at":"2026-08-29T03:50:20.878041+00:00","completed_at":"2026-09-15T18:23:08.779040+00:00","meta":null}}}]}}}