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.
- {deepdoc-2.3.1 → deepdoc-2.3.2}/PKG-INFO +1 -1
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/__init__.py +1 -1
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/site/builder/scaffold_files.py +46 -3
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc.egg-info/PKG-INFO +1 -1
- {deepdoc-2.3.1 → deepdoc-2.3.2}/pyproject.toml +1 -1
- {deepdoc-2.3.1 → deepdoc-2.3.2}/LICENSE +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/README.md +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/__main__.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/benchmark_v2.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/call_graph.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/changelog_writer.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/__init__.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/answer_mixin.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/chunker.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/constants.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/deep_research.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/docs_summary.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/embeddings.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/indexer.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/linking.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/live_fallback_mixin.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/persistence.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/providers.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/retrieval_mixin.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/routes.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/scaffold.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/service.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/settings.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/source_archive.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/symbol_index.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/chatbot/types.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/cli.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/config.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/generator/__init__.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/generator/evidence.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/generator/generation.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/generator/post_processors.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/generator/validation.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/llm/__init__.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/llm/client.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/llm/json_utils.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/llm/litellm_compat.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/manifest.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/openapi.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/__init__.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/api_detector.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/base.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/go_parser.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/js_ts_parser.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/php_parser.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/python_parser.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/registry.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/__init__.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/base.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/common.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/detector.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/django.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/express.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/falcon.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/fastify.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/go.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/js_shared.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/laravel.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/nestjs.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/python_shared.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/registry.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/routes/repo_resolver.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/parser/vue_parser.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/persistence_v2.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/pipeline_v2.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/__init__.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/bucket_injection.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/bucket_refinement.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/common.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/endpoint_refs.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/engine.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/flow_candidates.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/heuristics.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/nav_shaping.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/specializations.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/topology.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/planner/utils.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/prompts/__init__.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/prompts/bucket_types.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/prompts/page_types.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/prompts/selectors.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/prompts/system.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/prompts/update.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/py.typed +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/scanner/__init__.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/scanner/artifacts.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/scanner/clustering.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/scanner/common.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/scanner/database.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/scanner/endpoints.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/scanner/integrations.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/scanner/runtime.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/scanner/utils.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/site/__init__.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/site/builder/__init__.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/site/builder/chatbot_components.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/site/builder/common.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/site/builder/engine.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/site/builder/mdx_utils.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/site/builder/templates.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/smart_update_v2.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/source_metadata.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/updater_v2.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc/v2_models.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc.egg-info/SOURCES.txt +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc.egg-info/dependency_links.txt +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc.egg-info/entry_points.txt +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc.egg-info/requires.txt +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/deepdoc.egg-info/top_level.txt +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/setup.cfg +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_benchmark_scorecard.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_call_graph.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_changelog.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_config.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_embeddings.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_eval.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_index.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_persistence.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_providers.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_query.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_relationship.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_scaffold.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_chatbot_source_archive.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_classify.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_cli_generate.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_cli_serve.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_cli_update.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_flow_candidates.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_framework_fixtures.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_framework_support.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_fumadocs_builder.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_generation_evidence.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_internal_docs_metadata.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_litellm_compat.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_llm_json_utils.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_parallel_pipeline.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_parser_ranges.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_planner_consolidation.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_planner_granularity.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_route_registry.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_runtime_scan.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_smart_update.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_stale.py +0 -0
- {deepdoc-2.3.1 → deepdoc-2.3.2}/tests/test_state.py +0 -0
|
@@ -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
|
|
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
|
}
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|