deepdoc 2.3.1__tar.gz → 2.3.2__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 (149) hide show
  1. {deepdoc-2.3.1 → deepdoc-2.3.2}/PKG-INFO +1 -1
  2. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/__init__.py +1 -1
  3. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/site/builder/scaffold_files.py +46 -3
  4. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc.egg-info/PKG-INFO +1 -1
  5. {deepdoc-2.3.1 → deepdoc-2.3.2}/pyproject.toml +1 -1
  6. {deepdoc-2.3.1 → deepdoc-2.3.2}/LICENSE +0 -0
  7. {deepdoc-2.3.1 → deepdoc-2.3.2}/README.md +0 -0
  8. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/__main__.py +0 -0
  9. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/benchmark_v2.py +0 -0
  10. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/call_graph.py +0 -0
  11. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/changelog_writer.py +0 -0
  12. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/__init__.py +0 -0
  13. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/answer_mixin.py +0 -0
  14. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/chunker.py +0 -0
  15. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/constants.py +0 -0
  16. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/deep_research.py +0 -0
  17. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/docs_summary.py +0 -0
  18. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/embeddings.py +0 -0
  19. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/indexer.py +0 -0
  20. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/linking.py +0 -0
  21. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/live_fallback_mixin.py +0 -0
  22. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/persistence.py +0 -0
  23. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/providers.py +0 -0
  24. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/retrieval_mixin.py +0 -0
  25. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/routes.py +0 -0
  26. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/scaffold.py +0 -0
  27. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/service.py +0 -0
  28. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/settings.py +0 -0
  29. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/source_archive.py +0 -0
  30. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/symbol_index.py +0 -0
  31. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/types.py +0 -0
  32. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/cli.py +0 -0
  33. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/config.py +0 -0
  34. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/generator/__init__.py +0 -0
  35. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/generator/evidence.py +0 -0
  36. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/generator/generation.py +0 -0
  37. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/generator/post_processors.py +0 -0
  38. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/generator/validation.py +0 -0
  39. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/llm/__init__.py +0 -0
  40. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/llm/client.py +0 -0
  41. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/llm/json_utils.py +0 -0
  42. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/llm/litellm_compat.py +0 -0
  43. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/manifest.py +0 -0
  44. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/openapi.py +0 -0
  45. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/__init__.py +0 -0
  46. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/api_detector.py +0 -0
  47. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/base.py +0 -0
  48. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/go_parser.py +0 -0
  49. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/js_ts_parser.py +0 -0
  50. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/php_parser.py +0 -0
  51. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/python_parser.py +0 -0
  52. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/registry.py +0 -0
  53. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/__init__.py +0 -0
  54. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/base.py +0 -0
  55. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/common.py +0 -0
  56. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/detector.py +0 -0
  57. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/django.py +0 -0
  58. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/express.py +0 -0
  59. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/falcon.py +0 -0
  60. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/fastify.py +0 -0
  61. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/go.py +0 -0
  62. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/js_shared.py +0 -0
  63. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/laravel.py +0 -0
  64. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/nestjs.py +0 -0
  65. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/python_shared.py +0 -0
  66. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/registry.py +0 -0
  67. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/repo_resolver.py +0 -0
  68. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/vue_parser.py +0 -0
  69. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/persistence_v2.py +0 -0
  70. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/pipeline_v2.py +0 -0
  71. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/__init__.py +0 -0
  72. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/bucket_injection.py +0 -0
  73. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/bucket_refinement.py +0 -0
  74. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/common.py +0 -0
  75. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/endpoint_refs.py +0 -0
  76. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/engine.py +0 -0
  77. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/flow_candidates.py +0 -0
  78. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/heuristics.py +0 -0
  79. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/nav_shaping.py +0 -0
  80. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/specializations.py +0 -0
  81. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/topology.py +0 -0
  82. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/utils.py +0 -0
  83. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/prompts/__init__.py +0 -0
  84. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/prompts/bucket_types.py +0 -0
  85. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/prompts/page_types.py +0 -0
  86. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/prompts/selectors.py +0 -0
  87. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/prompts/system.py +0 -0
  88. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/prompts/update.py +0 -0
  89. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/py.typed +0 -0
  90. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/scanner/__init__.py +0 -0
  91. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/scanner/artifacts.py +0 -0
  92. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/scanner/clustering.py +0 -0
  93. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/scanner/common.py +0 -0
  94. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/scanner/database.py +0 -0
  95. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/scanner/endpoints.py +0 -0
  96. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/scanner/integrations.py +0 -0
  97. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/scanner/runtime.py +0 -0
  98. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/scanner/utils.py +0 -0
  99. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/site/__init__.py +0 -0
  100. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/site/builder/__init__.py +0 -0
  101. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/site/builder/chatbot_components.py +0 -0
  102. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/site/builder/common.py +0 -0
  103. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/site/builder/engine.py +0 -0
  104. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/site/builder/mdx_utils.py +0 -0
  105. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/site/builder/templates.py +0 -0
  106. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/smart_update_v2.py +0 -0
  107. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/source_metadata.py +0 -0
  108. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/updater_v2.py +0 -0
  109. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/v2_models.py +0 -0
  110. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc.egg-info/SOURCES.txt +0 -0
  111. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc.egg-info/dependency_links.txt +0 -0
  112. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc.egg-info/entry_points.txt +0 -0
  113. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc.egg-info/requires.txt +0 -0
  114. {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc.egg-info/top_level.txt +0 -0
  115. {deepdoc-2.3.1 → deepdoc-2.3.2}/setup.cfg +0 -0
  116. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_benchmark_scorecard.py +0 -0
  117. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_call_graph.py +0 -0
  118. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_changelog.py +0 -0
  119. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_config.py +0 -0
  120. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_embeddings.py +0 -0
  121. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_eval.py +0 -0
  122. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_index.py +0 -0
  123. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_persistence.py +0 -0
  124. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_providers.py +0 -0
  125. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_query.py +0 -0
  126. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_relationship.py +0 -0
  127. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_scaffold.py +0 -0
  128. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_source_archive.py +0 -0
  129. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_classify.py +0 -0
  130. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_cli_generate.py +0 -0
  131. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_cli_serve.py +0 -0
  132. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_cli_update.py +0 -0
  133. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_flow_candidates.py +0 -0
  134. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_framework_fixtures.py +0 -0
  135. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_framework_support.py +0 -0
  136. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_fumadocs_builder.py +0 -0
  137. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_generation_evidence.py +0 -0
  138. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_internal_docs_metadata.py +0 -0
  139. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_litellm_compat.py +0 -0
  140. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_llm_json_utils.py +0 -0
  141. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_parallel_pipeline.py +0 -0
  142. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_parser_ranges.py +0 -0
  143. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_planner_consolidation.py +0 -0
  144. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_planner_granularity.py +0 -0
  145. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_route_registry.py +0 -0
  146. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_runtime_scan.py +0 -0
  147. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_smart_update.py +0 -0
  148. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_stale.py +0 -0
  149. {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_state.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deepdoc
3
- Version: 2.3.1
3
+ Version: 2.3.2
4
4
  Summary: Auto-generate beautiful docs from any codebase
5
5
  Author: Pranav Kumar
6
6
  License: MIT
@@ -1,3 +1,3 @@
1
1
  """DeepDoc — Auto-generate beautiful docs from any codebase."""
2
2
 
3
- __version__ = "2.3.1"
3
+ __version__ = "2.3.2"
@@ -1652,9 +1652,44 @@ def _mermaid_component_tsx() -> str:
1652
1652
  """\
1653
1653
  'use client';
1654
1654
 
1655
- import { use, useEffect, useId, useState } from 'react';
1655
+ import { Component, use, useEffect, useId, useState } from 'react';
1656
+ import type { ReactNode } from 'react';
1656
1657
  import { useTheme } from 'next-themes';
1657
1658
 
1659
+ // Error boundary so a bad diagram never crashes the whole page
1660
+ class MermaidErrorBoundary extends Component<
1661
+ { children: ReactNode },
1662
+ { error: string | null }
1663
+ > {
1664
+ constructor(props: { children: ReactNode }) {
1665
+ super(props);
1666
+ this.state = { error: null };
1667
+ }
1668
+ static getDerivedStateFromError(err: unknown) {
1669
+ return { error: err instanceof Error ? err.message : String(err) };
1670
+ }
1671
+ render() {
1672
+ if (this.state.error) {
1673
+ return (
1674
+ <pre
1675
+ style={{
1676
+ padding: '0.75rem 1rem',
1677
+ background: 'var(--color-fd-muted)',
1678
+ borderRadius: '6px',
1679
+ fontSize: '0.75rem',
1680
+ color: 'var(--color-fd-muted-foreground)',
1681
+ whiteSpace: 'pre-wrap',
1682
+ wordBreak: 'break-word',
1683
+ }}
1684
+ >
1685
+ {'[diagram parse error] ' + this.state.error}
1686
+ </pre>
1687
+ );
1688
+ }
1689
+ return this.props.children;
1690
+ }
1691
+ }
1692
+
1658
1693
  export function Mermaid({ chart }: { chart: string }) {
1659
1694
  const [mounted, setMounted] = useState(false);
1660
1695
 
@@ -1663,7 +1698,11 @@ def _mermaid_component_tsx() -> str:
1663
1698
  }, []);
1664
1699
 
1665
1700
  if (!mounted) return null;
1666
- return <MermaidContent chart={chart} />;
1701
+ return (
1702
+ <MermaidErrorBoundary>
1703
+ <MermaidContent chart={chart} />
1704
+ </MermaidErrorBoundary>
1705
+ );
1667
1706
  }
1668
1707
 
1669
1708
  const cache = new Map<string, Promise<unknown>>();
@@ -1672,7 +1711,11 @@ def _mermaid_component_tsx() -> str:
1672
1711
  const cached = cache.get(key);
1673
1712
  if (cached) return cached as Promise<T>;
1674
1713
 
1675
- const promise = setPromise();
1714
+ const promise = setPromise().catch((err) => {
1715
+ // Remove from cache so a retry is possible, then re-throw for boundary
1716
+ cache.delete(key);
1717
+ throw err;
1718
+ }) as Promise<T>;
1676
1719
  cache.set(key, promise);
1677
1720
  return promise;
1678
1721
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deepdoc
3
- Version: 2.3.1
3
+ Version: 2.3.2
4
4
  Summary: Auto-generate beautiful docs from any codebase
5
5
  Author: Pranav Kumar
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "deepdoc"
7
- version = "2.3.1"
7
+ version = "2.3.2"
8
8
  description = "Auto-generate beautiful docs from any codebase"
9
9
  readme = "README.md"
10
10
  authors = [
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes