qalita 2.6.2__py3-none-any.whl → 2.8.0__py3-none-any.whl

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 (286) hide show
  1. qalita/__main__.py +29 -19
  2. qalita/_frontend/.next/BUILD_ID +1 -0
  3. qalita/_frontend/.next/app-path-routes-manifest.json +17 -0
  4. qalita/_frontend/.next/build-manifest.json +20 -0
  5. qalita/_frontend/.next/package.json +1 -0
  6. qalita/_frontend/.next/prerender-manifest.json +109 -0
  7. qalita/_frontend/.next/required-server-files.json +164 -0
  8. qalita/_frontend/.next/routes-manifest.json +143 -0
  9. qalita/_frontend/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
  10. qalita/_frontend/.next/server/app/_global-error/page/build-manifest.json +17 -0
  11. qalita/_frontend/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
  12. qalita/_frontend/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
  13. qalita/_frontend/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
  14. qalita/_frontend/.next/server/app/_global-error/page.js +10 -0
  15. qalita/_frontend/.next/server/app/_global-error/page.js.map +5 -0
  16. qalita/_frontend/.next/server/app/_global-error/page.js.nft.json +1 -0
  17. qalita/_frontend/.next/server/app/_global-error/page_client-reference-manifest.js +2 -0
  18. qalita/_frontend/.next/server/app/_global-error.html +2 -0
  19. qalita/_frontend/.next/server/app/_global-error.meta +15 -0
  20. qalita/_frontend/.next/server/app/_global-error.rsc +12 -0
  21. qalita/_frontend/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
  22. qalita/_frontend/.next/server/app/_global-error.segments/_full.segment.rsc +12 -0
  23. qalita/_frontend/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
  24. qalita/_frontend/.next/server/app/_global-error.segments/_index.segment.rsc +4 -0
  25. qalita/_frontend/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  26. qalita/_frontend/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
  27. qalita/_frontend/.next/server/app/_not-found/page/build-manifest.json +17 -0
  28. qalita/_frontend/.next/server/app/_not-found/page/next-font-manifest.json +6 -0
  29. qalita/_frontend/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
  30. qalita/_frontend/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
  31. qalita/_frontend/.next/server/app/_not-found/page.js +13 -0
  32. qalita/_frontend/.next/server/app/_not-found/page.js.map +5 -0
  33. qalita/_frontend/.next/server/app/_not-found/page.js.nft.json +1 -0
  34. qalita/_frontend/.next/server/app/_not-found/page_client-reference-manifest.js +2 -0
  35. qalita/_frontend/.next/server/app/_not-found.html +1 -0
  36. qalita/_frontend/.next/server/app/_not-found.meta +16 -0
  37. qalita/_frontend/.next/server/app/_not-found.rsc +15 -0
  38. qalita/_frontend/.next/server/app/_not-found.segments/_full.segment.rsc +15 -0
  39. qalita/_frontend/.next/server/app/_not-found.segments/_head.segment.rsc +5 -0
  40. qalita/_frontend/.next/server/app/_not-found.segments/_index.segment.rsc +7 -0
  41. qalita/_frontend/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
  42. qalita/_frontend/.next/server/app/_not-found.segments/_not-found.segment.rsc +4 -0
  43. qalita/_frontend/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -0
  44. qalita/_frontend/.next/server/app/api/context/[...path]/route/app-paths-manifest.json +3 -0
  45. qalita/_frontend/.next/server/app/api/context/[...path]/route/build-manifest.json +11 -0
  46. qalita/_frontend/.next/server/app/api/context/[...path]/route/server-reference-manifest.json +4 -0
  47. qalita/_frontend/.next/server/app/api/context/[...path]/route.js +6 -0
  48. qalita/_frontend/.next/server/app/api/context/[...path]/route.js.map +5 -0
  49. qalita/_frontend/.next/server/app/api/context/[...path]/route.js.nft.json +1 -0
  50. qalita/_frontend/.next/server/app/api/context/[...path]/route_client-reference-manifest.js +2 -0
  51. qalita/_frontend/.next/server/app/api/contexts/route/app-paths-manifest.json +3 -0
  52. qalita/_frontend/.next/server/app/api/contexts/route/build-manifest.json +11 -0
  53. qalita/_frontend/.next/server/app/api/contexts/route/server-reference-manifest.json +4 -0
  54. qalita/_frontend/.next/server/app/api/contexts/route.js +6 -0
  55. qalita/_frontend/.next/server/app/api/contexts/route.js.map +5 -0
  56. qalita/_frontend/.next/server/app/api/contexts/route.js.nft.json +1 -0
  57. qalita/_frontend/.next/server/app/api/contexts/route_client-reference-manifest.js +2 -0
  58. qalita/_frontend/.next/server/app/api/dashboard/route/app-paths-manifest.json +3 -0
  59. qalita/_frontend/.next/server/app/api/dashboard/route/build-manifest.json +11 -0
  60. qalita/_frontend/.next/server/app/api/dashboard/route/server-reference-manifest.json +4 -0
  61. qalita/_frontend/.next/server/app/api/dashboard/route.js +6 -0
  62. qalita/_frontend/.next/server/app/api/dashboard/route.js.map +5 -0
  63. qalita/_frontend/.next/server/app/api/dashboard/route.js.nft.json +1 -0
  64. qalita/_frontend/.next/server/app/api/dashboard/route_client-reference-manifest.js +2 -0
  65. qalita/_frontend/.next/server/app/api/pack/push/route/app-paths-manifest.json +3 -0
  66. qalita/_frontend/.next/server/app/api/pack/push/route/build-manifest.json +11 -0
  67. qalita/_frontend/.next/server/app/api/pack/push/route/server-reference-manifest.json +4 -0
  68. qalita/_frontend/.next/server/app/api/pack/push/route.js +6 -0
  69. qalita/_frontend/.next/server/app/api/pack/push/route.js.map +5 -0
  70. qalita/_frontend/.next/server/app/api/pack/push/route.js.nft.json +1 -0
  71. qalita/_frontend/.next/server/app/api/pack/push/route_client-reference-manifest.js +2 -0
  72. qalita/_frontend/.next/server/app/api/push/route/app-paths-manifest.json +3 -0
  73. qalita/_frontend/.next/server/app/api/push/route/build-manifest.json +11 -0
  74. qalita/_frontend/.next/server/app/api/push/route/server-reference-manifest.json +4 -0
  75. qalita/_frontend/.next/server/app/api/push/route.js +6 -0
  76. qalita/_frontend/.next/server/app/api/push/route.js.map +5 -0
  77. qalita/_frontend/.next/server/app/api/push/route.js.nft.json +1 -0
  78. qalita/_frontend/.next/server/app/api/push/route_client-reference-manifest.js +2 -0
  79. qalita/_frontend/.next/server/app/api/sources/[...path]/route/app-paths-manifest.json +3 -0
  80. qalita/_frontend/.next/server/app/api/sources/[...path]/route/build-manifest.json +11 -0
  81. qalita/_frontend/.next/server/app/api/sources/[...path]/route/server-reference-manifest.json +4 -0
  82. qalita/_frontend/.next/server/app/api/sources/[...path]/route.js +6 -0
  83. qalita/_frontend/.next/server/app/api/sources/[...path]/route.js.map +5 -0
  84. qalita/_frontend/.next/server/app/api/sources/[...path]/route.js.nft.json +1 -0
  85. qalita/_frontend/.next/server/app/api/sources/[...path]/route_client-reference-manifest.js +2 -0
  86. qalita/_frontend/.next/server/app/api/sources/[id]/route/app-paths-manifest.json +3 -0
  87. qalita/_frontend/.next/server/app/api/sources/[id]/route/build-manifest.json +11 -0
  88. qalita/_frontend/.next/server/app/api/sources/[id]/route/server-reference-manifest.json +4 -0
  89. qalita/_frontend/.next/server/app/api/sources/[id]/route.js +6 -0
  90. qalita/_frontend/.next/server/app/api/sources/[id]/route.js.map +5 -0
  91. qalita/_frontend/.next/server/app/api/sources/[id]/route.js.nft.json +1 -0
  92. qalita/_frontend/.next/server/app/api/sources/[id]/route_client-reference-manifest.js +2 -0
  93. qalita/_frontend/.next/server/app/api/sources/preview/route/app-paths-manifest.json +3 -0
  94. qalita/_frontend/.next/server/app/api/sources/preview/route/build-manifest.json +11 -0
  95. qalita/_frontend/.next/server/app/api/sources/preview/route/server-reference-manifest.json +4 -0
  96. qalita/_frontend/.next/server/app/api/sources/preview/route.js +6 -0
  97. qalita/_frontend/.next/server/app/api/sources/preview/route.js.map +5 -0
  98. qalita/_frontend/.next/server/app/api/sources/preview/route.js.nft.json +1 -0
  99. qalita/_frontend/.next/server/app/api/sources/preview/route_client-reference-manifest.js +2 -0
  100. qalita/_frontend/.next/server/app/api/validate/route/app-paths-manifest.json +3 -0
  101. qalita/_frontend/.next/server/app/api/validate/route/build-manifest.json +11 -0
  102. qalita/_frontend/.next/server/app/api/validate/route/server-reference-manifest.json +4 -0
  103. qalita/_frontend/.next/server/app/api/validate/route.js +6 -0
  104. qalita/_frontend/.next/server/app/api/validate/route.js.map +5 -0
  105. qalita/_frontend/.next/server/app/api/validate/route.js.nft.json +1 -0
  106. qalita/_frontend/.next/server/app/api/validate/route_client-reference-manifest.js +2 -0
  107. qalita/_frontend/.next/server/app/page/app-paths-manifest.json +3 -0
  108. qalita/_frontend/.next/server/app/page/build-manifest.json +17 -0
  109. qalita/_frontend/.next/server/app/page/next-font-manifest.json +6 -0
  110. qalita/_frontend/.next/server/app/page/react-loadable-manifest.json +1 -0
  111. qalita/_frontend/.next/server/app/page/server-reference-manifest.json +4 -0
  112. qalita/_frontend/.next/server/app/page.js +15 -0
  113. qalita/_frontend/.next/server/app/page.js.map +5 -0
  114. qalita/_frontend/.next/server/app/page.js.nft.json +1 -0
  115. qalita/_frontend/.next/server/app/page_client-reference-manifest.js +2 -0
  116. qalita/_frontend/.next/server/app/sources/add/page/app-paths-manifest.json +3 -0
  117. qalita/_frontend/.next/server/app/sources/add/page/build-manifest.json +17 -0
  118. qalita/_frontend/.next/server/app/sources/add/page/next-font-manifest.json +6 -0
  119. qalita/_frontend/.next/server/app/sources/add/page/react-loadable-manifest.json +1 -0
  120. qalita/_frontend/.next/server/app/sources/add/page/server-reference-manifest.json +4 -0
  121. qalita/_frontend/.next/server/app/sources/add/page.js +15 -0
  122. qalita/_frontend/.next/server/app/sources/add/page.js.map +5 -0
  123. qalita/_frontend/.next/server/app/sources/add/page.js.nft.json +1 -0
  124. qalita/_frontend/.next/server/app/sources/add/page_client-reference-manifest.js +2 -0
  125. qalita/_frontend/.next/server/app/sources/add.html +1 -0
  126. qalita/_frontend/.next/server/app/sources/add.meta +16 -0
  127. qalita/_frontend/.next/server/app/sources/add.rsc +19 -0
  128. qalita/_frontend/.next/server/app/sources/add.segments/_full.segment.rsc +19 -0
  129. qalita/_frontend/.next/server/app/sources/add.segments/_head.segment.rsc +5 -0
  130. qalita/_frontend/.next/server/app/sources/add.segments/_index.segment.rsc +7 -0
  131. qalita/_frontend/.next/server/app/sources/add.segments/_tree.segment.rsc +3 -0
  132. qalita/_frontend/.next/server/app/sources/add.segments/sources/add/__PAGE__.segment.rsc +9 -0
  133. qalita/_frontend/.next/server/app/sources/add.segments/sources/add.segment.rsc +4 -0
  134. qalita/_frontend/.next/server/app/sources/add.segments/sources.segment.rsc +4 -0
  135. qalita/_frontend/.next/server/app/sources/edit/[id]/page/app-paths-manifest.json +3 -0
  136. qalita/_frontend/.next/server/app/sources/edit/[id]/page/build-manifest.json +17 -0
  137. qalita/_frontend/.next/server/app/sources/edit/[id]/page/next-font-manifest.json +6 -0
  138. qalita/_frontend/.next/server/app/sources/edit/[id]/page/react-loadable-manifest.json +1 -0
  139. qalita/_frontend/.next/server/app/sources/edit/[id]/page/server-reference-manifest.json +4 -0
  140. qalita/_frontend/.next/server/app/sources/edit/[id]/page.js +15 -0
  141. qalita/_frontend/.next/server/app/sources/edit/[id]/page.js.map +5 -0
  142. qalita/_frontend/.next/server/app/sources/edit/[id]/page.js.nft.json +1 -0
  143. qalita/_frontend/.next/server/app/sources/edit/[id]/page_client-reference-manifest.js +2 -0
  144. qalita/_frontend/.next/server/app/sources/page/app-paths-manifest.json +3 -0
  145. qalita/_frontend/.next/server/app/sources/page/build-manifest.json +17 -0
  146. qalita/_frontend/.next/server/app/sources/page/next-font-manifest.json +6 -0
  147. qalita/_frontend/.next/server/app/sources/page/react-loadable-manifest.json +1 -0
  148. qalita/_frontend/.next/server/app/sources/page/server-reference-manifest.json +4 -0
  149. qalita/_frontend/.next/server/app/sources/page.js +15 -0
  150. qalita/_frontend/.next/server/app/sources/page.js.map +5 -0
  151. qalita/_frontend/.next/server/app/sources/page.js.nft.json +1 -0
  152. qalita/_frontend/.next/server/app/sources/page_client-reference-manifest.js +2 -0
  153. qalita/_frontend/.next/server/app/sources.html +1 -0
  154. qalita/_frontend/.next/server/app/sources.meta +15 -0
  155. qalita/_frontend/.next/server/app/sources.rsc +19 -0
  156. qalita/_frontend/.next/server/app/sources.segments/_full.segment.rsc +19 -0
  157. qalita/_frontend/.next/server/app/sources.segments/_head.segment.rsc +5 -0
  158. qalita/_frontend/.next/server/app/sources.segments/_index.segment.rsc +7 -0
  159. qalita/_frontend/.next/server/app/sources.segments/_tree.segment.rsc +3 -0
  160. qalita/_frontend/.next/server/app/sources.segments/sources/__PAGE__.segment.rsc +9 -0
  161. qalita/_frontend/.next/server/app/sources.segments/sources.segment.rsc +4 -0
  162. qalita/_frontend/.next/server/app-paths-manifest.json +17 -0
  163. qalita/_frontend/.next/server/chunks/[externals]_next_dist_f9e520a4._.js +3 -0
  164. qalita/_frontend/.next/server/chunks/[root-of-the-server]__2b503b6f._.js +3 -0
  165. qalita/_frontend/.next/server/chunks/[root-of-the-server]__2f426c3e._.js +3 -0
  166. qalita/_frontend/.next/server/chunks/[root-of-the-server]__574da4cd._.js +3 -0
  167. qalita/_frontend/.next/server/chunks/[root-of-the-server]__86997be6._.js +3 -0
  168. qalita/_frontend/.next/server/chunks/[root-of-the-server]__8f4e8c59._.js +3 -0
  169. qalita/_frontend/.next/server/chunks/[root-of-the-server]__bf0c3d33._.js +28 -0
  170. qalita/_frontend/.next/server/chunks/[root-of-the-server]__cf78fda6._.js +3 -0
  171. qalita/_frontend/.next/server/chunks/[root-of-the-server]__e868c9e1._.js +3 -0
  172. qalita/_frontend/.next/server/chunks/[root-of-the-server]__ebaae723._.js +3 -0
  173. qalita/_frontend/.next/server/chunks/[root-of-the-server]__ef006352._.js +3 -0
  174. qalita/_frontend/.next/server/chunks/[root-of-the-server]__f408c708._.js +21 -0
  175. qalita/_frontend/.next/server/chunks/[turbopack]_runtime.js +795 -0
  176. qalita/_frontend/.next/server/chunks/_next-internal_server_app_api_context_[___path]_route_actions_74b89a6c.js +3 -0
  177. qalita/_frontend/.next/server/chunks/_next-internal_server_app_api_contexts_route_actions_4ef2babb.js +3 -0
  178. qalita/_frontend/.next/server/chunks/_next-internal_server_app_api_dashboard_route_actions_310b0824.js +3 -0
  179. qalita/_frontend/.next/server/chunks/_next-internal_server_app_api_pack_push_route_actions_b4cb9223.js +3 -0
  180. qalita/_frontend/.next/server/chunks/_next-internal_server_app_api_push_route_actions_a54c7a3c.js +3 -0
  181. qalita/_frontend/.next/server/chunks/_next-internal_server_app_api_sources_[___path]_route_actions_9bd41193.js +3 -0
  182. qalita/_frontend/.next/server/chunks/_next-internal_server_app_api_sources_[id]_route_actions_2549e4c4.js +3 -0
  183. qalita/_frontend/.next/server/chunks/_next-internal_server_app_api_sources_preview_route_actions_382d6286.js +3 -0
  184. qalita/_frontend/.next/server/chunks/_next-internal_server_app_api_validate_route_actions_bdcfdeea.js +3 -0
  185. qalita/_frontend/.next/server/chunks/ssr/[root-of-the-server]__17f2c9b6._.js +3 -0
  186. qalita/_frontend/.next/server/chunks/ssr/[root-of-the-server]__1d5b5394._.js +3 -0
  187. qalita/_frontend/.next/server/chunks/ssr/[root-of-the-server]__21824174._.js +3 -0
  188. qalita/_frontend/.next/server/chunks/ssr/[root-of-the-server]__296a25b5._.js +3 -0
  189. qalita/_frontend/.next/server/chunks/ssr/[root-of-the-server]__336e4c46._.js +4 -0
  190. qalita/_frontend/.next/server/chunks/ssr/[root-of-the-server]__3e948587._.js +3 -0
  191. qalita/_frontend/.next/server/chunks/ssr/[root-of-the-server]__655f8d11._.js +10 -0
  192. qalita/_frontend/.next/server/chunks/ssr/[root-of-the-server]__7876511a._.js +3 -0
  193. qalita/_frontend/.next/server/chunks/ssr/[root-of-the-server]__8d98de57._.js +3 -0
  194. qalita/_frontend/.next/server/chunks/ssr/[root-of-the-server]__96e5a947._.js +3 -0
  195. qalita/_frontend/.next/server/chunks/ssr/[root-of-the-server]__9ca3089a._.js +3 -0
  196. qalita/_frontend/.next/server/chunks/ssr/[root-of-the-server]__be91267c._.js +3 -0
  197. qalita/_frontend/.next/server/chunks/ssr/[root-of-the-server]__bf3c5174._.js +3 -0
  198. qalita/_frontend/.next/server/chunks/ssr/[root-of-the-server]__d15765f1._.js +3 -0
  199. qalita/_frontend/.next/server/chunks/ssr/[turbopack]_runtime.js +795 -0
  200. qalita/_frontend/.next/server/chunks/ssr/_069a688e._.js +4 -0
  201. qalita/_frontend/.next/server/chunks/ssr/_16c750ac._.js +4 -0
  202. qalita/_frontend/.next/server/chunks/ssr/_37435df3._.js +4 -0
  203. qalita/_frontend/.next/server/chunks/ssr/_404f6e81._.js +5 -0
  204. qalita/_frontend/.next/server/chunks/ssr/_62a2ff63._.js +4 -0
  205. qalita/_frontend/.next/server/chunks/ssr/_6a67f6f0._.js +5 -0
  206. qalita/_frontend/.next/server/chunks/ssr/_cafb65ac._.js +3 -0
  207. qalita/_frontend/.next/server/chunks/ssr/_cb7b44d6._.js +6 -0
  208. qalita/_frontend/.next/server/chunks/ssr/_d44c43ed._.js +3 -0
  209. qalita/_frontend/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_75761787.js +3 -0
  210. qalita/_frontend/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_554ec2bf.js +3 -0
  211. qalita/_frontend/.next/server/chunks/ssr/_next-internal_server_app_page_actions_39d4fc33.js +3 -0
  212. qalita/_frontend/.next/server/chunks/ssr/_next-internal_server_app_sources_add_page_actions_8b66db20.js +3 -0
  213. qalita/_frontend/.next/server/chunks/ssr/_next-internal_server_app_sources_edit_[id]_page_actions_0c144362.js +3 -0
  214. qalita/_frontend/.next/server/chunks/ssr/_next-internal_server_app_sources_page_actions_bed02d10.js +3 -0
  215. qalita/_frontend/.next/server/chunks/ssr/components_DashboardContent_tsx_c3635665._.js +3 -0
  216. qalita/_frontend/.next/server/chunks/ssr/node_modules_next_dist_08570d7f._.js +4 -0
  217. qalita/_frontend/.next/server/chunks/ssr/node_modules_next_dist_4b9a0874._.js +3 -0
  218. qalita/_frontend/.next/server/chunks/ssr/node_modules_next_dist_77ec7569._.js +3 -0
  219. qalita/_frontend/.next/server/chunks/ssr/node_modules_next_dist_client_components_9774470f._.js +3 -0
  220. qalita/_frontend/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_45780354.js +3 -0
  221. qalita/_frontend/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_ece394eb.js +3 -0
  222. qalita/_frontend/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_15817684.js +3 -0
  223. qalita/_frontend/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_d92e159d.js +4 -0
  224. qalita/_frontend/.next/server/chunks/ssr/node_modules_next_dist_esm_eedfc1fd._.js +6 -0
  225. qalita/_frontend/.next/server/chunks/ssr/node_modules_next_dist_server_route-modules_app-page_vendored_a443a6bf._.js +3 -0
  226. qalita/_frontend/.next/server/functions-config-manifest.json +14 -0
  227. qalita/_frontend/.next/server/middleware-build-manifest.js +21 -0
  228. qalita/_frontend/.next/server/middleware-manifest.json +6 -0
  229. qalita/_frontend/.next/server/middleware.js +5 -0
  230. qalita/_frontend/.next/server/next-font-manifest.js +1 -0
  231. qalita/_frontend/.next/server/next-font-manifest.json +6 -0
  232. qalita/_frontend/.next/server/pages/404.html +1 -0
  233. qalita/_frontend/.next/server/pages/500.html +2 -0
  234. qalita/_frontend/.next/server/pages-manifest.json +4 -0
  235. qalita/_frontend/.next/server/server-reference-manifest.js +1 -0
  236. qalita/_frontend/.next/server/server-reference-manifest.json +5 -0
  237. qalita/_frontend/.next/static/chunks/02a64570f0a14789.js +1 -0
  238. qalita/_frontend/.next/static/chunks/{7340adf74ff47ec0.js → 0b082245f106d665.js} +1 -1
  239. qalita/_frontend/.next/static/chunks/27b3ba70c7ef50a8.js +1 -0
  240. qalita/_frontend/.next/static/chunks/517e9b74d1a3c0ce.js +1 -0
  241. qalita/_frontend/.next/static/chunks/58689c96b0676c41.js +1 -0
  242. qalita/_frontend/.next/static/chunks/{236f7e5abd6f09ff.js → 89ba62a8ba9b79ce.js} +2 -2
  243. qalita/_frontend/.next/static/chunks/acc5da18ff20daa1.js +3 -0
  244. qalita/_frontend/.next/static/chunks/bdc8a8e7721f5675.js +2 -0
  245. qalita/_frontend/.next/static/chunks/e0df86cbf44bbf9f.js +1 -0
  246. qalita/_frontend/.next/static/chunks/e4c3a252774ab7fd.css +1 -0
  247. qalita/_frontend/.next/static/chunks/e6ce59ba40b863f2.js +1 -0
  248. qalita/_frontend/.next/static/chunks/{30ea11065999f7ac.js → ec4b1f1e3cd3ae43.js} +1 -1
  249. qalita/_frontend/.next/static/chunks/{turbopack-25186fc8e1264445.js → turbopack-d21156d03715fafa.js} +1 -1
  250. qalita/_frontend/node_modules/@swc/helpers/package.json +225 -2
  251. qalita/_frontend/node_modules/next/node_modules/@swc/helpers/package.json +471 -0
  252. qalita/_frontend/package.json +12 -1
  253. qalita/commands/pack.py +61 -8
  254. qalita/commands/worker.py +46 -20
  255. qalita/commands/worker_grpc.py +941 -0
  256. qalita/grpc/__init__.py +8 -0
  257. qalita/grpc/client.py +693 -0
  258. qalita/grpc/protos/__init__.py +4 -0
  259. qalita/grpc/protos/qalita.proto +391 -0
  260. qalita/grpc/protos/qalita_pb2.py +112 -0
  261. qalita/grpc/protos/qalita_pb2_grpc.py +588 -0
  262. qalita/internal/data_preview.py +565 -0
  263. qalita/internal/request.py +2 -1
  264. qalita/internal/utils.py +1 -1
  265. qalita/web/app.py +6 -2
  266. qalita/web/blueprints/dashboard.py +12 -44
  267. qalita/web/blueprints/helpers.py +119 -46
  268. qalita/web/blueprints/sources.py +5 -99
  269. qalita/web/blueprints/workers.py +6 -6
  270. {qalita-2.6.2.dist-info → qalita-2.8.0.dist-info}/METADATA +7 -1
  271. {qalita-2.6.2.dist-info → qalita-2.8.0.dist-info}/RECORD +279 -33
  272. qalita/_frontend/.next/static/chunks/0f84739db4a8acc7.js +0 -1
  273. qalita/_frontend/.next/static/chunks/1107bdca1eff6d34.css +0 -1
  274. qalita/_frontend/.next/static/chunks/4b0c5de8d4cc313f.js +0 -1
  275. qalita/_frontend/.next/static/chunks/4dd28bc3f722184a.js +0 -2
  276. qalita/_frontend/.next/static/chunks/711d597b816a80c1.js +0 -1
  277. qalita/_frontend/.next/static/chunks/bb29c2be4df20a40.js +0 -1
  278. qalita/_frontend/.next/static/chunks/ecf559101be0ae12.js +0 -3
  279. /qalita/_frontend/.next/static/{BNkGe67QNZQE3gQg47i0I → oDJBrlQBPl3vggds1RNfL}/_buildManifest.js +0 -0
  280. /qalita/_frontend/.next/static/{BNkGe67QNZQE3gQg47i0I → oDJBrlQBPl3vggds1RNfL}/_clientMiddlewareManifest.json +0 -0
  281. /qalita/_frontend/.next/static/{BNkGe67QNZQE3gQg47i0I → oDJBrlQBPl3vggds1RNfL}/_ssgManifest.js +0 -0
  282. /qalita/_frontend/node_modules/{@swc → next/node_modules/@swc}/helpers/cjs/_interop_require_default.cjs +0 -0
  283. /qalita/_frontend/node_modules/{@swc → next/node_modules/@swc}/helpers/cjs/_interop_require_wildcard.cjs +0 -0
  284. {qalita-2.6.2.dist-info → qalita-2.8.0.dist-info}/WHEEL +0 -0
  285. {qalita-2.6.2.dist-info → qalita-2.8.0.dist-info}/entry_points.txt +0 -0
  286. {qalita-2.6.2.dist-info → qalita-2.8.0.dist-info}/licenses/LICENSE +0 -0
