recce-nightly 1.10.0.20250701__tar.gz → 1.11.0.20250703__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.

Potentially problematic release.


This version of recce-nightly might be problematic. Click here for more details.

Files changed (184) hide show
  1. {recce_nightly-1.10.0.20250701/recce_nightly.egg-info → recce_nightly-1.11.0.20250703}/PKG-INFO +2 -2
  2. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/README.md +1 -1
  3. recce_nightly-1.11.0.20250703/recce/VERSION +1 -0
  4. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/adapter/dbt_adapter/__init__.py +68 -16
  5. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/cli.py +6 -3
  6. recce_nightly-1.11.0.20250703/recce/data/404.html +22 -0
  7. recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/12f8fac4-bfd9db49d424e3b6.js +1 -0
  8. recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/1f4e3603-31f082bb8b20c62b.js +1 -0
  9. recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/2689e558-7cc40697c77a806d.js +1 -0
  10. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/41-f30276c289169376.js → recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/269-3c07f822b90d53fc.js +2 -2
  11. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/29e3cc0d-60045b2e47aa3916.js → recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/29469774-efff969bcb61f064.js +1 -1
  12. recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/3aece8b2-ac0acf1f9e6998dc.js +1 -0
  13. recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/44627ff4-a211aa92a0480a07.js +54 -0
  14. recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/447-71b689d14c4a69b2.js +30 -0
  15. recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/9185059b-4aa97f7ef9600bff.js +1 -0
  16. recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/92-e4d648479d721cbc.js +1 -0
  17. recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/930-6065e1c365a6431d.js +15 -0
  18. recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/94fe57b7-1e4a8aaff33d2190.js +1 -0
  19. recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/9e4386a5-a179d31f5749a6ca.js +1 -0
  20. recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/a2430784-33c3bbed35bad750.js +1 -0
  21. recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/a57d9bf0-9fc4dfc9fda11e60.js +1 -0
  22. recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/app/layout-333dbb00412e53d4.js +1 -0
  23. recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/app/page-61a41dd91fd73d86.js +1 -0
  24. recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/c964bf81-9daa5d4b9b198dc2.js +1 -0
  25. recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/ca9a4ea3-e63067487eceade5.js +1 -0
  26. recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/da39ef8e-007ac1e7b9a02013.js +1 -0
  27. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/webpack-7b49d5ba7e3a434d.js → recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/webpack-9b9de1d88fa82acb.js +1 -1
  28. recce_nightly-1.11.0.20250703/recce/data/_next/static/css/00498eb5ff62b1aa.css +1 -0
  29. recce_nightly-1.10.0.20250701/recce/data/_next/static/css/951e2e0eea2d4a5b.css → recce_nightly-1.11.0.20250703/recce/data/_next/static/css/53e95329e874e996.css +1 -1
  30. recce_nightly-1.11.0.20250703/recce/data/_next/static/css/8cad5bf143ce2c8e.css +1 -0
  31. recce_nightly-1.11.0.20250703/recce/data/index.html +27 -0
  32. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/index.txt +3 -3
  33. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/util/cll.py +1 -2
  34. recce_nightly-1.11.0.20250703/recce/util/perf_tracking.py +85 -0
  35. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703/recce_nightly.egg-info}/PKG-INFO +2 -2
  36. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce_nightly.egg-info/SOURCES.txt +29 -28
  37. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/adapter/dbt_adapter/test_dbt_cll.py +35 -0
  38. recce_nightly-1.10.0.20250701/recce/VERSION +0 -1
  39. recce_nightly-1.10.0.20250701/recce/data/404.html +0 -22
  40. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/1bff33f1-1ef85cf5e658a751.js +0 -1
  41. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/36e1c10d-8e7be4a6c1f6ab2d.js +0 -1
  42. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/3998a672-d8f888988d01023f.js +0 -1
  43. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/450c323b-fd94e7ffaa4a5efa.js +0 -1
  44. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/47d8844f-929aed9b1c73a905.js +0 -1
  45. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/608-3b079b544e5d5f5e.js +0 -15
  46. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/708-9ff66431dcebf1bd.js +0 -43
  47. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/7a8a3e83-edf6dc64b5d5f0a5.js +0 -1
  48. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/7f27ae6c-d5f0438edd5c2a5b.js +0 -1
  49. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/92-50d227cce7a25498.js +0 -1
  50. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/9746af58-a42b7d169cacadf0.js +0 -1
  51. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/a30376cd-de84559016d7e133.js +0 -1
  52. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/app/layout-292f035bb0d2a98e.js +0 -1
  53. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/app/page-3daeb9d2f9ffa0ef.js +0 -1
  54. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/b63b1b3f-4282bdcf459e075c.js +0 -1
  55. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/ce84277d-2e5d1d46910cf052.js +0 -1
  56. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/febdd86e-c6b525341634b860.js +0 -54
  57. recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/fee69bc6-2dbccaf9b90474e6.js +0 -1
  58. recce_nightly-1.10.0.20250701/recce/data/_next/static/css/35c6679a098e1e34.css +0 -1
  59. recce_nightly-1.10.0.20250701/recce/data/_next/static/css/a2b12b4ba4227f0a.css +0 -3
  60. recce_nightly-1.10.0.20250701/recce/data/index.html +0 -27
  61. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/LICENSE +0 -0
  62. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/pyproject.toml +0 -0
  63. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/__init__.py +0 -0
  64. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/adapter/__init__.py +0 -0
  65. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/adapter/base.py +0 -0
  66. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/adapter/dbt_adapter/dbt_version.py +0 -0
  67. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/adapter/sqlmesh_adapter.py +0 -0
  68. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/apis/__init__.py +0 -0
  69. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/apis/check_api.py +0 -0
  70. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/apis/check_func.py +0 -0
  71. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/apis/run_api.py +0 -0
  72. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/apis/run_func.py +0 -0
  73. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/artifact.py +0 -0
  74. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/config.py +0 -0
  75. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/connect_to_cloud.py +0 -0
  76. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/core.py +0 -0
  77. {recce_nightly-1.10.0.20250701/recce/data/_next/static/Cdg9E8j0gbQIwpR_40DQ5 → recce_nightly-1.11.0.20250703/recce/data/_next/static/VBa2IE8-BKHc3pn68HfbY}/_buildManifest.js +0 -0
  78. {recce_nightly-1.10.0.20250701/recce/data/_next/static/Cdg9E8j0gbQIwpR_40DQ5 → recce_nightly-1.11.0.20250703/recce/data/_next/static/VBa2IE8-BKHc3pn68HfbY}/_ssgManifest.js +0 -0
  79. /recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/217-879a84d70f7a907c.js → /recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/217-ae2009d6d5417b7f.js +0 -0
  80. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/chunks/3a92ee20-1081c360214f9602.js +0 -0
  81. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/chunks/6dc81886-adbfa45836061d79.js +0 -0
  82. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/chunks/86730205-cfb14e3f051bab35.js +0 -0
  83. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/chunks/8d700b6a.8bb140898499c512.js +0 -0
  84. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/chunks/app/_not-found/page-01ed58b7f971d311.js +0 -0
  85. /recce_nightly-1.10.0.20250701/recce/data/_next/static/chunks/bbda5537-9ec25eb1dd62348a.js → /recce_nightly-1.11.0.20250703/recce/data/_next/static/chunks/bbda5537-358fae0725e8c27c.js +0 -0
  86. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/chunks/c132bf7d-08cb668a789d6afd.js +0 -0
  87. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/chunks/framework-ded83d71b51ce901.js +0 -0
  88. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/chunks/main-app-39061b0166c47f55.js +0 -0
  89. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/chunks/main-b5b3ae20a1405261.js +0 -0
  90. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/chunks/pages/_app-437c455677d62394.js +0 -0
  91. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/chunks/pages/_error-e7650df18ca04bde.js +0 -0
  92. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/chunks/polyfills-42372ed130431b0a.js +0 -0
  93. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/css/17a96168e3a9db13.css +0 -0
  94. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/media/montserrat-cyrillic-800-normal.22628180.woff2 +0 -0
  95. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/media/montserrat-cyrillic-800-normal.bd5c9f50.woff +0 -0
  96. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.94a63aea.woff2 +0 -0
  97. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.e6e0d8d0.woff +0 -0
  98. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/media/montserrat-latin-800-normal.6f8fa298.woff2 +0 -0
  99. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/media/montserrat-latin-800-normal.fc315020.woff +0 -0
  100. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/media/montserrat-latin-ext-800-normal.013b84f9.woff2 +0 -0
  101. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/media/montserrat-latin-ext-800-normal.2e5381b2.woff +0 -0
  102. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/media/montserrat-vietnamese-800-normal.20c545e6.woff +0 -0
  103. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/media/montserrat-vietnamese-800-normal.c0035377.woff2 +0 -0
  104. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/_next/static/media/reload-image.79aabb7d.svg +0 -0
  105. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/auth_callback.html +0 -0
  106. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/favicon.ico +0 -0
  107. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/imgs/feedback/thumbs-down.png +0 -0
  108. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/imgs/feedback/thumbs-up.png +0 -0
  109. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/imgs/reload-image.svg +0 -0
  110. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/data/logo/recce-logo-white.png +0 -0
  111. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/diff.py +0 -0
  112. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/event/CONFIG +0 -0
  113. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/event/SENTRY_DNS +0 -0
  114. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/event/__init__.py +0 -0
  115. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/event/collector.py +0 -0
  116. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/event/track.py +0 -0
  117. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/exceptions.py +0 -0
  118. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/git.py +0 -0
  119. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/github.py +0 -0
  120. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/models/__init__.py +0 -0
  121. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/models/check.py +0 -0
  122. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/models/run.py +0 -0
  123. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/models/types.py +0 -0
  124. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/pull_request.py +0 -0
  125. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/run.py +0 -0
  126. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/server.py +0 -0
  127. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/state.py +0 -0
  128. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/summary.py +0 -0
  129. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/tasks/__init__.py +0 -0
  130. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/tasks/core.py +0 -0
  131. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/tasks/dataframe.py +0 -0
  132. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/tasks/histogram.py +0 -0
  133. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/tasks/lineage.py +0 -0
  134. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/tasks/profile.py +0 -0
  135. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/tasks/query.py +0 -0
  136. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/tasks/rowcount.py +0 -0
  137. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/tasks/schema.py +0 -0
  138. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/tasks/top_k.py +0 -0
  139. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/tasks/valuediff.py +0 -0
  140. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/util/__init__.py +0 -0
  141. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/util/api_token.py +0 -0
  142. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/util/breaking.py +0 -0
  143. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/util/cache.py +0 -0
  144. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/util/io.py +0 -0
  145. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/util/lineage.py +0 -0
  146. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/util/logger.py +0 -0
  147. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/util/onboarding_state.py +0 -0
  148. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/util/pydantic_model.py +0 -0
  149. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/util/recce_cloud.py +0 -0
  150. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/util/singleton.py +0 -0
  151. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce/yaml/__init__.py +0 -0
  152. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce_nightly.egg-info/dependency_links.txt +0 -0
  153. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce_nightly.egg-info/entry_points.txt +0 -0
  154. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce_nightly.egg-info/requires.txt +0 -0
  155. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/recce_nightly.egg-info/top_level.txt +0 -0
  156. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/setup.cfg +0 -0
  157. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/setup.py +0 -0
  158. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/__init__.py +0 -0
  159. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/adapter/__init__.py +0 -0
  160. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/adapter/dbt_adapter/__init__.py +0 -0
  161. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/adapter/dbt_adapter/conftest.py +0 -0
  162. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/adapter/dbt_adapter/dbt_test_helper.py +0 -0
  163. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/adapter/dbt_adapter/test_dbt_adapter.py +0 -0
  164. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/adapter/dbt_adapter/test_selector.py +0 -0
  165. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/tasks/__init__.py +0 -0
  166. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/tasks/conftest.py +0 -0
  167. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/tasks/test_histogram.py +0 -0
  168. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/tasks/test_lineage.py +0 -0
  169. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/tasks/test_preset_checks.py +0 -0
  170. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/tasks/test_profile.py +0 -0
  171. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/tasks/test_query.py +0 -0
  172. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/tasks/test_row_count.py +0 -0
  173. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/tasks/test_schema.py +0 -0
  174. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/tasks/test_top_k.py +0 -0
  175. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/tasks/test_valuediff.py +0 -0
  176. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/test_cli.py +0 -0
  177. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/test_config.py +0 -0
  178. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/test_connect_to_cloud.py +0 -0
  179. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/test_core.py +0 -0
  180. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/test_dbt.py +0 -0
  181. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/test_pull_request.py +0 -0
  182. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/test_server.py +0 -0
  183. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/test_state.py +0 -0
  184. {recce_nightly-1.10.0.20250701 → recce_nightly-1.11.0.20250703}/tests/test_summary.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: recce-nightly
