mdengine 0.9.0__tar.gz → 0.10.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (689) hide show
  1. {mdengine-0.9.0 → mdengine-0.10.0}/PKG-INFO +194 -11
  2. {mdengine-0.9.0 → mdengine-0.10.0}/README.md +169 -10
  3. {mdengine-0.9.0 → mdengine-0.10.0}/pyproject.toml +30 -1
  4. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/__init__.py +1 -1
  5. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/archive/api/convert_runner.py +3 -3
  6. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/archive/api/main.py +15 -6
  7. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/archive/api/mcp_setup.py +10 -7
  8. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/archive/convert_impl.py +71 -118
  9. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/archive/converter.py +14 -8
  10. mdengine-0.10.0/src/md_generator/archive/extractors.py +304 -0
  11. mdengine-0.10.0/src/md_generator/core/__init__.py +15 -0
  12. mdengine-0.10.0/src/md_generator/core/artifacts/__init__.py +16 -0
  13. mdengine-0.10.0/src/md_generator/core/artifacts/mdaf_validate.py +35 -0
  14. mdengine-0.10.0/src/md_generator/core/artifacts/models.py +60 -0
  15. mdengine-0.10.0/src/md_generator/core/artifacts/serialize.py +59 -0
  16. mdengine-0.10.0/src/md_generator/core/schema/__init__.py +3 -0
  17. mdengine-0.10.0/src/md_generator/core/schema/adapters/__init__.py +1 -0
  18. mdengine-0.10.0/src/md_generator/core/schema/adapters/log_record.py +24 -0
  19. mdengine-0.10.0/src/md_generator/core/schema/adapters/otel.py +31 -0
  20. mdengine-0.10.0/src/md_generator/core/schema/telemetry_event.py +15 -0
  21. mdengine-0.10.0/src/md_generator/core/schema/validation.py +16 -0
  22. mdengine-0.10.0/src/md_generator/db/adapters/access_adapter.py +143 -0
  23. mdengine-0.10.0/src/md_generator/db/adapters/access_introspect.py +122 -0
  24. mdengine-0.10.0/src/md_generator/db/adapters/access_odbc.py +108 -0
  25. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/adapters/factory.py +10 -0
  26. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/adapters/mysql_adapter.py +14 -0
  27. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/adapters/postgres_adapter.py +14 -0
  28. mdengine-0.10.0/src/md_generator/db/adapters/sqlserver_adapter.py +323 -0
  29. mdengine-0.10.0/src/md_generator/db/api/access_upload.py +89 -0
  30. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/api/main.py +82 -0
  31. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/api/schemas.py +5 -1
  32. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/api/settings.py +1 -0
  33. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/api/sqlite_upload.py +4 -0
  34. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/cli/main.py +28 -1
  35. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/core/base_adapter.py +11 -0
  36. mdengine-0.10.0/src/md_generator/db/core/cli_ops.py +57 -0
  37. mdengine-0.10.0/src/md_generator/db/core/export_manifest.py +65 -0
  38. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/core/extractor.py +74 -9
  39. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/core/job_manager.py +45 -13
  40. mdengine-0.10.0/src/md_generator/db/core/link_graph.py +69 -0
  41. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/core/markdown_writer.py +55 -7
  42. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/core/models.py +21 -0
  43. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/core/run_config.py +14 -0
  44. mdengine-0.10.0/src/md_generator/distributed/__init__.py +5 -0
  45. mdengine-0.10.0/src/md_generator/distributed/merge.py +21 -0
  46. mdengine-0.10.0/src/md_generator/distributed/partition.py +12 -0
  47. mdengine-0.10.0/src/md_generator/distributed/worker_pool.py +43 -0
  48. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/engine_cli.py +16 -0
  49. mdengine-0.10.0/src/md_generator/governance/__init__.py +11 -0
  50. mdengine-0.10.0/src/md_generator/governance/audit.py +13 -0
  51. mdengine-0.10.0/src/md_generator/governance/classification.py +31 -0
  52. mdengine-0.10.0/src/md_generator/governance/lineage.py +34 -0
  53. mdengine-0.10.0/src/md_generator/governance/retention.py +7 -0
  54. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/api/schemas.py +24 -53
  55. mdengine-0.10.0/src/md_generator/log/chunking/__init__.py +4 -0
  56. mdengine-0.10.0/src/md_generator/log/chunking/artifact_adapter.py +20 -0
  57. mdengine-0.10.0/src/md_generator/log/chunking/chunk_engine.py +23 -0
  58. mdengine-0.10.0/src/md_generator/log/chunking/chunk_models.py +14 -0
  59. mdengine-0.10.0/src/md_generator/log/chunking/chunk_registry.py +144 -0
  60. mdengine-0.10.0/src/md_generator/log/chunking/chunk_strategy.py +20 -0
  61. mdengine-0.10.0/src/md_generator/log/cli/main.py +147 -0
  62. mdengine-0.10.0/src/md_generator/log/config/default.yaml +138 -0
  63. mdengine-0.10.0/src/md_generator/log/config/preset_loader.py +85 -0
  64. mdengine-0.10.0/src/md_generator/log/config/presets/json.yaml +4 -0
  65. mdengine-0.10.0/src/md_generator/log/config/presets/logback.yaml +5 -0
  66. mdengine-0.10.0/src/md_generator/log/config/schemas.py +262 -0
  67. mdengine-0.10.0/src/md_generator/log/core/pipeline.py +392 -0
  68. mdengine-0.10.0/src/md_generator/log/core/plugins.py +80 -0
  69. mdengine-0.10.0/src/md_generator/log/core/run_config.py +270 -0
  70. mdengine-0.10.0/src/md_generator/log/correlation/correlation_engine.py +51 -0
  71. mdengine-0.10.0/src/md_generator/log/correlation/correlation_models.py +31 -0
  72. mdengine-0.10.0/src/md_generator/log/correlation/correlation_scoring.py +33 -0
  73. mdengine-0.10.0/src/md_generator/log/correlation/cross_source.py +69 -0
  74. mdengine-0.10.0/src/md_generator/log/correlation/request_parser.py +12 -0
  75. mdengine-0.10.0/src/md_generator/log/correlation/session_parser.py +10 -0
  76. mdengine-0.10.0/src/md_generator/log/correlation/trace_parser.py +12 -0
  77. mdengine-0.10.0/src/md_generator/log/documentation/__init__.py +9 -0
  78. mdengine-0.10.0/src/md_generator/log/documentation/incident_summary.py +19 -0
  79. mdengine-0.10.0/src/md_generator/log/documentation/service_report.py +19 -0
  80. mdengine-0.10.0/src/md_generator/log/documentation/troubleshooting.py +15 -0
  81. mdengine-0.10.0/src/md_generator/log/embeddings/embedding_exporter.py +38 -0
  82. mdengine-0.10.0/src/md_generator/log/embeddings/exporters/chroma_exporter.py +11 -0
  83. mdengine-0.10.0/src/md_generator/log/embeddings/exporters/faiss_exporter.py +10 -0
  84. mdengine-0.10.0/src/md_generator/log/embeddings/exporters/jsonl_exporter.py +15 -0
  85. mdengine-0.10.0/src/md_generator/log/embeddings/exporters/parquet_exporter.py +20 -0
  86. mdengine-0.10.0/src/md_generator/log/incidents/__init__.py +4 -0
  87. mdengine-0.10.0/src/md_generator/log/incidents/artifact_adapter.py +27 -0
  88. mdengine-0.10.0/src/md_generator/log/incidents/fingerprinting.py +33 -0
  89. mdengine-0.10.0/src/md_generator/log/incidents/grouping.py +23 -0
  90. mdengine-0.10.0/src/md_generator/log/incidents/incident_engine.py +82 -0
  91. mdengine-0.10.0/src/md_generator/log/incidents/models.py +49 -0
  92. mdengine-0.10.0/src/md_generator/log/incidents/severity.py +21 -0
  93. mdengine-0.10.0/src/md_generator/log/incremental/__init__.py +11 -0
  94. mdengine-0.10.0/src/md_generator/log/incremental/checkpoint.py +38 -0
  95. mdengine-0.10.0/src/md_generator/log/incremental/engine.py +34 -0
  96. mdengine-0.10.0/src/md_generator/log/incremental/resume_reader.py +41 -0
  97. mdengine-0.10.0/src/md_generator/log/ingestion/archive_bridge.py +52 -0
  98. mdengine-0.10.0/src/md_generator/log/ingestion/batch_reader.py +45 -0
  99. mdengine-0.10.0/src/md_generator/log/intelligence/anomaly_detection.py +8 -0
  100. mdengine-0.10.0/src/md_generator/log/intelligence/dependency_analysis.py +12 -0
  101. mdengine-0.10.0/src/md_generator/log/intelligence/heuristics.py +15 -0
  102. mdengine-0.10.0/src/md_generator/log/intelligence/root_cause_engine.py +47 -0
  103. mdengine-0.10.0/src/md_generator/log/knowledge_graph/graph_builder.py +18 -0
  104. mdengine-0.10.0/src/md_generator/log/knowledge_graph/graph_exporter.py +28 -0
  105. mdengine-0.10.0/src/md_generator/log/knowledge_graph/graph_models.py +17 -0
  106. mdengine-0.10.0/src/md_generator/log/knowledge_graph/relation_extractor.py +34 -0
  107. mdengine-0.10.0/src/md_generator/log/linking/__init__.py +3 -0
  108. mdengine-0.10.0/src/md_generator/log/linking/link_graph.py +62 -0
  109. mdengine-0.10.0/src/md_generator/log/markdown_intelligence/__init__.py +4 -0
  110. mdengine-0.10.0/src/md_generator/log/markdown_intelligence/aliases.py +13 -0
  111. mdengine-0.10.0/src/md_generator/log/markdown_intelligence/backlinks.py +26 -0
  112. mdengine-0.10.0/src/md_generator/log/markdown_intelligence/cross_refs.py +11 -0
  113. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/mcp/server.py +32 -0
  114. mdengine-0.10.0/src/md_generator/log/noise_reduction/__init__.py +3 -0
  115. mdengine-0.10.0/src/md_generator/log/noise_reduction/dedupe.py +22 -0
  116. mdengine-0.10.0/src/md_generator/log/noise_reduction/entropy.py +15 -0
  117. mdengine-0.10.0/src/md_generator/log/noise_reduction/filter.py +26 -0
  118. mdengine-0.10.0/src/md_generator/log/parser/json_line_parser.py +59 -0
  119. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/parser/multiline_parser.py +12 -1
  120. mdengine-0.10.0/src/md_generator/log/parser/parser_registry.py +71 -0
  121. mdengine-0.10.0/src/md_generator/log/search/bm25_search.py +38 -0
  122. mdengine-0.10.0/src/md_generator/log/search/cli.py +25 -0
  123. mdengine-0.10.0/src/md_generator/log/search/hybrid_search.py +13 -0
  124. mdengine-0.10.0/src/md_generator/log/search/search_index.py +12 -0
  125. mdengine-0.10.0/src/md_generator/log/search/vector_search.py +8 -0
  126. mdengine-0.10.0/src/md_generator/log/streaming/__init__.py +3 -0
  127. mdengine-0.10.0/src/md_generator/log/streaming/kafka_reader.py +39 -0
  128. mdengine-0.10.0/src/md_generator/log/streaming/redis_reader.py +40 -0
  129. mdengine-0.10.0/src/md_generator/log/streaming/stdin_reader.py +9 -0
  130. mdengine-0.10.0/src/md_generator/log/streaming/stream_coordinator.py +44 -0
  131. mdengine-0.10.0/src/md_generator/log/streaming/tail_reader.py +17 -0
  132. mdengine-0.10.0/src/md_generator/log/streaming/websocket_reader.py +38 -0
  133. mdengine-0.10.0/src/md_generator/log/timeline/causal_chain.py +15 -0
  134. mdengine-0.10.0/src/md_generator/log/timeline/ordering.py +12 -0
  135. mdengine-0.10.0/src/md_generator/log/timeline/timeline_engine.py +25 -0
  136. mdengine-0.10.0/src/md_generator/log/timeline/timeline_models.py +14 -0
  137. mdengine-0.10.0/src/md_generator/log/topology/__init__.py +3 -0
  138. mdengine-0.10.0/src/md_generator/log/topology/discovery.py +57 -0
  139. mdengine-0.10.0/src/md_generator/log/visualization/__init__.py +4 -0
  140. mdengine-0.10.0/src/md_generator/log/visualization/mermaid_sequence.py +21 -0
  141. mdengine-0.10.0/src/md_generator/log/visualization/mermaid_timeline.py +21 -0
  142. mdengine-0.10.0/src/md_generator/log/visualization/mermaid_topology.py +24 -0
  143. mdengine-0.10.0/src/md_generator/log/writers/chunk_writer.py +56 -0
  144. mdengine-0.10.0/src/md_generator/log/writers/correlation_writer.py +29 -0
  145. mdengine-0.10.0/src/md_generator/log/writers/frontmatter_writer.py +46 -0
  146. mdengine-0.10.0/src/md_generator/log/writers/incident_writer.py +67 -0
  147. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/writers/markdown_writer.py +0 -4
  148. mdengine-0.10.0/src/md_generator/otel/__init__.py +1 -0
  149. mdengine-0.10.0/src/md_generator/otel/cli/__init__.py +0 -0
  150. mdengine-0.10.0/src/md_generator/otel/cli/main.py +34 -0
  151. mdengine-0.10.0/src/md_generator/otel/otel_logs.py +22 -0
  152. mdengine-0.10.0/src/md_generator/otel/otel_metrics.py +12 -0
  153. mdengine-0.10.0/src/md_generator/otel/otel_models.py +20 -0
  154. mdengine-0.10.0/src/md_generator/otel/otel_parser.py +22 -0
  155. mdengine-0.10.0/src/md_generator/otel/otel_spans.py +26 -0
  156. mdengine-0.10.0/src/md_generator/runtime/__init__.py +4 -0
  157. mdengine-0.10.0/src/md_generator/runtime/execution_context.py +13 -0
  158. mdengine-0.10.0/src/md_generator/runtime/metrics.py +27 -0
  159. mdengine-0.10.0/src/md_generator/runtime/stage_engine.py +25 -0
  160. mdengine-0.10.0/src/md_generator/sdk/__init__.py +3 -0
  161. mdengine-0.10.0/src/md_generator/sdk/classifier_plugin.py +8 -0
  162. mdengine-0.10.0/src/md_generator/sdk/discovery.py +20 -0
  163. mdengine-0.10.0/src/md_generator/sdk/enricher_plugin.py +3 -0
  164. mdengine-0.10.0/src/md_generator/sdk/parser_plugin.py +11 -0
  165. mdengine-0.10.0/src/md_generator/sdk/plugin_protocol.py +10 -0
  166. mdengine-0.10.0/src/md_generator/sdk/stage_protocol.py +30 -0
  167. mdengine-0.10.0/src/md_generator/sdk/writer_plugin.py +8 -0
  168. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/dependency-graph.json +6 -0
  169. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/registry.json +46 -3
  170. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/global-skill.md +3 -2
  171. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-archive/SKILL.md +1 -1
  172. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-codeflow/SKILL.md +4 -3
  173. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-db/SKILL.md +1 -1
  174. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-global/SKILL.md +2 -1
  175. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-graph/SKILL.md +1 -1
  176. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-image/SKILL.md +1 -1
  177. mdengine-0.10.0/src/md_generator/tools/assistant/data/skills/mdengine-ai-log/SKILL.md +76 -0
  178. mdengine-0.10.0/src/md_generator/tools/assistant/data/skills/mdengine-ai-log/references/example.md +43 -0
  179. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-media/SKILL.md +1 -1
  180. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-openapi/SKILL.md +1 -1
  181. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-pdf/SKILL.md +1 -1
  182. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-playwright/SKILL.md +1 -1
  183. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-ppt/SKILL.md +1 -1
  184. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-text/SKILL.md +4 -3
  185. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-url/SKILL.md +1 -1
  186. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-word/SKILL.md +1 -1
  187. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-xlsx/SKILL.md +1 -1
  188. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-reference/SKILL.md +1 -0
  189. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-reference/references/http-api-mcp.md +23 -1
  190. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/codeflow.md +3 -2
  191. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/text.md +3 -2
  192. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/skill_builder/generate.py +8 -0
  193. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/skill_builder/routing.py +7 -2
  194. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/post_convert_assets.py +8 -7
  195. {mdengine-0.9.0 → mdengine-0.10.0}/src/mdengine.egg-info/PKG-INFO +194 -11
  196. {mdengine-0.9.0 → mdengine-0.10.0}/src/mdengine.egg-info/SOURCES.txt +132 -0
  197. {mdengine-0.9.0 → mdengine-0.10.0}/src/mdengine.egg-info/entry_points.txt +1 -0
  198. {mdengine-0.9.0 → mdengine-0.10.0}/src/mdengine.egg-info/requires.txt +30 -0
  199. mdengine-0.9.0/src/md_generator/log/cli/main.py +0 -69
  200. mdengine-0.9.0/src/md_generator/log/config/default.yaml +0 -48
  201. mdengine-0.9.0/src/md_generator/log/config/schemas.py +0 -117
  202. mdengine-0.9.0/src/md_generator/log/core/pipeline.py +0 -180
  203. mdengine-0.9.0/src/md_generator/log/core/plugins.py +0 -34
  204. mdengine-0.9.0/src/md_generator/log/core/run_config.py +0 -160
  205. mdengine-0.9.0/src/md_generator/log/parser/parser_registry.py +0 -27
  206. mdengine-0.9.0/src/md_generator/log/writers/chunk_writer.py +0 -48
  207. mdengine-0.9.0/src/md_generator/log/writers/incident_writer.py +0 -42
  208. {mdengine-0.9.0 → mdengine-0.10.0}/LICENSE +0 -0
  209. {mdengine-0.9.0 → mdengine-0.10.0}/setup.cfg +0 -0
  210. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/archive/__init__.py +0 -0
  211. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/archive/api/__init__.py +0 -0
  212. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/archive/api/jobs.py +0 -0
  213. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/archive/api/mcp_server.py +0 -0
  214. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/archive/api/query_options.py +0 -0
  215. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/archive/api/settings.py +0 -0
  216. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/archive/options.py +0 -0
  217. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/__init__.py +0 -0
  218. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/analyzers/__init__.py +0 -0
  219. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/analyzers/flow_analyzer.py +0 -0
  220. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/api/__init__.py +0 -0
  221. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/api/job_manager.py +0 -0
  222. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/api/main.py +0 -0
  223. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/api/mcp_server.py +0 -0
  224. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/api/run.py +0 -0
  225. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/api/schemas.py +0 -0
  226. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/api/semantic_api.py +0 -0
  227. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/api/settings.py +0 -0
  228. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/api/sse.py +0 -0
  229. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/cli/__init__.py +0 -0
  230. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/cli/main.py +0 -0
  231. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/config/__init__.py +0 -0
  232. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/config/codeflow_yaml.py +0 -0
  233. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/core/__init__.py +0 -0
  234. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/core/cache_manager.py +0 -0
  235. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/core/extractor.py +0 -0
  236. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/core/run_config.py +0 -0
  237. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/detectors/__init__.py +0 -0
  238. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/detectors/api_detector.py +0 -0
  239. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/detectors/entry_detector.py +0 -0
  240. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/detectors/entry_rank.py +0 -0
  241. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/detectors/event_detector.py +0 -0
  242. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/detectors/kafka_detector.py +0 -0
  243. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/detectors/liferay_portlet_detector.py +0 -0
  244. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/generators/__init__.py +0 -0
  245. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/generators/business_rules_markdown.py +0 -0
  246. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/generators/cfg_paths_markdown.py +0 -0
  247. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/generators/cfg_paths_mermaid.py +0 -0
  248. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/generators/cfg_render.py +0 -0
  249. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/generators/cytoscape_enrich.py +0 -0
  250. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/generators/entry_markdown.py +0 -0
  251. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/generators/flow_summary.py +0 -0
  252. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/generators/flow_tree.py +0 -0
  253. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/generators/html.py +0 -0
  254. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/generators/html_unified.py +0 -0
  255. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/generators/markdown.py +0 -0
  256. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/generators/mermaid.py +0 -0
  257. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/generators/sequence.py +0 -0
  258. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/__init__.py +0 -0
  259. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/analysis.py +0 -0
  260. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/anomaly.py +0 -0
  261. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/builder.py +0 -0
  262. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/call_expander.py +0 -0
  263. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/cfg_builder.py +0 -0
  264. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/cfg_copy.py +0 -0
  265. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/cfg_model.py +0 -0
  266. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/cluster_labeling.py +0 -0
  267. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/clustering.py +0 -0
  268. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/cross_repo_resolver.py +0 -0
  269. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/dependency_builder.py +0 -0
  270. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/diff_analysis.py +0 -0
  271. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/embeddings.py +0 -0
  272. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/enricher.py +0 -0
  273. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/event_graph.py +0 -0
  274. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/export_schema.py +0 -0
  275. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/hotpath.py +0 -0
  276. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/maven_hints.py +0 -0
  277. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/multi_repo.py +0 -0
  278. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/multigraph_utils.py +0 -0
  279. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/nl_query.py +0 -0
  280. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/path_enumerator.py +0 -0
  281. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/path_probability.py +0 -0
  282. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/query_engine.py +0 -0
  283. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/relations.py +0 -0
  284. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/runtime_integration.py +0 -0
  285. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/semantic_enricher.py +0 -0
  286. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/semantic_index.py +0 -0
  287. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/sqlite_export.py +0 -0
  288. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/graph/tsconfig_cross_repo.py +0 -0
  289. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/ingestion/__init__.py +0 -0
  290. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/ingestion/git_loader.py +0 -0
  291. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/ingestion/loader.py +0 -0
  292. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/lang_dispatch.py +0 -0
  293. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/mcp/__init__.py +0 -0
  294. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/mcp/server.py +0 -0
  295. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/models/__init__.py +0 -0
  296. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/models/ir.py +0 -0
  297. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/models/ir_cfg.py +0 -0
  298. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/__init__.py +0 -0
  299. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/adapters/__init__.py +0 -0
  300. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/adapters/cpp_adapter.py +0 -0
  301. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/adapters/go_adapter.py +0 -0
  302. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/adapters/ir_from_dump.py +0 -0
  303. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/adapters/java_adapter.py +0 -0
  304. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/adapters/php_adapter.py +0 -0
  305. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/adapters/python_adapter.py +0 -0
  306. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/adapters/treesitter_adapter.py +0 -0
  307. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/base.py +0 -0
  308. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/cpp_parser.py +0 -0
  309. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/go_parser.py +0 -0
  310. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/ir_enrich.py +0 -0
  311. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/java_parser.py +0 -0
  312. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/php_parser.py +0 -0
  313. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/python_parser.py +0 -0
  314. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/treesitter_js_ts_parser.py +0 -0
  315. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/parsers/unified_parser.py +0 -0
  316. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/rules/__init__.py +0 -0
  317. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/rules/collector.py +0 -0
  318. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/rules/cpp_rules.py +0 -0
  319. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/rules/java_rules.py +0 -0
  320. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/runtime/__init__.py +0 -0
  321. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/runtime/python_edge_counter.py +0 -0
  322. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/runtime/trace_runner.py +0 -0
  323. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/runtime/tracer.py +0 -0
  324. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/utils/__init__.py +0 -0
  325. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/utils/tools_root.py +0 -0
  326. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/worker/__init__.py +0 -0
  327. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/codeflow/worker/celery_optional.py +0 -0
  328. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/__init__.py +0 -0
  329. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/adapters/__init__.py +0 -0
  330. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/adapters/mongo_adapter.py +0 -0
  331. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/adapters/oracle_adapter.py +0 -0
  332. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/adapters/sql_common.py +0 -0
  333. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/adapters/sqlite_adapter.py +0 -0
  334. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/api/__init__.py +0 -0
  335. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/api/mcp_server.py +0 -0
  336. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/api/run.py +0 -0
  337. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/cli/__init__.py +0 -0
  338. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/config/__init__.py +0 -0
  339. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/config/default.yaml +0 -0
  340. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/core/__init__.py +0 -0
  341. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/core/erd/__init__.py +0 -0
  342. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/core/erd/dot_emitter.py +0 -0
  343. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/core/erd/filter.py +0 -0
  344. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/core/erd/mermaid_emitter.py +0 -0
  345. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/core/erd/mermaid_render.py +0 -0
  346. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/core/erd/model.py +0 -0
  347. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/core/erd/pipeline.py +0 -0
  348. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/core/erd/render.py +0 -0
  349. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/core/util.py +0 -0
  350. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/core/zip_export.py +0 -0
  351. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/mcp/__init__.py +0 -0
  352. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/mcp/server.py +0 -0
  353. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/mcp/sse.py +0 -0
  354. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/db/mcp/stream.py +0 -0
  355. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/__init__.py +0 -0
  356. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/adapters/__init__.py +0 -0
  357. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/adapters/factory.py +0 -0
  358. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/adapters/neo4j_adapter.py +0 -0
  359. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/adapters/networkx_adapter.py +0 -0
  360. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/api/__init__.py +0 -0
  361. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/api/main.py +0 -0
  362. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/api/mcp_server.py +0 -0
  363. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/api/run.py +0 -0
  364. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/api/schemas.py +0 -0
  365. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/api/settings.py +0 -0
  366. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/cli/__init__.py +0 -0
  367. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/cli/main.py +0 -0
  368. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/config/__init__.py +0 -0
  369. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/config/default.yaml +0 -0
  370. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/core/__init__.py +0 -0
  371. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/core/base_adapter.py +0 -0
  372. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/core/extractor.py +0 -0
  373. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/core/graph_builder.py +0 -0
  374. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/core/job_manager.py +0 -0
  375. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/core/markdown_writer.py +0 -0
  376. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/core/models.py +0 -0
  377. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/core/run_config.py +0 -0
  378. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/core/viz.py +0 -0
  379. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/core/zip_export.py +0 -0
  380. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/mcp/__init__.py +0 -0
  381. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/mcp/server.py +0 -0
  382. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/mcp/sse.py +0 -0
  383. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/graph/mcp/stream.py +0 -0
  384. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/image/__init__.py +0 -0
  385. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/image/api/__init__.py +0 -0
  386. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/image/api/main.py +0 -0
  387. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/image/api/mcp_server.py +0 -0
  388. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/image/api/query_options.py +0 -0
  389. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/image/api/settings.py +0 -0
  390. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/image/api/staging.py +0 -0
  391. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/image/api/zip_bundle.py +0 -0
  392. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/image/backends/__init__.py +0 -0
  393. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/image/backends/base.py +0 -0
  394. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/image/backends/easy.py +0 -0
  395. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/image/backends/paddle.py +0 -0
  396. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/image/backends/tesseract.py +0 -0
  397. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/image/convert_impl.py +0 -0
  398. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/image/converter.py +0 -0
  399. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/image/emit.py +0 -0
  400. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/image/io_util.py +0 -0
  401. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/image/utils.py +0 -0
  402. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/__init__.py +0 -0
  403. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/aggregation/__init__.py +0 -0
  404. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/aggregation/aggregators.py +0 -0
  405. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/aggregation/dataframe_builder.py +0 -0
  406. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/aggregation/metrics.py +0 -0
  407. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/aggregation/timeline.py +0 -0
  408. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/api/__init__.py +0 -0
  409. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/api/main.py +0 -0
  410. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/api/mcp_server.py +0 -0
  411. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/api/run.py +0 -0
  412. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/api/settings.py +0 -0
  413. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/cli/__init__.py +0 -0
  414. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/clustering/__init__.py +0 -0
  415. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/clustering/embeddings.py +0 -0
  416. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/clustering/kmeans_cluster.py +0 -0
  417. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/clustering/semantic_grouping.py +0 -0
  418. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/clustering/vectorizer.py +0 -0
  419. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/config/__init__.py +0 -0
  420. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/config/presets/__init__.py +0 -0
  421. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/config/presets/generic.yaml +0 -0
  422. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/config/presets/springboot.yaml +0 -0
  423. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/core/__init__.py +0 -0
  424. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/core/errors.py +0 -0
  425. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/core/execution_context.py +0 -0
  426. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/core/extractor.py +0 -0
  427. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/core/job_manager.py +0 -0
  428. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/core/lifecycle.py +0 -0
  429. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/core/zip_export.py +0 -0
  430. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/enrichment/__init__.py +0 -0
  431. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/enrichment/correlation.py +0 -0
  432. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/enrichment/fingerprinting.py +0 -0
  433. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/enrichment/hash_generator.py +0 -0
  434. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/enrichment/pattern_matcher.py +0 -0
  435. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/enrichment/severity_ranker.py +0 -0
  436. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/ingestion/__init__.py +0 -0
  437. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/ingestion/archive_loader.py +0 -0
  438. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/ingestion/encoding_detector.py +0 -0
  439. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/ingestion/file_loader.py +0 -0
  440. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/ingestion/stream_reader.py +0 -0
  441. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/mcp/__init__.py +0 -0
  442. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/mcp/sse.py +0 -0
  443. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/normalization/__init__.py +0 -0
  444. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/normalization/number_normalizer.py +0 -0
  445. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/normalization/path_normalizer.py +0 -0
  446. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/normalization/pii_redactor.py +0 -0
  447. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/normalization/token_normalizer.py +0 -0
  448. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/normalization/uuid_normalizer.py +0 -0
  449. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/parser/__init__.py +0 -0
  450. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/parser/level_detector.py +0 -0
  451. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/parser/logger_detector.py +0 -0
  452. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/parser/models.py +0 -0
  453. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/parser/regex_parser.py +0 -0
  454. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/parser/stacktrace_parser.py +0 -0
  455. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/parser/timestamp_parser.py +0 -0
  456. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/service/__init__.py +0 -0
  457. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/service/service.py +0 -0
  458. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/utils/__init__.py +0 -0
  459. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/utils/concurrency.py +0 -0
  460. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/utils/io.py +0 -0
  461. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/utils/regex.py +0 -0
  462. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/utils/time.py +0 -0
  463. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/writers/__init__.py +0 -0
  464. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/writers/assets_writer.py +0 -0
  465. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/writers/cluster_markdown.py +0 -0
  466. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/log/writers/summary_writer.py +0 -0
  467. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/__init__.py +0 -0
  468. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/audio/__init__.py +0 -0
  469. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/audio/api/__init__.py +0 -0
  470. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/audio/api/main.py +0 -0
  471. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/audio/api/mcp_server.py +0 -0
  472. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/audio/api/mcp_setup.py +0 -0
  473. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/audio/api/run.py +0 -0
  474. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/audio/api/settings.py +0 -0
  475. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/audio/converter.py +0 -0
  476. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/audio/formatter.py +0 -0
  477. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/audio/service.py +0 -0
  478. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/document_converter.py +0 -0
  479. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/job_store.py +0 -0
  480. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/video/__init__.py +0 -0
  481. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/video/api/__init__.py +0 -0
  482. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/video/api/main.py +0 -0
  483. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/video/api/mcp_server.py +0 -0
  484. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/video/api/mcp_setup.py +0 -0
  485. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/video/api/run.py +0 -0
  486. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/video/api/settings.py +0 -0
  487. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/video/converter.py +0 -0
  488. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/video/formatter.py +0 -0
  489. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/video/service.py +0 -0
  490. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/whisper_language.py +0 -0
  491. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/youtube/__init__.py +0 -0
  492. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/youtube/api/__init__.py +0 -0
  493. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/youtube/api/main.py +0 -0
  494. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/youtube/api/mcp_server.py +0 -0
  495. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/youtube/api/mcp_setup.py +0 -0
  496. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/youtube/api/run.py +0 -0
  497. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/youtube/api/settings.py +0 -0
  498. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/youtube/converter.py +0 -0
  499. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/youtube/formatter.py +0 -0
  500. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/youtube/metadata.py +0 -0
  501. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/youtube/service.py +0 -0
  502. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/media/youtube/transcript.py +0 -0
  503. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/__init__.py +0 -0
  504. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/api/__init__.py +0 -0
  505. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/api/main.py +0 -0
  506. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/api/mcp_server.py +0 -0
  507. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/api/run.py +0 -0
  508. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/api/schemas.py +0 -0
  509. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/api/settings.py +0 -0
  510. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/cli/__init__.py +0 -0
  511. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/cli/main.py +0 -0
  512. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/config/__init__.py +0 -0
  513. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/config/default.yaml +0 -0
  514. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/converters/__init__.py +0 -0
  515. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/converters/swagger2_to_openapi3.py +0 -0
  516. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/core/__init__.py +0 -0
  517. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/core/extractor.py +0 -0
  518. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/core/run_config.py +0 -0
  519. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/core/zip_export.py +0 -0
  520. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/enrichers/__init__.py +0 -0
  521. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/enrichers/rules.py +0 -0
  522. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/enrichers/sample_body.py +0 -0
  523. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/generators/__init__.py +0 -0
  524. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/generators/dependency_graph.py +0 -0
  525. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/loaders/__init__.py +0 -0
  526. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/loaders/spec_loader.py +0 -0
  527. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/mcp/__init__.py +0 -0
  528. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/mcp/server.py +0 -0
  529. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/models/__init__.py +0 -0
  530. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/models/domain.py +0 -0
  531. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/normalizers/__init__.py +0 -0
  532. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/normalizers/operations.py +0 -0
  533. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/normalizers/schema_flatten.py +0 -0
  534. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/parsers/__init__.py +0 -0
  535. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/parsers/openapi_parser.py +0 -0
  536. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/resolvers/__init__.py +0 -0
  537. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/resolvers/ref_resolver.py +0 -0
  538. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/writers/__init__.py +0 -0
  539. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/openapi/writers/markdown_writer.py +0 -0
  540. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/pdf/__init__.py +0 -0
  541. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/pdf/api/__init__.py +0 -0
  542. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/pdf/api/main.py +0 -0
  543. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/pdf/api/mcp_server.py +0 -0
  544. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/pdf/api/settings.py +0 -0
  545. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/pdf/api/zip_bundle.py +0 -0
  546. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/pdf/converter.py +0 -0
  547. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/pdf/md_emit.py +0 -0
  548. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/pdf/pdf_extract.py +0 -0
  549. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/pdf/utils.py +0 -0
  550. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/playwright/__init__.py +0 -0
  551. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/playwright/api/__init__.py +0 -0
  552. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/playwright/api/convert_runner.py +0 -0
  553. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/playwright/api/jobs.py +0 -0
  554. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/playwright/api/main.py +0 -0
  555. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/playwright/api/mcp_server.py +0 -0
  556. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/playwright/api/mcp_setup.py +0 -0
  557. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/playwright/api/run.py +0 -0
  558. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/playwright/api/settings.py +0 -0
  559. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/playwright/assets.py +0 -0
  560. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/playwright/chunker.py +0 -0
  561. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/playwright/cli.py +0 -0
  562. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/playwright/extractor.py +0 -0
  563. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/playwright/html_to_md.py +0 -0
  564. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/playwright/options.py +0 -0
  565. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/playwright/pipeline.py +0 -0
  566. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/playwright/playwright_fetcher.py +0 -0
  567. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/__init__.py +0 -0
  568. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/api/__init__.py +0 -0
  569. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/api/convert_runner.py +0 -0
  570. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/api/jobs.py +0 -0
  571. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/api/main.py +0 -0
  572. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/api/mcp_server.py +0 -0
  573. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/api/mcp_setup.py +0 -0
  574. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/api/query_options.py +0 -0
  575. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/api/settings.py +0 -0
  576. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/convert_impl.py +0 -0
  577. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/converter.py +0 -0
  578. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/embedded_extract.py +0 -0
  579. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/ooxml_media.py +0 -0
  580. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/options.py +0 -0
  581. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/post_assets.py +0 -0
  582. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/text_formatting.py +0 -0
  583. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/vendor_pdf_md/__init__.py +0 -0
  584. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/vendor_pdf_md/convert.py +0 -0
  585. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/vendor_word_md/__init__.py +0 -0
  586. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/vendor_word_md/convert.py +0 -0
  587. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/ppt/zip_deep.py +0 -0
  588. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/text/__init__.py +0 -0
  589. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/text/api/__init__.py +0 -0
  590. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/text/api/convert_runner.py +0 -0
  591. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/text/api/jobs.py +0 -0
  592. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/text/api/main.py +0 -0
  593. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/text/api/mcp_server.py +0 -0
  594. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/text/api/mcp_setup.py +0 -0
  595. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/text/api/query_options.py +0 -0
  596. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/text/api/settings.py +0 -0
  597. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/text/convert_impl.py +0 -0
  598. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/text/converter.py +0 -0
  599. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/text/format_detect.py +0 -0
  600. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/text/md_emit_json.py +0 -0
  601. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/text/md_emit_txt.py +0 -0
  602. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/text/md_emit_xml.py +0 -0
  603. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/text/md_flatten.py +0 -0
  604. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/text/options.py +0 -0
  605. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/text/xml_parse.py +0 -0
  606. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/__init__.py +0 -0
  607. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/__init__.py +0 -0
  608. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/adapters/__init__.py +0 -0
  609. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/adapters/claude.py +0 -0
  610. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/adapters/cursor.py +0 -0
  611. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/adapters/openai.py +0 -0
  612. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/agent.py +0 -0
  613. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/bundle.py +0 -0
  614. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/chunks.py +0 -0
  615. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/cli.py +0 -0
  616. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-archive/references/example.md +0 -0
  617. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-codeflow/references/example.md +0 -0
  618. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-db/references/example.md +0 -0
  619. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-global/references/example.md +0 -0
  620. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-graph/references/example.md +0 -0
  621. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-image/references/example.md +0 -0
  622. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-media/references/example.md +0 -0
  623. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-openapi/references/example.md +0 -0
  624. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-pdf/references/example.md +0 -0
  625. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-playwright/references/example.md +0 -0
  626. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-ppt/references/example.md +0 -0
  627. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-text/references/example.md +0 -0
  628. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-url/references/example.md +0 -0
  629. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-word/references/example.md +0 -0
  630. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-ai-xlsx/references/example.md +0 -0
  631. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-reference/references/entrypoints.md +0 -0
  632. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/mdengine-reference/references/example.md +0 -0
  633. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/archive.md +0 -0
  634. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/db.md +0 -0
  635. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/graph.md +0 -0
  636. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/image.md +0 -0
  637. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/media.md +0 -0
  638. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/openapi.md +0 -0
  639. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/pdf.md +0 -0
  640. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/playwright.md +0 -0
  641. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/ppt.md +0 -0
  642. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/url.md +0 -0
  643. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/word.md +0 -0
  644. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/data/skills/modules/xlsx.md +0 -0
  645. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/rag.py +0 -0
  646. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/assistant/registry.py +0 -0
  647. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/skill_builder/__init__.py +0 -0
  648. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/skill_builder/__main__.py +0 -0
  649. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/skill_builder/dependency_graph.py +0 -0
  650. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/tools/skill_builder/pyproject_util.py +0 -0
  651. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/__init__.py +0 -0
  652. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/api/__init__.py +0 -0
  653. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/api/convert_runner.py +0 -0
  654. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/api/jobs.py +0 -0
  655. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/api/main.py +0 -0
  656. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/api/mcp_server.py +0 -0
  657. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/api/mcp_setup.py +0 -0
  658. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/api/query_options.py +0 -0
  659. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/api/settings.py +0 -0
  660. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/assets.py +0 -0
  661. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/convert_impl.py +0 -0
  662. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/converter.py +0 -0
  663. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/crawl.py +0 -0
  664. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/extract.py +0 -0
  665. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/fetch.py +0 -0
  666. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/html_to_md.py +0 -0
  667. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/options.py +0 -0
  668. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/page_convert.py +0 -0
  669. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/url/robots_util.py +0 -0
  670. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/word/__init__.py +0 -0
  671. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/word/api/__init__.py +0 -0
  672. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/word/api/convert_util.py +0 -0
  673. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/word/api/jobs.py +0 -0
  674. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/word/api/main.py +0 -0
  675. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/word/api/mcp_server.py +0 -0
  676. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/word/artifact.py +0 -0
  677. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/word/converter.py +0 -0
  678. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/word/settings.py +0 -0
  679. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/xlsx/__init__.py +0 -0
  680. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/xlsx/api/__init__.py +0 -0
  681. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/xlsx/api/app.py +0 -0
  682. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/xlsx/convert_config.py +0 -0
  683. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/xlsx/converter.py +0 -0
  684. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/xlsx/converter_core.py +0 -0
  685. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/xlsx/excel_reader.py +0 -0
  686. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/xlsx/markdown_emitter.py +0 -0
  687. {mdengine-0.9.0 → mdengine-0.10.0}/src/md_generator/xlsx/mcp_server.py +0 -0
  688. {mdengine-0.9.0 → mdengine-0.10.0}/src/mdengine.egg-info/dependency_links.txt +0 -0
  689. {mdengine-0.9.0 → mdengine-0.10.0}/src/mdengine.egg-info/top_level.txt +0 -0
