docpull 6.1.0__tar.gz → 6.3.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.
Files changed (259) hide show
  1. {docpull-6.1.0/src/docpull.egg-info → docpull-6.3.0}/PKG-INFO +40 -3
  2. {docpull-6.1.0 → docpull-6.3.0}/README.md +39 -2
  3. {docpull-6.1.0 → docpull-6.3.0}/pyproject.toml +2 -2
  4. docpull-6.3.0/src/docpull/__init__.py +287 -0
  5. docpull-6.3.0/src/docpull/acquisition_workflows.py +567 -0
  6. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/basis.py +18 -14
  7. docpull-6.3.0/src/docpull/cache/__init__.py +50 -0
  8. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/cache/frontier.py +72 -10
  9. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/cache/manager.py +6 -1
  10. docpull-6.3.0/src/docpull/change_events.py +209 -0
  11. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/cli.py +218 -55
  12. docpull-6.3.0/src/docpull/context_packs/__init__.py +66 -0
  13. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/_legacy_cli.py +3 -4
  14. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/cli.py +5 -2
  15. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/common.py +330 -37
  16. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/dataset.py +128 -12
  17. docpull-6.3.0/src/docpull/context_packs/policy_pack.py +354 -0
  18. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/product.py +131 -25
  19. docpull-6.3.0/src/docpull/context_packs/relationship.py +567 -0
  20. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/typed.py +54 -1
  21. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/visuals.py +0 -1
  22. docpull-6.3.0/src/docpull/context_packs/workflow_cli.py +99 -0
  23. docpull-6.3.0/src/docpull/contracts.py +657 -0
  24. docpull-6.3.0/src/docpull/contracts_cli.py +40 -0
  25. docpull-6.3.0/src/docpull/conversion/__init__.py +76 -0
  26. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/conversion/extractor.py +16 -4
  27. docpull-6.3.0/src/docpull/discovery/__init__.py +101 -0
  28. docpull-6.3.0/src/docpull/discovery/link_extractors/__init__.py +37 -0
  29. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/document_parse.py +15 -0
  30. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/eval_grade.py +5 -4
  31. docpull-6.3.0/src/docpull/evidence.py +227 -0
  32. docpull-6.3.0/src/docpull/export_formats.py +27 -0
  33. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/exports.py +7 -25
  34. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/graph.py +84 -34
  35. docpull-6.3.0/src/docpull/http/__init__.py +46 -0
  36. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/http/client.py +66 -1
  37. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/local_workflows.py +48 -9
  38. docpull-6.3.0/src/docpull/mcp/__init__.py +24 -0
  39. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/mcp/server.py +486 -16
  40. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/mcp/tools.py +21 -4
  41. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/metadata_extractor.py +1 -1
  42. docpull-6.3.0/src/docpull/models/__init__.py +128 -0
  43. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/models/events.py +6 -1
  44. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/models/run.py +15 -6
  45. docpull-6.3.0/src/docpull/models/schema.py +9 -0
  46. docpull-6.3.0/src/docpull/native_integrations.py +88 -0
  47. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/output_contract.py +7 -2
  48. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/pack_reader.py +86 -20
  49. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/pack_tools.py +613 -82
  50. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/pipeline/base.py +6 -0
  51. docpull-6.3.0/src/docpull/pipeline/steps/__init__.py +74 -0
  52. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/pipeline/steps/convert.py +51 -3
  53. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/pipeline/steps/fetch.py +26 -0
  54. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/pipeline/steps/metadata.py +2 -2
  55. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/project.py +96 -5
  56. docpull-6.3.0/src/docpull/schemas/artifact-manifest.v1.schema.json +99 -0
  57. docpull-6.3.0/src/docpull/schemas/basis.v2.schema.json +86 -0
  58. docpull-6.3.0/src/docpull/schemas/change-event.v1.schema.json +243 -0
  59. docpull-6.3.0/src/docpull/schemas/citation-map.v1.schema.json +30 -0
  60. docpull-6.3.0/src/docpull/schemas/document.v3.schema.json +275 -0
  61. docpull-6.3.0/src/docpull/schemas/intelligence-bundle.v1.schema.json +561 -0
  62. docpull-6.3.0/src/docpull/schemas/pack.v3.schema.json +44 -0
  63. docpull-6.3.0/src/docpull/schemas/provenance.v1.schema.json +32 -0
  64. docpull-6.3.0/src/docpull/schemas/relationship-pack.v1.schema.json +401 -0
  65. docpull-6.3.0/src/docpull/schemas/rights.v1.schema.json +34 -0
  66. docpull-6.3.0/src/docpull/schemas/run-identity.v1.schema.json +121 -0
  67. docpull-6.3.0/src/docpull/schemas/workflow-request.v1.schema.json +95 -0
  68. docpull-6.3.0/src/docpull/schemas/workflow-result.v1.schema.json +426 -0
  69. docpull-6.3.0/src/docpull/security/__init__.py +43 -0
  70. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/surface.py +52 -22
  71. docpull-6.3.0/src/docpull/workflows.py +334 -0
  72. {docpull-6.1.0 → docpull-6.3.0/src/docpull.egg-info}/PKG-INFO +40 -3
  73. {docpull-6.1.0 → docpull-6.3.0}/src/docpull.egg-info/SOURCES.txt +32 -1
  74. docpull-6.3.0/tests/test_acquisition_workflows.py +100 -0
  75. {docpull-6.1.0 → docpull-6.3.0}/tests/test_ci_policy.py +56 -15
  76. {docpull-6.1.0 → docpull-6.3.0}/tests/test_cli.py +46 -0
  77. {docpull-6.1.0 → docpull-6.3.0}/tests/test_context_packs.py +5 -2
  78. docpull-6.3.0/tests/test_frontier_resume.py +90 -0
  79. docpull-6.3.0/tests/test_http_efficiency.py +169 -0
  80. docpull-6.3.0/tests/test_import_efficiency.py +107 -0
  81. docpull-6.3.0/tests/test_native_integrations.py +29 -0
  82. {docpull-6.1.0 → docpull-6.3.0}/tests/test_pack_tools.py +23 -0
  83. {docpull-6.1.0 → docpull-6.3.0}/tests/test_pipeline.py +20 -0
  84. docpull-6.3.0/tests/test_relationship_workflow.py +218 -0
  85. {docpull-6.1.0 → docpull-6.3.0}/tests/test_release_a_plus_check_script.py +8 -2
  86. {docpull-6.1.0 → docpull-6.3.0}/tests/test_surface_contract.py +16 -16
  87. {docpull-6.1.0 → docpull-6.3.0}/tests/test_typed_knowledge_packs.py +35 -0
  88. docpull-6.3.0/tests/test_workflow_contracts.py +252 -0
  89. docpull-6.1.0/src/docpull/__init__.py +0 -204
  90. docpull-6.1.0/src/docpull/cache/__init__.py +0 -16
  91. docpull-6.1.0/src/docpull/context_packs/__init__.py +0 -35
  92. docpull-6.1.0/src/docpull/conversion/__init__.py +0 -37
  93. docpull-6.1.0/src/docpull/discovery/__init__.py +0 -52
  94. docpull-6.1.0/src/docpull/discovery/link_extractors/__init__.py +0 -11
  95. docpull-6.1.0/src/docpull/http/__init__.py +0 -13
  96. docpull-6.1.0/src/docpull/mcp/__init__.py +0 -10
  97. docpull-6.1.0/src/docpull/models/__init__.py +0 -61
  98. docpull-6.1.0/src/docpull/pipeline/steps/__init__.py +0 -31
  99. docpull-6.1.0/src/docpull/security/__init__.py +0 -13
  100. docpull-6.1.0/tests/test_frontier_resume.py +0 -35
  101. {docpull-6.1.0 → docpull-6.3.0}/LICENSE +0 -0
  102. {docpull-6.1.0 → docpull-6.3.0}/setup.cfg +0 -0
  103. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/__main__.py +0 -0
  104. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/accounting.py +0 -0
  105. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/agent_publish.py +0 -0
  106. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/auth_cli.py +0 -0
  107. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/benchmark.py +0 -0
  108. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/cache/streaming_dedup.py +0 -0
  109. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_aliases.py +0 -0
  110. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_ci.py +0 -0
  111. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/brand.py +0 -0
  112. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/feed.py +0 -0
  113. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/openapi.py +0 -0
  114. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/package.py +0 -0
  115. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/paper.py +0 -0
  116. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/repo.py +0 -0
  117. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/schema_extract.py +0 -0
  118. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/search.py +0 -0
  119. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/standards.py +0 -0
  120. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/styleguide.py +0 -0
  121. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/transcript.py +0 -0
  122. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/typed_models.py +0 -0
  123. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/context_packs/wiki.py +0 -0
  124. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/conversion/article_cleanup.py +0 -0
  125. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/conversion/chunking.py +0 -0
  126. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/conversion/ensemble.py +0 -0
  127. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/conversion/filings.py +0 -0
  128. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/conversion/markdown.py +0 -0
  129. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/conversion/protocols.py +0 -0
  130. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/conversion/special_cases.py +0 -0
  131. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/conversion/trafilatura_extractor.py +0 -0
  132. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/core/__init__.py +0 -0
  133. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/core/fetcher.py +0 -0
  134. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/discovery/_fetch.py +0 -0
  135. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/discovery/composite.py +0 -0
  136. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/discovery/contracts.py +0 -0
  137. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/discovery/crawler.py +0 -0
  138. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/discovery/filters.py +0 -0
  139. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/discovery/link_extractors/enhanced.py +0 -0
  140. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/discovery/link_extractors/protocols.py +0 -0
  141. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/discovery/link_extractors/static.py +0 -0
  142. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/discovery/protocols.py +0 -0
  143. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/discovery/sitemap.py +0 -0
  144. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/discovery_cli.py +0 -0
  145. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/doctor.py +0 -0
  146. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/document_worker.py +0 -0
  147. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/evidence_pack.py +0 -0
  148. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/fixtures/__init__.py +0 -0
  149. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/fixtures/parallel-search-extract.json +0 -0
  150. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/free_core.py +0 -0
  151. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/free_core_smoke.py +0 -0
  152. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/hosted.py +0 -0
  153. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/http/protocols.py +0 -0
  154. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/http/rate_limiter.py +0 -0
  155. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/judge.py +0 -0
  156. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/mcp/sources.py +0 -0
  157. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/models/config.py +0 -0
  158. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/models/document.py +0 -0
  159. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/models/profiles.py +0 -0
  160. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/monitor.py +0 -0
  161. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/parallel_workflows.py +0 -0
  162. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/parity.py +0 -0
  163. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/parity_cli.py +0 -0
  164. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/passk.py +0 -0
  165. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/pipeline/__init__.py +0 -0
  166. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/pipeline/manifest.py +0 -0
  167. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/pipeline/steps/chunk.py +0 -0
  168. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/pipeline/steps/dedup.py +0 -0
  169. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/pipeline/steps/render.py +0 -0
  170. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/pipeline/steps/save.py +0 -0
  171. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/pipeline/steps/save_json.py +0 -0
  172. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/pipeline/steps/save_ndjson.py +0 -0
  173. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/pipeline/steps/save_okf.py +0 -0
  174. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/pipeline/steps/save_sqlite.py +0 -0
  175. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/pipeline/steps/validate.py +0 -0
  176. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/policy.py +0 -0
  177. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/policy_cli.py +0 -0
  178. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/provider_adapters.py +0 -0
  179. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/provider_capabilities.py +0 -0
  180. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/provider_cli.py +0 -0
  181. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/provider_keys.py +0 -0
  182. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/provider_probes.py +0 -0
  183. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/py.typed +0 -0
  184. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/redaction.py +0 -0
  185. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/rendering.py +0 -0
  186. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/scraper.py +0 -0
  187. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/security/download_policy.py +0 -0
  188. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/security/robots.py +0 -0
  189. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/security/url_validator.py +0 -0
  190. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/server.py +0 -0
  191. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/share.py +0 -0
  192. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/skill_export.py +0 -0
  193. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/source_scoring.py +0 -0
  194. {docpull-6.1.0 → docpull-6.3.0}/src/docpull/time_utils.py +0 -0
  195. {docpull-6.1.0 → docpull-6.3.0}/src/docpull.egg-info/dependency_links.txt +0 -0
  196. {docpull-6.1.0 → docpull-6.3.0}/src/docpull.egg-info/entry_points.txt +0 -0
  197. {docpull-6.1.0 → docpull-6.3.0}/src/docpull.egg-info/requires.txt +0 -0
  198. {docpull-6.1.0 → docpull-6.3.0}/src/docpull.egg-info/top_level.txt +0 -0
  199. {docpull-6.1.0 → docpull-6.3.0}/tests/test_accounting.py +0 -0
  200. {docpull-6.1.0 → docpull-6.3.0}/tests/test_auth_cli.py +0 -0
  201. {docpull-6.1.0 → docpull-6.3.0}/tests/test_basis.py +0 -0
  202. {docpull-6.1.0 → docpull-6.3.0}/tests/test_benchmark.py +0 -0
  203. {docpull-6.1.0 → docpull-6.3.0}/tests/test_cache_conditional_get.py +0 -0
  204. {docpull-6.1.0 → docpull-6.3.0}/tests/test_chunking.py +0 -0
  205. {docpull-6.1.0 → docpull-6.3.0}/tests/test_claim_audit_script.py +0 -0
  206. {docpull-6.1.0 → docpull-6.3.0}/tests/test_context_ci.py +0 -0
  207. {docpull-6.1.0 → docpull-6.3.0}/tests/test_conversion.py +0 -0
  208. {docpull-6.1.0 → docpull-6.3.0}/tests/test_convert_step_new.py +0 -0
  209. {docpull-6.1.0 → docpull-6.3.0}/tests/test_discovery.py +0 -0
  210. {docpull-6.1.0 → docpull-6.3.0}/tests/test_discovery_contracts.py +0 -0
  211. {docpull-6.1.0 → docpull-6.3.0}/tests/test_doctor.py +0 -0
  212. {docpull-6.1.0 → docpull-6.3.0}/tests/test_document_parse.py +0 -0
  213. {docpull-6.1.0 → docpull-6.3.0}/tests/test_document_record.py +0 -0
  214. {docpull-6.1.0 → docpull-6.3.0}/tests/test_evidence_pack.py +0 -0
  215. {docpull-6.1.0 → docpull-6.3.0}/tests/test_exports.py +0 -0
  216. {docpull-6.1.0 → docpull-6.3.0}/tests/test_extractor_ensemble.py +0 -0
  217. {docpull-6.1.0 → docpull-6.3.0}/tests/test_feed_pack.py +0 -0
  218. {docpull-6.1.0 → docpull-6.3.0}/tests/test_free_core.py +0 -0
  219. {docpull-6.1.0 → docpull-6.3.0}/tests/test_graph.py +0 -0
  220. {docpull-6.1.0 → docpull-6.3.0}/tests/test_hosted.py +0 -0
  221. {docpull-6.1.0 → docpull-6.3.0}/tests/test_integration.py +0 -0
  222. {docpull-6.1.0 → docpull-6.3.0}/tests/test_judge.py +0 -0
  223. {docpull-6.1.0 → docpull-6.3.0}/tests/test_link_extractors.py +0 -0
  224. {docpull-6.1.0 → docpull-6.3.0}/tests/test_live_web_smoke.py +0 -0
  225. {docpull-6.1.0 → docpull-6.3.0}/tests/test_local_workflows.py +0 -0
  226. {docpull-6.1.0 → docpull-6.3.0}/tests/test_mcp_server.py +0 -0
  227. {docpull-6.1.0 → docpull-6.3.0}/tests/test_mcp_tools.py +0 -0
  228. {docpull-6.1.0 → docpull-6.3.0}/tests/test_metadata_extractor.py +0 -0
  229. {docpull-6.1.0 → docpull-6.3.0}/tests/test_monitor.py +0 -0
  230. {docpull-6.1.0 → docpull-6.3.0}/tests/test_naming.py +0 -0
  231. {docpull-6.1.0 → docpull-6.3.0}/tests/test_openapi_pack.py +0 -0
  232. {docpull-6.1.0 → docpull-6.3.0}/tests/test_optional_extras_installed.py +0 -0
  233. {docpull-6.1.0 → docpull-6.3.0}/tests/test_output_contract.py +0 -0
  234. {docpull-6.1.0 → docpull-6.3.0}/tests/test_outputs_e2e.py +0 -0
  235. {docpull-6.1.0 → docpull-6.3.0}/tests/test_pack_server.py +0 -0
  236. {docpull-6.1.0 → docpull-6.3.0}/tests/test_parallel_workflows.py +0 -0
  237. {docpull-6.1.0 → docpull-6.3.0}/tests/test_parity_workflows.py +0 -0
  238. {docpull-6.1.0 → docpull-6.3.0}/tests/test_passk.py +0 -0
  239. {docpull-6.1.0 → docpull-6.3.0}/tests/test_policy.py +0 -0
  240. {docpull-6.1.0 → docpull-6.3.0}/tests/test_policy_cli.py +0 -0
  241. {docpull-6.1.0 → docpull-6.3.0}/tests/test_project.py +0 -0
  242. {docpull-6.1.0 → docpull-6.3.0}/tests/test_provider_adapters.py +0 -0
  243. {docpull-6.1.0 → docpull-6.3.0}/tests/test_provider_cli.py +0 -0
  244. {docpull-6.1.0 → docpull-6.3.0}/tests/test_provider_keys.py +0 -0
  245. {docpull-6.1.0 → docpull-6.3.0}/tests/test_provider_probes.py +0 -0
  246. {docpull-6.1.0 → docpull-6.3.0}/tests/test_public_feature_smoke.py +0 -0
  247. {docpull-6.1.0 → docpull-6.3.0}/tests/test_rate_limiter.py +0 -0
  248. {docpull-6.1.0 → docpull-6.3.0}/tests/test_real_feature_smoke_script.py +0 -0
  249. {docpull-6.1.0 → docpull-6.3.0}/tests/test_real_site_regressions.py +0 -0
  250. {docpull-6.1.0 → docpull-6.3.0}/tests/test_rendering.py +0 -0
  251. {docpull-6.1.0 → docpull-6.3.0}/tests/test_reproducible_release_build.py +0 -0
  252. {docpull-6.1.0 → docpull-6.3.0}/tests/test_save_ndjson.py +0 -0
  253. {docpull-6.1.0 → docpull-6.3.0}/tests/test_save_sqlite.py +0 -0
  254. {docpull-6.1.0 → docpull-6.3.0}/tests/test_security_hardening.py +0 -0
  255. {docpull-6.1.0 → docpull-6.3.0}/tests/test_share.py +0 -0
  256. {docpull-6.1.0 → docpull-6.3.0}/tests/test_source_scoring.py +0 -0
  257. {docpull-6.1.0 → docpull-6.3.0}/tests/test_special_cases.py +0 -0
  258. {docpull-6.1.0 → docpull-6.3.0}/tests/test_time_utils.py +0 -0
  259. {docpull-6.1.0 → docpull-6.3.0}/tests/test_trafilatura_extractor.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: docpull
