mdengine 0.9.0__tar.gz → 0.11.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (751) hide show
  1. {mdengine-0.9.0 → mdengine-0.11.0}/PKG-INFO +199 -11
  2. {mdengine-0.9.0 → mdengine-0.11.0}/README.md +169 -10
  3. {mdengine-0.9.0 → mdengine-0.11.0}/pyproject.toml +41 -1
  4. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/__init__.py +1 -1
  5. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/archive/api/convert_runner.py +3 -3
  6. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/archive/api/main.py +15 -6
  7. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/archive/api/mcp_setup.py +10 -7
  8. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/archive/convert_impl.py +71 -118
  9. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/archive/converter.py +14 -8
  10. mdengine-0.11.0/src/md_generator/archive/extractors.py +304 -0
  11. mdengine-0.11.0/src/md_generator/core/__init__.py +15 -0
  12. mdengine-0.11.0/src/md_generator/core/artifacts/__init__.py +16 -0
  13. mdengine-0.11.0/src/md_generator/core/artifacts/mdaf_validate.py +35 -0
  14. mdengine-0.11.0/src/md_generator/core/artifacts/models.py +60 -0
  15. mdengine-0.11.0/src/md_generator/core/artifacts/serialize.py +59 -0
  16. mdengine-0.11.0/src/md_generator/core/schema/__init__.py +3 -0
  17. mdengine-0.11.0/src/md_generator/core/schema/adapters/__init__.py +1 -0
  18. mdengine-0.11.0/src/md_generator/core/schema/adapters/log_record.py +24 -0
  19. mdengine-0.11.0/src/md_generator/core/schema/adapters/otel.py +31 -0
  20. mdengine-0.11.0/src/md_generator/core/schema/telemetry_event.py +15 -0
  21. mdengine-0.11.0/src/md_generator/core/schema/validation.py +16 -0
  22. mdengine-0.11.0/src/md_generator/db/adapters/access_adapter.py +143 -0
  23. mdengine-0.11.0/src/md_generator/db/adapters/access_introspect.py +122 -0
  24. mdengine-0.11.0/src/md_generator/db/adapters/access_odbc.py +108 -0
  25. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/adapters/factory.py +10 -0
  26. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/adapters/mysql_adapter.py +14 -0
  27. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/adapters/postgres_adapter.py +14 -0
  28. mdengine-0.11.0/src/md_generator/db/adapters/sqlserver_adapter.py +323 -0
  29. mdengine-0.11.0/src/md_generator/db/api/access_upload.py +89 -0
  30. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/api/main.py +82 -0
  31. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/api/schemas.py +5 -1
  32. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/api/settings.py +1 -0
  33. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/api/sqlite_upload.py +4 -0
  34. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/cli/main.py +28 -1
  35. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/core/base_adapter.py +11 -0
  36. mdengine-0.11.0/src/md_generator/db/core/cli_ops.py +57 -0
  37. mdengine-0.11.0/src/md_generator/db/core/export_manifest.py +65 -0
  38. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/core/extractor.py +74 -9
  39. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/core/job_manager.py +45 -13
  40. mdengine-0.11.0/src/md_generator/db/core/link_graph.py +69 -0
  41. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/core/markdown_writer.py +55 -7
  42. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/core/models.py +21 -0
  43. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/core/run_config.py +14 -0
  44. mdengine-0.11.0/src/md_generator/distributed/__init__.py +5 -0
  45. mdengine-0.11.0/src/md_generator/distributed/merge.py +21 -0
  46. mdengine-0.11.0/src/md_generator/distributed/partition.py +12 -0
  47. mdengine-0.11.0/src/md_generator/distributed/worker_pool.py +43 -0
  48. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/engine_cli.py +24 -2
  49. mdengine-0.11.0/src/md_generator/governance/__init__.py +11 -0
  50. mdengine-0.11.0/src/md_generator/governance/audit.py +13 -0
  51. mdengine-0.11.0/src/md_generator/governance/classification.py +31 -0
  52. mdengine-0.11.0/src/md_generator/governance/lineage.py +34 -0
  53. mdengine-0.11.0/src/md_generator/governance/retention.py +7 -0
  54. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/api/schemas.py +24 -53
  55. mdengine-0.11.0/src/md_generator/log/chunking/__init__.py +4 -0
  56. mdengine-0.11.0/src/md_generator/log/chunking/artifact_adapter.py +20 -0
  57. mdengine-0.11.0/src/md_generator/log/chunking/chunk_engine.py +23 -0
  58. mdengine-0.11.0/src/md_generator/log/chunking/chunk_models.py +14 -0
  59. mdengine-0.11.0/src/md_generator/log/chunking/chunk_registry.py +144 -0
  60. mdengine-0.11.0/src/md_generator/log/chunking/chunk_strategy.py +20 -0
  61. mdengine-0.11.0/src/md_generator/log/cli/main.py +147 -0
  62. mdengine-0.11.0/src/md_generator/log/config/default.yaml +138 -0
  63. mdengine-0.11.0/src/md_generator/log/config/preset_loader.py +85 -0
  64. mdengine-0.11.0/src/md_generator/log/config/presets/json.yaml +4 -0
  65. mdengine-0.11.0/src/md_generator/log/config/presets/logback.yaml +5 -0
  66. mdengine-0.11.0/src/md_generator/log/config/schemas.py +262 -0
  67. mdengine-0.11.0/src/md_generator/log/core/pipeline.py +392 -0
  68. mdengine-0.11.0/src/md_generator/log/core/plugins.py +80 -0
  69. mdengine-0.11.0/src/md_generator/log/core/run_config.py +270 -0
  70. mdengine-0.11.0/src/md_generator/log/correlation/correlation_engine.py +51 -0
  71. mdengine-0.11.0/src/md_generator/log/correlation/correlation_models.py +31 -0
  72. mdengine-0.11.0/src/md_generator/log/correlation/correlation_scoring.py +33 -0
  73. mdengine-0.11.0/src/md_generator/log/correlation/cross_source.py +69 -0
  74. mdengine-0.11.0/src/md_generator/log/correlation/request_parser.py +12 -0
  75. mdengine-0.11.0/src/md_generator/log/correlation/session_parser.py +10 -0
  76. mdengine-0.11.0/src/md_generator/log/correlation/trace_parser.py +12 -0
  77. mdengine-0.11.0/src/md_generator/log/documentation/__init__.py +9 -0
  78. mdengine-0.11.0/src/md_generator/log/documentation/incident_summary.py +19 -0
  79. mdengine-0.11.0/src/md_generator/log/documentation/service_report.py +19 -0
  80. mdengine-0.11.0/src/md_generator/log/documentation/troubleshooting.py +15 -0
  81. mdengine-0.11.0/src/md_generator/log/embeddings/embedding_exporter.py +38 -0
  82. mdengine-0.11.0/src/md_generator/log/embeddings/exporters/chroma_exporter.py +11 -0
  83. mdengine-0.11.0/src/md_generator/log/embeddings/exporters/faiss_exporter.py +10 -0
  84. mdengine-0.11.0/src/md_generator/log/embeddings/exporters/jsonl_exporter.py +15 -0
  85. mdengine-0.11.0/src/md_generator/log/embeddings/exporters/parquet_exporter.py +20 -0
  86. mdengine-0.11.0/src/md_generator/log/incidents/__init__.py +4 -0
  87. mdengine-0.11.0/src/md_generator/log/incidents/artifact_adapter.py +27 -0
  88. mdengine-0.11.0/src/md_generator/log/incidents/fingerprinting.py +33 -0
  89. mdengine-0.11.0/src/md_generator/log/incidents/grouping.py +23 -0
  90. mdengine-0.11.0/src/md_generator/log/incidents/incident_engine.py +82 -0
  91. mdengine-0.11.0/src/md_generator/log/incidents/models.py +49 -0
  92. mdengine-0.11.0/src/md_generator/log/incidents/severity.py +21 -0
  93. mdengine-0.11.0/src/md_generator/log/incremental/__init__.py +11 -0
  94. mdengine-0.11.0/src/md_generator/log/incremental/checkpoint.py +38 -0
  95. mdengine-0.11.0/src/md_generator/log/incremental/engine.py +34 -0
  96. mdengine-0.11.0/src/md_generator/log/incremental/resume_reader.py +41 -0
  97. mdengine-0.11.0/src/md_generator/log/ingestion/archive_bridge.py +52 -0
  98. mdengine-0.11.0/src/md_generator/log/ingestion/batch_reader.py +45 -0
  99. mdengine-0.11.0/src/md_generator/log/intelligence/anomaly_detection.py +8 -0
  100. mdengine-0.11.0/src/md_generator/log/intelligence/dependency_analysis.py +12 -0
  101. mdengine-0.11.0/src/md_generator/log/intelligence/heuristics.py +15 -0
  102. mdengine-0.11.0/src/md_generator/log/intelligence/root_cause_engine.py +47 -0
  103. mdengine-0.11.0/src/md_generator/log/knowledge_graph/graph_builder.py +18 -0
  104. mdengine-0.11.0/src/md_generator/log/knowledge_graph/graph_exporter.py +28 -0
  105. mdengine-0.11.0/src/md_generator/log/knowledge_graph/graph_models.py +17 -0
  106. mdengine-0.11.0/src/md_generator/log/knowledge_graph/relation_extractor.py +34 -0
  107. mdengine-0.11.0/src/md_generator/log/linking/__init__.py +3 -0
  108. mdengine-0.11.0/src/md_generator/log/linking/link_graph.py +62 -0
  109. mdengine-0.11.0/src/md_generator/log/markdown_intelligence/__init__.py +4 -0
  110. mdengine-0.11.0/src/md_generator/log/markdown_intelligence/aliases.py +13 -0
  111. mdengine-0.11.0/src/md_generator/log/markdown_intelligence/backlinks.py +26 -0
  112. mdengine-0.11.0/src/md_generator/log/markdown_intelligence/cross_refs.py +11 -0
  113. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/mcp/server.py +32 -0
  114. mdengine-0.11.0/src/md_generator/log/noise_reduction/__init__.py +3 -0
  115. mdengine-0.11.0/src/md_generator/log/noise_reduction/dedupe.py +22 -0
  116. mdengine-0.11.0/src/md_generator/log/noise_reduction/entropy.py +15 -0
  117. mdengine-0.11.0/src/md_generator/log/noise_reduction/filter.py +26 -0
  118. mdengine-0.11.0/src/md_generator/log/parser/json_line_parser.py +59 -0
  119. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/parser/multiline_parser.py +12 -1
  120. mdengine-0.11.0/src/md_generator/log/parser/parser_registry.py +71 -0
  121. mdengine-0.11.0/src/md_generator/log/search/bm25_search.py +38 -0
  122. mdengine-0.11.0/src/md_generator/log/search/cli.py +25 -0
  123. mdengine-0.11.0/src/md_generator/log/search/hybrid_search.py +13 -0
  124. mdengine-0.11.0/src/md_generator/log/search/search_index.py +12 -0
  125. mdengine-0.11.0/src/md_generator/log/search/vector_search.py +8 -0
  126. mdengine-0.11.0/src/md_generator/log/streaming/__init__.py +3 -0
  127. mdengine-0.11.0/src/md_generator/log/streaming/kafka_reader.py +39 -0
  128. mdengine-0.11.0/src/md_generator/log/streaming/redis_reader.py +40 -0
  129. mdengine-0.11.0/src/md_generator/log/streaming/stdin_reader.py +9 -0
  130. mdengine-0.11.0/src/md_generator/log/streaming/stream_coordinator.py +44 -0
  131. mdengine-0.11.0/src/md_generator/log/streaming/tail_reader.py +17 -0
  132. mdengine-0.11.0/src/md_generator/log/streaming/websocket_reader.py +38 -0
  133. mdengine-0.11.0/src/md_generator/log/timeline/causal_chain.py +15 -0
  134. mdengine-0.11.0/src/md_generator/log/timeline/ordering.py +12 -0
  135. mdengine-0.11.0/src/md_generator/log/timeline/timeline_engine.py +25 -0
  136. mdengine-0.11.0/src/md_generator/log/timeline/timeline_models.py +14 -0
  137. mdengine-0.11.0/src/md_generator/log/topology/__init__.py +3 -0
  138. mdengine-0.11.0/src/md_generator/log/topology/discovery.py +57 -0
  139. mdengine-0.11.0/src/md_generator/log/visualization/__init__.py +4 -0
  140. mdengine-0.11.0/src/md_generator/log/visualization/mermaid_sequence.py +21 -0
  141. mdengine-0.11.0/src/md_generator/log/visualization/mermaid_timeline.py +21 -0
  142. mdengine-0.11.0/src/md_generator/log/visualization/mermaid_topology.py +24 -0
  143. mdengine-0.11.0/src/md_generator/log/writers/chunk_writer.py +56 -0
  144. mdengine-0.11.0/src/md_generator/log/writers/correlation_writer.py +29 -0
  145. mdengine-0.11.0/src/md_generator/log/writers/frontmatter_writer.py +46 -0
  146. mdengine-0.11.0/src/md_generator/log/writers/incident_writer.py +67 -0
  147. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/writers/markdown_writer.py +0 -4
  148. mdengine-0.11.0/src/md_generator/otel/__init__.py +1 -0
  149. mdengine-0.11.0/src/md_generator/otel/cli/__init__.py +0 -0
  150. mdengine-0.11.0/src/md_generator/otel/cli/main.py +34 -0
  151. mdengine-0.11.0/src/md_generator/otel/otel_logs.py +22 -0
  152. mdengine-0.11.0/src/md_generator/otel/otel_metrics.py +12 -0
  153. mdengine-0.11.0/src/md_generator/otel/otel_models.py +20 -0
  154. mdengine-0.11.0/src/md_generator/otel/otel_parser.py +22 -0
  155. mdengine-0.11.0/src/md_generator/otel/otel_spans.py +26 -0
  156. mdengine-0.11.0/src/md_generator/runtime/__init__.py +4 -0
  157. mdengine-0.11.0/src/md_generator/runtime/execution_context.py +13 -0
  158. mdengine-0.11.0/src/md_generator/runtime/metrics.py +27 -0
  159. mdengine-0.11.0/src/md_generator/runtime/stage_engine.py +25 -0
  160. mdengine-0.11.0/src/md_generator/sap/__init__.py +17 -0
  161. mdengine-0.11.0/src/md_generator/sap/analyzer/authorization/extractor.py +24 -0
  162. mdengine-0.11.0/src/md_generator/sap/analyzer/governance/classifier.py +52 -0
  163. mdengine-0.11.0/src/md_generator/sap/analyzer/lineage/builder.py +39 -0
  164. mdengine-0.11.0/src/md_generator/sap/analyzer/relationships/engine.py +35 -0
  165. mdengine-0.11.0/src/md_generator/sap/analyzer/semantics/entity_mapper.py +20 -0
  166. mdengine-0.11.0/src/md_generator/sap/analyzer/validation/extractor.py +35 -0
  167. mdengine-0.11.0/src/md_generator/sap/api/main.py +85 -0
  168. mdengine-0.11.0/src/md_generator/sap/api/mcp_server.py +16 -0
  169. mdengine-0.11.0/src/md_generator/sap/api/run.py +15 -0
  170. mdengine-0.11.0/src/md_generator/sap/api/schemas.py +47 -0
  171. mdengine-0.11.0/src/md_generator/sap/api/settings.py +31 -0
  172. mdengine-0.11.0/src/md_generator/sap/api/zip_export.py +25 -0
  173. mdengine-0.11.0/src/md_generator/sap/cli/main.py +125 -0
  174. mdengine-0.11.0/src/md_generator/sap/config/default.yaml +62 -0
  175. mdengine-0.11.0/src/md_generator/sap/core/__init__.py +1 -0
  176. mdengine-0.11.0/src/md_generator/sap/core/cache.py +51 -0
  177. mdengine-0.11.0/src/md_generator/sap/core/errors.py +17 -0
  178. mdengine-0.11.0/src/md_generator/sap/core/export_manifest.py +48 -0
  179. mdengine-0.11.0/src/md_generator/sap/core/extractor.py +18 -0
  180. mdengine-0.11.0/src/md_generator/sap/core/features.py +17 -0
  181. mdengine-0.11.0/src/md_generator/sap/core/job_manager.py +176 -0
  182. mdengine-0.11.0/src/md_generator/sap/core/link_graph.py +49 -0
  183. mdengine-0.11.0/src/md_generator/sap/core/run_config.py +151 -0
  184. mdengine-0.11.0/src/md_generator/sap/core/run_context.py +25 -0
  185. mdengine-0.11.0/src/md_generator/sap/graph/__init__.py +1 -0
  186. mdengine-0.11.0/src/md_generator/sap/graph/builder.py +97 -0
  187. mdengine-0.11.0/src/md_generator/sap/graph/exporters/__init__.py +1 -0
  188. mdengine-0.11.0/src/md_generator/sap/graph/exporters/json_export.py +13 -0
  189. mdengine-0.11.0/src/md_generator/sap/graph/exporters/mermaid_export.py +49 -0
  190. mdengine-0.11.0/src/md_generator/sap/graph/relations.py +15 -0
  191. mdengine-0.11.0/src/md_generator/sap/markdown/__init__.py +1 -0
  192. mdengine-0.11.0/src/md_generator/sap/markdown/builders/__init__.py +1 -0
  193. mdengine-0.11.0/src/md_generator/sap/markdown/builders/entity_builder.py +170 -0
  194. mdengine-0.11.0/src/md_generator/sap/markdown/builders/slug.py +11 -0
  195. mdengine-0.11.0/src/md_generator/sap/markdown/builders/writer.py +164 -0
  196. mdengine-0.11.0/src/md_generator/sap/markdown/chunking/chunk_strategy.py +98 -0
  197. mdengine-0.11.0/src/md_generator/sap/markdown/chunking/registry.py +22 -0
  198. mdengine-0.11.0/src/md_generator/sap/markdown/chunking/writer.py +51 -0
  199. mdengine-0.11.0/src/md_generator/sap/models/entities/__init__.py +4 -0
  200. mdengine-0.11.0/src/md_generator/sap/models/entities/kinds.py +19 -0
  201. mdengine-0.11.0/src/md_generator/sap/models/entities/sap_object.py +30 -0
  202. mdengine-0.11.0/src/md_generator/sap/models/metadata/__init__.py +14 -0
  203. mdengine-0.11.0/src/md_generator/sap/models/metadata/abap.py +62 -0
  204. mdengine-0.11.0/src/md_generator/sap/models/metadata/cds.py +46 -0
  205. mdengine-0.11.0/src/md_generator/sap/models/metadata/ddic.py +44 -0
  206. mdengine-0.11.0/src/md_generator/sap/orchestration/__init__.py +1 -0
  207. mdengine-0.11.0/src/md_generator/sap/orchestration/pipeline.py +195 -0
  208. mdengine-0.11.0/src/md_generator/sap/parser/__init__.py +1 -0
  209. mdengine-0.11.0/src/md_generator/sap/parser/abap/__init__.py +3 -0
  210. mdengine-0.11.0/src/md_generator/sap/parser/abap/lexer.py +82 -0
  211. mdengine-0.11.0/src/md_generator/sap/parser/abap/parser.py +159 -0
  212. mdengine-0.11.0/src/md_generator/sap/parser/bapi/parser.py +48 -0
  213. mdengine-0.11.0/src/md_generator/sap/parser/base.py +29 -0
  214. mdengine-0.11.0/src/md_generator/sap/parser/cds/parser.py +71 -0
  215. mdengine-0.11.0/src/md_generator/sap/parser/ddic/parser.py +94 -0
  216. mdengine-0.11.0/src/md_generator/sap/parser/discovery.py +49 -0
  217. mdengine-0.11.0/src/md_generator/sap/parser/idoc/parser.py +45 -0
  218. mdengine-0.11.0/src/md_generator/sap/parser/odata/parser.py +73 -0
  219. mdengine-0.11.0/src/md_generator/sap/parser/registry.py +79 -0
  220. mdengine-0.11.0/src/md_generator/sap/parser/rfc/__init__.py +1 -0
  221. mdengine-0.11.0/src/md_generator/sap/parser/transport/parser.py +56 -0
  222. mdengine-0.11.0/src/md_generator/sdk/__init__.py +3 -0
  223. mdengine-0.11.0/src/md_generator/sdk/classifier_plugin.py +8 -0
  224. mdengine-0.11.0/src/md_generator/sdk/discovery.py +20 -0
  225. mdengine-0.11.0/src/md_generator/sdk/enricher_plugin.py +3 -0
  226. mdengine-0.11.0/src/md_generator/sdk/parser_plugin.py +11 -0
  227. mdengine-0.11.0/src/md_generator/sdk/plugin_protocol.py +10 -0
  228. mdengine-0.11.0/src/md_generator/sdk/stage_protocol.py +30 -0
  229. mdengine-0.11.0/src/md_generator/sdk/writer_plugin.py +8 -0
  230. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/dependency-graph.json +6 -0
  231. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/registry.json +46 -3
  232. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/global-skill.md +3 -2
  233. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-archive/SKILL.md +1 -1
  234. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-codeflow/SKILL.md +4 -3
  235. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-db/SKILL.md +1 -1
  236. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-global/SKILL.md +2 -1
  237. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-graph/SKILL.md +1 -1
  238. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-image/SKILL.md +1 -1
  239. mdengine-0.11.0/src/md_generator/tools/assistant/data/skills/mdengine-ai-log/SKILL.md +76 -0
  240. mdengine-0.11.0/src/md_generator/tools/assistant/data/skills/mdengine-ai-log/references/example.md +43 -0
  241. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-media/SKILL.md +1 -1
  242. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-openapi/SKILL.md +1 -1
  243. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-pdf/SKILL.md +1 -1
  244. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-playwright/SKILL.md +1 -1
  245. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-ppt/SKILL.md +1 -1
  246. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-text/SKILL.md +4 -3
  247. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-url/SKILL.md +1 -1
  248. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-word/SKILL.md +1 -1
  249. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-xlsx/SKILL.md +1 -1
  250. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-reference/SKILL.md +1 -0
  251. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-reference/references/http-api-mcp.md +23 -1
  252. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/modules/codeflow.md +3 -2
  253. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/modules/text.md +3 -2
  254. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/skill_builder/generate.py +8 -0
  255. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/skill_builder/routing.py +7 -2
  256. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/post_convert_assets.py +8 -7
  257. {mdengine-0.9.0 → mdengine-0.11.0}/src/mdengine.egg-info/PKG-INFO +199 -11
  258. {mdengine-0.9.0 → mdengine-0.11.0}/src/mdengine.egg-info/SOURCES.txt +194 -0
  259. {mdengine-0.9.0 → mdengine-0.11.0}/src/mdengine.egg-info/entry_points.txt +4 -0
  260. {mdengine-0.9.0 → mdengine-0.11.0}/src/mdengine.egg-info/requires.txt +36 -0
  261. mdengine-0.9.0/src/md_generator/log/cli/main.py +0 -69
  262. mdengine-0.9.0/src/md_generator/log/config/default.yaml +0 -48
  263. mdengine-0.9.0/src/md_generator/log/config/schemas.py +0 -117
  264. mdengine-0.9.0/src/md_generator/log/core/pipeline.py +0 -180
  265. mdengine-0.9.0/src/md_generator/log/core/plugins.py +0 -34
  266. mdengine-0.9.0/src/md_generator/log/core/run_config.py +0 -160
  267. mdengine-0.9.0/src/md_generator/log/parser/parser_registry.py +0 -27
  268. mdengine-0.9.0/src/md_generator/log/writers/chunk_writer.py +0 -48
  269. mdengine-0.9.0/src/md_generator/log/writers/incident_writer.py +0 -42
  270. {mdengine-0.9.0 → mdengine-0.11.0}/LICENSE +0 -0
  271. {mdengine-0.9.0 → mdengine-0.11.0}/setup.cfg +0 -0
  272. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/archive/__init__.py +0 -0
  273. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/archive/api/__init__.py +0 -0
  274. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/archive/api/jobs.py +0 -0
  275. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/archive/api/mcp_server.py +0 -0
  276. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/archive/api/query_options.py +0 -0
  277. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/archive/api/settings.py +0 -0
  278. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/archive/options.py +0 -0
  279. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/__init__.py +0 -0
  280. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/analyzers/__init__.py +0 -0
  281. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/analyzers/flow_analyzer.py +0 -0
  282. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/api/__init__.py +0 -0
  283. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/api/job_manager.py +0 -0
  284. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/api/main.py +0 -0
  285. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/api/mcp_server.py +0 -0
  286. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/api/run.py +0 -0
  287. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/api/schemas.py +0 -0
  288. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/api/semantic_api.py +0 -0
  289. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/api/settings.py +0 -0
  290. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/api/sse.py +0 -0
  291. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/cli/__init__.py +0 -0
  292. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/cli/main.py +0 -0
  293. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/config/__init__.py +0 -0
  294. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/config/codeflow_yaml.py +0 -0
  295. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/core/__init__.py +0 -0
  296. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/core/cache_manager.py +0 -0
  297. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/core/extractor.py +0 -0
  298. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/core/run_config.py +0 -0
  299. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/detectors/__init__.py +0 -0
  300. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/detectors/api_detector.py +0 -0
  301. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/detectors/entry_detector.py +0 -0
  302. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/detectors/entry_rank.py +0 -0
  303. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/detectors/event_detector.py +0 -0
  304. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/detectors/kafka_detector.py +0 -0
  305. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/detectors/liferay_portlet_detector.py +0 -0
  306. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/generators/__init__.py +0 -0
  307. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/generators/business_rules_markdown.py +0 -0
  308. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/generators/cfg_paths_markdown.py +0 -0
  309. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/generators/cfg_paths_mermaid.py +0 -0
  310. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/generators/cfg_render.py +0 -0
  311. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/generators/cytoscape_enrich.py +0 -0
  312. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/generators/entry_markdown.py +0 -0
  313. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/generators/flow_summary.py +0 -0
  314. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/generators/flow_tree.py +0 -0
  315. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/generators/html.py +0 -0
  316. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/generators/html_unified.py +0 -0
  317. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/generators/markdown.py +0 -0
  318. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/generators/mermaid.py +0 -0
  319. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/generators/sequence.py +0 -0
  320. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/__init__.py +0 -0
  321. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/analysis.py +0 -0
  322. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/anomaly.py +0 -0
  323. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/builder.py +0 -0
  324. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/call_expander.py +0 -0
  325. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/cfg_builder.py +0 -0
  326. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/cfg_copy.py +0 -0
  327. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/cfg_model.py +0 -0
  328. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/cluster_labeling.py +0 -0
  329. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/clustering.py +0 -0
  330. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/cross_repo_resolver.py +0 -0
  331. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/dependency_builder.py +0 -0
  332. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/diff_analysis.py +0 -0
  333. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/embeddings.py +0 -0
  334. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/enricher.py +0 -0
  335. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/event_graph.py +0 -0
  336. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/export_schema.py +0 -0
  337. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/hotpath.py +0 -0
  338. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/maven_hints.py +0 -0
  339. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/multi_repo.py +0 -0
  340. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/multigraph_utils.py +0 -0
  341. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/nl_query.py +0 -0
  342. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/path_enumerator.py +0 -0
  343. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/path_probability.py +0 -0
  344. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/query_engine.py +0 -0
  345. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/relations.py +0 -0
  346. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/runtime_integration.py +0 -0
  347. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/semantic_enricher.py +0 -0
  348. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/semantic_index.py +0 -0
  349. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/sqlite_export.py +0 -0
  350. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/graph/tsconfig_cross_repo.py +0 -0
  351. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/ingestion/__init__.py +0 -0
  352. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/ingestion/git_loader.py +0 -0
  353. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/ingestion/loader.py +0 -0
  354. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/lang_dispatch.py +0 -0
  355. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/mcp/__init__.py +0 -0
  356. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/mcp/server.py +0 -0
  357. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/models/__init__.py +0 -0
  358. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/models/ir.py +0 -0
  359. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/models/ir_cfg.py +0 -0
  360. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/parsers/__init__.py +0 -0
  361. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/parsers/adapters/__init__.py +0 -0
  362. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/parsers/adapters/cpp_adapter.py +0 -0
  363. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/parsers/adapters/go_adapter.py +0 -0
  364. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/parsers/adapters/ir_from_dump.py +0 -0
  365. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/parsers/adapters/java_adapter.py +0 -0
  366. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/parsers/adapters/php_adapter.py +0 -0
  367. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/parsers/adapters/python_adapter.py +0 -0
  368. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/parsers/adapters/treesitter_adapter.py +0 -0
  369. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/parsers/base.py +0 -0
  370. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/parsers/cpp_parser.py +0 -0
  371. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/parsers/go_parser.py +0 -0
  372. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/parsers/ir_enrich.py +0 -0
  373. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/parsers/java_parser.py +0 -0
  374. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/parsers/php_parser.py +0 -0
  375. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/parsers/python_parser.py +0 -0
  376. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/parsers/treesitter_js_ts_parser.py +0 -0
  377. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/parsers/unified_parser.py +0 -0
  378. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/rules/__init__.py +0 -0
  379. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/rules/collector.py +0 -0
  380. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/rules/cpp_rules.py +0 -0
  381. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/rules/java_rules.py +0 -0
  382. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/runtime/__init__.py +0 -0
  383. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/runtime/python_edge_counter.py +0 -0
  384. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/runtime/trace_runner.py +0 -0
  385. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/runtime/tracer.py +0 -0
  386. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/utils/__init__.py +0 -0
  387. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/utils/tools_root.py +0 -0
  388. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/worker/__init__.py +0 -0
  389. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/codeflow/worker/celery_optional.py +0 -0
  390. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/__init__.py +0 -0
  391. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/adapters/__init__.py +0 -0
  392. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/adapters/mongo_adapter.py +0 -0
  393. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/adapters/oracle_adapter.py +0 -0
  394. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/adapters/sql_common.py +0 -0
  395. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/adapters/sqlite_adapter.py +0 -0
  396. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/api/__init__.py +0 -0
  397. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/api/mcp_server.py +0 -0
  398. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/api/run.py +0 -0
  399. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/cli/__init__.py +0 -0
  400. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/config/__init__.py +0 -0
  401. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/config/default.yaml +0 -0
  402. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/core/__init__.py +0 -0
  403. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/core/erd/__init__.py +0 -0
  404. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/core/erd/dot_emitter.py +0 -0
  405. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/core/erd/filter.py +0 -0
  406. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/core/erd/mermaid_emitter.py +0 -0
  407. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/core/erd/mermaid_render.py +0 -0
  408. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/core/erd/model.py +0 -0
  409. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/core/erd/pipeline.py +0 -0
  410. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/core/erd/render.py +0 -0
  411. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/core/util.py +0 -0
  412. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/core/zip_export.py +0 -0
  413. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/mcp/__init__.py +0 -0
  414. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/mcp/server.py +0 -0
  415. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/mcp/sse.py +0 -0
  416. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/db/mcp/stream.py +0 -0
  417. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/__init__.py +0 -0
  418. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/adapters/__init__.py +0 -0
  419. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/adapters/factory.py +0 -0
  420. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/adapters/neo4j_adapter.py +0 -0
  421. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/adapters/networkx_adapter.py +0 -0
  422. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/api/__init__.py +0 -0
  423. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/api/main.py +0 -0
  424. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/api/mcp_server.py +0 -0
  425. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/api/run.py +0 -0
  426. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/api/schemas.py +0 -0
  427. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/api/settings.py +0 -0
  428. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/cli/__init__.py +0 -0
  429. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/cli/main.py +0 -0
  430. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/config/__init__.py +0 -0
  431. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/config/default.yaml +0 -0
  432. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/core/__init__.py +0 -0
  433. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/core/base_adapter.py +0 -0
  434. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/core/extractor.py +0 -0
  435. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/core/graph_builder.py +0 -0
  436. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/core/job_manager.py +0 -0
  437. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/core/markdown_writer.py +0 -0
  438. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/core/models.py +0 -0
  439. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/core/run_config.py +0 -0
  440. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/core/viz.py +0 -0
  441. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/core/zip_export.py +0 -0
  442. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/mcp/__init__.py +0 -0
  443. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/mcp/server.py +0 -0
  444. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/mcp/sse.py +0 -0
  445. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/graph/mcp/stream.py +0 -0
  446. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/image/__init__.py +0 -0
  447. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/image/api/__init__.py +0 -0
  448. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/image/api/main.py +0 -0
  449. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/image/api/mcp_server.py +0 -0
  450. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/image/api/query_options.py +0 -0
  451. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/image/api/settings.py +0 -0
  452. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/image/api/staging.py +0 -0
  453. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/image/api/zip_bundle.py +0 -0
  454. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/image/backends/__init__.py +0 -0
  455. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/image/backends/base.py +0 -0
  456. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/image/backends/easy.py +0 -0
  457. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/image/backends/paddle.py +0 -0
  458. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/image/backends/tesseract.py +0 -0
  459. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/image/convert_impl.py +0 -0
  460. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/image/converter.py +0 -0
  461. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/image/emit.py +0 -0
  462. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/image/io_util.py +0 -0
  463. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/image/utils.py +0 -0
  464. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/__init__.py +0 -0
  465. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/aggregation/__init__.py +0 -0
  466. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/aggregation/aggregators.py +0 -0
  467. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/aggregation/dataframe_builder.py +0 -0
  468. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/aggregation/metrics.py +0 -0
  469. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/aggregation/timeline.py +0 -0
  470. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/api/__init__.py +0 -0
  471. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/api/main.py +0 -0
  472. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/api/mcp_server.py +0 -0
  473. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/api/run.py +0 -0
  474. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/api/settings.py +0 -0
  475. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/cli/__init__.py +0 -0
  476. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/clustering/__init__.py +0 -0
  477. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/clustering/embeddings.py +0 -0
  478. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/clustering/kmeans_cluster.py +0 -0
  479. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/clustering/semantic_grouping.py +0 -0
  480. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/clustering/vectorizer.py +0 -0
  481. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/config/__init__.py +0 -0
  482. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/config/presets/__init__.py +0 -0
  483. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/config/presets/generic.yaml +0 -0
  484. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/config/presets/springboot.yaml +0 -0
  485. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/core/__init__.py +0 -0
  486. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/core/errors.py +0 -0
  487. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/core/execution_context.py +0 -0
  488. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/core/extractor.py +0 -0
  489. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/core/job_manager.py +0 -0
  490. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/core/lifecycle.py +0 -0
  491. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/core/zip_export.py +0 -0
  492. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/enrichment/__init__.py +0 -0
  493. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/enrichment/correlation.py +0 -0
  494. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/enrichment/fingerprinting.py +0 -0
  495. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/enrichment/hash_generator.py +0 -0
  496. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/enrichment/pattern_matcher.py +0 -0
  497. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/enrichment/severity_ranker.py +0 -0
  498. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/ingestion/__init__.py +0 -0
  499. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/ingestion/archive_loader.py +0 -0
  500. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/ingestion/encoding_detector.py +0 -0
  501. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/ingestion/file_loader.py +0 -0
  502. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/ingestion/stream_reader.py +0 -0
  503. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/mcp/__init__.py +0 -0
  504. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/mcp/sse.py +0 -0
  505. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/normalization/__init__.py +0 -0
  506. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/normalization/number_normalizer.py +0 -0
  507. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/normalization/path_normalizer.py +0 -0
  508. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/normalization/pii_redactor.py +0 -0
  509. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/normalization/token_normalizer.py +0 -0
  510. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/normalization/uuid_normalizer.py +0 -0
  511. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/parser/__init__.py +0 -0
  512. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/parser/level_detector.py +0 -0
  513. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/parser/logger_detector.py +0 -0
  514. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/parser/models.py +0 -0
  515. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/parser/regex_parser.py +0 -0
  516. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/parser/stacktrace_parser.py +0 -0
  517. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/parser/timestamp_parser.py +0 -0
  518. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/service/__init__.py +0 -0
  519. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/service/service.py +0 -0
  520. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/utils/__init__.py +0 -0
  521. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/utils/concurrency.py +0 -0
  522. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/utils/io.py +0 -0
  523. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/utils/regex.py +0 -0
  524. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/utils/time.py +0 -0
  525. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/writers/__init__.py +0 -0
  526. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/writers/assets_writer.py +0 -0
  527. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/writers/cluster_markdown.py +0 -0
  528. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/log/writers/summary_writer.py +0 -0
  529. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/__init__.py +0 -0
  530. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/audio/__init__.py +0 -0
  531. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/audio/api/__init__.py +0 -0
  532. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/audio/api/main.py +0 -0
  533. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/audio/api/mcp_server.py +0 -0
  534. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/audio/api/mcp_setup.py +0 -0
  535. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/audio/api/run.py +0 -0
  536. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/audio/api/settings.py +0 -0
  537. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/audio/converter.py +0 -0
  538. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/audio/formatter.py +0 -0
  539. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/audio/service.py +0 -0
  540. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/document_converter.py +0 -0
  541. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/job_store.py +0 -0
  542. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/video/__init__.py +0 -0
  543. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/video/api/__init__.py +0 -0
  544. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/video/api/main.py +0 -0
  545. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/video/api/mcp_server.py +0 -0
  546. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/video/api/mcp_setup.py +0 -0
  547. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/video/api/run.py +0 -0
  548. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/video/api/settings.py +0 -0
  549. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/video/converter.py +0 -0
  550. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/video/formatter.py +0 -0
  551. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/video/service.py +0 -0
  552. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/whisper_language.py +0 -0
  553. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/youtube/__init__.py +0 -0
  554. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/youtube/api/__init__.py +0 -0
  555. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/youtube/api/main.py +0 -0
  556. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/youtube/api/mcp_server.py +0 -0
  557. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/youtube/api/mcp_setup.py +0 -0
  558. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/youtube/api/run.py +0 -0
  559. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/youtube/api/settings.py +0 -0
  560. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/youtube/converter.py +0 -0
  561. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/youtube/formatter.py +0 -0
  562. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/youtube/metadata.py +0 -0
  563. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/youtube/service.py +0 -0
  564. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/media/youtube/transcript.py +0 -0
  565. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/__init__.py +0 -0
  566. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/api/__init__.py +0 -0
  567. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/api/main.py +0 -0
  568. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/api/mcp_server.py +0 -0
  569. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/api/run.py +0 -0
  570. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/api/schemas.py +0 -0
  571. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/api/settings.py +0 -0
  572. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/cli/__init__.py +0 -0
  573. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/cli/main.py +0 -0
  574. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/config/__init__.py +0 -0
  575. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/config/default.yaml +0 -0
  576. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/converters/__init__.py +0 -0
  577. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/converters/swagger2_to_openapi3.py +0 -0
  578. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/core/__init__.py +0 -0
  579. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/core/extractor.py +0 -0
  580. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/core/run_config.py +0 -0
  581. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/core/zip_export.py +0 -0
  582. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/enrichers/__init__.py +0 -0
  583. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/enrichers/rules.py +0 -0
  584. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/enrichers/sample_body.py +0 -0
  585. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/generators/__init__.py +0 -0
  586. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/generators/dependency_graph.py +0 -0
  587. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/loaders/__init__.py +0 -0
  588. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/loaders/spec_loader.py +0 -0
  589. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/mcp/__init__.py +0 -0
  590. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/mcp/server.py +0 -0
  591. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/models/__init__.py +0 -0
  592. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/models/domain.py +0 -0
  593. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/normalizers/__init__.py +0 -0
  594. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/normalizers/operations.py +0 -0
  595. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/normalizers/schema_flatten.py +0 -0
  596. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/parsers/__init__.py +0 -0
  597. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/parsers/openapi_parser.py +0 -0
  598. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/resolvers/__init__.py +0 -0
  599. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/resolvers/ref_resolver.py +0 -0
  600. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/writers/__init__.py +0 -0
  601. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/openapi/writers/markdown_writer.py +0 -0
  602. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/pdf/__init__.py +0 -0
  603. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/pdf/api/__init__.py +0 -0
  604. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/pdf/api/main.py +0 -0
  605. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/pdf/api/mcp_server.py +0 -0
  606. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/pdf/api/settings.py +0 -0
  607. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/pdf/api/zip_bundle.py +0 -0
  608. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/pdf/converter.py +0 -0
  609. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/pdf/md_emit.py +0 -0
  610. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/pdf/pdf_extract.py +0 -0
  611. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/pdf/utils.py +0 -0
  612. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/playwright/__init__.py +0 -0
  613. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/playwright/api/__init__.py +0 -0
  614. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/playwright/api/convert_runner.py +0 -0
  615. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/playwright/api/jobs.py +0 -0
  616. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/playwright/api/main.py +0 -0
  617. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/playwright/api/mcp_server.py +0 -0
  618. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/playwright/api/mcp_setup.py +0 -0
  619. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/playwright/api/run.py +0 -0
  620. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/playwright/api/settings.py +0 -0
  621. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/playwright/assets.py +0 -0
  622. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/playwright/chunker.py +0 -0
  623. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/playwright/cli.py +0 -0
  624. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/playwright/extractor.py +0 -0
  625. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/playwright/html_to_md.py +0 -0
  626. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/playwright/options.py +0 -0
  627. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/playwright/pipeline.py +0 -0
  628. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/playwright/playwright_fetcher.py +0 -0
  629. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/__init__.py +0 -0
  630. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/api/__init__.py +0 -0
  631. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/api/convert_runner.py +0 -0
  632. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/api/jobs.py +0 -0
  633. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/api/main.py +0 -0
  634. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/api/mcp_server.py +0 -0
  635. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/api/mcp_setup.py +0 -0
  636. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/api/query_options.py +0 -0
  637. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/api/settings.py +0 -0
  638. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/convert_impl.py +0 -0
  639. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/converter.py +0 -0
  640. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/embedded_extract.py +0 -0
  641. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/ooxml_media.py +0 -0
  642. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/options.py +0 -0
  643. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/post_assets.py +0 -0
  644. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/text_formatting.py +0 -0
  645. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/vendor_pdf_md/__init__.py +0 -0
  646. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/vendor_pdf_md/convert.py +0 -0
  647. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/vendor_word_md/__init__.py +0 -0
  648. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/vendor_word_md/convert.py +0 -0
  649. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/ppt/zip_deep.py +0 -0
  650. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/text/__init__.py +0 -0
  651. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/text/api/__init__.py +0 -0
  652. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/text/api/convert_runner.py +0 -0
  653. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/text/api/jobs.py +0 -0
  654. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/text/api/main.py +0 -0
  655. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/text/api/mcp_server.py +0 -0
  656. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/text/api/mcp_setup.py +0 -0
  657. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/text/api/query_options.py +0 -0
  658. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/text/api/settings.py +0 -0
  659. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/text/convert_impl.py +0 -0
  660. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/text/converter.py +0 -0
  661. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/text/format_detect.py +0 -0
  662. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/text/md_emit_json.py +0 -0
  663. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/text/md_emit_txt.py +0 -0
  664. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/text/md_emit_xml.py +0 -0
  665. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/text/md_flatten.py +0 -0
  666. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/text/options.py +0 -0
  667. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/text/xml_parse.py +0 -0
  668. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/__init__.py +0 -0
  669. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/__init__.py +0 -0
  670. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/adapters/__init__.py +0 -0
  671. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/adapters/claude.py +0 -0
  672. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/adapters/cursor.py +0 -0
  673. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/adapters/openai.py +0 -0
  674. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/agent.py +0 -0
  675. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/bundle.py +0 -0
  676. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/chunks.py +0 -0
  677. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/cli.py +0 -0
  678. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-archive/references/example.md +0 -0
  679. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-codeflow/references/example.md +0 -0
  680. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-db/references/example.md +0 -0
  681. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-global/references/example.md +0 -0
  682. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-graph/references/example.md +0 -0
  683. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-image/references/example.md +0 -0
  684. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-media/references/example.md +0 -0
  685. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-openapi/references/example.md +0 -0
  686. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-pdf/references/example.md +0 -0
  687. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-playwright/references/example.md +0 -0
  688. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-ppt/references/example.md +0 -0
  689. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-text/references/example.md +0 -0
  690. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-url/references/example.md +0 -0
  691. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-word/references/example.md +0 -0
  692. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-xlsx/references/example.md +0 -0
  693. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-reference/references/entrypoints.md +0 -0
  694. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/mdengine-reference/references/example.md +0 -0
  695. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/modules/archive.md +0 -0
  696. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/modules/db.md +0 -0
  697. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/modules/graph.md +0 -0
  698. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/modules/image.md +0 -0
  699. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/modules/media.md +0 -0
  700. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/modules/openapi.md +0 -0
  701. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/modules/pdf.md +0 -0
  702. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/modules/playwright.md +0 -0
  703. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/modules/ppt.md +0 -0
  704. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/modules/url.md +0 -0
  705. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/modules/word.md +0 -0
  706. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/data/skills/modules/xlsx.md +0 -0
  707. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/rag.py +0 -0
  708. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/assistant/registry.py +0 -0
  709. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/skill_builder/__init__.py +0 -0
  710. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/skill_builder/__main__.py +0 -0
  711. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/skill_builder/dependency_graph.py +0 -0
  712. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/tools/skill_builder/pyproject_util.py +0 -0
  713. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/__init__.py +0 -0
  714. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/api/__init__.py +0 -0
  715. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/api/convert_runner.py +0 -0
  716. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/api/jobs.py +0 -0
  717. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/api/main.py +0 -0
  718. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/api/mcp_server.py +0 -0
  719. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/api/mcp_setup.py +0 -0
  720. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/api/query_options.py +0 -0
  721. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/api/settings.py +0 -0
  722. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/assets.py +0 -0
  723. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/convert_impl.py +0 -0
  724. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/converter.py +0 -0
  725. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/crawl.py +0 -0
  726. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/extract.py +0 -0
  727. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/fetch.py +0 -0
  728. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/html_to_md.py +0 -0
  729. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/options.py +0 -0
  730. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/page_convert.py +0 -0
  731. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/url/robots_util.py +0 -0
  732. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/word/__init__.py +0 -0
  733. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/word/api/__init__.py +0 -0
  734. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/word/api/convert_util.py +0 -0
  735. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/word/api/jobs.py +0 -0
  736. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/word/api/main.py +0 -0
  737. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/word/api/mcp_server.py +0 -0
  738. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/word/artifact.py +0 -0
  739. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/word/converter.py +0 -0
  740. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/word/settings.py +0 -0
  741. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/xlsx/__init__.py +0 -0
  742. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/xlsx/api/__init__.py +0 -0
  743. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/xlsx/api/app.py +0 -0
  744. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/xlsx/convert_config.py +0 -0
  745. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/xlsx/converter.py +0 -0
  746. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/xlsx/converter_core.py +0 -0
  747. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/xlsx/excel_reader.py +0 -0
  748. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/xlsx/markdown_emitter.py +0 -0
  749. {mdengine-0.9.0 → mdengine-0.11.0}/src/md_generator/xlsx/mcp_server.py +0 -0
  750. {mdengine-0.9.0 → mdengine-0.11.0}/src/mdengine.egg-info/dependency_links.txt +0 -0
  751. {mdengine-0.9.0 → mdengine-0.11.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.9.0
3
+ Version: 0.11.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
@@ -48,6 +49,9 @@ Requires-Dist: lxml>=5.0.0; extra == "text"
48
49
  Provides-Extra: archive
49
50
  Requires-Dist: Pillow>=10.0.0; extra == "archive"
50
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"
51
55
  Provides-Extra: url
52
56
  Requires-Dist: httpx>=0.27.0; extra == "url"
53
57
  Requires-Dist: beautifulsoup4>=4.12.0; extra == "url"
@@ -94,6 +98,7 @@ Requires-Dist: sqlalchemy>=2.0.0; extra == "db"
94
98
  Requires-Dist: pyyaml>=6.0.0; extra == "db"
95
99
  Requires-Dist: psycopg2-binary>=2.9.9; extra == "db"
96
100
  Requires-Dist: pymysql>=1.1.0; extra == "db"
101
+ Requires-Dist: pyodbc>=5.0.0; extra == "db"
97
102
  Requires-Dist: oracledb>=2.0.0; extra == "db"
98
103
  Requires-Dist: pymongo>=4.6.0; extra == "db"
99
104
  Requires-Dist: mermaid-py>=0.8.0; extra == "db"
@@ -108,6 +113,11 @@ Requires-Dist: openapi-spec-validator>=0.7.0; extra == "openapi"
108
113
  Provides-Extra: codeflow
109
114
  Requires-Dist: networkx>=3.2.0; extra == "codeflow"
110
115
  Requires-Dist: javalang>=0.13.0; extra == "codeflow"
116
+ Provides-Extra: sap
117
+ Requires-Dist: pyyaml>=6.0.0; extra == "sap"
118
+ Requires-Dist: networkx>=3.2.0; extra == "sap"
119
+ Requires-Dist: pydantic>=2.0.0; extra == "sap"
120
+ Requires-Dist: pydantic-settings>=2.0.0; extra == "sap"
111
121
  Provides-Extra: codeflow-worker
112
122
  Requires-Dist: celery>=5.3.0; extra == "codeflow-worker"
113
123
  Requires-Dist: redis>=5.0.0; extra == "codeflow-worker"
@@ -134,6 +144,17 @@ Requires-Dist: scikit-learn>=1.3.0; extra == "log-semantic"
134
144
  Requires-Dist: sentence-transformers>=3.0.0; extra == "log-semantic"
135
145
  Provides-Extra: log-pretty
136
146
  Requires-Dist: loguru>=0.7.0; extra == "log-pretty"
147
+ Provides-Extra: log-otel-proto
148
+ Requires-Dist: opentelemetry-proto>=1.27.0; extra == "log-otel-proto"
149
+ Requires-Dist: protobuf>=4.25.0; extra == "log-otel-proto"
150
+ Provides-Extra: log-export-parquet
151
+ Requires-Dist: pyarrow>=14.0.0; extra == "log-export-parquet"
152
+ Provides-Extra: log-stream-kafka
153
+ Requires-Dist: kafka-python>=2.0.2; extra == "log-stream-kafka"
154
+ Provides-Extra: log-stream-redis
155
+ Requires-Dist: redis>=5.0.0; extra == "log-stream-redis"
156
+ Provides-Extra: log-stream-ws
157
+ Requires-Dist: websockets>=12.0; extra == "log-stream-ws"
137
158
  Provides-Extra: api
138
159
  Requires-Dist: fastapi>=0.115.0; extra == "api"
139
160
  Requires-Dist: uvicorn[standard]>=0.32.0; extra == "api"
@@ -143,6 +164,14 @@ Requires-Dist: pydantic-settings>=2.0.0; extra == "api"
143
164
  Provides-Extra: mcp
144
165
  Requires-Dist: mcp>=1.2.0; extra == "mcp"
145
166
  Requires-Dist: fastmcp>=2.3.0; extra == "mcp"
167
+ Provides-Extra: docs
168
+ Requires-Dist: mkdocs-material; extra == "docs"
169
+ Requires-Dist: mkdocstrings; extra == "docs"
170
+ Requires-Dist: mkdocstrings-python; extra == "docs"
171
+ Requires-Dist: pymdown-extensions; extra == "docs"
172
+ Requires-Dist: mkdocs-mermaid2-plugin; extra == "docs"
173
+ Requires-Dist: mkdocs-git-revision-date-localized-plugin; extra == "docs"
174
+ Requires-Dist: mike; extra == "docs"
146
175
  Provides-Extra: skill-openai
147
176
  Requires-Dist: openai>=1.30.0; extra == "skill-openai"
148
177
  Provides-Extra: skill-rag-chroma
@@ -201,7 +230,7 @@ Single Python distribution for converting **PDF**, **Word (.docx)**, **PowerPoin
201
230
  - **Python:** 3.10+
202
231
  - **License:** [MIT](LICENSE)
203
232
 
204
- **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)
233
+ **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)
205
234
 