@@ -1,12 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mdengine
3
- Version: 0.9.0
3
+ Version: 0.10.0
4
4
  Summary: Convert PDF, Office, images, audio, video, text/JSON/XML, ZIP archives, web URLs, databases, graphs, and OpenAPI specs to Markdown.
5
5
  Author: mdengine contributors
6
6
  License-Expression: MIT
7
7
  Project-URL: Homepage, https://github.com/vishal7090/md-generator
8
8
  Project-URL: Repository, https://github.com/vishal7090/md-generator
9
9
  Project-URL: Issues, https://github.com/vishal7090/md-generator/issues
10
+ Project-URL: Documentation, https://vishal7090.github.io/md-generator/
10
11
  Keywords: markdown,pdf,docx,pptx,xlsx,ocr,zip,url,html,youtube,playwright,database,openapi,codeflow
11
12
  Classifier: Programming Language :: Python :: 3
12
13
  Classifier: Programming Language :: Python :: 3 :: Only
@@ -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"
@@ -134,6 +139,17 @@ Requires-Dist: scikit-learn>=1.3.0; extra == "log-semantic"
134
139
  Requires-Dist: sentence-transformers>=3.0.0; extra == "log-semantic"
135
140
  Provides-Extra: log-pretty
136
141
  Requires-Dist: loguru>=0.7.0; extra == "log-pretty"
