typedef-data-intelligence 0.2.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 (262) hide show
  1. typedef_data_intelligence-0.2.0/.dockerignore +101 -0
  2. typedef_data_intelligence-0.2.0/.env.example +191 -0
  3. typedef_data_intelligence-0.2.0/.gitignore +54 -0
  4. typedef_data_intelligence-0.2.0/.justfile_help.txt +60 -0
  5. typedef_data_intelligence-0.2.0/CHANGELOG.md +31 -0
  6. typedef_data_intelligence-0.2.0/Dockerfile +60 -0
  7. typedef_data_intelligence-0.2.0/Dockerfile.dev +35 -0
  8. typedef_data_intelligence-0.2.0/Justfile +65 -0
  9. typedef_data_intelligence-0.2.0/MODEL_USAGE.md +198 -0
  10. typedef_data_intelligence-0.2.0/PKG-INFO +121 -0
  11. typedef_data_intelligence-0.2.0/README.md +282 -0
  12. typedef_data_intelligence-0.2.0/README.pypi.md +50 -0
  13. typedef_data_intelligence-0.2.0/config.api.yml +61 -0
  14. typedef_data_intelligence-0.2.0/config.cli.yml +79 -0
  15. typedef_data_intelligence-0.2.0/config.ingest.yml +106 -0
  16. typedef_data_intelligence-0.2.0/docker-entrypoint.dev.sh +10 -0
  17. typedef_data_intelligence-0.2.0/docs/LINEAR_TICKETING_BACKEND.md +209 -0
  18. typedef_data_intelligence-0.2.0/docs/architecture/SEMANTIC_SCHEMA_DESIGN.md +309 -0
  19. typedef_data_intelligence-0.2.0/docs/examples/memory_usage_examples.py +426 -0
  20. typedef_data_intelligence-0.2.0/docs/examples/pydantic_tool_customization_example.py +110 -0
  21. typedef_data_intelligence-0.2.0/docs/reference/ADDING_LINEAGE_BACKEND.md +911 -0
  22. typedef_data_intelligence-0.2.0/docs/reference/CLI_USAGE_EXAMPLES.md +251 -0
  23. typedef_data_intelligence-0.2.0/docs/reference/MEMORY_SYSTEM.md +492 -0
  24. typedef_data_intelligence-0.2.0/docs/reference/SEMANTIC_DIMENSIONS_GUIDE.md +205 -0
  25. typedef_data_intelligence-0.2.0/docs/reference/TYPE_ENUMS.md +345 -0
  26. typedef_data_intelligence-0.2.0/pyproject.toml +118 -0
  27. typedef_data_intelligence-0.2.0/pytest.ini +2 -0
  28. typedef_data_intelligence-0.2.0/scripts/data_generation/utils.py +330 -0
  29. typedef_data_intelligence-0.2.0/scripts/refingerprint_cache.py +137 -0
  30. typedef_data_intelligence-0.2.0/scripts/replay_events.py +104 -0
  31. typedef_data_intelligence-0.2.0/scripts/reset_demo_git_workspace.py +177 -0
  32. typedef_data_intelligence-0.2.0/scripts/reset_demo_linear.py +157 -0
  33. typedef_data_intelligence-0.2.0/scripts/snowflake_server.py +135 -0
  34. typedef_data_intelligence-0.2.0/snowflake-mcp-config.yaml +42 -0
  35. typedef_data_intelligence-0.2.0/src/lineage/__init__.py +9 -0
  36. typedef_data_intelligence-0.2.0/src/lineage/ag_ui/client.py +225 -0
  37. typedef_data_intelligence-0.2.0/src/lineage/agent/README.md +407 -0
  38. typedef_data_intelligence-0.2.0/src/lineage/agent/__init__.py +1 -0
  39. typedef_data_intelligence-0.2.0/src/lineage/agent/prompt_loader.py +163 -0
  40. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/__init__.py +0 -0
  41. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/__main__.py +10 -0
  42. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/ag_ui_handler.py +144 -0
  43. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/cli_agents.py +339 -0
  44. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/cli_runner.py +152 -0
  45. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/memory_observer.py +282 -0
  46. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/orchestrator.py +886 -0
  47. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/prompts/data_analyst.yaml.j2 +206 -0
  48. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/prompts/data_engineer_copilot.yaml.j2 +305 -0
  49. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/prompts/data_engineer_copilot_cost_optimized.yaml.j2 +171 -0
  50. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/prompts/data_engineer_reconciler.yaml.j2 +273 -0
  51. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/prompts/data_engineer_reconciler_cost_optimized.yaml.j2 +157 -0
  52. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/prompts/data_insights.yaml.j2 +185 -0
  53. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/prompts/data_investigator.yaml.j2 +221 -0
  54. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/prompts/data_quality.yaml.j2 +176 -0
  55. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/subagents.py +77 -0
  56. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/summary.py +166 -0
  57. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/tools/__init__.py +0 -0
  58. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/tools/bash.py +419 -0
  59. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/tools/common.py +6 -0
  60. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/tools/data.py +487 -0
  61. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/tools/dbt.py +290 -0
  62. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/tools/filesystem.py +505 -0
  63. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/tools/git.py +368 -0
  64. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/tools/graph.py +499 -0
  65. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/tools/memory.py +679 -0
  66. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/tools/presentation.py +1022 -0
  67. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/tools/ticketing.py +436 -0
  68. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/tools/todos.py +93 -0
  69. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/types.py +464 -0
  70. typedef_data_intelligence-0.2.0/src/lineage/agent/pydantic/utils.py +200 -0
  71. typedef_data_intelligence-0.2.0/src/lineage/agent/utils/__init__.py +12 -0
  72. typedef_data_intelligence-0.2.0/src/lineage/agent/utils/backend_hints.py +51 -0
  73. typedef_data_intelligence-0.2.0/src/lineage/agent/utils/cursor.py +258 -0
  74. typedef_data_intelligence-0.2.0/src/lineage/agent/utils/visualization.py +315 -0
  75. typedef_data_intelligence-0.2.0/src/lineage/api/app.py +385 -0
  76. typedef_data_intelligence-0.2.0/src/lineage/api/collector.py +87 -0
  77. typedef_data_intelligence-0.2.0/src/lineage/api/pydantic.py +730 -0
  78. typedef_data_intelligence-0.2.0/src/lineage/backends/README.md +660 -0
  79. typedef_data_intelligence-0.2.0/src/lineage/backends/__init__.py +0 -0
  80. typedef_data_intelligence-0.2.0/src/lineage/backends/config.py +687 -0
  81. typedef_data_intelligence-0.2.0/src/lineage/backends/data_query/__init__.py +18 -0
  82. typedef_data_intelligence-0.2.0/src/lineage/backends/data_query/duckdb_backend.py +761 -0
  83. typedef_data_intelligence-0.2.0/src/lineage/backends/data_query/factory.py +87 -0
  84. typedef_data_intelligence-0.2.0/src/lineage/backends/data_query/mcp.py +51 -0
  85. typedef_data_intelligence-0.2.0/src/lineage/backends/data_query/protocol.py +501 -0
  86. typedef_data_intelligence-0.2.0/src/lineage/backends/data_query/snowflake_native_backend.py +2512 -0
  87. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/__init__.py +49 -0
  88. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/_base_falkordb_adapter.py +1022 -0
  89. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/base.py +1209 -0
  90. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/factory.py +100 -0
  91. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/falkordb_adapter.py +104 -0
  92. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/falkordblite_adapter.py +72 -0
  93. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/models/__init__.py +218 -0
  94. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/models/base.py +217 -0
  95. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/models/clustering.py +118 -0
  96. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/models/dbt.py +271 -0
  97. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/models/dto.py +28 -0
  98. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/models/edges.py +765 -0
  99. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/models/openlineage.py +214 -0
  100. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/models/physical.py +233 -0
  101. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/models/profiling.py +77 -0
  102. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/models/semantic_analysis.py +619 -0
  103. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/models/semantic_views.py +265 -0
  104. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/models/tickets.py +49 -0
  105. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/protocol.py +981 -0
  106. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/schema.yaml +1195 -0
  107. typedef_data_intelligence-0.2.0/src/lineage/backends/lineage/schema_loader.py +588 -0
  108. typedef_data_intelligence-0.2.0/src/lineage/backends/mcp_auto.py +147 -0
  109. typedef_data_intelligence-0.2.0/src/lineage/backends/memory/__init__.py +51 -0
  110. typedef_data_intelligence-0.2.0/src/lineage/backends/memory/factory.py +151 -0
  111. typedef_data_intelligence-0.2.0/src/lineage/backends/memory/falkordb_adapter.py +213 -0
  112. typedef_data_intelligence-0.2.0/src/lineage/backends/memory/falkordblite_backend.py +118 -0
  113. typedef_data_intelligence-0.2.0/src/lineage/backends/memory/graphiti_adapter.py +465 -0
  114. typedef_data_intelligence-0.2.0/src/lineage/backends/memory/models.py +494 -0
  115. typedef_data_intelligence-0.2.0/src/lineage/backends/memory/protocol.py +320 -0
  116. typedef_data_intelligence-0.2.0/src/lineage/backends/reports/__init__.py +7 -0
  117. typedef_data_intelligence-0.2.0/src/lineage/backends/reports/factory.py +28 -0
  118. typedef_data_intelligence-0.2.0/src/lineage/backends/reports/filesystem.py +247 -0
  119. typedef_data_intelligence-0.2.0/src/lineage/backends/reports/protocol.py +73 -0
  120. typedef_data_intelligence-0.2.0/src/lineage/backends/threads/__init__.py +36 -0
  121. typedef_data_intelligence-0.2.0/src/lineage/backends/threads/models.py +79 -0
  122. typedef_data_intelligence-0.2.0/src/lineage/backends/threads/protocol.py +103 -0
  123. typedef_data_intelligence-0.2.0/src/lineage/backends/threads/sqlite.py +258 -0
  124. typedef_data_intelligence-0.2.0/src/lineage/backends/tickets/__init__.py +14 -0
  125. typedef_data_intelligence-0.2.0/src/lineage/backends/tickets/factory.py +197 -0
  126. typedef_data_intelligence-0.2.0/src/lineage/backends/tickets/filesystem_backend.py +189 -0
  127. typedef_data_intelligence-0.2.0/src/lineage/backends/tickets/linear_backend.py +697 -0
  128. typedef_data_intelligence-0.2.0/src/lineage/backends/tickets/protocol.py +210 -0
  129. typedef_data_intelligence-0.2.0/src/lineage/backends/todos/__init__.py +0 -0
  130. typedef_data_intelligence-0.2.0/src/lineage/backends/todos/todo_manager.py +220 -0
  131. typedef_data_intelligence-0.2.0/src/lineage/backends/types.py +295 -0
  132. typedef_data_intelligence-0.2.0/src/lineage/backends/utils.py +73 -0
  133. typedef_data_intelligence-0.2.0/src/lineage/cli.py +490 -0
  134. typedef_data_intelligence-0.2.0/src/lineage/ingest/README.md +711 -0
  135. typedef_data_intelligence-0.2.0/src/lineage/ingest/__init__.py +0 -0
  136. typedef_data_intelligence-0.2.0/src/lineage/ingest/config.py +343 -0
  137. typedef_data_intelligence-0.2.0/src/lineage/ingest/openlineage/__init__.py +0 -0
  138. typedef_data_intelligence-0.2.0/src/lineage/ingest/openlineage/loader.py +123 -0
  139. typedef_data_intelligence-0.2.0/src/lineage/ingest/openlineage/models.py +6 -0
  140. typedef_data_intelligence-0.2.0/src/lineage/ingest/openlineage/parser.py +113 -0
  141. typedef_data_intelligence-0.2.0/src/lineage/ingest/progress.py +233 -0
  142. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/__init__.py +0 -0
  143. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/change_detection.py +216 -0
  144. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/clustering/__init__.py +18 -0
  145. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/clustering/algorithms.py +288 -0
  146. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/clustering/enrichment.py +221 -0
  147. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/clustering/orchestrator.py +209 -0
  148. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/clustering/summarizer.py +225 -0
  149. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/dbt/__init__.py +0 -0
  150. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/dbt/builder.py +1153 -0
  151. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/dbt/config.py +51 -0
  152. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/dbt/dbt_loader.py +583 -0
  153. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/profiling/__init__.py +5 -0
  154. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/profiling/loader.py +232 -0
  155. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/__init__.py +36 -0
  156. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/config/__init__.py +0 -0
  157. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/config/session.py +127 -0
  158. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/loader.py +1128 -0
  159. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/models/__init__.py +105 -0
  160. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/models/analytical.py +353 -0
  161. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/models/base.py +28 -0
  162. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/models/business.py +215 -0
  163. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/models/technical.py +409 -0
  164. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/models/validation.py +134 -0
  165. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/output/__init__.py +0 -0
  166. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/output/exporters.py +192 -0
  167. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/output/reporters.py +40 -0
  168. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/passes/__init__.py +31 -0
  169. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/passes/base.py +93 -0
  170. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/passes/pass_01_relations.py +44 -0
  171. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/passes/pass_02_columns.py +43 -0
  172. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/passes/pass_03_joins.py +49 -0
  173. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/passes/pass_04_filters.py +51 -0
  174. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/passes/pass_05_grouping.py +97 -0
  175. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/passes/pass_06_time.py +113 -0
  176. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/passes/pass_07_windows.py +109 -0
  177. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/passes/pass_08_output.py +76 -0
  178. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/passes/pass_09_audit.py +68 -0
  179. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/passes/pass_10_business.py +62 -0
  180. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/passes/pass_10a_grain.py +177 -0
  181. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/passes/pass_11_summary.py +108 -0
  182. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/pipeline/__init__.py +11 -0
  183. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/pipeline/dag.py +155 -0
  184. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/pipeline/dependencies.py +84 -0
  185. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/pipeline/executor.py +328 -0
  186. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/prompts/__init__.py +40 -0
  187. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/prompts/analytical.py +286 -0
  188. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/prompts/business.py +83 -0
  189. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/prompts/technical.py +95 -0
  190. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/prompts/validation.py +97 -0
  191. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/runner.py +159 -0
  192. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/utils/__init__.py +0 -0
  193. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/utils/data_loaders.py +58 -0
  194. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/utils/extractors.py +56 -0
  195. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic/utils/sql_operations.py +107 -0
  196. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic_views/__init__.py +7 -0
  197. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic_views/loader.py +266 -0
  198. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/semantic_views/parser.py +128 -0
  199. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/sqlglot/__init__.py +0 -0
  200. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/sqlglot/config.py +10 -0
  201. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/sqlglot/sqlglot_lineage.py +328 -0
  202. typedef_data_intelligence-0.2.0/src/lineage/ingest/static_loaders/sqlglot/types.py +192 -0
  203. typedef_data_intelligence-0.2.0/src/lineage/integration.py +1742 -0
  204. typedef_data_intelligence-0.2.0/src/lineage/schema.py +105 -0
  205. typedef_data_intelligence-0.2.0/src/lineage/snapshot.py +17 -0
  206. typedef_data_intelligence-0.2.0/src/lineage/templates/__init__.py +156 -0
  207. typedef_data_intelligence-0.2.0/src/lineage/templates/typedef_config.yaml.j2 +163 -0
  208. typedef_data_intelligence-0.2.0/src/lineage/tui/__init__.py +2 -0
  209. typedef_data_intelligence-0.2.0/src/lineage/tui/app.py +306 -0
  210. typedef_data_intelligence-0.2.0/src/lineage/tui/backend.py +137 -0
  211. typedef_data_intelligence-0.2.0/src/lineage/tui/screens/__init__.py +2 -0
  212. typedef_data_intelligence-0.2.0/src/lineage/tui/screens/chat.py +1689 -0
  213. typedef_data_intelligence-0.2.0/src/lineage/tui/screens/daemon.py +542 -0
  214. typedef_data_intelligence-0.2.0/src/lineage/tui/screens/tickets.py +283 -0
  215. typedef_data_intelligence-0.2.0/src/lineage/tui/styles.tcss +318 -0
  216. typedef_data_intelligence-0.2.0/src/lineage/tui/widgets/__init__.py +2 -0
  217. typedef_data_intelligence-0.2.0/src/lineage/tui/widgets/artifacts.py +2104 -0
  218. typedef_data_intelligence-0.2.0/src/lineage/tui/widgets/image.py +252 -0
  219. typedef_data_intelligence-0.2.0/src/lineage/tui/wizards/__init__.py +5 -0
  220. typedef_data_intelligence-0.2.0/src/lineage/tui/wizards/base.py +345 -0
  221. typedef_data_intelligence-0.2.0/src/lineage/tui/wizards/init.py +1790 -0
  222. typedef_data_intelligence-0.2.0/src/lineage/tui/wizards/project_selector.py +96 -0
  223. typedef_data_intelligence-0.2.0/src/lineage/tui/wizards/styles.tcss +346 -0
  224. typedef_data_intelligence-0.2.0/src/lineage/tui/wizards/sync_progress.py +114 -0
  225. typedef_data_intelligence-0.2.0/src/lineage/typedef_cli.py +1243 -0
  226. typedef_data_intelligence-0.2.0/src/lineage/utils/__init__.py +0 -0
  227. typedef_data_intelligence-0.2.0/src/lineage/utils/dbt.py +54 -0
  228. typedef_data_intelligence-0.2.0/src/lineage/utils/drop_snowflake_objects.py +144 -0
  229. typedef_data_intelligence-0.2.0/src/lineage/utils/env.py +115 -0
  230. typedef_data_intelligence-0.2.0/src/lineage/utils/git.py +52 -0
  231. typedef_data_intelligence-0.2.0/src/lineage/utils/gitignore.py +63 -0
  232. typedef_data_intelligence-0.2.0/src/lineage/utils/run_snowflake_query.py +119 -0
  233. typedef_data_intelligence-0.2.0/src/lineage/utils/snowflake.py +210 -0
  234. typedef_data_intelligence-0.2.0/tests/__init__.py +2 -0
  235. typedef_data_intelligence-0.2.0/tests/backends/__init__.py +2 -0
  236. typedef_data_intelligence-0.2.0/tests/backends/data_query/test_semantic_view_detection.py +50 -0
  237. typedef_data_intelligence-0.2.0/tests/backends/data_query/test_snowflake_native_backend_security.py +308 -0
  238. typedef_data_intelligence-0.2.0/tests/backends/lineage/__init__.py +2 -0
  239. typedef_data_intelligence-0.2.0/tests/backends/lineage/test_cascade_deletion.py +423 -0
  240. typedef_data_intelligence-0.2.0/tests/backends/lineage/test_cypher_escaping.py +72 -0
  241. typedef_data_intelligence-0.2.0/tests/conftest.py +186 -0
  242. typedef_data_intelligence-0.2.0/tests/ingest/__init__.py +2 -0
  243. typedef_data_intelligence-0.2.0/tests/ingest/static_loaders/__init__.py +2 -0
  244. typedef_data_intelligence-0.2.0/tests/ingest/static_loaders/change_detection/__init__.py +2 -0
  245. typedef_data_intelligence-0.2.0/tests/ingest/static_loaders/change_detection/test_change_detection.py +463 -0
  246. typedef_data_intelligence-0.2.0/tests/ingest/static_loaders/dbt/__init__.py +2 -0
  247. typedef_data_intelligence-0.2.0/tests/ingest/static_loaders/dbt/test_builder_incremental.py +691 -0
  248. typedef_data_intelligence-0.2.0/tests/ingest/static_loaders/semantic/__init__.py +3 -0
  249. typedef_data_intelligence-0.2.0/tests/ingest/static_loaders/semantic/test_semantic_loader_model_domains.py +54 -0
  250. typedef_data_intelligence-0.2.0/tests/ingest/test_progress.py +24 -0
  251. typedef_data_intelligence-0.2.0/tests/integration/__init__.py +2 -0
  252. typedef_data_intelligence-0.2.0/tests/integration/test_clustering_failure_behavior.py +62 -0
  253. typedef_data_intelligence-0.2.0/tests/integration/test_incremental_loading.py +333 -0
  254. typedef_data_intelligence-0.2.0/tests/integration/test_reanalyze_sets_sqlglot_schema.py +100 -0
  255. typedef_data_intelligence-0.2.0/tests/integration/test_sync_planner.py +146 -0
  256. typedef_data_intelligence-0.2.0/tests/linear/conftest.py +41 -0
  257. typedef_data_intelligence-0.2.0/tests/linear/test_linear_mcp_direct.py +426 -0
  258. typedef_data_intelligence-0.2.0/tests/test_bash_validation.py +486 -0
  259. typedef_data_intelligence-0.2.0/tests/test_gitignore_utils.py +32 -0
  260. typedef_data_intelligence-0.2.0/tests/test_helpers.py +157 -0
  261. typedef_data_intelligence-0.2.0/tests/test_semantic_view_detection.py +50 -0
  262. typedef_data_intelligence-0.2.0/tests/test_template_yaml_escaping.py +125 -0
