doc-atlas 0.6.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- doc_atlas-0.6.1/.github/copilot-instructions.md +42 -0
- doc_atlas-0.6.1/.github/workflows/ci.yml +31 -0
- doc_atlas-0.6.1/.github/workflows/publish.yml +97 -0
- doc_atlas-0.6.1/.gitignore +28 -0
- doc_atlas-0.6.1/.idea/.gitignore +3 -0
- doc_atlas-0.6.1/.idea/caches/deviceStreaming.xml +1857 -0
- doc_atlas-0.6.1/.idea/docmancer.iml +9 -0
- doc_atlas-0.6.1/.idea/markdown.xml +8 -0
- doc_atlas-0.6.1/.idea/misc.xml +5 -0
- doc_atlas-0.6.1/.idea/modules.xml +8 -0
- doc_atlas-0.6.1/.idea/vcs.xml +6 -0
- doc_atlas-0.6.1/.vscode/settings.json +3 -0
- doc_atlas-0.6.1/AGENTS.md +42 -0
- doc_atlas-0.6.1/CHANGELOG.md +668 -0
- doc_atlas-0.6.1/CONTRIBUTING.md +65 -0
- doc_atlas-0.6.1/LICENSE +21 -0
- doc_atlas-0.6.1/PKG-INFO +536 -0
- doc_atlas-0.6.1/README.md +459 -0
- doc_atlas-0.6.1/ROADMAP_PROMPTS.md +41 -0
- doc_atlas-0.6.1/SKILL.md +118 -0
- doc_atlas-0.6.1/docmancer/__init__.py +52 -0
- doc_atlas-0.6.1/docmancer/__main__.py +4 -0
- doc_atlas-0.6.1/docmancer/_version.py +1 -0
- doc_atlas-0.6.1/docmancer/agent.py +522 -0
- doc_atlas-0.6.1/docmancer/async_agent.py +141 -0
- doc_atlas-0.6.1/docmancer/cli/__init__.py +0 -0
- doc_atlas-0.6.1/docmancer/cli/__main__.py +92 -0
- doc_atlas-0.6.1/docmancer/cli/commands.py +2260 -0
- doc_atlas-0.6.1/docmancer/cli/help.py +124 -0
- doc_atlas-0.6.1/docmancer/cli/mcp_commands.py +217 -0
- doc_atlas-0.6.1/docmancer/cli/qdrant_commands.py +135 -0
- doc_atlas-0.6.1/docmancer/cli/ui.py +64 -0
- doc_atlas-0.6.1/docmancer/client.py +96 -0
- doc_atlas-0.6.1/docmancer/connectors/__init__.py +0 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/__init__.py +0 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/base.py +8 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/crawl4ai.py +216 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/factory.py +71 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/gitbook.py +7 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/github.py +587 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/llms_txt.py +151 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/mintlify.py +98 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/pipeline/__init__.py +1 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/pipeline/browser.py +108 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/pipeline/crawl4ai_extraction.py +110 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/pipeline/detection.py +151 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/pipeline/discovery.py +405 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/pipeline/extraction.py +365 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/pipeline/filtering.py +264 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/pipeline/rate_limit.py +77 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/pipeline/redirect.py +142 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/pipeline/robots.py +131 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/pipeline/sitemap.py +305 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/uspto_tm/__init__.py +32 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/uspto_tm/normalizer.py +113 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/uspto_tm/parser.py +249 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/uspto_tm/schema.py +75 -0
- doc_atlas-0.6.1/docmancer/connectors/fetchers/web.py +521 -0
- doc_atlas-0.6.1/docmancer/connectors/parsers/__init__.py +8 -0
- doc_atlas-0.6.1/docmancer/connectors/parsers/base.py +9 -0
- doc_atlas-0.6.1/docmancer/connectors/parsers/docx.py +36 -0
- doc_atlas-0.6.1/docmancer/connectors/parsers/html.py +18 -0
- doc_atlas-0.6.1/docmancer/connectors/parsers/markdown.py +27 -0
- doc_atlas-0.6.1/docmancer/connectors/parsers/pdf.py +67 -0
- doc_atlas-0.6.1/docmancer/connectors/parsers/rtf.py +22 -0
- doc_atlas-0.6.1/docmancer/connectors/parsers/text.py +18 -0
- doc_atlas-0.6.1/docmancer/context.py +133 -0
- doc_atlas-0.6.1/docmancer/core/__init__.py +0 -0
- doc_atlas-0.6.1/docmancer/core/chunking.py +458 -0
- doc_atlas-0.6.1/docmancer/core/config.py +261 -0
- doc_atlas-0.6.1/docmancer/core/html_utils.py +111 -0
- doc_atlas-0.6.1/docmancer/core/index_meta.py +169 -0
- doc_atlas-0.6.1/docmancer/core/models.py +27 -0
- doc_atlas-0.6.1/docmancer/core/sqlite_store.py +1157 -0
- doc_atlas-0.6.1/docmancer/docs/__init__.py +5 -0
- doc_atlas-0.6.1/docmancer/docs/application/__init__.py +5 -0
- doc_atlas-0.6.1/docmancer/docs/application/dependency_docs_service.py +102 -0
- doc_atlas-0.6.1/docmancer/docs/application/dependency_project_prefetch.py +131 -0
- doc_atlas-0.6.1/docmancer/docs/application/dependency_resolution.py +121 -0
- doc_atlas-0.6.1/docmancer/docs/application/docs_job_service.py +170 -0
- doc_atlas-0.6.1/docmancer/docs/application/docs_manifest_service.py +224 -0
- doc_atlas-0.6.1/docmancer/docs/application/docs_prefetch_service.py +424 -0
- doc_atlas-0.6.1/docmancer/docs/application/docs_target_service.py +177 -0
- doc_atlas-0.6.1/docmancer/docs/application/library_docs_service.py +690 -0
- doc_atlas-0.6.1/docmancer/docs/application/library_refresh_ops.py +230 -0
- doc_atlas-0.6.1/docmancer/docs/application/library_registry_ops.py +148 -0
- doc_atlas-0.6.1/docmancer/docs/application/project_context_service.py +184 -0
- doc_atlas-0.6.1/docmancer/docs/application/project_docs_service.py +681 -0
- doc_atlas-0.6.1/docmancer/docs/application/project_docs_state.py +131 -0
- doc_atlas-0.6.1/docmancer/docs/dartdoc.py +118 -0
- doc_atlas-0.6.1/docmancer/docs/domain/__init__.py +1 -0
- doc_atlas-0.6.1/docmancer/docs/domain/policies.py +25 -0
- doc_atlas-0.6.1/docmancer/docs/domain/project_state.py +99 -0
- doc_atlas-0.6.1/docmancer/docs/domain/source_identity.py +53 -0
- doc_atlas-0.6.1/docmancer/docs/domain/target_security.py +37 -0
- doc_atlas-0.6.1/docmancer/docs/domain/trust_contract.py +124 -0
- doc_atlas-0.6.1/docmancer/docs/infrastructure/__init__.py +1 -0
- doc_atlas-0.6.1/docmancer/docs/infrastructure/agent_index_gateway.py +45 -0
- doc_atlas-0.6.1/docmancer/docs/infrastructure/filesystem_locks.py +14 -0
- doc_atlas-0.6.1/docmancer/docs/interfaces/__init__.py +1 -0
- doc_atlas-0.6.1/docmancer/docs/interfaces/mcp/__init__.py +1 -0
- doc_atlas-0.6.1/docmancer/docs/interfaces/mcp/docs_tools.py +42 -0
- doc_atlas-0.6.1/docmancer/docs/interfaces/mcp/prefetch_tools.py +37 -0
- doc_atlas-0.6.1/docmancer/docs/interfaces/mcp/project_tools.py +38 -0
- doc_atlas-0.6.1/docmancer/docs/models.py +416 -0
- doc_atlas-0.6.1/docmancer/docs/project.py +525 -0
- doc_atlas-0.6.1/docmancer/docs/registry.py +448 -0
- doc_atlas-0.6.1/docmancer/docs/resolver.py +86 -0
- doc_atlas-0.6.1/docmancer/docs/service.py +285 -0
- doc_atlas-0.6.1/docmancer/embeddings/__init__.py +38 -0
- doc_atlas-0.6.1/docmancer/embeddings/base.py +144 -0
- doc_atlas-0.6.1/docmancer/embeddings/cohere_provider.py +38 -0
- doc_atlas-0.6.1/docmancer/embeddings/fastembed_provider.py +147 -0
- doc_atlas-0.6.1/docmancer/embeddings/openai_provider.py +136 -0
- doc_atlas-0.6.1/docmancer/embeddings/pipeline.py +287 -0
- doc_atlas-0.6.1/docmancer/embeddings/voyage_provider.py +45 -0
- doc_atlas-0.6.1/docmancer/eval/__init__.py +9 -0
- doc_atlas-0.6.1/docmancer/eval/health.py +47 -0
- doc_atlas-0.6.1/docmancer/eval/metrics.py +59 -0
- doc_atlas-0.6.1/docmancer/eval/runner.py +351 -0
- doc_atlas-0.6.1/docmancer/eval/schema.py +94 -0
- doc_atlas-0.6.1/docmancer/eval/story_corpus.py +103 -0
- doc_atlas-0.6.1/docmancer/eval/trace.py +105 -0
- doc_atlas-0.6.1/docmancer/mcp/__init__.py +11 -0
- doc_atlas-0.6.1/docmancer/mcp/agent_config.py +96 -0
- doc_atlas-0.6.1/docmancer/mcp/credentials.py +141 -0
- doc_atlas-0.6.1/docmancer/mcp/dispatcher.py +258 -0
- doc_atlas-0.6.1/docmancer/mcp/docs_server.py +382 -0
- doc_atlas-0.6.1/docmancer/mcp/doctor.py +101 -0
- doc_atlas-0.6.1/docmancer/mcp/executors/__init__.py +24 -0
- doc_atlas-0.6.1/docmancer/mcp/executors/base.py +28 -0
- doc_atlas-0.6.1/docmancer/mcp/executors/http.py +173 -0
- doc_atlas-0.6.1/docmancer/mcp/executors/noop.py +33 -0
- doc_atlas-0.6.1/docmancer/mcp/executors/python_import.py +130 -0
- doc_atlas-0.6.1/docmancer/mcp/idempotency.py +77 -0
- doc_atlas-0.6.1/docmancer/mcp/installer.py +136 -0
- doc_atlas-0.6.1/docmancer/mcp/logging.py +32 -0
- doc_atlas-0.6.1/docmancer/mcp/manifest.py +105 -0
- doc_atlas-0.6.1/docmancer/mcp/paths.py +100 -0
- doc_atlas-0.6.1/docmancer/mcp/registry.py +634 -0
- doc_atlas-0.6.1/docmancer/mcp/safety.py +42 -0
- doc_atlas-0.6.1/docmancer/mcp/search.py +81 -0
- doc_atlas-0.6.1/docmancer/mcp/serve.py +62 -0
- doc_atlas-0.6.1/docmancer/mcp/slug.py +25 -0
- doc_atlas-0.6.1/docmancer/retrieval/__init__.py +12 -0
- doc_atlas-0.6.1/docmancer/retrieval/dense.py +23 -0
- doc_atlas-0.6.1/docmancer/retrieval/dispatch.py +736 -0
- doc_atlas-0.6.1/docmancer/retrieval/fusion.py +62 -0
- doc_atlas-0.6.1/docmancer/retrieval/lexical.py +19 -0
- doc_atlas-0.6.1/docmancer/retrieval/sparse.py +28 -0
- doc_atlas-0.6.1/docmancer/runtime/__init__.py +0 -0
- doc_atlas-0.6.1/docmancer/runtime/qdrant_manager.py +481 -0
- doc_atlas-0.6.1/docmancer/stores/__init__.py +3 -0
- doc_atlas-0.6.1/docmancer/stores/base.py +114 -0
- doc_atlas-0.6.1/docmancer/stores/qdrant_store.py +415 -0
- doc_atlas-0.6.1/docmancer/stores/sqlite_vec_store.py +287 -0
- doc_atlas-0.6.1/docmancer/templates/__init__.py +0 -0
- doc_atlas-0.6.1/docmancer/templates/claude_code_skill.md +95 -0
- doc_atlas-0.6.1/docmancer/templates/claude_desktop_skill.md +83 -0
- doc_atlas-0.6.1/docmancer/templates/copilot_instructions.md +42 -0
- doc_atlas-0.6.1/docmancer/templates/cursor_agents_md.md +53 -0
- doc_atlas-0.6.1/docmancer/templates/skill.md +136 -0
- doc_atlas-0.6.1/docmancer.yaml +12 -0
- doc_atlas-0.6.1/docs/DOCMANCER_PRODUCT_BRIEF.md +1074 -0
- doc_atlas-0.6.1/docs/capabilities.md +1300 -0
- doc_atlas-0.6.1/docs/context7-docmancer-comparison.md +337 -0
- doc_atlas-0.6.1/docs/mcp-docs-server.md +192 -0
- doc_atlas-0.6.1/docs/project-docs-demo.md +70 -0
- doc_atlas-0.6.1/docs/project-docs-mcp-workflow.md +358 -0
- doc_atlas-0.6.1/eval/context7_benchmark_plan.md +409 -0
- doc_atlas-0.6.1/eval/fastapi_golden.yaml +44 -0
- doc_atlas-0.6.1/eval/project_docs_golden.yaml +44 -0
- doc_atlas-0.6.1/eval/results/context7_fastapi_results.json +48 -0
- doc_atlas-0.6.1/eval/results/context7_riverpod_results.json +64 -0
- doc_atlas-0.6.1/eval/results/docmancer_fastapi_results.json +627 -0
- doc_atlas-0.6.1/eval/results/docmancer_riverpod_results.json +1093 -0
- doc_atlas-0.6.1/eval/riverpod_benchmark_report.md +140 -0
- doc_atlas-0.6.1/eval/riverpod_golden.yaml +75 -0
- doc_atlas-0.6.1/prompts/01_agent_proof_mcp_docs_ux.md +121 -0
- doc_atlas-0.6.1/prompts/02_registry_source_identity.md +132 -0
- doc_atlas-0.6.1/prompts/03_product_positioning.md +123 -0
- doc_atlas-0.6.1/prompts/04_project_aware_version_resolution.md +112 -0
- doc_atlas-0.6.1/prompts/05_retrieval_quality_eval.md +120 -0
- doc_atlas-0.6.1/prompts/06_first_run_dx_doctor.md +107 -0
- doc_atlas-0.6.1/prompts/07_merged_execution_roadmap.md +93 -0
- doc_atlas-0.6.1/pyproject.toml +73 -0
- doc_atlas-0.6.1/readme-assets/api-mcp.gif +0 -0
- doc_atlas-0.6.1/readme-assets/demo.gif +0 -0
- doc_atlas-0.6.1/readme-assets/vault-demo.gif +0 -0
- doc_atlas-0.6.1/readme-assets/wizard-logo.png +0 -0
- doc_atlas-0.6.1/scripts/live_cli_integration.sh +679 -0
- doc_atlas-0.6.1/scripts/mcp_stdio_smoke.py +155 -0
- doc_atlas-0.6.1/scripts/smoke_test.sh +24 -0
- doc_atlas-0.6.1/tests/__init__.py +0 -0
- doc_atlas-0.6.1/tests/conftest.py +12 -0
- doc_atlas-0.6.1/tests/docs/test_agent_index_gateway.py +79 -0
- doc_atlas-0.6.1/tests/docs/test_dependency_docs_service.py +55 -0
- doc_atlas-0.6.1/tests/docs/test_docs_job_service.py +78 -0
- doc_atlas-0.6.1/tests/docs/test_docs_manifest_service.py +90 -0
- doc_atlas-0.6.1/tests/docs/test_docs_prefetch_service.py +67 -0
- doc_atlas-0.6.1/tests/docs/test_docs_service_characterization.py +259 -0
- doc_atlas-0.6.1/tests/docs/test_docs_target_service.py +103 -0
- doc_atlas-0.6.1/tests/docs/test_filesystem_locks.py +11 -0
- doc_atlas-0.6.1/tests/docs/test_library_docs_service.py +49 -0
- doc_atlas-0.6.1/tests/docs/test_mcp_docs_tools_registration.py +182 -0
- doc_atlas-0.6.1/tests/docs/test_policies.py +33 -0
- doc_atlas-0.6.1/tests/docs/test_project_context_service.py +100 -0
- doc_atlas-0.6.1/tests/docs/test_project_docs_service.py +279 -0
- doc_atlas-0.6.1/tests/docs/test_project_state.py +59 -0
- doc_atlas-0.6.1/tests/docs/test_source_identity.py +61 -0
- doc_atlas-0.6.1/tests/docs/test_target_security.py +26 -0
- doc_atlas-0.6.1/tests/docs/test_trust_contract.py +79 -0
- doc_atlas-0.6.1/tests/test_agent.py +201 -0
- doc_atlas-0.6.1/tests/test_async_agent.py +72 -0
- doc_atlas-0.6.1/tests/test_auto_detection.py +88 -0
- doc_atlas-0.6.1/tests/test_browser.py +105 -0
- doc_atlas-0.6.1/tests/test_chunking.py +301 -0
- doc_atlas-0.6.1/tests/test_cli.py +425 -0
- doc_atlas-0.6.1/tests/test_client.py +70 -0
- doc_atlas-0.6.1/tests/test_config.py +280 -0
- doc_atlas-0.6.1/tests/test_context.py +108 -0
- doc_atlas-0.6.1/tests/test_context7_snapshot_benchmark.py +95 -0
- doc_atlas-0.6.1/tests/test_crawl4ai_fetcher.py +42 -0
- doc_atlas-0.6.1/tests/test_cross_index_retrieval_mvp.py +31 -0
- doc_atlas-0.6.1/tests/test_detection.py +112 -0
- doc_atlas-0.6.1/tests/test_docs_service.py +3102 -0
- doc_atlas-0.6.1/tests/test_embeddings.py +52 -0
- doc_atlas-0.6.1/tests/test_embeddings_pipeline.py +101 -0
- doc_atlas-0.6.1/tests/test_eval.py +525 -0
- doc_atlas-0.6.1/tests/test_exact_version_benchmark_mvp.py +52 -0
- doc_atlas-0.6.1/tests/test_extraction.py +336 -0
- doc_atlas-0.6.1/tests/test_fetcher_gitbook.py +218 -0
- doc_atlas-0.6.1/tests/test_fetcher_github.py +241 -0
- doc_atlas-0.6.1/tests/test_fetcher_mintlify.py +168 -0
- doc_atlas-0.6.1/tests/test_filtering.py +232 -0
- doc_atlas-0.6.1/tests/test_html_utils.py +98 -0
- doc_atlas-0.6.1/tests/test_install_cmd.py +192 -0
- doc_atlas-0.6.1/tests/test_install_mcp_handshake.py +52 -0
- doc_atlas-0.6.1/tests/test_mcp_agent_config.py +42 -0
- doc_atlas-0.6.1/tests/test_mcp_cli.py +103 -0
- doc_atlas-0.6.1/tests/test_mcp_credentials.py +88 -0
- doc_atlas-0.6.1/tests/test_mcp_dispatcher.py +239 -0
- doc_atlas-0.6.1/tests/test_mcp_doctor.py +51 -0
- doc_atlas-0.6.1/tests/test_mcp_executor_extras.py +211 -0
- doc_atlas-0.6.1/tests/test_mcp_idempotency.py +49 -0
- doc_atlas-0.6.1/tests/test_mcp_installer.py +77 -0
- doc_atlas-0.6.1/tests/test_mcp_log_append.py +25 -0
- doc_atlas-0.6.1/tests/test_mcp_logging.py +16 -0
- doc_atlas-0.6.1/tests/test_mcp_paths.py +46 -0
- doc_atlas-0.6.1/tests/test_mcp_python_executor.py +104 -0
- doc_atlas-0.6.1/tests/test_mcp_registry_fallback.py +129 -0
- doc_atlas-0.6.1/tests/test_mcp_sha_verify.py +65 -0
- doc_atlas-0.6.1/tests/test_mcp_slug.py +24 -0
- doc_atlas-0.6.1/tests/test_models.py +17 -0
- doc_atlas-0.6.1/tests/test_openai_embeddings.py +92 -0
- doc_atlas-0.6.1/tests/test_parsers.py +59 -0
- doc_atlas-0.6.1/tests/test_public_docs_regression_gate.py +47 -0
- doc_atlas-0.6.1/tests/test_qdrant_manager.py +50 -0
- doc_atlas-0.6.1/tests/test_qdrant_store.py +230 -0
- doc_atlas-0.6.1/tests/test_qdrant_store_unit.py +65 -0
- doc_atlas-0.6.1/tests/test_rate_limit.py +64 -0
- doc_atlas-0.6.1/tests/test_redirect.py +141 -0
- doc_atlas-0.6.1/tests/test_retrieval_features.py +532 -0
- doc_atlas-0.6.1/tests/test_retrieval_fusion.py +41 -0
- doc_atlas-0.6.1/tests/test_robots.py +110 -0
- doc_atlas-0.6.1/tests/test_sitemap.py +172 -0
- doc_atlas-0.6.1/tests/test_sqlite_store_embedding_sections.py +40 -0
- doc_atlas-0.6.1/tests/test_sqlite_vec_store.py +123 -0
- doc_atlas-0.6.1/tests/test_uspto_tm.py +195 -0
- doc_atlas-0.6.1/tests/test_vector_fallback.py +60 -0
- doc_atlas-0.6.1/tests/test_web_fetcher.py +356 -0
- doc_atlas-0.6.1/uv.lock +3610 -0
- doc_atlas-0.6.1/wiki/Architecture.md +312 -0
- doc_atlas-0.6.1/wiki/Commands.md +153 -0
- doc_atlas-0.6.1/wiki/Configuration.md +248 -0
- doc_atlas-0.6.1/wiki/Home.md +31 -0
- doc_atlas-0.6.1/wiki/Install-Targets.md +70 -0
- doc_atlas-0.6.1/wiki/MCP-Packs.md +90 -0
- doc_atlas-0.6.1/wiki/Supported-Sources.md +86 -0
- doc_atlas-0.6.1/wiki/Troubleshooting.md +173 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<!-- docmancer:start -->
|
|
2
|
+
# docmancer
|
|
3
|
+
|
|
4
|
+
Docmancer compresses documentation context so coding agents spend tokens on code, not on rereading raw docs. It ingests local files, fetches public docs, indexes everything locally with SQLite FTS5, and returns compact context packs with source attribution.
|
|
5
|
+
|
|
6
|
+
Executable: `/Users/gaurangtorvekar/Documents/coding/personal/kytona_stuff/devrel/docmancer_stuff/docmancer/.venv/bin/docmancer --config /private/var/folders/fj/87wdckpn2j7fhjysk511vt3m0000gn/T/docmancer-live-cli.8UadQL/project/docmancer.yaml`
|
|
7
|
+
|
|
8
|
+
**All commands below use `docmancer` as shorthand for the full executable path above.**
|
|
9
|
+
|
|
10
|
+
Use docmancer when the user asks about library docs, API references, vendor docs, version-specific behavior, offline docs, or wants to add docs before answering a technical question.
|
|
11
|
+
|
|
12
|
+
## Workflow
|
|
13
|
+
|
|
14
|
+
1. Run `docmancer list` to see indexed docs.
|
|
15
|
+
2. Run `docmancer query "question"` when relevant docs are present.
|
|
16
|
+
3. If local docs are missing and the user approves the path, run `docmancer ingest <path>`.
|
|
17
|
+
4. If URL docs are missing and the user approves the source, run `docmancer add <url>`.
|
|
18
|
+
5. Use the returned sections as source-grounded context for the answer or code change.
|
|
19
|
+
|
|
20
|
+
## Core Commands
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
docmancer setup
|
|
24
|
+
docmancer ingest ./docs
|
|
25
|
+
docmancer add https://docs.example.com
|
|
26
|
+
docmancer update
|
|
27
|
+
docmancer query "how to authenticate"
|
|
28
|
+
docmancer query "how to authenticate" --limit 10
|
|
29
|
+
docmancer query "how to authenticate" --expand
|
|
30
|
+
docmancer query "how to authenticate" --expand page
|
|
31
|
+
docmancer query "how to authenticate" --format json
|
|
32
|
+
docmancer list
|
|
33
|
+
docmancer inspect
|
|
34
|
+
docmancer remove <source>
|
|
35
|
+
docmancer doctor
|
|
36
|
+
docmancer fetch <url> --output <dir>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
`query` prints estimated raw docs tokens, context-pack tokens, percent saved, and agentic runway. Prefer the compact default. Use `--expand` for adjacent sections; use `--expand page` only when the surrounding page is necessary.
|
|
40
|
+
|
|
41
|
+
When documentation context is relevant, do not rely only on model memory or latest-only hosted docs. Query docmancer first, then cite or summarize the relevant local sections in the response.
|
|
42
|
+
<!-- docmancer:end -->
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
env:
|
|
10
|
+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
test:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
strategy:
|
|
16
|
+
matrix:
|
|
17
|
+
python-version: ["3.11", "3.12"]
|
|
18
|
+
|
|
19
|
+
steps:
|
|
20
|
+
- uses: actions/checkout@v5
|
|
21
|
+
|
|
22
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
23
|
+
uses: actions/setup-python@v6
|
|
24
|
+
with:
|
|
25
|
+
python-version: ${{ matrix.python-version }}
|
|
26
|
+
|
|
27
|
+
- name: Install dependencies
|
|
28
|
+
run: pip install -e ".[dev]"
|
|
29
|
+
|
|
30
|
+
- name: Run tests
|
|
31
|
+
run: pytest tests/ -v
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
name: Publish to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types: [published]
|
|
6
|
+
push:
|
|
7
|
+
tags:
|
|
8
|
+
# Glob (not regex): three-part semver tags like v0.1.1
|
|
9
|
+
- "v*.*.*"
|
|
10
|
+
- "*.*.*"
|
|
11
|
+
|
|
12
|
+
env:
|
|
13
|
+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
smoke-test:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v5
|
|
20
|
+
|
|
21
|
+
- name: Set up Python
|
|
22
|
+
uses: actions/setup-python@v6
|
|
23
|
+
with:
|
|
24
|
+
python-version: "3.11"
|
|
25
|
+
|
|
26
|
+
- name: Install package and build tools
|
|
27
|
+
run: pip install -e ".[dev]" build twine "hatchling<1.27"
|
|
28
|
+
|
|
29
|
+
- name: Verify tag matches package version
|
|
30
|
+
env:
|
|
31
|
+
RELEASE_TAG: ${{ github.event.release.tag_name || github.ref_name }}
|
|
32
|
+
run: |
|
|
33
|
+
TAG="${RELEASE_TAG#v}"
|
|
34
|
+
PKG="$(python -c "from docmancer._version import __version__; print(__version__)")"
|
|
35
|
+
if [[ "$TAG" != "$PKG" ]]; then
|
|
36
|
+
echo "::error::Git tag $RELEASE_TAG does not match docmancer._version ($PKG). Bump docmancer/_version.py before tagging."
|
|
37
|
+
exit 1
|
|
38
|
+
fi
|
|
39
|
+
|
|
40
|
+
- name: Run tests
|
|
41
|
+
run: pytest tests/ -v
|
|
42
|
+
|
|
43
|
+
- name: Run smoke CLI checks
|
|
44
|
+
run: |
|
|
45
|
+
doc-atlas --help
|
|
46
|
+
TMP_DIR="$(mktemp -d)"
|
|
47
|
+
doc-atlas init --dir "$TMP_DIR"
|
|
48
|
+
test -f "$TMP_DIR/docmancer.yaml"
|
|
49
|
+
doc-atlas doctor --config "$TMP_DIR/docmancer.yaml"
|
|
50
|
+
|
|
51
|
+
- name: Build artifacts
|
|
52
|
+
run: python -m build --no-isolation
|
|
53
|
+
|
|
54
|
+
- name: Check artifacts
|
|
55
|
+
run: python -m twine check dist/*
|
|
56
|
+
|
|
57
|
+
build:
|
|
58
|
+
needs: smoke-test
|
|
59
|
+
runs-on: ubuntu-latest
|
|
60
|
+
steps:
|
|
61
|
+
- uses: actions/checkout@v5
|
|
62
|
+
|
|
63
|
+
- name: Set up Python
|
|
64
|
+
uses: actions/setup-python@v6
|
|
65
|
+
with:
|
|
66
|
+
python-version: "3.11"
|
|
67
|
+
|
|
68
|
+
- name: Install build tools
|
|
69
|
+
run: pip install build twine "hatchling<1.27"
|
|
70
|
+
|
|
71
|
+
- name: Build
|
|
72
|
+
run: python -m build --no-isolation
|
|
73
|
+
|
|
74
|
+
- name: Check artifacts
|
|
75
|
+
run: python -m twine check dist/*
|
|
76
|
+
|
|
77
|
+
- name: Upload dist artifacts
|
|
78
|
+
uses: actions/upload-artifact@v4
|
|
79
|
+
with:
|
|
80
|
+
name: dist
|
|
81
|
+
path: dist/
|
|
82
|
+
|
|
83
|
+
publish-pypi:
|
|
84
|
+
needs: build
|
|
85
|
+
runs-on: ubuntu-latest
|
|
86
|
+
environment: release
|
|
87
|
+
steps:
|
|
88
|
+
- name: Download dist artifacts
|
|
89
|
+
uses: actions/download-artifact@v4
|
|
90
|
+
with:
|
|
91
|
+
name: dist
|
|
92
|
+
path: dist/
|
|
93
|
+
|
|
94
|
+
- name: Publish to PyPI
|
|
95
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
96
|
+
with:
|
|
97
|
+
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
.claude/
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.pyc
|
|
4
|
+
.pytest_cache/
|
|
5
|
+
.qdrant/
|
|
6
|
+
.venv/
|
|
7
|
+
dist/
|
|
8
|
+
build/
|
|
9
|
+
coverage/
|
|
10
|
+
.DS_Store
|
|
11
|
+
.worktrees/
|
|
12
|
+
.docmancer/
|
|
13
|
+
.docs-kit/
|
|
14
|
+
downloaded-docs/
|
|
15
|
+
/release-patch-pypi.sh
|
|
16
|
+
/repush-release-tag.sh
|
|
17
|
+
docs/
|
|
18
|
+
!docs/
|
|
19
|
+
docs/*
|
|
20
|
+
!docs/capabilities.md
|
|
21
|
+
!docs/context7-docmancer-comparison.md
|
|
22
|
+
!docs/DOCMANCER_PRODUCT_BRIEF.md
|
|
23
|
+
!docs/mcp-docs-server.md
|
|
24
|
+
!docs/project-docs-demo.md
|
|
25
|
+
!docs/project-docs-mcp-workflow.md
|
|
26
|
+
!docmancer/docs/
|
|
27
|
+
!docmancer/docs/*.py
|
|
28
|
+
scripts/*.log
|