142
+ Provides-Extra: log-otel-proto
143
+ Requires-Dist: opentelemetry-proto>=1.27.0; extra == "log-otel-proto"
144
+ Requires-Dist: protobuf>=4.25.0; extra == "log-otel-proto"
145
+ Provides-Extra: log-export-parquet
146
+ Requires-Dist: pyarrow>=14.0.0; extra == "log-export-parquet"
147
+ Provides-Extra: log-stream-kafka
148
+ Requires-Dist: kafka-python>=2.0.2; extra == "log-stream-kafka"
149
+ Provides-Extra: log-stream-redis
150
+ Requires-Dist: redis>=5.0.0; extra == "log-stream-redis"
151
+ Provides-Extra: log-stream-ws
152
+ Requires-Dist: websockets>=12.0; extra == "log-stream-ws"
137
153
  Provides-Extra: api
138
154
  Requires-Dist: fastapi>=0.115.0; extra == "api"
139
155
  Requires-Dist: uvicorn[standard]>=0.32.0; extra == "api"
@@ -143,6 +159,14 @@ Requires-Dist: pydantic-settings>=2.0.0; extra == "api"
143
159
  Provides-Extra: mcp
144
160
  Requires-Dist: mcp>=1.2.0; extra == "mcp"
145
161
  Requires-Dist: fastmcp>=2.3.0; extra == "mcp"