3
- Version: 6.1.0
3
+ Version: 6.3.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>
@@ -122,6 +122,14 @@ Requires-Dist: types-defusedxml>=0.7.0; extra == "dev"
122
122
  Requires-Dist: types-pyyaml>=6.0.0; extra == "dev"
123
123
  Dynamic: license-file
124
124
 
125
+ <p align="center">
126
+ <img
127
+ src="https://raw.githubusercontent.com/raintree-technology/docpull/main/docs/launch-assets/logo-square-light-400.png"
128
+ alt="DocPull"
129
+ width="128"
130
+ />
131
+ </p>
132
+
125
133
  # docpull
126
134
 
127
135
  **Context dependencies for AI agents. Browser-free by default.**
@@ -139,6 +147,11 @@ web sources an agent depends on, sync them into cited context packs, diff what
139
147
  changed, and export reproducible context for Cursor, Claude, OpenAI,
140
148
  LlamaIndex, LangChain, MCP clients, and RAG pipelines.
141
149
 
150
+ Architecturally, DocPull is the evidence and acquisition engine: it acquires,
151
+ versions, cites, hashes, and replays evidence. Downstream products own
152
+ scheduling, review, approved claims, legal conclusions, and notifications. See
153
+ the [architecture decision](docs/adr/0001-evidence-acquisition-engine.md).
154
+
142
155
  The core workflow is a `docpull.yaml` plus a `.docpull/context.lock.json`,