qalita/commands/worker.py CHANGED
@@ -32,14 +32,14 @@ ROUTINE_LAST_SCHEDULED_UTC = {}
32
32
  @click.option(
33
33
  "-n",
34
34
  "--name",
35
- help="The name of the agent, it will be used to identify the agent in the qalita platform",
35
+ help="The name of the worker, it will be used to identify the worker in the qalita platform",
36
36
  envvar="QALITA_WORKER_NAME",
37
37
  )
38
38
  @click.option(
39
39
  "-m",
40
40
  "--mode",
41
41
  type=click.Choice(["job", "worker"], case_sensitive=False),
42
- help="The mode of the agent, <worker/job> if you run the agent in worker mode, the agent will loop until it gets a job to do, in job mode it will immediately do a job",
42
+ help="The mode of the worker, <worker/job> if you run the worker in worker mode, the worker will loop until it gets a job to do, in job mode it will immediately do a job",
43
43
  envvar="QALITA_WORKER_MODE",
44
44
  )
45
45
  @click.option(
@@ -51,7 +51,7 @@ ROUTINE_LAST_SCHEDULED_UTC = {}
51
51
  @click.option(
52
52
  "-u",
53
53
  "--url",
54
- help="The URL to the qalita backend the agent have to register exemple : http://backend:3080",
54
+ help="The URL to the qalita backend the worker have to register exemple : http://backend:3080",
55
55
  envvar="QALITA_WORKER_ENDPOINT",
56
56
  )
57
57
  @pass_config
@@ -96,13 +96,13 @@ def worker(config, name, mode, token, url):
96
96
  if not name:
97
97
  logger.error("Error: Worker name is required!")
98
98
  logger.info("\tTo do so, you can set an Environment Variable : ")
99
- logger.info("\t\texport QALITA_WORKER_NAME='agent-1'")
99
+ logger.info("\t\texport QALITA_WORKER_NAME='worker-1'")
100
100
  logger.info("\tor add the name as a commandline argument : ")
101
- logger.info("\t\tqalita worker --name 'agent-1'")
101
+ logger.info("\t\tqalita worker --name 'worker-1'")
102
102
  logger.info(
103
103
  "\tthe prefered way is to create a file '.env-file' with the values : "
104
104
  )
105
- logger.info("\t\tQALITA_WORKER_NAME=agent-1")
105
+ logger.info("\t\tQALITA_WORKER_NAME=worker-1")
106
106
  logger.info("\tand source it : ")
107
107
  logger.info("\t\texport $(xargs < .env-file)")
108
108
  all_check_pass = False
@@ -137,7 +137,7 @@ def worker(config, name, mode, token, url):
137
137
  logger.info("\tTo do so, you can set an Environment Variable : ")
138
138
  logger.info("\t\texport QALITA_WORKER_ENDPOINT='http://localhost:3080'")
139
139
  logger.info("\tor add the url as a commandline argument : ")
140
- logger.info("\t\tqalita worker --url 'agent-1'")
140
+ logger.info("\t\tqalita worker --url 'http://localhost:3080'")
141
141
  logger.info(
142
142
  "\tthe prefered way is to create a file '.env-file' with the values : "
143
143
  )
@@ -250,9 +250,9 @@ def authenticate(config, user_id):
250
250
  )