@@ -0,0 +1,101 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ .Python
7
+ build/
8
+ develop-eggs/
9
+ dist/
10
+ downloads/
11
+ eggs/
12
+ .eggs/
13
+ lib/
14
+ lib64/
15
+ parts/
16
+ sdist/
17
+ var/
18
+ wheels/
19
+ *.egg-info/
20
+ .installed.cfg
21
+ *.egg
22
+ MANIFEST
23
+ .venv/
24
+
25
+ # Node.js
26
+ node_modules/
27
+ npm-debug.log*
28
+ yarn-debug.log*
29
+ yarn-error.log*
30
+ .npm
31
+ .yarn-integrity
32
+
33
+ # Next.js
34
+ .next/
35
+ out/
36
+
37
+ # Testing
38
+ .pytest_cache/
39
+ .coverage
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+
44
+ # IDEs
45
+ .vscode/
46
+ .idea/
47
+ *.swp
48
+ *.swo
49
+ *~
50
+
51
+ # OS
52
+ .DS_Store
53
+ .DS_Store?
54
+ ._*
55
+ .Spotlight-V100
56
+ .Trashes
57
+ ehthumbs.db
58
+ Thumbs.db
59
+
60
+ # Git
61
+ .git/
62
+ .gitignore
63
+
64
+ # Environment
65
+ .env
66
+ .env.local
67
+ .env.development.local
68
+ .env.test.local
69
+ .env.production.local
70
+
71
+ # Logs
72
+ *.log
73
+ logs/
74
+
75
+ # Database files
76
+ *.db
77
+ *.duckdb
78
+ *.sqlite
79
+ *.sqlite3
80
+ lineage_store/
81
+ *.kuzu
82
+
83
+ # Development artifacts
84
+ tickets/
85
+ reports/
86
+ agent_memory/
87
+ captured_events/
88
+
89
+ # Docker
90
+ Dockerfile*
91
+ docker-compose*.yml
92
+ .dockerignore
93
+
94
+ # Documentation
95
+ docs/
96
+ *.md
97
+ README*
98
+
99
+ # Temporary files
100
+ *.tmp
101
+ *.temp
@@ -0,0 +1,191 @@
1
+ # =============================================================================
2
+ # TypeDef Data Intelligence - Environment Configuration
3
+ # =============================================================================
4
+ # This file provides example values for all environment variables used by the
5
+ # typedef data intelligence platform. Copy this file to .env and fill in your
6
+ # actual values.
7
+ #
8
+ # Configuration files reference these variables using ${VAR_NAME} syntax.
9
+ #
10
+ # IMPORTANT: Never commit the actual .env file - it contains secrets!
11
+ # =============================================================================
12
+
13
+ # -----------------------------------------------------------------------------
14
+ # LLM API Keys
15
+ # -----------------------------------------------------------------------------
16
+ # Required for semantic analysis and agent operations.
17
+ # At minimum, set ANTHROPIC_API_KEY (used by default for agents).
18
+
19
+ # Anthropic Claude (primary - used by agents)
20
+ ANTHROPIC_API_KEY=sk-ant-...
21
+
22
+ # OpenAI (optional - for GPT models in semantic analysis)
23
+ OPENAI_API_KEY=sk-proj-...
24
+
25
+ # Google API Key (optional - for Gemini models)
26
+ GOOGLE_API_KEY=...
27
+
28
+ # OpenRouter (optional - for multi-model access, used by semantic analysis)
29
+ OPENROUTER_API_KEY=sk-or-v1-...
30
+
31
+ # Pydantic AI Gateway (optional, used for agents in the future)
32
+ PYDANTIC_AI_GATEWAY_API_KEY=paig_...
33
+
34
+ # -----------------------------------------------------------------------------
35
+ # AWS Bedrock Configuration (Optional)
36
+ # -----------------------------------------------------------------------------
37
+ # Use AWS Bedrock as an alternative LLM provider for PydanticAI agents.
38
+ # Bedrock uses IAM authentication - credentials are resolved via boto3's
39
+ # default credential chain:
40
+ # 1. Environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
41
+ # 2. AWS credentials file (~/.aws/credentials)
42
+ # 3. IAM role (when running on AWS infrastructure like EC2, ECS, Lambda)
43
+ #
44
+ # Model format in config: bedrock:anthropic.claude-3-sonnet-20240229-v1:0
45
+ # With explicit region: bedrock:us-east-1/anthropic.claude-3-sonnet-20240229-v1:0
46
+
47
+ # AWS Region for Bedrock (defaults to us-east-1 if not set)
48
+ AWS_DEFAULT_REGION=us-west-2
49
+
50
+ # AWS credentials (optional if using IAM roles or ~/.aws/credentials)
51
+ # AWS_ACCESS_KEY_ID=AKIA...
52
+ # AWS_SECRET_ACCESS_KEY=...
53
+
54
+ # AWS Session Token (for temporary credentials only)
55
+ # AWS_SESSION_TOKEN=...
56
+
57
+ # AWS Profile (if using named profiles in ~/.aws/credentials)
58
+ # AWS_PROFILE=default
59
+
60
+ # -----------------------------------------------------------------------------
61
+ # dbt Project Configuration
62
+ # -----------------------------------------------------------------------------
63
+ # These variables define which dbt project to analyze and where it's located.
64
+ #
65
+ # The platform supports external git-managed dbt projects via environment vars.
66
+ # Example projects: medallion-reference, mattermost-data-warehouse
67
+ #
68
+ # Usage: just medallion-quickstart (handles git clone + setup automatically)
69
+
70
+ # Parent directory containing your dbt projects
71
+ GITHUB_DBT_PROJECT_LOCAL_PATH=/Users/you/dev/dbt-workspace
72
+
73
+ # =============================================================================
74
+ # OPTION 1: Medallion Reference Test Project (simpler setup)
75
+ # =============================================================================
76
+ # A demo SaaS finance analytics project for testing
77
+ GITHUB_DBT_PROJECT_REPO_NAME=medallion-reference
78
+ DBT_PROJECT_ROOT=.
79
+
80
+ # =============================================================================
81
+ # OPTION 2: Mattermost Analytics (production-scale example)
82
+ # =============================================================================
83
+ # Uncomment these and comment out the medallion settings above
84
+ # GITHUB_DBT_PROJECT_REPO_NAME=mattermost-data-warehouse
85
+ # DBT_PROJECT_NAME_OVERRIDE=mattermost-analytics
86
+ # DBT_PROJECT_ROOT=transform/mattermost-analytics
87
+ # DBT_PROFILES_DIR=profile
88
+
89
+ # -----------------------------------------------------------------------------
90
+ # Snowflake Configuration
91
+ # -----------------------------------------------------------------------------
92
+ # Data warehouse credentials for:
93
+ # - Querying semantic models
94
+ # - Profiling tables/columns
95
+ # - Running data quality checks
96
+ # - Agent SQL execution
97
+
98
+ SNOWFLAKE_ACCOUNT=your-account.region
99
+ SNOWFLAKE_USER=your-username
100
+ SNOWFLAKE_ROLE=ANALYST
101
+ SNOWFLAKE_WAREHOUSE=COMPUTE_WH
102
+ SNOWFLAKE_DATABASE=ANALYTICS
103
+ SNOWFLAKE_SCHEMA=MARTS
104
+
105
+ # Path to private key file for key-pair authentication
106
+ # Generate: openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out key.p8 -nocrypt
107
+ SNOWFLAKE_PRIVATE_KEY_PATH=/Users/you/.dbt/snowflake_key.p8
108
+
109
+ # -----------------------------------------------------------------------------
110
+ # Mattermost-specific Snowflake Configuration (Optional)
111
+ # -----------------------------------------------------------------------------
112
+ # Additional databases/schemas for mattermost-analytics project
113
+ # SNOWFLAKE_TRANSFORM_DATABASE=ANALYTICS
114
+ # SNOWFLAKE_TRANSFORM_SCHEMA=MATTERMOST_ANALYTICS
115
+ # SNOWFLAKE_TRANSFORM_ROLE=ENGINEER
116
+ # MATTERMOST_RAW_DB=RAW
117
+ # MATTERMOST_ANALYTICS_DB=ANALYTICS
118
+
119
+ # -----------------------------------------------------------------------------
120
+ # User Context
121
+ # -----------------------------------------------------------------------------
122
+ # Default user/org for agent operations
123
+ DEFAULT_USER_ID=your-username
124
+ DEFAULT_ORG_ID=your-org
125
+
126
+ # -----------------------------------------------------------------------------
127
+ # Linear Configuration (Optional)
128
+ # -----------------------------------------------------------------------------
129
+ # Ticket management for agent collaboration.
130
+ # If not set, falls back to filesystem-based tickets.
131
+ #
132
+ # Setup:
133
+ # 1. Create Linear team: https://linear.app/
134
+ # 2. Get team ID from URL or API
135
+ # 3. Generate API keys: Settings -> API -> Personal API Keys
136
+
137
+ LINEAR_TEAM_ID=your-team-uuid
138
+ LINEAR_ANALYST_API_KEY=lin_api_...
139
+ LINEAR_DATA_ENGINEER_API_KEY=lin_api_...
140
+
141
+ # -----------------------------------------------------------------------------
142
+ # GitHub Configuration (Optional)
143
+ # -----------------------------------------------------------------------------
144
+ # For data-engineer agent git operations
145
+ # If unset, agent uses your local git credentials
146
+ # GITHUB_TOKEN=ghp_...
147
+
148
+ # -----------------------------------------------------------------------------
149
+ # Observability (Optional)
150
+ # -----------------------------------------------------------------------------
151
+ # Logfire token for Pydantic AI observability
152
+ # Get from: https://logfire.pydantic.dev/
153
+ LOGFIRE_TOKEN=pylf_v1_...
154
+
155
+ # -----------------------------------------------------------------------------
156
+ # Slack Integration (Optional)
157
+ # -----------------------------------------------------------------------------
158
+ # For Slack bot notifications
159
+ SLACK_SIGNING_SECRET=your-signing-secret
160
+ SLACK_BOT_TOKEN=xoxb-...
161
+
162
+ # AG UI base URL (for agent UI)
163
+ AG_UI_BASE_URL=http://localhost:8000
164
+
165
+ # -----------------------------------------------------------------------------
166
+ # OpenLineage Configuration (Optional)
167
+ # -----------------------------------------------------------------------------
168
+ # For collecting runtime lineage from dbt runs.
169
+ # Enables tracking actual execution patterns vs static DAG.
170
+
171
+ # OpenLineage collection endpoint (if using lineage serve)
172
+ # OPENLINEAGE_URL=http://localhost:8080/api/v1/lineage
173
+
174
+ # Namespace for grouping lineage events
175
+ # OPENLINEAGE_NAMESPACE=dbt://demo_finance
176
+
177
+ # Set to false to enable collection
178
+ # OPENLINEAGE_DISABLED=false
179
+
180
+ # -----------------------------------------------------------------------------
181
+ # Configuration File Selection
182
+ # -----------------------------------------------------------------------------
183
+ # The platform uses different config files for different modes:
184
+ #
185
+ # config.ingest.yml - For loading dbt projects (just medallion-full)
186
+ # config.cli.yml - For CLI agent operations (lineage-agent-anthropic)
187
+ # config.api.yml - For web API + UI (just dev-webui)
188
+ #
189
+ # Each file can reference these environment variables using ${VAR_NAME} syntax.
190
+ # See the individual config files for specific variable usage.
191
+ # -----------------------------------------------------------------------------
@@ -0,0 +1,54 @@
1
+ # Generated reports and charts (from agent visualization tools)
2
+ /charts/
3
+ /reports/
4
+
5
+ # Python
6
+ __pycache__/
7
+ *.py[cod]
8
+ *$py.class
9
+ *.so
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ *.egg-info/
24
+ .installed.cfg
25
+ *.egg
26
+
27
+ # Virtual environments
28
+ venv/
29
+ ENV/
30
+ env/
31
+
32
+ # IDEs
33
+ .vscode/
34
+ .idea/
35
+ *.swp
36
+ *.swo
37
+ *~
38
+
39
+ # OS
40
+ .DS_Store
41
+ Thumbs.db
42
+
43
+ # Database files
44
+ *.db
45
+ *.duckdb
46
+ *.duckdb.wal
47
+ *.kuzu
48
+
49
+ # Logs
50
+ *.log
51
+
52
+ # Environment variables
53
+ .env
54
+ .env.local
@@ -0,0 +1,60 @@
1
+ # CLI Agents Quick Reference
2
+
3
+ ## From typedef_data_intelligence/ directory:
4
+
5
+ Interactive Mode:
6
+ just cli-analyst # Start analyst agent (REPL)
7
+ just cli-engineer # Start data engineering agent
8
+ just cli-quality # Start data quality agent
9
+
10
+ Single Question:
11
+ just ask-analyst "question" # Ask analyst
12
+ just ask-engineer "question" # Ask engineer
13
+ just ask-quality "question" # Ask quality agent
14
+
15
+ ## From dbt_projects/ directory:
16
+
17
+ Interactive Mode:
18
+ just analyst # Start analyst agent
19
+ just engineer # Start engineer agent
20
+ just quality # Start quality agent
21
+
22
+ Single Question:
23
+ just ask "question" # Ask analyst
24
+ just ask-eng "question" # Ask engineer
25
+ just ask-qa "question" # Ask quality agent
26
+
27
+ ## Configuration:
28
+
29
+ Default config (config.example.yml):
30
+ just cli-analyst
31
+
32
+ Custom config:
33
+ just cli-analyst CONFIG=myconfig.yml
34
+
35
+ Environment variables:
36
+ export UNIFIED_CONFIG=/path/to/config.yml
37
+ export CLI_USER_ID=your_user@example.com
38
+ export CLI_ORG_ID=your_org
39
+
40
+ ## Example Questions:
41
+
42
+ Analyst:
43
+ "What semantic views are available?"
44
+ "Show me total ARR by month for 2024"
45
+ "Create a chart of revenue trends"
46
+
47
+ Engineer:
48
+ "What models depend on dim_customers?"
49
+ "Show me the grain of fct_arr_reporting_monthly"
50
+ "What tables are in the marts schema?"
51
+
52
+ Quality:
53
+ "Find any failed dbt runs"
54
+ "Show error patterns from the last week"
55
+ "Check for null values in critical columns"
56
+
57
+ ## More Info:
58
+
59
+ just cli-info # Show detailed usage
60
+ cat docs/webui/cli-testing.md # Read full documentation
@@ -0,0 +1,31 @@
1
+ # Changelog
2
+
3
+ ## [0.2.0](https://github.com/typedef-ai/data-intelligence/compare/v0.1.0...v0.2.0) (2026-01-13)
4
+
5
+
6
+ ### Features
7
+
8
+ * Add Data Engineer tools/prompts to Pydantic CLI Agent, improved stability of logfire ([#32](https://github.com/typedef-ai/data-intelligence/issues/32)) ([08efbb1](https://github.com/typedef-ai/data-intelligence/commit/08efbb1fead1fd7727f641d42c85ec4086e8ca85))
9
+ * add rich progress tracking to ingest pipeline ([#47](https://github.com/typedef-ai/data-intelligence/issues/47)) ([91adc20](https://github.com/typedef-ai/data-intelligence/commit/91adc200a4d8f1e71756a31cf7024913545e973f))
10
+ * Add smart autoscroll control in TUI and enforce feature branch workflow for DE copilot ([#81](https://github.com/typedef-ai/data-intelligence/issues/81)) ([42e787d](https://github.com/typedef-ai/data-intelligence/commit/42e787db12d90585d9fc85559f4ebf464f76f385))
11
+ * Add support for bedrock models ([#58](https://github.com/typedef-ai/data-intelligence/issues/58)) ([7711bcc](https://github.com/typedef-ai/data-intelligence/commit/7711bcc37b33c13e940d275c171c07f63cdf6a62))
12
+ * add the daemon ticket based experience to the tui ([#70](https://github.com/typedef-ai/data-intelligence/issues/70)) ([fc87df8](https://github.com/typedef-ai/data-intelligence/commit/fc87df83100ad4f86189c6fc36d4dcb7f212169c))
13
+ * add TUI setup wizard with Textual (prototype) ([#49](https://github.com/typedef-ai/data-intelligence/issues/49)) ([6147e8c](https://github.com/typedef-ai/data-intelligence/commit/6147e8c5d5340144719d2e690f4b49a60065eb68))
14
+ * adding a webui for data analyst ([#2](https://github.com/typedef-ai/data-intelligence/issues/2)) ([9096a18](https://github.com/typedef-ai/data-intelligence/commit/9096a186c56087c101ec46c1a82ccebd90103593))
15
+ * dev docker compose ([#4](https://github.com/typedef-ai/data-intelligence/issues/4)) ([97e1d73](https://github.com/typedef-ai/data-intelligence/commit/97e1d73aa6de637eebe5f245e41ad71ad597ba97))
16
+ * falkordb full text search, snowflake db visibility filtering ([#46](https://github.com/typedef-ai/data-intelligence/issues/46)) ([5110928](https://github.com/typedef-ai/data-intelligence/commit/5110928ae576303fbe25456ae718e93d136213f5))
17
+ * full clustering implementation ([#10](https://github.com/typedef-ai/data-intelligence/issues/10)) ([71bebad](https://github.com/typedef-ai/data-intelligence/commit/71bebad07d0060dc0a07224472bffd0c0db4db88))
18
+ * Improve demo workflow with benchmark branch preservation and session management cleanup ([#64](https://github.com/typedef-ai/data-intelligence/issues/64)) ([df015f8](https://github.com/typedef-ai/data-intelligence/commit/df015f8613d532a14b7eada0b7c7c05c7719edf9))
19
+ * Mattermost clones working plus tasks for scenarios ([#43](https://github.com/typedef-ai/data-intelligence/issues/43)) ([fd77b49](https://github.com/typedef-ai/data-intelligence/commit/fd77b49b4ebd5f2905f9c227c0479a20f5c09d98))
20
+ * prototype benchmark for data-intelligence ([#26](https://github.com/typedef-ai/data-intelligence/issues/26)) ([de2871a](https://github.com/typedef-ai/data-intelligence/commit/de2871afdd78d586fbcd3da86d82d9bf1522d616))
21
+ * separate logical and physical concepts ([#20](https://github.com/typedef-ai/data-intelligence/issues/20)) ([3a9bd05](https://github.com/typedef-ai/data-intelligence/commit/3a9bd05cd6b07328d5098893574a1ab7477a17ef))
22
+
23
+
24
+ ### Bug Fixes
25
+
26
+ * **backend/docker:** misc path/entrypoint fixes to get it running ([#22](https://github.com/typedef-ai/data-intelligence/issues/22)) ([aa47c3f](https://github.com/typedef-ai/data-intelligence/commit/aa47c3fba30895bde9f107d3f9bea4014fb2a8b1))
27
+ * daemon only grabs labeled tickets ([#18](https://github.com/typedef-ai/data-intelligence/issues/18)) ([748f6c3](https://github.com/typedef-ai/data-intelligence/commit/748f6c332cb5fac490f4c6645a2bdab7d4749e07))
28
+ * if the dbt project gets cloned with git, enable git in the config ([#73](https://github.com/typedef-ai/data-intelligence/issues/73)) ([6e99162](https://github.com/typedef-ai/data-intelligence/commit/6e9916232ab569c4385cbf54d6651c1312517c92))
29
+ * limit the daemon to only process tickets assigned to data-engineer-agent ([#74](https://github.com/typedef-ai/data-intelligence/issues/74)) ([ac94267](https://github.com/typedef-ai/data-intelligence/commit/ac94267c4965b040977cdf3933f39ace67cd06e1))
30
+ * minor fixes to get medallion + frontend to work ([#59](https://github.com/typedef-ai/data-intelligence/issues/59)) ([1444285](https://github.com/typedef-ai/data-intelligence/commit/1444285ba030a4a2f242a4494e102f106d81d868))
31
+ * readme ([#1](https://github.com/typedef-ai/data-intelligence/issues/1)) ([172767a](https://github.com/typedef-ai/data-intelligence/commit/172767a78d33c963e5a09685b34f5016bd7a9714))
@@ -0,0 +1,60 @@
1
+ # Production Dockerfile for FastAPI Backend
2
+ # Multi-stage build for optimized image size
3
+ FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim AS builder
4
+
5
+ WORKDIR /workspace
6
+
7
+ # Copy workspace configuration
8
+ COPY pyproject.toml uv.lock ./
9
+ COPY typedef_data_intelligence/pyproject.toml ./typedef_data_intelligence/
10
+
11
+ # Copy source code
12
+ COPY typedef_data_intelligence/src ./typedef_data_intelligence/src
13
+
14
+ # Install minimal runtime dependencies
15
+ RUN apt-get update && apt-get install -y \
16
+ curl git build-essential
17
+
18
+ # Install dependencies with frozen lockfile (reproducible builds)
19
+ # Use FalkorDB backend for production
20
+ # --all-packages ensures workspace members are installed
21
+ RUN uv sync --frozen --package typedef-data-intelligence
22
+
23
+ # ============================================================================
24
+ # Runtime Stage
25
+ # ============================================================================
26
+ FROM python:3.12-slim
27
+
28
+ # Install minimal runtime dependencies
29
+ RUN apt-get update && apt-get install -y \
30
+ curl \
31
+ && rm -rf /var/lib/apt/lists/*
32
+
33
+ WORKDIR /workspace
34
+
35
+ # Copy virtual environment from builder
36
+ COPY --from=builder /workspace/.venv /workspace/.venv
37
+
38
+ # Copy source code
39
+ COPY --from=builder /workspace/typedef_data_intelligence /workspace/typedef_data_intelligence
40
+
41
+ # Set environment
42
+ ENV PATH="/workspace/.venv/bin:$PATH"
43
+ ENV PYTHONPATH="/workspace/typedef_data_intelligence/src"
44
+
45
+ # Create non-root user for security
46
+ RUN useradd -m -u 1000 appuser && \
47
+ chown -R appuser:appuser /workspace
48
+
49
+ USER appuser
50
+
51
+ # Expose FastAPI port
52
+ EXPOSE 8000
53
+
54
+ # Health check
55
+ HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
56
+ CMD curl -f http://localhost:8000/health || exit 1
57
+
58
+ # Run backend server
59
+ # Config file should be mounted at runtime via volume
60
+ CMD ["python", "-m", "lineage.api.pydantic"]
@@ -0,0 +1,35 @@
1
+ # Development Dockerfile for FastAPI Backend
2
+ # This runs in dev mode with hot reloading - no production optimization
3
+ FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim
4
+
5
+ # Install system dependencies
6
+ RUN apt-get update && apt-get install -y \
7
+ curl git build-essential \
8
+ && rm -rf /var/lib/apt/lists/*
9
+
10
+ WORKDIR /workspace/typedef_data_intelligence
11
+
12
+ # Copy package metadata and lock file
13
+ COPY pyproject.toml ./
14
+ # Copy source code so uv sync can install the package
15
+ # (This will be overridden by volume mount at runtime for hot reload)
16
+ COPY src ./src
17
+
18
+ # Install package and dependencies with FalkorDB backend
19
+ RUN uv sync
20
+
21
+ # Set environment
22
+ ENV PATH="/workspace/typedef_data_intelligence/.venv/bin:$PATH"
23
+ ENV PYTHONPATH="/workspace/typedef_data_intelligence/src"
24
+
25
+ # Copy entrypoint script
26
+ COPY docker-entrypoint.dev.sh /entrypoint.sh
27
+ RUN chmod +x /entrypoint.sh
28
+
29
+ # Expose FastAPI port
30
+ EXPOSE 8000
31
+
32
+ # Run backend server in development mode with hot reload
33
+ # Note: Source code is mounted via volumes at runtime (see docker-compose.yml)
34
+ # The entrypoint script reinstalls the package in editable mode after volumes are mounted
35
+ ENTRYPOINT ["/entrypoint.sh"]
@@ -0,0 +1,65 @@
1
+ set shell := ["bash", "-eu", "-o", "pipefail", "-c"]
2
+
3
+ # Default config file
4
+ CONFIG_FILE := "config.example.yml"
5
+
6
+ # Default recipe - show available commands
7
+ default:
8
+ @just --list
9
+
10
+ # ============================================================================
11
+ # Backend Management
12
+ # ============================================================================
13
+
14
+ # Show current backend configuration
15
+ config-info:
16
+ @echo "Configuration System"
17
+ @echo "==================="
18
+ @echo ""
19
+ @echo "Unified config file approach - all settings in one YAML file"
20
+ @echo ""
21
+ @echo "Example configs:"
22
+ @echo " - config.example.yml (FalkorDB + DuckDB)"
23
+ @echo " - config.production.example.yml (Neo4j + Snowflake)"
24
+ @echo " - config.postgres.example.yml (PostgreSQL AGE + DuckDB)"
25
+ @echo ""
26
+ @echo "Config structure:"
27
+ @echo " lineage: # Graph database config"
28
+ @echo " backend: falkordb|falkordblite|neo4j|postgres-age|arcadedb"
29
+ @echo " population: # Data loading settings"
30
+ @echo " model: google/gemini-2.5-flash-lite"
31
+ @echo " max_workers: 64"
32
+ @echo " data: # Data warehouse config"
33
+ @echo " backend: duckdb|snowflake"
34
+ @echo " agent: # Agent runtime config"
35
+ @echo " model: anthropic:claude-sonnet-4-5-20250929"
36
+ @echo ""
37
+ @echo "Environment variables:"
38
+ @echo " Use \$${VAR_NAME} syntax in config.yml for sensitive data"
39
+ @echo " Example: password: \$${NEO4J_PASSWORD}"
40
+
41
+
42
+ # ============================================================================
43
+ # Development
44
+ # ============================================================================
45
+
46
+ # Run tests
47
+ test:
48
+ uv run pytest
49
+
50
+ # Run tests with coverage
51
+ test-cov:
52
+ uv run pytest --cov=src/lineage
53
+
54
+ # Format code
55
+ fmt:
56
+ uv run ruff format .
57
+
58
+ # Lint code
59
+ lint:
60
+ uv run ruff check .
61
+
62
+ # Install dependencies
63
+ install:
64
+ uv sync --all-extras
65
+