206
235
  ---
207
236
 
@@ -270,9 +299,23 @@ pip install "mdengine[all]"
270
299
  | `url-full` | `url` plus PDF/Word/PPTX/XLSX/archive stack for **post-converting** downloaded linked files to Markdown |
271
300
  | `audio` | **Audio → Markdown** via Whisper (`openai-whisper`); ships `imageio-ffmpeg` for a bundled **ffmpeg** when none is on `PATH` |
272
301
  | `video` | **Video → Markdown** (ffmpeg extracts mono 16 kHz WAV, then same Whisper stack as `audio`) |
302
+ | `youtube` | **YouTube → Markdown** (captions + page metadata; `youtube-transcript-api`, httpx, BeautifulSoup, lxml) |
303
+ | `playwright` | **Playwright-rendered SPA → Markdown** (`playwright` + same HTML stack as `url`; run `playwright install chromium` after install) |
304
+ | `db` | **Database metadata → Markdown** (SQLAlchemy, drivers, `mermaid-py` for ERD helpers) |
305
+ | `openapi` | **OpenAPI / Swagger → Markdown** (`prance`, `openapi-spec-validator`, PyYAML) |
306
+ | `codeflow` | **Static codeflow / call graphs → Markdown** (`networkx`, `javalang`; core scanners) |
307
+ | `codeflow-worker` | Optional **Celery + Redis** workers for the codeflow API async path |
308
+ | `codeflow-treesitter` | **Tree-sitter** parsers (JS/TS/TSX, C++) for richer codeflow slices |
309
+ | `codeflow-clang` | **libclang** bindings for C/C++ parsing when used by the codeflow pipeline |
310
+ | `codeflow-semantic` | **Semantic clustering** (SentenceTransformers, scikit-learn, numpy; large install) |
311
+ | `log` | **Log files → Markdown** (`pandas`, PyYAML, date parsing) |
312
+ | `log-cluster` | Log pipeline **clustering** (scikit-learn) |
313
+ | `log-semantic` | Log pipeline **semantic** helpers (SentenceTransformers + scikit-learn; large) |
314
+ | `log-pretty` | Optional **loguru** for pretty console diagnostics during log conversion |
273
315
  | `api` | FastAPI, uvicorn, httpx, pydantic-settings |