143
156
  similar in spirit to code dependency manifests and lockfiles:
144
157
 
@@ -292,8 +305,15 @@ docpull repo-pack psf/requests -o packs/repo --cache
292
305
  docpull package-pack pypi:requests -o packs/package
293
306
  docpull standards-pack rfc:9110 -o packs/standard
294
307
  docpull dataset-pack ./metrics.csv -o packs/dataset
308
+ docpull dataset-pack 'https://data.example.org/rows.json?$limit=100' -o packs/dataset
309
+ docpull relationship-pack example.com --subject "Example Brand" -o packs/relationships
295
310
  docpull transcript-pack ./meeting.vtt -o packs/transcript
296
311
  docpull wiki-pack wiki:Web_scraping -o packs/wiki
312
+ docpull brand-pack example.com -o packs/brand
313
+ docpull product-pack https://example.com/pricing -o packs/product
314
+ docpull styleguide-pack example.com -o packs/styleguide
315
+ docpull image-pack example.com -o packs/visuals
316
+ docpull policy-pack example.com -o packs/policies
297
317
  docpull pack prepare packs/docs --eval-grade
298
318
  docpull pack validate packs/docs --level eval
299
319
  docpull export packs/docs --format openai-vector-jsonl -o exports/openai.jsonl
@@ -565,9 +585,15 @@ special handling for common web, documentation, and API surfaces.
565
585
  | Public GitHub repos | `docpull repo-pack` emits repo metadata, README/docs/examples/changelog files, manifests, and releases |
