docpull 6.3.0__tar.gz → 6.5.0__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.
- {docpull-6.3.0/src/docpull.egg-info → docpull-6.5.0}/PKG-INFO +24 -6
- {docpull-6.3.0 → docpull-6.5.0}/README.md +19 -3
- {docpull-6.3.0 → docpull-6.5.0}/pyproject.toml +6 -3
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/__init__.py +9 -1
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/accounting.py +5 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/benchmark.py +393 -5
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/cli.py +59 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_ci.py +11 -3
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/__init__.py +3 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/brand.py +23 -9
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/common.py +74 -1
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/policy_pack.py +16 -7
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/product.py +165 -37
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/schema_extract.py +198 -4
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/styleguide.py +14 -7
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/visuals.py +6 -2
- docpull-6.5.0/src/docpull/context_packs/website.py +1238 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/workflow_cli.py +44 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/contracts.py +141 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/core/fetcher.py +23 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/discovery/contracts.py +215 -5
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/eval_grade.py +139 -16
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/free_core.py +27 -2
- docpull-6.5.0/src/docpull/integrations/__init__.py +31 -0
- docpull-6.5.0/src/docpull/integrations/_records.py +114 -0
- docpull-6.5.0/src/docpull/integrations/langchain.py +42 -0
- docpull-6.5.0/src/docpull/integrations/llamaindex.py +42 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/judge.py +189 -1
- docpull-6.5.0/src/docpull/llm_client.py +97 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/local_workflows.py +143 -2
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/mcp/server.py +111 -2
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/mcp/tools.py +157 -11
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/models/config.py +52 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/models/events.py +1 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/pack_tools.py +101 -1
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/pipeline/base.py +7 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/pipeline/manifest.py +43 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/pipeline/steps/convert.py +70 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/pipeline/steps/fetch.py +51 -0
- docpull-6.5.0/src/docpull/pipeline/steps/screen.py +47 -0
- docpull-6.5.0/src/docpull/provenance.py +402 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/rendering.py +230 -45
- docpull-6.5.0/src/docpull/schemas/website-snapshot.v1.schema.json +567 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/security/__init__.py +14 -0
- docpull-6.5.0/src/docpull/security/injection.py +208 -0
- docpull-6.5.0/src/docpull/security/optout.py +147 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/source_scoring.py +6 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/surface.py +12 -0
- docpull-6.5.0/src/docpull/warc.py +220 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/workflows.py +36 -1
- {docpull-6.3.0 → docpull-6.5.0/src/docpull.egg-info}/PKG-INFO +24 -6
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull.egg-info/SOURCES.txt +23 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull.egg-info/requires.txt +5 -2
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_accounting.py +12 -1
- docpull-6.5.0/tests/test_archive_discovery.py +204 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_benchmark.py +251 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_ci_policy.py +3 -5
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_free_core.py +1 -1
- docpull-6.5.0/tests/test_injection_screen.py +298 -0
- docpull-6.5.0/tests/test_integrations.py +209 -0
- docpull-6.5.0/tests/test_llm_extract.py +221 -0
- docpull-6.5.0/tests/test_local_pack_workflows.py +151 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_local_workflows.py +113 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_mcp_tools.py +35 -0
- docpull-6.5.0/tests/test_optout.py +414 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_pack_tools.py +20 -0
- docpull-6.5.0/tests/test_provenance.py +329 -0
- docpull-6.5.0/tests/test_qa_judge.py +345 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_release_a_plus_check_script.py +6 -14
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_rendering.py +239 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_source_scoring.py +11 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_surface_contract.py +0 -32
- docpull-6.5.0/tests/test_token_metrics.py +74 -0
- docpull-6.5.0/tests/test_warc.py +315 -0
- docpull-6.5.0/tests/test_website_snapshot.py +352 -0
- {docpull-6.3.0 → docpull-6.5.0}/LICENSE +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/setup.cfg +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/__main__.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/acquisition_workflows.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/agent_publish.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/auth_cli.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/basis.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/cache/__init__.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/cache/frontier.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/cache/manager.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/cache/streaming_dedup.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/change_events.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_aliases.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/_legacy_cli.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/cli.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/dataset.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/feed.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/openapi.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/package.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/paper.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/relationship.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/repo.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/search.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/standards.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/transcript.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/typed.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/typed_models.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/context_packs/wiki.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/contracts_cli.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/conversion/__init__.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/conversion/article_cleanup.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/conversion/chunking.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/conversion/ensemble.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/conversion/extractor.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/conversion/filings.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/conversion/markdown.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/conversion/protocols.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/conversion/special_cases.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/conversion/trafilatura_extractor.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/core/__init__.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/discovery/__init__.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/discovery/_fetch.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/discovery/composite.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/discovery/crawler.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/discovery/filters.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/discovery/link_extractors/__init__.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/discovery/link_extractors/enhanced.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/discovery/link_extractors/protocols.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/discovery/link_extractors/static.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/discovery/protocols.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/discovery/sitemap.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/discovery_cli.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/doctor.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/document_parse.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/document_worker.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/evidence.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/evidence_pack.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/export_formats.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/exports.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/fixtures/__init__.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/fixtures/parallel-search-extract.json +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/free_core_smoke.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/graph.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/hosted.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/http/__init__.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/http/client.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/http/protocols.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/http/rate_limiter.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/mcp/__init__.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/mcp/sources.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/metadata_extractor.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/models/__init__.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/models/document.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/models/profiles.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/models/run.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/models/schema.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/monitor.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/native_integrations.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/output_contract.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/pack_reader.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/parallel_workflows.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/parity.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/parity_cli.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/passk.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/pipeline/__init__.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/pipeline/steps/__init__.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/pipeline/steps/chunk.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/pipeline/steps/dedup.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/pipeline/steps/metadata.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/pipeline/steps/render.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/pipeline/steps/save.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/pipeline/steps/save_json.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/pipeline/steps/save_ndjson.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/pipeline/steps/save_okf.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/pipeline/steps/save_sqlite.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/pipeline/steps/validate.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/policy.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/policy_cli.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/project.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/provider_adapters.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/provider_capabilities.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/provider_cli.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/provider_keys.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/provider_probes.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/py.typed +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/redaction.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/schemas/artifact-manifest.v1.schema.json +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/schemas/basis.v2.schema.json +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/schemas/change-event.v1.schema.json +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/schemas/citation-map.v1.schema.json +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/schemas/document.v3.schema.json +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/schemas/intelligence-bundle.v1.schema.json +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/schemas/pack.v3.schema.json +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/schemas/provenance.v1.schema.json +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/schemas/relationship-pack.v1.schema.json +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/schemas/rights.v1.schema.json +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/schemas/run-identity.v1.schema.json +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/schemas/workflow-request.v1.schema.json +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/schemas/workflow-result.v1.schema.json +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/scraper.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/security/download_policy.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/security/robots.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/security/url_validator.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/server.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/share.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/skill_export.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull/time_utils.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull.egg-info/dependency_links.txt +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull.egg-info/entry_points.txt +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/src/docpull.egg-info/top_level.txt +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_acquisition_workflows.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_auth_cli.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_basis.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_cache_conditional_get.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_chunking.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_claim_audit_script.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_cli.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_context_ci.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_context_packs.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_conversion.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_convert_step_new.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_discovery.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_discovery_contracts.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_doctor.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_document_parse.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_document_record.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_evidence_pack.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_exports.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_extractor_ensemble.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_feed_pack.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_frontier_resume.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_graph.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_hosted.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_http_efficiency.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_import_efficiency.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_integration.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_judge.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_link_extractors.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_live_web_smoke.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_mcp_server.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_metadata_extractor.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_monitor.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_naming.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_native_integrations.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_openapi_pack.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_optional_extras_installed.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_output_contract.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_outputs_e2e.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_pack_server.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_parallel_workflows.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_parity_workflows.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_passk.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_pipeline.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_policy.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_policy_cli.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_project.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_provider_adapters.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_provider_cli.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_provider_keys.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_provider_probes.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_public_feature_smoke.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_rate_limiter.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_real_feature_smoke_script.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_real_site_regressions.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_relationship_workflow.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_reproducible_release_build.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_save_ndjson.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_save_sqlite.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_security_hardening.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_share.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_special_cases.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_time_utils.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_trafilatura_extractor.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_typed_knowledge_packs.py +0 -0
- {docpull-6.3.0 → docpull-6.5.0}/tests/test_workflow_contracts.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: docpull
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.5.0
|
|
4
4
|
Summary: Declare, sync, diff, and lock context dependencies for AI agents
|
|
5
5
|
Author-email: Zachary Roth <support@raintree.technology>
|
|
6
6
|
Maintainer-email: Raintree Technology <support@raintree.technology>
|
|
@@ -61,7 +61,7 @@ Provides-Extra: tokens
|
|
|
61
61
|
Requires-Dist: tiktoken>=0.7.0; extra == "tokens"
|
|
62
62
|
Provides-Extra: mcp
|
|
63
63
|
Requires-Dist: cryptography>=48.0.1; extra == "mcp"
|
|
64
|
-
Requires-Dist: mcp>=1.
|
|
64
|
+
Requires-Dist: mcp>=1.28.1; extra == "mcp"
|
|
65
65
|
Requires-Dist: pydantic-settings>=2.14.2; extra == "mcp"
|
|
66
66
|
Requires-Dist: pyjwt>=2.13.0; extra == "mcp"
|
|
67
67
|
Requires-Dist: python-multipart>=0.0.27; extra == "mcp"
|
|
@@ -84,6 +84,8 @@ Requires-Dist: markitdown[docx,pdf]>=0.1.0; extra == "parse"
|
|
|
84
84
|
Requires-Dist: unstructured[all-docs]>=0.16.0; extra == "parse"
|
|
85
85
|
Provides-Extra: presidio
|
|
86
86
|
Requires-Dist: presidio-analyzer>=2.2.0; extra == "presidio"
|
|
87
|
+
Provides-Extra: provenance
|
|
88
|
+
Requires-Dist: cryptography>=48.0.1; extra == "provenance"
|
|
87
89
|
Provides-Extra: e2b
|
|
88
90
|
Requires-Dist: e2b>=2.0.0; extra == "e2b"
|
|
89
91
|
Provides-Extra: llm
|
|
@@ -94,7 +96,7 @@ Requires-Dist: url-normalize>=1.4.0; extra == "all"
|
|
|
94
96
|
Requires-Dist: trafilatura>=1.12.0; extra == "all"
|
|
95
97
|
Requires-Dist: tiktoken>=0.7.0; extra == "all"
|
|
96
98
|
Requires-Dist: cryptography>=48.0.1; extra == "all"
|
|
97
|
-
Requires-Dist: mcp>=1.
|
|
99
|
+
Requires-Dist: mcp>=1.28.1; extra == "all"
|
|
98
100
|
Requires-Dist: pydantic-settings>=2.14.2; extra == "all"
|
|
99
101
|
Requires-Dist: pyjwt>=2.13.0; extra == "all"
|
|
100
102
|
Requires-Dist: python-multipart>=0.0.27; extra == "all"
|
|
@@ -180,8 +182,10 @@ through their typed lanes and do not use discovery.
|
|
|
180
182
|
|
|
181
183
|
The original `docpull URL ...` workflow still works: fetch public or explicitly
|
|
182
184
|
authorized static/server-rendered web pages and write clean Markdown, NDJSON,
|
|
183
|
-
SQLite, or OKF outputs.
|
|
184
|
-
|
|
185
|
+
SQLite, or Open Knowledge Format (OKF) outputs. OKF is a portable bundle format
|
|
186
|
+
that keeps content, indexes, and manifests together for reuse across tools.
|
|
187
|
+
Project mode adds the persistent evidence lifecycle on top: sources, runs,
|
|
188
|
+
diffs, exports, evals, accounting, and local auditability.
|
|
185
189
|
|
|
186
190
|
DocPull is local-first: direct fetching, sitemap/link discovery, extraction,
|
|
187
191
|
indexing, pack intelligence, and opt-in `agent-browser` rendering can run with
|
|
@@ -307,6 +311,7 @@ docpull standards-pack rfc:9110 -o packs/standard
|
|
|
307
311
|
docpull dataset-pack ./metrics.csv -o packs/dataset
|
|
308
312
|
docpull dataset-pack 'https://data.example.org/rows.json?$limit=100' -o packs/dataset
|
|
309
313
|
docpull relationship-pack example.com --subject "Example Brand" -o packs/relationships
|
|
314
|
+
docpull website-pack example.com -o packs/website
|
|
310
315
|
docpull transcript-pack ./meeting.vtt -o packs/transcript
|
|
311
316
|
docpull wiki-pack wiki:Web_scraping -o packs/wiki
|
|
312
317
|
docpull brand-pack example.com -o packs/brand
|
|
@@ -320,6 +325,9 @@ docpull export packs/docs --format openai-vector-jsonl -o exports/openai.jsonl
|
|
|
320
325
|
docpull export packs/docs --format cursor-rules -o .cursor/rules --skill-name docs
|
|
321
326
|
```
|
|
322
327
|
|
|
328
|
+
The canonical baseline-aware website acquisition contract is documented in
|
|
329
|
+
[Website snapshots](docs/website-snapshot.md).
|
|
330
|
+
|
|
323
331
|
Use `docpull ci --prepare` to validate a project or standalone pack in CI.
|
|
324
332
|
|
|
325
333
|
Install optional extras as needed:
|
|
@@ -700,6 +708,13 @@ installed.
|
|
|
700
708
|
| Hosted extraction APIs | Managed extraction at scale | External dependency and cost |
|
|
701
709
|
| docpull | Local public web-source extraction and context packs | No JavaScript rendering by default |
|
|
702
710
|
|
|
711
|
+
For a tool-by-tool comparison, including self-hosted browser crawlers and
|
|
712
|
+
hosted extraction services, see [Alternatives](docs/alternatives.md). Measured
|
|
713
|
+
extraction-quality, tokens-per-page, and cost comparisons on a fixed corpus —
|
|
714
|
+
plus local extractor baselines — live in the evaluation lab under
|
|
715
|
+
[`bench/`](bench/README.md), which is an internal, reproducible harness rather
|
|
716
|
+
than a public leaderboard.
|
|
717
|
+
|
|
703
718
|
## Python SDK
|
|
704
719
|
|
|
705
720
|
```python
|
|
@@ -772,7 +787,7 @@ part of the package release contract.
|
|
|
772
787
|
`docpull parse`, `docpull openapi-pack`, `docpull feed-pack`,
|
|
773
788
|
`docpull paper-pack`, `docpull repo-pack`, `docpull package-pack`,
|
|
774
789
|
`docpull standards-pack`, `docpull dataset-pack`, `docpull transcript-pack`,
|
|
775
|
-
`docpull wiki-pack`, `docpull brand-pack`, `docpull product-pack`,
|
|
790
|
+
`docpull wiki-pack`, `docpull website-pack`, `docpull brand-pack`, `docpull product-pack`,
|
|
776
791
|
`docpull styleguide-pack`, `docpull image-pack`, `docpull policy-pack`,
|
|
777
792
|
`docpull pack validate`,
|
|
778
793
|
`docpull pack audit`, `docpull export`,
|
|
@@ -794,6 +809,9 @@ part of the package release contract.
|
|
|
794
809
|
When running with `--proxy`, DNS pinning is delegated to the proxy. Pass
|
|
795
810
|
`--require-pinned-dns` to refuse that configuration.
|
|
796
811
|
|
|
812
|
+
See [Compliance Posture](docs/compliance.md) for the full identity, robots.txt,
|
|
813
|
+
rate-limit, and AI/TDM opt-out behavior.
|
|
814
|
+
|
|
797
815
|
## Troubleshooting
|
|
798
816
|
|
|
799
817
|
```bash
|
|
@@ -56,8 +56,10 @@ through their typed lanes and do not use discovery.
|
|
|
56
56
|
|
|
57
57
|
The original `docpull URL ...` workflow still works: fetch public or explicitly
|
|
58
58
|
authorized static/server-rendered web pages and write clean Markdown, NDJSON,
|
|
59
|
-
SQLite, or OKF outputs.
|
|
60
|
-
|
|
59
|
+
SQLite, or Open Knowledge Format (OKF) outputs. OKF is a portable bundle format
|
|
60
|
+
that keeps content, indexes, and manifests together for reuse across tools.
|
|
61
|
+
Project mode adds the persistent evidence lifecycle on top: sources, runs,
|
|
62
|
+
diffs, exports, evals, accounting, and local auditability.
|
|
61
63
|
|
|
62
64
|
DocPull is local-first: direct fetching, sitemap/link discovery, extraction,
|
|
63
65
|
indexing, pack intelligence, and opt-in `agent-browser` rendering can run with
|
|
@@ -183,6 +185,7 @@ docpull standards-pack rfc:9110 -o packs/standard
|
|
|
183
185
|
docpull dataset-pack ./metrics.csv -o packs/dataset
|
|
184
186
|
docpull dataset-pack 'https://data.example.org/rows.json?$limit=100' -o packs/dataset
|
|
185
187
|
docpull relationship-pack example.com --subject "Example Brand" -o packs/relationships
|
|
188
|
+
docpull website-pack example.com -o packs/website
|
|
186
189
|
docpull transcript-pack ./meeting.vtt -o packs/transcript
|
|
187
190
|
docpull wiki-pack wiki:Web_scraping -o packs/wiki
|
|
188
191
|
docpull brand-pack example.com -o packs/brand
|
|
@@ -196,6 +199,9 @@ docpull export packs/docs --format openai-vector-jsonl -o exports/openai.jsonl
|
|
|
196
199
|
docpull export packs/docs --format cursor-rules -o .cursor/rules --skill-name docs
|
|
197
200
|
```
|
|
198
201
|
|
|
202
|
+
The canonical baseline-aware website acquisition contract is documented in
|
|
203
|
+
[Website snapshots](docs/website-snapshot.md).
|
|
204
|
+
|
|
199
205
|
Use `docpull ci --prepare` to validate a project or standalone pack in CI.
|
|
200
206
|
|
|
201
207
|
Install optional extras as needed:
|
|
@@ -576,6 +582,13 @@ installed.
|
|
|
576
582
|
| Hosted extraction APIs | Managed extraction at scale | External dependency and cost |
|
|
577
583
|
| docpull | Local public web-source extraction and context packs | No JavaScript rendering by default |
|
|
578
584
|
|
|
585
|
+
For a tool-by-tool comparison, including self-hosted browser crawlers and
|
|
586
|
+
hosted extraction services, see [Alternatives](docs/alternatives.md). Measured
|
|
587
|
+
extraction-quality, tokens-per-page, and cost comparisons on a fixed corpus —
|
|
588
|
+
plus local extractor baselines — live in the evaluation lab under
|
|
589
|
+
[`bench/`](bench/README.md), which is an internal, reproducible harness rather
|
|
590
|
+
than a public leaderboard.
|
|
591
|
+
|
|
579
592
|
## Python SDK
|
|
580
593
|
|
|
581
594
|
```python
|
|
@@ -648,7 +661,7 @@ part of the package release contract.
|
|
|
648
661
|
`docpull parse`, `docpull openapi-pack`, `docpull feed-pack`,
|
|
649
662
|
`docpull paper-pack`, `docpull repo-pack`, `docpull package-pack`,
|
|
650
663
|
`docpull standards-pack`, `docpull dataset-pack`, `docpull transcript-pack`,
|
|
651
|
-
`docpull wiki-pack`, `docpull brand-pack`, `docpull product-pack`,
|
|
664
|
+
`docpull wiki-pack`, `docpull website-pack`, `docpull brand-pack`, `docpull product-pack`,
|
|
652
665
|
`docpull styleguide-pack`, `docpull image-pack`, `docpull policy-pack`,
|
|
653
666
|
`docpull pack validate`,
|
|
654
667
|
`docpull pack audit`, `docpull export`,
|
|
@@ -670,6 +683,9 @@ part of the package release contract.
|
|
|
670
683
|
When running with `--proxy`, DNS pinning is delegated to the proxy. Pass
|
|
671
684
|
`--require-pinned-dns` to refuse that configuration.
|
|
672
685
|
|
|
686
|
+
See [Compliance Posture](docs/compliance.md) for the full identity, robots.txt,
|
|
687
|
+
rate-limit, and AI/TDM opt-out behavior.
|
|
688
|
+
|
|
673
689
|
## Troubleshooting
|
|
674
690
|
|
|
675
691
|
```bash
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "docpull"
|
|
7
|
-
version = "6.
|
|
7
|
+
version = "6.5.0"
|
|
8
8
|
dynamic = []
|
|
9
9
|
description = "Declare, sync, diff, and lock context dependencies for AI agents"
|
|
10
10
|
readme = {file = "README.md", content-type = "text/markdown"}
|
|
@@ -110,7 +110,7 @@ tokens = [
|
|
|
110
110
|
]
|
|
111
111
|
mcp = [
|
|
112
112
|
"cryptography>=48.0.1",
|
|
113
|
-
"mcp>=1.
|
|
113
|
+
"mcp>=1.28.1",
|
|
114
114
|
"pydantic-settings>=2.14.2",
|
|
115
115
|
"pyjwt>=2.13.0",
|
|
116
116
|
"python-multipart>=0.0.27",
|
|
@@ -141,6 +141,9 @@ parse = [
|
|
|
141
141
|
presidio = [
|
|
142
142
|
"presidio-analyzer>=2.2.0",
|
|
143
143
|
]
|
|
144
|
+
provenance = [
|
|
145
|
+
"cryptography>=48.0.1",
|
|
146
|
+
]
|
|
144
147
|
e2b = [
|
|
145
148
|
"e2b>=2.0.0",
|
|
146
149
|
]
|
|
@@ -153,7 +156,7 @@ all = [
|
|
|
153
156
|
"trafilatura>=1.12.0",
|
|
154
157
|
"tiktoken>=0.7.0",
|
|
155
158
|
"cryptography>=48.0.1",
|
|
156
|
-
"mcp>=1.
|
|
159
|
+
"mcp>=1.28.1",
|
|
157
160
|
"pydantic-settings>=2.14.2",
|
|
158
161
|
"pyjwt>=2.13.0",
|
|
159
162
|
"python-multipart>=0.0.27",
|
|
@@ -15,7 +15,7 @@ from typing import TYPE_CHECKING, Any
|
|
|
15
15
|
|
|
16
16
|
from .surface import PUBLIC_SDK_EXPORTS
|
|
17
17
|
|
|
18
|
-
__version__ = "6.
|
|
18
|
+
__version__ = "6.5.0"
|
|
19
19
|
|
|
20
20
|
_LAZY_EXPORTS: dict[str, tuple[str, str]] = {
|
|
21
21
|
**{
|
|
@@ -41,9 +41,11 @@ _LAZY_EXPORTS: dict[str, tuple[str, str]] = {
|
|
|
41
41
|
"build_repo_pack",
|
|
42
42
|
"build_standards_pack",
|
|
43
43
|
"build_styleguide_pack",
|
|
44
|
+
"build_website_pack",
|
|
44
45
|
"build_transcript_pack",
|
|
45
46
|
"build_wiki_pack",
|
|
46
47
|
"capture_screenshot_pack",
|
|
48
|
+
"validate_website_snapshot_pack",
|
|
47
49
|
)
|
|
48
50
|
},
|
|
49
51
|
**{
|
|
@@ -59,6 +61,8 @@ _LAZY_EXPORTS: dict[str, tuple[str, str]] = {
|
|
|
59
61
|
"SourceAuthority",
|
|
60
62
|
"WorkflowRequest",
|
|
61
63
|
"WorkflowResult",
|
|
64
|
+
"WebsiteSnapshot",
|
|
65
|
+
"WebsiteSnapshotDocument",
|
|
62
66
|
"bundled_schema_path",
|
|
63
67
|
"write_contract_schemas",
|
|
64
68
|
)
|
|
@@ -198,8 +202,10 @@ if TYPE_CHECKING:
|
|
|
198
202
|
build_standards_pack,
|
|
199
203
|
build_styleguide_pack,
|
|
200
204
|
build_transcript_pack,
|
|
205
|
+
build_website_pack,
|
|
201
206
|
build_wiki_pack,
|
|
202
207
|
capture_screenshot_pack,
|
|
208
|
+
validate_website_snapshot_pack,
|
|
203
209
|
)
|
|
204
210
|
from .contracts import (
|
|
205
211
|
ArtifactManifest,
|
|
@@ -210,6 +216,8 @@ if TYPE_CHECKING:
|
|
|
210
216
|
RelationshipCandidate,
|
|
211
217
|
RelationshipPack,
|
|
212
218
|
SourceAuthority,
|
|
219
|
+
WebsiteSnapshot,
|
|
220
|
+
WebsiteSnapshotDocument,
|
|
213
221
|
WorkflowRequest,
|
|
214
222
|
WorkflowResult,
|
|
215
223
|
bundled_schema_path,
|
|
@@ -232,6 +232,11 @@ def default_route_steps(
|
|
|
232
232
|
RouteStep("direct_http", "available", detail="fetch public HTTPS source directly"),
|
|
233
233
|
RouteStep("sitemap_link_discovery", "available", detail="use sitemap and static links"),
|
|
234
234
|
RouteStep("embedded_data_extraction", "available", detail="use framework/static page data"),
|
|
235
|
+
RouteStep(
|
|
236
|
+
"archive_fallback",
|
|
237
|
+
"available",
|
|
238
|
+
detail="replay Wayback CDX and Common Crawl index snapshots at zero cost",
|
|
239
|
+
),
|
|
235
240
|
]
|
|
236
241
|
steps.append(
|
|
237
242
|
RouteStep(
|