274
316
  | `mcp` | MCP servers (`mcp`, `fastmcp` where used) |
275
317
  | `graph` | **Graph → Markdown** (Neo4j Bolt + NetworkX GraphML/GML): `networkx`, `neo4j`, `pyyaml` |
318
+ | `docs` | **MkDocs** site tooling (Material, mkdocstrings, Mermaid plugin, mike) for maintainers publishing reference docs |
276
319
  | `dev` | pytest + API/MCP test helpers |
277
320
  | `all` | Large superset of dependencies (use only if you need everything) |
278
321
  | `skill-openai` | Optional helpers for OpenAI-style calls with assembled skill context (`md_generator.tools.assistant`) |
@@ -333,7 +376,17 @@ If the shell reports “command not found”, ensure the Python **Scripts** dire
333
376
  | `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 …`) |
334
377
  | `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`** |
335
378
  | `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` |
336
- | `mdengine` | `md_generator.engine_cli:main` | `mdengine ai assist …`, `mdengine ai export …`, `mdengine skill build …`, `mdengine db-to-md …`, `mdengine graph-to-md …`, `mdengine openapi-to-md generate …` |
379
+ | `md-playwright` | `md_generator.playwright.cli:main` | `pip install "mdengine[playwright]"` then `md-playwright https://spa.example/app ./spa-out` (after `playwright install chromium`) |
380
+ | `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) |
381
+ | `md-playwright-mcp` | `md_generator.playwright.api.mcp_server:main` | Standalone MCP for Playwright capture tools |
382
+ | `md-codeflow` | `md_generator.codeflow.cli.main:main` | Same as `codeflow` — `md-codeflow scan …` (alias of packaged `codeflow` script) |
383
+ | `codeflow` | `md_generator.codeflow.cli.main:main` | `pip install "mdengine[codeflow]"` then `codeflow scan path/to/src --output ./out --lang java` |
384
+ | `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 |
385
+ | `md-codeflow-mcp` | `md_generator.codeflow.api.mcp_server:main` | Standalone **stdio** MCP for codeflow tools |
386
+ | `md-log` | `md_generator.log.cli.main:main` | `pip install "mdengine[log]"` then `md-log --config log.yaml` (or `mdengine log-to-md …`) |
387
+ | `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** |
388
+ | `md-log-mcp` | `md_generator.log.api.mcp_server:main` | Standalone MCP (`stdio` \| `sse` \| `streamable-http`) |
389
+ | `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 …` |
337
390
 
338
391
  **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.
339
392
 
@@ -343,6 +396,14 @@ If the shell reports “command not found”, ensure the Python **Scripts** dire
343
396
 
344
397
  **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.
345
398
 
399
+ **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]`).
400
+
401
+ **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.
402
+
403
+ **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).
404
+
405
+ **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).
406
+
346
407
  **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.