566
586
  | npm / PyPI packages | `docpull package-pack` emits registry metadata, README/description, versions, license, dependencies, and install commands |
567
587
  | Standards | `docpull standards-pack` emits RFC, IETF, W3C, and WHATWG metadata plus section-level records |
568
- | Local datasets | `docpull dataset-pack` emits bounded schema, exact row counts where streamable, column, null-count, and sample summaries |
588
+ | Local/remote datasets | `docpull dataset-pack` emits bounded schema, exact row counts where streamable, column/null/sample summaries, and HTTPS JSON/CSV snapshot provenance |
589
+ | Relationship review | `docpull relationship-pack` emits cited observations and explicit coverage gaps without approving claims or inferring independence |
569
590
  | Transcripts | `docpull transcript-pack` emits timestamped segment records from VTT, SRT, text, JSON, or direct transcript URLs |
570
591
  | Wikimedia / Wikipedia | `docpull wiki-pack` emits MediaWiki REST page metadata, license/revision metadata, and section-level records |
592
+ | Brand evidence | `docpull brand-pack` emits cited identity, firmographic, social, logo, and color observations |
593
+ | Product and pricing | `docpull product-pack` emits plans, currencies, intervals, trials, feature gates, and page-text provenance |
594
+ | Styleguide | `docpull styleguide-pack` emits cited CSS variables, colors, fonts, spacing, and component samples |
595
+ | Visual assets | `docpull image-pack` emits bounded image candidates and optional validated local assets |
596
+ | Policy documents | `docpull policy-pack` discovers policy/security pages and emits effective dates, stable clauses, and textual change candidates without legal conclusions |
571
597
  | Docusaurus / Sphinx / MkDocs | Extracts static article or document regions |
