gitextract_9tihp5kp/ ├── .clang-format ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── config.yml │ │ ├── feature_request.yml │ │ └── question.yml │ ├── PULL_REQUEST_TEMPLATE.md │ ├── dependabot.yml │ └── workflows/ │ ├── _build.yml │ ├── _codeql.yml │ ├── _lint.yml │ ├── _publish.yml │ ├── _test_full.yml │ ├── _test_lite.yml │ ├── build-docker-image.yml │ ├── ci.yml │ ├── pr-review.yml │ ├── pr.yml │ ├── release-vikingbot-first.yml │ ├── release.yml │ ├── rust-cli.yml │ └── schedule.yml ├── .gitignore ├── .pr_agent.toml ├── .pre-commit-config.yaml ├── CONTRIBUTING.md ├── CONTRIBUTING_CN.md ├── CONTRIBUTING_JA.md ├── Cargo.toml ├── Dockerfile ├── LICENSE ├── MANIFEST.in ├── Makefile ├── README.md ├── README_CN.md ├── README_JA.md ├── bot/ │ ├── .coveragerc │ ├── .dockerignore │ ├── .github/ │ │ └── workflows/ │ │ ├── release.yml │ │ └── test.yml │ ├── .gitignore │ ├── README.md │ ├── README_CN.md │ ├── SECURITY.md │ ├── bridge/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── server.ts │ │ │ ├── types.d.ts │ │ │ └── whatsapp.ts │ │ └── tsconfig.json │ ├── deploy/ │ │ ├── Dockerfile │ │ ├── docker/ │ │ │ ├── Dockerfile │ │ │ ├── README.md │ │ │ ├── build-image.sh │ │ │ ├── build-multiarch.sh │ │ │ ├── deploy.sh │ │ │ ├── deploy_langfuse.sh │ │ │ ├── docker-entrypoint.sh │ │ │ ├── image_upload.example.yaml │ │ │ ├── image_upload.sh │ │ │ ├── langfuse/ │ │ │ │ └── docker-compose.yml │ │ │ └── stop.sh │ │ ├── ecs/ │ │ │ └── README.md │ │ └── vke/ │ │ ├── README.md │ │ ├── deploy.sh │ │ ├── k8s/ │ │ │ ├── deployment.yaml │ │ │ ├── pvc-nas-example.yaml │ │ │ ├── pvc-tos-example.yaml │ │ │ └── pvc-tos.yaml │ │ └── vke_deploy.example.yaml │ ├── docs/ │ │ ├── CHANNEL.md │ │ ├── openclaw-plugin-analysis.md │ │ └── rfc-openviking-cli-ov-chat.md │ ├── eval/ │ │ ├── locomo/ │ │ │ ├── judge.py │ │ │ ├── run_eval.py │ │ │ └── stat_judge_result.py │ │ └── skillsbench/ │ │ └── skill_bench_eval.py │ ├── license/ │ │ └── LICENSE │ ├── package.json │ ├── scripts/ │ │ ├── clean_vikingbot.sh │ │ ├── restart_openviking_server.sh │ │ ├── start_vikingbot_in_ecs.sh │ │ └── test_all.sh │ ├── tests/ │ │ ├── conftest.py │ │ ├── example.py │ │ ├── experience_data_mini.json │ │ └── test_chat_functionality.py │ ├── vikingbot/ │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── agent/ │ │ │ ├── __init__.py │ │ │ ├── context.py │ │ │ ├── loop.py │ │ │ ├── memory.py │ │ │ ├── skills.py │ │ │ ├── subagent.py │ │ │ └── tools/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── cron.py │ │ │ ├── factory.py │ │ │ ├── filesystem.py │ │ │ ├── image.py │ │ │ ├── message.py │ │ │ ├── ov_file.py │ │ │ ├── registry.py │ │ │ ├── shell.py │ │ │ ├── spawn.py │ │ │ ├── web.py │ │ │ └── websearch/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── brave.py │ │ │ ├── ddgs.py │ │ │ ├── exa.py │ │ │ ├── registry.py │ │ │ └── tavily.py │ │ ├── bus/ │ │ │ ├── __init__.py │ │ │ ├── events.py │ │ │ └── queue.py │ │ ├── channels/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── chat.py │ │ │ ├── dingtalk.py │ │ │ ├── discord.py │ │ │ ├── email.py │ │ │ ├── feishu.py │ │ │ ├── manager.py │ │ │ ├── mochat.py │ │ │ ├── openapi.py │ │ │ ├── openapi_models.py │ │ │ ├── qq.py │ │ │ ├── single_turn.py │ │ │ ├── slack.py │ │ │ ├── telegram.py │ │ │ ├── utils.py │ │ │ └── whatsapp.py │ │ ├── cli/ │ │ │ ├── __init__.py │ │ │ └── commands.py │ │ ├── config/ │ │ │ ├── __init__.py │ │ │ ├── loader.py │ │ │ └── schema.py │ │ ├── console/ │ │ │ ├── README_GRADIO.md │ │ │ ├── __init__.py │ │ │ └── web_console.py │ │ ├── cron/ │ │ │ ├── __init__.py │ │ │ ├── service.py │ │ │ └── types.py │ │ ├── heartbeat/ │ │ │ ├── __init__.py │ │ │ └── service.py │ │ ├── hooks/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── builtins/ │ │ │ │ ├── __init__.py │ │ │ │ └── openviking_hooks.py │ │ │ └── manager.py │ │ ├── integrations/ │ │ │ ├── __init__.py │ │ │ └── langfuse.py │ │ ├── openviking_mount/ │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── fuse_finder.py │ │ │ ├── fuse_proxy.py │ │ │ ├── fuse_simple.py │ │ │ ├── fuse_simple_debug.py │ │ │ ├── manager.py │ │ │ ├── mount.py │ │ │ ├── ov_server.py │ │ │ ├── session_integration.py │ │ │ ├── user_apikey_manager.py │ │ │ └── viking_fuse.py │ │ ├── providers/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── litellm_provider.py │ │ │ ├── registry.py │ │ │ └── transcription.py │ │ ├── sandbox/ │ │ │ ├── __init__.py │ │ │ ├── backends/ │ │ │ │ ├── __init__.py │ │ │ │ ├── aiosandbox.py │ │ │ │ ├── direct.py │ │ │ │ ├── opensandbox.py │ │ │ │ ├── srt-wrapper.mjs │ │ │ │ └── srt.py │ │ │ ├── base.py │ │ │ └── manager.py │ │ ├── session/ │ │ │ ├── __init__.py │ │ │ └── manager.py │ │ ├── tests/ │ │ │ ├── __init__.py │ │ │ ├── integration/ │ │ │ │ └── __init__.py │ │ │ └── unit/ │ │ │ ├── __init__.py │ │ │ ├── test_agent/ │ │ │ │ └── __init__.py │ │ │ ├── test_bus/ │ │ │ │ └── __init__.py │ │ │ ├── test_channels/ │ │ │ │ └── __init__.py │ │ │ └── test_config/ │ │ │ └── __init__.py │ │ └── utils/ │ │ ├── __init__.py │ │ ├── helpers.py │ │ └── tracing.py │ └── workspace/ │ ├── HEARTBEAT.md │ ├── SOUL.md │ ├── TOOLS.md │ ├── USER.md │ ├── memory/ │ │ └── MEMORY.md │ └── skills/ │ ├── README.md │ ├── cron/ │ │ └── SKILL.md │ ├── github/ │ │ └── SKILL.md │ ├── github-proxy/ │ │ ├── SKILL.md │ │ └── scripts/ │ │ └── convert_url.py │ ├── opencode/ │ │ ├── SKILL.md │ │ ├── list_sessions.py │ │ ├── opencode_utils.py │ │ └── status.json │ ├── skill-creator/ │ │ └── SKILL.md │ ├── summarize/ │ │ └── SKILL.md │ ├── tmux/ │ │ ├── SKILL.md │ │ └── scripts/ │ │ ├── find-sessions.sh │ │ └── wait-for-text.sh │ └── weather/ │ └── SKILL.md ├── build_support/ │ ├── __init__.py │ └── x86_profiles.py ├── crates/ │ └── ov_cli/ │ ├── Cargo.toml │ ├── README.md │ ├── install.sh │ ├── src/ │ │ ├── client.rs │ │ ├── commands/ │ │ │ ├── admin.rs │ │ │ ├── chat.rs │ │ │ ├── content.rs │ │ │ ├── filesystem.rs │ │ │ ├── mod.rs │ │ │ ├── observer.rs │ │ │ ├── pack.rs │ │ │ ├── relations.rs │ │ │ ├── resources.rs │ │ │ ├── search.rs │ │ │ ├── session.rs │ │ │ └── system.rs │ │ ├── config.rs │ │ ├── error.rs │ │ ├── main.rs │ │ ├── output.rs │ │ ├── tui/ │ │ │ ├── app.rs │ │ │ ├── event.rs │ │ │ ├── mod.rs │ │ │ ├── tree.rs │ │ │ └── ui.rs │ │ └── utils.rs │ └── test_ov.sh ├── deploy/ │ └── helm/ │ ├── README.md │ └── openviking/ │ ├── .helmignore │ ├── Chart.yaml │ ├── templates/ │ │ ├── NOTES.txt │ │ ├── _helpers.tpl │ │ ├── configmap.yaml │ │ ├── deployment.yaml │ │ ├── ingress.yaml │ │ ├── pvc.yaml │ │ └── service.yaml │ └── values.yaml ├── docker-compose.yml ├── docs/ │ ├── design/ │ │ ├── multi-tenant-design.md │ │ └── openclaw-integration.md │ ├── en/ │ │ ├── about/ │ │ │ ├── 01-about-us.md │ │ │ ├── 02-changelog.md │ │ │ └── 03-roadmap.md │ │ ├── api/ │ │ │ ├── 01-overview.md │ │ │ ├── 02-resources.md │ │ │ ├── 03-filesystem.md │ │ │ ├── 04-skills.md │ │ │ ├── 05-sessions.md │ │ │ ├── 06-retrieval.md │ │ │ ├── 07-system.md │ │ │ └── 08-admin.md │ │ ├── concepts/ │ │ │ ├── 01-architecture.md │ │ │ ├── 02-context-types.md │ │ │ ├── 03-context-layers.md │ │ │ ├── 04-viking-uri.md │ │ │ ├── 05-storage.md │ │ │ ├── 06-extraction.md │ │ │ ├── 07-retrieval.md │ │ │ ├── 08-session.md │ │ │ └── 09-transaction.md │ │ ├── faq/ │ │ │ └── faq.md │ │ ├── getting-started/ │ │ │ ├── 01-introduction.md │ │ │ ├── 02-quickstart.md │ │ │ └── 03-quickstart-server.md │ │ └── guides/ │ │ ├── 01-configuration.md │ │ ├── 02-volcengine-purchase-guide.md │ │ ├── 03-deployment.md │ │ ├── 04-authentication.md │ │ ├── 05-monitoring.md │ │ ├── 06-mcp-integration.md │ │ └── 07-operation-telemetry.md │ └── zh/ │ ├── about/ │ │ ├── 01-about-us.md │ │ ├── 02-changelog.md │ │ └── 03-roadmap.md │ ├── api/ │ │ ├── 01-overview.md │ │ ├── 02-resources.md │ │ ├── 03-filesystem.md │ │ ├── 04-skills.md │ │ ├── 05-sessions.md │ │ ├── 06-retrieval.md │ │ ├── 07-system.md │ │ └── 08-admin.md │ ├── concepts/ │ │ ├── 01-architecture.md │ │ ├── 02-context-types.md │ │ ├── 03-context-layers.md │ │ ├── 04-viking-uri.md │ │ ├── 05-storage.md │ │ ├── 06-extraction.md │ │ ├── 07-retrieval.md │ │ ├── 08-session.md │ │ └── 09-transaction.md │ ├── faq/ │ │ └── faq.md │ ├── getting-started/ │ │ ├── 01-introduction.md │ │ ├── 02-quickstart.md │ │ └── 03-quickstart-server.md │ └── guides/ │ ├── 01-configuration.md │ ├── 02-volcengine-purchase-guide.md │ ├── 03-deployment.md │ ├── 04-authentication.md │ ├── 05-monitoring.md │ ├── 06-mcp-integration.md │ └── 07-operation-telemetry.md ├── examples/ │ ├── claude-memory-plugin/ │ │ ├── .claude-plugin/ │ │ │ └── plugin.json │ │ ├── README.md │ │ ├── hooks/ │ │ │ ├── common.sh │ │ │ ├── hooks.json │ │ │ ├── session-end.sh │ │ │ ├── session-start.sh │ │ │ ├── stop.sh │ │ │ └── user-prompt-submit.sh │ │ ├── scripts/ │ │ │ ├── ov_memory.py │ │ │ └── run_e2e_claude_session.sh │ │ └── skills/ │ │ └── memory-recall/ │ │ └── SKILL.md │ ├── cloud/ │ │ ├── .gitignore │ │ ├── GUIDE.md │ │ ├── alice.py │ │ ├── bob.py │ │ ├── ov.conf.example │ │ └── setup_users.py │ ├── common/ │ │ ├── __init__.py │ │ ├── boring_logging_config.py │ │ ├── recipe.py │ │ └── resource_manager.py │ ├── k8s-helm/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── README.md │ │ ├── templates/ │ │ │ ├── NOTES.txt │ │ │ ├── _helpers.tpl │ │ │ ├── deployment.yaml │ │ │ ├── secret.yaml │ │ │ └── service.yaml │ │ └── values.yaml │ ├── mcp-query/ │ │ ├── README.md │ │ ├── ov.conf.example │ │ ├── pyproject.toml │ │ └── server.py │ ├── misc/ │ │ └── memory_demo.py │ ├── multi_tenant/ │ │ ├── README.md │ │ ├── admin_workflow.py │ │ ├── admin_workflow.sh │ │ ├── ov.conf.example │ │ └── pyproject.toml │ ├── openclaw-plugin/ │ │ ├── .gitignore │ │ ├── INSTALL-AGENT.md │ │ ├── INSTALL-ZH.md │ │ ├── INSTALL.md │ │ ├── README.md │ │ ├── client.ts │ │ ├── config.ts │ │ ├── context-engine.ts │ │ ├── demo-memory-ajie.py │ │ ├── demo-memory-xiaomei.py │ │ ├── index.ts │ │ ├── install.ps1 │ │ ├── install.sh │ │ ├── memory-ranking.ts │ │ ├── openclaw.plugin.json │ │ ├── package.json │ │ ├── process-manager.ts │ │ ├── setup-helper/ │ │ │ ├── install.js │ │ │ └── package.json │ │ ├── skills/ │ │ │ └── install-openviking-memory/ │ │ │ └── SKILL.md │ │ ├── text-utils.ts │ │ └── tsconfig.json │ ├── opencode/ │ │ └── plugin/ │ │ ├── README.md │ │ ├── index.mjs │ │ ├── package.json │ │ └── skills/ │ │ └── openviking/ │ │ └── SKILL.md │ ├── opencode-memory-plugin/ │ │ ├── .gitignore │ │ ├── INSTALL-ZH.md │ │ ├── README.md │ │ ├── openviking-config.example.json │ │ └── openviking-memory.ts │ ├── ov.conf.example │ ├── ovcli.conf.example │ ├── quick_start.py │ ├── server_client/ │ │ ├── README.md │ │ ├── client_async.py │ │ ├── client_cli.sh │ │ ├── client_sync.py │ │ ├── ov.conf.example │ │ ├── ovcli.conf.example │ │ └── pyproject.toml │ ├── skills/ │ │ ├── ov-add-data/ │ │ │ └── SKILL.md │ │ ├── ov-search-context/ │ │ │ └── SKILL.md │ │ └── ov-server-operate/ │ │ └── SKILL.md │ └── watch_resource_example.py ├── openviking/ │ ├── __init__.py │ ├── agfs_manager.py │ ├── async_client.py │ ├── client/ │ │ ├── __init__.py │ │ ├── local.py │ │ └── session.py │ ├── client.py │ ├── console/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── app.py │ │ ├── bootstrap.py │ │ ├── config.py │ │ └── static/ │ │ ├── app.js │ │ ├── index.html │ │ └── styles.css │ ├── core/ │ │ ├── __init__.py │ │ ├── building_tree.py │ │ ├── context.py │ │ ├── directories.py │ │ ├── mcp_converter.py │ │ └── skill_loader.py │ ├── eval/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── datasets/ │ │ │ └── local_doc_example_glm5.jsonl │ │ ├── ragas/ │ │ │ ├── __init__.py │ │ │ ├── analyze_records.py │ │ │ ├── base.py │ │ │ ├── generator.py │ │ │ ├── pipeline.py │ │ │ ├── play_recorder.py │ │ │ ├── playback.py │ │ │ ├── rag_eval.py │ │ │ ├── record_analysis.py │ │ │ └── types.py │ │ └── recorder/ │ │ ├── __init__.py │ │ ├── async_writer.py │ │ ├── playback.py │ │ ├── recorder.py │ │ ├── recording_client.py │ │ ├── types.py │ │ └── wrapper.py │ ├── message/ │ │ ├── __init__.py │ │ ├── message.py │ │ └── part.py │ ├── models/ │ │ ├── __init__.py │ │ ├── embedder/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── gemini_embedders.py │ │ │ ├── jina_embedders.py │ │ │ ├── minimax_embedders.py │ │ │ ├── openai_embedders.py │ │ │ ├── vikingdb_embedders.py │ │ │ ├── volcengine_embedders.py │ │ │ └── voyage_embedders.py │ │ └── vlm/ │ │ ├── __init__.py │ │ ├── backends/ │ │ │ ├── litellm_vlm.py │ │ │ ├── openai_vlm.py │ │ │ └── volcengine_vlm.py │ │ ├── base.py │ │ ├── llm.py │ │ ├── registry.py │ │ └── token_usage.py │ ├── parse/ │ │ ├── __init__.py │ │ ├── base.py │ │ ├── converter.py │ │ ├── custom.py │ │ ├── directory_scan.py │ │ ├── ovpack/ │ │ │ └── __init__.py │ │ ├── parsers/ │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── base_parser.py │ │ │ ├── code/ │ │ │ │ ├── README.md │ │ │ │ ├── __init__.py │ │ │ │ ├── ast/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── extractor.py │ │ │ │ │ ├── languages/ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── base.py │ │ │ │ │ │ ├── cpp.py │ │ │ │ │ │ ├── csharp.py │ │ │ │ │ │ ├── go.py │ │ │ │ │ │ ├── java.py │ │ │ │ │ │ ├── js_ts.py │ │ │ │ │ │ ├── python.py │ │ │ │ │ │ └── rust.py │ │ │ │ │ └── skeleton.py │ │ │ │ └── code.py │ │ │ ├── constants.py │ │ │ ├── directory.py │ │ │ ├── epub.py │ │ │ ├── excel.py │ │ │ ├── html.py │ │ │ ├── legacy_doc.py │ │ │ ├── markdown.py │ │ │ ├── media/ │ │ │ │ ├── __init__.py │ │ │ │ ├── audio.py │ │ │ │ ├── constants.py │ │ │ │ ├── image.py │ │ │ │ ├── utils.py │ │ │ │ └── video.py │ │ │ ├── pdf.py │ │ │ ├── powerpoint.py │ │ │ ├── text.py │ │ │ ├── upload_utils.py │ │ │ ├── word.py │ │ │ └── zip_parser.py │ │ ├── registry.py │ │ ├── resource_detector/ │ │ │ ├── __init__.py │ │ │ ├── detect_info.py │ │ │ ├── recursive.py │ │ │ ├── size.py │ │ │ └── visit.py │ │ ├── tree_builder.py │ │ └── vlm.py │ ├── prompts/ │ │ ├── __init__.py │ │ ├── manager.py │ │ └── templates/ │ │ ├── compression/ │ │ │ ├── dedup_decision.yaml │ │ │ ├── field_compress.yaml │ │ │ ├── memory_extraction.yaml │ │ │ ├── memory_merge.yaml │ │ │ ├── memory_merge_bundle.yaml │ │ │ └── structured_summary.yaml │ │ ├── indexing/ │ │ │ └── relevance_scoring.yaml │ │ ├── parsing/ │ │ │ ├── chapter_analysis.yaml │ │ │ ├── context_generation.yaml │ │ │ ├── image_summary.yaml │ │ │ └── semantic_grouping.yaml │ │ ├── processing/ │ │ │ ├── interaction_learning.yaml │ │ │ ├── strategy_extraction.yaml │ │ │ └── tool_chain_analysis.yaml │ │ ├── retrieval/ │ │ │ └── intent_analysis.yaml │ │ ├── semantic/ │ │ │ ├── code_ast_summary.yaml │ │ │ ├── code_summary.yaml │ │ │ ├── document_summary.yaml │ │ │ ├── file_summary.yaml │ │ │ └── overview_generation.yaml │ │ ├── skill/ │ │ │ └── overview_generation.yaml │ │ ├── test/ │ │ │ └── skill_test_generation.yaml │ │ └── vision/ │ │ ├── batch_filtering.yaml │ │ ├── image_filtering.yaml │ │ ├── image_understanding.yaml │ │ ├── page_understanding.yaml │ │ ├── page_understanding_batch.yaml │ │ ├── table_understanding.yaml │ │ └── unified_analysis.yaml │ ├── pyagfs/ │ │ ├── __init__.py │ │ ├── binding_client.py │ │ ├── client.py │ │ ├── exceptions.py │ │ └── helpers.py │ ├── resource/ │ │ ├── __init__.py │ │ ├── watch_manager.py │ │ └── watch_scheduler.py │ ├── retrieve/ │ │ ├── __init__.py │ │ ├── hierarchical_retriever.py │ │ ├── intent_analyzer.py │ │ ├── memory_lifecycle.py │ │ └── retrieval_stats.py │ ├── server/ │ │ ├── __init__.py │ │ ├── api_keys.py │ │ ├── app.py │ │ ├── auth.py │ │ ├── bootstrap.py │ │ ├── config.py │ │ ├── dependencies.py │ │ ├── identity.py │ │ ├── models.py │ │ ├── routers/ │ │ │ ├── __init__.py │ │ │ ├── admin.py │ │ │ ├── bot.py │ │ │ ├── content.py │ │ │ ├── debug.py │ │ │ ├── filesystem.py │ │ │ ├── observer.py │ │ │ ├── pack.py │ │ │ ├── relations.py │ │ │ ├── resources.py │ │ │ ├── search.py │ │ │ ├── sessions.py │ │ │ ├── system.py │ │ │ └── tasks.py │ │ └── telemetry.py │ ├── service/ │ │ ├── __init__.py │ │ ├── core.py │ │ ├── debug_service.py │ │ ├── fs_service.py │ │ ├── pack_service.py │ │ ├── relation_service.py │ │ ├── resource_service.py │ │ ├── search_service.py │ │ ├── session_service.py │ │ └── task_tracker.py │ ├── session/ │ │ ├── __init__.py │ │ ├── compressor.py │ │ ├── memory_archiver.py │ │ ├── memory_deduplicator.py │ │ ├── memory_extractor.py │ │ ├── session.py │ │ └── tool_skill_utils.py │ ├── storage/ │ │ ├── __init__.py │ │ ├── collection_schemas.py │ │ ├── errors.py │ │ ├── expr.py │ │ ├── local_fs.py │ │ ├── observers/ │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── base_observer.py │ │ │ ├── lock_observer.py │ │ │ ├── queue_observer.py │ │ │ ├── retrieval_observer.py │ │ │ ├── vikingdb_observer.py │ │ │ └── vlm_observer.py │ │ ├── queuefs/ │ │ │ ├── __init__.py │ │ │ ├── embedding_msg.py │ │ │ ├── embedding_msg_converter.py │ │ │ ├── embedding_queue.py │ │ │ ├── embedding_tracker.py │ │ │ ├── named_queue.py │ │ │ ├── queue_manager.py │ │ │ ├── semantic_dag.py │ │ │ ├── semantic_msg.py │ │ │ ├── semantic_processor.py │ │ │ └── semantic_queue.py │ │ ├── transaction/ │ │ │ ├── __init__.py │ │ │ ├── lock_context.py │ │ │ ├── lock_handle.py │ │ │ ├── lock_manager.py │ │ │ ├── path_lock.py │ │ │ └── redo_log.py │ │ ├── vectordb/ │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── collection/ │ │ │ │ ├── __init__.py │ │ │ │ ├── collection.py │ │ │ │ ├── http_collection.py │ │ │ │ ├── local_collection.py │ │ │ │ ├── result.py │ │ │ │ ├── vikingdb_clients.py │ │ │ │ ├── vikingdb_collection.py │ │ │ │ ├── volcengine_clients.py │ │ │ │ └── volcengine_collection.py │ │ │ ├── engine/ │ │ │ │ └── __init__.py │ │ │ ├── index/ │ │ │ │ ├── __init__.py │ │ │ │ ├── index.py │ │ │ │ └── local_index.py │ │ │ ├── meta/ │ │ │ │ ├── __init__.py │ │ │ │ ├── collection_meta.py │ │ │ │ ├── dict.py │ │ │ │ ├── index_meta.py │ │ │ │ └── local_dict.py │ │ │ ├── project/ │ │ │ │ ├── __init__.py │ │ │ │ ├── http_project.py │ │ │ │ ├── local_project.py │ │ │ │ ├── project.py │ │ │ │ ├── project_group.py │ │ │ │ ├── vikingdb_project.py │ │ │ │ └── volcengine_project.py │ │ │ ├── service/ │ │ │ │ ├── README_FASTAPI.md │ │ │ │ ├── __init__.py │ │ │ │ ├── api_fastapi.py │ │ │ │ ├── app_models.py │ │ │ │ ├── code.py │ │ │ │ └── server_fastapi.py │ │ │ ├── store/ │ │ │ │ ├── __init__.py │ │ │ │ ├── bytes_row.py │ │ │ │ ├── data.py │ │ │ │ ├── file_store.py │ │ │ │ ├── local_store.py │ │ │ │ ├── serializable.py │ │ │ │ ├── store.py │ │ │ │ └── store_manager.py │ │ │ ├── utils/ │ │ │ │ ├── __init__.py │ │ │ │ ├── api_utils.py │ │ │ │ ├── config_utils.py │ │ │ │ ├── constants.py │ │ │ │ ├── data_processor.py │ │ │ │ ├── data_utils.py │ │ │ │ ├── dict_utils.py │ │ │ │ ├── file_utils.py │ │ │ │ ├── id_generator.py │ │ │ │ ├── logging_init.py │ │ │ │ ├── stale_lock.py │ │ │ │ ├── str_to_uint64.py │ │ │ │ └── validation.py │ │ │ └── vectorize/ │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── vectorizer.py │ │ │ ├── vectorizer_factory.py │ │ │ └── volcengine_vectorizer.py │ │ ├── vectordb_adapters/ │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── base.py │ │ │ ├── factory.py │ │ │ ├── http_adapter.py │ │ │ ├── local_adapter.py │ │ │ ├── vikingdb_private_adapter.py │ │ │ └── volcengine_adapter.py │ │ ├── viking_fs.py │ │ ├── viking_vector_index_backend.py │ │ └── vikingdb_manager.py │ ├── sync_client.py │ ├── telemetry/ │ │ ├── __init__.py │ │ ├── backends/ │ │ │ ├── __init__.py │ │ │ └── memory.py │ │ ├── context.py │ │ ├── execution.py │ │ ├── operation.py │ │ ├── registry.py │ │ ├── request.py │ │ ├── resource_summary.py │ │ ├── runtime.py │ │ └── snapshot.py │ └── utils/ │ ├── __init__.py │ ├── agfs_utils.py │ ├── code_hosting_utils.py │ ├── embedding_utils.py │ ├── media_processor.py │ ├── process_lock.py │ ├── resource_processor.py │ ├── skill_processor.py │ ├── summarizer.py │ └── time_utils.py ├── openviking_cli/ │ ├── __init__.py │ ├── client/ │ │ ├── __init__.py │ │ ├── base.py │ │ ├── http.py │ │ └── sync_http.py │ ├── exceptions.py │ ├── retrieve/ │ │ ├── __init__.py │ │ └── types.py │ ├── rust_cli.py │ ├── server_bootstrap.py │ ├── session/ │ │ ├── __init__.py │ │ └── user_id.py │ └── utils/ │ ├── __init__.py │ ├── async_utils.py │ ├── config/ │ │ ├── __init__.py │ │ ├── agfs_config.py │ │ ├── config_loader.py │ │ ├── consts.py │ │ ├── embedding_config.py │ │ ├── log_config.py │ │ ├── open_viking_config.py │ │ ├── parser_config.py │ │ ├── rerank_config.py │ │ ├── storage_config.py │ │ ├── transaction_config.py │ │ ├── vectordb_config.py │ │ └── vlm_config.py │ ├── downloader.py │ ├── extractor.py │ ├── llm.py │ ├── logger.py │ ├── rerank.py │ ├── rerank_openai.py │ ├── storage.py │ └── uri.py ├── pyproject.toml ├── setup.py ├── src/ │ ├── CMakeLists.txt │ ├── common/ │ │ ├── ann_utils.h │ │ ├── io_utils.h │ │ ├── json_utils.h │ │ ├── log_utils.cpp │ │ ├── log_utils.h │ │ ├── string_utils.h │ │ └── zip_sort.h │ ├── cpu_feature_probe.cpp │ ├── index/ │ │ ├── common_structs.h │ │ ├── detail/ │ │ │ ├── fields_dict.h │ │ │ ├── index_manager_impl.cpp │ │ │ ├── index_manager_impl.h │ │ │ ├── meta/ │ │ │ │ ├── bruteforce_meta.h │ │ │ │ ├── manager_meta.h │ │ │ │ ├── scalar_index_meta.cpp │ │ │ │ ├── scalar_index_meta.h │ │ │ │ ├── vector_index_meta.cpp │ │ │ │ └── vector_index_meta.h │ │ │ ├── scalar/ │ │ │ │ ├── bitmap_holder/ │ │ │ │ │ ├── bitmap.cpp │ │ │ │ │ ├── bitmap.h │ │ │ │ │ ├── bitmap_field_group.cpp │ │ │ │ │ ├── bitmap_field_group.h │ │ │ │ │ ├── bitmap_utils.h │ │ │ │ │ ├── dir_index.cpp │ │ │ │ │ ├── dir_index.h │ │ │ │ │ ├── ranged_map.cpp │ │ │ │ │ └── ranged_map.h │ │ │ │ ├── filter/ │ │ │ │ │ ├── filter_ops.cpp │ │ │ │ │ ├── filter_ops.h │ │ │ │ │ ├── op_base.cpp │ │ │ │ │ ├── op_base.h │ │ │ │ │ ├── sort_ops.cpp │ │ │ │ │ └── sort_ops.h │ │ │ │ ├── scalar_index.cpp │ │ │ │ └── scalar_index.h │ │ │ ├── search_context.h │ │ │ └── vector/ │ │ │ ├── common/ │ │ │ │ ├── bruteforce.h │ │ │ │ ├── quantization_int8.h │ │ │ │ ├── quantizer.h │ │ │ │ ├── space_int8.h │ │ │ │ ├── space_ip.h │ │ │ │ ├── space_l2.h │ │ │ │ └── vector_base.h │ │ │ ├── sparse_retrieval/ │ │ │ │ ├── common.h │ │ │ │ ├── sparse_data_holder.h │ │ │ │ ├── sparse_datapoint.cpp │ │ │ │ ├── sparse_datapoint.h │ │ │ │ ├── sparse_dataset.h │ │ │ │ ├── sparse_distance_measure.h │ │ │ │ ├── sparse_row_index.cpp │ │ │ │ └── sparse_row_index.h │ │ │ ├── vector_index_adapter.h │ │ │ └── vector_recall.h │ │ ├── index_engine.cpp │ │ ├── index_engine.h │ │ └── index_manager.h │ ├── py_accessors.h │ ├── pybind11_interface.cpp │ └── store/ │ ├── bytes_row.cpp │ ├── bytes_row.h │ ├── common_structs.h │ ├── kv_store.h │ ├── persist_store.cpp │ ├── persist_store.h │ ├── volatile_store.cpp │ └── volatile_store.h ├── tests/ │ ├── README.md │ ├── __init__.py │ ├── agfs/ │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── test_fs_binding.py │ │ ├── test_fs_binding_s3.py │ │ ├── test_fs_local.py │ │ └── test_fs_s3.py │ ├── cli/ │ │ ├── conftest.py │ │ └── test_user_identifier.py │ ├── client/ │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── test_chat_integration.py │ │ ├── test_file_operations.py │ │ ├── test_filesystem.py │ │ ├── test_import_export.py │ │ ├── test_lifecycle.py │ │ ├── test_relations.py │ │ ├── test_resource_management.py │ │ ├── test_search.py │ │ ├── test_skill_management.py │ │ └── test_windows_path_handling.py │ ├── conftest.py │ ├── engine/ │ │ ├── CMakeLists.txt │ │ ├── test_common.cpp │ │ └── test_index_engine.cpp │ ├── eval/ │ │ ├── test_ragas_basic.py │ │ ├── test_ragas_eval.py │ │ └── test_ragas_validation.py │ ├── integration/ │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── test_add_resource_index.py │ │ ├── test_full_workflow.py │ │ ├── test_gemini_e2e.py │ │ ├── test_gemini_embedding_it.py │ │ ├── test_gemini_openviking_it.py │ │ ├── test_http_integration.py │ │ ├── test_quick_start_lite.py │ │ └── test_watch_e2e.py │ ├── misc/ │ │ ├── test_code_parser.py │ │ ├── test_config_validation.py │ │ ├── test_debug_service.py │ │ ├── test_embedding_input_type.py │ │ ├── test_extract_zip.py │ │ ├── test_mkdir.py │ │ ├── test_port_check.py │ │ ├── test_process_lock.py │ │ ├── test_rerank_openai.py │ │ ├── test_resource_processor_mv.py │ │ ├── test_semantic_config.py │ │ ├── test_tree_builder_dedup.py │ │ ├── test_vectordb_engine_loader.py │ │ ├── test_vikingdb_observer.py │ │ ├── test_vikingfs_find_without_rerank.py │ │ ├── test_vikingfs_uri_guard.py │ │ └── test_x86_profiles.py │ ├── models/ │ │ ├── test_embedding_telemetry_usage.py │ │ └── test_vlm_strip_think_tags.py │ ├── parse/ │ │ ├── __init__.py │ │ ├── test_add_directory.py │ │ ├── test_ast_extractor.py │ │ ├── test_directory_parser_routing.py │ │ ├── test_directory_scan.py │ │ ├── test_filename_safety.py │ │ ├── test_html_parser_utils.py │ │ ├── test_pdf_bookmark_extraction.py │ │ └── test_url_filename_preservation.py │ ├── resource/ │ │ ├── __init__.py │ │ ├── test_watch_manager.py │ │ └── test_watch_scheduler.py │ ├── retrieve/ │ │ ├── test_hierarchical_retriever_rerank.py │ │ └── test_hierarchical_retriever_target_dirs.py │ ├── server/ │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── test_admin_api.py │ │ ├── test_api_content.py │ │ ├── test_api_filesystem.py │ │ ├── test_api_key_manager.py │ │ ├── test_api_observer.py │ │ ├── test_api_relations.py │ │ ├── test_api_resources.py │ │ ├── test_api_search.py │ │ ├── test_api_sessions.py │ │ ├── test_auth.py │ │ ├── test_error_scenarios.py │ │ ├── test_http_client_sdk.py │ │ ├── test_identity.py │ │ └── test_server_health.py │ ├── service/ │ │ ├── test_resource_service_watch.py │ │ └── test_watch_recovery.py │ ├── session/ │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── test_memory_dedup_actions.py │ │ ├── test_memory_extractor_language.py │ │ ├── test_memory_extractor_response_types.py │ │ ├── test_session_commit.py │ │ ├── test_session_compressor_vikingdb.py │ │ ├── test_session_context.py │ │ ├── test_session_lifecycle.py │ │ ├── test_session_messages.py │ │ └── test_session_usage.py │ ├── storage/ │ │ ├── mock_backend.py │ │ ├── test_collection_schemas.py │ │ ├── test_embedding_msg_converter_tenant.py │ │ ├── test_semantic_dag_skip_files.py │ │ ├── test_semantic_dag_stats.py │ │ ├── test_semantic_processor_mv_vector_store.py │ │ ├── test_stale_lock.py │ │ ├── test_vectordb_adaptor.py │ │ └── test_vectordb_collection_loading.py │ ├── telemetry/ │ │ ├── test_execution.py │ │ ├── test_layering_rules.py │ │ └── test_resource_summary.py │ ├── test_code_hosting_utils.py │ ├── test_config_loader.py │ ├── test_edge_cases.py │ ├── test_edge_cases_simple.py │ ├── test_memory_lifecycle.py │ ├── test_session_async_commit.py │ ├── test_session_task_tracking.py │ ├── test_task_tracker.py │ ├── test_telemetry_runtime.py │ ├── test_upload_utils.py │ ├── transaction/ │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── test_concurrent_lock.py │ │ ├── test_e2e.py │ │ ├── test_lock_context.py │ │ ├── test_lock_manager.py │ │ ├── test_path_lock.py │ │ └── test_redo_log.py │ ├── unit/ │ │ ├── __init__.py │ │ ├── retrieve/ │ │ │ └── test_retrieval_stats.py │ │ ├── session/ │ │ │ ├── test_deduplicator_uri.py │ │ │ └── test_memory_archiver.py │ │ ├── test_embedding_config_gemini.py │ │ ├── test_embedding_config_voyage.py │ │ ├── test_extra_headers_embedding.py │ │ ├── test_extra_headers_vlm.py │ │ ├── test_gemini_embedder.py │ │ ├── test_jina_embedder.py │ │ ├── test_minimax_embedder_simple.py │ │ ├── test_ollama_embedding_factory.py │ │ ├── test_openai_embedder.py │ │ ├── test_skill_processor_none.py │ │ ├── test_stream_config_vlm.py │ │ ├── test_time_utils.py │ │ ├── test_uri_short_format.py │ │ ├── test_vlm_response_formats.py │ │ ├── test_voyage_embedder.py │ │ └── tool_skill/ │ │ ├── test_tool_skill_calibration.py │ │ ├── test_tool_skill_memory_guardrails.py │ │ └── test_tool_skill_utils.py │ ├── utils/ │ │ ├── __init__.py │ │ ├── mock_agfs.py │ │ └── mock_context.py │ └── vectordb/ │ ├── benchmark_stress.py │ ├── test_bytes_row.py │ ├── test_collection_large_scale.py │ ├── test_crash_recovery.py │ ├── test_data_processor.py │ ├── test_filter_ops.py │ ├── test_openviking_vectordb.py │ ├── test_project_group.py │ ├── test_pydantic_validation.py │ ├── test_recall.py │ └── test_vikingdb_project.py └── third_party/ ├── agfs/ │ ├── .github/ │ │ └── workflows/ │ │ └── daily-build.yml │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── agfs-fuse/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── README.md │ │ ├── cmd/ │ │ │ └── agfs-fuse/ │ │ │ └── main.go │ │ ├── go.mod │ │ ├── go.sum │ │ └── pkg/ │ │ ├── cache/ │ │ │ ├── cache.go │ │ │ └── cache_test.go │ │ ├── fusefs/ │ │ │ ├── file.go │ │ │ ├── fs.go │ │ │ ├── handles.go │ │ │ ├── handles_test.go │ │ │ └── node.go │ │ └── version/ │ │ └── version.go │ ├── agfs-mcp/ │ │ ├── .gitignore │ │ ├── .mcp.json │ │ ├── README.md │ │ ├── demos/ │ │ │ ├── hackernews_research.py │ │ │ ├── parallel_research.py │ │ │ ├── start_agents.sh │ │ │ ├── start_agents_tmux.sh │ │ │ ├── stop_agents.sh │ │ │ ├── stop_agents_tmux.sh │ │ │ └── task_loop.py │ │ ├── pyproject.toml │ │ └── src/ │ │ └── agfs_mcp/ │ │ ├── __init__.py │ │ └── server.py │ ├── agfs-sdk/ │ │ ├── go/ │ │ │ ├── README.md │ │ │ ├── client.go │ │ │ ├── client_test.go │ │ │ ├── go.mod │ │ │ └── types.go │ │ └── python/ │ │ ├── README.md │ │ ├── examples/ │ │ │ ├── advanced_usage.py │ │ │ ├── basic_usage.py │ │ │ └── helpers_usage.py │ │ ├── pyagfs/ │ │ │ ├── __init__.py │ │ │ ├── binding_client.py │ │ │ ├── client.py │ │ │ ├── exceptions.py │ │ │ └── helpers.py │ │ └── pyproject.toml │ ├── agfs-shell/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── README.md │ │ ├── agfs_shell/ │ │ │ ├── __init__.py │ │ │ ├── arg_parser.py │ │ │ ├── ast_nodes.py │ │ │ ├── builtins.py │ │ │ ├── cli.py │ │ │ ├── command_decorators.py │ │ │ ├── commands/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ ├── basename.py │ │ │ │ ├── break_cmd.py │ │ │ │ ├── cat.py │ │ │ │ ├── cd.py │ │ │ │ ├── continue_cmd.py │ │ │ │ ├── cp.py │ │ │ │ ├── cut.py │ │ │ │ ├── date.py │ │ │ │ ├── dirname.py │ │ │ │ ├── download.py │ │ │ │ ├── echo.py │ │ │ │ ├── env.py │ │ │ │ ├── exit.py │ │ │ │ ├── export.py │ │ │ │ ├── false.py │ │ │ │ ├── grep.py │ │ │ │ ├── head.py │ │ │ │ ├── help.py │ │ │ │ ├── jq.py │ │ │ │ ├── llm.py │ │ │ │ ├── local.py │ │ │ │ ├── ls.py │ │ │ │ ├── mkdir.py │ │ │ │ ├── mount.py │ │ │ │ ├── mv.py │ │ │ │ ├── plugins.py │ │ │ │ ├── pwd.py │ │ │ │ ├── return_cmd.py │ │ │ │ ├── rev.py │ │ │ │ ├── rm.py │ │ │ │ ├── sleep.py │ │ │ │ ├── sort.py │ │ │ │ ├── stat.py │ │ │ │ ├── tail.py │ │ │ │ ├── tee.py │ │ │ │ ├── test.py │ │ │ │ ├── touch.py │ │ │ │ ├── tr.py │ │ │ │ ├── tree.py │ │ │ │ ├── true.py │ │ │ │ ├── uniq.py │ │ │ │ ├── unset.py │ │ │ │ ├── upload.py │ │ │ │ └── wc.py │ │ │ ├── completer.py │ │ │ ├── config.py │ │ │ ├── control_flow.py │ │ │ ├── control_parser.py │ │ │ ├── executor.py │ │ │ ├── exit_codes.py │ │ │ ├── expression.py │ │ │ ├── filesystem.py │ │ │ ├── lexer.py │ │ │ ├── parser.py │ │ │ ├── pipeline.py │ │ │ ├── process.py │ │ │ ├── shell.py │ │ │ ├── streams.py │ │ │ ├── utils/ │ │ │ │ ├── __init__.py │ │ │ │ └── formatters.py │ │ │ └── webapp_server.py │ │ ├── build.py │ │ ├── examples/ │ │ │ ├── enqueue_task.as │ │ │ └── task_queue_worker.as │ │ ├── pyproject.toml │ │ ├── scripts/ │ │ │ └── test_functions.as │ │ ├── tests/ │ │ │ ├── test_builtins.py │ │ │ ├── test_parser.py │ │ │ └── test_pipeline.py │ │ └── webapp/ │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package.json │ │ ├── setup.sh │ │ ├── src/ │ │ │ ├── App.css │ │ │ ├── App.jsx │ │ │ ├── components/ │ │ │ │ ├── ContextMenu.jsx │ │ │ │ ├── Editor.jsx │ │ │ │ ├── FileTree.jsx │ │ │ │ ├── MenuBar.jsx │ │ │ │ └── Terminal.jsx │ │ │ └── main.jsx │ │ └── vite.config.js │ └── install.sh ├── croaring/ │ ├── LICENSE │ ├── roaring.c │ ├── roaring.h │ └── roaring.hh ├── krl/ │ ├── CMakeLists.txt │ ├── include/ │ │ ├── krl.h │ │ ├── krl_internal.h │ │ ├── platform_macros.h │ │ └── safe_memory.h │ └── src/ │ ├── IPdistance_simd.cpp │ └── L2distance_simd.cpp ├── leveldb-1.23/ │ ├── .appveyor.yml │ ├── .clang-format │ ├── .gitignore │ ├── .gitmodules │ ├── .travis.yml │ ├── AUTHORS │ ├── CMakeLists.txt │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── NEWS │ ├── README.md │ ├── TODO │ ├── benchmarks/ │ │ ├── db_bench.cc │ │ ├── db_bench_sqlite3.cc │ │ └── db_bench_tree_db.cc │ ├── cmake/ │ │ └── leveldbConfig.cmake.in │ ├── db/ │ │ ├── autocompact_test.cc │ │ ├── builder.cc │ │ ├── builder.h │ │ ├── c.cc │ │ ├── c_test.c │ │ ├── corruption_test.cc │ │ ├── db_impl.cc │ │ ├── db_impl.h │ │ ├── db_iter.cc │ │ ├── db_iter.h │ │ ├── db_test.cc │ │ ├── dbformat.cc │ │ ├── dbformat.h │ │ ├── dbformat_test.cc │ │ ├── dumpfile.cc │ │ ├── fault_injection_test.cc │ │ ├── filename.cc │ │ ├── filename.h │ │ ├── filename_test.cc │ │ ├── leveldbutil.cc │ │ ├── log_format.h │ │ ├── log_reader.cc │ │ ├── log_reader.h │ │ ├── log_test.cc │ │ ├── log_writer.cc │ │ ├── log_writer.h │ │ ├── memtable.cc │ │ ├── memtable.h │ │ ├── recovery_test.cc │ │ ├── repair.cc │ │ ├── skiplist.h │ │ ├── skiplist_test.cc │ │ ├── snapshot.h │ │ ├── table_cache.cc │ │ ├── table_cache.h │ │ ├── version_edit.cc │ │ ├── version_edit.h │ │ ├── version_edit_test.cc │ │ ├── version_set.cc │ │ ├── version_set.h │ │ ├── version_set_test.cc │ │ ├── write_batch.cc │ │ ├── write_batch_internal.h │ │ └── write_batch_test.cc │ ├── doc/ │ │ ├── benchmark.html │ │ ├── impl.md │ │ ├── index.md │ │ ├── log_format.md │ │ └── table_format.md │ ├── helpers/ │ │ └── memenv/ │ │ ├── memenv.cc │ │ ├── memenv.h │ │ └── memenv_test.cc │ ├── include/ │ │ ├── leveldb/ │ │ │ ├── c.h │ │ │ ├── cache.h │ │ │ ├── comparator.h │ │ │ ├── db.h │ │ │ ├── dumpfile.h │ │ │ ├── env.h │ │ │ ├── export.h │ │ │ ├── filter_policy.h │ │ │ ├── iterator.h │ │ │ ├── options.h │ │ │ ├── slice.h │ │ │ ├── status.h │ │ │ ├── table.h │ │ │ ├── table_builder.h │ │ │ └── write_batch.h │ │ └── port/ │ │ └── port_config.h │ ├── issues/ │ │ ├── issue178_test.cc │ │ ├── issue200_test.cc │ │ └── issue320_test.cc │ ├── port/ │ │ ├── README.md │ │ ├── port.h │ │ ├── port_config.h.in │ │ ├── port_example.h │ │ ├── port_stdcxx.h │ │ └── thread_annotations.h │ ├── table/ │ │ ├── block.cc │ │ ├── block.h │ │ ├── block_builder.cc │ │ ├── block_builder.h │ │ ├── filter_block.cc │ │ ├── filter_block.h │ │ ├── filter_block_test.cc │ │ ├── format.cc │ │ ├── format.h │ │ ├── iterator.cc │ │ ├── iterator_wrapper.h │ │ ├── merger.cc │ │ ├── merger.h │ │ ├── table.cc │ │ ├── table_builder.cc │ │ ├── table_test.cc │ │ ├── two_level_iterator.cc │ │ └── two_level_iterator.h │ └── util/ │ ├── arena.cc │ ├── arena.h │ ├── arena_test.cc │ ├── bloom.cc │ ├── bloom_test.cc │ ├── cache.cc │ ├── cache_test.cc │ ├── coding.cc │ ├── coding.h │ ├── coding_test.cc │ ├── comparator.cc │ ├── crc32c.cc │ ├── crc32c.h │ ├── crc32c_test.cc │ ├── env.cc │ ├── env_posix.cc │ ├── env_posix_test.cc │ ├── env_posix_test_helper.h │ ├── env_test.cc │ ├── env_windows.cc │ ├── env_windows_test.cc │ ├── env_windows_test_helper.h │ ├── filter_policy.cc │ ├── hash.cc │ ├── hash.h │ ├── hash_test.cc │ ├── histogram.cc │ ├── histogram.h │ ├── logging.cc │ ├── logging.h │ ├── logging_test.cc │ ├── mutexlock.h │ ├── no_destructor.h │ ├── no_destructor_test.cc │ ├── options.cc │ ├── posix_logger.h │ ├── random.h │ ├── status.cc │ ├── status_test.cc │ ├── testutil.cc │ ├── testutil.h │ └── windows_logger.h ├── rapidjson/ │ ├── LICENSE │ ├── allocators.h │ ├── document.h │ ├── encodedstream.h │ ├── encodings.h │ ├── error/ │ │ ├── en.h │ │ └── error.h │ ├── filereadstream.h │ ├── filewritestream.h │ ├── fwd.h │ ├── internal/ │ │ ├── biginteger.h │ │ ├── diyfp.h │ │ ├── dtoa.h │ │ ├── ieee754.h │ │ ├── itoa.h │ │ ├── meta.h │ │ ├── pow10.h │ │ ├── regex.h │ │ ├── stack.h │ │ ├── strfunc.h │ │ ├── strtod.h │ │ └── swap.h │ ├── istreamwrapper.h │ ├── memorybuffer.h │ ├── memorystream.h │ ├── msinttypes/ │ │ ├── inttypes.h │ │ └── stdint.h │ ├── ostreamwrapper.h │ ├── pointer.h │ ├── prettywriter.h │ ├── rapidjson.h │ ├── reader.h │ ├── schema.h │ ├── stream.h │ ├── stringbuffer.h │ └── writer.h └── spdlog-1.14.1/ ├── .clang-format ├── .clang-tidy ├── .git-blame-ignore-revs ├── .gitattributes ├── .github/ │ └── workflows/ │ └── ci.yml ├── .gitignore ├── CMakeLists.txt ├── INSTALL ├── LICENSE ├── README.md ├── appveyor.yml ├── bench/ │ ├── CMakeLists.txt │ ├── async_bench.cpp │ ├── bench.cpp │ ├── formatter-bench.cpp │ ├── latency.cpp │ └── utils.h ├── cmake/ │ ├── ide.cmake │ ├── pch.h.in │ ├── spdlog.pc.in │ ├── spdlogCPack.cmake │ ├── spdlogConfig.cmake.in │ ├── utils.cmake │ └── version.rc.in ├── example/ │ ├── CMakeLists.txt │ └── example.cpp ├── include/ │ └── spdlog/ │ ├── async.h │ ├── async_logger-inl.h │ ├── async_logger.h │ ├── cfg/ │ │ ├── argv.h │ │ ├── env.h │ │ ├── helpers-inl.h │ │ └── helpers.h │ ├── common-inl.h │ ├── common.h │ ├── details/ │ │ ├── backtracer-inl.h │ │ ├── backtracer.h │ │ ├── circular_q.h │ │ ├── console_globals.h │ │ ├── file_helper-inl.h │ │ ├── file_helper.h │ │ ├── fmt_helper.h │ │ ├── log_msg-inl.h │ │ ├── log_msg.h │ │ ├── log_msg_buffer-inl.h │ │ ├── log_msg_buffer.h │ │ ├── mpmc_blocking_q.h │ │ ├── null_mutex.h │ │ ├── os-inl.h │ │ ├── os.h │ │ ├── periodic_worker-inl.h │ │ ├── periodic_worker.h │ │ ├── registry-inl.h │ │ ├── registry.h │ │ ├── synchronous_factory.h │ │ ├── tcp_client-windows.h │ │ ├── tcp_client.h │ │ ├── thread_pool-inl.h │ │ ├── thread_pool.h │ │ ├── udp_client-windows.h │ │ ├── udp_client.h │ │ └── windows_include.h │ ├── fmt/ │ │ ├── bin_to_hex.h │ │ ├── bundled/ │ │ │ ├── args.h │ │ │ ├── chrono.h │ │ │ ├── color.h │ │ │ ├── compile.h │ │ │ ├── core.h │ │ │ ├── fmt.license.rst │ │ │ ├── format-inl.h │ │ │ ├── format.h │ │ │ ├── locale.h │ │ │ ├── os.h │ │ │ ├── ostream.h │ │ │ ├── printf.h │ │ │ ├── ranges.h │ │ │ ├── std.h │ │ │ └── xchar.h │ │ ├── chrono.h │ │ ├── compile.h │ │ ├── fmt.h │ │ ├── ostr.h │ │ ├── ranges.h │ │ ├── std.h │ │ └── xchar.h │ ├── formatter.h │ ├── fwd.h │ ├── logger-inl.h │ ├── logger.h │ ├── mdc.h │ ├── pattern_formatter-inl.h │ ├── pattern_formatter.h │ ├── sinks/ │ │ ├── android_sink.h │ │ ├── ansicolor_sink-inl.h │ │ ├── ansicolor_sink.h │ │ ├── base_sink-inl.h │ │ ├── base_sink.h │ │ ├── basic_file_sink-inl.h │ │ ├── basic_file_sink.h │ │ ├── callback_sink.h │ │ ├── daily_file_sink.h │ │ ├── dist_sink.h │ │ ├── dup_filter_sink.h │ │ ├── hourly_file_sink.h │ │ ├── kafka_sink.h │ │ ├── mongo_sink.h │ │ ├── msvc_sink.h │ │ ├── null_sink.h │ │ ├── ostream_sink.h │ │ ├── qt_sinks.h │ │ ├── ringbuffer_sink.h │ │ ├── rotating_file_sink-inl.h │ │ ├── rotating_file_sink.h │ │ ├── sink-inl.h │ │ ├── sink.h │ │ ├── stdout_color_sinks-inl.h │ │ ├── stdout_color_sinks.h │ │ ├── stdout_sinks-inl.h │ │ ├── stdout_sinks.h │ │ ├── syslog_sink.h │ │ ├── systemd_sink.h │ │ ├── tcp_sink.h │ │ ├── udp_sink.h │ │ ├── win_eventlog_sink.h │ │ ├── wincolor_sink-inl.h │ │ └── wincolor_sink.h │ ├── spdlog-inl.h │ ├── spdlog.h │ ├── stopwatch.h │ ├── tweakme.h │ └── version.h ├── scripts/ │ ├── ci_setup_clang.sh │ ├── extract_version.py │ └── format.sh ├── src/ │ ├── async.cpp │ ├── bundled_fmtlib_format.cpp │ ├── cfg.cpp │ ├── color_sinks.cpp │ ├── file_sinks.cpp │ ├── spdlog.cpp │ └── stdout_sinks.cpp └── tests/ ├── CMakeLists.txt ├── includes.h ├── main.cpp ├── test_async.cpp ├── test_backtrace.cpp ├── test_bin_to_hex.cpp ├── test_cfg.cpp ├── test_circular_q.cpp ├── test_create_dir.cpp ├── test_custom_callbacks.cpp ├── test_daily_logger.cpp ├── test_dup_filter.cpp ├── test_errors.cpp ├── test_eventlog.cpp ├── test_file_helper.cpp ├── test_file_logging.cpp ├── test_fmt_helper.cpp ├── test_macros.cpp ├── test_misc.cpp ├── test_mpmc_q.cpp ├── test_pattern_formatter.cpp ├── test_registry.cpp ├── test_sink.h ├── test_stdout_api.cpp ├── test_stopwatch.cpp ├── test_systemd.cpp ├── test_time_point.cpp ├── utils.cpp └── utils.h