347
408
 
348
409
  **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).
@@ -366,6 +427,10 @@ md-url https://example.com/page ./page-bundle --artifact-layout
366
427
  md-audio ./voice.mp3 ./voice.md --model tiny
367
428
  md-video ./screen.mp4 ./screen.md --model base
368
429
  pip install "mdengine[graph]" && md-graph --source neo4j --uri neo4j://localhost:7687 --user neo4j --password secret --database neo4j --output ./graph-out --viz
430
+ pip install "mdengine[playwright]" && playwright install chromium && md-playwright https://example.com/app ./spa-out
431
+ pip install "mdengine[openapi]" && md-openapi generate --file openapi.yaml --output ./openapi-md
432
+ pip install "mdengine[log]" && md-log --config log.yaml
433
+ md-codeflow scan ./src --output ./cf-out --lang python
369
434
  ```
370
435
 
371
436
  **Windows PowerShell** (same commands; use backslashes for paths if you prefer)
@@ -378,6 +443,9 @@ md-audio .\voice.mp3 .\voice.md --model tiny
378
443
  md-video .\screen.mp4 .\screen.md --model base
379
444
  pip install "mdengine[graph]"
380
445
  md-graph --source neo4j --uri neo4j://localhost:7687 --user neo4j --password secret --database neo4j --output .\graph-out --viz
446
+ pip install "mdengine[playwright]"
447
+ playwright install chromium
448
+ md-playwright https://example.com/app .\spa-out
381
449
  ```