251
251
 
252
252
  if agent_exists:
253
- logger.success(f"Agent '{config.name}' is already registered.")
253
+ logger.success(f"Worker '{config.name}' is already registered.")
254
254
  else:
255
- logger.info(f"Agent '{config.name}' is not registered. Registering now...")
255
+ logger.info(f"Worker '{config.name}' is not registered. Registering now...")
256
256
 
257
257
  # Enregistrement de l'agent
258
258
  try:
@@ -280,7 +280,7 @@ def authenticate(config, user_id):
280
280
  )
281
281
 
282
282
  if r.status_code == 201:
283
- logger.success(f"Agent '{config.name}' successfully registered.")
283
+ logger.success(f"Worker '{config.name}' successfully registered.")
284
284
 
285
285
  # Fetch the full list again
286
286
  try:
@@ -290,12 +290,12 @@ def authenticate(config, user_id):
290
290
 
291
291
  if r.status_code != 200:
292
292
  logger.error(
293
- f"Failed to retrieve updated agent list - HTTP Code: {r.status_code}"
293
+ f"Failed to retrieve updated worker list - HTTP Code: {r.status_code}"
294
294
  )
295
295
  sys.exit(1)
296
296
  else:
297
297
  logger.error(
298
- f"Failed to register agent '{config.name}' - HTTP Code: {r.status_code} - {r.text}"
298
+ f"Failed to register worker '{config.name}' - HTTP Code: {r.status_code} - {r.text}"
299
299
  )