572
598
  | VitePress / VuePress / Astro Starlight | Extracts static content regions |
573
599
  | GitBook / ReadMe.io | Extracts available article or content regions |
@@ -620,6 +646,16 @@ Every file-backed run writes `corpus.manifest.json` with stable document IDs,
620
646
  chunk IDs, hashes, output paths, and chunk counts. See
621
647
  [Corpus Manifest](docs/corpus-manifest.md).
622
648
 
649
+ Evidence-pack workflows also write `workflow.request.json`,
650
+ `workflow.result.json`, and `artifact.manifest.json`. Export their Draft 2020-12
651
+ schemas with `docpull contracts export -o schemas/`. The complete inventory and
652
+ compatibility rules are in [Public Contracts](docs/contracts.md).
653
+
654
+ For tracker imports, run `docpull pack intelligence-bundle PACK`. The canonical
655
+ output is `intelligence.bundle.v1.json`; `company_brain.bundle.json` remains a
656
+ compatibility alias. See the
657
+ [competitor-tracker integration contract](docs/competitor-tracker-integration.md).
658
+
623
659
  ## Profiles
624
660
 
625
661
  ```bash
@@ -736,7 +772,8 @@ part of the package release contract.
736
772
  `docpull parse`, `docpull openapi-pack`, `docpull feed-pack`,
737
773
  `docpull paper-pack`, `docpull repo-pack`, `docpull package-pack`,
738
774
  `docpull standards-pack`, `docpull dataset-pack`, `docpull transcript-pack`,
739
- `docpull wiki-pack`,
775
+ `docpull wiki-pack`, `docpull brand-pack`, `docpull product-pack`,
776
+ `docpull styleguide-pack`, `docpull image-pack`, `docpull policy-pack`,
740
777
  `docpull pack validate`,
741
778
  `docpull pack audit`, `docpull export`,
742
779
  `docpull serve`, `docpull share`, `docpull render`, `docpull auth check`,
@@ -1,3 +1,11 @@
1
+ <p align="center">
2
+ <img
3
+ src="https://raw.githubusercontent.com/raintree-technology/docpull/main/docs/launch-assets/logo-square-light-400.png"
4
+ alt="DocPull"
5
+ width="128"
6
+ />
7
+ </p>
8
+
1
9
  # docpull
2
10
 
3
11
  **Context dependencies for AI agents. Browser-free by default.**
@@ -15,6 +23,11 @@ web sources an agent depends on, sync them into cited context packs, diff what
15
23
  changed, and export reproducible context for Cursor, Claude, OpenAI,
16
24
  LlamaIndex, LangChain, MCP clients, and RAG pipelines.
17
25
 
26
+ Architecturally, DocPull is the evidence and acquisition engine: it acquires,
27
+ versions, cites, hashes, and replays evidence. Downstream products own
28
+ scheduling, review, approved claims, legal conclusions, and notifications. See
29
+ the [architecture decision](docs/adr/0001-evidence-acquisition-engine.md).
30
+
18
31
  The core workflow is a `docpull.yaml` plus a `.docpull/context.lock.json`,
19
32
  similar in spirit to code dependency manifests and lockfiles:
20
33
 
@@ -168,8 +181,15 @@ docpull repo-pack psf/requests -o packs/repo --cache
168
181
  docpull package-pack pypi:requests -o packs/package
169
182
  docpull standards-pack rfc:9110 -o packs/standard
170
183
  docpull dataset-pack ./metrics.csv -o packs/dataset
184
+ docpull dataset-pack 'https://data.example.org/rows.json?$limit=100' -o packs/dataset
185
+ docpull relationship-pack example.com --subject "Example Brand" -o packs/relationships
171
186
  docpull transcript-pack ./meeting.vtt -o packs/transcript
172
187
  docpull wiki-pack wiki:Web_scraping -o packs/wiki
188
+ docpull brand-pack example.com -o packs/brand
189
+ docpull product-pack https://example.com/pricing -o packs/product
190
+ docpull styleguide-pack example.com -o packs/styleguide
191
+ docpull image-pack example.com -o packs/visuals
192
+ docpull policy-pack example.com -o packs/policies
173
193
  docpull pack prepare packs/docs --eval-grade
174
194
  docpull pack validate packs/docs --level eval
175
195
  docpull export packs/docs --format openai-vector-jsonl -o exports/openai.jsonl
@@ -441,9 +461,15 @@ special handling for common web, documentation, and API surfaces.
441
461
  | Public GitHub repos | `docpull repo-pack` emits repo metadata, README/docs/examples/changelog files, manifests, and releases |
442
462
  | npm / PyPI packages | `docpull package-pack` emits registry metadata, README/description, versions, license, dependencies, and install commands |
443
463
  | Standards | `docpull standards-pack` emits RFC, IETF, W3C, and WHATWG metadata plus section-level records |
444
- | Local datasets | `docpull dataset-pack` emits bounded schema, exact row counts where streamable, column, null-count, and sample summaries |
464
+ | Local/remote datasets | `docpull dataset-pack` emits bounded schema, exact row counts where streamable, column/null/sample summaries, and HTTPS JSON/CSV snapshot provenance |
465
+ | Relationship review | `docpull relationship-pack` emits cited observations and explicit coverage gaps without approving claims or inferring independence |
445
466
  | Transcripts | `docpull transcript-pack` emits timestamped segment records from VTT, SRT, text, JSON, or direct transcript URLs |
446
467
  | Wikimedia / Wikipedia | `docpull wiki-pack` emits MediaWiki REST page metadata, license/revision metadata, and section-level records |
468
+ | Brand evidence | `docpull brand-pack` emits cited identity, firmographic, social, logo, and color observations |
469
+ | Product and pricing | `docpull product-pack` emits plans, currencies, intervals, trials, feature gates, and page-text provenance |
470
+ | Styleguide | `docpull styleguide-pack` emits cited CSS variables, colors, fonts, spacing, and component samples |
471
+ | Visual assets | `docpull image-pack` emits bounded image candidates and optional validated local assets |
472
+ | Policy documents | `docpull policy-pack` discovers policy/security pages and emits effective dates, stable clauses, and textual change candidates without legal conclusions |
447
473
  | Docusaurus / Sphinx / MkDocs | Extracts static article or document regions |
448
474
  | VitePress / VuePress / Astro Starlight | Extracts static content regions |
449
475
  | GitBook / ReadMe.io | Extracts available article or content regions |
@@ -496,6 +522,16 @@ Every file-backed run writes `corpus.manifest.json` with stable document IDs,
496
522
  chunk IDs, hashes, output paths, and chunk counts. See
497
523
  [Corpus Manifest](docs/corpus-manifest.md).
498
524
 
525
+ Evidence-pack workflows also write `workflow.request.json`,
526
+ `workflow.result.json`, and `artifact.manifest.json`. Export their Draft 2020-12
527
+ schemas with `docpull contracts export -o schemas/`. The complete inventory and
528
+ compatibility rules are in [Public Contracts](docs/contracts.md).
529
+
530
+ For tracker imports, run `docpull pack intelligence-bundle PACK`. The canonical
531
+ output is `intelligence.bundle.v1.json`; `company_brain.bundle.json` remains a
532
+ compatibility alias. See the
533
+ [competitor-tracker integration contract](docs/competitor-tracker-integration.md).
534
+
499
535
  ## Profiles
500
536
 
501
537
  ```bash
