mdengine 0.13.4__tar.gz → 0.14.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mdengine-0.13.4 → mdengine-0.14.1}/PKG-INFO +23 -3
- {mdengine-0.13.4 → mdengine-0.14.1}/README.md +4 -2
- {mdengine-0.13.4 → mdengine-0.14.1}/pyproject.toml +25 -1
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/__init__.py +1 -1
- mdengine-0.14.1/src/md_generator/adapters/__init__.py +1 -0
- mdengine-0.14.1/src/md_generator/adapters/crewai/__init__.py +20 -0
- mdengine-0.14.1/src/md_generator/adapters/crewai/exceptions.py +29 -0
- mdengine-0.14.1/src/md_generator/adapters/crewai/schema.py +37 -0
- mdengine-0.14.1/src/md_generator/adapters/crewai/tools.py +284 -0
- mdengine-0.14.1/src/md_generator/adapters/langchain/__init__.py +33 -0
- mdengine-0.14.1/src/md_generator/adapters/langchain/context.py +257 -0
- mdengine-0.14.1/src/md_generator/adapters/langchain/exceptions.py +11 -0
- mdengine-0.14.1/src/md_generator/adapters/langchain/loader.py +152 -0
- mdengine-0.14.1/src/md_generator/adapters/langchain/retriever.py +155 -0
- mdengine-0.14.1/src/md_generator/adapters/langgraph/__init__.py +45 -0
- mdengine-0.14.1/src/md_generator/adapters/langgraph/exceptions.py +35 -0
- mdengine-0.14.1/src/md_generator/adapters/langgraph/graph.py +80 -0
- mdengine-0.14.1/src/md_generator/adapters/langgraph/nodes.py +173 -0
- mdengine-0.14.1/src/md_generator/adapters/langgraph/state.py +194 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/cli/main.py +6 -6
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/engine_cli.py +12 -11
- mdengine-0.14.1/src/md_generator/graph/__init__.py +63 -0
- mdengine-0.14.1/src/md_generator/graph/exceptions.py +31 -0
- mdengine-0.14.1/src/md_generator/graph/extractor.py +303 -0
- mdengine-0.14.1/src/md_generator/graph/hybrid/__init__.py +10 -0
- mdengine-0.14.1/src/md_generator/graph/hybrid/context.py +130 -0
- mdengine-0.14.1/src/md_generator/graph/hybrid/retriever.py +368 -0
- mdengine-0.14.1/src/md_generator/graph/model.py +342 -0
- mdengine-0.14.1/src/md_generator/graph/protocol.py +90 -0
- mdengine-0.14.1/src/md_generator/graph/serialization.py +189 -0
- mdengine-0.14.1/src/md_generator/graph/stores/__init__.py +10 -0
- mdengine-0.14.1/src/md_generator/graph/stores/in_memory.py +465 -0
- mdengine-0.14.1/src/md_generator/graph/stores/neo4j.py +680 -0
- mdengine-0.14.1/src/md_generator/lineage/__init__.py +35 -0
- mdengine-0.14.1/src/md_generator/lineage/ids.py +128 -0
- mdengine-0.14.1/src/md_generator/lineage/manifest.py +272 -0
- mdengine-0.14.1/src/md_generator/metadata/__init__.py +5 -0
- mdengine-0.14.1/src/md_generator/metadata/schema.py +76 -0
- mdengine-0.14.1/src/md_generator/pipeline/__init__.py +25 -0
- mdengine-0.14.1/src/md_generator/pipeline/base.py +612 -0
- mdengine-0.14.1/src/md_generator/pipeline/config.py +64 -0
- mdengine-0.14.1/src/md_generator/pipeline/registry.py +435 -0
- mdengine-0.14.1/src/md_generator/pipeline/result.py +119 -0
- mdengine-0.14.1/src/md_generator/pipeline/sanitizer.py +51 -0
- mdengine-0.14.1/src/md_generator/security/__init__.py +11 -0
- mdengine-0.14.1/src/md_generator/security/policy.py +57 -0
- mdengine-0.14.1/src/md_generator/security/redactor.py +236 -0
- mdengine-0.14.1/src/md_generator/semantic/__init__.py +1 -0
- mdengine-0.14.1/src/md_generator/semantic/chunkers/__init__.py +36 -0
- mdengine-0.14.1/src/md_generator/semantic/chunkers/base.py +68 -0
- mdengine-0.14.1/src/md_generator/semantic/chunkers/code.py +502 -0
- mdengine-0.14.1/src/md_generator/semantic/chunkers/db.py +152 -0
- mdengine-0.14.1/src/md_generator/semantic/chunkers/identity.py +132 -0
- mdengine-0.14.1/src/md_generator/semantic/chunkers/languages/__init__.py +26 -0
- mdengine-0.14.1/src/md_generator/semantic/chunkers/languages/base.py +45 -0
- mdengine-0.14.1/src/md_generator/semantic/chunkers/languages/cpp.py +18 -0
- mdengine-0.14.1/src/md_generator/semantic/chunkers/languages/csharp.py +18 -0
- mdengine-0.14.1/src/md_generator/semantic/chunkers/languages/go.py +18 -0
- mdengine-0.14.1/src/md_generator/semantic/chunkers/languages/java.py +18 -0
- mdengine-0.14.1/src/md_generator/semantic/chunkers/languages/python.py +18 -0
- mdengine-0.14.1/src/md_generator/semantic/chunkers/languages/typescript.py +18 -0
- mdengine-0.14.1/src/md_generator/semantic/chunkers/openapi.py +177 -0
- mdengine-0.14.1/src/md_generator/semantic/chunkers/registry.py +78 -0
- mdengine-0.14.1/src/md_generator/semantic/chunkers/sap.py +148 -0
- mdengine-0.14.1/src/md_generator/semantic/model/__init__.py +29 -0
- mdengine-0.14.1/src/md_generator/semantic/model/schema.py +507 -0
- mdengine-0.14.1/src/md_generator/semantic/processor.py +103 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/registry.json +1 -1
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/global-skill.md +1 -1
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-archive/SKILL.md +2 -1
- mdengine-0.14.1/src/md_generator/tools/assistant/data/skills/mdengine-ai-codeflow/SKILL.md +112 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-db/SKILL.md +1 -1
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-global/SKILL.md +1 -1
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-graph/SKILL.md +2 -2
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-image/SKILL.md +2 -1
- mdengine-0.14.1/src/md_generator/tools/assistant/data/skills/mdengine-ai-log/SKILL.md +77 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-media/SKILL.md +4 -1
- mdengine-0.14.1/src/md_generator/tools/assistant/data/skills/mdengine-ai-odata/SKILL.md +76 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-openapi/SKILL.md +2 -2
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-otel/SKILL.md +11 -13
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-pdf/SKILL.md +2 -1
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-playwright/SKILL.md +2 -1
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-ppt/SKILL.md +2 -2
- mdengine-0.14.1/src/md_generator/tools/assistant/data/skills/mdengine-ai-sap/SKILL.md +161 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-text/SKILL.md +2 -1
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-url/SKILL.md +2 -1
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-word/SKILL.md +1 -1
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-xlsx/SKILL.md +2 -1
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/modules/archive.md +1 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/modules/graph.md +1 -1
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/modules/image.md +1 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/modules/media.md +3 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/modules/openapi.md +1 -1
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/modules/pdf.md +1 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/modules/playwright.md +1 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/modules/ppt.md +1 -1
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/modules/text.md +1 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/modules/url.md +1 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/modules/xlsx.md +1 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/converter.py +1 -1
- mdengine-0.14.1/src/md_generator/vector/__init__.py +51 -0
- mdengine-0.14.1/src/md_generator/vector/cli.py +95 -0
- mdengine-0.14.1/src/md_generator/vector/exceptions.py +35 -0
- mdengine-0.14.1/src/md_generator/vector/model.py +203 -0
- mdengine-0.14.1/src/md_generator/vector/processor.py +334 -0
- mdengine-0.14.1/src/md_generator/vector/providers/__init__.py +10 -0
- mdengine-0.14.1/src/md_generator/vector/providers/base.py +52 -0
- mdengine-0.14.1/src/md_generator/vector/providers/mock.py +83 -0
- mdengine-0.14.1/src/md_generator/vector/providers/openai.py +72 -0
- mdengine-0.14.1/src/md_generator/vector/providers/sentence_transformers.py +69 -0
- mdengine-0.14.1/src/md_generator/vector/stores/__init__.py +10 -0
- mdengine-0.14.1/src/md_generator/vector/stores/base.py +54 -0
- mdengine-0.14.1/src/md_generator/vector/stores/chroma.py +58 -0
- mdengine-0.14.1/src/md_generator/vector/stores/in_memory.py +192 -0
- mdengine-0.14.1/src/md_generator/vector/stores/qdrant.py +58 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/mdengine.egg-info/PKG-INFO +23 -3
- {mdengine-0.13.4 → mdengine-0.14.1}/src/mdengine.egg-info/SOURCES.txt +75 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/mdengine.egg-info/requires.txt +22 -0
- mdengine-0.13.4/src/md_generator/graph/__init__.py +0 -3
- mdengine-0.13.4/src/md_generator/tools/assistant/data/skills/mdengine-ai-codeflow/SKILL.md +0 -58
- mdengine-0.13.4/src/md_generator/tools/assistant/data/skills/mdengine-ai-log/SKILL.md +0 -77
- mdengine-0.13.4/src/md_generator/tools/assistant/data/skills/mdengine-ai-odata/SKILL.md +0 -69
- mdengine-0.13.4/src/md_generator/tools/assistant/data/skills/mdengine-ai-sap/SKILL.md +0 -88
- {mdengine-0.13.4 → mdengine-0.14.1}/LICENSE +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/setup.cfg +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/archive/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/archive/api/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/archive/api/convert_runner.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/archive/api/jobs.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/archive/api/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/archive/api/mcp_server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/archive/api/mcp_setup.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/archive/api/query_options.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/archive/api/settings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/archive/convert_impl.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/archive/converter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/archive/extractors.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/archive/options.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/adapters/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/adapters/base.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/adapters/frameworks.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/adapters/go.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/adapters/java.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/adapters/js_ts.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/adapters/others.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/adapters/php.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/adapters/python.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/adapters/registry.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/analyzers/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/analyzers/flow_analyzer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/api/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/api/job_manager.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/api/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/api/mcp_server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/api/run.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/api/schemas.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/api/semantic_api.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/api/settings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/api/sse.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/cli/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/config/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/config/codeflow_yaml.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/core/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/core/cache_manager.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/core/extractor.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/core/run_config.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/detectors/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/detectors/api_detector.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/detectors/entry_detector.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/detectors/entry_rank.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/detectors/event_detector.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/detectors/kafka_detector.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/detectors/liferay_portlet_detector.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/detectors/rails_detector.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/enterprise_ir/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/enterprise_ir/api.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/enterprise_ir/base.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/enterprise_ir/config.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/enterprise_ir/database.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/enterprise_ir/dependency.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/enterprise_ir/embedding.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/enterprise_ir/event.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/enterprise_ir/graph.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/enterprise_ir/query.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/enterprise_ir/queue.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/enterprise_ir/resource.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/enterprise_ir/runtime.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/enterprise_ir/semantic.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/enterprise_ir/storage.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/generators/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/generators/business_rules_markdown.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/generators/cfg_paths_markdown.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/generators/cfg_paths_mermaid.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/generators/cfg_render.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/generators/cytoscape_enrich.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/generators/enterprise_exporter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/generators/entry_markdown.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/generators/flow_summary.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/generators/flow_tree.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/generators/html.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/generators/html_unified.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/generators/markdown.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/generators/mermaid.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/generators/sequence.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/analysis.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/anomaly.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/builder.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/call_expander.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/cfg_builder.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/cfg_copy.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/cfg_model.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/cluster_labeling.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/clustering.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/cross_repo_resolver.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/dependency_builder.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/diff_analysis.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/embeddings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/enricher.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/enterprise_builder.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/event_graph.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/export_schema.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/hotpath.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/maven_hints.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/multi_repo.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/multigraph_utils.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/nl_query.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/path_enumerator.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/path_probability.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/query.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/query_engine.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/relations.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/runtime_integration.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/semantic_enricher.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/semantic_index.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/sqlite_export.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/traversal.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/graph/tsconfig_cross_repo.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/ingestion/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/ingestion/git_loader.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/ingestion/loader.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/analyzer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/builder.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/cache.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/diff.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/filters.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/forest.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/formatter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/graph_export.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/html.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/ir.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/json_export.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/markdown.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/mermaid.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/models.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/paths.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/resolver.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/statistics.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/traversal.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/journey/tree.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/lang_dispatch.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/mcp/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/mcp/server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/models/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/models/ir.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/models/ir_cfg.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/cpp_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/go_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/ir_from_dump.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/java_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/php_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/python_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/treesitter_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/treesitter_csharp_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/treesitter_go_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/treesitter_java_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/treesitter_kotlin_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/treesitter_lua_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/treesitter_php_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/treesitter_python_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/treesitter_ruby_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/treesitter_rust_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/treesitter_scala_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/treesitter_swift_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/adapters/treesitter_zig_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/base.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/capability_registry.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/cpp_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/go_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/ir_enrich.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/java_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/php_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/python_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/treesitter_common.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/treesitter_csharp_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/treesitter_entry_helpers.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/treesitter_go_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/treesitter_java_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/treesitter_js_ts_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/treesitter_kotlin_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/treesitter_lua_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/treesitter_php_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/treesitter_python_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/treesitter_ruby_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/treesitter_rust_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/treesitter_scala_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/treesitter_swift_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/treesitter_zig_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/parsers/unified_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/plugins/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/plugins/annotation/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/plugins/annotation/plugin.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/plugins/base.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/plugins/business/models.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/plugins/classification/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/plugins/classification/plugin.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/plugins/config/plugin.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/plugins/dependency/plugin.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/plugins/external/plugin.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/plugins/query/plugin.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/plugins/registry.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/plugins/semantic/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/plugins/semantic/plugin.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/repository/analyzer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/repository/model.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/rules/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/rules/collector.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/rules/cpp_rules.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/rules/java_rules.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/runtime/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/runtime/correlator.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/runtime/python_edge_counter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/runtime/trace_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/runtime/trace_runner.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/runtime/tracer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/utils/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/utils/tools_root.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/worker/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/codeflow/worker/celery_optional.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/core/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/core/artifacts/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/core/artifacts/mdaf_validate.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/core/artifacts/models.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/core/artifacts/serialize.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/core/schema/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/core/schema/adapters/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/core/schema/adapters/log_record.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/core/schema/adapters/otel.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/core/schema/telemetry_event.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/core/schema/validation.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/adapters/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/adapters/access_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/adapters/access_introspect.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/adapters/access_odbc.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/adapters/elasticsearch_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/adapters/elasticsearch_json_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/adapters/factory.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/adapters/mongo_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/adapters/mysql_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/adapters/oracle_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/adapters/postgres_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/adapters/sql_common.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/adapters/sqlite_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/adapters/sqlserver_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/api/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/api/access_upload.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/api/elasticsearch_upload.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/api/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/api/mcp_server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/api/run.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/api/schemas.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/api/settings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/api/sqlite_upload.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/cli/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/cli/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/config/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/config/default.yaml +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/base_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/cli_ops.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/elasticsearch_bundle.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/elasticsearch_dependency_graph.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/elasticsearch_export.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/elasticsearch_format.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/elasticsearch_json.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/elasticsearch_markdown.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/elasticsearch_normalize.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/elasticsearch_operational_notes.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/elasticsearch_output.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/elasticsearch_query_classify.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/elasticsearch_redaction.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/elasticsearch_synthesis.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/elasticsearch_warnings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/erd/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/erd/dot_emitter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/erd/filter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/erd/mermaid_emitter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/erd/mermaid_render.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/erd/model.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/erd/pipeline.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/erd/render.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/export_manifest.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/extractor.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/job_manager.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/link_graph.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/markdown_writer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/models.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/run_config.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/util.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/core/zip_export.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/mcp/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/mcp/server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/mcp/sse.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/db/mcp/stream.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/distributed/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/distributed/merge.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/distributed/partition.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/distributed/worker_pool.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/governance/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/governance/audit.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/governance/classification.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/governance/lineage.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/governance/retention.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/adapters/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/adapters/factory.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/adapters/neo4j_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/adapters/networkx_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/api/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/api/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/api/mcp_server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/api/run.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/api/schemas.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/api/settings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/cli/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/cli/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/config/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/config/default.yaml +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/core/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/core/base_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/core/extractor.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/core/graph_builder.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/core/job_manager.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/core/markdown_writer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/core/models.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/core/run_config.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/core/viz.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/core/zip_export.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/mcp/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/mcp/server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/mcp/sse.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/graph/mcp/stream.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/image/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/image/api/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/image/api/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/image/api/mcp_server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/image/api/query_options.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/image/api/settings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/image/api/staging.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/image/api/zip_bundle.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/image/backends/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/image/backends/base.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/image/backends/easy.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/image/backends/paddle.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/image/backends/tesseract.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/image/convert_impl.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/image/converter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/image/emit.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/image/io_util.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/image/utils.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/aggregation/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/aggregation/aggregators.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/aggregation/dataframe_builder.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/aggregation/metrics.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/aggregation/timeline.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/api/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/api/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/api/mcp_server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/api/run.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/api/schemas.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/api/settings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/chunking/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/chunking/artifact_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/chunking/chunk_engine.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/chunking/chunk_models.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/chunking/chunk_registry.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/chunking/chunk_strategy.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/cli/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/cli/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/clustering/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/clustering/embeddings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/clustering/kmeans_cluster.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/clustering/semantic_grouping.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/clustering/vectorizer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/config/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/config/default.yaml +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/config/preset_loader.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/config/presets/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/config/presets/generic.yaml +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/config/presets/json.yaml +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/config/presets/logback.yaml +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/config/presets/springboot.yaml +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/config/schemas.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/core/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/core/errors.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/core/execution_context.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/core/extractor.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/core/job_manager.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/core/lifecycle.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/core/pipeline.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/core/plugins.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/core/run_config.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/core/zip_export.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/correlation/correlation_engine.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/correlation/correlation_models.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/correlation/correlation_scoring.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/correlation/cross_source.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/correlation/request_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/correlation/session_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/correlation/trace_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/documentation/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/documentation/incident_summary.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/documentation/service_report.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/documentation/troubleshooting.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/embeddings/embedding_exporter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/embeddings/exporters/chroma_exporter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/embeddings/exporters/faiss_exporter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/embeddings/exporters/jsonl_exporter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/embeddings/exporters/parquet_exporter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/enrichment/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/enrichment/correlation.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/enrichment/fingerprinting.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/enrichment/hash_generator.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/enrichment/pattern_matcher.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/enrichment/severity_ranker.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/incidents/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/incidents/artifact_adapter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/incidents/fingerprinting.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/incidents/grouping.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/incidents/incident_engine.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/incidents/models.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/incidents/severity.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/incremental/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/incremental/checkpoint.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/incremental/engine.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/incremental/resume_reader.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/ingestion/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/ingestion/archive_bridge.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/ingestion/archive_loader.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/ingestion/batch_reader.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/ingestion/encoding_detector.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/ingestion/file_loader.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/ingestion/stream_reader.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/intelligence/anomaly_detection.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/intelligence/dependency_analysis.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/intelligence/heuristics.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/intelligence/root_cause_engine.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/knowledge_graph/graph_builder.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/knowledge_graph/graph_exporter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/knowledge_graph/graph_models.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/knowledge_graph/relation_extractor.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/linking/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/linking/link_graph.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/markdown_intelligence/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/markdown_intelligence/aliases.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/markdown_intelligence/backlinks.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/markdown_intelligence/cross_refs.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/mcp/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/mcp/server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/mcp/sse.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/noise_reduction/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/noise_reduction/dedupe.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/noise_reduction/entropy.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/noise_reduction/filter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/normalization/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/normalization/number_normalizer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/normalization/path_normalizer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/normalization/pii_redactor.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/normalization/token_normalizer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/normalization/uuid_normalizer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/parser/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/parser/json_line_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/parser/level_detector.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/parser/logger_detector.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/parser/models.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/parser/multiline_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/parser/parser_registry.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/parser/regex_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/parser/stacktrace_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/parser/timestamp_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/search/bm25_search.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/search/cli.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/search/hybrid_search.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/search/search_index.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/search/vector_search.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/service/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/service/service.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/streaming/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/streaming/kafka_reader.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/streaming/redis_reader.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/streaming/stdin_reader.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/streaming/stream_coordinator.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/streaming/tail_reader.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/streaming/websocket_reader.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/timeline/causal_chain.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/timeline/ordering.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/timeline/timeline_engine.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/timeline/timeline_models.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/topology/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/topology/discovery.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/utils/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/utils/concurrency.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/utils/io.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/utils/regex.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/utils/time.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/visualization/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/visualization/mermaid_sequence.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/visualization/mermaid_timeline.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/visualization/mermaid_topology.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/writers/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/writers/assets_writer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/writers/chunk_writer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/writers/cluster_markdown.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/writers/correlation_writer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/writers/frontmatter_writer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/writers/incident_writer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/writers/markdown_writer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/log/writers/summary_writer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/audio/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/audio/api/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/audio/api/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/audio/api/mcp_server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/audio/api/mcp_setup.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/audio/api/run.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/audio/api/settings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/audio/converter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/audio/formatter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/audio/service.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/document_converter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/job_store.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/video/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/video/api/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/video/api/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/video/api/mcp_server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/video/api/mcp_setup.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/video/api/run.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/video/api/settings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/video/converter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/video/formatter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/video/service.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/whisper_language.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/youtube/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/youtube/api/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/youtube/api/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/youtube/api/mcp_server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/youtube/api/mcp_setup.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/youtube/api/run.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/youtube/api/settings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/youtube/converter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/youtube/formatter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/youtube/metadata.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/youtube/service.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/media/youtube/transcript.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/api/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/api/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/api/mcp_server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/api/run.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/api/schemas.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/api/settings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/chunking/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/chunking/strategies.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/chunking/writer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/cli/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/cli/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/config/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/config/default.yaml +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/core/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/core/extractor.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/core/run_config.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/core/zip_export.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/fetch.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/generators/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/generators/graph_builder.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/generators/mermaid_export.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/generators/relations.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/loaders/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/loaders/discovery.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/loaders/metadata_loader.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/mcp/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/mcp/server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/models/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/models/domain.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/parser/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/parser/associations.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/parser/capabilities.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/parser/detector.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/parser/fetch.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/parser/json/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/parser/json/v4.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/parser/legacy.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/parser/namespaces.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/parser/registry.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/parser/xml/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/parser/xml/v1.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/parser/xml/v2_v3.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/parser/xml/v4.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/writers/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/writers/catalog_writer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/odata/writers/slug.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/api/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/api/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/api/mcp_server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/api/run.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/api/schemas.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/api/settings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/cli/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/cli/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/config/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/config/default.yaml +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/converters/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/converters/swagger2_to_openapi3.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/core/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/core/extractor.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/core/run_config.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/core/zip_export.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/enrichers/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/enrichers/rules.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/enrichers/sample_body.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/generators/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/generators/dependency_graph.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/loaders/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/loaders/spec_loader.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/mcp/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/mcp/server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/models/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/models/domain.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/normalizers/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/normalizers/operations.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/normalizers/schema_flatten.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/parsers/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/parsers/openapi_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/resolvers/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/resolvers/ref_resolver.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/writers/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/openapi/writers/markdown_writer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/otel/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/otel/cli/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/otel/cli/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/otel/otel_logs.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/otel/otel_metrics.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/otel/otel_models.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/otel/otel_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/otel/otel_spans.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/pdf/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/pdf/api/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/pdf/api/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/pdf/api/mcp_server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/pdf/api/settings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/pdf/api/zip_bundle.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/pdf/converter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/pdf/md_emit.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/pdf/pdf_extract.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/pdf/utils.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/playwright/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/playwright/api/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/playwright/api/convert_runner.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/playwright/api/jobs.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/playwright/api/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/playwright/api/mcp_server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/playwright/api/mcp_setup.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/playwright/api/run.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/playwright/api/settings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/playwright/assets.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/playwright/chunker.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/playwright/cli.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/playwright/extractor.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/playwright/html_to_md.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/playwright/options.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/playwright/pipeline.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/playwright/playwright_fetcher.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/api/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/api/convert_runner.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/api/jobs.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/api/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/api/mcp_server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/api/mcp_setup.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/api/query_options.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/api/settings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/convert_impl.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/converter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/embedded_extract.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/ooxml_media.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/options.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/post_assets.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/text_formatting.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/vendor_pdf_md/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/vendor_pdf_md/convert.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/vendor_word_md/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/vendor_word_md/convert.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/ppt/zip_deep.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/runtime/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/runtime/execution_context.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/runtime/metrics.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/runtime/stage_engine.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/abap_journey/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/abap_journey/cache.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/abap_journey/engine.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/abap_journey/extractors.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/abap_journey/graph_builder.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/abap_journey/journey_builder.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/abap_journey/loaders.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/abap_journey/models.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/abap_journey/renderers/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/abap_journey/renderers/graphviz.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/abap_journey/renderers/json_renderer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/abap_journey/renderers/markdown.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/abap_journey/renderers/mermaid.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/abap_journey/resolver.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/analyzer/authorization/extractor.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/analyzer/governance/classifier.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/analyzer/lineage/builder.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/analyzer/relationships/engine.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/analyzer/semantics/entity_mapper.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/analyzer/validation/extractor.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/api/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/api/mcp_server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/api/run.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/api/schemas.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/api/settings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/api/zip_export.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/abap/program.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/base.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/bw/adso.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/bw/composite_provider.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/bw/dtp.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/bw/info_object.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/bw/transformation.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/cds/view.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/datasphere/analytical_model.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/datasphere/data_flow.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/datasphere/view.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/ddic/table.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/hana/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/hana/calculation_view.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/identity.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/loader.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/provenance.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/transformation/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/transformation/graph.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/canonical/transformation/node.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/chunking/registry_v2.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/chunking/spec.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/cli/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/config/default.yaml +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/core/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/core/cache.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/core/errors.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/core/export_manifest.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/core/extractor.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/core/features.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/core/job_manager.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/core/link_graph.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/core/run_config.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/core/run_context.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/framework/artifact.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/framework/capabilities.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/framework/events.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/framework/paths.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/framework/plugin.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/generators/impact/from_graph.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/generators/lineage/from_graph.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/generators/mermaid/transformation_graph.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/generators/registry.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/graph/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/graph/adapters/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/graph/adapters/networkx.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/graph/adapters/openlineage.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/graph/backends/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/graph/backends/arango_stub.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/graph/backends/memory.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/graph/backends/neo4j_stub.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/graph/backends/protocol.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/graph/builder.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/graph/exporters/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/graph/exporters/json_export.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/graph/exporters/mermaid_export.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/graph/model.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/graph/relations.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/graph/store.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/graph/taxonomy.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/index/metadata_index.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/index/semantic_entity_registry.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/lineage/cross_system.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/lineage/semantic_match.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/builders/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/builders/abap_sections.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/builders/ddic_adapters.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/builders/ddic_sections.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/builders/entity_builder.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/builders/odata_builder.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/builders/renderer_context.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/builders/slug.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/builders/structure_sections.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/builders/writer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/chunking/chunk_strategy.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/chunking/registry.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/chunking/writer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/cross_link_registry.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/relationship_weights.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/resolved_link.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/semantic_narrative.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/semantic_types.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/markdown/unified_output_registry.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/models/entities/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/models/entities/kinds.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/models/entities/sap_object.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/models/metadata/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/models/metadata/abap.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/models/metadata/cds.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/models/metadata/ddic.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/models/metadata/ddic_canonical.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/models/metadata/ddic_canonical_io.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/models/metadata/ddic_kinds.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/models/metadata/odata.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/normalizer/registry.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/orchestration/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/orchestration/pipeline.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/orchestration/pipeline_v2.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/abap/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/abap/lexer.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/abap/native_sql.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/abap/parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/abap/sql_extractor.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/abap/sql_fingerprint.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/abap/view_classifier.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/abap/view_resolver.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/bapi/parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/base.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/bw/_common.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/bw/adso.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/bw/composite_provider.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/bw/dtp.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/bw/info_object.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/bw/registry.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/bw/transformation.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/cds/ddl_common.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/cds/parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/cds/table_ddl.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/cds/type_ddl.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/datasphere/_common.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/datasphere/analytical_model.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/datasphere/data_flow.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/datasphere/registry.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/datasphere/view.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/ddic/abapgit_tabl.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/ddic/adt_ddl_source.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/ddic/adt_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/ddic/adt_xml.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/ddic/ddic_resolver.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/ddic/ddl_table_parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/ddic/normalize_helpers.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/ddic/parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/discovery.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/external/_common.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/external/dbt/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/external/dbt/manifest.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/external/informatica/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/external/informatica/mapping.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/external/kafka/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/external/kafka/schema.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/external/registry.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/external/snowflake/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/external/snowflake/ddl.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/hana/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/hana/_variant_common.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/hana/analytic_view.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/hana/attribute_view.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/hana/calculation_view.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/hana/dispatch.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/hana/hdi_calculation_view.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/hana/sql_view.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/hana/xml_stream.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/idoc/parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/odata/associations.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/odata/capabilities.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/odata/detector.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/odata/document_to_objects.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/odata/fetch.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/odata/json/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/odata/json/v4.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/odata/legacy.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/odata/namespaces.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/odata/parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/odata/registry.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/odata/xml/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/odata/xml/v1.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/odata/xml/v2_v3.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/odata/xml/v4.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/registry.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/rfc/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/parser/transport/parser.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/performance/parallel.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/rules/catalog.yaml +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sap/rules/engine.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sdk/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sdk/classifier_plugin.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sdk/discovery.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sdk/enricher_plugin.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sdk/parser_plugin.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sdk/plugin_protocol.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sdk/stage_protocol.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/sdk/writer_plugin.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/text/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/text/api/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/text/api/convert_runner.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/text/api/jobs.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/text/api/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/text/api/mcp_server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/text/api/mcp_setup.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/text/api/query_options.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/text/api/settings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/text/convert_impl.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/text/converter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/text/format_detect.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/text/md_emit_json.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/text/md_emit_txt.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/text/md_emit_xml.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/text/md_flatten.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/text/options.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/text/xml_parse.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/adapters/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/adapters/claude.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/adapters/cursor.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/adapters/openai.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/agent.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/bundle.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/chunks.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/cli.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/dependency-graph.json +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-archive/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-codeflow/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-db/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-global/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-graph/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-image/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-log/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-media/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-odata/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-openapi/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-otel/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-pdf/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-playwright/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-ppt/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-sap/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-text/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-url/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-word/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-ai-xlsx/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-reference/SKILL.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-reference/references/entrypoints.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-reference/references/example.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/mdengine-reference/references/http-api-mcp.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/modules/codeflow.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/modules/db.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/data/skills/modules/word.md +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/rag.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/assistant/registry.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/skill_builder/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/skill_builder/__main__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/skill_builder/dependency_graph.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/skill_builder/generate.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/skill_builder/pyproject_util.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/tools/skill_builder/routing.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/api/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/api/convert_runner.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/api/jobs.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/api/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/api/mcp_server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/api/mcp_setup.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/api/query_options.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/api/settings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/assets.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/convert_impl.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/crawl.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/extract.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/fetch.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/html_to_md.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/options.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/page_convert.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/post_convert_assets.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/url/robots_util.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/word/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/word/api/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/word/api/convert_util.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/word/api/jobs.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/word/api/main.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/word/api/mcp_server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/word/artifact.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/word/converter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/word/settings.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/xlsx/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/xlsx/api/__init__.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/xlsx/api/app.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/xlsx/convert_config.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/xlsx/converter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/xlsx/converter_core.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/xlsx/excel_reader.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/xlsx/markdown_emitter.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/md_generator/xlsx/mcp_server.py +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/mdengine.egg-info/dependency_links.txt +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/mdengine.egg-info/entry_points.txt +0 -0
- {mdengine-0.13.4 → mdengine-0.14.1}/src/mdengine.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mdengine
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.14.1
|
|
4
4
|
Summary: Convert PDF, Office, images, audio, video, text/JSON/XML, ZIP archives, web URLs, databases, graphs, and OpenAPI specs to Markdown.
|
|
5
5
|
Author: mdengine contributors
|
|
6
6
|
License-Expression: MIT
|
|
@@ -107,6 +107,24 @@ Provides-Extra: graph
|
|
|
107
107
|
Requires-Dist: networkx>=3.2.0; extra == "graph"
|
|
108
108
|
Requires-Dist: neo4j>=5.14.0; extra == "graph"
|
|
109
109
|
Requires-Dist: pyyaml>=6.0.0; extra == "graph"
|
|
110
|
+
Provides-Extra: vector
|
|
111
|
+
Requires-Dist: qdrant-client>=1.7.0; extra == "vector"
|
|
112
|
+
Requires-Dist: numpy>=1.24.0; extra == "vector"
|
|
113
|
+
Provides-Extra: langchain
|
|
114
|
+
Requires-Dist: langchain>=0.1.0; extra == "langchain"
|
|
115
|
+
Requires-Dist: langchain-core>=0.1.0; extra == "langchain"
|
|
116
|
+
Requires-Dist: langgraph>=0.0.10; extra == "langchain"
|
|
117
|
+
Provides-Extra: crewai
|
|
118
|
+
Requires-Dist: crewai>=0.28.0; extra == "crewai"
|
|
119
|
+
Provides-Extra: integrations
|
|
120
|
+
Requires-Dist: qdrant-client>=1.7.0; extra == "integrations"
|
|
121
|
+
Requires-Dist: numpy>=1.24.0; extra == "integrations"
|
|
122
|
+
Requires-Dist: langchain>=0.1.0; extra == "integrations"
|
|
123
|
+
Requires-Dist: langchain-core>=0.1.0; extra == "integrations"
|
|
124
|
+
Requires-Dist: langgraph>=0.0.10; extra == "integrations"
|
|
125
|
+
Requires-Dist: crewai>=0.28.0; extra == "integrations"
|
|
126
|
+
Requires-Dist: networkx>=3.2.0; extra == "integrations"
|
|
127
|
+
Requires-Dist: neo4j>=5.14.0; extra == "integrations"
|
|
110
128
|
Provides-Extra: openapi
|
|
111
129
|
Requires-Dist: pyyaml>=6.0.0; extra == "openapi"
|
|
112
130
|
Requires-Dist: prance>=23.6.0; extra == "openapi"
|
|
@@ -243,7 +261,7 @@ Dynamic: license-file
|
|
|
243
261
|
|
|
244
262
|
# mdengine
|
|
245
263
|
|
|
246
|
-
Single Python distribution for converting **PDF**, **Word (.docx)**, **PowerPoint (.pptx)**, **Excel (.xlsx/.xlsm)**, **images** (OCR), **plain text / JSON / XML**, **ZIP archives**, **audio / video** (Whisper transcription → Markdown), **database metadata** (SQL + Mongo), **graphs** (Neo4j / NetworkX → Markdown), **OpenAPI** specs, **Playwright**-captured web pages (including SPAs), **application logs** (plain, JSON, CSV, ZIP bundles → Markdown with optional clustering and semantic grouping), **OpenTelemetry** traces (**OTLP** JSON or protobuf → Markdown trace summaries; optional correlation with log exports via `otel_path`), **OData CSDL metadata** (V1–V4, XML/JSON → Markdown catalogs via **`md-odata`**), **SAP artifacts** (ABAP, CDS, ADT DDIC XML, HANA views, BW, Datasphere, BAPI, IDoc, transport → AI-ready Markdown; OData catalogs via **`md-sap`**, standalone **`md-odata`**, or shared **`md_generator.odata`**), and **source code** (codeflow → architecture Markdown) into **Markdown** (and related assets). Install only the extras you need; everything imports under the **`md_generator`** package.
|
|
264
|
+
Single Python distribution for converting **PDF**, **Word (.docx)**, **PowerPoint (.pptx)**, **Excel (.xlsx/.xlsm)**, **images** (OCR), **plain text / JSON / XML**, **ZIP archives**, **audio / video** (Whisper transcription → Markdown), **database metadata** (SQL + Mongo), **graphs** (Neo4j / NetworkX → Markdown), **OpenAPI** specs, **Playwright**-captured web pages (including SPAs), **application logs** (plain, JSON, CSV, ZIP bundles → Markdown with optional clustering and semantic grouping), **OpenTelemetry** traces (**OTLP** JSON or protobuf → Markdown trace summaries; optional correlation with log exports via `otel_path`), **OData CSDL metadata** (V1–V4, XML/JSON → Markdown catalogs via **`md-odata`**), **SAP artifacts** (ABAP, CDS, ADT DDIC XML, HANA views, BW, Datasphere, BAPI, IDoc, transport, **ABAP execution journeys & call graphs** → AI-ready Markdown; OData catalogs via **`md-sap`**, standalone **`md-odata`**, or shared **`md_generator.odata`**), and **source code** (codeflow → architecture Markdown) into **Markdown** (and related assets). Install only the extras you need; everything imports under the **`md_generator`** package.
|
|
247
265
|
|
|
248
266
|
- **PyPI name:** `mdengine` (import package: `md_generator`)
|
|
249
267
|
- **Source:** [github.com/mdengine/md-generator](https://github.com/mdengine/md-generator)
|
|
@@ -442,7 +460,7 @@ If the shell reports “command not found”, ensure the Python **Scripts** dire
|
|
|
442
460
|
|
|
443
461
|
**odata-to-md (`md-odata`):** parses **OData CSDL** metadata (**V1–V4**, XML or JSON) from **`--file`**, **`--folder`**, **`--zip`**, or **`--url`** (`$metadata`) into catalog Markdown under **`odata/`** (services, entity sets, types, actions, functions). Optional **`--graph`** (relationship JSON/Mermaid) and **`--chunk`** (semantic chunks for RAG). Works **standalone** with **`md-odata`**; when OData files sit beside ABAP/CDS in a SAP tree, use **`md-sap`** instead — see [odata-to-md/docs/dual-mode.md](odata-to-md/docs/dual-mode.md). Library: [`md_generator/odata/`](src/md_generator/odata/). Module README: [`odata-to-md/README.md`](odata-to-md/README.md); catalog layout: [odata-to-md/docs/output-layout.md](odata-to-md/docs/output-layout.md); SAP-integrated catalog notes: [sap-to-md/docs/odata-catalog.md](sap-to-md/docs/odata-catalog.md).
|
|
444
462
|
|
|
445
|
-
**sap-to-md (`md-sap`):** parses **ABAP**, **CDS** (views, **`define table`**, **`define type`** structures), **DDIC** (ADT dictionary XML, abapGit **`TABL`**, DD02/DD03 CSV), **OData** metadata (via shared **`md_generator.odata`** when **`odata_catalog`** is enabled), **BAPI**, **IDoc**, and transport artifacts into chunked Markdown knowledge packs. Also supports **SAP HANA** (calculation, analytic, attribute, SQL, and HDI views), **SAP BW/4HANA** (ADSO, composite providers, DTP, InfoObjects, transformations), **SAP Datasphere** (`.dsview`, `.dataflow`, analytical model JSON exports), and optional **external lineage** parsers (dbt `manifest.json`, Snowflake DDL, Kafka `.avsc`, Informatica mapping XML) when **`parser.include_external: true`** in YAML.
|
|
463
|
+
**sap-to-md (`md-sap`):** parses **ABAP**, **CDS** (views, **`define table`**, **`define type`** structures), **DDIC** (ADT dictionary XML, abapGit **`TABL`**, DD02/DD03 CSV), **OData** metadata (via shared **`md_generator.odata`** when **`odata_catalog`** is enabled), **BAPI**, **IDoc**, and transport artifacts into chunked Markdown knowledge packs. Also supports **ABAP execution journeys & call graphs** (`abap_journey` static caller-callee resolution, traversal limits, statement extractors, fallback journey roots, `.journey-cache`, Mermaid/Graphviz/Markdown renderers), **SAP HANA** (calculation, analytic, attribute, SQL, and HDI views), **SAP BW/4HANA** (ADSO, composite providers, DTP, InfoObjects, transformations), **SAP Datasphere** (`.dsview`, `.dataflow`, analytical model JSON exports), and optional **external lineage** parsers (dbt `manifest.json`, Snowflake DDL, Kafka `.avsc`, Informatica mapping XML) when **`parser.include_external: true`** in YAML.
|
|
446
464
|
|
|
447
465
|
**DDIC / ADT:** Eclipse ADT exports under `wbobj/dictionary/` (data elements, domains, tables, structures, table types, range types, reference types) are parsed by **`ddic.adt`**. Modern **`TABL/DT`** objects with DDL references accept sidecar DDL source when present. Normalized **`ddic_canonical`** metadata powers v2 generators; legacy entity keys remain for v1 **`entities/`** output. Output layout: **`ddic/data-elements/`**, **`ddic/domains/`**, **`ddic/tables/`**, … and shared **`structures/{name}.md`** for ADT structures and CDS **`define type`**. See [sap-to-md/docs/ddic-adt.md](sap-to-md/docs/ddic-adt.md).
|
|
448
466
|
|
|
@@ -885,6 +903,7 @@ Library code lives under [`src/md_generator/sap/`](src/md_generator/sap/). The p
|
|
|
885
903
|
| Package area | Role |
|
|
886
904
|
|--------------|------|
|
|
887
905
|
| `parser/` | Plugin registry — ABAP, CDS (view / **`define table`** / **`define type`**), DDIC (ADT XML, abapGit TABL, CSV), OData, BAPI, IDoc, transport, HANA, BW, Datasphere, external lineage |
|
|
906
|
+
| `abap_journey/` | ABAP execution journeys & call graphs — static call resolution, traversal limits, statement extractors, fallback journey roots, incremental caching, Mermaid/Graphviz/Markdown renderers |
|
|
888
907
|
| `normalizer/` + `canonical/` | **`SapObject` → `CanonicalArtifact`**, typed **`ddic_canonical`** metadata, transformation graphs |
|
|
889
908
|
| `analyzer/` | Relationships, governance, validation, authorization, lineage, semantics |
|
|
890
909
|
| `generators/` + `markdown/` | v1 entity docs (12 sections) and v2 typed Markdown (DDIC, HANA, CDS, BW, Datasphere); optional **semantic narrative** blocks |
|
|
@@ -1284,6 +1303,7 @@ Static call graphs and per-entry Markdown/Mermaid/JSON for **Python**, **Java**
|
|
|
1284
1303
|
More detail: **[`codeflow-to-md/docs/graph-and-outputs.md`](codeflow-to-md/docs/graph-and-outputs.md)** (node/edge model, `graph-schema.json`, `methods/` layout).
|
|
1285
1304
|
|
|
1286
1305
|
- **Formats:** pass **`--formats md,mermaid,json,html`** (comma-separated). **`--output`** is the **output directory**, not the format list.
|
|
1306
|
+
- **Journey analysis & export formats:** pass **`--journey-format md,json,mermaid,html,dot,graphml,gexf`** to generate cross-file execution journey representations and export graph visualizations (DOT, GraphML, GEXF) alongside Markdown/Mermaid outputs.
|
|
1287
1307
|
- **Graph schema export:** optional **`--emit-graph-schema`** (with `json` in formats) writes **`graph-schema.json`** — stable Node/Edge view with derived File/Class nodes and `CONTAINS` edges. **`graph-full.json`** stays unchanged for existing consumers.
|
|
1288
1308
|
- **Markdown intelligence:** flow and entry Markdown include **Called By** and **Impact** lists (capped with **`--intelligence-list-cap`**, default 80).
|
|
1289
1309
|
- **IR / CFG (optional):** **`--emit-cfg`** builds a language-agnostic IR and writes **`cfg.json`**, **`cfg.mmd`**, and appends a CFG Mermaid block to **`flow.md`** (when `md` is in formats). Cap with **`--cfg-max-nodes`** (default 500).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# mdengine
|
|
2
2
|
|
|
3
|
-
Single Python distribution for converting **PDF**, **Word (.docx)**, **PowerPoint (.pptx)**, **Excel (.xlsx/.xlsm)**, **images** (OCR), **plain text / JSON / XML**, **ZIP archives**, **audio / video** (Whisper transcription → Markdown), **database metadata** (SQL + Mongo), **graphs** (Neo4j / NetworkX → Markdown), **OpenAPI** specs, **Playwright**-captured web pages (including SPAs), **application logs** (plain, JSON, CSV, ZIP bundles → Markdown with optional clustering and semantic grouping), **OpenTelemetry** traces (**OTLP** JSON or protobuf → Markdown trace summaries; optional correlation with log exports via `otel_path`), **OData CSDL metadata** (V1–V4, XML/JSON → Markdown catalogs via **`md-odata`**), **SAP artifacts** (ABAP, CDS, ADT DDIC XML, HANA views, BW, Datasphere, BAPI, IDoc, transport → AI-ready Markdown; OData catalogs via **`md-sap`**, standalone **`md-odata`**, or shared **`md_generator.odata`**), and **source code** (codeflow → architecture Markdown) into **Markdown** (and related assets). Install only the extras you need; everything imports under the **`md_generator`** package.
|
|
3
|
+
Single Python distribution for converting **PDF**, **Word (.docx)**, **PowerPoint (.pptx)**, **Excel (.xlsx/.xlsm)**, **images** (OCR), **plain text / JSON / XML**, **ZIP archives**, **audio / video** (Whisper transcription → Markdown), **database metadata** (SQL + Mongo), **graphs** (Neo4j / NetworkX → Markdown), **OpenAPI** specs, **Playwright**-captured web pages (including SPAs), **application logs** (plain, JSON, CSV, ZIP bundles → Markdown with optional clustering and semantic grouping), **OpenTelemetry** traces (**OTLP** JSON or protobuf → Markdown trace summaries; optional correlation with log exports via `otel_path`), **OData CSDL metadata** (V1–V4, XML/JSON → Markdown catalogs via **`md-odata`**), **SAP artifacts** (ABAP, CDS, ADT DDIC XML, HANA views, BW, Datasphere, BAPI, IDoc, transport, **ABAP execution journeys & call graphs** → AI-ready Markdown; OData catalogs via **`md-sap`**, standalone **`md-odata`**, or shared **`md_generator.odata`**), and **source code** (codeflow → architecture Markdown) into **Markdown** (and related assets). Install only the extras you need; everything imports under the **`md_generator`** package.
|
|
4
4
|
|
|
5
5
|
- **PyPI name:** `mdengine` (import package: `md_generator`)
|
|
6
6
|
- **Source:** [github.com/mdengine/md-generator](https://github.com/mdengine/md-generator)
|
|
@@ -199,7 +199,7 @@ If the shell reports “command not found”, ensure the Python **Scripts** dire
|
|
|
199
199
|
|
|
200
200
|
**odata-to-md (`md-odata`):** parses **OData CSDL** metadata (**V1–V4**, XML or JSON) from **`--file`**, **`--folder`**, **`--zip`**, or **`--url`** (`$metadata`) into catalog Markdown under **`odata/`** (services, entity sets, types, actions, functions). Optional **`--graph`** (relationship JSON/Mermaid) and **`--chunk`** (semantic chunks for RAG). Works **standalone** with **`md-odata`**; when OData files sit beside ABAP/CDS in a SAP tree, use **`md-sap`** instead — see [odata-to-md/docs/dual-mode.md](odata-to-md/docs/dual-mode.md). Library: [`md_generator/odata/`](src/md_generator/odata/). Module README: [`odata-to-md/README.md`](odata-to-md/README.md); catalog layout: [odata-to-md/docs/output-layout.md](odata-to-md/docs/output-layout.md); SAP-integrated catalog notes: [sap-to-md/docs/odata-catalog.md](sap-to-md/docs/odata-catalog.md).
|
|
201
201
|
|
|
202
|
-
**sap-to-md (`md-sap`):** parses **ABAP**, **CDS** (views, **`define table`**, **`define type`** structures), **DDIC** (ADT dictionary XML, abapGit **`TABL`**, DD02/DD03 CSV), **OData** metadata (via shared **`md_generator.odata`** when **`odata_catalog`** is enabled), **BAPI**, **IDoc**, and transport artifacts into chunked Markdown knowledge packs. Also supports **SAP HANA** (calculation, analytic, attribute, SQL, and HDI views), **SAP BW/4HANA** (ADSO, composite providers, DTP, InfoObjects, transformations), **SAP Datasphere** (`.dsview`, `.dataflow`, analytical model JSON exports), and optional **external lineage** parsers (dbt `manifest.json`, Snowflake DDL, Kafka `.avsc`, Informatica mapping XML) when **`parser.include_external: true`** in YAML.
|
|
202
|
+
**sap-to-md (`md-sap`):** parses **ABAP**, **CDS** (views, **`define table`**, **`define type`** structures), **DDIC** (ADT dictionary XML, abapGit **`TABL`**, DD02/DD03 CSV), **OData** metadata (via shared **`md_generator.odata`** when **`odata_catalog`** is enabled), **BAPI**, **IDoc**, and transport artifacts into chunked Markdown knowledge packs. Also supports **ABAP execution journeys & call graphs** (`abap_journey` static caller-callee resolution, traversal limits, statement extractors, fallback journey roots, `.journey-cache`, Mermaid/Graphviz/Markdown renderers), **SAP HANA** (calculation, analytic, attribute, SQL, and HDI views), **SAP BW/4HANA** (ADSO, composite providers, DTP, InfoObjects, transformations), **SAP Datasphere** (`.dsview`, `.dataflow`, analytical model JSON exports), and optional **external lineage** parsers (dbt `manifest.json`, Snowflake DDL, Kafka `.avsc`, Informatica mapping XML) when **`parser.include_external: true`** in YAML.
|
|
203
203
|
|
|
204
204
|
**DDIC / ADT:** Eclipse ADT exports under `wbobj/dictionary/` (data elements, domains, tables, structures, table types, range types, reference types) are parsed by **`ddic.adt`**. Modern **`TABL/DT`** objects with DDL references accept sidecar DDL source when present. Normalized **`ddic_canonical`** metadata powers v2 generators; legacy entity keys remain for v1 **`entities/`** output. Output layout: **`ddic/data-elements/`**, **`ddic/domains/`**, **`ddic/tables/`**, … and shared **`structures/{name}.md`** for ADT structures and CDS **`define type`**. See [sap-to-md/docs/ddic-adt.md](sap-to-md/docs/ddic-adt.md).
|
|
205
205
|
|
|
@@ -642,6 +642,7 @@ Library code lives under [`src/md_generator/sap/`](src/md_generator/sap/). The p
|
|
|
642
642
|
| Package area | Role |
|
|
643
643
|
|--------------|------|
|
|
644
644
|
| `parser/` | Plugin registry — ABAP, CDS (view / **`define table`** / **`define type`**), DDIC (ADT XML, abapGit TABL, CSV), OData, BAPI, IDoc, transport, HANA, BW, Datasphere, external lineage |
|
|
645
|
+
| `abap_journey/` | ABAP execution journeys & call graphs — static call resolution, traversal limits, statement extractors, fallback journey roots, incremental caching, Mermaid/Graphviz/Markdown renderers |
|
|
645
646
|
| `normalizer/` + `canonical/` | **`SapObject` → `CanonicalArtifact`**, typed **`ddic_canonical`** metadata, transformation graphs |
|
|
646
647
|
| `analyzer/` | Relationships, governance, validation, authorization, lineage, semantics |
|
|
647
648
|
| `generators/` + `markdown/` | v1 entity docs (12 sections) and v2 typed Markdown (DDIC, HANA, CDS, BW, Datasphere); optional **semantic narrative** blocks |
|
|
@@ -1041,6 +1042,7 @@ Static call graphs and per-entry Markdown/Mermaid/JSON for **Python**, **Java**
|
|
|
1041
1042
|
More detail: **[`codeflow-to-md/docs/graph-and-outputs.md`](codeflow-to-md/docs/graph-and-outputs.md)** (node/edge model, `graph-schema.json`, `methods/` layout).
|
|
1042
1043
|
|
|
1043
1044
|
- **Formats:** pass **`--formats md,mermaid,json,html`** (comma-separated). **`--output`** is the **output directory**, not the format list.
|
|
1045
|
+
- **Journey analysis & export formats:** pass **`--journey-format md,json,mermaid,html,dot,graphml,gexf`** to generate cross-file execution journey representations and export graph visualizations (DOT, GraphML, GEXF) alongside Markdown/Mermaid outputs.
|
|
1044
1046
|
- **Graph schema export:** optional **`--emit-graph-schema`** (with `json` in formats) writes **`graph-schema.json`** — stable Node/Edge view with derived File/Class nodes and `CONTAINS` edges. **`graph-full.json`** stays unchanged for existing consumers.
|
|
1045
1047
|
- **Markdown intelligence:** flow and entry Markdown include **Called By** and **Impact** lists (capped with **`--intelligence-list-cap`**, default 80).
|
|
1046
1048
|
- **IR / CFG (optional):** **`--emit-cfg`** builds a language-agnostic IR and writes **`cfg.json`**, **`cfg.mmd`**, and appends a CFG Mermaid block to **`flow.md`** (when `md` is in formats). Cap with **`--cfg-max-nodes`** (default 500).
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "mdengine"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.14.1"
|
|
8
8
|
description = "Convert PDF, Office, images, audio, video, text/JSON/XML, ZIP archives, web URLs, databases, graphs, and OpenAPI specs to Markdown."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -109,6 +109,28 @@ graph = [
|
|
|
109
109
|
"neo4j>=5.14.0",
|
|
110
110
|
"pyyaml>=6.0.0",
|
|
111
111
|
]
|
|
112
|
+
vector = [
|
|
113
|
+
"qdrant-client>=1.7.0",
|
|
114
|
+
"numpy>=1.24.0",
|
|
115
|
+
]
|
|
116
|
+
langchain = [
|
|
117
|
+
"langchain>=0.1.0",
|
|
118
|
+
"langchain-core>=0.1.0",
|
|
119
|
+
"langgraph>=0.0.10",
|
|
120
|
+
]
|
|
121
|
+
crewai = [
|
|
122
|
+
"crewai>=0.28.0",
|
|
123
|
+
]
|
|
124
|
+
integrations = [
|
|
125
|
+
"qdrant-client>=1.7.0",
|
|
126
|
+
"numpy>=1.24.0",
|
|
127
|
+
"langchain>=0.1.0",
|
|
128
|
+
"langchain-core>=0.1.0",
|
|
129
|
+
"langgraph>=0.0.10",
|
|
130
|
+
"crewai>=0.28.0",
|
|
131
|
+
"networkx>=3.2.0",
|
|
132
|
+
"neo4j>=5.14.0",
|
|
133
|
+
]
|
|
112
134
|
openapi = [
|
|
113
135
|
"pyyaml>=6.0.0",
|
|
114
136
|
"prance>=23.6.0",
|
|
@@ -329,8 +351,10 @@ include = ["md_generator*"]
|
|
|
329
351
|
"md_generator.tools.assistant" = ["data/**/*"]
|
|
330
352
|
|
|
331
353
|
[tool.pytest.ini_options]
|
|
354
|
+
addopts = "--import-mode=importlib"
|
|
332
355
|
pythonpath = ["src"]
|
|
333
356
|
testpaths = [
|
|
357
|
+
"tests",
|
|
334
358
|
"tool-assistant/tests",
|
|
335
359
|
"pdf-to-md/tests",
|
|
336
360
|
"word-to-md/tests",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Adapters bridging md_generator to external AI ecosystems."""
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"""Public facade for mdengine CrewAI tool adapters."""
|
|
2
|
+
|
|
3
|
+
from md_generator.adapters.crewai.exceptions import (
|
|
4
|
+
CrewAIAdapterError,
|
|
5
|
+
CrewAIDependencyError,
|
|
6
|
+
CrewAIToolExecutionError,
|
|
7
|
+
TenantBoundaryError,
|
|
8
|
+
)
|
|
9
|
+
from md_generator.adapters.crewai.schema import MDSearchInput
|
|
10
|
+
from md_generator.adapters.crewai.tools import MDSearchTool, detect_crewai_base_tool
|
|
11
|
+
|
|
12
|
+
__all__ = [
|
|
13
|
+
"MDSearchTool",
|
|
14
|
+
"detect_crewai_base_tool",
|
|
15
|
+
"MDSearchInput",
|
|
16
|
+
"CrewAIAdapterError",
|
|
17
|
+
"CrewAIDependencyError",
|
|
18
|
+
"CrewAIToolExecutionError",
|
|
19
|
+
"TenantBoundaryError",
|
|
20
|
+
]
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"""Standalone exception hierarchy for mdengine CrewAI tool adapters.
|
|
2
|
+
|
|
3
|
+
Uncoupled from vector store errors and LangGraph errors, while preserving
|
|
4
|
+
direct propagation of the shared TenantBoundaryError for security violations.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from md_generator.vector.exceptions import TenantBoundaryError
|
|
8
|
+
|
|
9
|
+
__all__ = [
|
|
10
|
+
"CrewAIAdapterError",
|
|
11
|
+
"CrewAIDependencyError",
|
|
12
|
+
"CrewAIToolExecutionError",
|
|
13
|
+
"TenantBoundaryError",
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class CrewAIAdapterError(Exception):
|
|
18
|
+
"""Base exception for all CrewAI adapter operations."""
|
|
19
|
+
pass
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class CrewAIDependencyError(ImportError, CrewAIAdapterError):
|
|
23
|
+
"""Raised when CrewAI is installed but cannot be imported due to syntax or dependency errors."""
|
|
24
|
+
pass
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class CrewAIToolExecutionError(CrewAIAdapterError):
|
|
28
|
+
"""Raised on invalid document scores, execution failures, or tool operational faults."""
|
|
29
|
+
pass
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"""Strict Pydantic v2 input argument schemas for CrewAI tools."""
|
|
2
|
+
|
|
3
|
+
from pydantic import BaseModel, ConfigDict, Field, field_validator
|
|
4
|
+
|
|
5
|
+
__all__ = ["MDSearchInput"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class MDSearchInput(BaseModel):
|
|
9
|
+
"""Strict input argument schema for mdengine CrewAI search tool.
|
|
10
|
+
|
|
11
|
+
Invariants:
|
|
12
|
+
1. extra="forbid": Unknown fields (including agent-supplied tenant_id) are strictly rejected.
|
|
13
|
+
2. strict=True: Rejects loose type coercions (e.g., int/float to string).
|
|
14
|
+
3. frozen=True: Input instance is immutable.
|
|
15
|
+
4. Option A: Retrieval uses the retriever's configured top_k setting without a conflicting per-call limit.
|
|
16
|
+
"""
|
|
17
|
+
model_config = ConfigDict(
|
|
18
|
+
extra="forbid",
|
|
19
|
+
strict=True,
|
|
20
|
+
frozen=True,
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
query: str = Field(
|
|
24
|
+
...,
|
|
25
|
+
description="Search query to locate relevant enterprise documentation, code, and architecture specifications.",
|
|
26
|
+
min_length=1,
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
@field_validator("query")
|
|
30
|
+
@classmethod
|
|
31
|
+
def validate_non_whitespace_query(cls, v: str) -> str:
|
|
32
|
+
if not isinstance(v, str):
|
|
33
|
+
raise ValueError("Query must be a string.")
|
|
34
|
+
stripped = v.strip()
|
|
35
|
+
if not stripped:
|
|
36
|
+
raise ValueError("Query string cannot be empty or whitespace-only.")
|
|
37
|
+
return stripped
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
"""MDSearchTool adapter for CrewAI agents with bound tenant isolation and score filtering."""
|
|
2
|
+
|
|
3
|
+
import importlib.util
|
|
4
|
+
import math
|
|
5
|
+
from typing import Any, Optional, Type
|
|
6
|
+
from pydantic import BaseModel, ConfigDict, PrivateAttr
|
|
7
|
+
|
|
8
|
+
from md_generator.adapters.crewai.exceptions import (
|
|
9
|
+
CrewAIDependencyError,
|
|
10
|
+
CrewAIToolExecutionError,
|
|
11
|
+
TenantBoundaryError,
|
|
12
|
+
)
|
|
13
|
+
from md_generator.adapters.crewai.schema import MDSearchInput
|
|
14
|
+
from md_generator.adapters.langchain.context import PromptContextBuilder
|
|
15
|
+
from md_generator.adapters.langchain.retriever import MDVectorStoreRetriever
|
|
16
|
+
|
|
17
|
+
__all__ = ["MDSearchTool", "detect_crewai_base_tool"]
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def detect_crewai_base_tool() -> Optional[Type[Any]]:
|
|
21
|
+
"""Detects BaseTool from crewai or crewai_tools without masking broken installations.
|
|
22
|
+
|
|
23
|
+
Supported Version Range:
|
|
24
|
+
- CrewAI >= 0.11.0 to current: imports from `crewai.tools.BaseTool`
|
|
25
|
+
- CrewAI tool packages: imports from `crewai_tools.BaseTool`
|
|
26
|
+
|
|
27
|
+
Resolution Logic (P2B-R03):
|
|
28
|
+
1. Genuine Absence: If neither `crewai` nor `crewai_tools` can be located by
|
|
29
|
+
importlib.util.find_spec, returns None to activate `_FallbackBaseTool`.
|
|
30
|
+
2. Installed Package: If either package is located on disk, attempts to import BaseTool.
|
|
31
|
+
A failure indicates a broken installation (missing internal dependencies, syntax
|
|
32
|
+
errors, or version incompatibilities) and raises CrewAIDependencyError.
|
|
33
|
+
"""
|
|
34
|
+
has_crewai = False
|
|
35
|
+
has_crewai_tools = False
|
|
36
|
+
|
|
37
|
+
try:
|
|
38
|
+
has_crewai = importlib.util.find_spec("crewai") is not None
|
|
39
|
+
except (ImportError, AttributeError, ValueError) as err:
|
|
40
|
+
raise CrewAIDependencyError(f"Corrupted crewai package metadata: {err}") from err
|
|
41
|
+
|
|
42
|
+
try:
|
|
43
|
+
has_crewai_tools = importlib.util.find_spec("crewai_tools") is not None
|
|
44
|
+
except (ImportError, AttributeError, ValueError) as err:
|
|
45
|
+
raise CrewAIDependencyError(f"Corrupted crewai_tools package metadata: {err}") from err
|
|
46
|
+
|
|
47
|
+
# Case 1: Genuinely absent
|
|
48
|
+
if not has_crewai and not has_crewai_tools:
|
|
49
|
+
return None
|
|
50
|
+
|
|
51
|
+
# Case 2: crewai package located
|
|
52
|
+
if has_crewai:
|
|
53
|
+
try:
|
|
54
|
+
from crewai.tools import BaseTool as DetectedBaseTool
|
|
55
|
+
return DetectedBaseTool
|
|
56
|
+
except ImportError as err:
|
|
57
|
+
if has_crewai_tools:
|
|
58
|
+
try:
|
|
59
|
+
from crewai_tools import BaseTool as DetectedToolsBaseTool
|
|
60
|
+
return DetectedToolsBaseTool
|
|
61
|
+
except ImportError as err_tools:
|
|
62
|
+
raise CrewAIDependencyError(
|
|
63
|
+
f"CrewAI packages installed but BaseTool could not be imported: "
|
|
64
|
+
f"crewai: {err}; crewai_tools: {err_tools}"
|
|
65
|
+
) from err_tools
|
|
66
|
+
raise CrewAIDependencyError(
|
|
67
|
+
f"crewai is installed but BaseTool cannot be imported: {err}"
|
|
68
|
+
) from err
|
|
69
|
+
|
|
70
|
+
# Case 3: only crewai_tools package located
|
|
71
|
+
if has_crewai_tools:
|
|
72
|
+
try:
|
|
73
|
+
from crewai_tools import BaseTool as DetectedToolsBaseTool
|
|
74
|
+
return DetectedToolsBaseTool
|
|
75
|
+
except ImportError as err:
|
|
76
|
+
raise CrewAIDependencyError(
|
|
77
|
+
f"crewai_tools is installed but BaseTool cannot be imported: {err}"
|
|
78
|
+
) from err
|
|
79
|
+
|
|
80
|
+
return None
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
CrewAIBaseTool: Optional[Type[Any]] = detect_crewai_base_tool()
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
class _FallbackBaseTool(BaseModel):
|
|
87
|
+
"""Pydantic v2 fallback providing the identical public compatibility surface when CrewAI is absent."""
|
|
88
|
+
model_config = ConfigDict(arbitrary_types_allowed=True)
|
|
89
|
+
|
|
90
|
+
name: str = "enterprise_knowledge_search"
|
|
91
|
+
description: str = (
|
|
92
|
+
"Search enterprise markdown and code documentation with token-budgeted prompt context and source citations."
|
|
93
|
+
)
|
|
94
|
+
args_schema: Type[BaseModel] = MDSearchInput
|
|
95
|
+
|
|
96
|
+
def run(self, *args: Any, **kwargs: Any) -> str:
|
|
97
|
+
return self._run(*args, **kwargs)
|
|
98
|
+
|
|
99
|
+
def _run(self, *args: Any, **kwargs: Any) -> str:
|
|
100
|
+
raise NotImplementedError
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
_ToolBase = CrewAIBaseTool if CrewAIBaseTool is not None else _FallbackBaseTool
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
class MDSearchTool(_ToolBase):
|
|
107
|
+
"""CrewAI search tool adapter bridging mdengine retrieval to multi-agent ecosystems.
|
|
108
|
+
|
|
109
|
+
Invariants:
|
|
110
|
+
1. Mandatory Bound Tenant Isolation (C1): Bound to a single immutable tenant_id at construction.
|
|
111
|
+
2. Input Schema Contract (C2): Pydantic v2 strict input schema with extra='forbid'.
|
|
112
|
+
3. Document Score Contract (C3): Scores validated in [0.0, 1.0] and filtered by min_score.
|
|
113
|
+
4. Deterministic Output (C4): Structured PromptContextBuilder output; informative string on 0 results.
|
|
114
|
+
5. Zero In-Place Mutation: Never alters retriever, vector store, or document states.
|
|
115
|
+
"""
|
|
116
|
+
name: str = "enterprise_knowledge_search"
|
|
117
|
+
description: str = (
|
|
118
|
+
"Search enterprise markdown and code documentation with token-budgeted prompt context and source citations."
|
|
119
|
+
)
|
|
120
|
+
args_schema: Type[BaseModel] = MDSearchInput
|
|
121
|
+
|
|
122
|
+
_retriever: Any = PrivateAttr()
|
|
123
|
+
_tenant_id: str = PrivateAttr()
|
|
124
|
+
_min_score: float = PrivateAttr()
|
|
125
|
+
_builder: PromptContextBuilder = PrivateAttr()
|
|
126
|
+
_is_frozen: bool = PrivateAttr(default=False)
|
|
127
|
+
|
|
128
|
+
def __init__(
|
|
129
|
+
self,
|
|
130
|
+
retriever: MDVectorStoreRetriever,
|
|
131
|
+
tenant_id: str,
|
|
132
|
+
min_score: float = 0.0,
|
|
133
|
+
builder: Optional[PromptContextBuilder] = None,
|
|
134
|
+
**kwargs: Any,
|
|
135
|
+
) -> None:
|
|
136
|
+
# 1. Mandatory construction-time tenant validation (P2B-V04)
|
|
137
|
+
if tenant_id is None or not isinstance(tenant_id, str) or not tenant_id.strip():
|
|
138
|
+
raise TenantBoundaryError("MDSearchTool requires a mandatory non-empty string 'tenant_id'.")
|
|
139
|
+
clean_tenant = tenant_id.strip()
|
|
140
|
+
|
|
141
|
+
if not hasattr(retriever, "tenant_id"):
|
|
142
|
+
raise TenantBoundaryError("retriever must provide a valid 'tenant_id' attribute.")
|
|
143
|
+
retriever_tenant = getattr(retriever, "tenant_id")
|
|
144
|
+
if not retriever_tenant or clean_tenant != retriever_tenant.strip():
|
|
145
|
+
raise TenantBoundaryError(
|
|
146
|
+
f"Tool tenant_id '{clean_tenant}' conflicts with retriever tenant_id '{retriever_tenant}'."
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
# 2. Strict threshold validation (P2B-V05)
|
|
150
|
+
if isinstance(min_score, bool):
|
|
151
|
+
raise ValueError("min_score cannot be a boolean.")
|
|
152
|
+
if not isinstance(min_score, (int, float)):
|
|
153
|
+
raise ValueError(f"min_score must be a numeric float or int, got {type(min_score).__name__}.")
|
|
154
|
+
min_score_val = float(min_score)
|
|
155
|
+
if math.isnan(min_score_val) or math.isinf(min_score_val):
|
|
156
|
+
raise ValueError("min_score cannot be NaN or Infinite.")
|
|
157
|
+
if not (0.0 <= min_score_val <= 1.0):
|
|
158
|
+
raise ValueError(f"min_score must be between 0.0 and 1.0, got {min_score_val}.")
|
|
159
|
+
|
|
160
|
+
# 3. Builder initialization
|
|
161
|
+
if builder is None:
|
|
162
|
+
builder = PromptContextBuilder()
|
|
163
|
+
|
|
164
|
+
super().__init__(**kwargs)
|
|
165
|
+
self._retriever = retriever
|
|
166
|
+
self._tenant_id = clean_tenant
|
|
167
|
+
self._min_score = min_score_val
|
|
168
|
+
self._builder = builder
|
|
169
|
+
self._is_frozen = True
|
|
170
|
+
|
|
171
|
+
@property
|
|
172
|
+
def tenant_id(self) -> str:
|
|
173
|
+
"""Immutable trusted tenant identifier bound at construction."""
|
|
174
|
+
return self._tenant_id
|
|
175
|
+
|
|
176
|
+
@property
|
|
177
|
+
def min_score(self) -> float:
|
|
178
|
+
"""Minimum relevance threshold for document inclusion."""
|
|
179
|
+
return self._min_score
|
|
180
|
+
|
|
181
|
+
@property
|
|
182
|
+
def retriever(self) -> Any:
|
|
183
|
+
"""Bound vector store retriever."""
|
|
184
|
+
return self._retriever
|
|
185
|
+
|
|
186
|
+
@property
|
|
187
|
+
def builder(self) -> PromptContextBuilder:
|
|
188
|
+
"""Bound context builder."""
|
|
189
|
+
return self._builder
|
|
190
|
+
|
|
191
|
+
def __setattr__(self, name: str, value: Any) -> None:
|
|
192
|
+
if getattr(self, "_is_frozen", False) and name in ("tenant_id", "_tenant_id"):
|
|
193
|
+
raise AttributeError("tenant_id is immutable and cannot be reassigned.")
|
|
194
|
+
super().__setattr__(name, value)
|
|
195
|
+
|
|
196
|
+
def _run(self, *args: Any, **kwargs: Any) -> str:
|
|
197
|
+
"""Executes tenant-isolated retrieval, document validation, score filtering, and context synthesis.
|
|
198
|
+
|
|
199
|
+
Invocation Signatures (P2B-R01):
|
|
200
|
+
- Keyword: run(query="...") or _run(query="...")
|
|
201
|
+
- Positional: run("...") or _run("...")
|
|
202
|
+
|
|
203
|
+
Schema Enforcement:
|
|
204
|
+
All inputs (positional or keyword) are validated through MDSearchInput:
|
|
205
|
+
- Missing arguments -> pydantic.ValidationError
|
|
206
|
+
- Non-string or whitespace queries -> pydantic.ValidationError
|
|
207
|
+
- Extra fields (e.g. tenant_id) -> pydantic.ValidationError
|
|
208
|
+
- Multiple or ambiguous positional arguments -> pydantic.ValidationError
|
|
209
|
+
"""
|
|
210
|
+
# 1. Parse arguments and normalize into kwargs for MDSearchInput validation
|
|
211
|
+
call_kwargs = dict(kwargs)
|
|
212
|
+
if args:
|
|
213
|
+
if len(args) == 1:
|
|
214
|
+
if "query" in call_kwargs:
|
|
215
|
+
call_kwargs["__duplicate_positional_query__"] = args[0]
|
|
216
|
+
else:
|
|
217
|
+
call_kwargs["query"] = args[0]
|
|
218
|
+
else:
|
|
219
|
+
for idx, arg in enumerate(args):
|
|
220
|
+
call_kwargs[f"__positional_{idx}__"] = arg
|
|
221
|
+
|
|
222
|
+
validated = MDSearchInput.model_validate(call_kwargs)
|
|
223
|
+
query_str = validated.query
|
|
224
|
+
|
|
225
|
+
# 2. Invoke retriever
|
|
226
|
+
try:
|
|
227
|
+
raw_docs = self._retriever.invoke(query_str) or []
|
|
228
|
+
except TenantBoundaryError:
|
|
229
|
+
raise
|
|
230
|
+
except Exception as err:
|
|
231
|
+
raise CrewAIToolExecutionError(f"Retriever invocation failed for query '{query_str}': {err}") from err
|
|
232
|
+
|
|
233
|
+
# 3. Deep document tenant ownership validation (P2B-V04)
|
|
234
|
+
for i, doc in enumerate(raw_docs):
|
|
235
|
+
meta = doc.metadata if hasattr(doc, "metadata") else (doc.get("metadata", {}) if isinstance(doc, dict) else {})
|
|
236
|
+
doc_tenant = meta.get("tenant_id")
|
|
237
|
+
if doc_tenant is None or not isinstance(doc_tenant, str) or not doc_tenant.strip():
|
|
238
|
+
raise TenantBoundaryError(
|
|
239
|
+
f"Retrieved document at index {i} missing mandatory non-empty 'tenant_id' in metadata."
|
|
240
|
+
)
|
|
241
|
+
if doc_tenant.strip() != self._tenant_id:
|
|
242
|
+
raise TenantBoundaryError(
|
|
243
|
+
f"Retrieved document at index {i} belongs to tenant '{doc_tenant.strip()}', "
|
|
244
|
+
f"conflicting with bound tool tenant '{self._tenant_id}'."
|
|
245
|
+
)
|
|
246
|
+
|
|
247
|
+
# 4. Document score validation & threshold filtering (P2B-V05, P2B-R04)
|
|
248
|
+
qualifying_docs = []
|
|
249
|
+
for i, doc in enumerate(raw_docs):
|
|
250
|
+
meta = doc.metadata if hasattr(doc, "metadata") else (doc.get("metadata", {}) if isinstance(doc, dict) else {})
|
|
251
|
+
if "score" not in meta:
|
|
252
|
+
raise CrewAIToolExecutionError(f"Retrieved document at index {i} missing mandatory 'score' in metadata.")
|
|
253
|
+
raw_score = meta["score"]
|
|
254
|
+
if raw_score is None:
|
|
255
|
+
raise CrewAIToolExecutionError(f"Retrieved document at index {i} has None 'score'.")
|
|
256
|
+
if isinstance(raw_score, bool):
|
|
257
|
+
raise CrewAIToolExecutionError(f"Retrieved document at index {i} has boolean 'score'.")
|
|
258
|
+
if not isinstance(raw_score, (int, float)):
|
|
259
|
+
raise CrewAIToolExecutionError(
|
|
260
|
+
f"Retrieved document at index {i} has non-numeric score of type '{type(raw_score).__name__}'."
|
|
261
|
+
)
|
|
262
|
+
if math.isnan(raw_score) or math.isinf(raw_score):
|
|
263
|
+
raise CrewAIToolExecutionError(f"Retrieved document at index {i} has non-finite score: {raw_score}.")
|
|
264
|
+
if not (0.0 <= raw_score <= 1.0):
|
|
265
|
+
raise CrewAIToolExecutionError(f"Retrieved document at index {i} score {raw_score} is outside [0.0, 1.0].")
|
|
266
|
+
|
|
267
|
+
if float(raw_score) >= self._min_score:
|
|
268
|
+
qualifying_docs.append(doc)
|
|
269
|
+
|
|
270
|
+
# 5. Empty results contract (P2B-V06, P2B-V07)
|
|
271
|
+
if not qualifying_docs:
|
|
272
|
+
return f"No relevant documents found for query: '{query_str}'."
|
|
273
|
+
|
|
274
|
+
# 6. Context synthesis via PromptContextBuilder
|
|
275
|
+
try:
|
|
276
|
+
return self._builder.build_context(qualifying_docs)
|
|
277
|
+
except TenantBoundaryError:
|
|
278
|
+
raise
|
|
279
|
+
except Exception as err:
|
|
280
|
+
raise CrewAIToolExecutionError(f"Context synthesis failed: {err}") from err
|
|
281
|
+
|
|
282
|
+
def run(self, *args: Any, **kwargs: Any) -> str:
|
|
283
|
+
"""Public execution entry point conforming to CrewAI tool invocation protocol."""
|
|
284
|
+
return self._run(*args, **kwargs)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"""LangChain adapters for md_generator."""
|
|
2
|
+
|
|
3
|
+
from md_generator.adapters.langchain.exceptions import (
|
|
4
|
+
LangChainAdapterError,
|
|
5
|
+
LangChainDependencyError,
|
|
6
|
+
)
|
|
7
|
+
from md_generator.adapters.langchain.loader import (
|
|
8
|
+
MDDocumentLoader,
|
|
9
|
+
extract_semantic_key,
|
|
10
|
+
resolve_tenant_id,
|
|
11
|
+
)
|
|
12
|
+
from md_generator.adapters.langchain.retriever import (
|
|
13
|
+
MDVectorStoreRetriever,
|
|
14
|
+
)
|
|
15
|
+
from md_generator.adapters.langchain.context import (
|
|
16
|
+
PromptContextBuilder,
|
|
17
|
+
canonical_document_fingerprint,
|
|
18
|
+
extract_and_validate_score,
|
|
19
|
+
estimate_token_count,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
__all__ = [
|
|
23
|
+
"LangChainAdapterError",
|
|
24
|
+
"LangChainDependencyError",
|
|
25
|
+
"MDDocumentLoader",
|
|
26
|
+
"extract_semantic_key",
|
|
27
|
+
"resolve_tenant_id",
|
|
28
|
+
"MDVectorStoreRetriever",
|
|
29
|
+
"PromptContextBuilder",
|
|
30
|
+
"canonical_document_fingerprint",
|
|
31
|
+
"extract_and_validate_score",
|
|
32
|
+
"estimate_token_count",
|
|
33
|
+
]
|