300
300
  sys.exit(1)
301
301
 
@@ -404,10 +404,16 @@ def login(config):
404
404
  help="The pack Version to run the job against, to get the pack version, run qalita pack -p <pack_id> versions, default to latest",
405
405
  envvar="QALITA_WORKER_JOB_PACK_VERSION",
406
406
  )
407
+ @click.option(
408
+ "--grpc/--no-grpc",
409
+ default=True,
410
+ help="Use gRPC for real-time bidirectional communication (default: enabled). Use --no-grpc to fall back to REST polling.",
411
+ envvar="QALITA_WORKER_GRPC",
412
+ )
407
413
  def run(
408
- config, source_id, source_version, target_id, target_version, pack_id, pack_version
414
+ config, source_id, source_version, target_id, target_version, pack_id, pack_version, grpc
409
415
  ):
410
- """Runs de agent"""
416
+ """Runs the worker"""
411
417
  # Pre-checks
412
418
  if config.mode == "job":
413
419
  if source_id is None:
@@ -424,10 +430,24 @@ def run(
424
430
  )
425
431
  logger.error("To get the pack ID, run qalita pack list")
426
432
  sys.exit(1)
433
+ # Use gRPC mode if enabled and in worker mode
434
+ if grpc and config.mode == "worker":
435
+ logger.info("------------- Worker Run (gRPC mode) -------------")
436
+ import asyncio
437
+ try:
438
+ from qalita.commands.worker_grpc import run_worker_grpc
439
+ asyncio.run(run_worker_grpc(config, config.name, config.mode, config.token, config.url))
440
+ return
441
+ except ImportError as e:
442
+ logger.warning(f"gRPC not available, falling back to REST: {e}")
443
+ except Exception as e:
444
+ logger.error(f"gRPC mode failed, falling back to REST: {e}")
445
+
446
+ # REST mode (legacy)
427
447
  logger.info("------------- Worker Authenticate -------------")
