@datarecce/ui 0.1.41 → 0.2.1-nightly.20260402

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 (717) hide show
  1. package/README.md +28 -133
  2. package/dist/AuthModal-B38pWD3T.js +7 -0
  3. package/dist/AuthModal-B38pWD3T.js.map +1 -0
  4. package/dist/RouteConfigContext-DWFg6bll.d.ts +171 -0
  5. package/dist/RouteConfigContext-DWFg6bll.d.ts.map +1 -0
  6. package/dist/RunProgress-BCFXvUsE.d.ts +429 -0
  7. package/dist/RunProgress-BCFXvUsE.d.ts.map +1 -0
  8. package/dist/ScreenshotDataGrid-BAsPWcde.d.ts +63 -0
  9. package/dist/ScreenshotDataGrid-BAsPWcde.d.ts.map +1 -0
  10. package/dist/SplitPane-g8w-XF2_.d.ts +1607 -0
  11. package/dist/SplitPane-g8w-XF2_.d.ts.map +1 -0
  12. package/dist/advanced.d.ts +17 -0
  13. package/dist/advanced.d.ts.map +1 -0
  14. package/dist/advanced.js +3 -0
  15. package/dist/advanced.js.map +1 -0
  16. package/dist/api-BwiRz6pD.d.ts +254 -0
  17. package/dist/api-BwiRz6pD.d.ts.map +1 -0
  18. package/dist/api-CbzeUNef.js +3 -0
  19. package/dist/api-CbzeUNef.js.map +1 -0
  20. package/dist/api.d.ts +3 -2
  21. package/dist/api.js +2 -100
  22. package/dist/colors-BbPSDR1X.js +3 -0
  23. package/dist/colors-BbPSDR1X.js.map +1 -0
  24. package/dist/components-run.d.ts +5 -0
  25. package/dist/components-run.js +2 -0
  26. package/dist/components.d.ts +9 -2
  27. package/dist/components.js +2 -86
  28. package/dist/constants-D-hOGDbU.js +3 -0
  29. package/dist/constants-D-hOGDbU.js.map +1 -0
  30. package/dist/constants.d.ts +3 -0
  31. package/dist/constants.js +2 -0
  32. package/dist/contexts.d.ts +6 -0
  33. package/dist/contexts.js +2 -0
  34. package/dist/fetchClient-Bqjx8inP.js +3 -0
  35. package/dist/fetchClient-Bqjx8inP.js.map +1 -0
  36. package/dist/fetchClient-CTnJ39EA.d.ts +19 -0
  37. package/dist/fetchClient-CTnJ39EA.d.ts.map +1 -0
  38. package/dist/hooks.d.ts +3 -2
  39. package/dist/hooks.js +2 -43
  40. package/dist/index-B1IyNkDA.d.ts +472 -0
  41. package/dist/index-B1IyNkDA.d.ts.map +1 -0
  42. package/dist/index-BJOCIgE1.d.ts +148 -0
  43. package/dist/index-BJOCIgE1.d.ts.map +1 -0
  44. package/dist/index-C9nBECPv.d.ts +212 -0
  45. package/dist/index-C9nBECPv.d.ts.map +1 -0
  46. package/dist/index-CHJ0PCEg.d.ts +380 -0
  47. package/dist/index-CHJ0PCEg.d.ts.map +1 -0
  48. package/dist/index-CZ7gueQV.d.ts +13 -0
  49. package/dist/index-CZ7gueQV.d.ts.map +1 -0
  50. package/dist/index-CaKcjGJC.d.ts +1536 -0
  51. package/dist/index-CaKcjGJC.d.ts.map +1 -0
  52. package/dist/index-D-H3NTdf.d.ts +744 -0
  53. package/dist/index-D-H3NTdf.d.ts.map +1 -0
  54. package/dist/index-Dh6gw0NG.d.ts +351 -0
  55. package/dist/index-Dh6gw0NG.d.ts.map +1 -0
  56. package/dist/index-Dp-BUtpt.d.ts +704 -0
  57. package/dist/index-Dp-BUtpt.d.ts.map +1 -0
  58. package/dist/index.d.ts +17 -2
  59. package/dist/index.js +2 -198
  60. package/dist/instanceInfo-DNLFhkK8.d.ts +909 -0
  61. package/dist/instanceInfo-DNLFhkK8.d.ts.map +1 -0
  62. package/dist/keepAlive-Dj0q3fC9.js +3 -0
  63. package/dist/keepAlive-Dj0q3fC9.js.map +1 -0
  64. package/dist/lib/api/queryClient.d.ts +8 -0
  65. package/dist/lib/api/queryClient.d.ts.map +1 -0
  66. package/dist/lib/api/queryClient.js +3 -0
  67. package/dist/lib/api/queryClient.js.map +1 -0
  68. package/dist/lib/api/track.d.ts +137 -0
  69. package/dist/lib/api/track.d.ts.map +1 -0
  70. package/dist/lib/api/track.js +3 -0
  71. package/dist/lib/api/track.js.map +1 -0
  72. package/dist/lib/api/user.d.ts +16 -0
  73. package/dist/lib/api/user.d.ts.map +1 -0
  74. package/dist/lib/api/user.js +3 -0
  75. package/dist/lib/api/user.js.map +1 -0
  76. package/dist/lib/const.d.ts +8 -0
  77. package/dist/lib/const.d.ts.map +1 -0
  78. package/dist/lib/const.js +3 -0
  79. package/dist/lib/const.js.map +1 -0
  80. package/dist/lib/result/ResultErrorFallback.d.ts +8 -0
  81. package/dist/lib/result/ResultErrorFallback.d.ts.map +1 -0
  82. package/dist/lib/result/ResultErrorFallback.js +3 -0
  83. package/dist/lib/result/ResultErrorFallback.js.map +1 -0
  84. package/dist/lineage-DsKqx9yh.d.ts +1299 -0
  85. package/dist/lineage-DsKqx9yh.d.ts.map +1 -0
  86. package/dist/primitives-D8s_Rs5T.d.ts +1089 -0
  87. package/dist/primitives-D8s_Rs5T.d.ts.map +1 -0
  88. package/dist/primitives.d.ts +8 -0
  89. package/dist/primitives.js +2 -0
  90. package/dist/result.d.ts +3 -0
  91. package/dist/result.js +2 -0
  92. package/dist/src-BH-TT0Mt.js +12 -0
  93. package/dist/src-BH-TT0Mt.js.map +1 -0
  94. package/dist/style.css +290 -0
  95. package/dist/styles.css +478 -4
  96. package/dist/theme-B_XT39eO.js +3 -0
  97. package/dist/theme-B_XT39eO.js.map +1 -0
  98. package/dist/theme.d.ts +2 -2
  99. package/dist/theme.js +2 -9
  100. package/dist/types-DLRfpcrV.d.ts +234 -0
  101. package/dist/types-DLRfpcrV.d.ts.map +1 -0
  102. package/dist/types-qpgIe7MT.d.ts +171 -0
  103. package/dist/types-qpgIe7MT.d.ts.map +1 -0
  104. package/dist/types.d.ts +10 -2
  105. package/dist/types.js +3 -9
  106. package/dist/types.js.map +1 -0
  107. package/dist/useThemeColors-OwCMwSrx.d.ts +79 -0
  108. package/dist/useThemeColors-OwCMwSrx.d.ts.map +1 -0
  109. package/dist/utils-BwEuAiEd.js +3 -0
  110. package/dist/utils-BwEuAiEd.js.map +1 -0
  111. package/dist/utils-Crcz1Rb5.js +6 -0
  112. package/dist/utils-Crcz1Rb5.js.map +1 -0
  113. package/dist/utils.d.ts +3 -0
  114. package/dist/utils.js +2 -0
  115. package/package.json +142 -108
  116. package/LICENSE +0 -201
  117. package/dist/RecceCheckContext-BJprb2xR.js +0 -7968
  118. package/dist/RecceCheckContext-BJprb2xR.js.map +0 -1
  119. package/dist/RecceCheckContext-DPnWB_aU.css +0 -215
  120. package/dist/RecceCheckContext-DPnWB_aU.css.map +0 -1
  121. package/dist/RecceCheckContext-DbZ7BdRy.mjs +0 -7426
  122. package/dist/RecceCheckContext-DbZ7BdRy.mjs.map +0 -1
  123. package/dist/RecceCheckContext-DyxOeUsX.css +0 -215
  124. package/dist/RecceCheckContext-DyxOeUsX.css.map +0 -1
  125. package/dist/api.d.mts +0 -3
  126. package/dist/api.js.map +0 -1
  127. package/dist/api.mjs +0 -46
  128. package/dist/api.mjs.map +0 -1
  129. package/dist/components-BeAjVBV3.css +0 -70
  130. package/dist/components-BeAjVBV3.css.map +0 -1
  131. package/dist/components-DfXnN1Hx.js +0 -14689
  132. package/dist/components-DfXnN1Hx.js.map +0 -1
  133. package/dist/components-iUxcqtUB.css +0 -70
  134. package/dist/components-iUxcqtUB.css.map +0 -1
  135. package/dist/components-jh6r4tQn.mjs +0 -12348
  136. package/dist/components-jh6r4tQn.mjs.map +0 -1
  137. package/dist/components.d.mts +0 -3
  138. package/dist/components.mjs +0 -9
  139. package/dist/const-CaIm1Z8g.mjs +0 -12
  140. package/dist/const-CaIm1Z8g.mjs.map +0 -1
  141. package/dist/const-CvdZO0FN.js +0 -24
  142. package/dist/const-CvdZO0FN.js.map +0 -1
  143. package/dist/hooks-cQsBXBd1.js +0 -40
  144. package/dist/hooks-cQsBXBd1.js.map +0 -1
  145. package/dist/hooks-eaHm_yEp.mjs +0 -33
  146. package/dist/hooks-eaHm_yEp.mjs.map +0 -1
  147. package/dist/hooks.d.mts +0 -3
  148. package/dist/hooks.mjs +0 -8
  149. package/dist/html2canvas-pro.esm-CsuSOHXp.js +0 -7250
  150. package/dist/html2canvas-pro.esm-CsuSOHXp.js.map +0 -1
  151. package/dist/html2canvas-pro.esm-E7kpobrC.mjs +0 -7249
  152. package/dist/html2canvas-pro.esm-E7kpobrC.mjs.map +0 -1
  153. package/dist/index-B5bpmv0i.d.mts +0 -2172
  154. package/dist/index-B5bpmv0i.d.mts.map +0 -1
  155. package/dist/index-B9lSPJTi.d.ts +0 -2170
  156. package/dist/index-B9lSPJTi.d.ts.map +0 -1
  157. package/dist/index.d.mts +0 -3
  158. package/dist/index.js.map +0 -1
  159. package/dist/index.mjs +0 -20
  160. package/dist/index.mjs.map +0 -1
  161. package/dist/mui-theme-CUhybmBq.mjs +0 -696
  162. package/dist/mui-theme-CUhybmBq.mjs.map +0 -1
  163. package/dist/mui-theme-iBHkjXJq.js +0 -732
  164. package/dist/mui-theme-iBHkjXJq.js.map +0 -1
  165. package/dist/state-CTITyT0R.js +0 -795
  166. package/dist/state-CTITyT0R.js.map +0 -1
  167. package/dist/state-Sc2b4jri.mjs +0 -382
  168. package/dist/state-Sc2b4jri.mjs.map +0 -1
  169. package/dist/theme.d.mts +0 -3
  170. package/dist/theme.mjs +0 -4
  171. package/dist/tooltipMessage-BC5W7H3X.js +0 -13
  172. package/dist/tooltipMessage-BC5W7H3X.js.map +0 -1
  173. package/dist/tooltipMessage-B_xMIKWL.mjs +0 -7
  174. package/dist/tooltipMessage-B_xMIKWL.mjs.map +0 -1
  175. package/dist/types.d.mts +0 -3
  176. package/dist/types.mjs +0 -6
  177. package/dist/urls-BQW5wjg-.js +0 -13
  178. package/dist/urls-BQW5wjg-.js.map +0 -1
  179. package/dist/urls-DT7FVEcS.mjs +0 -7
  180. package/dist/urls-DT7FVEcS.mjs.map +0 -1
  181. package/dist/version-B9s8yne-.js +0 -300
  182. package/dist/version-B9s8yne-.js.map +0 -1
  183. package/dist/version-DP1kU_7v.mjs +0 -162
  184. package/dist/version-DP1kU_7v.mjs.map +0 -1
  185. package/recce-source/.editorconfig +0 -26
  186. package/recce-source/.flake8 +0 -37
  187. package/recce-source/.github/ISSUE_TEMPLATE/bug_report.yml +0 -67
  188. package/recce-source/.github/ISSUE_TEMPLATE/custom.md +0 -10
  189. package/recce-source/.github/ISSUE_TEMPLATE/feature_request.yml +0 -42
  190. package/recce-source/.github/PULL_REQUEST_TEMPLATE.md +0 -21
  191. package/recce-source/.github/copilot-instructions.md +0 -331
  192. package/recce-source/.github/instructions/backend-instructions.md +0 -541
  193. package/recce-source/.github/instructions/frontend-instructions.md +0 -317
  194. package/recce-source/.github/workflows/build-statics.yaml +0 -72
  195. package/recce-source/.github/workflows/bump.yaml +0 -48
  196. package/recce-source/.github/workflows/integration-tests-cloud.yaml +0 -92
  197. package/recce-source/.github/workflows/integration-tests-sqlmesh.yaml +0 -33
  198. package/recce-source/.github/workflows/integration-tests.yaml +0 -52
  199. package/recce-source/.github/workflows/nightly.yaml +0 -246
  200. package/recce-source/.github/workflows/release.yaml +0 -196
  201. package/recce-source/.github/workflows/tests-js.yaml +0 -58
  202. package/recce-source/.github/workflows/tests-python.yaml +0 -128
  203. package/recce-source/.pre-commit-config.yaml +0 -26
  204. package/recce-source/CLAUDE.md +0 -483
  205. package/recce-source/CODE_OF_CONDUCT.md +0 -128
  206. package/recce-source/CONTRIBUTING.md +0 -107
  207. package/recce-source/LICENSE +0 -201
  208. package/recce-source/Makefile +0 -126
  209. package/recce-source/README.md +0 -182
  210. package/recce-source/RECCE_CLOUD.md +0 -81
  211. package/recce-source/SECURITY.md +0 -25
  212. package/recce-source/docs/PACKAGING.md +0 -340
  213. package/recce-source/docs/README.md +0 -1
  214. package/recce-source/docs/plans/2024-12-31-csv-download-design.md +0 -121
  215. package/recce-source/docs/plans/2024-12-31-csv-download-implementation.md +0 -930
  216. package/recce-source/integration_tests/dbt/dbt_project.yml +0 -26
  217. package/recce-source/integration_tests/dbt/models/customers.sql +0 -69
  218. package/recce-source/integration_tests/dbt/models/docs.md +0 -14
  219. package/recce-source/integration_tests/dbt/models/orders.sql +0 -56
  220. package/recce-source/integration_tests/dbt/models/schema.yml +0 -82
  221. package/recce-source/integration_tests/dbt/models/staging/schema.yml +0 -31
  222. package/recce-source/integration_tests/dbt/models/staging/stg_customers.sql +0 -22
  223. package/recce-source/integration_tests/dbt/models/staging/stg_orders.sql +0 -23
  224. package/recce-source/integration_tests/dbt/models/staging/stg_payments.sql +0 -25
  225. package/recce-source/integration_tests/dbt/packages.yml +0 -7
  226. package/recce-source/integration_tests/dbt/profiles.yml +0 -8
  227. package/recce-source/integration_tests/dbt/seeds/raw_customers.csv +0 -101
  228. package/recce-source/integration_tests/dbt/seeds/raw_orders.csv +0 -100
  229. package/recce-source/integration_tests/dbt/seeds/raw_payments.csv +0 -114
  230. package/recce-source/integration_tests/dbt/seeds/raw_statuses.csv +0 -5
  231. package/recce-source/integration_tests/dbt/smoke_test.sh +0 -72
  232. package/recce-source/integration_tests/dbt/smoke_test_cloud.sh +0 -71
  233. package/recce-source/integration_tests/sqlmesh/__init__.py +0 -0
  234. package/recce-source/integration_tests/sqlmesh/audits/assert_item_price_above_zero.sql +0 -9
  235. package/recce-source/integration_tests/sqlmesh/audits/items.sql +0 -7
  236. package/recce-source/integration_tests/sqlmesh/audits/order_items.sql +0 -7
  237. package/recce-source/integration_tests/sqlmesh/config.py +0 -171
  238. package/recce-source/integration_tests/sqlmesh/helper.py +0 -20
  239. package/recce-source/integration_tests/sqlmesh/hooks/__init__.py +0 -0
  240. package/recce-source/integration_tests/sqlmesh/macros/__init__.py +0 -0
  241. package/recce-source/integration_tests/sqlmesh/macros/macros.py +0 -8
  242. package/recce-source/integration_tests/sqlmesh/macros/macros.sql +0 -8
  243. package/recce-source/integration_tests/sqlmesh/macros/utils.py +0 -11
  244. package/recce-source/integration_tests/sqlmesh/metrics/metrics.sql +0 -25
  245. package/recce-source/integration_tests/sqlmesh/models/customer_revenue_by_day.sql +0 -41
  246. package/recce-source/integration_tests/sqlmesh/models/customer_revenue_lifetime.sql +0 -60
  247. package/recce-source/integration_tests/sqlmesh/models/customers.sql +0 -32
  248. package/recce-source/integration_tests/sqlmesh/models/items.py +0 -95
  249. package/recce-source/integration_tests/sqlmesh/models/marketing.sql +0 -15
  250. package/recce-source/integration_tests/sqlmesh/models/order_items.py +0 -95
  251. package/recce-source/integration_tests/sqlmesh/models/orders.py +0 -70
  252. package/recce-source/integration_tests/sqlmesh/models/raw_marketing.py +0 -62
  253. package/recce-source/integration_tests/sqlmesh/models/top_waiters.sql +0 -23
  254. package/recce-source/integration_tests/sqlmesh/models/waiter_as_customer_by_day.sql +0 -29
  255. package/recce-source/integration_tests/sqlmesh/models/waiter_names.sql +0 -10
  256. package/recce-source/integration_tests/sqlmesh/models/waiter_revenue_by_day.sql +0 -29
  257. package/recce-source/integration_tests/sqlmesh/models/waiters.py +0 -62
  258. package/recce-source/integration_tests/sqlmesh/prep_env.sh +0 -16
  259. package/recce-source/integration_tests/sqlmesh/schema.yaml +0 -5
  260. package/recce-source/integration_tests/sqlmesh/seeds/waiter_names.csv +0 -11
  261. package/recce-source/integration_tests/sqlmesh/test_server.sh +0 -29
  262. package/recce-source/integration_tests/sqlmesh/tests/test_customer_revenue_by_day.yaml +0 -63
  263. package/recce-source/integration_tests/sqlmesh/tests/test_order_items.yaml +0 -72
  264. package/recce-source/js/.editorconfig +0 -27
  265. package/recce-source/js/.env.development +0 -5
  266. package/recce-source/js/.husky/pre-commit +0 -29
  267. package/recce-source/js/.nvmrc +0 -1
  268. package/recce-source/js/README.md +0 -39
  269. package/recce-source/js/app/(mainComponents)/DisplayModeToggle.tsx +0 -65
  270. package/recce-source/js/app/(mainComponents)/NavBar.tsx +0 -228
  271. package/recce-source/js/app/(mainComponents)/RecceVersionBadge.tsx +0 -107
  272. package/recce-source/js/app/(mainComponents)/TopBar.tsx +0 -252
  273. package/recce-source/js/app/@lineage/default.tsx +0 -20
  274. package/recce-source/js/app/@lineage/page.tsx +0 -14
  275. package/recce-source/js/app/MainLayout.tsx +0 -170
  276. package/recce-source/js/app/Providers.tsx +0 -49
  277. package/recce-source/js/app/checks/page.tsx +0 -296
  278. package/recce-source/js/app/error.tsx +0 -93
  279. package/recce-source/js/app/favicon.ico +0 -0
  280. package/recce-source/js/app/global-error.tsx +0 -115
  281. package/recce-source/js/app/global.css +0 -82
  282. package/recce-source/js/app/layout.tsx +0 -48
  283. package/recce-source/js/app/lineage/page.tsx +0 -15
  284. package/recce-source/js/app/page.tsx +0 -12
  285. package/recce-source/js/app/query/page.tsx +0 -8
  286. package/recce-source/js/biome.json +0 -313
  287. package/recce-source/js/jest.config.js +0 -34
  288. package/recce-source/js/jest.globals.d.ts +0 -32
  289. package/recce-source/js/jest.setup.js +0 -91
  290. package/recce-source/js/next.config.js +0 -16
  291. package/recce-source/js/package-lock.json +0 -13843
  292. package/recce-source/js/package.json +0 -123
  293. package/recce-source/js/pnpm-lock.yaml +0 -9235
  294. package/recce-source/js/pnpm-workspace.yaml +0 -6
  295. package/recce-source/js/postcss.config.js +0 -5
  296. package/recce-source/js/public/auth_callback.html +0 -68
  297. package/recce-source/js/public/imgs/feedback/thumbs-down.png +0 -0
  298. package/recce-source/js/public/imgs/feedback/thumbs-up.png +0 -0
  299. package/recce-source/js/public/imgs/reload-image.svg +0 -4
  300. package/recce-source/js/public/logo/recce-logo-white.png +0 -0
  301. package/recce-source/js/src/components/AuthModal/AuthModal.tsx +0 -202
  302. package/recce-source/js/src/components/app/AvatarDropdown.tsx +0 -159
  303. package/recce-source/js/src/components/app/EnvInfo.tsx +0 -357
  304. package/recce-source/js/src/components/app/Filename.tsx +0 -388
  305. package/recce-source/js/src/components/app/SetupConnectionPopover.tsx +0 -91
  306. package/recce-source/js/src/components/app/StateExporter.tsx +0 -57
  307. package/recce-source/js/src/components/app/StateImporter.tsx +0 -198
  308. package/recce-source/js/src/components/app/StateSharing.tsx +0 -145
  309. package/recce-source/js/src/components/app/StateSynchronizer.tsx +0 -205
  310. package/recce-source/js/src/components/charts/HistogramChart.tsx +0 -291
  311. package/recce-source/js/src/components/charts/SquareIcon.tsx +0 -51
  312. package/recce-source/js/src/components/charts/TopKSummaryList.tsx +0 -457
  313. package/recce-source/js/src/components/charts/chartTheme.ts +0 -74
  314. package/recce-source/js/src/components/check/CheckBreadcrumb.tsx +0 -97
  315. package/recce-source/js/src/components/check/CheckDescription.tsx +0 -134
  316. package/recce-source/js/src/components/check/CheckDetail.tsx +0 -797
  317. package/recce-source/js/src/components/check/CheckEmptyState.tsx +0 -84
  318. package/recce-source/js/src/components/check/CheckList.tsx +0 -320
  319. package/recce-source/js/src/components/check/LineageDiffView.tsx +0 -32
  320. package/recce-source/js/src/components/check/PresetCheckTemplateView.tsx +0 -48
  321. package/recce-source/js/src/components/check/SchemaDiffView.tsx +0 -290
  322. package/recce-source/js/src/components/check/check.ts +0 -25
  323. package/recce-source/js/src/components/check/timeline/CheckTimeline.tsx +0 -163
  324. package/recce-source/js/src/components/check/timeline/CommentInput.tsx +0 -84
  325. package/recce-source/js/src/components/check/timeline/TimelineEvent.tsx +0 -468
  326. package/recce-source/js/src/components/check/timeline/index.ts +0 -12
  327. package/recce-source/js/src/components/check/utils.ts +0 -12
  328. package/recce-source/js/src/components/data-grid/ScreenshotDataGrid.tsx +0 -333
  329. package/recce-source/js/src/components/data-grid/agGridStyles.css +0 -55
  330. package/recce-source/js/src/components/data-grid/agGridTheme.ts +0 -43
  331. package/recce-source/js/src/components/editor/CodeEditor.tsx +0 -107
  332. package/recce-source/js/src/components/editor/DiffEditor.tsx +0 -162
  333. package/recce-source/js/src/components/editor/index.ts +0 -12
  334. package/recce-source/js/src/components/errorboundary/ErrorBoundary.tsx +0 -87
  335. package/recce-source/js/src/components/histogram/HistogramDiffForm.tsx +0 -147
  336. package/recce-source/js/src/components/histogram/HistogramDiffResultView.tsx +0 -63
  337. package/recce-source/js/src/components/icons/index.tsx +0 -142
  338. package/recce-source/js/src/components/lineage/ActionControl.tsx +0 -63
  339. package/recce-source/js/src/components/lineage/ActionTag.tsx +0 -141
  340. package/recce-source/js/src/components/lineage/ChangeStatusLegend.tsx +0 -46
  341. package/recce-source/js/src/components/lineage/ColumnLevelLineageControl.tsx +0 -327
  342. package/recce-source/js/src/components/lineage/ColumnLevelLineageLegend.tsx +0 -57
  343. package/recce-source/js/src/components/lineage/GraphColumnNode.tsx +0 -199
  344. package/recce-source/js/src/components/lineage/GraphEdge.tsx +0 -59
  345. package/recce-source/js/src/components/lineage/GraphNode.tsx +0 -555
  346. package/recce-source/js/src/components/lineage/LineagePage.tsx +0 -10
  347. package/recce-source/js/src/components/lineage/LineageView.tsx +0 -1384
  348. package/recce-source/js/src/components/lineage/LineageViewContext.tsx +0 -86
  349. package/recce-source/js/src/components/lineage/LineageViewContextMenu.tsx +0 -637
  350. package/recce-source/js/src/components/lineage/LineageViewNotification.tsx +0 -64
  351. package/recce-source/js/src/components/lineage/LineageViewTopBar.tsx +0 -596
  352. package/recce-source/js/src/components/lineage/NodeSqlView.tsx +0 -136
  353. package/recce-source/js/src/components/lineage/NodeTag.tsx +0 -278
  354. package/recce-source/js/src/components/lineage/NodeView.tsx +0 -642
  355. package/recce-source/js/src/components/lineage/SandboxView.tsx +0 -436
  356. package/recce-source/js/src/components/lineage/ServerDisconnectedModalContent.tsx +0 -105
  357. package/recce-source/js/src/components/lineage/SetupConnectionBanner.tsx +0 -52
  358. package/recce-source/js/src/components/lineage/SingleEnvironmentQueryView.tsx +0 -152
  359. package/recce-source/js/src/components/lineage/graph.test.ts +0 -31
  360. package/recce-source/js/src/components/lineage/graph.ts +0 -58
  361. package/recce-source/js/src/components/lineage/lineage.test.ts +0 -169
  362. package/recce-source/js/src/components/lineage/lineage.ts +0 -521
  363. package/recce-source/js/src/components/lineage/styles.css +0 -42
  364. package/recce-source/js/src/components/lineage/styles.tsx +0 -165
  365. package/recce-source/js/src/components/lineage/useMultiNodesAction.ts +0 -352
  366. package/recce-source/js/src/components/lineage/useValueDiffAlertDialog.tsx +0 -108
  367. package/recce-source/js/src/components/onboarding-guide/Notification.tsx +0 -62
  368. package/recce-source/js/src/components/profile/ProfileDiffForm.tsx +0 -134
  369. package/recce-source/js/src/components/profile/ProfileDiffResultView.tsx +0 -243
  370. package/recce-source/js/src/components/query/ChangedOnlyCheckbox.tsx +0 -29
  371. package/recce-source/js/src/components/query/DiffText.tsx +0 -120
  372. package/recce-source/js/src/components/query/QueryDiffResultView.tsx +0 -468
  373. package/recce-source/js/src/components/query/QueryForm.tsx +0 -80
  374. package/recce-source/js/src/components/query/QueryPage.tsx +0 -282
  375. package/recce-source/js/src/components/query/QueryResultView.tsx +0 -180
  376. package/recce-source/js/src/components/query/SetupConnectionGuide.tsx +0 -57
  377. package/recce-source/js/src/components/query/SqlEditor.tsx +0 -245
  378. package/recce-source/js/src/components/query/ToggleSwitch.tsx +0 -84
  379. package/recce-source/js/src/components/query/styles.css +0 -21
  380. package/recce-source/js/src/components/routing/DirectUrlAccess.test.tsx +0 -428
  381. package/recce-source/js/src/components/routing/LineageStatePreservation.test.tsx +0 -311
  382. package/recce-source/js/src/components/routing/Navigation.test.tsx +0 -256
  383. package/recce-source/js/src/components/rowcount/RowCountDiffResultView.tsx +0 -108
  384. package/recce-source/js/src/components/rowcount/delta.test.ts +0 -51
  385. package/recce-source/js/src/components/rowcount/delta.ts +0 -16
  386. package/recce-source/js/src/components/run/RunList.tsx +0 -303
  387. package/recce-source/js/src/components/run/RunModal.tsx +0 -191
  388. package/recce-source/js/src/components/run/RunPage.tsx +0 -26
  389. package/recce-source/js/src/components/run/RunResultPane.tsx +0 -578
  390. package/recce-source/js/src/components/run/RunStatusAndDate.tsx +0 -106
  391. package/recce-source/js/src/components/run/RunToolbar.tsx +0 -70
  392. package/recce-source/js/src/components/run/RunView.tsx +0 -196
  393. package/recce-source/js/src/components/run/registry.ts +0 -214
  394. package/recce-source/js/src/components/run/types.ts +0 -14
  395. package/recce-source/js/src/components/schema/ColumnNameCell.test.tsx +0 -169
  396. package/recce-source/js/src/components/schema/ColumnNameCell.tsx +0 -198
  397. package/recce-source/js/src/components/schema/SchemaView.tsx +0 -336
  398. package/recce-source/js/src/components/schema/schemaDiff.ts +0 -32
  399. package/recce-source/js/src/components/schema/style.css +0 -134
  400. package/recce-source/js/src/components/screenshot/ScreenshotBox.tsx +0 -39
  401. package/recce-source/js/src/components/shared/HistoryToggle.tsx +0 -35
  402. package/recce-source/js/src/components/split/Split.tsx +0 -40
  403. package/recce-source/js/src/components/split/styles.css +0 -24
  404. package/recce-source/js/src/components/summary/ChangeSummary.tsx +0 -264
  405. package/recce-source/js/src/components/summary/SchemaSummary.tsx +0 -123
  406. package/recce-source/js/src/components/summary/SummaryView.tsx +0 -29
  407. package/recce-source/js/src/components/timeout/IdleTimeoutBadge.tsx +0 -48
  408. package/recce-source/js/src/components/top-k/TopKDiffForm.tsx +0 -58
  409. package/recce-source/js/src/components/top-k/TopKDiffResultView.tsx +0 -73
  410. package/recce-source/js/src/components/ui/dataGrid/DataFrameColumnGroupHeader.tsx +0 -228
  411. package/recce-source/js/src/components/ui/dataGrid/DataFrameColumnHeader.tsx +0 -113
  412. package/recce-source/js/src/components/ui/dataGrid/defaultRenderCell.tsx +0 -72
  413. package/recce-source/js/src/components/ui/dataGrid/index.ts +0 -23
  414. package/recce-source/js/src/components/ui/dataGrid/inlineRenderCell.test.tsx +0 -607
  415. package/recce-source/js/src/components/ui/dataGrid/inlineRenderCell.tsx +0 -211
  416. package/recce-source/js/src/components/ui/dataGrid/schemaCells.test.tsx +0 -452
  417. package/recce-source/js/src/components/ui/dataGrid/schemaCells.tsx +0 -142
  418. package/recce-source/js/src/components/ui/dataGrid/valueDiffCells.test.tsx +0 -178
  419. package/recce-source/js/src/components/ui/dataGrid/valueDiffCells.tsx +0 -275
  420. package/recce-source/js/src/components/ui/markdown/ExternalLinkConfirmDialog.tsx +0 -134
  421. package/recce-source/js/src/components/ui/markdown/MarkdownContent.tsx +0 -364
  422. package/recce-source/js/src/components/ui/mui/index.ts +0 -13
  423. package/recce-source/js/src/components/ui/mui-provider.tsx +0 -67
  424. package/recce-source/js/src/components/ui/mui-theme.ts +0 -1039
  425. package/recce-source/js/src/components/ui/mui-utils.ts +0 -113
  426. package/recce-source/js/src/components/ui/toaster.tsx +0 -288
  427. package/recce-source/js/src/components/valuediff/ValueDiffDetailResultView.tsx +0 -216
  428. package/recce-source/js/src/components/valuediff/ValueDiffForm.tsx +0 -246
  429. package/recce-source/js/src/components/valuediff/ValueDiffResultView.tsx +0 -81
  430. package/recce-source/js/src/components/valuediff/shared.ts +0 -33
  431. package/recce-source/js/src/constants/tooltipMessage.ts +0 -3
  432. package/recce-source/js/src/constants/urls.ts +0 -1
  433. package/recce-source/js/src/lib/UrlHash.ts +0 -12
  434. package/recce-source/js/src/lib/api/adhocQuery.ts +0 -70
  435. package/recce-source/js/src/lib/api/axiosClient.ts +0 -9
  436. package/recce-source/js/src/lib/api/cacheKeys.ts +0 -13
  437. package/recce-source/js/src/lib/api/checkEvents.ts +0 -252
  438. package/recce-source/js/src/lib/api/checks.ts +0 -129
  439. package/recce-source/js/src/lib/api/cll.ts +0 -53
  440. package/recce-source/js/src/lib/api/connectToCloud.ts +0 -13
  441. package/recce-source/js/src/lib/api/flag.ts +0 -37
  442. package/recce-source/js/src/lib/api/info.ts +0 -198
  443. package/recce-source/js/src/lib/api/instanceInfo.ts +0 -25
  444. package/recce-source/js/src/lib/api/keepAlive.ts +0 -108
  445. package/recce-source/js/src/lib/api/lineagecheck.ts +0 -35
  446. package/recce-source/js/src/lib/api/localStorageKeys.ts +0 -7
  447. package/recce-source/js/src/lib/api/models.ts +0 -59
  448. package/recce-source/js/src/lib/api/profile.ts +0 -65
  449. package/recce-source/js/src/lib/api/rowcount.ts +0 -19
  450. package/recce-source/js/src/lib/api/runs.ts +0 -174
  451. package/recce-source/js/src/lib/api/schemacheck.ts +0 -31
  452. package/recce-source/js/src/lib/api/select.ts +0 -25
  453. package/recce-source/js/src/lib/api/sessionStorageKeys.ts +0 -8
  454. package/recce-source/js/src/lib/api/state.ts +0 -117
  455. package/recce-source/js/src/lib/api/track.ts +0 -281
  456. package/recce-source/js/src/lib/api/types.ts +0 -284
  457. package/recce-source/js/src/lib/api/user.ts +0 -42
  458. package/recce-source/js/src/lib/api/valuediff.ts +0 -46
  459. package/recce-source/js/src/lib/api/version.ts +0 -40
  460. package/recce-source/js/src/lib/const.ts +0 -9
  461. package/recce-source/js/src/lib/csv/extractors.test.ts +0 -456
  462. package/recce-source/js/src/lib/csv/extractors.ts +0 -468
  463. package/recce-source/js/src/lib/csv/format.test.ts +0 -211
  464. package/recce-source/js/src/lib/csv/format.ts +0 -44
  465. package/recce-source/js/src/lib/csv/index.test.ts +0 -155
  466. package/recce-source/js/src/lib/csv/index.ts +0 -109
  467. package/recce-source/js/src/lib/dataGrid/crossFunctionConsistency.test.ts +0 -626
  468. package/recce-source/js/src/lib/dataGrid/dataGridFactory.test.ts +0 -2140
  469. package/recce-source/js/src/lib/dataGrid/dataGridFactory.ts +0 -397
  470. package/recce-source/js/src/lib/dataGrid/generators/rowCountUtils.test.ts +0 -132
  471. package/recce-source/js/src/lib/dataGrid/generators/rowCountUtils.ts +0 -126
  472. package/recce-source/js/src/lib/dataGrid/generators/toDataDiffGrid.test.ts +0 -1627
  473. package/recce-source/js/src/lib/dataGrid/generators/toDataDiffGrid.ts +0 -140
  474. package/recce-source/js/src/lib/dataGrid/generators/toDataGrid.ts +0 -67
  475. package/recce-source/js/src/lib/dataGrid/generators/toRowCountDataGrid.test.ts +0 -142
  476. package/recce-source/js/src/lib/dataGrid/generators/toRowCountDataGrid.ts +0 -71
  477. package/recce-source/js/src/lib/dataGrid/generators/toRowCountDiffDataGrid.test.ts +0 -258
  478. package/recce-source/js/src/lib/dataGrid/generators/toRowCountDiffDataGrid.ts +0 -153
  479. package/recce-source/js/src/lib/dataGrid/generators/toSchemaDataGrid.test.ts +0 -951
  480. package/recce-source/js/src/lib/dataGrid/generators/toSchemaDataGrid.ts +0 -221
  481. package/recce-source/js/src/lib/dataGrid/generators/toValueDataGrid.test.ts +0 -395
  482. package/recce-source/js/src/lib/dataGrid/generators/toValueDataGrid.ts +0 -184
  483. package/recce-source/js/src/lib/dataGrid/generators/toValueDiffGrid.test.ts +0 -884
  484. package/recce-source/js/src/lib/dataGrid/generators/toValueDiffGrid.ts +0 -113
  485. package/recce-source/js/src/lib/dataGrid/index.ts +0 -51
  486. package/recce-source/js/src/lib/dataGrid/propertyBased.test.ts +0 -858
  487. package/recce-source/js/src/lib/dataGrid/shared/columnBuilders.test.ts +0 -482
  488. package/recce-source/js/src/lib/dataGrid/shared/columnBuilders.ts +0 -345
  489. package/recce-source/js/src/lib/dataGrid/shared/dataTypeEdgeCases.test.ts +0 -698
  490. package/recce-source/js/src/lib/dataGrid/shared/diffColumnBuilder.test.tsx +0 -820
  491. package/recce-source/js/src/lib/dataGrid/shared/diffColumnBuilder.tsx +0 -277
  492. package/recce-source/js/src/lib/dataGrid/shared/gridUtils.test.ts +0 -785
  493. package/recce-source/js/src/lib/dataGrid/shared/gridUtils.ts +0 -370
  494. package/recce-source/js/src/lib/dataGrid/shared/index.ts +0 -81
  495. package/recce-source/js/src/lib/dataGrid/shared/rowBuilders.test.ts +0 -909
  496. package/recce-source/js/src/lib/dataGrid/shared/rowBuilders.ts +0 -325
  497. package/recce-source/js/src/lib/dataGrid/shared/simpleColumnBuilder.tsx +0 -240
  498. package/recce-source/js/src/lib/dataGrid/shared/toDiffColumn.test.tsx +0 -719
  499. package/recce-source/js/src/lib/dataGrid/shared/toDiffColumn.tsx +0 -231
  500. package/recce-source/js/src/lib/dataGrid/shared/validation.test.ts +0 -559
  501. package/recce-source/js/src/lib/dataGrid/shared/validation.ts +0 -367
  502. package/recce-source/js/src/lib/dataGrid/warehouseNamingConventions.test.ts +0 -1117
  503. package/recce-source/js/src/lib/formatSelect.ts +0 -50
  504. package/recce-source/js/src/lib/hooks/ApiConfigContext.tsx +0 -181
  505. package/recce-source/js/src/lib/hooks/IdleTimeoutContext.tsx +0 -177
  506. package/recce-source/js/src/lib/hooks/LineageGraphContext.tsx +0 -512
  507. package/recce-source/js/src/lib/hooks/RecceActionContext.tsx +0 -269
  508. package/recce-source/js/src/lib/hooks/RecceCheckContext.tsx +0 -33
  509. package/recce-source/js/src/lib/hooks/RecceContextProvider.tsx +0 -54
  510. package/recce-source/js/src/lib/hooks/RecceInstanceContext.tsx +0 -129
  511. package/recce-source/js/src/lib/hooks/RecceQueryContext.tsx +0 -98
  512. package/recce-source/js/src/lib/hooks/RecceShareStateContext.tsx +0 -59
  513. package/recce-source/js/src/lib/hooks/ScreenShot.tsx +0 -399
  514. package/recce-source/js/src/lib/hooks/useAppRouter.test.ts +0 -211
  515. package/recce-source/js/src/lib/hooks/useAppRouter.ts +0 -200
  516. package/recce-source/js/src/lib/hooks/useCSVExport.ts +0 -136
  517. package/recce-source/js/src/lib/hooks/useCheckEvents.ts +0 -99
  518. package/recce-source/js/src/lib/hooks/useCheckToast.tsx +0 -14
  519. package/recce-source/js/src/lib/hooks/useClipBoardToast.tsx +0 -27
  520. package/recce-source/js/src/lib/hooks/useCountdownToast.tsx +0 -102
  521. package/recce-source/js/src/lib/hooks/useFeedbackCollectionToast.tsx +0 -130
  522. package/recce-source/js/src/lib/hooks/useGuideToast.tsx +0 -45
  523. package/recce-source/js/src/lib/hooks/useIdleDetection.tsx +0 -185
  524. package/recce-source/js/src/lib/hooks/useModelColumns.tsx +0 -113
  525. package/recce-source/js/src/lib/hooks/useRecceInstanceInfo.tsx +0 -13
  526. package/recce-source/js/src/lib/hooks/useRecceServerFlag.tsx +0 -13
  527. package/recce-source/js/src/lib/hooks/useRun.tsx +0 -89
  528. package/recce-source/js/src/lib/hooks/useThemeColors.ts +0 -115
  529. package/recce-source/js/src/lib/mergeKeys.test.ts +0 -89
  530. package/recce-source/js/src/lib/mergeKeys.ts +0 -86
  531. package/recce-source/js/src/lib/result/ResultErrorFallback.tsx +0 -9
  532. package/recce-source/js/src/lib/utils/formatTime.ts +0 -84
  533. package/recce-source/js/src/lib/utils/urls.ts +0 -16
  534. package/recce-source/js/src/utils/DropdownValuesInput.tsx +0 -297
  535. package/recce-source/js/src/utils/formatters.tsx +0 -237
  536. package/recce-source/js/src/utils/transforms.ts +0 -81
  537. package/recce-source/js/tsconfig.json +0 -47
  538. package/recce-source/macros/README.md +0 -8
  539. package/recce-source/macros/recce_athena.sql +0 -73
  540. package/recce-source/pyproject.toml +0 -109
  541. package/recce-source/recce/VERSION +0 -1
  542. package/recce-source/recce/__init__.py +0 -84
  543. package/recce-source/recce/adapter/__init__.py +0 -0
  544. package/recce-source/recce/adapter/base.py +0 -109
  545. package/recce-source/recce/adapter/dbt_adapter/__init__.py +0 -1699
  546. package/recce-source/recce/adapter/dbt_adapter/dbt_version.py +0 -42
  547. package/recce-source/recce/adapter/sqlmesh_adapter.py +0 -141
  548. package/recce-source/recce/apis/__init__.py +0 -0
  549. package/recce-source/recce/apis/check_api.py +0 -203
  550. package/recce-source/recce/apis/check_events_api.py +0 -353
  551. package/recce-source/recce/apis/check_func.py +0 -130
  552. package/recce-source/recce/apis/run_api.py +0 -130
  553. package/recce-source/recce/apis/run_func.py +0 -258
  554. package/recce-source/recce/artifact.py +0 -266
  555. package/recce-source/recce/cli.py +0 -1846
  556. package/recce-source/recce/config.py +0 -127
  557. package/recce-source/recce/connect_to_cloud.py +0 -138
  558. package/recce-source/recce/core.py +0 -334
  559. package/recce-source/recce/diff.py +0 -26
  560. package/recce-source/recce/event/CONFIG +0 -1
  561. package/recce-source/recce/event/SENTRY_DNS +0 -1
  562. package/recce-source/recce/event/__init__.py +0 -304
  563. package/recce-source/recce/event/collector.py +0 -184
  564. package/recce-source/recce/event/track.py +0 -158
  565. package/recce-source/recce/exceptions.py +0 -21
  566. package/recce-source/recce/git.py +0 -77
  567. package/recce-source/recce/github.py +0 -222
  568. package/recce-source/recce/mcp_server.py +0 -885
  569. package/recce-source/recce/models/__init__.py +0 -6
  570. package/recce-source/recce/models/check.py +0 -481
  571. package/recce-source/recce/models/run.py +0 -46
  572. package/recce-source/recce/models/types.py +0 -218
  573. package/recce-source/recce/pull_request.py +0 -124
  574. package/recce-source/recce/run.py +0 -390
  575. package/recce-source/recce/server.py +0 -877
  576. package/recce-source/recce/state/__init__.py +0 -31
  577. package/recce-source/recce/state/cloud.py +0 -644
  578. package/recce-source/recce/state/const.py +0 -26
  579. package/recce-source/recce/state/local.py +0 -56
  580. package/recce-source/recce/state/state.py +0 -119
  581. package/recce-source/recce/state/state_loader.py +0 -174
  582. package/recce-source/recce/summary.py +0 -575
  583. package/recce-source/recce/tasks/__init__.py +0 -23
  584. package/recce-source/recce/tasks/core.py +0 -134
  585. package/recce-source/recce/tasks/dataframe.py +0 -170
  586. package/recce-source/recce/tasks/histogram.py +0 -433
  587. package/recce-source/recce/tasks/lineage.py +0 -19
  588. package/recce-source/recce/tasks/profile.py +0 -298
  589. package/recce-source/recce/tasks/query.py +0 -450
  590. package/recce-source/recce/tasks/rowcount.py +0 -277
  591. package/recce-source/recce/tasks/schema.py +0 -65
  592. package/recce-source/recce/tasks/top_k.py +0 -172
  593. package/recce-source/recce/tasks/utils.py +0 -147
  594. package/recce-source/recce/tasks/valuediff.py +0 -497
  595. package/recce-source/recce/util/__init__.py +0 -4
  596. package/recce-source/recce/util/api_token.py +0 -80
  597. package/recce-source/recce/util/breaking.py +0 -330
  598. package/recce-source/recce/util/cache.py +0 -25
  599. package/recce-source/recce/util/cll.py +0 -355
  600. package/recce-source/recce/util/cloud/__init__.py +0 -15
  601. package/recce-source/recce/util/cloud/base.py +0 -115
  602. package/recce-source/recce/util/cloud/check_events.py +0 -190
  603. package/recce-source/recce/util/cloud/checks.py +0 -242
  604. package/recce-source/recce/util/io.py +0 -120
  605. package/recce-source/recce/util/lineage.py +0 -83
  606. package/recce-source/recce/util/logger.py +0 -25
  607. package/recce-source/recce/util/onboarding_state.py +0 -45
  608. package/recce-source/recce/util/perf_tracking.py +0 -85
  609. package/recce-source/recce/util/pydantic_model.py +0 -22
  610. package/recce-source/recce/util/recce_cloud.py +0 -454
  611. package/recce-source/recce/util/singleton.py +0 -18
  612. package/recce-source/recce/util/startup_perf.py +0 -121
  613. package/recce-source/recce/yaml/__init__.py +0 -58
  614. package/recce-source/recce_cloud/README.md +0 -780
  615. package/recce-source/recce_cloud/VERSION +0 -1
  616. package/recce-source/recce_cloud/__init__.py +0 -24
  617. package/recce-source/recce_cloud/api/__init__.py +0 -17
  618. package/recce-source/recce_cloud/api/base.py +0 -132
  619. package/recce-source/recce_cloud/api/client.py +0 -186
  620. package/recce-source/recce_cloud/api/exceptions.py +0 -26
  621. package/recce-source/recce_cloud/api/factory.py +0 -63
  622. package/recce-source/recce_cloud/api/github.py +0 -106
  623. package/recce-source/recce_cloud/api/gitlab.py +0 -111
  624. package/recce-source/recce_cloud/artifact.py +0 -57
  625. package/recce-source/recce_cloud/ci_providers/__init__.py +0 -9
  626. package/recce-source/recce_cloud/ci_providers/base.py +0 -82
  627. package/recce-source/recce_cloud/ci_providers/detector.py +0 -147
  628. package/recce-source/recce_cloud/ci_providers/github_actions.py +0 -136
  629. package/recce-source/recce_cloud/ci_providers/gitlab_ci.py +0 -130
  630. package/recce-source/recce_cloud/cli.py +0 -434
  631. package/recce-source/recce_cloud/download.py +0 -230
  632. package/recce-source/recce_cloud/hatch_build.py +0 -20
  633. package/recce-source/recce_cloud/pyproject.toml +0 -49
  634. package/recce-source/recce_cloud/upload.py +0 -214
  635. package/recce-source/test.py +0 -0
  636. package/recce-source/tests/__init__.py +0 -0
  637. package/recce-source/tests/adapter/__init__.py +0 -0
  638. package/recce-source/tests/adapter/dbt_adapter/__init__.py +0 -0
  639. package/recce-source/tests/adapter/dbt_adapter/conftest.py +0 -17
  640. package/recce-source/tests/adapter/dbt_adapter/dbt_test_helper.py +0 -298
  641. package/recce-source/tests/adapter/dbt_adapter/test_dbt_adapter.py +0 -25
  642. package/recce-source/tests/adapter/dbt_adapter/test_dbt_cll.py +0 -717
  643. package/recce-source/tests/adapter/dbt_adapter/test_proj/dbt_project.yml +0 -4
  644. package/recce-source/tests/adapter/dbt_adapter/test_proj/manifest.json +0 -1
  645. package/recce-source/tests/adapter/dbt_adapter/test_proj/package-lock.yml +0 -8
  646. package/recce-source/tests/adapter/dbt_adapter/test_proj/packages.yml +0 -7
  647. package/recce-source/tests/adapter/dbt_adapter/test_proj/profiles.yml +0 -6
  648. package/recce-source/tests/adapter/dbt_adapter/test_selector.py +0 -205
  649. package/recce-source/tests/apis/__init__.py +0 -0
  650. package/recce-source/tests/apis/row_count_diff.json +0 -59
  651. package/recce-source/tests/apis/test_check_events_api.py +0 -615
  652. package/recce-source/tests/apis/test_run_func.py +0 -433
  653. package/recce-source/tests/catalog.json +0 -527
  654. package/recce-source/tests/data/manifest/base/catalog.json +0 -1
  655. package/recce-source/tests/data/manifest/base/manifest.json +0 -1
  656. package/recce-source/tests/data/manifest/pr2/catalog.json +0 -1
  657. package/recce-source/tests/data/manifest/pr2/manifest.json +0 -1
  658. package/recce-source/tests/manifest.json +0 -10655
  659. package/recce-source/tests/models/__init__.py +0 -0
  660. package/recce-source/tests/models/test_check.py +0 -731
  661. package/recce-source/tests/models/test_run_models.py +0 -295
  662. package/recce-source/tests/recce_cloud/__init__.py +0 -0
  663. package/recce-source/tests/recce_cloud/test_ci_providers.py +0 -351
  664. package/recce-source/tests/recce_cloud/test_cli.py +0 -735
  665. package/recce-source/tests/recce_cloud/test_client.py +0 -379
  666. package/recce-source/tests/recce_cloud/test_platform_clients.py +0 -483
  667. package/recce-source/tests/recce_state.json +0 -1
  668. package/recce-source/tests/state/test_cloud.py +0 -719
  669. package/recce-source/tests/state/test_local.py +0 -164
  670. package/recce-source/tests/state/test_state_loader.py +0 -211
  671. package/recce-source/tests/tasks/__init__.py +0 -0
  672. package/recce-source/tests/tasks/conftest.py +0 -4
  673. package/recce-source/tests/tasks/test_histogram.py +0 -129
  674. package/recce-source/tests/tasks/test_lineage.py +0 -55
  675. package/recce-source/tests/tasks/test_preset_checks.py +0 -64
  676. package/recce-source/tests/tasks/test_profile.py +0 -397
  677. package/recce-source/tests/tasks/test_query.py +0 -528
  678. package/recce-source/tests/tasks/test_row_count.py +0 -133
  679. package/recce-source/tests/tasks/test_schema.py +0 -122
  680. package/recce-source/tests/tasks/test_top_k.py +0 -77
  681. package/recce-source/tests/tasks/test_utils.py +0 -439
  682. package/recce-source/tests/tasks/test_valuediff.py +0 -361
  683. package/recce-source/tests/test_cli.py +0 -236
  684. package/recce-source/tests/test_cli_mcp_optional.py +0 -45
  685. package/recce-source/tests/test_cloud_listing_cli.py +0 -324
  686. package/recce-source/tests/test_config.py +0 -43
  687. package/recce-source/tests/test_connect_to_cloud.py +0 -82
  688. package/recce-source/tests/test_core.py +0 -174
  689. package/recce-source/tests/test_dbt.py +0 -36
  690. package/recce-source/tests/test_mcp_server.py +0 -505
  691. package/recce-source/tests/test_pull_request.py +0 -130
  692. package/recce-source/tests/test_server.py +0 -202
  693. package/recce-source/tests/test_server_lifespan.py +0 -138
  694. package/recce-source/tests/test_summary.py +0 -73
  695. package/recce-source/tests/util/__init__.py +0 -0
  696. package/recce-source/tests/util/cloud/__init__.py +0 -0
  697. package/recce-source/tests/util/cloud/test_check_events.py +0 -255
  698. package/recce-source/tests/util/cloud/test_checks.py +0 -204
  699. package/recce-source/tests/util/test_api_token.py +0 -119
  700. package/recce-source/tests/util/test_breaking.py +0 -1427
  701. package/recce-source/tests/util/test_cll.py +0 -706
  702. package/recce-source/tests/util/test_lineage.py +0 -122
  703. package/recce-source/tests/util/test_onboarding_state.py +0 -84
  704. package/recce-source/tests/util/test_recce_cloud.py +0 -231
  705. package/recce-source/tox.ini +0 -40
  706. package/recce-source/uv.lock +0 -3928
  707. package/src/api/index.ts +0 -32
  708. package/src/components/index.ts +0 -154
  709. package/src/global.d.ts +0 -14
  710. package/src/hooks/index.ts +0 -56
  711. package/src/index.ts +0 -17
  712. package/src/lib/hooks/RouteConfigContext.ts +0 -139
  713. package/src/lib/hooks/useAppRouter.ts +0 -240
  714. package/src/mui-augmentation.d.ts +0 -139
  715. package/src/theme/index.ts +0 -13
  716. package/src/theme.ts +0 -23
  717. package/src/types/index.ts +0 -23