@@ -612,7 +648,8 @@ part of the package release contract.
612
648
  `docpull parse`, `docpull openapi-pack`, `docpull feed-pack`,
613
649
  `docpull paper-pack`, `docpull repo-pack`, `docpull package-pack`,
614
650
  `docpull standards-pack`, `docpull dataset-pack`, `docpull transcript-pack`,
615
- `docpull wiki-pack`,
651
+ `docpull wiki-pack`, `docpull brand-pack`, `docpull product-pack`,
652
+ `docpull styleguide-pack`, `docpull image-pack`, `docpull policy-pack`,
616
653
  `docpull pack validate`,
617
654
  `docpull pack audit`, `docpull export`,
618
655
  `docpull serve`, `docpull share`, `docpull render`, `docpull auth check`,
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "docpull"
7
- version = "6.1.0"
7
+ version = "6.3.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"}
@@ -202,7 +202,7 @@ where = ["src"]
202
202
  include = ["docpull*"]
203
203
 
204
204
  [tool.setuptools.package-data]
205
- docpull = ["py.typed", "fixtures/*.json"]
205
+ docpull = ["py.typed", "fixtures/*.json", "schemas/*.schema.json"]
206
206
 
207
207
  [tool.ruff]
208
208
  line-length = 110
@@ -0,0 +1,287 @@
1
+ """DocPull — reproducible context dependencies for AI agents.
2
+
3
+ The public SDK is loaded lazily. Importing :mod:`docpull` is common to every
4
+ CLI command and Python submodule import, so the package root must not eagerly
5
+ load optional workflows or rendering backends. Attribute access and
6
+ ``from docpull import ...`` retain the public contract while loading only the
7
+ module that owns the requested symbol.
8
+ """
9
+ # ruff: noqa: F401 - TYPE_CHECKING imports document the lazy public re-exports.
10
+
11
+ from __future__ import annotations
12
+
13
+ from importlib import import_module
14
+ from typing import TYPE_CHECKING, Any
15
+
16
+ from .surface import PUBLIC_SDK_EXPORTS
17
+
18
+ __version__ = "6.3.0"
19
+
20
+ _LAZY_EXPORTS: dict[str, tuple[str, str]] = {
21
+ **{
22
+ name: (".context_packs", name)
23
+ for name in (
24
+ "async_build_dataset_pack",
25
+ "async_build_package_pack",
26
+ "async_build_paper_pack",
27
+ "async_build_repo_pack",
28
+ "async_build_standards_pack",
29
+ "async_build_transcript_pack",
30
+ "async_build_wiki_pack",
31
+ "build_brand_pack",
32
+ "build_dataset_pack",
33
+ "build_feed_pack",
34
+ "build_image_pack",
35
+ "build_openapi_pack",
36
+ "build_package_pack",
37
+ "build_paper_pack",
38
+ "build_policy_pack",
39
+ "build_relationship_pack",
40
+ "build_product_pack",
41
+ "build_repo_pack",
42
+ "build_standards_pack",
43
+ "build_styleguide_pack",
44
+ "build_transcript_pack",
45
+ "build_wiki_pack",
46
+ "capture_screenshot_pack",
47
+ )
48
+ },
49
+ **{
50
+ name: (".contracts", name)
51
+ for name in (
52
+ "ArtifactManifest",
53
+ "ChangeEvent",
54
+ "EvidenceSpan",
55
+ "IntelligenceBundle",
56
+ "CoverageResult",
57
+ "RelationshipCandidate",
58
+ "RelationshipPack",
59
+ "SourceAuthority",
60
+ "WorkflowRequest",
61
+ "WorkflowResult",
62
+ "bundled_schema_path",
63
+ "write_contract_schemas",
64
+ )
65
+ },
66
+ **{
67
+ name: (".workflows", name)
68
+ for name in ("async_run_workflow", "create_workflow_request", "run_workflow")
69
+ },
70
+ **{name: (".core.fetcher", name) for name in ("Fetcher", "fetch_blocking", "fetch_one")},
71
+ **{name: (".conversion.chunking", name) for name in ("Chunk", "TokenCounter", "chunk_markdown")},
72
+ "PageContext": (".pipeline.base", "PageContext"),
73
+ **{name: (".pipeline.steps", name) for name in ("SqliteSearchResult", "search_sqlite_documents")},
74
+ **{
75
+ name: (".models.config", name)
76
+ for name in (
77
+ "BudgetConfig",
78
+ "CacheConfig",
79
+ "ContentFilterConfig",
80
+ "CrawlConfig",
81
+ "DocpullConfig",
82
+ "NetworkConfig",
83
+ "OutputConfig",
84
+ "PerformanceConfig",
85
+ "ProfileName",
86
+ "RenderActionPolicy",
87
+ "RenderConfig",
88
+ "RenderViewport",
89
+ )
90
+ },
91
+ **{name: (".models.events", name) for name in ("EventType", "FetchEvent", "FetchStats")},
92
+ **{name: (".cache", name) for name in ("CacheManager", "StreamingDeduplicator")},
93
+ "PolicyConfig": (".policy", "PolicyConfig"),
94
+ **{name: (".local_workflows", name) for name in ("audit_pack", "refresh_pack")},
95
+ **{
96
+ name: (".document_parse", name)
97
+ for name in ("DocumentParseError", "ParsedDocument", "parse_documents", "parse_one_document")
98
+ },
99
+ **{
100
+ name: (".pack_tools", name)
101
+ for name in (
102
+ "build_citation_map",
103
+ "build_company_brain_bundle",
104
+ "build_intelligence_bundle",
105
+ "build_research_brief",
106
+ "diff_packs",
107
+ "extract_pack_entities",
108
+ "prepare_pack",
109
+ "score_pack",
110
+ "score_pack_sources",
111
+ "search_pack",
112
+ )
113
+ },
114
+ "validate_pack_contract": (".output_contract", "validate_pack_contract"),
115
+ **{name: (".context_ci", name) for name in ("CIThresholds", "ContextCIError", "run_context_ci")},
116
+ **{name: (".exports", name) for name in ("ExportResult", "export_pack")},
117
+ **{name: (".pack_reader", name) for name in ("LocalPack", "PackReadError", "PackSource", "load_pack")},
118
+ **{
119
+ name: (".graph", name)
120
+ for name in (
121
+ "GraphError",
122
+ "build_graph",
123
+ "graph_neighbors",
124
+ "graph_status",
125
+ "load_graph",
126
+ "query_graph",
127
+ "refresh_graph",
128
+ )
129
+ },
130
+ **{name: (".server", name) for name in ("PackASGIApp", "PackServerError", "create_pack_app")},
131
+ **{
132
+ name: (".share", name)
133
+ for name in ("ReportHTTPServer", "ShareError", "create_report_server", "render_report_document")
134
+ },
135
+ **{
136
+ name: (".rendering", name)
137
+ for name in (
138
+ "AgentBrowserRenderer",
139
+ "E2BSandboxRenderer",
140
+ "RenderedPage",
141
+ "Renderer",
142
+ "RenderError",
143
+ "RendererUnavailableError",
144
+ "VercelSandboxRenderer",
145
+ "agent_browser_binary",
146
+ "check_agent_browser_availability",
147
+ "check_e2b_sandbox_availability",
148
+ "check_render_backend_availability",
149
+ "check_vercel_sandbox_availability",
150
+ "estimate_cloud_render_cost_usd",
151
+ "render_url",
152
+ "render_url_to_directory",
153
+ )
154
+ },
155
+ }
156
+
157
+ __all__ = list(PUBLIC_SDK_EXPORTS)
158
+
159
+
160
+ def __getattr__(name: str) -> Any:
161
+ """Load one public SDK symbol on first access and cache it locally."""
162
+ target = _LAZY_EXPORTS.get(name)
163
+ if target is None:
164
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
165
+ module_name, attribute_name = target
166
+ value = getattr(import_module(module_name, __name__), attribute_name)
167
+ globals()[name] = value
168
+ return value
169
+
170
+
171
+ def __dir__() -> list[str]:
172
+ """Include lazy public attributes in interactive discovery."""
173
+ return sorted(set(globals()) | set(__all__))
174
+
175
+
176
+ if TYPE_CHECKING:
177
+ from .cache import CacheManager, StreamingDeduplicator
178
+ from .context_ci import CIThresholds, ContextCIError, run_context_ci
179
+ from .context_packs import (
180
+ async_build_dataset_pack,
181
+ async_build_package_pack,
182
+ async_build_paper_pack,
183
+ async_build_repo_pack,
184
+ async_build_standards_pack,
185
+ async_build_transcript_pack,
186
+ async_build_wiki_pack,
187
+ build_brand_pack,
188
+ build_dataset_pack,
189
+ build_feed_pack,
190
+ build_image_pack,
191
+ build_openapi_pack,
192
+ build_package_pack,
193
+ build_paper_pack,
194
+ build_policy_pack,
195
+ build_product_pack,
196
+ build_relationship_pack,
197
+ build_repo_pack,
198
+ build_standards_pack,
199
+ build_styleguide_pack,
200
+ build_transcript_pack,
201
+ build_wiki_pack,
202
+ capture_screenshot_pack,
203
+ )
204
+ from .contracts import (
205
+ ArtifactManifest,
206
+ ChangeEvent,
207
+ CoverageResult,
208
+ EvidenceSpan,
209
+ IntelligenceBundle,
210
+ RelationshipCandidate,
211
+ RelationshipPack,
212
+ SourceAuthority,
213
+ WorkflowRequest,
214
+ WorkflowResult,
215
+ bundled_schema_path,
216
+ write_contract_schemas,
217
+ )
218
+ from .conversion.chunking import Chunk, TokenCounter, chunk_markdown
219
+ from .core.fetcher import Fetcher, fetch_blocking, fetch_one
220
+ from .document_parse import DocumentParseError, ParsedDocument, parse_documents, parse_one_document
221
+ from .exports import ExportResult, export_pack
222
+ from .graph import (
223
+ GraphError,
224
+ build_graph,
225
+ graph_neighbors,
226
+ graph_status,
227
+ load_graph,
228
+ query_graph,
229
+ refresh_graph,
230
+ )
231
+ from .local_workflows import audit_pack, refresh_pack
232
+ from .models.config import (
233
+ BudgetConfig,
234
+ CacheConfig,
235
+ ContentFilterConfig,
236
+ CrawlConfig,
237
+ DocpullConfig,
238
+ NetworkConfig,
239
+ OutputConfig,
240
+ PerformanceConfig,
241
+ ProfileName,
242
+ RenderActionPolicy,
243
+ RenderConfig,
244
+ RenderViewport,
245
+ )
246
+ from .models.events import EventType, FetchEvent, FetchStats
247
+ from .output_contract import validate_pack_contract
248
+ from .pack_reader import LocalPack, PackReadError, PackSource, load_pack
249
+ from .pack_tools import (
250
+ build_citation_map,
251
+ build_company_brain_bundle,
252
+ build_intelligence_bundle,
253
+ build_research_brief,
254
+ diff_packs,
255
+ extract_pack_entities,
256
+ prepare_pack,
257
+ score_pack,
258
+ score_pack_sources,
259
+ search_pack,
260
+ )
261
+ from .pipeline.base import PageContext
262
+ from .pipeline.steps import SqliteSearchResult, search_sqlite_documents
263
+ from .policy import PolicyConfig
264
+ from .rendering import (
265
+ AgentBrowserRenderer,
266
+ E2BSandboxRenderer,
267
+ RenderedPage,
268
+ Renderer,
269
+ RenderError,
270
+ RendererUnavailableError,
271
+ VercelSandboxRenderer,
272
+ agent_browser_binary,
273
+ check_agent_browser_availability,
274
+ check_e2b_sandbox_availability,
275
+ check_render_backend_availability,
276
+ check_vercel_sandbox_availability,
277
+ estimate_cloud_render_cost_usd,
278
+ render_url,
279
+ render_url_to_directory,
280
+ )
281
+ from .server import PackASGIApp, PackServerError, create_pack_app
282
+ from .share import ReportHTTPServer, ShareError, create_report_server, render_report_document
283
+ from .workflows import async_run_workflow, create_workflow_request, run_workflow
284
+
285
+
286
+ assert tuple(__all__) == PUBLIC_SDK_EXPORTS
287
+ assert set(_LAZY_EXPORTS) == set(__all__) - {"__version__"}