382
450
 
383
451
  **Windows CMD**
@@ -545,6 +613,113 @@ convert_zip(
545
613
 
546
614
  `repo_root` on `ConvertOptions` is **deprecated and ignored**; converters are loaded in-process from `md_generator`.
547
615
 
616
+ ### URL (HTML)
617
+
618
+ ```python
619
+ from pathlib import Path
620
+
621
+ import httpx
622
+ from md_generator.url.convert_impl import run_single
623
+ from md_generator.url.options import ConvertOptions
624
+
625
+ with httpx.Client(follow_redirects=True, timeout=30.0) as client:
626
+ run_single(
627
+ "https://example.com/",
628
+ Path("web-out"),
629
+ ConvertOptions(artifact_layout=True, verbose=False),
630
+ client,
631
+ )
632
+ ```
633
+
634
+ See [url-to-md/README.md](url-to-md/README.md) for crawl modes, post-convert assets, and API bodies.
635
+
636
+ ### Playwright (SPA)
637
+
638
+ ```python
639
+ import asyncio
640
+ from pathlib import Path
641
+
642
+ from md_generator.playwright.options import PlaywrightOptions
643
+ from md_generator.playwright.pipeline import convert_url_to_md
644
+
645
+ async def main() -> None:
646
+ await convert_url_to_md(
647
+ "https://example.com/app",
648
+ Path("spa-out"),
649
+ PlaywrightOptions(),
650
+ )
651
+
652
+ asyncio.run(main())
653
+ ```
654
+
655
+ Install browsers once: `playwright install chromium`.
656
+
657
+ ### Database metadata (db-to-md)
658
+
659
+ ```python
660
+ from pathlib import Path
661
+
662
+ from md_generator.db.core.extractor import extract_to_markdown
663
+ from md_generator.db.core.run_config import load_run_config
664
+
665
+ cfg = load_run_config(Path("db-export.yaml"))
666
+ extract_to_markdown(cfg)
667
+ ```
668
+
669
+ YAML shape and ERD options are covered above under **db-to-md** CLI notes.
670
+
671
+ ### Graph (Neo4j / NetworkX)
672
+
673
+ ```python
674
+ from pathlib import Path
675
+
676
+ from md_generator.graph.core.extractor import extract_to_markdown
677
+ from md_generator.graph.core.run_config import load_graph_run_config
678
+
679
+ cfg = load_graph_run_config(Path("graph-export.yaml"))
680
+ extract_to_markdown(cfg)
681
+ ```
682
+
683
+ ### OpenAPI → Markdown
684
+
685
+ ```python
686
+ from pathlib import Path
687
+
688
+ from md_generator.openapi.core.extractor import extract_to_markdown
689
+ from md_generator.openapi.core.run_config import ApiRunConfig
690
+
691
+ cfg = ApiRunConfig(file=Path("openapi.yaml"), output_path=Path("api-md"))
692
+ extract_to_markdown(cfg)
693
+ ```
694
+
695
+ Use `load_api_run_config(Path("openapi-md.yaml"))` when you prefer a single YAML file for input/output/format defaults.
696
+
697
+ ### Log files (log-to-md)
698
+
699
+ ```python
700
+ from pathlib import Path
701
+
702
+ from md_generator.log.core.extractor import extract_to_markdown
703
+ from md_generator.log.core.run_config import load_run_config as load_log_run_config
704
+
705
+ cfg = load_log_run_config(Path("log-export.yaml"))
706
+ extract_to_markdown(cfg)
707
+ ```
708
+
709
+ ### Codeflow (static call graphs)
710
+
711
+ ```python
712
+ from pathlib import Path
713
+
714
+ from md_generator.codeflow.core.extractor import run_scan
715
+ from md_generator.codeflow.core.run_config import ScanConfig
716
+
717
+ cfg = ScanConfig(project_root=Path("my-service/src"), output_path=Path("codeflow-out"), languages="java")
718
+ run_scan(cfg)
719
+ ```
720
+
721
+ 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).
722
+
548
723
  ---