162
+ Provides-Extra: docs
163
+ Requires-Dist: mkdocs-material; extra == "docs"
164
+ Requires-Dist: mkdocstrings; extra == "docs"
165
+ Requires-Dist: mkdocstrings-python; extra == "docs"
166
+ Requires-Dist: pymdown-extensions; extra == "docs"
167
+ Requires-Dist: mkdocs-mermaid2-plugin; extra == "docs"
168
+ Requires-Dist: mkdocs-git-revision-date-localized-plugin; extra == "docs"
169
+ Requires-Dist: mike; extra == "docs"
146
170
  Provides-Extra: skill-openai
147
171
  Requires-Dist: openai>=1.30.0; extra == "skill-openai"
148
172
  Provides-Extra: skill-rag-chroma
@@ -201,7 +225,7 @@ Single Python distribution for converting **PDF**, **Word (.docx)**, **PowerPoin
201
225
  - **Python:** 3.10+
202
226
  - **License:** [MIT](LICENSE)
203
227
 
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)
228
+ **Quick links:** [On a new computer](#on-a-new-computer) · [Command-line execution](#command-line-execution) · [Python library](#python-library) · [Audio and video](#audio-and-video-to-markdown) · [HTTP API](#http-api-fastapi) · [MCP](#mcp-model-context-protocol) · [AI assistant CLI](#ai-assistant-cli) · [Development](#development) · [Published documentation](https://vishal7090.github.io/md-generator/) · [Code of Conduct](CODE_OF_CONDUCT.md)
205
229
 
206
230
  ---
207
231
 
@@ -270,9 +294,23 @@ pip install "mdengine[all]"
270
294
  | `url-full` | `url` plus PDF/Word/PPTX/XLSX/archive stack for **post-converting** downloaded linked files to Markdown |
271
295
  | `audio` | **Audio → Markdown** via Whisper (`openai-whisper`); ships `imageio-ffmpeg` for a bundled **ffmpeg** when none is on `PATH` |
272
296
  | `video` | **Video → Markdown** (ffmpeg extracts mono 16 kHz WAV, then same Whisper stack as `audio`) |
297
+ | `youtube` | **YouTube → Markdown** (captions + page metadata; `youtube-transcript-api`, httpx, BeautifulSoup, lxml) |
298
+ | `playwright` | **Playwright-rendered SPA → Markdown** (`playwright` + same HTML stack as `url`; run `playwright install chromium` after install) |
299
+ | `db` | **Database metadata → Markdown** (SQLAlchemy, drivers, `mermaid-py` for ERD helpers) |
300
+ | `openapi` | **OpenAPI / Swagger → Markdown** (`prance`, `openapi-spec-validator`, PyYAML) |
301
+ | `codeflow` | **Static codeflow / call graphs → Markdown** (`networkx`, `javalang`; core scanners) |
302
+ | `codeflow-worker` | Optional **Celery + Redis** workers for the codeflow API async path |
303
+ | `codeflow-treesitter` | **Tree-sitter** parsers (JS/TS/TSX, C++) for richer codeflow slices |
304
+ | `codeflow-clang` | **libclang** bindings for C/C++ parsing when used by the codeflow pipeline |
305
+ | `codeflow-semantic` | **Semantic clustering** (SentenceTransformers, scikit-learn, numpy; large install) |
306
+ | `log` | **Log files → Markdown** (`pandas`, PyYAML, date parsing) |
307
+ | `log-cluster` | Log pipeline **clustering** (scikit-learn) |
308
+ | `log-semantic` | Log pipeline **semantic** helpers (SentenceTransformers + scikit-learn; large) |
309
+ | `log-pretty` | Optional **loguru** for pretty console diagnostics during log conversion |
273
310
  | `api` | FastAPI, uvicorn, httpx, pydantic-settings |
274
311
  | `mcp` | MCP servers (`mcp`, `fastmcp` where used) |
275
312
  | `graph` | **Graph → Markdown** (Neo4j Bolt + NetworkX GraphML/GML): `networkx`, `neo4j`, `pyyaml` |
313
+ | `docs` | **MkDocs** site tooling (Material, mkdocstrings, Mermaid plugin, mike) for maintainers publishing reference docs |
276
314
  | `dev` | pytest + API/MCP test helpers |
277
315
  | `all` | Large superset of dependencies (use only if you need everything) |
278
316
  | `skill-openai` | Optional helpers for OpenAI-style calls with assembled skill context (`md_generator.tools.assistant`) |
@@ -333,7 +371,17 @@ If the shell reports “command not found”, ensure the Python **Scripts** dire
333
371
  | `md-openapi` | `md_generator.openapi.cli.main:main` | `pip install "mdengine[openapi]"` then `md-openapi generate --file openapi.yaml --output ./docs` (or `mdengine openapi-to-md generate …`) |
334
372
  | `md-openapi-api` | `md_generator.openapi.api.run:main` | FastAPI on port **8015** (`OPENAPI_TO_MD_PORT`): `POST /openapi-to-md/generate` (OpenAPI upload → ZIP), `/health`, MCP at **`/mcp`** |
335
373
  | `md-openapi-mcp` | `md_generator.openapi.api.mcp_server:main` | Standalone MCP: `api_validate_openapi_yaml`, `api_generate_readme_markdown`, `api_run_sync_zip_base64` |
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 …` |
374
+ | `md-playwright` | `md_generator.playwright.cli:main` | `pip install "mdengine[playwright]"` then `md-playwright https://spa.example/app ./spa-out` (after `playwright install chromium`) |
375
+ | `md-playwright-api` | `md_generator.playwright.api.run:main` | FastAPI + MCP on port **8014** (`PLAYWRIGHT_TO_MD_API_PORT` / settings); see [HTTP API](#http-api-fastapi) |
376
+ | `md-playwright-mcp` | `md_generator.playwright.api.mcp_server:main` | Standalone MCP for Playwright capture tools |
377
+ | `md-codeflow` | `md_generator.codeflow.cli.main:main` | Same as `codeflow` — `md-codeflow scan …` (alias of packaged `codeflow` script) |
378
+ | `codeflow` | `md_generator.codeflow.cli.main:main` | `pip install "mdengine[codeflow]"` then `codeflow scan path/to/src --output ./out --lang java` |
379
+ | `md-codeflow-api` | `md_generator.codeflow.api.run:main` | FastAPI on port **8016** (`CODEFLOW_TO_MD_PORT`); upload/workspace job flow + MCP at **`/mcp`** when MCP extras resolve |
380
+ | `md-codeflow-mcp` | `md_generator.codeflow.api.mcp_server:main` | Standalone **stdio** MCP for codeflow tools |
381
+ | `md-log` | `md_generator.log.cli.main:main` | `pip install "mdengine[log]"` then `md-log --config log.yaml` (or `mdengine log-to-md …`) |
382
+ | `md-log-api` | `md_generator.log.api.run:main` | FastAPI on port **8012** (`LOG_TO_MD_PORT`); set a different port if **`md-graph-api`** or **`md-video-api`** already uses **8012** |
383
+ | `md-log-mcp` | `md_generator.log.api.mcp_server:main` | Standalone MCP (`stdio` \| `sse` \| `streamable-http`) |
384
+ | `mdengine` | `md_generator.engine_cli:main` | `mdengine ai assist …`, `mdengine ai export …`, `mdengine skill build …`, `mdengine db-to-md …`, `mdengine log-to-md …`, `mdengine graph-to-md …`, `mdengine openapi-to-md generate …`, `mdengine codeflow-to-md scan …` |
337
385
 
338
386
  **openapi-to-md (`md-openapi`):** OpenAPI **3.x** is parsed directly; **Swagger 2.0** (`swagger: "2.0"`) documents are **converted in-process** to OpenAPI 3.0.3 (deterministic, in-repo converter) before `$ref` resolution. Edge-heavy specs (unusual OAuth2 flows, vendor extensions) may still need fixes after conversion.
339
387
 
@@ -343,6 +391,14 @@ If the shell reports “command not found”, ensure the Python **Scripts** dire
343
391
 
344
392
  **db-to-md SQLite:** set **`database.type: sqlite`** and **`database.uri`** to a SQLAlchemy URL such as **`sqlite:///my.db`** or **`sqlite:////C:/data/my.db`**. The default SQLite catalog is **`main`**; packaged YAML that still has **`schema: public`** is normalized to **`main`** when the type is SQLite. CLI: **`--type sqlite`**. Stored routines, sequences, and partitions are not used by SQLite and stay empty; tables, indexes, views, triggers, and ERD (via FK introspection) follow the same export path as other SQL engines.
345
393
 
394
+ **db-to-md SQL Server:** set **`database.type: mssql`** (aliases: `sqlserver`) and a **`mssql+pyodbc://`** URI with an ODBC driver query (for example `?driver=ODBC+Driver+18+for+SQL+Server`). Set **`database.schema`** to the SQL Server schema (default **`dbo`**). Optional features: **`synonyms`**, **`dependencies`** (lineage from `sys.sql_expression_dependencies`). Table/column/routine **MS_Description** extended properties are exported when present. Requires **`pyodbc`** (`mdengine[db]`).
395
+
396
+ **db-to-md Microsoft Access:** set **`database.type: access`** with a file path via **`mssql+pyodbc:///?odbc_connect=...`** (built automatically from uploads) or use **`POST /db-to-md/run/access`** / **`POST /db-to-md/job/access`** to upload **`.mdb` / `.accdb`** files (Windows + Microsoft Access ODBC driver). Saved **Query** objects are exported as views (SELECT) or query procedures (action queries). Requires **`pyodbc`** and an Access-compatible ODBC driver.
397
+
398
+ **db-to-md CLI validation:** **`md-db --test-connection`** (or **`mdengine db-to-md --test-connection`**) checks connectivity without exporting. **`--list-schemas`** prints schema/catalog names (`--output-format json` optional).
399
+
400
+ **db-to-md export manifest:** every run can write **`export_manifest.json`** at the output root (counts, file list, ERD paths). Control with **`output.write_manifest`** (default true). **`output.markdown_cross_links`** adds **Related** links between tables via foreign keys when using split files (default true).
401
+
346
402
  **db-to-md API SQLite upload:** **`POST /db-to-md/run/sqlite`** — `multipart/form-data` with field **`file`** (the `.sqlite` / `.db` bytes; must start with the standard `SQLite format 3` header) and optional **`config`** (JSON string with the same shape as a normal run body minus `database`: `schema`, `output`, `features`, `execution`, `limits`, `erd`). Returns the metadata ZIP immediately. **`POST /db-to-md/job/sqlite`** — same form fields; saves the file under the job workspace and runs the existing job pipeline (`GET /db-to-md/job/{id}/download` when complete). Upload size cap: env **`DB_TO_MD_MAX_SQLITE_UPLOAD_MB`** (default **256**). Large ZIPs may still require the async job path if they exceed **`DB_TO_MD_MAX_SYNC_ZIP_MB`** on the sync upload route.
347
403
 
348
404
  **graph-to-md (Neo4j + NetworkX):** library lives under [`md_generator/graph/`](src/md_generator/graph/). **Sources:** **`networkx`** (GraphML/GML via `graph.graph_file` or `--graph-file`) or **`neo4j`** (`graph.uri`, `graph.user`, `graph.password`, optional `graph.database` for `session(database=…)`). **Output layout:** by default **`output.combine_markdown: true`** writes **`nodes.md`**, **`relationship.md`**, and **`graph_summary.md`** (summary plus embedded nodes and relationships). Set **`combine_markdown: false`** or CLI **`--individual` / `--markdown-layout individual`** for per-entity files under **`nodes/`** and **`relationships/`**. **Diagrams:** **`viz.mermaid: true`** (default) writes **`graph/graph.mmd`** and embeds a fenced Mermaid block in the export **`README.md`** (no Graphviz required). **`viz.enabled: true`** or CLI **`--viz`** also writes **`graph/graph.dot`** and runs **`dot`** for PNG/SVG/PDF when Graphviz is on `PATH` (or **`GRAPHVIZ_DOT`**). CLI **`--no-mermaid`** disables Mermaid; **`--depth`**, **`--start-node`**, **`--max-nodes`**, **`--max-edges`** bound traversal. Packaged defaults: [`src/md_generator/graph/config/default.yaml`](src/md_generator/graph/config/default.yaml). Tests: **`graph-to-md/tests/`**; API image: [`graph-to-md/Dockerfile.api`](graph-to-md/Dockerfile.api).
@@ -366,6 +422,10 @@ md-url https://example.com/page ./page-bundle --artifact-layout
366
422
  md-audio ./voice.mp3 ./voice.md --model tiny
367
423
  md-video ./screen.mp4 ./screen.md --model base
368
424
  pip install "mdengine[graph]" && md-graph --source neo4j --uri neo4j://localhost:7687 --user neo4j --password secret --database neo4j --output ./graph-out --viz
425
+ pip install "mdengine[playwright]" && playwright install chromium && md-playwright https://example.com/app ./spa-out
426
+ pip install "mdengine[openapi]" && md-openapi generate --file openapi.yaml --output ./openapi-md
427
+ pip install "mdengine[log]" && md-log --config log.yaml
428
+ md-codeflow scan ./src --output ./cf-out --lang python
369
429
  ```
370
430
 
371
431
  **Windows PowerShell** (same commands; use backslashes for paths if you prefer)
@@ -378,6 +438,9 @@ md-audio .\voice.mp3 .\voice.md --model tiny
378
438
  md-video .\screen.mp4 .\screen.md --model base
379
439
  pip install "mdengine[graph]"
380
440
  md-graph --source neo4j --uri neo4j://localhost:7687 --user neo4j --password secret --database neo4j --output .\graph-out --viz
441
+ pip install "mdengine[playwright]"
442
+ playwright install chromium
443
+ md-playwright https://example.com/app .\spa-out
381
444
  ```
382
445
 
383
446
  **Windows CMD**
@@ -545,6 +608,113 @@ convert_zip(
545
608
 
546
609
  `repo_root` on `ConvertOptions` is **deprecated and ignored**; converters are loaded in-process from `md_generator`.
547
610
 
611
+ ### URL (HTML)
612
+
613
+ ```python
614
+ from pathlib import Path
615
+
616
+ import httpx
617
+ from md_generator.url.convert_impl import run_single
618
+ from md_generator.url.options import ConvertOptions
619
+
620
+ with httpx.Client(follow_redirects=True, timeout=30.0) as client:
621
+ run_single(
622
+ "https://example.com/",
623
+ Path("web-out"),
624
+ ConvertOptions(artifact_layout=True, verbose=False),
625
+ client,
626
+ )
627
+ ```
628
+
629
+ See [url-to-md/README.md](url-to-md/README.md) for crawl modes, post-convert assets, and API bodies.
630
+
631
+ ### Playwright (SPA)
632
+
633
+ ```python
634
+ import asyncio
635
+ from pathlib import Path
636
+
637
+ from md_generator.playwright.options import PlaywrightOptions
638
+ from md_generator.playwright.pipeline import convert_url_to_md
639
+
640
+ async def main() -> None:
641
+ await convert_url_to_md(
642
+ "https://example.com/app",
643
+ Path("spa-out"),
644
+ PlaywrightOptions(),
645
+ )
646
+
647
+ asyncio.run(main())
648
+ ```
649
+
650
+ Install browsers once: `playwright install chromium`.
651
+
652
+ ### Database metadata (db-to-md)
653
+
654
+ ```python
655
+ from pathlib import Path
656
+
657
+ from md_generator.db.core.extractor import extract_to_markdown
658
+ from md_generator.db.core.run_config import load_run_config
659
+
660
+ cfg = load_run_config(Path("db-export.yaml"))
661
+ extract_to_markdown(cfg)
662
+ ```
663
+
664
+ YAML shape and ERD options are covered above under **db-to-md** CLI notes.
665
+
666
+ ### Graph (Neo4j / NetworkX)
667
+
668
+ ```python
669
+ from pathlib import Path
670
+
671
+ from md_generator.graph.core.extractor import extract_to_markdown
672
+ from md_generator.graph.core.run_config import load_graph_run_config
673
+
674
+ cfg = load_graph_run_config(Path("graph-export.yaml"))
675
+ extract_to_markdown(cfg)
676
+ ```
677
+
678
+ ### OpenAPI → Markdown
679
+
680
+ ```python
681
+ from pathlib import Path
682
+
683
+ from md_generator.openapi.core.extractor import extract_to_markdown
684
+ from md_generator.openapi.core.run_config import ApiRunConfig
685
+
686
+ cfg = ApiRunConfig(file=Path("openapi.yaml"), output_path=Path("api-md"))
687
+ extract_to_markdown(cfg)
688
+ ```
689
+
690
+ Use `load_api_run_config(Path("openapi-md.yaml"))` when you prefer a single YAML file for input/output/format defaults.
691
+
692
+ ### Log files (log-to-md)
693
+
694
+ ```python
695
+ from pathlib import Path
696
+
697
+ from md_generator.log.core.extractor import extract_to_markdown
698
+ from md_generator.log.core.run_config import load_run_config as load_log_run_config
699
+
700
+ cfg = load_log_run_config(Path("log-export.yaml"))
701
+ extract_to_markdown(cfg)
702
+ ```
703
+
704
+ ### Codeflow (static call graphs)
705
+
706
+ ```python
707
+ from pathlib import Path
708
+
709
+ from md_generator.codeflow.core.extractor import run_scan
710
+ from md_generator.codeflow.core.run_config import ScanConfig
711
+
712
+ cfg = ScanConfig(project_root=Path("my-service/src"), output_path=Path("codeflow-out"), languages="java")
713
+ run_scan(cfg)
714
+ ```
715
+
716
+ More flags and language notes: [Development](#development) (section **Codeflow**) and [`codeflow-to-md/docs/graph-and-outputs.md`](codeflow-to-md/docs/graph-and-outputs.md).
717
+
548
718
  ---
549
719
 
550
720
  ## Audio and video to Markdown
@@ -661,7 +831,7 @@ Equivalent modules: `python -m md_generator.media.audio.api.mcp_server`, `python
661
831
 
662
832
  ### Thin shims (repo clone)
663
833
 
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/).
834
+ [`audio-to-md/converter.py`](audio-to-md/converter.py), [`video-to-md/converter.py`](video-to-md/converter.py), and [`youtube-to-md/converter.py`](youtube-to-md/converter.py) delegate to the same `main` as `md-audio` / `md-video` / `md-youtube`. Tests and `pytest.ini` live under `audio-to-md/tests/`, `video-to-md/tests/`, and `youtube-to-md/tests/`. [`db-to-md/converter.py`](db-to-md/converter.py) delegates to `md-db`; tests live under `db-to-md/tests/`. **graph-to-md** uses `md-graph` / `mdengine graph-to-md` directly (no thin `converter.py` shim); tests live under [`graph-to-md/tests/`](graph-to-md/tests/). [`openapi-to-md/converter.py`](openapi-to-md/converter.py) delegates to `md-openapi`; tests live under [`openapi-to-md/tests/`](openapi-to-md/tests/); example OpenAPI and output notes: [`openapi-to-md/examples/`](openapi-to-md/examples/). [`log-to-md/converter.py`](log-to-md/converter.py) delegates to `md-log`; tests under [`log-to-md/tests/`](log-to-md/tests/). [`codeflow-to-md/converter.py`](codeflow-to-md/converter.py) invokes the same CLI entrypoint as `md-codeflow` / `codeflow`; tests under [`codeflow-to-md/tests/`](codeflow-to-md/tests/). [`url-to-md/converter.py`](url-to-md/converter.py) matches `md-url`; tests under [`url-to-md/tests/`](url-to-md/tests/). [`playwright-to-md/tests/`](playwright-to-md/tests/) cover the Playwright pipeline (no root `converter.py` shim required).
665
835
 
666
836
  ---
667
837
 
@@ -697,23 +867,28 @@ Install `mdengine[api]` plus the format extra(s), then run the **`app`** object
697
867
  | Audio (Whisper) | `md_generator.media.audio.api.main:create_app` (use **`--factory`**) or `…main:app` | `audio`, `api`, `mcp` |
698
868
  | Video (Whisper) | `md_generator.media.video.api.main:create_app` (use **`--factory`**) or `…main:app` | `video`, `api`, `mcp` |
699
869
  | YouTube | `md_generator.media.youtube.api.main:create_app` (use **`--factory`**) or `…main:app` | `youtube`, `api`, `mcp` |
870
+ | Codeflow (workspace scans) | `md_generator.codeflow.api.main:app` | `codeflow`, `api`, `mcp` |
871
+ | Log files → Markdown | `md_generator.log.api.main:app` | `log`, `api`, `mcp` |
700
872
 
701
- Examples:
873
+ Examples (ports are **illustrative** so several services can run together; each `md-*-api` / `run` module has its own **default** — set `*_PORT` / `*_API_PORT` env vars to match your layout):
702
874
 
703
875
  ```bash
704
876
  uvicorn md_generator.pdf.api.main:app --host 127.0.0.1 --port 8001
705
877
  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
878
+ uvicorn md_generator.archive.api.main:app --host 127.0.0.1 --port 8008
879
+ uvicorn md_generator.url.api.main:app --host 127.0.0.1 --port 8017
880
+ uvicorn md_generator.db.api.main:app --host 127.0.0.1 --port 8010
708
881
  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
882
+ uvicorn md_generator.graph.api.main:app --host 127.0.0.1 --port 8020
710
883
  uvicorn md_generator.openapi.api.main:app --host 127.0.0.1 --port 8015
884
+ uvicorn md_generator.codeflow.api.main:app --host 127.0.0.1 --port 8016
885
+ uvicorn md_generator.log.api.main:app --host 127.0.0.1 --port 8018
711
886
  uvicorn md_generator.media.audio.api.main:create_app --factory --host 127.0.0.1 --port 8011
712
887
  uvicorn md_generator.media.video.api.main:create_app --factory --host 127.0.0.1 --port 8012
713
888
  uvicorn md_generator.media.youtube.api.main:create_app --factory --host 127.0.0.1 --port 8013
714
889
  ```
715
890
 
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**).
891
+ **Port note:** **`md-graph-api`**, **`md-video-api`**, and **`md-log-api`** all default to **8012** in their respective `run.py` modules. Run only one on that port, or set **`GRAPH_TO_MD_PORT`**, **`MD_VIDEO_API_PORT`**, and **`LOG_TO_MD_PORT`** so each process listens on a unique port. **`md-db-api`** defaults to **8010** (not shown colliding with the archive example above, which uses **8008** on purpose). **`md-openapi-api`** defaults to **8015** (`OPENAPI_TO_MD_PORT`). **`md-youtube-api`** defaults to **8013**; **`md-playwright-api`** / **`PLAYWRIGHT_TO_MD_API_PORT`** default to **8014**. **`md-codeflow-api`** defaults to **8016** (`CODEFLOW_TO_MD_PORT`).
717
892
 
718
893
  ### MCP over HTTP on the same server
719
894
 
@@ -736,6 +911,8 @@ Prefixes differ per service (often read from a `.env` file next to the process):
736
911
  | Database metadata | `DB_TO_MD_` | `DB_TO_MD_JOB_SQLITE_PATH`, `DB_TO_MD_JOB_WORKSPACE_ROOT`, `DB_TO_MD_CORS_ORIGINS`, `DB_TO_MD_MAX_SYNC_ZIP_MB`, `DB_TO_MD_HOST`, `DB_TO_MD_PORT` (default **8010**) |
737
912
  | Graph metadata | `GRAPH_TO_MD_` | `GRAPH_TO_MD_JOB_SQLITE_PATH`, `GRAPH_TO_MD_JOB_WORKSPACE_ROOT`, `GRAPH_TO_MD_CORS_ORIGINS`, `GRAPH_TO_MD_MAX_SYNC_ZIP_MB`, `GRAPH_TO_MD_HOST`, `GRAPH_TO_MD_PORT` (default **8012**) |
738
913
  | OpenAPI → Markdown | `OPENAPI_TO_MD_` | `OPENAPI_TO_MD_CORS_ORIGINS`, `OPENAPI_TO_MD_MAX_SYNC_ZIP_MB`, `OPENAPI_TO_MD_HOST`, `OPENAPI_TO_MD_PORT` (default **8015**) |
914
+ | Codeflow API | `CODEFLOW_TO_MD_` / `CODEFLOW_` | `CODEFLOW_TO_MD_HOST`, `CODEFLOW_TO_MD_PORT` (default **8016**); in-app limits: `CODEFLOW_MAX_UPLOAD_ZIP_MB`, `CODEFLOW_MAX_SYNC_ZIP_MB`, `CODEFLOW_JOB_WORKSPACE_ROOT`, `CODEFLOW_SQLITE_PATH`, CORS via `CODEFLOW_CORS` |
915
+ | Log API | `LOG_TO_MD_` | `LOG_TO_MD_HOST`, `LOG_TO_MD_PORT` (default **8012** — change if **graph** or **video** API uses that port), `LOG_TO_MD_CORS_ORIGINS`, `LOG_TO_MD_MAX_SYNC_ZIP_MB`, `LOG_TO_MD_MAX_LOG_UPLOAD_MB`, workspace / SQLite paths |
739
916
  | Audio API | `MD_AUDIO_` | `MD_AUDIO_MAX_UPLOAD_MB`, `MD_AUDIO_MAX_SYNC_UPLOAD_MB`, `MD_AUDIO_JOB_TTL_SECONDS`, `MD_AUDIO_TEMP_DIR`, `MD_AUDIO_CORS_ORIGINS`, `MD_AUDIO_API_HOST`, `MD_AUDIO_API_PORT` |
740
917
  | Video API | `MD_VIDEO_` | Same pattern as audio with `MD_VIDEO_*` (defaults: larger upload/sync caps, port **8012**) |
741
918
  | YouTube API | `MD_YOUTUBE_` | `MD_YOUTUBE_JOB_TTL_SECONDS`, `MD_YOUTUBE_TEMP_DIR`, `MD_YOUTUBE_CORS_ORIGINS`, `MD_YOUTUBE_API_HOST`, `MD_YOUTUBE_API_PORT` (default **8013**); optional `MD_YOUTUBE_YTDLP` path for audio fallback |
@@ -762,13 +939,15 @@ Two usage patterns:
762
939
  | PPTX | `python -m md_generator.ppt.api.mcp_server` (see module docstring for flags) |
763
940
  | Image | `python -m md_generator.image.api.mcp_server` (see module for CLI) |
764
941
  | 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` |
942
+ | Playwright / SPA | `md-playwright`, `md-playwright-api`, `md-playwright-mcp`, or `python -m md_generator.playwright.api.mcp_server` / `--transport sse` / `--transport streamable-http` |
766
943
  | Audio | `md-audio-mcp` or `python -m md_generator.media.audio.api.mcp_server` — `--transport stdio` (default), `sse`, `streamable-http` |
767
944
  | Video | `md-video-mcp` or `python -m md_generator.media.video.api.mcp_server` — same transports |
768
945
  | YouTube | `md-youtube-mcp` or `python -m md_generator.media.youtube.api.mcp_server` — same transports |
769
946
  | Database metadata | `md-db-mcp` or `python -m md_generator.db.api.mcp_server` — `--transport stdio` (default), `sse`, `streamable-http` |
770
947
  | Graph (Neo4j / NetworkX) | `md-graph-mcp` or `python -m md_generator.graph.api.mcp_server` — `--transport stdio` (default), `sse`, `streamable-http` |
771
948
  | OpenAPI → Markdown | `md-openapi-mcp` or `python -m md_generator.openapi.api.mcp_server` — `--transport stdio` (default), `sse`, `streamable-http` |
949
+ | Codeflow | `md-codeflow-mcp` or `python -m md_generator.codeflow.api.mcp_server` — **stdio** MCP (see module for details) |
950
+ | Log files | `md-log-mcp` or `python -m md_generator.log.api.mcp_server` — `--transport stdio` (default), `sse`, `streamable-http` |
772
951
 
773
952
  **Word** and **XLSX** also ship a small runner script in the repo:
774
953
 
@@ -897,7 +1076,9 @@ pip install -e ".[dev,all]" # or a smaller subset of extras
897
1076
  python -m pytest
898
1077
  ```
899
1078
 
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.
1079
+ Tests live under each legacy folder’s `tests/` directory (e.g. `pdf-to-md/tests/`), plus **`url-to-md/tests/`**, **`playwright-to-md/tests/`**, **`youtube-to-md/tests/`**, **`graph-to-md/tests/`**, **`openapi-to-md/tests/`**, **`codeflow-to-md/tests/`**, **`log-to-md/tests/`**, and **[`tool-assistant/tests/`](tool-assistant/tests/)** for the skill SDK; `pyproject.toml` sets `pythonpath = ["src"]` so **`md_generator`** (including **`md_generator.tools.assistant`**) resolves without a manual `PYTHONPATH` when you use `pytest` from the config.
1080
+
1081
+ **Docs site (maintainers):** install **`mdengine[docs]`**, then build or serve the MkDocs project from the repo root (`mkdocs.yml`). The published site URL is listed under **Documentation** in `[project.urls]` on PyPI ([GitHub Pages build](https://vishal7090.github.io/md-generator/)).
901
1082
 
902
1083
  ### Codeflow (`md_generator.codeflow`)
903
1084
 
@@ -929,6 +1110,8 @@ python -m md_generator.codeflow.cli.main scan path/to/src --output ./codeflow-ou
929
1110
  | Path | Role |
930
1111
  |------|------|
931
1112
  | `LICENSE` | MIT license text |
1113
+ | `docs/` | **MkDocs** source (module guides, `index.md`); build with **`mdengine[docs]`** |
1114
+ | `mkdocs.yml` | MkDocs configuration |
932
1115
  | `CODE_OF_CONDUCT.md` | [Contributor Covenant](https://www.contributor-covenant.org/) 2.1 |
933
1116
  | `src/md_generator/` | **Library source** (all formats + `api` subpackages); **audio/video** under [`media/audio/`](src/md_generator/media/audio/) and [`media/video/`](src/md_generator/media/video/); **graph-to-md** under [`graph/`](src/md_generator/graph/) |
934
1117
  | `pyproject.toml` | Packaging, extras, CLI entry points, pytest |