@@ -1,355 +0,0 @@
1
- import time
2
- from dataclasses import dataclass
3
- from typing import Dict, List, Optional, Tuple
4
-
5
- import sqlglot.expressions as exp
6
- from sqlglot import Dialect, parse_one
7
- from sqlglot.errors import OptimizeError, SqlglotError
8
- from sqlglot.optimizer import Scope, traverse_scope
9
- from sqlglot.optimizer.qualify import qualify
10
-
11
- from recce.exceptions import RecceException
12
- from recce.models.types import CllColumn, CllColumnDep
13
-
14
- CllResult = Tuple[
15
- List[CllColumnDep], # Model to column dependencies
16
- Dict[str, CllColumn], # Column to column dependencies
17
- ]
18
-
19
-
20
- @dataclass
21
- class CLLPerformanceTracking:
22
- lineage_start = None
23
- lineage_elapsed = None
24
- column_lineage_start = None
25
- column_lineage_elapsed = None
26
-
27
- total_nodes = None
28
- sqlglot_error_nodes = 0
29
- other_error_nodes = 0
30
-
31
- def start_lineage(self):
32
- self.lineage_start = time.perf_counter_ns()
33
-
34
- def end_lineage(self):
35
- if self.lineage_start is None:
36
- return
37
- self.lineage_elapsed = (time.perf_counter_ns() - self.lineage_start) / 1000000
38
-
39
- def start_column_lineage(self):
40
- self.column_lineage_start = time.perf_counter_ns()
41
-
42
- def end_column_lineage(self):
43
- if self.column_lineage_start is None:
44
- return
45
- self.column_lineage_elapsed = (time.perf_counter_ns() - self.column_lineage_start) / 1000000
46
-
47
- def set_total_nodes(self, total_nodes):
48
- self.total_nodes = total_nodes
49
-
50
- def increment_sqlglot_error_nodes(self):
51
- self.sqlglot_error_nodes += 1
52
-
53
- def increment_other_error_nodes(self):
54
- self.other_error_nodes += 1
55
-
56
- def to_dict(self):
57
- return {
58
- "lineage_elapsed_ms": self.lineage_elapsed,
59
- "column_lineage_elapsed_ms": self.column_lineage_elapsed,
60
- "total_nodes": self.total_nodes,
61
- "sqlglot_error_nodes": self.sqlglot_error_nodes,
62
- "other_error_nodes": self.other_error_nodes,
63
- }
64
-
65
- def reset(self):
66
- self.lineage_start = None
67
- self.lineage_elapsed = None
68
- self.column_lineage_start = None
69
- self.column_lineage_elapsed = None
70
-
71
- self.total_nodes = None
72
- self.sqlglot_error_nodes = 0
73
- self.other_error_nodes = 0
74
-
75
-
76
- def _cll_column(proj, table_alias_map) -> CllColumn:
77
- # given an expression, return the columns depends on
78
- # [{node: table, column: column}, ...]
79
- type = "source"
80
- depends_on: List[CllColumnDep] = []
81
-
82
- # instance of Column
83
- if isinstance(proj, exp.Alias):
84
- # 'select a as b'
85
- # 'select CURRENT_TIMESTAMP() as create_at'
86
- root = proj.this
87
-
88
- for expression in root.walk(bfs=False):
89
- if isinstance(expression, exp.Column):
90
- column = expression
91
- alias = column.table
92
-
93
- if alias is None:
94
- table = next(iter(table_alias_map.values()))
95
- else:
96
- table = table_alias_map.get(alias, alias)
97
- depends_on.append(CllColumnDep(table, column.name))
98
- if type == "source":
99
- type = "passthrough"
100
- elif isinstance(expression, (exp.Paren, exp.Identifier)):
101
- pass
102
- else:
103
- type = "derived"
104
-
105
- depends_on = _dedeup_depends_on(depends_on)
106
-
107
- if len(depends_on) == 0:
108
- type = "source"
109
-
110
- if isinstance(proj, exp.Alias):
111
- alias = proj
112
- if type == "passthrough" and depends_on[0].column != alias.alias_or_name:
113
- type = "renamed"
114
-
115
- return CllColumn(type=type, depends_on=depends_on)
116
-
117
-
118
- def _dedeup_depends_on(depends_on: List[CllColumnDep]) -> List[CllColumnDep]:
119
- # deduplicate the depends_on list
120
- dedup_set = set()
121
- dedup_list = []
122
- for col_dep in depends_on:
123
- node_col = col_dep.node + "." + col_dep.column
124
- if node_col not in dedup_set:
125
- dedup_list.append(col_dep)
126
- dedup_set.add(node_col)
127
- return dedup_list
128
-
129
-
130
- def _cll_set_scope(scope: Scope, scope_cll_map: dict[Scope, CllResult]) -> CllResult:
131
- # model-to-column
132
- m2c: List[CllColumnDep] = []
133
- # column-to-column
134
- c2c_map: Dict[str, CllColumn] = {}
135
-
136
- for union_scope in scope.union_scopes:
137
- sub_scope_result = scope_cll_map.get(union_scope)
138
- if sub_scope_result is None:
139
- raise RecceException(f"Scope {union_scope} not found in scope_cll_map")
140
- sub_m2c, sub_c2c_map = sub_scope_result
141
-
142
- for k, v in sub_c2c_map.items():
143
- if k not in c2c_map:
144
- c2c_map[k] = v
145
- else:
146
- c2c_map[k].depends_on.extend(v.depends_on)
147
- c2c_map[k].transformation_type = "derived"
148
-
149
- m2c.extend(sub_m2c)
150
- return m2c, c2c_map
151
-
152
-
153
- def _cll_select_scope(scope: Scope, scope_cll_map: dict[Scope, CllResult]) -> CllResult:
154
- assert scope.expression.key == "select"
155
-
156
- # model-to-column
157
- m2c: List[CllColumnDep] = []
158
- # column-to-column
159
- c2c_map: Dict[str, CllColumn] = {}
160
-
161
- table_alias_map = {t.alias_or_name: t.name for t in scope.tables}
162
- select = scope.expression
163
-
164
- def source_column_dependency(ref_column: exp.Column) -> Optional[CllColumn]:
165
- column_name = ref_column.name
166
- table_name = ref_column.table if ref_column.table != "" else next(iter(table_alias_map.values()))
167
- source = scope.sources.get(table_name, None) # transformation_type: exp.Table | Scope
168
- if isinstance(source, Scope):
169
- ref_cll_result = scope_cll_map.get(source)
170
- if ref_cll_result is None:
171
- return None
172
- _, sub_c2c_map = ref_cll_result
173
- return sub_c2c_map.get(column_name)
174
- elif isinstance(source, exp.Table):
175
- return CllColumn(
176
- name=column_name,
177
- transformation_type="passthrough",
178
- depends_on=[CllColumnDep(node=source.name, column=column_name)],
179
- )
180
- else:
181
- return None
182
-
183
- def subquery_cll(subquery: exp.Subquery) -> Optional[CllResult]:
184
- select = subquery.find(exp.Select)
185
- if select is None:
186
- return None
187
-
188
- matched_scope = None
189
- for sub_scope in scope.subquery_scopes:
190
- if sub_scope.expression == select:
191
- matched_scope = sub_scope
192
- break
193
- if matched_scope is None:
194
- return None
195
-
196
- return scope_cll_map.get(matched_scope)
197
-
198
- for proj in scope.expression.selects:
199
- transformation_type = "source"
200
- column_depends_on: List[CllColumnDep] = []
201
- root = proj.this if isinstance(proj, exp.Alias) else proj
202
- for expression in root.walk(bfs=False):
203
- if isinstance(expression, exp.Column):
204
- ref_column_dependency = source_column_dependency(expression)
205
- if ref_column_dependency is not None:
206
- column_depends_on.extend(ref_column_dependency.depends_on)
207
- if ref_column_dependency.transformation_type == "derived":
208
- transformation_type = "derived"
209
- elif ref_column_dependency.transformation_type == "renamed":
210
- if transformation_type == "source" or transformation_type == "passthrough":
211
- transformation_type = "renamed"
212
- elif ref_column_dependency.transformation_type == "passthrough":
213
- if transformation_type == "source":
214
- transformation_type = "passthrough"
215
- else:
216
- column_depends_on.append(CllColumnDep(expression.table, expression.name))
217
- if transformation_type == "source":
218
- transformation_type = "passthrough"
219
-
220
- elif isinstance(expression, (exp.Paren, exp.Identifier)):
221
- pass
222
- else:
223
- transformation_type = "derived"
224
-
225
- column_depends_on = _dedeup_depends_on(column_depends_on)
226
-
227
- if len(column_depends_on) == 0 and transformation_type != "source":
228
- transformation_type = "source"
229
-
230
- if isinstance(proj, exp.Alias):
231
- alias = proj
232
- if transformation_type == "passthrough" and column_depends_on[0].column != alias.alias_or_name:
233
- transformation_type = "renamed"
234
-
235
- c2c_map[proj.alias_or_name] = CllColumn(
236
- name=proj.alias_or_name, transformation_type=transformation_type, depends_on=column_depends_on
237
- )
238
-
239
- def selected_column_dependency(ref_column: exp.Column) -> Optional[CllColumn]:
240
- column_name = ref_column.name
241
- return c2c_map.get(column_name)
242
-
243
- # joins clause: Reference the source columns
244
- if select.args.get("joins"):
245
- joins = select.args.get("joins")
246
- for join in joins:
247
- if isinstance(join, exp.Join):
248
- for ref_column in join.find_all(exp.Column):
249
- if source_column_dependency(ref_column) is not None:
250
- m2c.extend(source_column_dependency(ref_column).depends_on)
251
-
252
- # where clauses: Reference the source columns
253
- if select.args.get("where"):
254
- where = select.args.get("where")
255
- if isinstance(where, exp.Where):
256
- for ref_column in where.find_all(exp.Column):
257
- if source_column_dependency(ref_column) is not None:
258
- m2c.extend(source_column_dependency(ref_column).depends_on)
259
- for subquery in where.find_all(exp.Subquery):
260
- sub_cll = subquery_cll(subquery)
261
- if sub_cll is not None:
262
- sub_m2c, sub_c2c_map = sub_cll
263
- m2c.extend(sub_m2c)
264
- for sub_c in sub_c2c_map.values():
265
- m2c.extend(sub_c.depends_on)
266
-
267
- # group by clause: Reference the source columns, column index
268
- if select.args.get("group"):
269
- group = select.args.get("group")
270
- if isinstance(group, exp.Group):
271
- for ref_column in group.find_all(exp.Column):
272
- if source_column_dependency(ref_column) is not None:
273
- m2c.extend(source_column_dependency(ref_column).depends_on)
274
-
275
- # having clause: Reference the source columns, selected columns
276
- if select.args.get("having"):
277
- having = select.args.get("having")
278
- if isinstance(having, exp.Having):
279
- for ref_column in having.find_all(exp.Column):
280
- if source_column_dependency(ref_column) is not None:
281
- m2c.extend(source_column_dependency(ref_column).depends_on)
282
- elif selected_column_dependency(ref_column) is not None:
283
- m2c.extend(selected_column_dependency(ref_column).depends_on)
284
- for subquery in having.find_all(exp.Subquery):
285
- sub_cll = subquery_cll(subquery)
286
- if sub_cll is not None:
287
- sub_m2c, sub_c2c_map = sub_cll
288
- m2c.extend(sub_m2c)
289
- for sub_c in sub_c2c_map.values():
290
- m2c.extend(sub_c.depends_on)
291
-
292
- # order by clause: Reference the source columns, selected columns, column index
293
- if select.args.get("order"):
294
- order = select.args.get("order")
295
- if isinstance(order, exp.Order):
296
- for ref_column in order.find_all(exp.Column):
297
- if source_column_dependency(ref_column) is not None:
298
- m2c.extend(source_column_dependency(ref_column).depends_on)
299
- elif selected_column_dependency(ref_column) is not None:
300
- m2c.extend(selected_column_dependency(ref_column).depends_on)
301
-
302
- for source in scope.sources.values():
303
- scope_cll_result = scope_cll_map.get(source)
304
- if scope_cll_result is None:
305
- continue
306
- sub_m2c, _ = scope_cll_result
307
- m2c.extend(sub_m2c)
308
-
309
- m2c = _dedeup_depends_on(m2c)
310
-
311
- return m2c, c2c_map
312
-
313
-
314
- def cll(sql, schema=None, dialect=None) -> CllResult:
315
- # given a sql, return the cll for the sql
316
- # {
317
- # 'depends_on': [{'node': 'model_id', 'column': 'column'}],
318
- # 'columns': {
319
- # 'column1': {
320
- # 'type': 'derived',
321
- # 'depends_on': [{'node': 'model_id', 'column': 'column'}],
322
- # }
323
- # }
324
- # }
325
-
326
- dialect = Dialect.get(dialect) if dialect is not None else None
327
-
328
- try:
329
- expression = parse_one(sql, dialect=dialect)
330
- except SqlglotError as e:
331
- raise RecceException(f"Failed to parse SQL: {str(e)}")
332
-
333
- try:
334
- expression = qualify(expression, schema=schema, dialect=dialect)
335
- except OptimizeError as e:
336
- raise RecceException(f"Failed to optimize SQL: {str(e)}")
337
- except SqlglotError as e:
338
- raise RecceException(f"Failed to qualify SQL: {str(e)}")
339
-
340
- result = None
341
- scope_cll_map = {}
342
- for scope in traverse_scope(expression):
343
- scope_type = scope.expression.key
344
- if scope_type == "union" or scope_type == "intersect" or scope_type == "except":
345
- result = _cll_set_scope(scope, scope_cll_map)
346
- elif scope_type == "select":
347
- result = _cll_select_scope(scope, scope_cll_map)
348
- else:
349
- continue
350
-
351
- scope_cll_map[scope] = result
352
-
353
- if result is None:
354
- raise RecceException("Failed to extract CLL from SQL")
355
- return result
@@ -1,15 +0,0 @@
1
- """
2
- Recce Cloud API client modules.
3
-
4
- This package provides modular access to Recce Cloud API endpoints.
5
- """
6
-
7
- from recce.util.cloud.base import CloudBase
8
- from recce.util.cloud.check_events import CheckEventsCloud
9
- from recce.util.cloud.checks import ChecksCloud
10
-
11
- __all__ = [
12
- "CloudBase",
13
- "CheckEventsCloud",
14
- "ChecksCloud",
15
- ]
@@ -1,115 +0,0 @@
1
- """
2
- Base class for Recce Cloud API clients.
3
-
4
- This module provides the common functionality shared across all cloud API clients.
5
- """
6
-
7
- import os
8
- from typing import Dict, Optional
9
-
10
- import requests
11
-
12
- from recce.util.recce_cloud import (
13
- DOCKER_INTERNAL_URL_PREFIX,
14
- LOCALHOST_URL_PREFIX,
15
- RECCE_CLOUD_API_HOST,
16
- RecceCloudException,
17
- )
18
-
19
-
20
- class CloudBase:
21
- """
22
- Base class for Recce Cloud API operations.
23
-
24
- Provides common functionality for making authenticated requests to the Recce Cloud API,
25
- including request handling, error management, and Docker environment URL conversion.
26
-
27
- Attributes:
28
- token: Authentication token (API token or GitHub token)
29
- token_type: Type of token ("api_token" or "github_token")
30
- base_url: Base URL for API v1 endpoints
31
- base_url_v2: Base URL for API v2 endpoints
32
- """
33
-
34
- def __init__(self, token: str):
35
- """
36
- Initialize the CloudBase client.
37
-
38
- Args:
39
- token: Authentication token for Recce Cloud API
40
-
41
- Raises:
42
- ValueError: If token is None
43
- """
44
- if token is None:
45
- raise ValueError("Token cannot be None.")
46
-
47
- self.token = token
48
- self.token_type = "github_token" if token.startswith(("ghp_", "gho_", "ghu_", "ghs_", "ghr_")) else "api_token"
49
- self.base_url = f"{RECCE_CLOUD_API_HOST}/api/v1"
50
- self.base_url_v2 = f"{RECCE_CLOUD_API_HOST}/api/v2"
51
-
52
- def _request(self, method: str, url: str, headers: Optional[Dict] = None, **kwargs):
53
- """
54
- Make an authenticated HTTP request to Recce Cloud API.
55
-
56
- Args:
57
- method: HTTP method (GET, POST, PATCH, DELETE, etc.)
58
- url: Full URL for the request
59
- headers: Optional additional headers
60
- **kwargs: Additional arguments passed to requests.request
61
-
62
- Returns:
63
- Response object from requests library
64
- """
65
- headers = {
66
- **(headers or {}),
67
- "Authorization": f"Bearer {self.token}",
68
- }
69
- url = self._replace_localhost_with_docker_internal(url)
70
- return requests.request(method, url, headers=headers, **kwargs)
71
-
72
- @staticmethod
73
- def _replace_localhost_with_docker_internal(url: str) -> Optional[str]:
74
- """
75
- Convert localhost URLs to docker internal URLs if running in Docker.
76
-
77
- This is useful for local development when Recce is running inside a Docker container
78
- and needs to access localhost services on the host machine.
79
-
80
- Args:
81
- url: URL that might contain localhost
82
-
83
- Returns:
84
- URL with localhost replaced by host.docker.internal if in Docker, otherwise original URL
85
- """
86
- if url is None:
87
- return None
88
-
89
- if (
90
- os.environ.get("RECCE_SHARE_INSTANCE_ENV") == "docker"
91
- or os.environ.get("RECCE_TASK_INSTANCE_ENV") == "docker"
92
- or os.environ.get("RECCE_INSTANCE_ENV") == "docker"
93
- ):
94
- if url.startswith(LOCALHOST_URL_PREFIX):
95
- return url.replace(LOCALHOST_URL_PREFIX, DOCKER_INTERNAL_URL_PREFIX)
96
-
97
- return url
98
-
99
- def _raise_for_status(self, response, message: str):
100
- """
101
- Raise RecceCloudException if the response status is not successful.
102
-
103
- Args:
104
- response: Response object from requests
105
- message: Error message to include in the exception
106
-
107
- Raises:
108
- RecceCloudException: If response status code is not 2xx
109
- """
110
- if not response.ok:
111
- raise RecceCloudException(
112
- message=message,
113
- reason=response.text,
114
- status_code=response.status_code,
115
- )
@@ -1,190 +0,0 @@
1
- """
2
- Recce Cloud API client for check event operations.
3
-
4
- This module provides methods for managing check events (timeline/conversation) in Recce Cloud,
5
- including CRUD operations for comments and retrieving state change events.
6
- """
7
-
8
- from typing import Dict, List
9
-
10
- from recce.util.cloud.base import CloudBase
11
-
12
-
13
- class CheckEventsCloud(CloudBase):
14
- """
15
- Client for Recce Cloud check event operations.
16
-
17
- Provides methods to list, create, update, and delete check events
18
- (comments and state changes) within Recce Cloud sessions.
19
-
20
- Examples:
21
- >>> client = CheckEventsCloud(token="your-api-token")
22
- >>> events = client.list_events(
23
- ... org_id="org123",
24
- ... project_id="proj456",
25
- ... session_id="sess789",
26
- ... check_id="check001"
27
- ... )
28
- """
29
-
30
- def _build_events_url(self, org_id: str, project_id: str, session_id: str, check_id: str) -> str:
31
- """Build the base URL for check events endpoints."""
32
- return f"{self.base_url_v2}/organizations/{org_id}/projects/{project_id}/sessions/{session_id}/checks/{check_id}/events"
33
-
34
- def list_events(self, org_id: str, project_id: str, session_id: str, check_id: str) -> List[Dict]:
35
- """
36
- List all events for a check in chronological order.
37
-
38
- Args:
39
- org_id: Organization ID
40
- project_id: Project ID
41
- session_id: Session ID
42
- check_id: Check ID
43
-
44
- Returns:
45
- List of event dictionaries
46
-
47
- Raises:
48
- RecceCloudException: If the request fails
49
-
50
- Example:
51
- >>> events = client.list_events("org123", "proj456", "sess789", "check001")
52
- >>> for event in events:
53
- ... print(f"{event['event_type']}: {event['content']}")
54
- """
55
- api_url = self._build_events_url(org_id, project_id, session_id, check_id)
56
- query_params = {"include_deleted": True}
57
- response = self._request("GET", api_url, params=query_params)
58
-
59
- self._raise_for_status(
60
- response,
61
- "Failed to list check events from Recce Cloud.",
62
- )
63
-
64
- data = response.json()
65
- # Response is wrapped: {"events": [...]}
66
- return data.get("events", [])
67
-
68
- def get_event(self, org_id: str, project_id: str, session_id: str, check_id: str, event_id: str) -> Dict:
69
- """
70
- Get a specific event by ID.
71
-
72
- Args:
73
- org_id: Organization ID
74
- project_id: Project ID
75
- session_id: Session ID
76
- check_id: Check ID
77
- event_id: Event ID
78
-
79
- Returns:
80
- Event dictionary
81
-
82
- Raises:
83
- RecceCloudException: If the request fails or event not found
84
- """
85
- api_url = f"{self._build_events_url(org_id, project_id, session_id, check_id)}/{event_id}"
86
- response = self._request("GET", api_url)
87
-
88
- self._raise_for_status(
89
- response,
90
- f"Failed to get check event {event_id} from Recce Cloud.",
91
- )
92
-
93
- data = response.json()
94
- # Response is wrapped: {"event": {...}}
95
- return data.get("event", {})
96
-
97
- def create_comment(self, org_id: str, project_id: str, session_id: str, check_id: str, content: str) -> Dict:
98
- """
99
- Create a new comment on a check.
100
-
101
- Args:
102
- org_id: Organization ID
103
- project_id: Project ID
104
- session_id: Session ID
105
- check_id: Check ID
106
- content: Comment content (plain text or markdown)
107
-
108
- Returns:
109
- Created event dictionary
110
-
111
- Raises:
112
- RecceCloudException: If the request fails
113
-
114
- Example:
115
- >>> event = client.create_comment(
116
- ... "org123", "proj456", "sess789", "check001",
117
- ... "This looks good to me!"
118
- ... )
119
- >>> print(f"Created comment with ID: {event['id']}")
120
- """
121
- api_url = self._build_events_url(org_id, project_id, session_id, check_id)
122
- response = self._request("POST", api_url, json={"content": content})
123
-
124
- self._raise_for_status(
125
- response,
126
- "Failed to create comment in Recce Cloud.",
127
- )
128
-
129
- data = response.json()
130
- # Response is wrapped: {"event": {...}}
131
- return data.get("event", {})
132
-
133
- def update_comment(
134
- self, org_id: str, project_id: str, session_id: str, check_id: str, event_id: str, content: str
135
- ) -> Dict:
136
- """
137
- Update an existing comment.
138
-
139
- Only the author or an admin can update a comment.
140
-
141
- Args:
142
- org_id: Organization ID
143
- project_id: Project ID
144
- session_id: Session ID
145
- check_id: Check ID
146
- event_id: Event ID of the comment to update
147
- content: New comment content
148
-
149
- Returns:
150
- Updated event dictionary
151
-
152
- Raises:
153
- RecceCloudException: If the request fails or user is not authorized
154
- """
155
- api_url = f"{self._build_events_url(org_id, project_id, session_id, check_id)}/{event_id}"
156
- response = self._request("PATCH", api_url, json={"content": content})
157
-
158
- self._raise_for_status(
159
- response,
160
- f"Failed to update comment {event_id} in Recce Cloud.",
161
- )
162
-
163
- data = response.json()
164
- # Response is wrapped: {"event": {...}}
165
- return data.get("event", {})
166
-
167
- def delete_comment(self, org_id: str, project_id: str, session_id: str, check_id: str, event_id: str) -> None:
168
- """
169
- Delete a comment (soft delete).
170
-
171
- Only the author or an admin can delete a comment.
172
- The comment will be marked as deleted but remain in the timeline.
173
-
174
- Args:
175
- org_id: Organization ID
176
- project_id: Project ID
177
- session_id: Session ID
178
- check_id: Check ID
179
- event_id: Event ID of the comment to delete
180
-
181
- Raises:
182
- RecceCloudException: If the request fails or user is not authorized
183
- """
184
- api_url = f"{self._build_events_url(org_id, project_id, session_id, check_id)}/{event_id}"
185
- response = self._request("DELETE", api_url)
186
-
187
- self._raise_for_status(
188
- response,
189
- f"Failed to delete comment {event_id} in Recce Cloud.",
190
- )