549
724
 
550
725
  ## Audio and video to Markdown
@@ -661,7 +836,7 @@ Equivalent modules: `python -m md_generator.media.audio.api.mcp_server`, `python
661
836
 
662
837
  ### Thin shims (repo clone)
663
838
 
664
- [`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/).
839
+ [`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).
665
840
 
666
841
  ---
667
842
 
@@ -697,23 +872,28 @@ Install `mdengine[api]` plus the format extra(s), then run the **`app`** object
697
872
  | Audio (Whisper) | `md_generator.media.audio.api.main:create_app` (use **`--factory`**) or `…main:app` | `audio`, `api`, `mcp` |
698
873
  | Video (Whisper) | `md_generator.media.video.api.main:create_app` (use **`--factory`**) or `…main:app` | `video`, `api`, `mcp` |
699
874
  | YouTube | `md_generator.media.youtube.api.main:create_app` (use **`--factory`**) or `…main:app` | `youtube`, `api`, `mcp` |
875
+ | Codeflow (workspace scans) | `md_generator.codeflow.api.main:app` | `codeflow`, `api`, `mcp` |
876
+ | Log files → Markdown | `md_generator.log.api.main:app` | `log`, `api`, `mcp` |
700
877
 
701
- Examples:
878
+ 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):
702
879
 
703
880
  ```bash
704
881
  uvicorn md_generator.pdf.api.main:app --host 127.0.0.1 --port 8001
705
882
  uvicorn md_generator.word.api.main:app --host 127.0.0.1 --port 8002
706
- uvicorn md_generator.archive.api.main:app --host 127.0.0.1 --port 8010
707
- uvicorn md_generator.url.api.main:app --host 127.0.0.1 --port 8011
883
+ uvicorn md_generator.archive.api.main:app --host 127.0.0.1 --port 8008
884
+ uvicorn md_generator.url.api.main:app --host 127.0.0.1 --port 8017
885
+ uvicorn md_generator.db.api.main:app --host 127.0.0.1 --port 8010
708
886
  uvicorn md_generator.playwright.api.main:app --host 127.0.0.1 --port 8014
709
- uvicorn md_generator.graph.api.main:app --host 127.0.0.1 --port 8012
887
+ uvicorn md_generator.graph.api.main:app --host 127.0.0.1 --port 8020
710
888
  uvicorn md_generator.openapi.api.main:app --host 127.0.0.1 --port 8015
889
+ uvicorn md_generator.codeflow.api.main:app --host 127.0.0.1 --port 8016
890
+ uvicorn md_generator.log.api.main:app --host 127.0.0.1 --port 8018
711
891
  uvicorn md_generator.media.audio.api.main:create_app --factory --host 127.0.0.1 --port 8011
712
892
  uvicorn md_generator.media.video.api.main:create_app --factory --host 127.0.0.1 --port 8012
713
893
  uvicorn md_generator.media.youtube.api.main:create_app --factory --host 127.0.0.1 --port 8013
714
894
  ```
715
895
 
716
- **Port note:** **`md-graph-api`** and **`md-video-api`** both default to **8012**; set **`GRAPH_TO_MD_PORT`** or **`MD_VIDEO_API_PORT`** when you need both on one machine. **`md-openapi-api`** defaults to **8015** (`OPENAPI_TO_MD_PORT`) so it does not collide with **`md-youtube-api`** (**8013**) or **`md-playwright-api`** (**8014**).
896
+ **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`).
717
897
 