428
448
  validated_info = validate_token(config.token)
429
449
  authenticate(validated_info["user_id"])
430
- logger.info("------------- Worker Run -------------")
450
+ logger.info("------------- Worker Run (REST mode) -------------")
431
451
  agent_conf = config.load_worker_config()
432
452
  logger.info(f"Worker ID : {agent_conf['context']['remote']['id']}")
433
453
  logger.info(f"Worker Mode : {config.mode}")
@@ -506,11 +526,11 @@ def run(
506
526
  time.sleep(60)
507
527
  except KeyboardInterrupt:
508
528
  logger.warning("KILLSIG detected. Gracefully exiting the program.")
509
- logger.error("Set Agent OFFLINE...")
529
+ logger.error("Set Worker OFFLINE...")
510
530
  send_alive(config_file=agent_conf, status="offline")
511
531
  logger.error("Exit")
512
532
  else:
513
- logger.error("Agent mode not supported : <worker/job>")
533
+ logger.error("Worker mode not supported : <worker/job>")
514
534
  sys.exit(1)
515
535
 
516
536
 
@@ -655,8 +675,11 @@ def job_run(
655
675
  )
656
676
  source_version = latest_version["sem_ver_id"]
657
677
  source_version_id = latest_version["id"]
658
- if response_source.status_code == 204:
659
- logger.error(f"Source with id {source_id} not found, source doesn't exist or you don't have the permission to access it. \nAgent is [{agent_conf['context']['remote']['name']}] You may need to change agent.")
678
+ elif source_version_id is None:
679
+ logger.error(f"Source with id {source_id} has no versions. Cannot proceed without a source version.")
680
+ sys.exit(1)
681
+ elif response_source.status_code == 204:
682
+ logger.error(f"Source with id {source_id} not found, source doesn't exist or you don't have the permission to access it. \nWorker is [{agent_conf['context']['remote']['name']}] You may need to change worker.")
660
683
  sys.exit(1)
661
684
 
662
685
  logger.info(
@@ -676,8 +699,11 @@ def job_run(
676
699
  )
677
700
  pack_version = latest_version["sem_ver_id"]
678
701
  pack_version_id = latest_version["id"]
702
+ elif pack_version_id is None:
703
+ logger.error(f"Pack with id {pack_id} has no versions. Cannot proceed without a pack version.")
704
+ sys.exit(1)
679
705
  elif response_pack.status_code == 204:
680
- logger.error(f"Pack with id {pack_id} not found, pack doesn't exist or you don't have the permission to access it. \nAgent is [{agent_conf['context']['remote']['name']}] You may need to change agent.")
706
+ logger.error(f"Pack with id {pack_id} not found, pack doesn't exist or you don't have the permission to access it. \nWorker is [{agent_conf['context']['remote']['name']}] You may need to change worker.")
681
707
  sys.exit(1)
682
708
 
683
709
  logger.info(f"pack version not specified, Latest pack version is {pack_version}")