mdengine 0.8.1__tar.gz → 0.10.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mdengine-0.8.1/src/mdengine.egg-info → mdengine-0.10.0}/PKG-INFO +214 -15
- {mdengine-0.8.1 → mdengine-0.10.0}/README.md +173 -14
- {mdengine-0.8.1 → mdengine-0.10.0}/pyproject.toml +54 -2
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/__init__.py +1 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/archive/api/convert_runner.py +3 -3
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/archive/api/main.py +15 -6
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/archive/api/mcp_setup.py +10 -7
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/archive/convert_impl.py +71 -118
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/archive/converter.py +14 -8
- mdengine-0.10.0/src/md_generator/archive/extractors.py +304 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/api/job_manager.py +5 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/api/schemas.py +162 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/cli/main.py +191 -1
- mdengine-0.10.0/src/md_generator/codeflow/core/cache_manager.py +110 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/core/extractor.py +433 -76
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/core/run_config.py +41 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/generators/cytoscape_enrich.py +22 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/generators/entry_markdown.py +222 -16
- mdengine-0.10.0/src/md_generator/codeflow/generators/html_unified.py +487 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/generators/markdown.py +24 -5
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/analysis.py +32 -9
- mdengine-0.10.0/src/md_generator/codeflow/graph/anomaly.py +109 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/builder.py +4 -0
- mdengine-0.10.0/src/md_generator/codeflow/graph/cluster_labeling.py +271 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/clustering.py +3 -1
- mdengine-0.10.0/src/md_generator/codeflow/graph/cross_repo_resolver.py +200 -0
- mdengine-0.10.0/src/md_generator/codeflow/graph/dependency_builder.py +166 -0
- mdengine-0.10.0/src/md_generator/codeflow/graph/diff_analysis.py +149 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/embeddings.py +24 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/enricher.py +26 -8
- mdengine-0.10.0/src/md_generator/codeflow/graph/hotpath.py +94 -0
- mdengine-0.10.0/src/md_generator/codeflow/graph/maven_hints.py +37 -0
- mdengine-0.10.0/src/md_generator/codeflow/graph/multi_repo.py +157 -0
- mdengine-0.10.0/src/md_generator/codeflow/graph/nl_query.py +267 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/relations.py +3 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/runtime_integration.py +10 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/semantic_enricher.py +17 -0
- mdengine-0.10.0/src/md_generator/codeflow/graph/sqlite_export.py +183 -0
- mdengine-0.10.0/src/md_generator/codeflow/graph/tsconfig_cross_repo.py +127 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/ingestion/git_loader.py +77 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/cpp_parser.py +14 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/python_parser.py +53 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/treesitter_js_ts_parser.py +67 -0
- mdengine-0.10.0/src/md_generator/codeflow/parsers/unified_parser.py +31 -0
- mdengine-0.10.0/src/md_generator/codeflow/runtime/python_edge_counter.py +44 -0
- mdengine-0.10.0/src/md_generator/codeflow/runtime/trace_runner.py +110 -0
- mdengine-0.10.0/src/md_generator/core/__init__.py +15 -0
- mdengine-0.10.0/src/md_generator/core/artifacts/__init__.py +16 -0
- mdengine-0.10.0/src/md_generator/core/artifacts/mdaf_validate.py +35 -0
- mdengine-0.10.0/src/md_generator/core/artifacts/models.py +60 -0
- mdengine-0.10.0/src/md_generator/core/artifacts/serialize.py +59 -0
- mdengine-0.10.0/src/md_generator/core/schema/__init__.py +3 -0
- mdengine-0.10.0/src/md_generator/core/schema/adapters/__init__.py +1 -0
- mdengine-0.10.0/src/md_generator/core/schema/adapters/log_record.py +24 -0
- mdengine-0.10.0/src/md_generator/core/schema/adapters/otel.py +31 -0
- mdengine-0.10.0/src/md_generator/core/schema/telemetry_event.py +15 -0
- mdengine-0.10.0/src/md_generator/core/schema/validation.py +16 -0
- mdengine-0.10.0/src/md_generator/db/adapters/access_adapter.py +143 -0
- mdengine-0.10.0/src/md_generator/db/adapters/access_introspect.py +122 -0
- mdengine-0.10.0/src/md_generator/db/adapters/access_odbc.py +108 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/adapters/factory.py +10 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/adapters/mysql_adapter.py +14 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/adapters/postgres_adapter.py +14 -0
- mdengine-0.10.0/src/md_generator/db/adapters/sqlserver_adapter.py +323 -0
- mdengine-0.10.0/src/md_generator/db/api/access_upload.py +89 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/api/main.py +82 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/api/schemas.py +5 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/api/settings.py +1 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/api/sqlite_upload.py +4 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/cli/main.py +28 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/core/base_adapter.py +11 -0
- mdengine-0.10.0/src/md_generator/db/core/cli_ops.py +57 -0
- mdengine-0.10.0/src/md_generator/db/core/export_manifest.py +65 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/core/extractor.py +74 -9
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/core/job_manager.py +45 -13
- mdengine-0.10.0/src/md_generator/db/core/link_graph.py +69 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/core/markdown_writer.py +55 -7
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/core/models.py +21 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/core/run_config.py +14 -0
- mdengine-0.10.0/src/md_generator/distributed/__init__.py +5 -0
- mdengine-0.10.0/src/md_generator/distributed/merge.py +21 -0
- mdengine-0.10.0/src/md_generator/distributed/partition.py +12 -0
- mdengine-0.10.0/src/md_generator/distributed/worker_pool.py +43 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/engine_cli.py +22 -2
- mdengine-0.10.0/src/md_generator/governance/__init__.py +11 -0
- mdengine-0.10.0/src/md_generator/governance/audit.py +13 -0
- mdengine-0.10.0/src/md_generator/governance/classification.py +31 -0
- mdengine-0.10.0/src/md_generator/governance/lineage.py +34 -0
- mdengine-0.10.0/src/md_generator/governance/retention.py +7 -0
- mdengine-0.10.0/src/md_generator/log/__init__.py +6 -0
- mdengine-0.10.0/src/md_generator/log/aggregation/__init__.py +1 -0
- mdengine-0.10.0/src/md_generator/log/aggregation/aggregators.py +20 -0
- mdengine-0.10.0/src/md_generator/log/aggregation/dataframe_builder.py +39 -0
- mdengine-0.10.0/src/md_generator/log/aggregation/metrics.py +34 -0
- mdengine-0.10.0/src/md_generator/log/aggregation/timeline.py +15 -0
- mdengine-0.10.0/src/md_generator/log/api/__init__.py +1 -0
- mdengine-0.10.0/src/md_generator/log/api/main.py +257 -0
- mdengine-0.10.0/src/md_generator/log/api/mcp_server.py +29 -0
- mdengine-0.10.0/src/md_generator/log/api/run.py +15 -0
- mdengine-0.10.0/src/md_generator/log/api/schemas.py +112 -0
- mdengine-0.10.0/src/md_generator/log/api/settings.py +32 -0
- mdengine-0.10.0/src/md_generator/log/chunking/__init__.py +4 -0
- mdengine-0.10.0/src/md_generator/log/chunking/artifact_adapter.py +20 -0
- mdengine-0.10.0/src/md_generator/log/chunking/chunk_engine.py +23 -0
- mdengine-0.10.0/src/md_generator/log/chunking/chunk_models.py +14 -0
- mdengine-0.10.0/src/md_generator/log/chunking/chunk_registry.py +144 -0
- mdengine-0.10.0/src/md_generator/log/chunking/chunk_strategy.py +20 -0
- mdengine-0.10.0/src/md_generator/log/cli/__init__.py +1 -0
- mdengine-0.10.0/src/md_generator/log/cli/main.py +147 -0
- mdengine-0.10.0/src/md_generator/log/clustering/__init__.py +1 -0
- mdengine-0.10.0/src/md_generator/log/clustering/embeddings.py +3 -0
- mdengine-0.10.0/src/md_generator/log/clustering/kmeans_cluster.py +12 -0
- mdengine-0.10.0/src/md_generator/log/clustering/semantic_grouping.py +7 -0
- mdengine-0.10.0/src/md_generator/log/clustering/vectorizer.py +13 -0
- mdengine-0.10.0/src/md_generator/log/config/__init__.py +1 -0
- mdengine-0.10.0/src/md_generator/log/config/default.yaml +138 -0
- mdengine-0.10.0/src/md_generator/log/config/preset_loader.py +85 -0
- mdengine-0.10.0/src/md_generator/log/config/presets/__init__.py +1 -0
- mdengine-0.10.0/src/md_generator/log/config/presets/generic.yaml +3 -0
- mdengine-0.10.0/src/md_generator/log/config/presets/json.yaml +4 -0
- mdengine-0.10.0/src/md_generator/log/config/presets/logback.yaml +5 -0
- mdengine-0.10.0/src/md_generator/log/config/presets/springboot.yaml +3 -0
- mdengine-0.10.0/src/md_generator/log/config/schemas.py +262 -0
- mdengine-0.10.0/src/md_generator/log/core/__init__.py +1 -0
- mdengine-0.10.0/src/md_generator/log/core/errors.py +25 -0
- mdengine-0.10.0/src/md_generator/log/core/execution_context.py +10 -0
- mdengine-0.10.0/src/md_generator/log/core/extractor.py +20 -0
- mdengine-0.10.0/src/md_generator/log/core/job_manager.py +274 -0
- mdengine-0.10.0/src/md_generator/log/core/lifecycle.py +15 -0
- mdengine-0.10.0/src/md_generator/log/core/pipeline.py +392 -0
- mdengine-0.10.0/src/md_generator/log/core/plugins.py +80 -0
- mdengine-0.10.0/src/md_generator/log/core/run_config.py +270 -0
- mdengine-0.10.0/src/md_generator/log/core/zip_export.py +31 -0
- mdengine-0.10.0/src/md_generator/log/correlation/correlation_engine.py +51 -0
- mdengine-0.10.0/src/md_generator/log/correlation/correlation_models.py +31 -0
- mdengine-0.10.0/src/md_generator/log/correlation/correlation_scoring.py +33 -0
- mdengine-0.10.0/src/md_generator/log/correlation/cross_source.py +69 -0
- mdengine-0.10.0/src/md_generator/log/correlation/request_parser.py +12 -0
- mdengine-0.10.0/src/md_generator/log/correlation/session_parser.py +10 -0
- mdengine-0.10.0/src/md_generator/log/correlation/trace_parser.py +12 -0
- mdengine-0.10.0/src/md_generator/log/documentation/__init__.py +9 -0
- mdengine-0.10.0/src/md_generator/log/documentation/incident_summary.py +19 -0
- mdengine-0.10.0/src/md_generator/log/documentation/service_report.py +19 -0
- mdengine-0.10.0/src/md_generator/log/documentation/troubleshooting.py +15 -0
- mdengine-0.10.0/src/md_generator/log/embeddings/embedding_exporter.py +38 -0
- mdengine-0.10.0/src/md_generator/log/embeddings/exporters/chroma_exporter.py +11 -0
- mdengine-0.10.0/src/md_generator/log/embeddings/exporters/faiss_exporter.py +10 -0
- mdengine-0.10.0/src/md_generator/log/embeddings/exporters/jsonl_exporter.py +15 -0
- mdengine-0.10.0/src/md_generator/log/embeddings/exporters/parquet_exporter.py +20 -0
- mdengine-0.10.0/src/md_generator/log/enrichment/__init__.py +1 -0
- mdengine-0.10.0/src/md_generator/log/enrichment/correlation.py +7 -0
- mdengine-0.10.0/src/md_generator/log/enrichment/fingerprinting.py +11 -0
- mdengine-0.10.0/src/md_generator/log/enrichment/hash_generator.py +8 -0
- mdengine-0.10.0/src/md_generator/log/enrichment/pattern_matcher.py +24 -0
- mdengine-0.10.0/src/md_generator/log/enrichment/severity_ranker.py +14 -0
- mdengine-0.10.0/src/md_generator/log/incidents/__init__.py +4 -0
- mdengine-0.10.0/src/md_generator/log/incidents/artifact_adapter.py +27 -0
- mdengine-0.10.0/src/md_generator/log/incidents/fingerprinting.py +33 -0
- mdengine-0.10.0/src/md_generator/log/incidents/grouping.py +23 -0
- mdengine-0.10.0/src/md_generator/log/incidents/incident_engine.py +82 -0
- mdengine-0.10.0/src/md_generator/log/incidents/models.py +49 -0
- mdengine-0.10.0/src/md_generator/log/incidents/severity.py +21 -0
- mdengine-0.10.0/src/md_generator/log/incremental/__init__.py +11 -0
- mdengine-0.10.0/src/md_generator/log/incremental/checkpoint.py +38 -0
- mdengine-0.10.0/src/md_generator/log/incremental/engine.py +34 -0
- mdengine-0.10.0/src/md_generator/log/incremental/resume_reader.py +41 -0
- mdengine-0.10.0/src/md_generator/log/ingestion/__init__.py +1 -0
- mdengine-0.10.0/src/md_generator/log/ingestion/archive_bridge.py +52 -0
- mdengine-0.10.0/src/md_generator/log/ingestion/archive_loader.py +25 -0
- mdengine-0.10.0/src/md_generator/log/ingestion/batch_reader.py +45 -0
- mdengine-0.10.0/src/md_generator/log/ingestion/encoding_detector.py +15 -0
- mdengine-0.10.0/src/md_generator/log/ingestion/file_loader.py +23 -0
- mdengine-0.10.0/src/md_generator/log/ingestion/stream_reader.py +36 -0
- mdengine-0.10.0/src/md_generator/log/intelligence/anomaly_detection.py +8 -0
- mdengine-0.10.0/src/md_generator/log/intelligence/dependency_analysis.py +12 -0
- mdengine-0.10.0/src/md_generator/log/intelligence/heuristics.py +15 -0
- mdengine-0.10.0/src/md_generator/log/intelligence/root_cause_engine.py +47 -0
- mdengine-0.10.0/src/md_generator/log/knowledge_graph/graph_builder.py +18 -0
- mdengine-0.10.0/src/md_generator/log/knowledge_graph/graph_exporter.py +28 -0
- mdengine-0.10.0/src/md_generator/log/knowledge_graph/graph_models.py +17 -0
- mdengine-0.10.0/src/md_generator/log/knowledge_graph/relation_extractor.py +34 -0
- mdengine-0.10.0/src/md_generator/log/linking/__init__.py +3 -0
- mdengine-0.10.0/src/md_generator/log/linking/link_graph.py +62 -0
- mdengine-0.10.0/src/md_generator/log/markdown_intelligence/__init__.py +4 -0
- mdengine-0.10.0/src/md_generator/log/markdown_intelligence/aliases.py +13 -0
- mdengine-0.10.0/src/md_generator/log/markdown_intelligence/backlinks.py +26 -0
- mdengine-0.10.0/src/md_generator/log/markdown_intelligence/cross_refs.py +11 -0
- mdengine-0.10.0/src/md_generator/log/mcp/__init__.py +1 -0
- mdengine-0.10.0/src/md_generator/log/mcp/server.py +84 -0
- mdengine-0.10.0/src/md_generator/log/mcp/sse.py +8 -0
- mdengine-0.10.0/src/md_generator/log/noise_reduction/__init__.py +3 -0
- mdengine-0.10.0/src/md_generator/log/noise_reduction/dedupe.py +22 -0
- mdengine-0.10.0/src/md_generator/log/noise_reduction/entropy.py +15 -0
- mdengine-0.10.0/src/md_generator/log/noise_reduction/filter.py +26 -0
- mdengine-0.10.0/src/md_generator/log/normalization/__init__.py +1 -0
- mdengine-0.10.0/src/md_generator/log/normalization/number_normalizer.py +9 -0
- mdengine-0.10.0/src/md_generator/log/normalization/path_normalizer.py +12 -0
- mdengine-0.10.0/src/md_generator/log/normalization/pii_redactor.py +16 -0
- mdengine-0.10.0/src/md_generator/log/normalization/token_normalizer.py +44 -0
- mdengine-0.10.0/src/md_generator/log/normalization/uuid_normalizer.py +11 -0
- mdengine-0.10.0/src/md_generator/log/parser/__init__.py +3 -0
- mdengine-0.10.0/src/md_generator/log/parser/json_line_parser.py +59 -0
- mdengine-0.10.0/src/md_generator/log/parser/level_detector.py +25 -0
- mdengine-0.10.0/src/md_generator/log/parser/logger_detector.py +10 -0
- mdengine-0.10.0/src/md_generator/log/parser/models.py +49 -0
- mdengine-0.10.0/src/md_generator/log/parser/multiline_parser.py +172 -0
- mdengine-0.10.0/src/md_generator/log/parser/parser_registry.py +71 -0
- mdengine-0.10.0/src/md_generator/log/parser/regex_parser.py +28 -0
- mdengine-0.10.0/src/md_generator/log/parser/stacktrace_parser.py +29 -0
- mdengine-0.10.0/src/md_generator/log/parser/timestamp_parser.py +9 -0
- mdengine-0.10.0/src/md_generator/log/search/bm25_search.py +38 -0
- mdengine-0.10.0/src/md_generator/log/search/cli.py +25 -0
- mdengine-0.10.0/src/md_generator/log/search/hybrid_search.py +13 -0
- mdengine-0.10.0/src/md_generator/log/search/search_index.py +12 -0
- mdengine-0.10.0/src/md_generator/log/search/vector_search.py +8 -0
- mdengine-0.10.0/src/md_generator/log/service/__init__.py +1 -0
- mdengine-0.10.0/src/md_generator/log/service/service.py +18 -0
- mdengine-0.10.0/src/md_generator/log/streaming/__init__.py +3 -0
- mdengine-0.10.0/src/md_generator/log/streaming/kafka_reader.py +39 -0
- mdengine-0.10.0/src/md_generator/log/streaming/redis_reader.py +40 -0
- mdengine-0.10.0/src/md_generator/log/streaming/stdin_reader.py +9 -0
- mdengine-0.10.0/src/md_generator/log/streaming/stream_coordinator.py +44 -0
- mdengine-0.10.0/src/md_generator/log/streaming/tail_reader.py +17 -0
- mdengine-0.10.0/src/md_generator/log/streaming/websocket_reader.py +38 -0
- mdengine-0.10.0/src/md_generator/log/timeline/causal_chain.py +15 -0
- mdengine-0.10.0/src/md_generator/log/timeline/ordering.py +12 -0
- mdengine-0.10.0/src/md_generator/log/timeline/timeline_engine.py +25 -0
- mdengine-0.10.0/src/md_generator/log/timeline/timeline_models.py +14 -0
- mdengine-0.10.0/src/md_generator/log/topology/__init__.py +3 -0
- mdengine-0.10.0/src/md_generator/log/topology/discovery.py +57 -0
- mdengine-0.10.0/src/md_generator/log/utils/__init__.py +1 -0
- mdengine-0.10.0/src/md_generator/log/utils/concurrency.py +23 -0
- mdengine-0.10.0/src/md_generator/log/utils/io.py +12 -0
- mdengine-0.10.0/src/md_generator/log/utils/regex.py +9 -0
- mdengine-0.10.0/src/md_generator/log/utils/time.py +18 -0
- mdengine-0.10.0/src/md_generator/log/visualization/__init__.py +4 -0
- mdengine-0.10.0/src/md_generator/log/visualization/mermaid_sequence.py +21 -0
- mdengine-0.10.0/src/md_generator/log/visualization/mermaid_timeline.py +21 -0
- mdengine-0.10.0/src/md_generator/log/visualization/mermaid_topology.py +24 -0
- mdengine-0.10.0/src/md_generator/log/writers/__init__.py +1 -0
- mdengine-0.10.0/src/md_generator/log/writers/assets_writer.py +11 -0
- mdengine-0.10.0/src/md_generator/log/writers/chunk_writer.py +56 -0
- mdengine-0.10.0/src/md_generator/log/writers/cluster_markdown.py +17 -0
- mdengine-0.10.0/src/md_generator/log/writers/correlation_writer.py +29 -0
- mdengine-0.10.0/src/md_generator/log/writers/frontmatter_writer.py +46 -0
- mdengine-0.10.0/src/md_generator/log/writers/incident_writer.py +67 -0
- mdengine-0.10.0/src/md_generator/log/writers/markdown_writer.py +80 -0
- mdengine-0.10.0/src/md_generator/log/writers/summary_writer.py +46 -0
- mdengine-0.10.0/src/md_generator/otel/__init__.py +1 -0
- mdengine-0.10.0/src/md_generator/otel/cli/__init__.py +0 -0
- mdengine-0.10.0/src/md_generator/otel/cli/main.py +34 -0
- mdengine-0.10.0/src/md_generator/otel/otel_logs.py +22 -0
- mdengine-0.10.0/src/md_generator/otel/otel_metrics.py +12 -0
- mdengine-0.10.0/src/md_generator/otel/otel_models.py +20 -0
- mdengine-0.10.0/src/md_generator/otel/otel_parser.py +22 -0
- mdengine-0.10.0/src/md_generator/otel/otel_spans.py +26 -0
- mdengine-0.10.0/src/md_generator/runtime/__init__.py +4 -0
- mdengine-0.10.0/src/md_generator/runtime/execution_context.py +13 -0
- mdengine-0.10.0/src/md_generator/runtime/metrics.py +27 -0
- mdengine-0.10.0/src/md_generator/runtime/stage_engine.py +25 -0
- mdengine-0.10.0/src/md_generator/sdk/__init__.py +3 -0
- mdengine-0.10.0/src/md_generator/sdk/classifier_plugin.py +8 -0
- mdengine-0.10.0/src/md_generator/sdk/discovery.py +20 -0
- mdengine-0.10.0/src/md_generator/sdk/enricher_plugin.py +3 -0
- mdengine-0.10.0/src/md_generator/sdk/parser_plugin.py +11 -0
- mdengine-0.10.0/src/md_generator/sdk/plugin_protocol.py +10 -0
- mdengine-0.10.0/src/md_generator/sdk/stage_protocol.py +30 -0
- mdengine-0.10.0/src/md_generator/sdk/writer_plugin.py +8 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/text/api/main.py +9 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/text/api/mcp_setup.py +10 -4
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/text/api/query_options.py +5 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/text/convert_impl.py +41 -17
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/text/converter.py +15 -0
- mdengine-0.10.0/src/md_generator/text/md_flatten.py +167 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/text/options.py +4 -0
- mdengine-0.10.0/src/md_generator/text/xml_parse.py +31 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/dependency-graph.json +6 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/registry.json +46 -3
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/global-skill.md +3 -2
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-archive/SKILL.md +1 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-codeflow/SKILL.md +4 -3
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-db/SKILL.md +1 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-global/SKILL.md +2 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-graph/SKILL.md +1 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-image/SKILL.md +1 -1
- mdengine-0.10.0/src/md_generator/tools/assistant/data/skills/mdengine-ai-log/SKILL.md +76 -0
- mdengine-0.10.0/src/md_generator/tools/assistant/data/skills/mdengine-ai-log/references/example.md +43 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-media/SKILL.md +1 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-openapi/SKILL.md +1 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-pdf/SKILL.md +1 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-playwright/SKILL.md +1 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-ppt/SKILL.md +1 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-text/SKILL.md +4 -3
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-url/SKILL.md +1 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-word/SKILL.md +1 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-xlsx/SKILL.md +1 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-reference/SKILL.md +1 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-reference/references/http-api-mcp.md +23 -1
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/codeflow.md +3 -2
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/text.md +3 -2
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/skill_builder/generate.py +8 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/skill_builder/routing.py +7 -2
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/post_convert_assets.py +8 -7
- {mdengine-0.8.1 → mdengine-0.10.0/src/mdengine.egg-info}/PKG-INFO +214 -15
- {mdengine-0.8.1 → mdengine-0.10.0}/src/mdengine.egg-info/SOURCES.txt +226 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/mdengine.egg-info/entry_points.txt +4 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/mdengine.egg-info/requires.txt +50 -0
- mdengine-0.8.1/src/md_generator/codeflow/generators/html_unified.py +0 -285
- mdengine-0.8.1/src/md_generator/codeflow/graph/sqlite_export.py +0 -56
- {mdengine-0.8.1 → mdengine-0.10.0}/LICENSE +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/setup.cfg +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/archive/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/archive/api/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/archive/api/jobs.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/archive/api/mcp_server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/archive/api/query_options.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/archive/api/settings.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/archive/options.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/analyzers/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/analyzers/flow_analyzer.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/api/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/api/main.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/api/mcp_server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/api/run.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/api/semantic_api.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/api/settings.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/api/sse.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/cli/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/config/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/config/codeflow_yaml.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/core/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/detectors/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/detectors/api_detector.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/detectors/entry_detector.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/detectors/entry_rank.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/detectors/event_detector.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/detectors/kafka_detector.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/detectors/liferay_portlet_detector.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/generators/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/generators/business_rules_markdown.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/generators/cfg_paths_markdown.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/generators/cfg_paths_mermaid.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/generators/cfg_render.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/generators/flow_summary.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/generators/flow_tree.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/generators/html.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/generators/mermaid.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/generators/sequence.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/call_expander.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/cfg_builder.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/cfg_copy.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/cfg_model.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/event_graph.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/export_schema.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/multigraph_utils.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/path_enumerator.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/path_probability.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/query_engine.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/graph/semantic_index.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/ingestion/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/ingestion/loader.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/lang_dispatch.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/mcp/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/mcp/server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/models/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/models/ir.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/models/ir_cfg.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/adapters/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/adapters/cpp_adapter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/adapters/go_adapter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/adapters/ir_from_dump.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/adapters/java_adapter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/adapters/php_adapter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/adapters/python_adapter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/adapters/treesitter_adapter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/base.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/go_parser.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/ir_enrich.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/java_parser.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/php_parser.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/rules/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/rules/collector.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/rules/cpp_rules.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/rules/java_rules.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/runtime/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/runtime/tracer.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/utils/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/utils/tools_root.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/worker/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/codeflow/worker/celery_optional.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/adapters/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/adapters/mongo_adapter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/adapters/oracle_adapter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/adapters/sql_common.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/adapters/sqlite_adapter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/api/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/api/mcp_server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/api/run.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/cli/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/config/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/config/default.yaml +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/core/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/core/erd/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/core/erd/dot_emitter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/core/erd/filter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/core/erd/mermaid_emitter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/core/erd/mermaid_render.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/core/erd/model.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/core/erd/pipeline.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/core/erd/render.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/core/util.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/core/zip_export.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/mcp/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/mcp/server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/mcp/sse.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/db/mcp/stream.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/adapters/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/adapters/factory.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/adapters/neo4j_adapter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/adapters/networkx_adapter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/api/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/api/main.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/api/mcp_server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/api/run.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/api/schemas.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/api/settings.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/cli/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/cli/main.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/config/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/config/default.yaml +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/core/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/core/base_adapter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/core/extractor.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/core/graph_builder.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/core/job_manager.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/core/markdown_writer.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/core/models.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/core/run_config.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/core/viz.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/core/zip_export.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/mcp/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/mcp/server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/mcp/sse.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/graph/mcp/stream.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/image/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/image/api/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/image/api/main.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/image/api/mcp_server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/image/api/query_options.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/image/api/settings.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/image/api/staging.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/image/api/zip_bundle.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/image/backends/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/image/backends/base.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/image/backends/easy.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/image/backends/paddle.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/image/backends/tesseract.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/image/convert_impl.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/image/converter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/image/emit.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/image/io_util.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/image/utils.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/audio/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/audio/api/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/audio/api/main.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/audio/api/mcp_server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/audio/api/mcp_setup.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/audio/api/run.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/audio/api/settings.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/audio/converter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/audio/formatter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/audio/service.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/document_converter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/job_store.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/video/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/video/api/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/video/api/main.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/video/api/mcp_server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/video/api/mcp_setup.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/video/api/run.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/video/api/settings.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/video/converter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/video/formatter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/video/service.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/whisper_language.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/youtube/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/youtube/api/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/youtube/api/main.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/youtube/api/mcp_server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/youtube/api/mcp_setup.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/youtube/api/run.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/youtube/api/settings.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/youtube/converter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/youtube/formatter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/youtube/metadata.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/youtube/service.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/media/youtube/transcript.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/api/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/api/main.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/api/mcp_server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/api/run.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/api/schemas.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/api/settings.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/cli/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/cli/main.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/config/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/config/default.yaml +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/converters/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/converters/swagger2_to_openapi3.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/core/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/core/extractor.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/core/run_config.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/core/zip_export.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/enrichers/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/enrichers/rules.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/enrichers/sample_body.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/generators/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/generators/dependency_graph.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/loaders/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/loaders/spec_loader.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/mcp/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/mcp/server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/models/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/models/domain.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/normalizers/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/normalizers/operations.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/normalizers/schema_flatten.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/parsers/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/parsers/openapi_parser.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/resolvers/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/resolvers/ref_resolver.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/writers/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/openapi/writers/markdown_writer.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/pdf/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/pdf/api/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/pdf/api/main.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/pdf/api/mcp_server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/pdf/api/settings.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/pdf/api/zip_bundle.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/pdf/converter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/pdf/md_emit.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/pdf/pdf_extract.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/pdf/utils.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/playwright/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/playwright/api/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/playwright/api/convert_runner.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/playwright/api/jobs.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/playwright/api/main.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/playwright/api/mcp_server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/playwright/api/mcp_setup.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/playwright/api/run.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/playwright/api/settings.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/playwright/assets.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/playwright/chunker.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/playwright/cli.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/playwright/extractor.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/playwright/html_to_md.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/playwright/options.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/playwright/pipeline.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/playwright/playwright_fetcher.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/api/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/api/convert_runner.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/api/jobs.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/api/main.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/api/mcp_server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/api/mcp_setup.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/api/query_options.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/api/settings.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/convert_impl.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/converter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/embedded_extract.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/ooxml_media.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/options.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/post_assets.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/text_formatting.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/vendor_pdf_md/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/vendor_pdf_md/convert.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/vendor_word_md/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/vendor_word_md/convert.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/ppt/zip_deep.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/text/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/text/api/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/text/api/convert_runner.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/text/api/jobs.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/text/api/mcp_server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/text/api/settings.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/text/format_detect.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/text/md_emit_json.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/text/md_emit_txt.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/text/md_emit_xml.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/adapters/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/adapters/claude.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/adapters/cursor.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/adapters/openai.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/agent.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/bundle.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/chunks.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/cli.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-archive/references/example.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-codeflow/references/example.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-db/references/example.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-global/references/example.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-graph/references/example.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-image/references/example.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-media/references/example.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-openapi/references/example.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-pdf/references/example.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-playwright/references/example.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-ppt/references/example.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-text/references/example.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-url/references/example.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-word/references/example.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-xlsx/references/example.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-reference/references/entrypoints.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-reference/references/example.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/archive.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/db.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/graph.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/image.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/media.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/openapi.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/pdf.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/playwright.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/ppt.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/url.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/word.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/xlsx.md +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/rag.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/assistant/registry.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/skill_builder/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/skill_builder/__main__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/skill_builder/dependency_graph.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/tools/skill_builder/pyproject_util.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/api/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/api/convert_runner.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/api/jobs.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/api/main.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/api/mcp_server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/api/mcp_setup.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/api/query_options.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/api/settings.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/assets.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/convert_impl.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/converter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/crawl.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/extract.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/fetch.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/html_to_md.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/options.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/page_convert.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/url/robots_util.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/word/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/word/api/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/word/api/convert_util.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/word/api/jobs.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/word/api/main.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/word/api/mcp_server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/word/artifact.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/word/converter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/word/settings.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/xlsx/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/xlsx/api/__init__.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/xlsx/api/app.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/xlsx/convert_config.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/xlsx/converter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/xlsx/converter_core.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/xlsx/excel_reader.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/xlsx/markdown_emitter.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/md_generator/xlsx/mcp_server.py +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/mdengine.egg-info/dependency_links.txt +0 -0
- {mdengine-0.8.1 → mdengine-0.10.0}/src/mdengine.egg-info/top_level.txt +0 -0
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mdengine
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.10.0
|
|
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
|
|
7
7
|
Project-URL: Homepage, https://github.com/vishal7090/md-generator
|
|
8
8
|
Project-URL: Repository, https://github.com/vishal7090/md-generator
|
|
9
9
|
Project-URL: Issues, https://github.com/vishal7090/md-generator/issues
|
|
10
|
+
Project-URL: Documentation, https://vishal7090.github.io/md-generator/
|
|
10
11
|
Keywords: markdown,pdf,docx,pptx,xlsx,ocr,zip,url,html,youtube,playwright,database,openapi,codeflow
|
|
11
12
|
Classifier: Programming Language :: Python :: 3
|
|
12
13
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
@@ -43,9 +44,14 @@ Requires-Dist: paddlepaddle>=2.5.0; extra == "image-ocr"
|
|
|
43
44
|
Requires-Dist: paddleocr>=2.7.0.3; extra == "image-ocr"
|
|
44
45
|
Requires-Dist: easyocr>=1.7.0; extra == "image-ocr"
|
|
45
46
|
Provides-Extra: text
|
|
47
|
+
Requires-Dist: xmltodict>=0.13.0; extra == "text"
|
|
48
|
+
Requires-Dist: lxml>=5.0.0; extra == "text"
|
|
46
49
|
Provides-Extra: archive
|
|
47
50
|
Requires-Dist: Pillow>=10.0.0; extra == "archive"
|
|
48
51
|
Requires-Dist: pytesseract>=0.3.10; extra == "archive"
|
|
52
|
+
Provides-Extra: archive-formats
|
|
53
|
+
Requires-Dist: py7zr>=0.21.0; extra == "archive-formats"
|
|
54
|
+
Requires-Dist: patoolib>=2.0.0; extra == "archive-formats"
|
|
49
55
|
Provides-Extra: url
|
|
50
56
|
Requires-Dist: httpx>=0.27.0; extra == "url"
|
|
51
57
|
Requires-Dist: beautifulsoup4>=4.12.0; extra == "url"
|
|
@@ -92,6 +98,7 @@ Requires-Dist: sqlalchemy>=2.0.0; extra == "db"
|
|
|
92
98
|
Requires-Dist: pyyaml>=6.0.0; extra == "db"
|
|
93
99
|
Requires-Dist: psycopg2-binary>=2.9.9; extra == "db"
|
|
94
100
|
Requires-Dist: pymysql>=1.1.0; extra == "db"
|
|
101
|
+
Requires-Dist: pyodbc>=5.0.0; extra == "db"
|
|
95
102
|
Requires-Dist: oracledb>=2.0.0; extra == "db"
|
|
96
103
|
Requires-Dist: pymongo>=4.6.0; extra == "db"
|
|
97
104
|
Requires-Dist: mermaid-py>=0.8.0; extra == "db"
|
|
@@ -120,6 +127,29 @@ Provides-Extra: codeflow-semantic
|
|
|
120
127
|
Requires-Dist: numpy>=1.24.0; extra == "codeflow-semantic"
|
|
121
128
|
Requires-Dist: scikit-learn>=1.3.0; extra == "codeflow-semantic"
|
|
122
129
|
Requires-Dist: sentence-transformers>=3.0.0; extra == "codeflow-semantic"
|
|
130
|
+
Provides-Extra: log
|
|
131
|
+
Requires-Dist: pandas>=2.0.0; extra == "log"
|
|
132
|
+
Requires-Dist: python-dateutil>=2.8.0; extra == "log"
|
|
133
|
+
Requires-Dist: pyyaml>=6.0.0; extra == "log"
|
|
134
|
+
Provides-Extra: log-cluster
|
|
135
|
+
Requires-Dist: scikit-learn>=1.3.0; extra == "log-cluster"
|
|
136
|
+
Provides-Extra: log-semantic
|
|
137
|
+
Requires-Dist: numpy>=1.24.0; extra == "log-semantic"
|
|
138
|
+
Requires-Dist: scikit-learn>=1.3.0; extra == "log-semantic"
|
|
139
|
+
Requires-Dist: sentence-transformers>=3.0.0; extra == "log-semantic"
|
|
140
|
+
Provides-Extra: log-pretty
|
|
141
|
+
Requires-Dist: loguru>=0.7.0; extra == "log-pretty"
|
|
142
|
+
Provides-Extra: log-otel-proto
|
|
143
|
+
Requires-Dist: opentelemetry-proto>=1.27.0; extra == "log-otel-proto"
|
|
144
|
+
Requires-Dist: protobuf>=4.25.0; extra == "log-otel-proto"
|
|
145
|
+
Provides-Extra: log-export-parquet
|
|
146
|
+
Requires-Dist: pyarrow>=14.0.0; extra == "log-export-parquet"
|
|
147
|
+
Provides-Extra: log-stream-kafka
|
|
148
|
+
Requires-Dist: kafka-python>=2.0.2; extra == "log-stream-kafka"
|
|
149
|
+
Provides-Extra: log-stream-redis
|
|
150
|
+
Requires-Dist: redis>=5.0.0; extra == "log-stream-redis"
|
|
151
|
+
Provides-Extra: log-stream-ws
|
|
152
|
+
Requires-Dist: websockets>=12.0; extra == "log-stream-ws"
|
|
123
153
|
Provides-Extra: api
|
|
124
154
|
Requires-Dist: fastapi>=0.115.0; extra == "api"
|
|
125
155
|
Requires-Dist: uvicorn[standard]>=0.32.0; extra == "api"
|
|
@@ -129,6 +159,14 @@ Requires-Dist: pydantic-settings>=2.0.0; extra == "api"
|
|
|
129
159
|
Provides-Extra: mcp
|
|
130
160
|
Requires-Dist: mcp>=1.2.0; extra == "mcp"
|
|
131
161
|
Requires-Dist: fastmcp>=2.3.0; extra == "mcp"
|
|
162
|
+
Provides-Extra: docs
|
|
163
|
+
Requires-Dist: mkdocs-material; extra == "docs"
|
|
164
|
+
Requires-Dist: mkdocstrings; extra == "docs"
|
|
165
|
+
Requires-Dist: mkdocstrings-python; extra == "docs"
|
|
166
|
+
Requires-Dist: pymdown-extensions; extra == "docs"
|
|
167
|
+
Requires-Dist: mkdocs-mermaid2-plugin; extra == "docs"
|
|
168
|
+
Requires-Dist: mkdocs-git-revision-date-localized-plugin; extra == "docs"
|
|
169
|
+
Requires-Dist: mike; extra == "docs"
|
|
132
170
|
Provides-Extra: skill-openai
|
|
133
171
|
Requires-Dist: openai>=1.30.0; extra == "skill-openai"
|
|
134
172
|
Provides-Extra: skill-rag-chroma
|
|
@@ -148,6 +186,8 @@ Requires-Dist: mdengine[graph]; extra == "dev"
|
|
|
148
186
|
Requires-Dist: mdengine[openapi]; extra == "dev"
|
|
149
187
|
Requires-Dist: mdengine[codeflow]; extra == "dev"
|
|
150
188
|
Requires-Dist: mdengine[codeflow-treesitter]; extra == "dev"
|
|
189
|
+
Requires-Dist: mdengine[log]; extra == "dev"
|
|
190
|
+
Requires-Dist: mdengine[log-cluster]; extra == "dev"
|
|
151
191
|
Provides-Extra: all
|
|
152
192
|
Requires-Dist: pymupdf>=1.24.0; extra == "all"
|
|
153
193
|
Requires-Dist: pdfplumber>=0.11.0; extra == "all"
|
|
@@ -185,7 +225,7 @@ Single Python distribution for converting **PDF**, **Word (.docx)**, **PowerPoin
|
|
|
185
225
|
- **Python:** 3.10+
|
|
186
226
|
- **License:** [MIT](LICENSE)
|
|
187
227
|
|
|
188
|
-
**Quick links:** [On a new computer](#on-a-new-computer) · [Command-line execution](#command-line-execution) · [Python library](#python-library) · [Audio and video](#audio-and-video-to-markdown) · [HTTP API](#http-api-fastapi) · [MCP](#mcp-model-context-protocol) · [AI assistant CLI](#ai-assistant-cli) · [Development](#development) · [Code of Conduct](CODE_OF_CONDUCT.md)
|
|
228
|
+
**Quick links:** [On a new computer](#on-a-new-computer) · [Command-line execution](#command-line-execution) · [Python library](#python-library) · [Audio and video](#audio-and-video-to-markdown) · [HTTP API](#http-api-fastapi) · [MCP](#mcp-model-context-protocol) · [AI assistant CLI](#ai-assistant-cli) · [Development](#development) · [Published documentation](https://vishal7090.github.io/md-generator/) · [Code of Conduct](CODE_OF_CONDUCT.md)
|
|
189
229
|
|
|
190
230
|
---
|
|
191
231
|
|
|
@@ -254,9 +294,23 @@ pip install "mdengine[all]"
|
|
|
254
294
|
| `url-full` | `url` plus PDF/Word/PPTX/XLSX/archive stack for **post-converting** downloaded linked files to Markdown |
|
|
255
295
|
| `audio` | **Audio → Markdown** via Whisper (`openai-whisper`); ships `imageio-ffmpeg` for a bundled **ffmpeg** when none is on `PATH` |
|
|
256
296
|
| `video` | **Video → Markdown** (ffmpeg extracts mono 16 kHz WAV, then same Whisper stack as `audio`) |
|
|
297
|
+
| `youtube` | **YouTube → Markdown** (captions + page metadata; `youtube-transcript-api`, httpx, BeautifulSoup, lxml) |
|
|
298
|
+
| `playwright` | **Playwright-rendered SPA → Markdown** (`playwright` + same HTML stack as `url`; run `playwright install chromium` after install) |
|
|
299
|
+
| `db` | **Database metadata → Markdown** (SQLAlchemy, drivers, `mermaid-py` for ERD helpers) |
|
|
300
|
+
| `openapi` | **OpenAPI / Swagger → Markdown** (`prance`, `openapi-spec-validator`, PyYAML) |
|
|
301
|
+
| `codeflow` | **Static codeflow / call graphs → Markdown** (`networkx`, `javalang`; core scanners) |
|
|
302
|
+
| `codeflow-worker` | Optional **Celery + Redis** workers for the codeflow API async path |
|
|
303
|
+
| `codeflow-treesitter` | **Tree-sitter** parsers (JS/TS/TSX, C++) for richer codeflow slices |
|
|
304
|
+
| `codeflow-clang` | **libclang** bindings for C/C++ parsing when used by the codeflow pipeline |
|
|
305
|
+
| `codeflow-semantic` | **Semantic clustering** (SentenceTransformers, scikit-learn, numpy; large install) |
|
|
306
|
+
| `log` | **Log files → Markdown** (`pandas`, PyYAML, date parsing) |
|
|
307
|
+
| `log-cluster` | Log pipeline **clustering** (scikit-learn) |
|
|
308
|
+
| `log-semantic` | Log pipeline **semantic** helpers (SentenceTransformers + scikit-learn; large) |
|
|
309
|
+
| `log-pretty` | Optional **loguru** for pretty console diagnostics during log conversion |
|
|
257
310
|
| `api` | FastAPI, uvicorn, httpx, pydantic-settings |
|
|
258
311
|
| `mcp` | MCP servers (`mcp`, `fastmcp` where used) |
|
|
259
312
|
| `graph` | **Graph → Markdown** (Neo4j Bolt + NetworkX GraphML/GML): `networkx`, `neo4j`, `pyyaml` |
|
|
313
|
+
| `docs` | **MkDocs** site tooling (Material, mkdocstrings, Mermaid plugin, mike) for maintainers publishing reference docs |
|
|
260
314
|
| `dev` | pytest + API/MCP test helpers |
|
|
261
315
|
| `all` | Large superset of dependencies (use only if you need everything) |
|
|
262
316
|
| `skill-openai` | Optional helpers for OpenAI-style calls with assembled skill context (`md_generator.tools.assistant`) |
|
|
@@ -317,7 +371,17 @@ If the shell reports “command not found”, ensure the Python **Scripts** dire
|
|
|
317
371
|
| `md-openapi` | `md_generator.openapi.cli.main:main` | `pip install "mdengine[openapi]"` then `md-openapi generate --file openapi.yaml --output ./docs` (or `mdengine openapi-to-md generate …`) |
|
|
318
372
|
| `md-openapi-api` | `md_generator.openapi.api.run:main` | FastAPI on port **8015** (`OPENAPI_TO_MD_PORT`): `POST /openapi-to-md/generate` (OpenAPI upload → ZIP), `/health`, MCP at **`/mcp`** |
|
|
319
373
|
| `md-openapi-mcp` | `md_generator.openapi.api.mcp_server:main` | Standalone MCP: `api_validate_openapi_yaml`, `api_generate_readme_markdown`, `api_run_sync_zip_base64` |
|
|
320
|
-
| `
|
|
374
|
+
| `md-playwright` | `md_generator.playwright.cli:main` | `pip install "mdengine[playwright]"` then `md-playwright https://spa.example/app ./spa-out` (after `playwright install chromium`) |
|
|
375
|
+
| `md-playwright-api` | `md_generator.playwright.api.run:main` | FastAPI + MCP on port **8014** (`PLAYWRIGHT_TO_MD_API_PORT` / settings); see [HTTP API](#http-api-fastapi) |
|
|
376
|
+
| `md-playwright-mcp` | `md_generator.playwright.api.mcp_server:main` | Standalone MCP for Playwright capture tools |
|
|
377
|
+
| `md-codeflow` | `md_generator.codeflow.cli.main:main` | Same as `codeflow` — `md-codeflow scan …` (alias of packaged `codeflow` script) |
|
|
378
|
+
| `codeflow` | `md_generator.codeflow.cli.main:main` | `pip install "mdengine[codeflow]"` then `codeflow scan path/to/src --output ./out --lang java` |
|
|
379
|
+
| `md-codeflow-api` | `md_generator.codeflow.api.run:main` | FastAPI on port **8016** (`CODEFLOW_TO_MD_PORT`); upload/workspace job flow + MCP at **`/mcp`** when MCP extras resolve |
|
|
380
|
+
| `md-codeflow-mcp` | `md_generator.codeflow.api.mcp_server:main` | Standalone **stdio** MCP for codeflow tools |
|
|
381
|
+
| `md-log` | `md_generator.log.cli.main:main` | `pip install "mdengine[log]"` then `md-log --config log.yaml` (or `mdengine log-to-md …`) |
|
|
382
|
+
| `md-log-api` | `md_generator.log.api.run:main` | FastAPI on port **8012** (`LOG_TO_MD_PORT`); set a different port if **`md-graph-api`** or **`md-video-api`** already uses **8012** |
|
|
383
|
+
| `md-log-mcp` | `md_generator.log.api.mcp_server:main` | Standalone MCP (`stdio` \| `sse` \| `streamable-http`) |
|
|
384
|
+
| `mdengine` | `md_generator.engine_cli:main` | `mdengine ai assist …`, `mdengine ai export …`, `mdengine skill build …`, `mdengine db-to-md …`, `mdengine log-to-md …`, `mdengine graph-to-md …`, `mdengine openapi-to-md generate …`, `mdengine codeflow-to-md scan …` |
|
|
321
385
|
|
|
322
386
|
**openapi-to-md (`md-openapi`):** OpenAPI **3.x** is parsed directly; **Swagger 2.0** (`swagger: "2.0"`) documents are **converted in-process** to OpenAPI 3.0.3 (deterministic, in-repo converter) before `$ref` resolution. Edge-heavy specs (unusual OAuth2 flows, vendor extensions) may still need fixes after conversion.
|
|
323
387
|
|
|
@@ -327,6 +391,14 @@ If the shell reports “command not found”, ensure the Python **Scripts** dire
|
|
|
327
391
|
|
|
328
392
|
**db-to-md SQLite:** set **`database.type: sqlite`** and **`database.uri`** to a SQLAlchemy URL such as **`sqlite:///my.db`** or **`sqlite:////C:/data/my.db`**. The default SQLite catalog is **`main`**; packaged YAML that still has **`schema: public`** is normalized to **`main`** when the type is SQLite. CLI: **`--type sqlite`**. Stored routines, sequences, and partitions are not used by SQLite and stay empty; tables, indexes, views, triggers, and ERD (via FK introspection) follow the same export path as other SQL engines.
|
|
329
393
|
|
|
394
|
+
**db-to-md SQL Server:** set **`database.type: mssql`** (aliases: `sqlserver`) and a **`mssql+pyodbc://`** URI with an ODBC driver query (for example `?driver=ODBC+Driver+18+for+SQL+Server`). Set **`database.schema`** to the SQL Server schema (default **`dbo`**). Optional features: **`synonyms`**, **`dependencies`** (lineage from `sys.sql_expression_dependencies`). Table/column/routine **MS_Description** extended properties are exported when present. Requires **`pyodbc`** (`mdengine[db]`).
|
|
395
|
+
|
|
396
|
+
**db-to-md Microsoft Access:** set **`database.type: access`** with a file path via **`mssql+pyodbc:///?odbc_connect=...`** (built automatically from uploads) or use **`POST /db-to-md/run/access`** / **`POST /db-to-md/job/access`** to upload **`.mdb` / `.accdb`** files (Windows + Microsoft Access ODBC driver). Saved **Query** objects are exported as views (SELECT) or query procedures (action queries). Requires **`pyodbc`** and an Access-compatible ODBC driver.
|
|
397
|
+
|
|
398
|
+
**db-to-md CLI validation:** **`md-db --test-connection`** (or **`mdengine db-to-md --test-connection`**) checks connectivity without exporting. **`--list-schemas`** prints schema/catalog names (`--output-format json` optional).
|
|
399
|
+
|
|
400
|
+
**db-to-md export manifest:** every run can write **`export_manifest.json`** at the output root (counts, file list, ERD paths). Control with **`output.write_manifest`** (default true). **`output.markdown_cross_links`** adds **Related** links between tables via foreign keys when using split files (default true).
|
|
401
|
+
|
|
330
402
|
**db-to-md API SQLite upload:** **`POST /db-to-md/run/sqlite`** — `multipart/form-data` with field **`file`** (the `.sqlite` / `.db` bytes; must start with the standard `SQLite format 3` header) and optional **`config`** (JSON string with the same shape as a normal run body minus `database`: `schema`, `output`, `features`, `execution`, `limits`, `erd`). Returns the metadata ZIP immediately. **`POST /db-to-md/job/sqlite`** — same form fields; saves the file under the job workspace and runs the existing job pipeline (`GET /db-to-md/job/{id}/download` when complete). Upload size cap: env **`DB_TO_MD_MAX_SQLITE_UPLOAD_MB`** (default **256**). Large ZIPs may still require the async job path if they exceed **`DB_TO_MD_MAX_SYNC_ZIP_MB`** on the sync upload route.
|
|
331
403
|
|
|
332
404
|
**graph-to-md (Neo4j + NetworkX):** library lives under [`md_generator/graph/`](src/md_generator/graph/). **Sources:** **`networkx`** (GraphML/GML via `graph.graph_file` or `--graph-file`) or **`neo4j`** (`graph.uri`, `graph.user`, `graph.password`, optional `graph.database` for `session(database=…)`). **Output layout:** by default **`output.combine_markdown: true`** writes **`nodes.md`**, **`relationship.md`**, and **`graph_summary.md`** (summary plus embedded nodes and relationships). Set **`combine_markdown: false`** or CLI **`--individual` / `--markdown-layout individual`** for per-entity files under **`nodes/`** and **`relationships/`**. **Diagrams:** **`viz.mermaid: true`** (default) writes **`graph/graph.mmd`** and embeds a fenced Mermaid block in the export **`README.md`** (no Graphviz required). **`viz.enabled: true`** or CLI **`--viz`** also writes **`graph/graph.dot`** and runs **`dot`** for PNG/SVG/PDF when Graphviz is on `PATH` (or **`GRAPHVIZ_DOT`**). CLI **`--no-mermaid`** disables Mermaid; **`--depth`**, **`--start-node`**, **`--max-nodes`**, **`--max-edges`** bound traversal. Packaged defaults: [`src/md_generator/graph/config/default.yaml`](src/md_generator/graph/config/default.yaml). Tests: **`graph-to-md/tests/`**; API image: [`graph-to-md/Dockerfile.api`](graph-to-md/Dockerfile.api).
|
|
@@ -350,6 +422,10 @@ md-url https://example.com/page ./page-bundle --artifact-layout
|
|
|
350
422
|
md-audio ./voice.mp3 ./voice.md --model tiny
|
|
351
423
|
md-video ./screen.mp4 ./screen.md --model base
|
|
352
424
|
pip install "mdengine[graph]" && md-graph --source neo4j --uri neo4j://localhost:7687 --user neo4j --password secret --database neo4j --output ./graph-out --viz
|
|
425
|
+
pip install "mdengine[playwright]" && playwright install chromium && md-playwright https://example.com/app ./spa-out
|
|
426
|
+
pip install "mdengine[openapi]" && md-openapi generate --file openapi.yaml --output ./openapi-md
|
|
427
|
+
pip install "mdengine[log]" && md-log --config log.yaml
|
|
428
|
+
md-codeflow scan ./src --output ./cf-out --lang python
|
|
353
429
|
```
|
|
354
430
|
|
|
355
431
|
**Windows PowerShell** (same commands; use backslashes for paths if you prefer)
|
|
@@ -362,6 +438,9 @@ md-audio .\voice.mp3 .\voice.md --model tiny
|
|
|
362
438
|
md-video .\screen.mp4 .\screen.md --model base
|
|
363
439
|
pip install "mdengine[graph]"
|
|
364
440
|
md-graph --source neo4j --uri neo4j://localhost:7687 --user neo4j --password secret --database neo4j --output .\graph-out --viz
|
|
441
|
+
pip install "mdengine[playwright]"
|
|
442
|
+
playwright install chromium
|
|
443
|
+
md-playwright https://example.com/app .\spa-out
|
|
365
444
|
```
|
|
366
445
|
|
|
367
446
|
**Windows CMD**
|
|
@@ -396,19 +475,19 @@ python pdf-to-md\converter.py input.pdf out.md
|
|
|
396
475
|
PYTHONPATH=src python pdf-to-md/converter.py input.pdf out.md
|
|
397
476
|
```
|
|
398
477
|
|
|
399
|
-
### 6. Convert every file in `
|
|
478
|
+
### 6. Convert every file in `example/` (strictly command-line)
|
|
400
479
|
|
|
401
|
-
To process **all supported files** under the [`
|
|
480
|
+
To process **all supported files** under the [`example/`](example/) folder using only the installed **`md-*`** tools (no Python snippets), use the batch driver:
|
|
402
481
|
|
|
403
482
|
| Platform | Command (run from **repository root** unless noted) |
|
|
404
483
|
|----------|------------------------------------------------------|
|
|
405
484
|
| Windows | `powershell -ExecutionPolicy Bypass -File scripts/run-docs-cli.ps1` |
|
|
406
|
-
| Windows | Or double-click / run [`
|
|
485
|
+
| Windows | Or double-click / run [`example/run-all-cli.cmd`](example/run-all-cli.cmd) (changes to repo root, then runs the script on `example\`) |
|
|
407
486
|
| macOS / Linux | `bash scripts/run-docs-cli.sh` |
|
|
408
487
|
|
|
409
488
|
Optional environment variables for the shell script: `DOCS_DIR`, `OUT_DIR`, `IMAGE_ENGINES` (default `tess`). PowerShell script parameters: `-DocsDir`, `-OutDir`, `-ImageEngines`.
|
|
410
489
|
|
|
411
|
-
Outputs are written to **`
|
|
490
|
+
Outputs are written to **`example/cli-output/<basename>/`** (one subfolder per input file). **`.csv`** files are converted with **`md-xlsx`** (same engine as Excel). **`.md`** files are skipped.
|
|
412
491
|
|
|
413
492
|
---
|
|
414
493
|
|
|
@@ -529,6 +608,113 @@ convert_zip(
|
|
|
529
608
|
|
|
530
609
|
`repo_root` on `ConvertOptions` is **deprecated and ignored**; converters are loaded in-process from `md_generator`.
|
|
531
610
|
|
|
611
|
+
### URL (HTML)
|
|
612
|
+
|
|
613
|
+
```python
|
|
614
|
+
from pathlib import Path
|
|
615
|
+
|
|
616
|
+
import httpx
|
|
617
|
+
from md_generator.url.convert_impl import run_single
|
|
618
|
+
from md_generator.url.options import ConvertOptions
|
|
619
|
+
|
|
620
|
+
with httpx.Client(follow_redirects=True, timeout=30.0) as client:
|
|
621
|
+
run_single(
|
|
622
|
+
"https://example.com/",
|
|
623
|
+
Path("web-out"),
|
|
624
|
+
ConvertOptions(artifact_layout=True, verbose=False),
|
|
625
|
+
client,
|
|
626
|
+
)
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
See [url-to-md/README.md](url-to-md/README.md) for crawl modes, post-convert assets, and API bodies.
|
|
630
|
+
|
|
631
|
+
### Playwright (SPA)
|
|
632
|
+
|
|
633
|
+
```python
|
|
634
|
+
import asyncio
|
|
635
|
+
from pathlib import Path
|
|
636
|
+
|
|
637
|
+
from md_generator.playwright.options import PlaywrightOptions
|
|
638
|
+
from md_generator.playwright.pipeline import convert_url_to_md
|
|
639
|
+
|
|
640
|
+
async def main() -> None:
|
|
641
|
+
await convert_url_to_md(
|
|
642
|
+
"https://example.com/app",
|
|
643
|
+
Path("spa-out"),
|
|
644
|
+
PlaywrightOptions(),
|
|
645
|
+
)
|
|
646
|
+
|
|
647
|
+
asyncio.run(main())
|
|
648
|
+
```
|
|
649
|
+
|
|
650
|
+
Install browsers once: `playwright install chromium`.
|
|
651
|
+
|
|
652
|
+
### Database metadata (db-to-md)
|
|
653
|
+
|
|
654
|
+
```python
|
|
655
|
+
from pathlib import Path
|
|
656
|
+
|
|
657
|
+
from md_generator.db.core.extractor import extract_to_markdown
|
|
658
|
+
from md_generator.db.core.run_config import load_run_config
|
|
659
|
+
|
|
660
|
+
cfg = load_run_config(Path("db-export.yaml"))
|
|
661
|
+
extract_to_markdown(cfg)
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
YAML shape and ERD options are covered above under **db-to-md** CLI notes.
|
|
665
|
+
|
|
666
|
+
### Graph (Neo4j / NetworkX)
|
|
667
|
+
|
|
668
|
+
```python
|
|
669
|
+
from pathlib import Path
|
|
670
|
+
|
|
671
|
+
from md_generator.graph.core.extractor import extract_to_markdown
|
|
672
|
+
from md_generator.graph.core.run_config import load_graph_run_config
|
|
673
|
+
|
|
674
|
+
cfg = load_graph_run_config(Path("graph-export.yaml"))
|
|
675
|
+
extract_to_markdown(cfg)
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
### OpenAPI → Markdown
|
|
679
|
+
|
|
680
|
+
```python
|
|
681
|
+
from pathlib import Path
|
|
682
|
+
|
|
683
|
+
from md_generator.openapi.core.extractor import extract_to_markdown
|
|
684
|
+
from md_generator.openapi.core.run_config import ApiRunConfig
|
|
685
|
+
|
|
686
|
+
cfg = ApiRunConfig(file=Path("openapi.yaml"), output_path=Path("api-md"))
|
|
687
|
+
extract_to_markdown(cfg)
|
|
688
|
+
```
|
|
689
|
+
|
|
690
|
+
Use `load_api_run_config(Path("openapi-md.yaml"))` when you prefer a single YAML file for input/output/format defaults.
|
|
691
|
+
|
|
692
|
+
### Log files (log-to-md)
|
|
693
|
+
|
|
694
|
+
```python
|
|
695
|
+
from pathlib import Path
|
|
696
|
+
|
|
697
|
+
from md_generator.log.core.extractor import extract_to_markdown
|
|
698
|
+
from md_generator.log.core.run_config import load_run_config as load_log_run_config
|
|
699
|
+
|
|
700
|
+
cfg = load_log_run_config(Path("log-export.yaml"))
|
|
701
|
+
extract_to_markdown(cfg)
|
|
702
|
+
```
|
|
703
|
+
|
|
704
|
+
### Codeflow (static call graphs)
|
|
705
|
+
|
|
706
|
+
```python
|
|
707
|
+
from pathlib import Path
|
|
708
|
+
|
|
709
|
+
from md_generator.codeflow.core.extractor import run_scan
|
|
710
|
+
from md_generator.codeflow.core.run_config import ScanConfig
|
|
711
|
+
|
|
712
|
+
cfg = ScanConfig(project_root=Path("my-service/src"), output_path=Path("codeflow-out"), languages="java")
|
|
713
|
+
run_scan(cfg)
|
|
714
|
+
```
|
|
715
|
+
|
|
716
|
+
More flags and language notes: [Development](#development) (section **Codeflow**) and [`codeflow-to-md/docs/graph-and-outputs.md`](codeflow-to-md/docs/graph-and-outputs.md).
|
|
717
|
+
|
|
532
718
|
---
|
|
533
719
|
|
|
534
720
|
## Audio and video to Markdown
|
|
@@ -645,7 +831,7 @@ Equivalent modules: `python -m md_generator.media.audio.api.mcp_server`, `python
|
|
|
645
831
|
|
|
646
832
|
### Thin shims (repo clone)
|
|
647
833
|
|
|
648
|
-
[`audio-to-md/converter.py`](audio-to-md/converter.py), [`video-to-md/converter.py`](video-to-md/converter.py), and [`youtube-to-md/converter.py`](youtube-to-md/converter.py) delegate to the same `main` as `md-audio` / `md-video` / `md-youtube`. Tests and `pytest.ini` live under `audio-to-md/tests/`, `video-to-md/tests/`, and `youtube-to-md/tests/`. [`db-to-md/converter.py`](db-to-md/converter.py) delegates to `md-db`; tests live under `db-to-md/tests/`. **graph-to-md** uses `md-graph` / `mdengine graph-to-md` directly (no thin `converter.py` shim); tests live under [`graph-to-md/tests/`](graph-to-md/tests/). [`openapi-to-md/converter.py`](openapi-to-md/converter.py) delegates to `md-openapi`; tests live under [`openapi-to-md/tests/`](openapi-to-md/tests/); example OpenAPI and output notes: [`openapi-to-md/examples/`](openapi-to-md/examples/).
|
|
834
|
+
[`audio-to-md/converter.py`](audio-to-md/converter.py), [`video-to-md/converter.py`](video-to-md/converter.py), and [`youtube-to-md/converter.py`](youtube-to-md/converter.py) delegate to the same `main` as `md-audio` / `md-video` / `md-youtube`. Tests and `pytest.ini` live under `audio-to-md/tests/`, `video-to-md/tests/`, and `youtube-to-md/tests/`. [`db-to-md/converter.py`](db-to-md/converter.py) delegates to `md-db`; tests live under `db-to-md/tests/`. **graph-to-md** uses `md-graph` / `mdengine graph-to-md` directly (no thin `converter.py` shim); tests live under [`graph-to-md/tests/`](graph-to-md/tests/). [`openapi-to-md/converter.py`](openapi-to-md/converter.py) delegates to `md-openapi`; tests live under [`openapi-to-md/tests/`](openapi-to-md/tests/); example OpenAPI and output notes: [`openapi-to-md/examples/`](openapi-to-md/examples/). [`log-to-md/converter.py`](log-to-md/converter.py) delegates to `md-log`; tests under [`log-to-md/tests/`](log-to-md/tests/). [`codeflow-to-md/converter.py`](codeflow-to-md/converter.py) invokes the same CLI entrypoint as `md-codeflow` / `codeflow`; tests under [`codeflow-to-md/tests/`](codeflow-to-md/tests/). [`url-to-md/converter.py`](url-to-md/converter.py) matches `md-url`; tests under [`url-to-md/tests/`](url-to-md/tests/). [`playwright-to-md/tests/`](playwright-to-md/tests/) cover the Playwright pipeline (no root `converter.py` shim required).
|
|
649
835
|
|
|
650
836
|
---
|
|
651
837
|
|
|
@@ -681,23 +867,28 @@ Install `mdengine[api]` plus the format extra(s), then run the **`app`** object
|
|
|
681
867
|
| Audio (Whisper) | `md_generator.media.audio.api.main:create_app` (use **`--factory`**) or `…main:app` | `audio`, `api`, `mcp` |
|
|
682
868
|
| Video (Whisper) | `md_generator.media.video.api.main:create_app` (use **`--factory`**) or `…main:app` | `video`, `api`, `mcp` |
|
|
683
869
|
| YouTube | `md_generator.media.youtube.api.main:create_app` (use **`--factory`**) or `…main:app` | `youtube`, `api`, `mcp` |
|
|
870
|
+
| Codeflow (workspace scans) | `md_generator.codeflow.api.main:app` | `codeflow`, `api`, `mcp` |
|
|
871
|
+
| Log files → Markdown | `md_generator.log.api.main:app` | `log`, `api`, `mcp` |
|
|
684
872
|
|
|
685
|
-
Examples:
|
|
873
|
+
Examples (ports are **illustrative** so several services can run together; each `md-*-api` / `run` module has its own **default** — set `*_PORT` / `*_API_PORT` env vars to match your layout):
|
|
686
874
|
|
|
687
875
|
```bash
|
|
688
876
|
uvicorn md_generator.pdf.api.main:app --host 127.0.0.1 --port 8001
|
|
689
877
|
uvicorn md_generator.word.api.main:app --host 127.0.0.1 --port 8002
|
|
690
|
-
uvicorn md_generator.archive.api.main:app --host 127.0.0.1 --port
|
|
691
|
-
uvicorn md_generator.url.api.main:app --host 127.0.0.1 --port
|
|
878
|
+
uvicorn md_generator.archive.api.main:app --host 127.0.0.1 --port 8008
|
|
879
|
+
uvicorn md_generator.url.api.main:app --host 127.0.0.1 --port 8017
|
|
880
|
+
uvicorn md_generator.db.api.main:app --host 127.0.0.1 --port 8010
|
|
692
881
|
uvicorn md_generator.playwright.api.main:app --host 127.0.0.1 --port 8014
|
|
693
|
-
uvicorn md_generator.graph.api.main:app --host 127.0.0.1 --port
|
|
882
|
+
uvicorn md_generator.graph.api.main:app --host 127.0.0.1 --port 8020
|
|
694
883
|
uvicorn md_generator.openapi.api.main:app --host 127.0.0.1 --port 8015
|
|
884
|
+
uvicorn md_generator.codeflow.api.main:app --host 127.0.0.1 --port 8016
|
|
885
|
+
uvicorn md_generator.log.api.main:app --host 127.0.0.1 --port 8018
|
|
695
886
|
uvicorn md_generator.media.audio.api.main:create_app --factory --host 127.0.0.1 --port 8011
|
|
696
887
|
uvicorn md_generator.media.video.api.main:create_app --factory --host 127.0.0.1 --port 8012
|
|
697
888
|
uvicorn md_generator.media.youtube.api.main:create_app --factory --host 127.0.0.1 --port 8013
|
|
698
889
|
```
|
|
699
890
|
|
|
700
|
-
**Port note:** **`md-graph-api
|
|
891
|
+
**Port note:** **`md-graph-api`**, **`md-video-api`**, and **`md-log-api`** all default to **8012** in their respective `run.py` modules. Run only one on that port, or set **`GRAPH_TO_MD_PORT`**, **`MD_VIDEO_API_PORT`**, and **`LOG_TO_MD_PORT`** so each process listens on a unique port. **`md-db-api`** defaults to **8010** (not shown colliding with the archive example above, which uses **8008** on purpose). **`md-openapi-api`** defaults to **8015** (`OPENAPI_TO_MD_PORT`). **`md-youtube-api`** defaults to **8013**; **`md-playwright-api`** / **`PLAYWRIGHT_TO_MD_API_PORT`** default to **8014**. **`md-codeflow-api`** defaults to **8016** (`CODEFLOW_TO_MD_PORT`).
|
|
701
892
|
|
|
702
893
|
### MCP over HTTP on the same server
|
|
703
894
|
|
|
@@ -720,6 +911,8 @@ Prefixes differ per service (often read from a `.env` file next to the process):
|
|
|
720
911
|
| Database metadata | `DB_TO_MD_` | `DB_TO_MD_JOB_SQLITE_PATH`, `DB_TO_MD_JOB_WORKSPACE_ROOT`, `DB_TO_MD_CORS_ORIGINS`, `DB_TO_MD_MAX_SYNC_ZIP_MB`, `DB_TO_MD_HOST`, `DB_TO_MD_PORT` (default **8010**) |
|
|
721
912
|
| Graph metadata | `GRAPH_TO_MD_` | `GRAPH_TO_MD_JOB_SQLITE_PATH`, `GRAPH_TO_MD_JOB_WORKSPACE_ROOT`, `GRAPH_TO_MD_CORS_ORIGINS`, `GRAPH_TO_MD_MAX_SYNC_ZIP_MB`, `GRAPH_TO_MD_HOST`, `GRAPH_TO_MD_PORT` (default **8012**) |
|
|
722
913
|
| OpenAPI → Markdown | `OPENAPI_TO_MD_` | `OPENAPI_TO_MD_CORS_ORIGINS`, `OPENAPI_TO_MD_MAX_SYNC_ZIP_MB`, `OPENAPI_TO_MD_HOST`, `OPENAPI_TO_MD_PORT` (default **8015**) |
|
|
914
|
+
| Codeflow API | `CODEFLOW_TO_MD_` / `CODEFLOW_` | `CODEFLOW_TO_MD_HOST`, `CODEFLOW_TO_MD_PORT` (default **8016**); in-app limits: `CODEFLOW_MAX_UPLOAD_ZIP_MB`, `CODEFLOW_MAX_SYNC_ZIP_MB`, `CODEFLOW_JOB_WORKSPACE_ROOT`, `CODEFLOW_SQLITE_PATH`, CORS via `CODEFLOW_CORS` |
|
|
915
|
+
| Log API | `LOG_TO_MD_` | `LOG_TO_MD_HOST`, `LOG_TO_MD_PORT` (default **8012** — change if **graph** or **video** API uses that port), `LOG_TO_MD_CORS_ORIGINS`, `LOG_TO_MD_MAX_SYNC_ZIP_MB`, `LOG_TO_MD_MAX_LOG_UPLOAD_MB`, workspace / SQLite paths |
|
|
723
916
|
| Audio API | `MD_AUDIO_` | `MD_AUDIO_MAX_UPLOAD_MB`, `MD_AUDIO_MAX_SYNC_UPLOAD_MB`, `MD_AUDIO_JOB_TTL_SECONDS`, `MD_AUDIO_TEMP_DIR`, `MD_AUDIO_CORS_ORIGINS`, `MD_AUDIO_API_HOST`, `MD_AUDIO_API_PORT` |
|
|
724
917
|
| Video API | `MD_VIDEO_` | Same pattern as audio with `MD_VIDEO_*` (defaults: larger upload/sync caps, port **8012**) |
|
|
725
918
|
| YouTube API | `MD_YOUTUBE_` | `MD_YOUTUBE_JOB_TTL_SECONDS`, `MD_YOUTUBE_TEMP_DIR`, `MD_YOUTUBE_CORS_ORIGINS`, `MD_YOUTUBE_API_HOST`, `MD_YOUTUBE_API_PORT` (default **8013**); optional `MD_YOUTUBE_YTDLP` path for audio fallback |
|
|
@@ -746,13 +939,15 @@ Two usage patterns:
|
|
|
746
939
|
| PPTX | `python -m md_generator.ppt.api.mcp_server` (see module docstring for flags) |
|
|
747
940
|
| Image | `python -m md_generator.image.api.mcp_server` (see module for CLI) |
|
|
748
941
|
| URL / HTML | `python -m md_generator.url.api.mcp_server` / `--transport sse` / `--transport streamable-http` |
|
|
749
|
-
| Playwright / SPA | `md-playwright-mcp
|
|
942
|
+
| Playwright / SPA | `md-playwright`, `md-playwright-api`, `md-playwright-mcp`, or `python -m md_generator.playwright.api.mcp_server` / `--transport sse` / `--transport streamable-http` |
|
|
750
943
|
| Audio | `md-audio-mcp` or `python -m md_generator.media.audio.api.mcp_server` — `--transport stdio` (default), `sse`, `streamable-http` |
|
|
751
944
|
| Video | `md-video-mcp` or `python -m md_generator.media.video.api.mcp_server` — same transports |
|
|
752
945
|
| YouTube | `md-youtube-mcp` or `python -m md_generator.media.youtube.api.mcp_server` — same transports |
|
|
753
946
|
| Database metadata | `md-db-mcp` or `python -m md_generator.db.api.mcp_server` — `--transport stdio` (default), `sse`, `streamable-http` |
|
|
754
947
|
| Graph (Neo4j / NetworkX) | `md-graph-mcp` or `python -m md_generator.graph.api.mcp_server` — `--transport stdio` (default), `sse`, `streamable-http` |
|
|
755
948
|
| OpenAPI → Markdown | `md-openapi-mcp` or `python -m md_generator.openapi.api.mcp_server` — `--transport stdio` (default), `sse`, `streamable-http` |
|
|
949
|
+
| Codeflow | `md-codeflow-mcp` or `python -m md_generator.codeflow.api.mcp_server` — **stdio** MCP (see module for details) |
|
|
950
|
+
| Log files | `md-log-mcp` or `python -m md_generator.log.api.mcp_server` — `--transport stdio` (default), `sse`, `streamable-http` |
|
|
756
951
|
|
|
757
952
|
**Word** and **XLSX** also ship a small runner script in the repo:
|
|
758
953
|
|
|
@@ -881,7 +1076,9 @@ pip install -e ".[dev,all]" # or a smaller subset of extras
|
|
|
881
1076
|
python -m pytest
|
|
882
1077
|
```
|
|
883
1078
|
|
|
884
|
-
Tests live under each legacy folder’s `tests/` directory (e.g. `pdf-to-md/tests/`), **`graph-to-md/tests/`**, **`openapi-to-md/tests/`**, and **[`tool-assistant/tests/`](tool-assistant/tests/)** for the skill SDK; `pyproject.toml` sets `pythonpath = ["src"]` so **`md_generator`** (including **`md_generator.tools.assistant`**) resolves without a manual `PYTHONPATH` when you use `pytest` from the config.
|
|
1079
|
+
Tests live under each legacy folder’s `tests/` directory (e.g. `pdf-to-md/tests/`), plus **`url-to-md/tests/`**, **`playwright-to-md/tests/`**, **`youtube-to-md/tests/`**, **`graph-to-md/tests/`**, **`openapi-to-md/tests/`**, **`codeflow-to-md/tests/`**, **`log-to-md/tests/`**, and **[`tool-assistant/tests/`](tool-assistant/tests/)** for the skill SDK; `pyproject.toml` sets `pythonpath = ["src"]` so **`md_generator`** (including **`md_generator.tools.assistant`**) resolves without a manual `PYTHONPATH` when you use `pytest` from the config.
|
|
1080
|
+
|
|
1081
|
+
**Docs site (maintainers):** install **`mdengine[docs]`**, then build or serve the MkDocs project from the repo root (`mkdocs.yml`). The published site URL is listed under **Documentation** in `[project.urls]` on PyPI ([GitHub Pages build](https://vishal7090.github.io/md-generator/)).
|
|
885
1082
|
|
|
886
1083
|
### Codeflow (`md_generator.codeflow`)
|
|
887
1084
|
|
|
@@ -913,6 +1110,8 @@ python -m md_generator.codeflow.cli.main scan path/to/src --output ./codeflow-ou
|
|
|
913
1110
|
| Path | Role |
|
|
914
1111
|
|------|------|
|
|
915
1112
|
| `LICENSE` | MIT license text |
|
|
1113
|
+
| `docs/` | **MkDocs** source (module guides, `index.md`); build with **`mdengine[docs]`** |
|
|
1114
|
+
| `mkdocs.yml` | MkDocs configuration |
|
|
916
1115
|
| `CODE_OF_CONDUCT.md` | [Contributor Covenant](https://www.contributor-covenant.org/) 2.1 |
|
|
917
1116
|
| `src/md_generator/` | **Library source** (all formats + `api` subpackages); **audio/video** under [`media/audio/`](src/md_generator/media/audio/) and [`media/video/`](src/md_generator/media/video/); **graph-to-md** under [`graph/`](src/md_generator/graph/) |
|
|
918
1117
|
| `pyproject.toml` | Packaging, extras, CLI entry points, pytest |
|