718
898
  ### MCP over HTTP on the same server
719
899
 
@@ -736,6 +916,8 @@ Prefixes differ per service (often read from a `.env` file next to the process):
736
916
  | 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**) |
737
917
  | 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**) |
738
918
  | 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**) |
919
+ | 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` |
920
+ | 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 |
739
921
  | 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` |
740
922
  | Video API | `MD_VIDEO_` | Same pattern as audio with `MD_VIDEO_*` (defaults: larger upload/sync caps, port **8012**) |
741
923
  | 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 |
@@ -762,13 +944,15 @@ Two usage patterns:
762
944
  | PPTX | `python -m md_generator.ppt.api.mcp_server` (see module docstring for flags) |
763
945
  | Image | `python -m md_generator.image.api.mcp_server` (see module for CLI) |
764
946
  | URL / HTML | `python -m md_generator.url.api.mcp_server` / `--transport sse` / `--transport streamable-http` |
765
- | Playwright / SPA | `md-playwright-mcp` or `python -m md_generator.playwright.api.mcp_server` / `--transport sse` / `--transport streamable-http` |
947
+ | Playwright / SPA | `md-playwright`, `md-playwright-api`, `md-playwright-mcp`, or `python -m md_generator.playwright.api.mcp_server` / `--transport sse` / `--transport streamable-http` |
766
948
  | Audio | `md-audio-mcp` or `python -m md_generator.media.audio.api.mcp_server` — `--transport stdio` (default), `sse`, `streamable-http` |