3
- Version: 1.10.0.20250701
3
+ Version: 1.11.0.20250703
4
4
  Summary: Environment diff tool for dbt
5
5
  Home-page: https://github.com/InfuseAI/recce
6
6
  Author: InfuseAI Dev Team
@@ -167,7 +167,7 @@ a [GitHub Issue](https://github.com/DataRecce/recce/issues).
167
167
 
168
168
  You can follow along with news about Recce and blogs from our team in the following places:
169
169
 
170
- - [DataRecce.io](https://DataRecce.io)
170
+ - [RecceHQ.com](https://reccehq.com/)
171
171
  - [LinkedIn](https://www.linkedin.com/company/datarecce)
172
172
  - [Medium blog](https://medium.com/inthepipeline)
173
173
  - [@datarecce](https://x.com/DataRecce) on Twitter/X
@@ -100,7 +100,7 @@ a [GitHub Issue](https://github.com/DataRecce/recce/issues).
100
100
 
101
101
  You can follow along with news about Recce and blogs from our team in the following places:
102
102
 
103
- - [DataRecce.io](https://DataRecce.io)
103
+ - [RecceHQ.com](https://reccehq.com/)
104
104
  - [LinkedIn](https://www.linkedin.com/company/datarecce)
105
105
  - [Medium blog](https://medium.com/inthepipeline)
106
106
  - [@datarecce](https://x.com/DataRecce) on Twitter/X
@@ -0,0 +1 @@
1
+ 1.11.0.20250703
@@ -31,9 +31,10 @@ from recce.util.lineage import (
31
31
  find_downstream,
32
32
  find_upstream,
33
33
  )
34
+ from recce.util.perf_tracking import LineagePerfTracker
34
35
 
35
36
  from ...tasks.profile import ProfileTask
36
- from ...util.breaking import parse_change_category
37
+ from ...util.breaking import BreakingPerformanceTracking, parse_change_category
37
38
 
38
39
  try:
39
40
  import agate
@@ -658,8 +659,8 @@ class DbtAdapter(BaseAdapter):
658
659
  @lru_cache(maxsize=2)
659
660
  def get_lineage_cached(self, base: Optional[bool] = False, cache_key=0):
660
661
  if base is False:
661
- cll_tracker = CLLPerformanceTracking()
662
- cll_tracker.start_lineage()
662
+ perf_tracker = LineagePerfTracker()
663
+ perf_tracker.start_lineage()
663
664
 
664
665
  manifest = self.curr_manifest if base is False else self.base_manifest
665
666
  catalog = self.curr_catalog if base is False else self.base_catalog
@@ -777,10 +778,10 @@ class DbtAdapter(BaseAdapter):
777
778
  parent_map = self.build_parent_map(nodes, base)
778
779
 
779
780
  if base is False:
780
- cll_tracker.end_lineage()
781
- cll_tracker.set_total_nodes(len(nodes))
782
- log_performance("model lineage", cll_tracker.to_dict())
783
- cll_tracker.reset()
781
+ perf_tracker.end_lineage()
782
+ perf_tracker.set_total_nodes(len(nodes))
783
+ log_performance("model lineage", perf_tracker.to_dict())
784
+ perf_tracker.reset()
784
785
 
785
786
  return dict(
786
787
  parent_map=parent_map,
@@ -814,17 +815,22 @@ class DbtAdapter(BaseAdapter):
814
815
 
815
816
  @lru_cache(maxsize=128)
816
817
  def get_change_analysis_cached(self, node_id: str):
818
+ breaking_perf_tracker = BreakingPerformanceTracking()
817
819
  lineage_diff = self.get_lineage_diff()
818
820
  diff = lineage_diff.diff
819
821
 
820
822
  if node_id not in diff or diff[node_id].change_status != "modified":
821
823
  return diff.get(node_id)
822
824
 
825
+ breaking_perf_tracker.increment_modified_nodes()
826
+ breaking_perf_tracker.start_lineage_diff()
827
+
823
828
  base = lineage_diff.base
824
829
  current = lineage_diff.current
825
830
 
826
831
  base_manifest = as_manifest(self.get_manifest(True))
827
832
  curr_manifest = as_manifest(self.get_manifest(False))
833
+ breaking_perf_tracker.record_checkpoint("manifest")
828
834
 
829
835
  def ref_func(*args):
830
836
  if len(args) == 1:
@@ -895,6 +901,7 @@ class DbtAdapter(BaseAdapter):
895
901
  old_schema=base_schema,
896
902
  new_schema=curr_schema,
897
903
  dialect=dialect,
904
+ perf_tracking=breaking_perf_tracker,
898
905
  )
899
906
 
900
907
  # Make sure that the case of the column names are the same
@@ -917,6 +924,9 @@ class DbtAdapter(BaseAdapter):
917
924
  # TODO: telemetry
918
925
  pass
919
926
 
927
+ breaking_perf_tracker.end_lineage_diff()
928
+ log_performance("change analysis per node", breaking_perf_tracker.to_dict())
929
+ breaking_perf_tracker.reset()
920
930
  node_diff = diff.get(node_id)
921
931
  node_diff.change = change
922
932
  return node_diff
@@ -931,7 +941,15 @@ class DbtAdapter(BaseAdapter):
931
941
  no_downstream: Optional[bool] = False,
932
942
  no_filter: Optional[bool] = False,
933
943
  ) -> CllData:
934
- cll_tracker = CLLPerformanceTracking()
944
+ cll_tracker = LineagePerfTracker()
945
+ cll_tracker.set_params(
946
+ has_node=node_id is not None,
947
+ has_column=column is not None,
948
+ change_analysis=change_analysis,
949
+ no_cll=no_cll,
950
+ no_upstream=no_upstream,
951
+ no_downstream=no_downstream,
952
+ )
935
953
  cll_tracker.start_column_lineage()
936
954
 
937
955
  manifest = self.curr_manifest
@@ -944,6 +962,8 @@ class DbtAdapter(BaseAdapter):
944
962
  lineage_diff = self.get_lineage_diff()
945
963
  cll_node_ids = set(lineage_diff.diff.keys())
946
964
 
965
+ cll_tracker.set_init_nodes(len(cll_node_ids))
966
+
947
967
  nodes = {}
948
968
  columns = {}
949
969
  parent_map = {}
@@ -966,21 +986,30 @@ class DbtAdapter(BaseAdapter):
966
986
  if cll_node_id not in allowed_related_nodes:
967
987
  continue
968
988
  cll_data_one = deepcopy(self.get_cll_cached(cll_node_id, base=False))
989
+ cll_tracker.increment_cll_nodes()
969
990
  if cll_data_one is None:
970
991
  continue
971
992
 
972
993
  nodes[cll_node_id] = cll_data_one.nodes.get(cll_node_id)
973
- node_diff = self.get_change_analysis_cached(cll_node_id) if change_analysis else None
994
+ node_diff = None
995
+ if change_analysis:
996
+ node_diff = self.get_change_analysis_cached(cll_node_id)
997
+ cll_tracker.increment_change_analysis_nodes()
974
998
  if node_diff is not None:
975
999
  nodes[cll_node_id].change_status = node_diff.change_status
976
1000
  if node_diff.change is not None:
977
1001
  nodes[cll_node_id].change_category = node_diff.change.category
978
1002
  for c_id, c in cll_data_one.columns.items():
979
1003
  columns[c_id] = c
980
- if node_diff is not None and node_diff.change is not None and node_diff.change.columns is not None:
981
- column_diff = node_diff.change.columns.get(c.name)
982
- if column_diff:
983
- c.change_status = column_diff
1004
+ if node_diff is not None:
1005
+ if node_diff.change_status == "added":
1006
+ c.change_status = "added"
1007
+ elif node_diff.change_status == "removed":
1008
+ c.change_status = "removed"
1009
+ elif node_diff.change is not None and node_diff.change.columns is not None:
1010
+ column_diff = node_diff.change.columns.get(c.name)
1011
+ if column_diff:
1012
+ c.change_status = column_diff
984
1013
 
985
1014
  for p_id, parents in cll_data_one.parent_map.items():
986
1015
  parent_map[p_id] = parents
@@ -1024,7 +1053,10 @@ class DbtAdapter(BaseAdapter):
1024
1053
  continue
1025
1054
  nodes[cll_node_id] = cll_node
1026
1055
 
1027
- node_diff = self.get_change_analysis_cached(cll_node_id) if change_analysis else None
1056
+ node_diff = None
1057
+ if change_analysis:
1058
+ node_diff = self.get_change_analysis_cached(cll_node_id)
1059
+ cll_tracker.increment_change_analysis_nodes()
1028
1060
  if node_diff is not None:
1029
1061
  cll_node.change_status = node_diff.change_status
1030
1062
  if node_diff.change is not None:
@@ -1050,7 +1082,19 @@ class DbtAdapter(BaseAdapter):
1050
1082
  if node_id is None and column is None:
1051
1083
  if change_analysis:
1052
1084
  # If change analysis is requested, we need to find the nodes that have changes
1053
- for nid in self.get_lineage_diff().diff.keys():
1085
+ lineage_diff = self.get_lineage_diff()
1086
+ for nid, nd in lineage_diff.diff.items():
1087
+ if nd.change_status == "added":
1088
+ extra_node_ids.add(nid)
1089
+ n = lineage_diff.current["nodes"].get(nid)
1090
+ n_columns = n.get("columns", {})
1091
+ for c in n_columns:
1092
+ anchor_node_ids.add(build_column_key(nid, c))
1093
+ continue
1094
+ if nd.change_status == "removed":
1095
+ extra_node_ids.add(nid)
1096
+ continue
1097
+
1054
1098
  node_diff = self.get_change_analysis_cached(nid)
1055
1099
  if node_diff is not None and node_diff.change is not None:
1056
1100
  extra_node_ids.add(nid)
@@ -1094,6 +1138,7 @@ class DbtAdapter(BaseAdapter):
1094
1138
  else:
1095
1139
  anchor_node_ids.add(f"{node_id}_{column}")
1096
1140
 
1141
+ cll_tracker.set_anchor_nodes(len(anchor_node_ids))
1097
1142
  result_node_ids = set(anchor_node_ids)
1098
1143
  if not no_upstream:
1099
1144
  result_node_ids = result_node_ids.union(find_upstream(anchor_node_ids, parent_map))
@@ -1112,7 +1157,7 @@ class DbtAdapter(BaseAdapter):
1112
1157
  parent_map, child_map = filter_dependency_maps(parent_map, child_map, result_node_ids)
1113
1158
 
1114
1159
  cll_tracker.end_column_lineage()
1115
- cll_tracker.set_total_nodes(len(nodes))
1160
+ cll_tracker.set_total_nodes(len(nodes) + len(columns))
1116
1161
  log_performance("column level lineage", cll_tracker.to_dict())
1117
1162
  cll_tracker.reset()
1118
1163
 
@@ -1131,6 +1176,9 @@ class DbtAdapter(BaseAdapter):
1131
1176
  if node is None:
1132
1177
  return None
1133
1178
 
1179
+ cll_tracker.set_total_nodes(1)
1180
+ cll_tracker.start_column_lineage()
1181
+
1134
1182
  def _apply_all_columns(node: CllNode, transformation_type):
1135
1183
  cll_data = CllData()
1136
1184
  cll_data.nodes[node.id] = node
@@ -1255,6 +1303,10 @@ class DbtAdapter(BaseAdapter):
1255
1303
  depends_on.add(parent_key)
1256
1304
  column.transformation_type = c2c_map[name].transformation_type
1257
1305
  cll_data.parent_map[column_id] = set(depends_on)
1306
+
1307
+ cll_tracker.end_column_lineage()
1308
+ log_performance("column level lineage per node", cll_tracker.to_dict())
1309
+ cll_tracker.reset()
1258
1310
  return cll_data
1259
1311
 
1260
1312
  def get_cll_node(self, node_id: str, base: Optional[bool] = False) -> Tuple[Optional[CllNode], list[str]]:
@@ -228,8 +228,9 @@ def debug(**kwargs):
228
228
 
229
229
  return [True, manifest_is_ready, catalog_is_ready]
230
230
 
231
- target_path = Path(kwargs.get("target_path", "target"))
232
- target_base_path = Path(kwargs.get("target_base_path", "target-base"))
231
+ project_dir_path = Path(kwargs.get("project_dir") or "./")
232
+ target_path = project_dir_path.joinpath(Path(kwargs.get("target_path", "target")))
233
+ target_base_path = project_dir_path.joinpath(Path(kwargs.get("target_base_path", "target-base")))
233
234
 
234
235
  curr_is_ready = check_artifacts("Development", target_path)
235
236
  base_is_ready = check_artifacts("Base", target_base_path)
@@ -411,7 +412,9 @@ def server(host, port, lifetime, state_file=None, **kwargs):
411
412
  }
412
413
 
413
414
  # Check Single Environment Onboarding Mode if the review mode is False
414
- if not Path(kwargs.get("target_base_path", "target-base")).is_dir() and not is_review:
415
+ project_dir_path = Path(kwargs.get("project_dir") or "./")
416
+ target_base_path = project_dir_path.joinpath(Path(kwargs.get("target_base_path", "target-base")))
417
+ if not target_base_path.is_dir() and not is_review:
415
418
  # Mark as single env onboarding mode if user provides the target-path only
416
419
  flag["single_env_onboarding"] = True
417
420
  flag["show_relaunch_hint"] = True
@@ -0,0 +1,22 @@
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/00498eb5ff62b1aa.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/53e95329e874e996.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-9b9de1d88fa82acb.js"/><script src="/_next/static/chunks/86730205-cfb14e3f051bab35.js" async=""></script><script src="/_next/static/chunks/217-ae2009d6d5417b7f.js" async=""></script><script src="/_next/static/chunks/main-app-39061b0166c47f55.js" async=""></script><script src="/_next/static/chunks/c964bf81-9daa5d4b9b198dc2.js" async=""></script><script src="/_next/static/chunks/9185059b-4aa97f7ef9600bff.js" async=""></script><script src="/_next/static/chunks/da39ef8e-007ac1e7b9a02013.js" async=""></script><script src="/_next/static/chunks/6dc81886-adbfa45836061d79.js" async=""></script><script src="/_next/static/chunks/3a92ee20-1081c360214f9602.js" async=""></script><script src="/_next/static/chunks/1f4e3603-31f082bb8b20c62b.js" async=""></script><script src="/_next/static/chunks/12f8fac4-bfd9db49d424e3b6.js" async=""></script><script src="/_next/static/chunks/bbda5537-358fae0725e8c27c.js" async=""></script><script src="/_next/static/chunks/269-3c07f822b90d53fc.js" async=""></script><script src="/_next/static/chunks/930-6065e1c365a6431d.js" async=""></script><script src="/_next/static/chunks/92-e4d648479d721cbc.js" async=""></script><script src="/_next/static/chunks/app/layout-333dbb00412e53d4.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>recce</title><meta name="description" content="Recce: Data validation toolkit for comprehensive PR review"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><style data-emotion="css-global dh58eu">:host,:root,[data-theme]{--chakra-ring-inset:var(--chakra-empty,/*!*/ /*!*/);--chakra-ring-offset-width:0px;--chakra-ring-offset-color:#fff;--chakra-ring-color:rgba(66, 153, 225, 0.6);--chakra-ring-offset-shadow:0 0 #0000;--chakra-ring-shadow:0 0 #0000;--chakra-space-x-reverse:0;--chakra-space-y-reverse:0;--chakra-colors-transparent:transparent;--chakra-colors-current:currentColor;--chakra-colors-black:#000000;--chakra-colors-white:#FFFFFF;--chakra-colors-whiteAlpha-50:rgba(255, 255, 255, 0.04);--chakra-colors-whiteAlpha-100:rgba(255, 255, 255, 0.06);--chakra-colors-whiteAlpha-200:rgba(255, 255, 255, 0.08);--chakra-colors-whiteAlpha-300:rgba(255, 255, 255, 0.16);--chakra-colors-whiteAlpha-400:rgba(255, 255, 255, 0.24);--chakra-colors-whiteAlpha-500:rgba(255, 255, 255, 0.36);--chakra-colors-whiteAlpha-600:rgba(255, 255, 255, 0.48);--chakra-colors-whiteAlpha-700:rgba(255, 255, 255, 0.64);--chakra-colors-whiteAlpha-800:rgba(255, 255, 255, 0.80);--chakra-colors-whiteAlpha-900:rgba(255, 255, 255, 0.92);--chakra-colors-blackAlpha-50:rgba(0, 0, 0, 0.04);--chakra-colors-blackAlpha-100:rgba(0, 0, 0, 0.06);--chakra-colors-blackAlpha-200:rgba(0, 0, 0, 0.08);--chakra-colors-blackAlpha-300:rgba(0, 0, 0, 0.16);--chakra-colors-blackAlpha-400:rgba(0, 0, 0, 0.24);--chakra-colors-blackAlpha-500:rgba(0, 0, 0, 0.36);--chakra-colors-blackAlpha-600:rgba(0, 0, 0, 0.48);--chakra-colors-blackAlpha-700:rgba(0, 0, 0, 0.64);--chakra-colors-blackAlpha-800:rgba(0, 0, 0, 0.80);--chakra-colors-blackAlpha-900:rgba(0, 0, 0, 0.92);--chakra-colors-gray-50:#F7FAFC;--chakra-colors-gray-100:#EDF2F7;--chakra-colors-gray-200:#E2E8F0;--chakra-colors-gray-300:#CBD5E0;--chakra-colors-gray-400:#A0AEC0;--chakra-colors-gray-500:#718096;--chakra-colors-gray-600:#4A5568;--chakra-colors-gray-700:#2D3748;--chakra-colors-gray-800:#1A202C;--chakra-colors-gray-900:#171923;--chakra-colors-red-50:#FFF5F5;--chakra-colors-red-100:#FED7D7;--chakra-colors-red-200:#FEB2B2;--chakra-colors-red-300:#FC8181;--chakra-colors-red-400:#F56565;--chakra-colors-red-500:#E53E3E;--chakra-colors-red-600:#C53030;--chakra-colors-red-700:#9B2C2C;--chakra-colors-red-800:#822727;--chakra-colors-red-900:#63171B;--chakra-colors-orange-50:#FFFAF0;--chakra-colors-orange-100:#FEEBC8;--chakra-colors-orange-200:#FBD38D;--chakra-colors-orange-300:#F6AD55;--chakra-colors-orange-400:#ED8936;--chakra-colors-orange-500:#DD6B20;--chakra-colors-orange-600:#C05621;--chakra-colors-orange-700:#9C4221;--chakra-colors-orange-800:#7B341E;--chakra-colors-orange-900:#652B19;--chakra-colors-yellow-50:#FFFFF0;--chakra-colors-yellow-100:#FEFCBF;--chakra-colors-yellow-200:#FAF089;--chakra-colors-yellow-300:#F6E05E;--chakra-colors-yellow-400:#ECC94B;--chakra-colors-yellow-500:#D69E2E;--chakra-colors-yellow-600:#B7791F;--chakra-colors-yellow-700:#975A16;--chakra-colors-yellow-800:#744210;--chakra-colors-yellow-900:#5F370E;--chakra-colors-green-50:#F0FFF4;--chakra-colors-green-100:#C6F6D5;--chakra-colors-green-200:#9AE6B4;--chakra-colors-green-300:#68D391;--chakra-colors-green-400:#48BB78;--chakra-colors-green-500:#38A169;--chakra-colors-green-600:#2F855A;--chakra-colors-green-700:#276749;--chakra-colors-green-800:#22543D;--chakra-colors-green-900:#1C4532;--chakra-colors-teal-50:#E6FFFA;--chakra-colors-teal-100:#B2F5EA;--chakra-colors-teal-200:#81E6D9;--chakra-colors-teal-300:#4FD1C5;--chakra-colors-teal-400:#38B2AC;--chakra-colors-teal-500:#319795;--chakra-colors-teal-600:#2C7A7B;--chakra-colors-teal-700:#285E61;--chakra-colors-teal-800:#234E52;--chakra-colors-teal-900:#1D4044;--chakra-colors-blue-50:#ebf8ff;--chakra-colors-blue-100:#bee3f8;--chakra-colors-blue-200:#90cdf4;--chakra-colors-blue-300:#63b3ed;--chakra-colors-blue-400:#4299e1;--chakra-colors-blue-500:#3182ce;--chakra-colors-blue-600:#2b6cb0;--chakra-colors-blue-700:#2c5282;--chakra-colors-blue-800:#2a4365;--chakra-colors-blue-900:#1A365D;--chakra-colors-cyan-50:#EDFDFD;--chakra-colors-cyan-100:#C4F1F9;--chakra-colors-cyan-200:#9DECF9;--chakra-colors-cyan-300:#76E4F7;--chakra-colors-cyan-400:#0BC5EA;--chakra-colors-cyan-500:#00B5D8;--chakra-colors-cyan-600:#00A3C4;--chakra-colors-cyan-700:#0987A0;--chakra-colors-cyan-800:#086F83;--chakra-colors-cyan-900:#065666;--chakra-colors-purple-50:#FAF5FF;--chakra-colors-purple-100:#E9D8FD;--chakra-colors-purple-200:#D6BCFA;--chakra-colors-purple-300:#B794F4;--chakra-colors-purple-400:#9F7AEA;--chakra-colors-purple-500:#805AD5;--chakra-colors-purple-600:#6B46C1;--chakra-colors-purple-700:#553C9A;--chakra-colors-purple-800:#44337A;--chakra-colors-purple-900:#322659;--chakra-colors-pink-50:#FFF5F7;--chakra-colors-pink-100:#FED7E2;--chakra-colors-pink-200:#FBB6CE;--chakra-colors-pink-300:#F687B3;--chakra-colors-pink-400:#ED64A6;--chakra-colors-pink-500:#D53F8C;--chakra-colors-pink-600:#B83280;--chakra-colors-pink-700:#97266D;--chakra-colors-pink-800:#702459;--chakra-colors-pink-900:#521B41;--chakra-colors-brand-100:#fd683e;--chakra-colors-brand-200:#fd683e;--chakra-colors-brand-300:#fd683e;--chakra-colors-brand-400:#fd683e;--chakra-colors-brand-500:#fd683e;--chakra-colors-brand-600:#fd683e;--chakra-colors-brand-700:#fd683e;--chakra-colors-brand-800:#fd683e;--chakra-colors-brand-900:#fd683e;--chakra-borders-none:0;--chakra-borders-1px:1px solid;--chakra-borders-2px:2px solid;--chakra-borders-4px:4px solid;--chakra-borders-8px:8px solid;--chakra-fonts-heading:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--chakra-fonts-body:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--chakra-fonts-mono:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--chakra-fontSizes-3xs:0.45rem;--chakra-fontSizes-2xs:0.625rem;--chakra-fontSizes-xs:0.75rem;--chakra-fontSizes-sm:0.875rem;--chakra-fontSizes-md:1rem;--chakra-fontSizes-lg:1.125rem;--chakra-fontSizes-xl:1.25rem;--chakra-fontSizes-2xl:1.5rem;--chakra-fontSizes-3xl:1.875rem;--chakra-fontSizes-4xl:2.25rem;--chakra-fontSizes-5xl:3rem;--chakra-fontSizes-6xl:3.75rem;--chakra-fontSizes-7xl:4.5rem;--chakra-fontSizes-8xl:6rem;--chakra-fontSizes-9xl:8rem;--chakra-fontWeights-hairline:100;--chakra-fontWeights-thin:200;--chakra-fontWeights-light:300;--chakra-fontWeights-normal:400;--chakra-fontWeights-medium:500;--chakra-fontWeights-semibold:600;--chakra-fontWeights-bold:700;--chakra-fontWeights-extrabold:800;--chakra-fontWeights-black:900;--chakra-letterSpacings-tighter:-0.05em;--chakra-letterSpacings-tight:-0.025em;--chakra-letterSpacings-normal:0;--chakra-letterSpacings-wide:0.025em;--chakra-letterSpacings-wider:0.05em;--chakra-letterSpacings-widest:0.1em;--chakra-lineHeights-3:.75rem;--chakra-lineHeights-4:1rem;--chakra-lineHeights-5:1.25rem;--chakra-lineHeights-6:1.5rem;--chakra-lineHeights-7:1.75rem;--chakra-lineHeights-8:2rem;--chakra-lineHeights-9:2.25rem;--chakra-lineHeights-10:2.5rem;--chakra-lineHeights-normal:normal;--chakra-lineHeights-none:1;--chakra-lineHeights-shorter:1.25;--chakra-lineHeights-short:1.375;--chakra-lineHeights-base:1.5;--chakra-lineHeights-tall:1.625;--chakra-lineHeights-taller:2;--chakra-radii-none:0;--chakra-radii-sm:0.125rem;--chakra-radii-base:0.25rem;--chakra-radii-md:0.375rem;--chakra-radii-lg:0.5rem;--chakra-radii-xl:0.75rem;--chakra-radii-2xl:1rem;--chakra-radii-3xl:1.5rem;--chakra-radii-full:9999px;--chakra-space-1:0.25rem;--chakra-space-2:0.5rem;--chakra-space-3:0.75rem;--chakra-space-4:1rem;--chakra-space-5:1.25rem;--chakra-space-6:1.5rem;--chakra-space-7:1.75rem;--chakra-space-8:2rem;--chakra-space-9:2.25rem;--chakra-space-10:2.5rem;--chakra-space-12:3rem;--chakra-space-14:3.5rem;--chakra-space-16:4rem;--chakra-space-20:5rem;--chakra-space-24:6rem;--chakra-space-28:7rem;--chakra-space-32:8rem;--chakra-space-36:9rem;--chakra-space-40:10rem;--chakra-space-44:11rem;--chakra-space-48:12rem;--chakra-space-52:13rem;--chakra-space-56:14rem;--chakra-space-60:15rem;--chakra-space-64:16rem;--chakra-space-72:18rem;--chakra-space-80:20rem;--chakra-space-96:24rem;--chakra-space-px:1px;--chakra-space-0-5:0.125rem;--chakra-space-1-5:0.375rem;--chakra-space-2-5:0.625rem;--chakra-space-3-5:0.875rem;--chakra-shadows-xs:0 0 0 1px rgba(0, 0, 0, 0.05);--chakra-shadows-sm:0 1px 2px 0 rgba(0, 0, 0, 0.05);--chakra-shadows-base:0 1px 3px 0 rgba(0, 0, 0, 0.1),0 1px 2px 0 rgba(0, 0, 0, 0.06);--chakra-shadows-md:0 4px 6px -1px rgba(0, 0, 0, 0.1),0 2px 4px -1px rgba(0, 0, 0, 0.06);--chakra-shadows-lg:0 10px 15px -3px rgba(0, 0, 0, 0.1),0 4px 6px -2px rgba(0, 0, 0, 0.05);--chakra-shadows-xl:0 20px 25px -5px rgba(0, 0, 0, 0.1),0 10px 10px -5px rgba(0, 0, 0, 0.04);--chakra-shadows-2xl:0 25px 50px -12px rgba(0, 0, 0, 0.25);--chakra-shadows-outline:0 0 0 3px rgba(66, 153, 225, 0.6);--chakra-shadows-inner:inset 0 2px 4px 0 rgba(0,0,0,0.06);--chakra-shadows-none:none;--chakra-shadows-dark-lg:rgba(0, 0, 0, 0.1) 0px 0px 0px 1px,rgba(0, 0, 0, 0.2) 0px 5px 10px,rgba(0, 0, 0, 0.4) 0px 15px 40px;--chakra-sizes-1:0.25rem;--chakra-sizes-2:0.5rem;--chakra-sizes-3:0.75rem;--chakra-sizes-4:1rem;--chakra-sizes-5:1.25rem;--chakra-sizes-6:1.5rem;--chakra-sizes-7:1.75rem;--chakra-sizes-8:2rem;--chakra-sizes-9:2.25rem;--chakra-sizes-10:2.5rem;--chakra-sizes-12:3rem;--chakra-sizes-14:3.5rem;--chakra-sizes-16:4rem;--chakra-sizes-20:5rem;--chakra-sizes-24:6rem;--chakra-sizes-28:7rem;--chakra-sizes-32:8rem;--chakra-sizes-36:9rem;--chakra-sizes-40:10rem;--chakra-sizes-44:11rem;--chakra-sizes-48:12rem;--chakra-sizes-52:13rem;--chakra-sizes-56:14rem;--chakra-sizes-60:15rem;--chakra-sizes-64:16rem;--chakra-sizes-72:18rem;--chakra-sizes-80:20rem;--chakra-sizes-96:24rem;--chakra-sizes-px:1px;--chakra-sizes-0-5:0.125rem;--chakra-sizes-1-5:0.375rem;--chakra-sizes-2-5:0.625rem;--chakra-sizes-3-5:0.875rem;--chakra-sizes-max:max-content;--chakra-sizes-min:min-content;--chakra-sizes-full:100%;--chakra-sizes-3xs:14rem;--chakra-sizes-2xs:16rem;--chakra-sizes-xs:20rem;--chakra-sizes-sm:24rem;--chakra-sizes-md:28rem;--chakra-sizes-lg:32rem;--chakra-sizes-xl:36rem;--chakra-sizes-2xl:42rem;--chakra-sizes-3xl:48rem;--chakra-sizes-4xl:56rem;--chakra-sizes-5xl:64rem;--chakra-sizes-6xl:72rem;--chakra-sizes-7xl:80rem;--chakra-sizes-8xl:90rem;--chakra-sizes-prose:60ch;--chakra-sizes-container-sm:640px;--chakra-sizes-container-md:768px;--chakra-sizes-container-lg:1024px;--chakra-sizes-container-xl:1280px;--chakra-zIndices-hide:-1;--chakra-zIndices-auto:auto;--chakra-zIndices-base:0;--chakra-zIndices-docked:10;--chakra-zIndices-dropdown:1000;--chakra-zIndices-sticky:1100;--chakra-zIndices-banner:1200;--chakra-zIndices-overlay:1300;--chakra-zIndices-modal:1400;--chakra-zIndices-popover:1500;--chakra-zIndices-skipLink:1600;--chakra-zIndices-toast:1700;--chakra-zIndices-tooltip:1800;--chakra-transition-property-common:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;--chakra-transition-property-colors:background-color,border-color,color,fill,stroke;--chakra-transition-property-dimensions:width,height;--chakra-transition-property-position:left,right,top,bottom;--chakra-transition-property-background:background-color,background-image,background-position;--chakra-transition-easing-ease-in:cubic-bezier(0.4, 0, 1, 1);--chakra-transition-easing-ease-out:cubic-bezier(0, 0, 0.2, 1);--chakra-transition-easing-ease-in-out:cubic-bezier(0.4, 0, 0.2, 1);--chakra-transition-duration-ultra-fast:50ms;--chakra-transition-duration-faster:100ms;--chakra-transition-duration-fast:150ms;--chakra-transition-duration-normal:200ms;--chakra-transition-duration-slow:300ms;--chakra-transition-duration-slower:400ms;--chakra-transition-duration-ultra-slow:500ms;--chakra-blur-none:0;--chakra-blur-sm:4px;--chakra-blur-base:8px;--chakra-blur-md:12px;--chakra-blur-lg:16px;--chakra-blur-xl:24px;--chakra-blur-2xl:40px;--chakra-blur-3xl:64px;--chakra-breakpoints-base:0em;--chakra-breakpoints-sm:30em;--chakra-breakpoints-md:48em;--chakra-breakpoints-lg:62em;--chakra-breakpoints-xl:80em;--chakra-breakpoints-2xl:96em;}.chakra-ui-light :host:not([data-theme]),.chakra-ui-light :root:not([data-theme]),.chakra-ui-light [data-theme]:not([data-theme]),[data-theme=light] :host:not([data-theme]),[data-theme=light] :root:not([data-theme]),[data-theme=light] [data-theme]:not([data-theme]),:host[data-theme=light],:root[data-theme=light],[data-theme][data-theme=light]{--chakra-colors-chakra-body-text:var(--chakra-colors-gray-800);--chakra-colors-chakra-body-bg:var(--chakra-colors-white);--chakra-colors-chakra-border-color:var(--chakra-colors-gray-200);--chakra-colors-chakra-inverse-text:var(--chakra-colors-white);--chakra-colors-chakra-subtle-bg:var(--chakra-colors-gray-100);--chakra-colors-chakra-subtle-text:var(--chakra-colors-gray-600);--chakra-colors-chakra-placeholder-color:var(--chakra-colors-gray-500);}.chakra-ui-dark :host:not([data-theme]),.chakra-ui-dark :root:not([data-theme]),.chakra-ui-dark [data-theme]:not([data-theme]),[data-theme=dark] :host:not([data-theme]),[data-theme=dark] :root:not([data-theme]),[data-theme=dark] [data-theme]:not([data-theme]),:host[data-theme=dark],:root[data-theme=dark],[data-theme][data-theme=dark]{--chakra-colors-chakra-body-text:var(--chakra-colors-whiteAlpha-900);--chakra-colors-chakra-body-bg:var(--chakra-colors-gray-800);--chakra-colors-chakra-border-color:var(--chakra-colors-whiteAlpha-300);--chakra-colors-chakra-inverse-text:var(--chakra-colors-gray-800);--chakra-colors-chakra-subtle-bg:var(--chakra-colors-gray-700);--chakra-colors-chakra-subtle-text:var(--chakra-colors-gray-400);--chakra-colors-chakra-placeholder-color:var(--chakra-colors-whiteAlpha-400);}</style><style data-emotion="css-global fubdgu">html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;}body{position:relative;min-height:100%;margin:0;font-feature-settings:"kern";}:where(*, *::before, *::after){border-width:0;border-style:solid;box-sizing:border-box;word-wrap:break-word;}main{display:block;}hr{border-top-width:1px;box-sizing:content-box;height:0;overflow:visible;}:where(pre, code, kbd,samp){font-family:SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1em;}a{background-color:transparent;color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;}abbr[title]{border-bottom:none;-webkit-text-decoration:underline;text-decoration:underline;-webkit-text-decoration:underline dotted;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}:where(b, strong){font-weight:bold;}small{font-size:80%;}:where(sub,sup){font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sub{bottom:-0.25em;}sup{top:-0.5em;}img{border-style:none;}:where(button, input, optgroup, select, textarea){font-family:inherit;font-size:100%;line-height:1.15;margin:0;}:where(button, input){overflow:visible;}:where(button, select){text-transform:none;}:where(
2
+ button::-moz-focus-inner,
3
+ [type="button"]::-moz-focus-inner,
4
+ [type="reset"]::-moz-focus-inner,
5
+ [type="submit"]::-moz-focus-inner
6
+ ){border-style:none;padding:0;}fieldset{padding:0.35em 0.75em 0.625em;}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline;}textarea{overflow:auto;}:where([type="checkbox"], [type="radio"]){box-sizing:border-box;padding:0;}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none!important;}input[type="number"]{-moz-appearance:textfield;}input[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}input[type="search"]::-webkit-search-decoration{-webkit-appearance:none!important;}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block;}summary{display:-webkit-box;display:-webkit-list-item;display:-ms-list-itembox;display:list-item;}template{display:none;}[hidden]{display:none!important;}:where(
7
+ blockquote,
8
+ dl,
9
+ dd,
10
+ h1,
11
+ h2,
12
+ h3,
13
+ h4,
14
+ h5,
15
+ h6,
16
+ hr,
17
+ figure,
18
+ p,
19
+ pre
20
+ ){margin:0;}button{background:transparent;padding:0;}fieldset{margin:0;padding:0;}:where(ol, ul){margin:0;padding:0;}textarea{resize:vertical;}:where(button, [role="button"]){cursor:pointer;}button::-moz-focus-inner{border:0!important;}table{border-collapse:collapse;}:where(h1, h2, h3, h4, h5, h6){font-size:inherit;font-weight:inherit;}:where(button, input, optgroup, select, textarea){padding:0;line-height:inherit;color:inherit;}:where(img, svg, video, canvas, audio, iframe, embed, object){display:block;}:where(img, video){max-width:100%;height:auto;}[data-js-focus-visible] :focus:not([data-focus-visible-added]):not(
21
+ [data-focus-visible-disabled]
22
+ ){outline:none;box-shadow:none;}select::-ms-expand{display:none;}:root,:host{--chakra-vh:100vh;}@supports (height: -webkit-fill-available){:root,:host{--chakra-vh:-webkit-fill-available;}}@supports (height: -moz-fill-available){:root,:host{--chakra-vh:-moz-fill-available;}}@supports (height: 100dvh){:root,:host{--chakra-vh:100dvh;}}</style><style data-emotion="css-global 1cgn62j">body{font-family:var(--chakra-fonts-body);color:var(--chakra-colors-chakra-body-text);background:var(--chakra-colors-chakra-body-bg);transition-property:background-color;transition-duration:var(--chakra-transition-duration-normal);line-height:var(--chakra-lineHeights-base);}*::-webkit-input-placeholder{color:var(--chakra-colors-chakra-placeholder-color);}*::-moz-placeholder{color:var(--chakra-colors-chakra-placeholder-color);}*:-ms-input-placeholder{color:var(--chakra-colors-chakra-placeholder-color);}*::placeholder{color:var(--chakra-colors-chakra-placeholder-color);}*,*::before,::after{border-color:var(--chakra-colors-chakra-border-color);}</style><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><span></span><span id="__chakra_env" hidden=""></span><script src="/_next/static/chunks/webpack-9b9de1d88fa82acb.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/00498eb5ff62b1aa.css\",\"style\"]\n2:HL[\"/_next/static/css/53e95329e874e996.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"3:I[35639,[],\"\"]\n5:I[51454,[],\"\"]\n6:I[48464,[],\"\"]\n7:I[76413,[\"510\",\"static/chunks/c964bf81-9daa5d4b9b198dc2.js\",\"277\",\"static/chunks/9185059b-4aa97f7ef9600bff.js\",\"704\",\"static/chunks/da39ef8e-007ac1e7b9a02013.js\",\"495\",\"static/chunks/6dc81886-adbfa45836061d79.js\",\"376\",\"static/chunks/3a92ee20-1081c360214f9602.js\",\"208\",\"static/chunks/1f4e3603-31f082bb8b20c62b.js\",\"459\",\"static/chunks/12f8fac4-bfd9db49d424e3b6.js\",\"413\",\"static/chunks/bbda5537-358fae0725e8c27c.js\",\"269\",\"static/chunks/269-3c07f822b90d53fc.js\",\"930\",\"static/chunks/930-6065e1c365a6431d.js\",\"92\",\"static/chunks/92-e4d648479d721cbc.js\",\"185\",\"static/chunks/app/layout-333dbb00412e53d4.js\"],\"default\"]\nd:I[26480,[],\"\"]\n8:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n9:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\na:{\"display\":\"inline-block\"}\nb:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\ne:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L3\",null,{\"buildId\":\"VBa2IE8-BKHc3pn68HfbY\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L4\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/00498eb5ff62b1aa.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/53e95329e874e996.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"suppressHydrationWarning\":true,\"children\":[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$8\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$9\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$a\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$b\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$Lc\"],\"globalErrorComponent\":\"$d\",\"missingSlots\":\"$We\"}]\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"recce\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Recce: Data validation toolkit for comprehensive PR review\"}]]\n4:null\n"])</script></body></html>