767
949
  | Video | `md-video-mcp` or `python -m md_generator.media.video.api.mcp_server` — same transports |
768
950
  | YouTube | `md-youtube-mcp` or `python -m md_generator.media.youtube.api.mcp_server` — same transports |
769
951
  | Database metadata | `md-db-mcp` or `python -m md_generator.db.api.mcp_server` — `--transport stdio` (default), `sse`, `streamable-http` |
770
952
  | Graph (Neo4j / NetworkX) | `md-graph-mcp` or `python -m md_generator.graph.api.mcp_server` — `--transport stdio` (default), `sse`, `streamable-http` |
771
953
  | OpenAPI → Markdown | `md-openapi-mcp` or `python -m md_generator.openapi.api.mcp_server` — `--transport stdio` (default), `sse`, `streamable-http` |
954
+ | Codeflow | `md-codeflow-mcp` or `python -m md_generator.codeflow.api.mcp_server` — **stdio** MCP (see module for details) |
955
+ | Log files | `md-log-mcp` or `python -m md_generator.log.api.mcp_server` — `--transport stdio` (default), `sse`, `streamable-http` |
772
956
 
773
957
  **Word** and **XLSX** also ship a small runner script in the repo:
774
958
 
@@ -897,7 +1081,9 @@ pip install -e ".[dev,all]" # or a smaller subset of extras
897
1081
  python -m pytest
898
1082
  ```
899
1083
 
900
- 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.
1084
+ 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.
1085
+
1086
+ **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/)).
901
1087
 
902
1088
  ### Codeflow (`md_generator.codeflow`)
903
1089
 
@@ -929,6 +1115,8 @@ python -m md_generator.codeflow.cli.main scan path/to/src --output ./codeflow-ou
929
1115
  | Path | Role |
930
1116
  |------|------|
931
1117
  | `LICENSE` | MIT license text |
1118
+ | `docs/` | **MkDocs** source (module guides, `index.md`); build with **`mdengine[docs]`** |
1119
+ | `mkdocs.yml` | MkDocs configuration |
932
1120
  | `CODE_OF_CONDUCT.md` | [Contributor Covenant](https://www.contributor-covenant.org/) 2.1 |
933
1121
  | `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/) |
934
1122
  | `pyproject.toml` | Packaging, extras, CLI entry points, pytest |