qalita 2.3.2__py3-none-any.whl → 2.5.3__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 (1342) hide show
  1. qalita/__main__.py +236 -9
  2. qalita/_frontend/.next/static/chunks/023d923a37d494fc.js +1 -0
  3. qalita/_frontend/.next/static/chunks/0f84739db4a8acc7.js +1 -0
  4. qalita/_frontend/.next/static/chunks/1107bdca1eff6d34.css +1 -0
  5. qalita/_frontend/.next/static/chunks/247eb132b7f7b574.js +1 -0
  6. qalita/_frontend/.next/static/chunks/4b0c5de8d4cc313f.js +1 -0
  7. qalita/_frontend/.next/static/chunks/6c99da4248e4fcfc.js +1 -0
  8. qalita/_frontend/.next/static/chunks/a6dad97d9634a72d.js +1 -0
  9. qalita/_frontend/.next/static/chunks/bb29c2be4df20a40.js +1 -0
  10. qalita/_frontend/.next/static/chunks/bba035711c7e37a2.js +4 -0
  11. qalita/_frontend/.next/static/chunks/c903f9580a4b6572.js +2 -0
  12. qalita/_frontend/.next/static/chunks/cbd55ab9639e1e66.js +1 -0
  13. qalita/_frontend/.next/static/chunks/e393fec0d8ba175d.js +3 -0
  14. qalita/_frontend/.next/static/chunks/ff1a16fafef87110.js +1 -0
  15. qalita/_frontend/.next/static/chunks/turbopack-1ad58da399056f41.js +3 -0
  16. qalita/_frontend/.next/static/fm8OzItmoekYnFcSZ5R8j/_buildManifest.js +11 -0
  17. qalita/_frontend/.next/static/fm8OzItmoekYnFcSZ5R8j/_ssgManifest.js +1 -0
  18. qalita/_frontend/node_modules/@img/colour/color.cjs +1594 -0
  19. qalita/_frontend/node_modules/@img/colour/index.cjs +1 -0
  20. qalita/_frontend/node_modules/@img/colour/package.json +45 -0
  21. qalita/_frontend/node_modules/@img/sharp-libvips-linux-x64/README.md +46 -0
  22. qalita/_frontend/node_modules/@img/sharp-libvips-linux-x64/lib/glib-2.0/include/glibconfig.h +221 -0
  23. qalita/_frontend/node_modules/@img/sharp-libvips-linux-x64/lib/index.js +1 -0
  24. qalita/_frontend/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  25. qalita/_frontend/node_modules/@img/sharp-libvips-linux-x64/package.json +42 -0
  26. qalita/_frontend/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +46 -0
  27. qalita/_frontend/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +221 -0
  28. qalita/_frontend/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +1 -0
  29. qalita/_frontend/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  30. qalita/_frontend/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +42 -0
  31. qalita/_frontend/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  32. qalita/_frontend/node_modules/@img/sharp-linux-x64/package.json +46 -0
  33. qalita/_frontend/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  34. qalita/_frontend/node_modules/@img/sharp-linuxmusl-x64/package.json +46 -0
  35. qalita/_frontend/node_modules/@next/env/dist/index.js +1 -0
  36. qalita/_frontend/node_modules/@next/env/package.json +36 -0
  37. qalita/_frontend/node_modules/@swc/helpers/cjs/_interop_require_default.cjs +6 -0
  38. qalita/_frontend/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs +38 -0
  39. qalita/_frontend/node_modules/@swc/helpers/package.json +471 -0
  40. qalita/_frontend/node_modules/client-only/index.js +0 -0
  41. qalita/_frontend/node_modules/client-only/package.json +19 -0
  42. qalita/_frontend/node_modules/detect-libc/lib/detect-libc.js +313 -0
  43. qalita/_frontend/node_modules/detect-libc/lib/elf.js +39 -0
  44. qalita/_frontend/node_modules/detect-libc/lib/filesystem.js +51 -0
  45. qalita/_frontend/node_modules/detect-libc/lib/process.js +24 -0
  46. qalita/_frontend/node_modules/detect-libc/package.json +44 -0
  47. qalita/_frontend/node_modules/next/dist/build/adapter/build-complete.js +993 -0
  48. qalita/_frontend/node_modules/next/dist/build/after-production-compile.js +95 -0
  49. qalita/_frontend/node_modules/next/dist/build/analysis/extract-const-value.js +205 -0
  50. qalita/_frontend/node_modules/next/dist/build/analysis/get-page-static-info.js +601 -0
  51. qalita/_frontend/node_modules/next/dist/build/analysis/parse-module.js +20 -0
  52. qalita/_frontend/node_modules/next/dist/build/babel/loader/get-config.js +429 -0
  53. qalita/_frontend/node_modules/next/dist/build/babel/loader/index.js +56 -0
  54. qalita/_frontend/node_modules/next/dist/build/babel/loader/transform.js +103 -0
  55. qalita/_frontend/node_modules/next/dist/build/babel/loader/util.js +20 -0
  56. qalita/_frontend/node_modules/next/dist/build/babel/plugins/commonjs.js +42 -0
  57. qalita/_frontend/node_modules/next/dist/build/babel/plugins/jsx-pragma.js +74 -0
  58. qalita/_frontend/node_modules/next/dist/build/babel/plugins/next-font-unsupported.js +36 -0
  59. qalita/_frontend/node_modules/next/dist/build/babel/plugins/next-page-config.js +104 -0
  60. qalita/_frontend/node_modules/next/dist/build/babel/plugins/next-page-disallow-re-export-all-exports.js +29 -0
  61. qalita/_frontend/node_modules/next/dist/build/babel/plugins/next-ssg-transform.js +345 -0
  62. qalita/_frontend/node_modules/next/dist/build/babel/plugins/optimize-hook-destructuring.js +60 -0
  63. qalita/_frontend/node_modules/next/dist/build/babel/plugins/react-loadable-plugin.js +145 -0
  64. qalita/_frontend/node_modules/next/dist/build/babel/preset.js +250 -0
  65. qalita/_frontend/node_modules/next/dist/build/build-context.js +58 -0
  66. qalita/_frontend/node_modules/next/dist/build/collect-build-traces.js +536 -0
  67. qalita/_frontend/node_modules/next/dist/build/compiler.js +88 -0
  68. qalita/_frontend/node_modules/next/dist/build/create-compiler-aliases.js +436 -0
  69. qalita/_frontend/node_modules/next/dist/build/define-env.js +228 -0
  70. qalita/_frontend/node_modules/next/dist/build/deployment-id.js +18 -0
  71. qalita/_frontend/node_modules/next/dist/build/duration-to-string.js +99 -0
  72. qalita/_frontend/node_modules/next/dist/build/entries.js +798 -0
  73. qalita/_frontend/node_modules/next/dist/build/generate-build-id.js +31 -0
  74. qalita/_frontend/node_modules/next/dist/build/get-babel-config-file.js +35 -0
  75. qalita/_frontend/node_modules/next/dist/build/get-babel-loader-config.js +109 -0
  76. qalita/_frontend/node_modules/next/dist/build/get-static-info-including-layouts.js +81 -0
  77. qalita/_frontend/node_modules/next/dist/build/handle-entrypoints.js +176 -0
  78. qalita/_frontend/node_modules/next/dist/build/handle-externals.js +290 -0
  79. qalita/_frontend/node_modules/next/dist/build/index.js +2728 -0
  80. qalita/_frontend/node_modules/next/dist/build/is-writeable.js +26 -0
  81. qalita/_frontend/node_modules/next/dist/build/jest/__mocks__/empty.js +10 -0
  82. qalita/_frontend/node_modules/next/dist/build/jest/__mocks__/fileMock.js +15 -0
  83. qalita/_frontend/node_modules/next/dist/build/jest/__mocks__/nextFontMock.js +20 -0
  84. qalita/_frontend/node_modules/next/dist/build/jest/__mocks__/styleMock.js +10 -0
  85. qalita/_frontend/node_modules/next/dist/build/jest/jest.js +227 -0
  86. qalita/_frontend/node_modules/next/dist/build/jest/object-proxy.js +50 -0
  87. qalita/_frontend/node_modules/next/dist/build/load-entrypoint.js +30 -0
  88. qalita/_frontend/node_modules/next/dist/build/load-jsconfig.js +162 -0
  89. qalita/_frontend/node_modules/next/dist/build/lockfile.js +160 -0
  90. qalita/_frontend/node_modules/next/dist/build/manifests/formatter/format-manifest.js +19 -0
  91. qalita/_frontend/node_modules/next/dist/build/next-config-ts/require-hook.js +85 -0
  92. qalita/_frontend/node_modules/next/dist/build/next-config-ts/transpile-config.js +172 -0
  93. qalita/_frontend/node_modules/next/dist/build/next-dir-paths.js +37 -0
  94. qalita/_frontend/node_modules/next/dist/build/normalize-catchall-routes.js +76 -0
  95. qalita/_frontend/node_modules/next/dist/build/output/format.js +84 -0
  96. qalita/_frontend/node_modules/next/dist/build/output/index.js +186 -0
  97. qalita/_frontend/node_modules/next/dist/build/output/log.js +138 -0
  98. qalita/_frontend/node_modules/next/dist/build/output/store.js +204 -0
  99. qalita/_frontend/node_modules/next/dist/build/page-extensions-type.js +6 -0
  100. qalita/_frontend/node_modules/next/dist/build/polyfills/fetch/index.js +6 -0
  101. qalita/_frontend/node_modules/next/dist/build/polyfills/fetch/whatwg-fetch.js +7 -0
  102. qalita/_frontend/node_modules/next/dist/build/polyfills/object-assign.js +6 -0
  103. qalita/_frontend/node_modules/next/dist/build/polyfills/object.assign/auto.js +4 -0
  104. qalita/_frontend/node_modules/next/dist/build/polyfills/object.assign/implementation.js +4 -0
  105. qalita/_frontend/node_modules/next/dist/build/polyfills/object.assign/index.js +19 -0
  106. qalita/_frontend/node_modules/next/dist/build/polyfills/object.assign/polyfill.js +6 -0
  107. qalita/_frontend/node_modules/next/dist/build/polyfills/object.assign/shim.js +6 -0
  108. qalita/_frontend/node_modules/next/dist/build/polyfills/polyfill-module.js +1 -0
  109. qalita/_frontend/node_modules/next/dist/build/polyfills/polyfill-nomodule.js +1 -0
  110. qalita/_frontend/node_modules/next/dist/build/polyfills/process.js +5 -0
  111. qalita/_frontend/node_modules/next/dist/build/preview-key-utils.js +91 -0
  112. qalita/_frontend/node_modules/next/dist/build/progress.js +151 -0
  113. qalita/_frontend/node_modules/next/dist/build/rendering-mode.js +26 -0
  114. qalita/_frontend/node_modules/next/dist/build/segment-config/app/app-segment-config.js +145 -0
  115. qalita/_frontend/node_modules/next/dist/build/segment-config/app/app-segments.js +213 -0
  116. qalita/_frontend/node_modules/next/dist/build/segment-config/app/collect-root-param-keys.js +52 -0
  117. qalita/_frontend/node_modules/next/dist/build/segment-config/middleware/middleware-config.js +121 -0
  118. qalita/_frontend/node_modules/next/dist/build/segment-config/pages/pages-segment-config.js +62 -0
  119. qalita/_frontend/node_modules/next/dist/build/sort-by-page-exts.js +30 -0
  120. qalita/_frontend/node_modules/next/dist/build/spinner.js +138 -0
  121. qalita/_frontend/node_modules/next/dist/build/static-paths/app.js +823 -0
  122. qalita/_frontend/node_modules/next/dist/build/static-paths/pages.js +169 -0
  123. qalita/_frontend/node_modules/next/dist/build/static-paths/types.js +6 -0
  124. qalita/_frontend/node_modules/next/dist/build/static-paths/utils.js +47 -0
  125. qalita/_frontend/node_modules/next/dist/build/swc/helpers.js +15 -0
  126. qalita/_frontend/node_modules/next/dist/build/swc/index.js +1267 -0
  127. qalita/_frontend/node_modules/next/dist/build/swc/install-bindings.js +30 -0
  128. qalita/_frontend/node_modules/next/dist/build/swc/jest-transformer.js +75 -0
  129. qalita/_frontend/node_modules/next/dist/build/swc/options.js +386 -0
  130. qalita/_frontend/node_modules/next/dist/build/swc/types.js +6 -0
  131. qalita/_frontend/node_modules/next/dist/build/templates/app-page.js +1064 -0
  132. qalita/_frontend/node_modules/next/dist/build/templates/app-route.js +422 -0
  133. qalita/_frontend/node_modules/next/dist/build/templates/edge-app-route.js +88 -0
  134. qalita/_frontend/node_modules/next/dist/build/templates/edge-ssr-app.js +313 -0
  135. qalita/_frontend/node_modules/next/dist/build/templates/edge-ssr.js +329 -0
  136. qalita/_frontend/node_modules/next/dist/build/templates/helpers.js +36 -0
  137. qalita/_frontend/node_modules/next/dist/build/templates/middleware.js +114 -0
  138. qalita/_frontend/node_modules/next/dist/build/templates/pages-api.js +194 -0
  139. qalita/_frontend/node_modules/next/dist/build/templates/pages-edge-api.js +38 -0
  140. qalita/_frontend/node_modules/next/dist/build/templates/pages.js +155 -0
  141. qalita/_frontend/node_modules/next/dist/build/turbopack-build/impl.js +243 -0
  142. qalita/_frontend/node_modules/next/dist/build/turbopack-build/index.js +85 -0
  143. qalita/_frontend/node_modules/next/dist/build/turborepo-access-trace/env.js +29 -0
  144. qalita/_frontend/node_modules/next/dist/build/turborepo-access-trace/helpers.js +104 -0
  145. qalita/_frontend/node_modules/next/dist/build/turborepo-access-trace/index.js +30 -0
  146. qalita/_frontend/node_modules/next/dist/build/turborepo-access-trace/result.js +51 -0
  147. qalita/_frontend/node_modules/next/dist/build/turborepo-access-trace/tcp.js +41 -0
  148. qalita/_frontend/node_modules/next/dist/build/turborepo-access-trace/types.js +8 -0
  149. qalita/_frontend/node_modules/next/dist/build/type-check.js +152 -0
  150. qalita/_frontend/node_modules/next/dist/build/utils.js +1220 -0
  151. qalita/_frontend/node_modules/next/dist/build/webpack/alias/react-dom-server-experimental.js +32 -0
  152. qalita/_frontend/node_modules/next/dist/build/webpack/alias/react-dom-server.js +32 -0
  153. qalita/_frontend/node_modules/next/dist/build/webpack/cache-invalidation.js +91 -0
  154. qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/base.js +82 -0
  155. qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/index.js +562 -0
  156. qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/loaders/client.js +49 -0
  157. qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/loaders/file-resolve.js +21 -0
  158. qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/loaders/getCssModuleLocalIdent.js +37 -0
  159. qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/loaders/global.js +65 -0
  160. qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/loaders/index.js +22 -0
  161. qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/loaders/modules.js +86 -0
  162. qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/loaders/next-font.js +62 -0
  163. qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/messages.js +45 -0
  164. qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/plugins.js +190 -0
  165. qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/images/index.js +42 -0
  166. qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/images/messages.js +16 -0
  167. qalita/_frontend/node_modules/next/dist/build/webpack/config/helpers.js +78 -0
  168. qalita/_frontend/node_modules/next/dist/build/webpack/config/index.js +46 -0
  169. qalita/_frontend/node_modules/next/dist/build/webpack/config/utils.js +13 -0
  170. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/CssSyntaxError.js +32 -0
  171. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/camelcase.js +93 -0
  172. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js +287 -0
  173. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/plugins/index.js +36 -0
  174. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/plugins/postcss-icss-parser.js +105 -0
  175. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/plugins/postcss-import-parser.js +220 -0
  176. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/plugins/postcss-url-parser.js +307 -0
  177. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js +83 -0
  178. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js +23 -0
  179. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/utils.js +459 -0
  180. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/devtool/devtool-style-inject.js +129 -0
  181. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/empty-loader.js +14 -0
  182. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/error-loader.js +36 -0
  183. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/get-module-build-info.js +15 -0
  184. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/codegen.js +156 -0
  185. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/index.js +27 -0
  186. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/interface.js +17 -0
  187. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/loader.js +429 -0
  188. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/minify.js +94 -0
  189. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/utils.js +58 -0
  190. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/metadata/discover.js +122 -0
  191. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/metadata/resolve-route-data.js +171 -0
  192. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/metadata/types.js +7 -0
  193. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/modularize-import-loader.js +39 -0
  194. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-app-loader/create-app-route-code.js +65 -0
  195. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js +747 -0
  196. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-barrel-loader.js +268 -0
  197. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js +37 -0
  198. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-edge-app-route-loader/index.js +54 -0
  199. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-edge-function-loader.js +52 -0
  200. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js +100 -0
  201. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-error-browser-binary-loader.js +21 -0
  202. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js +32 -0
  203. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js +45 -0
  204. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-client-module-loader.js +49 -0
  205. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-css-loader.js +56 -0
  206. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-client-wrapper.js +33 -0
  207. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-validate.js +27 -0
  208. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-loader/cache-wrapper.js +13 -0
  209. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-loader/index.js +211 -0
  210. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js +14 -0
  211. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-loader/server-reference.js +13 -0
  212. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-loader/track-dynamic-import.js +13 -0
  213. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-server-reference-proxy-loader.js +29 -0
  214. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js +133 -0
  215. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-font-loader/postcss-next-font.js +169 -0
  216. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-image-loader/blur.js +73 -0
  217. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-image-loader/index.js +80 -0
  218. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-invalid-import-error-loader.js +28 -0
  219. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js +158 -0
  220. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-metadata-route-loader.js +342 -0
  221. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-middleware-asset-loader.js +46 -0
  222. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-middleware-loader.js +59 -0
  223. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-middleware-wasm-loader.js +46 -0
  224. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-root-params-loader.js +164 -0
  225. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js +141 -0
  226. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-style-loader/index.js +220 -0
  227. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoLinkTag.js +61 -0
  228. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js +221 -0
  229. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/isEqualLocals.js +27 -0
  230. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-swc-loader.js +241 -0
  231. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/Error.js +40 -0
  232. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/Warning.js +35 -0
  233. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js +125 -0
  234. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/utils.js +86 -0
  235. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/index.js +101 -0
  236. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/lib/file-protocol.js +78 -0
  237. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/lib/join-function.js +190 -0
  238. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/lib/postcss.js +92 -0
  239. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/lib/value-processor.js +97 -0
  240. qalita/_frontend/node_modules/next/dist/build/webpack/loaders/utils.js +100 -0
  241. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/build-manifest-plugin-utils.js +79 -0
  242. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/build-manifest-plugin.js +183 -0
  243. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/copy-file-plugin.js +67 -0
  244. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/css-chunking-plugin.js +277 -0
  245. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/css-minimizer-plugin.js +92 -0
  246. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/devtools-ignore-list-plugin.js +78 -0
  247. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/eval-source-map-dev-tool-plugin.js +191 -0
  248. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/flight-client-entry-plugin.js +793 -0
  249. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.js +420 -0
  250. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/force-complete-runtime.js +42 -0
  251. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/jsconfig-paths-plugin.js +219 -0
  252. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/memory-with-gc-cache-plugin.js +114 -0
  253. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/middleware-plugin.js +611 -0
  254. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/mini-css-extract-plugin.js +24 -0
  255. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/minify-webpack-plugin/src/index.js +188 -0
  256. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.js +120 -0
  257. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/next-trace-entrypoints-plugin.js +542 -0
  258. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/next-types-plugin/index.js +428 -0
  259. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/next-types-plugin/shared.js +14 -0
  260. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/nextjs-require-cache-hot-reloader.js +57 -0
  261. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/optional-peer-dependency-resolve-plugin.js +45 -0
  262. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.js +146 -0
  263. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/profiling-plugin.js +282 -0
  264. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/react-loadable-plugin.js +169 -0
  265. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/rspack-flight-client-entry-plugin.js +97 -0
  266. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/rspack-profiling-plugin.js +62 -0
  267. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/slow-module-detection-plugin.js +190 -0
  268. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.js +62 -0
  269. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/telemetry-plugin/telemetry-plugin.js +188 -0
  270. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/telemetry-plugin/update-telemetry-loader-context-from-swc.js +28 -0
  271. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/telemetry-plugin/use-cache-tracker-utils.js +43 -0
  272. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/getModuleTrace.js +89 -0
  273. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/index.js +43 -0
  274. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parse-dynamic-code-evaluation-error.js +19 -0
  275. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseBabel.js +29 -0
  276. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseCss.js +29 -0
  277. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNextAppLoaderError.js +26 -0
  278. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNextFontError.js +33 -0
  279. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNextInvalidImportError.js +26 -0
  280. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNotFoundError.js +166 -0
  281. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseScss.js +42 -0
  282. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/simpleWebpackError.js +18 -0
  283. qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/webpackModuleError.js +138 -0
  284. qalita/_frontend/node_modules/next/dist/build/webpack/stringify-request.js +15 -0
  285. qalita/_frontend/node_modules/next/dist/build/webpack/utils.js +109 -0
  286. qalita/_frontend/node_modules/next/dist/build/webpack-build/impl.js +380 -0
  287. qalita/_frontend/node_modules/next/dist/build/webpack-build/index.js +179 -0
  288. qalita/_frontend/node_modules/next/dist/build/webpack-config-rules/resolve.js +55 -0
  289. qalita/_frontend/node_modules/next/dist/build/webpack-config.js +2311 -0
  290. qalita/_frontend/node_modules/next/dist/build/worker.js +35 -0
  291. qalita/_frontend/node_modules/next/dist/build/write-build-id.js +19 -0
  292. qalita/_frontend/node_modules/next/dist/cli/next-test.js +171 -0
  293. qalita/_frontend/node_modules/next/dist/client/add-base-path.js +24 -0
  294. qalita/_frontend/node_modules/next/dist/client/app-build-id.js +49 -0
  295. qalita/_frontend/node_modules/next/dist/client/app-call-server.js +34 -0
  296. qalita/_frontend/node_modules/next/dist/client/app-find-source-map-url.js +38 -0
  297. qalita/_frontend/node_modules/next/dist/client/assign-location.js +29 -0
  298. qalita/_frontend/node_modules/next/dist/client/components/app-router-announcer.js +78 -0
  299. qalita/_frontend/node_modules/next/dist/client/components/app-router-headers.js +123 -0
  300. qalita/_frontend/node_modules/next/dist/client/components/app-router-instance.js +327 -0
  301. qalita/_frontend/node_modules/next/dist/client/components/app-router-utils.js +62 -0
  302. qalita/_frontend/node_modules/next/dist/client/components/app-router.js +515 -0
  303. qalita/_frontend/node_modules/next/dist/client/components/builtin/default.js +35 -0
  304. qalita/_frontend/node_modules/next/dist/client/components/builtin/global-error.js +82 -0
  305. qalita/_frontend/node_modules/next/dist/client/components/dev-root-http-access-fallback-boundary.js +52 -0
  306. qalita/_frontend/node_modules/next/dist/client/components/error-boundary.js +134 -0
  307. qalita/_frontend/node_modules/next/dist/client/components/errors/graceful-degrade-boundary.js +86 -0
  308. qalita/_frontend/node_modules/next/dist/client/components/errors/root-error-boundary.js +41 -0
  309. qalita/_frontend/node_modules/next/dist/client/components/forbidden.js +48 -0
  310. qalita/_frontend/node_modules/next/dist/client/components/handle-isr-error.js +31 -0
  311. qalita/_frontend/node_modules/next/dist/client/components/hooks-server-context.js +42 -0
  312. qalita/_frontend/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js +125 -0
  313. qalita/_frontend/node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js +72 -0
  314. qalita/_frontend/node_modules/next/dist/client/components/is-next-router-error.js +23 -0
  315. qalita/_frontend/node_modules/next/dist/client/components/links.js +292 -0
  316. qalita/_frontend/node_modules/next/dist/client/components/match-segments.js +32 -0
  317. qalita/_frontend/node_modules/next/dist/client/components/nav-failure-handler.js +61 -0
  318. qalita/_frontend/node_modules/next/dist/client/components/navigation-devtools.js +128 -0
  319. qalita/_frontend/node_modules/next/dist/client/components/navigation-untracked.js +65 -0
  320. qalita/_frontend/node_modules/next/dist/client/components/navigation.js +197 -0
  321. qalita/_frontend/node_modules/next/dist/client/components/navigation.react-server.js +72 -0
  322. qalita/_frontend/node_modules/next/dist/client/components/not-found.js +42 -0
  323. qalita/_frontend/node_modules/next/dist/client/components/readonly-url-search-params.js +41 -0
  324. qalita/_frontend/node_modules/next/dist/client/components/redirect-boundary.js +107 -0
  325. qalita/_frontend/node_modules/next/dist/client/components/redirect-error.js +52 -0
  326. qalita/_frontend/node_modules/next/dist/client/components/redirect-status-code.js +24 -0
  327. qalita/_frontend/node_modules/next/dist/client/components/redirect.js +91 -0
  328. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/apply-flight-data.js +53 -0
  329. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js +105 -0
  330. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/compute-changed-path.js +128 -0
  331. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/create-href-from-url.js +21 -0
  332. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js +78 -0
  333. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js +32 -0
  334. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/fetch-server-response.js +352 -0
  335. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/fill-cache-with-new-subtree-data.js +110 -0
  336. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js +131 -0
  337. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/handle-mutable.js +66 -0
  338. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/handle-segment-mismatch.js +25 -0
  339. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/invalidate-cache-by-router-state.js +32 -0
  340. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js +51 -0
  341. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js +875 -0
  342. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js +64 -0
  343. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js +38 -0
  344. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js +95 -0
  345. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js +165 -0
  346. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js +105 -0
  347. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js +63 -0
  348. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js +279 -0
  349. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js +65 -0
  350. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/refetch-inactive-parallel-segments.js +104 -0
  351. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/router-reducer-types.js +62 -0
  352. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/router-reducer.js +66 -0
  353. qalita/_frontend/node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js +60 -0
  354. qalita/_frontend/node_modules/next/dist/client/components/segment-cache/cache-key.js +28 -0
  355. qalita/_frontend/node_modules/next/dist/client/components/segment-cache/cache-map.js +310 -0
  356. qalita/_frontend/node_modules/next/dist/client/components/segment-cache/cache.js +1419 -0
  357. qalita/_frontend/node_modules/next/dist/client/components/segment-cache/lru.js +141 -0
  358. qalita/_frontend/node_modules/next/dist/client/components/segment-cache/navigation.js +416 -0
  359. qalita/_frontend/node_modules/next/dist/client/components/segment-cache/prefetch.js +31 -0
  360. qalita/_frontend/node_modules/next/dist/client/components/segment-cache/scheduler.js +1150 -0
  361. qalita/_frontend/node_modules/next/dist/client/components/segment-cache/types.js +69 -0
  362. qalita/_frontend/node_modules/next/dist/client/components/segment-cache/vary-path.js +216 -0
  363. qalita/_frontend/node_modules/next/dist/client/components/static-generation-bailout.js +42 -0
  364. qalita/_frontend/node_modules/next/dist/client/components/unauthorized.js +49 -0
  365. qalita/_frontend/node_modules/next/dist/client/components/unrecognized-action-error.js +39 -0
  366. qalita/_frontend/node_modules/next/dist/client/components/unresolved-thenable.js +23 -0
  367. qalita/_frontend/node_modules/next/dist/client/components/unstable-rethrow.browser.js +28 -0
  368. qalita/_frontend/node_modules/next/dist/client/components/unstable-rethrow.js +25 -0
  369. qalita/_frontend/node_modules/next/dist/client/components/unstable-rethrow.server.js +32 -0
  370. qalita/_frontend/node_modules/next/dist/client/components/use-action-queue.js +102 -0
  371. qalita/_frontend/node_modules/next/dist/client/dev/debug-channel.js +72 -0
  372. qalita/_frontend/node_modules/next/dist/client/flight-data-helpers.js +219 -0
  373. qalita/_frontend/node_modules/next/dist/client/has-base-path.js +23 -0
  374. qalita/_frontend/node_modules/next/dist/client/lib/console.js +177 -0
  375. qalita/_frontend/node_modules/next/dist/client/normalize-trailing-slash.js +36 -0
  376. qalita/_frontend/node_modules/next/dist/client/remove-base-path.js +32 -0
  377. qalita/_frontend/node_modules/next/dist/client/route-params.js +230 -0
  378. qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js +339 -0
  379. qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/cookies/package.json +1 -0
  380. qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/ponyfill/index.js +46 -0
  381. qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/ponyfill/package.json +1 -0
  382. qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/primitives/abort-controller.js.text.js +1 -0
  383. qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/primitives/console.js.text.js +1 -0
  384. qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/primitives/events.js.text.js +1 -0
  385. qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/primitives/index.js +5 -0
  386. qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/primitives/load.js +18713 -0
  387. qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/primitives/package.json +1 -0
  388. qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/primitives/stream.js +44 -0
  389. qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/primitives/timers.js.text.js +1 -0
  390. qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/primitives/url.js.text.js +1 -0
  391. qalita/_frontend/node_modules/next/dist/compiled/@hapi/accept/index.js +1 -0
  392. qalita/_frontend/node_modules/next/dist/compiled/@hapi/accept/package.json +1 -0
  393. qalita/_frontend/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/index.js +1 -0
  394. qalita/_frontend/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/package.json +1 -0
  395. qalita/_frontend/node_modules/next/dist/compiled/@napi-rs/triples/index.js +1 -0
  396. qalita/_frontend/node_modules/next/dist/compiled/@napi-rs/triples/package.json +1 -0
  397. qalita/_frontend/node_modules/next/dist/compiled/@opentelemetry/api/index.js +1 -0
  398. qalita/_frontend/node_modules/next/dist/compiled/@opentelemetry/api/package.json +1 -0
  399. qalita/_frontend/node_modules/next/dist/compiled/async-retry/index.js +1 -0
  400. qalita/_frontend/node_modules/next/dist/compiled/async-retry/package.json +1 -0
  401. qalita/_frontend/node_modules/next/dist/compiled/async-sema/index.js +1 -0
  402. qalita/_frontend/node_modules/next/dist/compiled/async-sema/package.json +1 -0
  403. qalita/_frontend/node_modules/next/dist/compiled/babel/code-frame.js +1 -0
  404. qalita/_frontend/node_modules/next/dist/compiled/babel/package.json +1 -0
  405. qalita/_frontend/node_modules/next/dist/compiled/babel-code-frame/index.js +1 -0
  406. qalita/_frontend/node_modules/next/dist/compiled/babel-code-frame/package.json +1 -0
  407. qalita/_frontend/node_modules/next/dist/compiled/busboy/index.js +1 -0
  408. qalita/_frontend/node_modules/next/dist/compiled/busboy/package.json +1 -0
  409. qalita/_frontend/node_modules/next/dist/compiled/bytes/index.js +8 -0
  410. qalita/_frontend/node_modules/next/dist/compiled/bytes/package.json +1 -0
  411. qalita/_frontend/node_modules/next/dist/compiled/ci-info/index.js +1 -0
  412. qalita/_frontend/node_modules/next/dist/compiled/ci-info/package.json +1 -0
  413. qalita/_frontend/node_modules/next/dist/compiled/commander/index.js +1 -0
  414. qalita/_frontend/node_modules/next/dist/compiled/commander/package.json +1 -0
  415. qalita/_frontend/node_modules/next/dist/compiled/comment-json/index.js +7 -0
  416. qalita/_frontend/node_modules/next/dist/compiled/comment-json/package.json +1 -0
  417. qalita/_frontend/node_modules/next/dist/compiled/compression/index.js +58 -0
  418. qalita/_frontend/node_modules/next/dist/compiled/compression/package.json +1 -0
  419. qalita/_frontend/node_modules/next/dist/compiled/conf/index.js +15 -0
  420. qalita/_frontend/node_modules/next/dist/compiled/conf/package.json +1 -0
  421. qalita/_frontend/node_modules/next/dist/compiled/content-disposition/index.js +6 -0
  422. qalita/_frontend/node_modules/next/dist/compiled/content-disposition/package.json +1 -0
  423. qalita/_frontend/node_modules/next/dist/compiled/cookie/index.js +7 -0
  424. qalita/_frontend/node_modules/next/dist/compiled/cookie/package.json +1 -0
  425. qalita/_frontend/node_modules/next/dist/compiled/cross-spawn/index.js +1 -0
  426. qalita/_frontend/node_modules/next/dist/compiled/cross-spawn/package.json +1 -0
  427. qalita/_frontend/node_modules/next/dist/compiled/debug/index.js +1 -0
  428. qalita/_frontend/node_modules/next/dist/compiled/debug/package.json +1 -0
  429. qalita/_frontend/node_modules/next/dist/compiled/edge-runtime/index.js +1 -0
  430. qalita/_frontend/node_modules/next/dist/compiled/edge-runtime/package.json +1 -0
  431. qalita/_frontend/node_modules/next/dist/compiled/find-up/index.js +1 -0
  432. qalita/_frontend/node_modules/next/dist/compiled/find-up/package.json +1 -0
  433. qalita/_frontend/node_modules/next/dist/compiled/fresh/index.js +8 -0
  434. qalita/_frontend/node_modules/next/dist/compiled/fresh/package.json +1 -0
  435. qalita/_frontend/node_modules/next/dist/compiled/http-proxy/index.js +34 -0
  436. qalita/_frontend/node_modules/next/dist/compiled/http-proxy/package.json +1 -0
  437. qalita/_frontend/node_modules/next/dist/compiled/image-detector/detector.js +1 -0
  438. qalita/_frontend/node_modules/next/dist/compiled/image-size/index.js +1 -0
  439. qalita/_frontend/node_modules/next/dist/compiled/image-size/package.json +1 -0
  440. qalita/_frontend/node_modules/next/dist/compiled/ipaddr.js/ipaddr.js +1 -0
  441. qalita/_frontend/node_modules/next/dist/compiled/ipaddr.js/package.json +1 -0
  442. qalita/_frontend/node_modules/next/dist/compiled/is-animated/index.js +1 -0
  443. qalita/_frontend/node_modules/next/dist/compiled/is-animated/package.json +1 -0
  444. qalita/_frontend/node_modules/next/dist/compiled/is-docker/index.js +1 -0
  445. qalita/_frontend/node_modules/next/dist/compiled/is-docker/package.json +1 -0
  446. qalita/_frontend/node_modules/next/dist/compiled/is-wsl/index.js +1 -0
  447. qalita/_frontend/node_modules/next/dist/compiled/is-wsl/package.json +1 -0
  448. qalita/_frontend/node_modules/next/dist/compiled/jsonwebtoken/index.js +11 -0
  449. qalita/_frontend/node_modules/next/dist/compiled/jsonwebtoken/package.json +1 -0
  450. qalita/_frontend/node_modules/next/dist/compiled/nanoid/index.cjs +1 -0
  451. qalita/_frontend/node_modules/next/dist/compiled/nanoid/package.json +1 -0
  452. qalita/_frontend/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +24 -0
  453. qalita/_frontend/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +24 -0
  454. qalita/_frontend/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +6 -0
  455. qalita/_frontend/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +20 -0
  456. qalita/_frontend/node_modules/next/dist/compiled/p-limit/index.js +1 -0
  457. qalita/_frontend/node_modules/next/dist/compiled/p-limit/package.json +1 -0
  458. qalita/_frontend/node_modules/next/dist/compiled/p-queue/index.js +1 -0
  459. qalita/_frontend/node_modules/next/dist/compiled/p-queue/package.json +1 -0
  460. qalita/_frontend/node_modules/next/dist/compiled/path-browserify/index.js +1 -0
  461. qalita/_frontend/node_modules/next/dist/compiled/path-browserify/package.json +1 -0
  462. qalita/_frontend/node_modules/next/dist/compiled/path-to-regexp/index.js +1 -0
  463. qalita/_frontend/node_modules/next/dist/compiled/path-to-regexp/package.json +1 -0
  464. qalita/_frontend/node_modules/next/dist/compiled/picomatch/index.js +1 -0
  465. qalita/_frontend/node_modules/next/dist/compiled/picomatch/package.json +1 -0
  466. qalita/_frontend/node_modules/next/dist/compiled/react-is/cjs/react-is.development.js +133 -0
  467. qalita/_frontend/node_modules/next/dist/compiled/react-is/cjs/react-is.production.js +130 -0
  468. qalita/_frontend/node_modules/next/dist/compiled/react-is/index.js +7 -0
  469. qalita/_frontend/node_modules/next/dist/compiled/react-is/package.json +26 -0
  470. qalita/_frontend/node_modules/next/dist/compiled/regenerator-runtime/package.json +19 -0
  471. qalita/_frontend/node_modules/next/dist/compiled/regenerator-runtime/runtime.js +729 -0
  472. qalita/_frontend/node_modules/next/dist/compiled/semver/index.js +1 -0
  473. qalita/_frontend/node_modules/next/dist/compiled/semver/package.json +1 -0
  474. qalita/_frontend/node_modules/next/dist/compiled/send/index.js +70 -0
  475. qalita/_frontend/node_modules/next/dist/compiled/send/package.json +1 -0
  476. qalita/_frontend/node_modules/next/dist/compiled/source-map/package.json +1 -0
  477. qalita/_frontend/node_modules/next/dist/compiled/source-map/source-map.js +1 -0
  478. qalita/_frontend/node_modules/next/dist/compiled/stacktrace-parser/package.json +1 -0
  479. qalita/_frontend/node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js +1 -0
  480. qalita/_frontend/node_modules/next/dist/compiled/string-hash/index.js +1 -0
  481. qalita/_frontend/node_modules/next/dist/compiled/string-hash/package.json +1 -0
  482. qalita/_frontend/node_modules/next/dist/compiled/strip-ansi/index.js +1 -0
  483. qalita/_frontend/node_modules/next/dist/compiled/strip-ansi/package.json +1 -0
  484. qalita/_frontend/node_modules/next/dist/compiled/superstruct/index.cjs +1 -0
  485. qalita/_frontend/node_modules/next/dist/compiled/superstruct/package.json +1 -0
  486. qalita/_frontend/node_modules/next/dist/compiled/tar/index.js +1 -0
  487. qalita/_frontend/node_modules/next/dist/compiled/tar/package.json +1 -0
  488. qalita/_frontend/node_modules/next/dist/compiled/text-table/index.js +1 -0
  489. qalita/_frontend/node_modules/next/dist/compiled/text-table/package.json +1 -0
  490. qalita/_frontend/node_modules/next/dist/compiled/watchpack/package.json +1 -0
  491. qalita/_frontend/node_modules/next/dist/compiled/watchpack/watchpack.js +1 -0
  492. qalita/_frontend/node_modules/next/dist/compiled/ws/index.js +1 -0
  493. qalita/_frontend/node_modules/next/dist/compiled/ws/package.json +1 -0
  494. qalita/_frontend/node_modules/next/dist/compiled/zod/index.cjs +1 -0
  495. qalita/_frontend/node_modules/next/dist/compiled/zod/package.json +1 -0
  496. qalita/_frontend/node_modules/next/dist/compiled/zod-validation-error/index.js +1 -0
  497. qalita/_frontend/node_modules/next/dist/compiled/zod-validation-error/package.json +1 -0
  498. qalita/_frontend/node_modules/next/dist/experimental/testmode/context.js +57 -0
  499. qalita/_frontend/node_modules/next/dist/experimental/testmode/fetch.js +142 -0
  500. qalita/_frontend/node_modules/next/dist/experimental/testmode/httpget.js +26 -0
  501. qalita/_frontend/node_modules/next/dist/experimental/testmode/server-edge.js +32 -0
  502. qalita/_frontend/node_modules/next/dist/experimental/testmode/server.js +62 -0
  503. qalita/_frontend/node_modules/next/dist/export/helpers/create-incremental-cache.js +61 -0
  504. qalita/_frontend/node_modules/next/dist/lib/batcher.js +65 -0
  505. qalita/_frontend/node_modules/next/dist/lib/build-custom-route.js +46 -0
  506. qalita/_frontend/node_modules/next/dist/lib/bundler.js +97 -0
  507. qalita/_frontend/node_modules/next/dist/lib/client-and-server-references.js +54 -0
  508. qalita/_frontend/node_modules/next/dist/lib/coalesced-function.js +39 -0
  509. qalita/_frontend/node_modules/next/dist/lib/compile-error.js +14 -0
  510. qalita/_frontend/node_modules/next/dist/lib/constants.js +410 -0
  511. qalita/_frontend/node_modules/next/dist/lib/create-client-router-filter.js +67 -0
  512. qalita/_frontend/node_modules/next/dist/lib/detached-promise.js +32 -0
  513. qalita/_frontend/node_modules/next/dist/lib/detect-typo.js +51 -0
  514. qalita/_frontend/node_modules/next/dist/lib/download-swc.js +183 -0
  515. qalita/_frontend/node_modules/next/dist/lib/error-telemetry-utils.js +42 -0
  516. qalita/_frontend/node_modules/next/dist/lib/fallback.js +100 -0
  517. qalita/_frontend/node_modules/next/dist/lib/fatal-error.js +14 -0
  518. qalita/_frontend/node_modules/next/dist/lib/file-exists.js +53 -0
  519. qalita/_frontend/node_modules/next/dist/lib/find-config.js +102 -0
  520. qalita/_frontend/node_modules/next/dist/lib/find-pages-dir.js +65 -0
  521. qalita/_frontend/node_modules/next/dist/lib/find-root.js +122 -0
  522. qalita/_frontend/node_modules/next/dist/lib/format-cli-help-output.js +84 -0
  523. qalita/_frontend/node_modules/next/dist/lib/format-dynamic-import-path.js +24 -0
  524. qalita/_frontend/node_modules/next/dist/lib/format-server-error.js +74 -0
  525. qalita/_frontend/node_modules/next/dist/lib/framework/boundary-components.js +62 -0
  526. qalita/_frontend/node_modules/next/dist/lib/framework/boundary-constants.js +36 -0
  527. qalita/_frontend/node_modules/next/dist/lib/fs/rename.js +87 -0
  528. qalita/_frontend/node_modules/next/dist/lib/fs/write-atomic.js +28 -0
  529. qalita/_frontend/node_modules/next/dist/lib/generate-interception-routes-rewrites.js +70 -0
  530. qalita/_frontend/node_modules/next/dist/lib/get-files-in-dir.js +33 -0
  531. qalita/_frontend/node_modules/next/dist/lib/get-network-host.js +44 -0
  532. qalita/_frontend/node_modules/next/dist/lib/get-package-version.js +118 -0
  533. qalita/_frontend/node_modules/next/dist/lib/get-project-dir.js +51 -0
  534. qalita/_frontend/node_modules/next/dist/lib/has-necessary-dependencies.js +49 -0
  535. qalita/_frontend/node_modules/next/dist/lib/helpers/get-cache-directory.js +66 -0
  536. qalita/_frontend/node_modules/next/dist/lib/helpers/get-npx-command.js +29 -0
  537. qalita/_frontend/node_modules/next/dist/lib/helpers/get-online.js +50 -0
  538. qalita/_frontend/node_modules/next/dist/lib/helpers/get-pkg-manager.js +63 -0
  539. qalita/_frontend/node_modules/next/dist/lib/helpers/get-registry.js +45 -0
  540. qalita/_frontend/node_modules/next/dist/lib/helpers/get-reserved-port.js +116 -0
  541. qalita/_frontend/node_modules/next/dist/lib/helpers/install.js +83 -0
  542. qalita/_frontend/node_modules/next/dist/lib/import-next-warning.js +50 -0
  543. qalita/_frontend/node_modules/next/dist/lib/inline-static-env.js +112 -0
  544. qalita/_frontend/node_modules/next/dist/lib/install-dependencies.js +40 -0
  545. qalita/_frontend/node_modules/next/dist/lib/interop-default.js +15 -0
  546. qalita/_frontend/node_modules/next/dist/lib/is-api-route.js +15 -0
  547. qalita/_frontend/node_modules/next/dist/lib/is-app-page-route.js +15 -0
  548. qalita/_frontend/node_modules/next/dist/lib/is-app-route-route.js +15 -0
  549. qalita/_frontend/node_modules/next/dist/lib/is-edge-runtime.js +16 -0
  550. qalita/_frontend/node_modules/next/dist/lib/is-error.js +78 -0
  551. qalita/_frontend/node_modules/next/dist/lib/is-internal-component.js +36 -0
  552. qalita/_frontend/node_modules/next/dist/lib/is-serializable-props.js +106 -0
  553. qalita/_frontend/node_modules/next/dist/lib/load-custom-routes.js +550 -0
  554. qalita/_frontend/node_modules/next/dist/lib/memory/gc-observer.js +53 -0
  555. qalita/_frontend/node_modules/next/dist/lib/memory/shutdown.js +29 -0
  556. qalita/_frontend/node_modules/next/dist/lib/memory/startup.js +47 -0
  557. qalita/_frontend/node_modules/next/dist/lib/memory/trace.js +109 -0
  558. qalita/_frontend/node_modules/next/dist/lib/metadata/constants.js +40 -0
  559. qalita/_frontend/node_modules/next/dist/lib/metadata/default-metadata.js +82 -0
  560. qalita/_frontend/node_modules/next/dist/lib/metadata/generate/alternate.js +55 -0
  561. qalita/_frontend/node_modules/next/dist/lib/metadata/generate/basic.js +307 -0
  562. qalita/_frontend/node_modules/next/dist/lib/metadata/generate/icon-mark.js +22 -0
  563. qalita/_frontend/node_modules/next/dist/lib/metadata/generate/icons.js +64 -0
  564. qalita/_frontend/node_modules/next/dist/lib/metadata/generate/meta.js +123 -0
  565. qalita/_frontend/node_modules/next/dist/lib/metadata/generate/opengraph.js +478 -0
  566. qalita/_frontend/node_modules/next/dist/lib/metadata/generate/utils.js +52 -0
  567. qalita/_frontend/node_modules/next/dist/lib/metadata/get-metadata-route.js +114 -0
  568. qalita/_frontend/node_modules/next/dist/lib/metadata/is-metadata-route.js +221 -0
  569. qalita/_frontend/node_modules/next/dist/lib/metadata/metadata-context.js +18 -0
  570. qalita/_frontend/node_modules/next/dist/lib/metadata/metadata.js +237 -0
  571. qalita/_frontend/node_modules/next/dist/lib/metadata/resolve-metadata.js +859 -0
  572. qalita/_frontend/node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js +232 -0
  573. qalita/_frontend/node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js +56 -0
  574. qalita/_frontend/node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js +199 -0
  575. qalita/_frontend/node_modules/next/dist/lib/metadata/resolvers/resolve-title.js +40 -0
  576. qalita/_frontend/node_modules/next/dist/lib/metadata/resolvers/resolve-url.js +135 -0
  577. qalita/_frontend/node_modules/next/dist/lib/metadata/types/alternative-urls-types.js +7 -0
  578. qalita/_frontend/node_modules/next/dist/lib/metadata/types/extra-types.js +9 -0
  579. qalita/_frontend/node_modules/next/dist/lib/metadata/types/icons.js +6 -0
  580. qalita/_frontend/node_modules/next/dist/lib/metadata/types/manifest-types.js +6 -0
  581. qalita/_frontend/node_modules/next/dist/lib/metadata/types/metadata-interface.js +18 -0
  582. qalita/_frontend/node_modules/next/dist/lib/metadata/types/metadata-types.js +10 -0
  583. qalita/_frontend/node_modules/next/dist/lib/metadata/types/opengraph-types.js +6 -0
  584. qalita/_frontend/node_modules/next/dist/lib/metadata/types/resolvers.js +6 -0
  585. qalita/_frontend/node_modules/next/dist/lib/metadata/types/twitter-types.js +7 -0
  586. qalita/_frontend/node_modules/next/dist/lib/mime-type.js +20 -0
  587. qalita/_frontend/node_modules/next/dist/lib/mkcert.js +204 -0
  588. qalita/_frontend/node_modules/next/dist/lib/multi-file-writer.js +75 -0
  589. qalita/_frontend/node_modules/next/dist/lib/needs-experimental-react.js +16 -0
  590. qalita/_frontend/node_modules/next/dist/lib/non-nullable.js +15 -0
  591. qalita/_frontend/node_modules/next/dist/lib/normalize-path.js +21 -0
  592. qalita/_frontend/node_modules/next/dist/lib/oxford-comma-list.js +15 -0
  593. qalita/_frontend/node_modules/next/dist/lib/page-types.js +18 -0
  594. qalita/_frontend/node_modules/next/dist/lib/patch-incorrect-lockfile.js +185 -0
  595. qalita/_frontend/node_modules/next/dist/lib/pick.js +19 -0
  596. qalita/_frontend/node_modules/next/dist/lib/picocolors.js +177 -0
  597. qalita/_frontend/node_modules/next/dist/lib/pretty-bytes.js +74 -0
  598. qalita/_frontend/node_modules/next/dist/lib/realpath.js +20 -0
  599. qalita/_frontend/node_modules/next/dist/lib/recursive-copy.js +76 -0
  600. qalita/_frontend/node_modules/next/dist/lib/recursive-delete.js +137 -0
  601. qalita/_frontend/node_modules/next/dist/lib/recursive-readdir.js +124 -0
  602. qalita/_frontend/node_modules/next/dist/lib/redirect-status.js +46 -0
  603. qalita/_frontend/node_modules/next/dist/lib/require-instrumentation-client.js +26 -0
  604. qalita/_frontend/node_modules/next/dist/lib/resolve-build-paths.js +181 -0
  605. qalita/_frontend/node_modules/next/dist/lib/resolve-from.js +65 -0
  606. qalita/_frontend/node_modules/next/dist/lib/route-pattern-normalizer.js +107 -0
  607. qalita/_frontend/node_modules/next/dist/lib/scheduler.js +64 -0
  608. qalita/_frontend/node_modules/next/dist/lib/semver-noop.js +18 -0
  609. qalita/_frontend/node_modules/next/dist/lib/setup-exception-listeners.js +11 -0
  610. qalita/_frontend/node_modules/next/dist/lib/static-env.js +92 -0
  611. qalita/_frontend/node_modules/next/dist/lib/try-to-parse-path.js +68 -0
  612. qalita/_frontend/node_modules/next/dist/lib/turbopack-warning.js +188 -0
  613. qalita/_frontend/node_modules/next/dist/lib/typescript/diagnosticFormatter.js +240 -0
  614. qalita/_frontend/node_modules/next/dist/lib/typescript/getTypeScriptConfiguration.js +73 -0
  615. qalita/_frontend/node_modules/next/dist/lib/typescript/getTypeScriptIntent.js +52 -0
  616. qalita/_frontend/node_modules/next/dist/lib/typescript/missingDependencyError.js +27 -0
  617. qalita/_frontend/node_modules/next/dist/lib/typescript/runTypeCheck.js +95 -0
  618. qalita/_frontend/node_modules/next/dist/lib/typescript/writeAppTypeDeclarations.js +65 -0
  619. qalita/_frontend/node_modules/next/dist/lib/typescript/writeConfigurationDefaults.js +405 -0
  620. qalita/_frontend/node_modules/next/dist/lib/url.js +75 -0
  621. qalita/_frontend/node_modules/next/dist/lib/verify-partytown-setup.js +115 -0
  622. qalita/_frontend/node_modules/next/dist/lib/verify-root-layout.js +165 -0
  623. qalita/_frontend/node_modules/next/dist/lib/verify-typescript-setup.js +170 -0
  624. qalita/_frontend/node_modules/next/dist/lib/wait.js +19 -0
  625. qalita/_frontend/node_modules/next/dist/lib/with-promise-cache.js +24 -0
  626. qalita/_frontend/node_modules/next/dist/lib/worker.js +215 -0
  627. qalita/_frontend/node_modules/next/dist/next-devtools/server/shared.js +61 -0
  628. qalita/_frontend/node_modules/next/dist/server/ReactDOMServerPages.js +16 -0
  629. qalita/_frontend/node_modules/next/dist/server/accept-header.js +132 -0
  630. qalita/_frontend/node_modules/next/dist/server/after/after-context.js +140 -0
  631. qalita/_frontend/node_modules/next/dist/server/after/after.js +26 -0
  632. qalita/_frontend/node_modules/next/dist/server/after/awaiter.js +74 -0
  633. qalita/_frontend/node_modules/next/dist/server/after/builtin-request-context.js +38 -0
  634. qalita/_frontend/node_modules/next/dist/server/after/index.js +21 -0
  635. qalita/_frontend/node_modules/next/dist/server/after/run-with-after.js +35 -0
  636. qalita/_frontend/node_modules/next/dist/server/api-utils/get-cookie-parser.js +22 -0
  637. qalita/_frontend/node_modules/next/dist/server/api-utils/index.js +201 -0
  638. qalita/_frontend/node_modules/next/dist/server/api-utils/node/api-resolver.js +395 -0
  639. qalita/_frontend/node_modules/next/dist/server/api-utils/node/parse-body.js +79 -0
  640. qalita/_frontend/node_modules/next/dist/server/api-utils/node/try-get-preview-data.js +86 -0
  641. qalita/_frontend/node_modules/next/dist/server/api-utils/web.js +17 -0
  642. qalita/_frontend/node_modules/next/dist/server/app-render/action-async-storage-instance.js +14 -0
  643. qalita/_frontend/node_modules/next/dist/server/app-render/action-async-storage.external.js +13 -0
  644. qalita/_frontend/node_modules/next/dist/server/app-render/action-handler.js +916 -0
  645. qalita/_frontend/node_modules/next/dist/server/app-render/action-utils.js +90 -0
  646. qalita/_frontend/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js +14 -0
  647. qalita/_frontend/node_modules/next/dist/server/app-render/after-task-async-storage.external.js +13 -0
  648. qalita/_frontend/node_modules/next/dist/server/app-render/app-render-prerender-utils.js +228 -0
  649. qalita/_frontend/node_modules/next/dist/server/app-render/app-render-render-utils.js +91 -0
  650. qalita/_frontend/node_modules/next/dist/server/app-render/app-render.js +3470 -0
  651. qalita/_frontend/node_modules/next/dist/server/app-render/async-local-storage.js +76 -0
  652. qalita/_frontend/node_modules/next/dist/server/app-render/cache-signal.js +181 -0
  653. qalita/_frontend/node_modules/next/dist/server/app-render/collect-segment-data.js +270 -0
  654. qalita/_frontend/node_modules/next/dist/server/app-render/console-async-storage-instance.js +14 -0
  655. qalita/_frontend/node_modules/next/dist/server/app-render/console-async-storage.external.js +13 -0
  656. qalita/_frontend/node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js +33 -0
  657. qalita/_frontend/node_modules/next/dist/server/app-render/create-component-tree.js +754 -0
  658. qalita/_frontend/node_modules/next/dist/server/app-render/create-error-handler.js +220 -0
  659. qalita/_frontend/node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js +76 -0
  660. qalita/_frontend/node_modules/next/dist/server/app-render/csrf-protection.js +75 -0
  661. qalita/_frontend/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js +14 -0
  662. qalita/_frontend/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js +13 -0
  663. qalita/_frontend/node_modules/next/dist/server/app-render/dynamic-rendering.js +715 -0
  664. qalita/_frontend/node_modules/next/dist/server/app-render/encryption-utils-server.js +114 -0
  665. qalita/_frontend/node_modules/next/dist/server/app-render/encryption-utils.js +198 -0
  666. qalita/_frontend/node_modules/next/dist/server/app-render/encryption.js +237 -0
  667. qalita/_frontend/node_modules/next/dist/server/app-render/entry-base.js +237 -0
  668. qalita/_frontend/node_modules/next/dist/server/app-render/flight-render-result.js +27 -0
  669. qalita/_frontend/node_modules/next/dist/server/app-render/get-asset-query-string.js +29 -0
  670. qalita/_frontend/node_modules/next/dist/server/app-render/get-css-inlined-link-tags.js +48 -0
  671. qalita/_frontend/node_modules/next/dist/server/app-render/get-layer-assets.js +65 -0
  672. qalita/_frontend/node_modules/next/dist/server/app-render/get-preloadable-fonts.js +39 -0
  673. qalita/_frontend/node_modules/next/dist/server/app-render/get-script-nonce-from-header.js +44 -0
  674. qalita/_frontend/node_modules/next/dist/server/app-render/get-short-dynamic-param-type.js +25 -0
  675. qalita/_frontend/node_modules/next/dist/server/app-render/has-loading-component-in-tree.js +19 -0
  676. qalita/_frontend/node_modules/next/dist/server/app-render/interop-default.js +17 -0
  677. qalita/_frontend/node_modules/next/dist/server/app-render/make-get-server-inserted-html.js +92 -0
  678. qalita/_frontend/node_modules/next/dist/server/app-render/metadata-insertion/create-server-inserted-metadata.js +28 -0
  679. qalita/_frontend/node_modules/next/dist/server/app-render/module-loading/track-dynamic-import.js +57 -0
  680. qalita/_frontend/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js +32 -0
  681. qalita/_frontend/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js +66 -0
  682. qalita/_frontend/node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js +49 -0
  683. qalita/_frontend/node_modules/next/dist/server/app-render/postponed-state.js +156 -0
  684. qalita/_frontend/node_modules/next/dist/server/app-render/prospective-render-utils.js +56 -0
  685. qalita/_frontend/node_modules/next/dist/server/app-render/react-large-shell-error.js +17 -0
  686. qalita/_frontend/node_modules/next/dist/server/app-render/react-server.node.js +39 -0
  687. qalita/_frontend/node_modules/next/dist/server/app-render/render-css-resource.js +52 -0
  688. qalita/_frontend/node_modules/next/dist/server/app-render/required-scripts.js +76 -0
  689. qalita/_frontend/node_modules/next/dist/server/app-render/rsc/postpone.js +18 -0
  690. qalita/_frontend/node_modules/next/dist/server/app-render/rsc/preloads.js +74 -0
  691. qalita/_frontend/node_modules/next/dist/server/app-render/rsc/taint.js +79 -0
  692. qalita/_frontend/node_modules/next/dist/server/app-render/segment-explorer-path.js +103 -0
  693. qalita/_frontend/node_modules/next/dist/server/app-render/server-inserted-html.js +77 -0
  694. qalita/_frontend/node_modules/next/dist/server/app-render/staged-rendering.js +127 -0
  695. qalita/_frontend/node_modules/next/dist/server/app-render/staged-validation.js +32 -0
  696. qalita/_frontend/node_modules/next/dist/server/app-render/strip-flight-headers.js +18 -0
  697. qalita/_frontend/node_modules/next/dist/server/app-render/types.js +59 -0
  698. qalita/_frontend/node_modules/next/dist/server/app-render/use-flight-response.js +165 -0
  699. qalita/_frontend/node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js +185 -0
  700. qalita/_frontend/node_modules/next/dist/server/app-render/work-async-storage-instance.js +14 -0
  701. qalita/_frontend/node_modules/next/dist/server/app-render/work-async-storage.external.js +13 -0
  702. qalita/_frontend/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js +14 -0
  703. qalita/_frontend/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js +252 -0
  704. qalita/_frontend/node_modules/next/dist/server/async-storage/draft-mode-provider.js +62 -0
  705. qalita/_frontend/node_modules/next/dist/server/async-storage/request-store.js +144 -0
  706. qalita/_frontend/node_modules/next/dist/server/async-storage/with-store.js +6 -0
  707. qalita/_frontend/node_modules/next/dist/server/async-storage/work-store.js +93 -0
  708. qalita/_frontend/node_modules/next/dist/server/base-http/helpers.js +36 -0
  709. qalita/_frontend/node_modules/next/dist/server/base-http/index.js +54 -0
  710. qalita/_frontend/node_modules/next/dist/server/base-http/node.js +147 -0
  711. qalita/_frontend/node_modules/next/dist/server/base-http/web.js +124 -0
  712. qalita/_frontend/node_modules/next/dist/server/base-server.js +1833 -0
  713. qalita/_frontend/node_modules/next/dist/server/body-streams.js +114 -0
  714. qalita/_frontend/node_modules/next/dist/server/cache-dir.js +26 -0
  715. qalita/_frontend/node_modules/next/dist/server/ci-info.js +41 -0
  716. qalita/_frontend/node_modules/next/dist/server/client-component-renderer-logger.js +70 -0
  717. qalita/_frontend/node_modules/next/dist/server/config-schema.js +623 -0
  718. qalita/_frontend/node_modules/next/dist/server/config-shared.js +224 -0
  719. qalita/_frontend/node_modules/next/dist/server/config-utils.js +185 -0
  720. qalita/_frontend/node_modules/next/dist/server/config.js +1461 -0
  721. qalita/_frontend/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js +96 -0
  722. qalita/_frontend/node_modules/next/dist/server/crypto-utils.js +70 -0
  723. qalita/_frontend/node_modules/next/dist/server/dev/browser-logs/file-logger.js +183 -0
  724. qalita/_frontend/node_modules/next/dist/server/dev/browser-logs/receive-logs.js +512 -0
  725. qalita/_frontend/node_modules/next/dist/server/dev/browser-logs/source-map.js +225 -0
  726. qalita/_frontend/node_modules/next/dist/server/dev/debug-channel.js +87 -0
  727. qalita/_frontend/node_modules/next/dist/server/dev/dev-indicator-server-state.js +15 -0
  728. qalita/_frontend/node_modules/next/dist/server/dev/get-source-map-from-file.js +100 -0
  729. qalita/_frontend/node_modules/next/dist/server/dev/hot-middleware.js +274 -0
  730. qalita/_frontend/node_modules/next/dist/server/dev/hot-reloader-shared-utils.js +56 -0
  731. qalita/_frontend/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +1235 -0
  732. qalita/_frontend/node_modules/next/dist/server/dev/hot-reloader-types.js +57 -0
  733. qalita/_frontend/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1377 -0
  734. qalita/_frontend/node_modules/next/dist/server/dev/log-requests.js +133 -0
  735. qalita/_frontend/node_modules/next/dist/server/dev/messages.js +64 -0
  736. qalita/_frontend/node_modules/next/dist/server/dev/middleware-turbopack.js +393 -0
  737. qalita/_frontend/node_modules/next/dist/server/dev/middleware-webpack.js +473 -0
  738. qalita/_frontend/node_modules/next/dist/server/dev/node-stack-frames.js +72 -0
  739. qalita/_frontend/node_modules/next/dist/server/dev/on-demand-entry-handler.js +704 -0
  740. qalita/_frontend/node_modules/next/dist/server/dev/parse-version-info.js +108 -0
  741. qalita/_frontend/node_modules/next/dist/server/dev/require-cache.js +49 -0
  742. qalita/_frontend/node_modules/next/dist/server/dev/static-paths-worker.js +93 -0
  743. qalita/_frontend/node_modules/next/dist/server/dev/turbopack-utils.js +696 -0
  744. qalita/_frontend/node_modules/next/dist/server/dynamic-rendering-utils.js +86 -0
  745. qalita/_frontend/node_modules/next/dist/server/font-utils.js +43 -0
  746. qalita/_frontend/node_modules/next/dist/server/get-app-route-from-entrypoint.js +30 -0
  747. qalita/_frontend/node_modules/next/dist/server/get-page-files.js +23 -0
  748. qalita/_frontend/node_modules/next/dist/server/get-route-from-entrypoint.js +35 -0
  749. qalita/_frontend/node_modules/next/dist/server/htmlescape.js +37 -0
  750. qalita/_frontend/node_modules/next/dist/server/image-optimizer.js +1067 -0
  751. qalita/_frontend/node_modules/next/dist/server/instrumentation/types.js +6 -0
  752. qalita/_frontend/node_modules/next/dist/server/instrumentation/utils.js +21 -0
  753. qalita/_frontend/node_modules/next/dist/server/internal-utils.js +39 -0
  754. qalita/_frontend/node_modules/next/dist/server/is-private-ip.js +36 -0
  755. qalita/_frontend/node_modules/next/dist/server/lib/app-dir-module.js +59 -0
  756. qalita/_frontend/node_modules/next/dist/server/lib/app-info-log.js +154 -0
  757. qalita/_frontend/node_modules/next/dist/server/lib/async-callback-set.js +29 -0
  758. qalita/_frontend/node_modules/next/dist/server/lib/cache-control.js +22 -0
  759. qalita/_frontend/node_modules/next/dist/server/lib/cache-handlers/default.external.js +18 -0
  760. qalita/_frontend/node_modules/next/dist/server/lib/cache-handlers/default.js +160 -0
  761. qalita/_frontend/node_modules/next/dist/server/lib/cache-handlers/types.js +8 -0
  762. qalita/_frontend/node_modules/next/dist/server/lib/chrome-devtools-workspace.js +116 -0
  763. qalita/_frontend/node_modules/next/dist/server/lib/clone-response.js +77 -0
  764. qalita/_frontend/node_modules/next/dist/server/lib/cpu-profile.js +28 -0
  765. qalita/_frontend/node_modules/next/dist/server/lib/decode-query-path-parameter.js +26 -0
  766. qalita/_frontend/node_modules/next/dist/server/lib/dedupe-fetch.js +163 -0
  767. qalita/_frontend/node_modules/next/dist/server/lib/dev-bundler-service.js +99 -0
  768. qalita/_frontend/node_modules/next/dist/server/lib/etag.js +56 -0
  769. qalita/_frontend/node_modules/next/dist/server/lib/experimental/create-env-definitions.js +48 -0
  770. qalita/_frontend/node_modules/next/dist/server/lib/experimental/ppr.js +47 -0
  771. qalita/_frontend/node_modules/next/dist/server/lib/find-page-file.js +127 -0
  772. qalita/_frontend/node_modules/next/dist/server/lib/fix-mojibake.js +25 -0
  773. qalita/_frontend/node_modules/next/dist/server/lib/format-hostname.js +16 -0
  774. qalita/_frontend/node_modules/next/dist/server/lib/i18n-provider.js +129 -0
  775. qalita/_frontend/node_modules/next/dist/server/lib/implicit-tags.js +77 -0
  776. qalita/_frontend/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +333 -0
  777. qalita/_frontend/node_modules/next/dist/server/lib/incremental-cache/index.js +479 -0
  778. qalita/_frontend/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js +40 -0
  779. qalita/_frontend/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js +73 -0
  780. qalita/_frontend/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js +55 -0
  781. qalita/_frontend/node_modules/next/dist/server/lib/is-ipv6.js +41 -0
  782. qalita/_frontend/node_modules/next/dist/server/lib/lazy-result.js +46 -0
  783. qalita/_frontend/node_modules/next/dist/server/lib/lru-cache.js +177 -0
  784. qalita/_frontend/node_modules/next/dist/server/lib/match-next-data-pathname.js +18 -0
  785. qalita/_frontend/node_modules/next/dist/server/lib/mock-request.js +416 -0
  786. qalita/_frontend/node_modules/next/dist/server/lib/module-loader/module-loader.js +8 -0
  787. qalita/_frontend/node_modules/next/dist/server/lib/module-loader/node-module-loader.js +25 -0
  788. qalita/_frontend/node_modules/next/dist/server/lib/module-loader/route-module-loader.js +26 -0
  789. qalita/_frontend/node_modules/next/dist/server/lib/node-fs-methods.js +28 -0
  790. qalita/_frontend/node_modules/next/dist/server/lib/parse-stack.js +46 -0
  791. qalita/_frontend/node_modules/next/dist/server/lib/patch-fetch.js +945 -0
  792. qalita/_frontend/node_modules/next/dist/server/lib/patch-set-header.js +38 -0
  793. qalita/_frontend/node_modules/next/dist/server/lib/render-server.js +152 -0
  794. qalita/_frontend/node_modules/next/dist/server/lib/router-server.js +658 -0
  795. qalita/_frontend/node_modules/next/dist/server/lib/router-utils/block-cross-site.js +76 -0
  796. qalita/_frontend/node_modules/next/dist/server/lib/router-utils/build-data-route.js +48 -0
  797. qalita/_frontend/node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.js +71 -0
  798. qalita/_frontend/node_modules/next/dist/server/lib/router-utils/cache-life-type-utils.js +211 -0
  799. qalita/_frontend/node_modules/next/dist/server/lib/router-utils/decode-path-params.js +42 -0
  800. qalita/_frontend/node_modules/next/dist/server/lib/router-utils/filesystem.js +595 -0
  801. qalita/_frontend/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js +89 -0
  802. qalita/_frontend/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js +96 -0
  803. qalita/_frontend/node_modules/next/dist/server/lib/router-utils/is-postpone.js +16 -0
  804. qalita/_frontend/node_modules/next/dist/server/lib/router-utils/proxy-request.js +118 -0
  805. qalita/_frontend/node_modules/next/dist/server/lib/router-utils/resolve-routes.js +604 -0
  806. qalita/_frontend/node_modules/next/dist/server/lib/router-utils/route-types-utils.js +286 -0
  807. qalita/_frontend/node_modules/next/dist/server/lib/router-utils/router-server-context.js +26 -0
  808. qalita/_frontend/node_modules/next/dist/server/lib/router-utils/typegen.js +613 -0
  809. qalita/_frontend/node_modules/next/dist/server/lib/router-utils/types.js +6 -0
  810. qalita/_frontend/node_modules/next/dist/server/lib/server-action-request-meta.js +53 -0
  811. qalita/_frontend/node_modules/next/dist/server/lib/server-ipc/utils.js +80 -0
  812. qalita/_frontend/node_modules/next/dist/server/lib/source-maps.js +196 -0
  813. qalita/_frontend/node_modules/next/dist/server/lib/start-server.js +460 -0
  814. qalita/_frontend/node_modules/next/dist/server/lib/streaming-metadata.js +38 -0
  815. qalita/_frontend/node_modules/next/dist/server/lib/to-route.js +37 -0
  816. qalita/_frontend/node_modules/next/dist/server/lib/trace/constants.js +203 -0
  817. qalita/_frontend/node_modules/next/dist/server/lib/trace/tracer.js +266 -0
  818. qalita/_frontend/node_modules/next/dist/server/lib/trace/utils.js +16 -0
  819. qalita/_frontend/node_modules/next/dist/server/lib/types.js +6 -0
  820. qalita/_frontend/node_modules/next/dist/server/lib/utils.js +249 -0
  821. qalita/_frontend/node_modules/next/dist/server/lib/worker-utils.js +36 -0
  822. qalita/_frontend/node_modules/next/dist/server/load-components.js +183 -0
  823. qalita/_frontend/node_modules/next/dist/server/load-default-error-components.js +41 -0
  824. qalita/_frontend/node_modules/next/dist/server/load-manifest.external.js +97 -0
  825. qalita/_frontend/node_modules/next/dist/server/match-bundle.js +25 -0
  826. qalita/_frontend/node_modules/next/dist/server/mcp/get-mcp-middleware.js +49 -0
  827. qalita/_frontend/node_modules/next/dist/server/mcp/get-or-create-mcp-server.js +41 -0
  828. qalita/_frontend/node_modules/next/dist/server/mcp/mcp-telemetry-tracker.js +82 -0
  829. qalita/_frontend/node_modules/next/dist/server/mcp/tools/get-errors.js +107 -0
  830. qalita/_frontend/node_modules/next/dist/server/mcp/tools/get-logs.js +61 -0
  831. qalita/_frontend/node_modules/next/dist/server/mcp/tools/get-page-metadata.js +180 -0
  832. qalita/_frontend/node_modules/next/dist/server/mcp/tools/get-project-metadata.js +55 -0
  833. qalita/_frontend/node_modules/next/dist/server/mcp/tools/get-routes.js +171 -0
  834. qalita/_frontend/node_modules/next/dist/server/mcp/tools/get-server-action-by-id.js +113 -0
  835. qalita/_frontend/node_modules/next/dist/server/mcp/tools/next-instance-error-state.js +31 -0
  836. qalita/_frontend/node_modules/next/dist/server/mcp/tools/utils/browser-communication.js +90 -0
  837. qalita/_frontend/node_modules/next/dist/server/mcp/tools/utils/format-errors.js +147 -0
  838. qalita/_frontend/node_modules/next/dist/server/next-server.js +1458 -0
  839. qalita/_frontend/node_modules/next/dist/server/next-typescript.js +13 -0
  840. qalita/_frontend/node_modules/next/dist/server/next.js +452 -0
  841. qalita/_frontend/node_modules/next/dist/server/node-environment-baseline.js +25 -0
  842. qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/console-dim.external.js +246 -0
  843. qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/console-exit.js +49 -0
  844. qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/console-file.js +56 -0
  845. qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/date.js +52 -0
  846. qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/error-inspect.js +8 -0
  847. qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/global-behaviors.js +33 -0
  848. qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/node-crypto.js +103 -0
  849. qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/random.js +28 -0
  850. qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.js +489 -0
  851. qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/utils.js +129 -0
  852. qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/web-crypto.js +45 -0
  853. qalita/_frontend/node_modules/next/dist/server/node-environment.js +18 -0
  854. qalita/_frontend/node_modules/next/dist/server/node-polyfill-crypto.js +21 -0
  855. qalita/_frontend/node_modules/next/dist/server/normalizers/absolute-filename-normalizer.js +33 -0
  856. qalita/_frontend/node_modules/next/dist/server/normalizers/built/app/app-bundle-path-normalizer.js +54 -0
  857. qalita/_frontend/node_modules/next/dist/server/normalizers/built/app/app-filename-normalizer.js +22 -0
  858. qalita/_frontend/node_modules/next/dist/server/normalizers/built/app/app-page-normalizer.js +40 -0
  859. qalita/_frontend/node_modules/next/dist/server/normalizers/built/app/app-pathname-normalizer.js +55 -0
  860. qalita/_frontend/node_modules/next/dist/server/normalizers/built/app/index.js +42 -0
  861. qalita/_frontend/node_modules/next/dist/server/normalizers/built/pages/index.js +44 -0
  862. qalita/_frontend/node_modules/next/dist/server/normalizers/built/pages/pages-bundle-path-normalizer.js +55 -0
  863. qalita/_frontend/node_modules/next/dist/server/normalizers/built/pages/pages-filename-normalizer.js +22 -0
  864. qalita/_frontend/node_modules/next/dist/server/normalizers/built/pages/pages-page-normalizer.js +19 -0
  865. qalita/_frontend/node_modules/next/dist/server/normalizers/built/pages/pages-pathname-normalizer.js +19 -0
  866. qalita/_frontend/node_modules/next/dist/server/normalizers/locale-route-normalizer.js +26 -0
  867. qalita/_frontend/node_modules/next/dist/server/normalizers/normalizer.js +6 -0
  868. qalita/_frontend/node_modules/next/dist/server/normalizers/normalizers.js +23 -0
  869. qalita/_frontend/node_modules/next/dist/server/normalizers/prefixing-normalizer.js +26 -0
  870. qalita/_frontend/node_modules/next/dist/server/normalizers/request/base-path.js +25 -0
  871. qalita/_frontend/node_modules/next/dist/server/normalizers/request/next-data.js +38 -0
  872. qalita/_frontend/node_modules/next/dist/server/normalizers/request/pathname-normalizer.js +6 -0
  873. qalita/_frontend/node_modules/next/dist/server/normalizers/request/prefetch-rsc.js +31 -0
  874. qalita/_frontend/node_modules/next/dist/server/normalizers/request/prefix.js +39 -0
  875. qalita/_frontend/node_modules/next/dist/server/normalizers/request/rsc.js +19 -0
  876. qalita/_frontend/node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.js +32 -0
  877. qalita/_frontend/node_modules/next/dist/server/normalizers/request/suffix.js +27 -0
  878. qalita/_frontend/node_modules/next/dist/server/normalizers/underscore-normalizer.js +17 -0
  879. qalita/_frontend/node_modules/next/dist/server/normalizers/wrap-normalizer-fn.js +17 -0
  880. qalita/_frontend/node_modules/next/dist/server/og/image-response.js +53 -0
  881. qalita/_frontend/node_modules/next/dist/server/patch-error-inspect.js +433 -0
  882. qalita/_frontend/node_modules/next/dist/server/pipe-readable.js +140 -0
  883. qalita/_frontend/node_modules/next/dist/server/post-process.js +39 -0
  884. qalita/_frontend/node_modules/next/dist/server/render-result.js +195 -0
  885. qalita/_frontend/node_modules/next/dist/server/render.js +1138 -0
  886. qalita/_frontend/node_modules/next/dist/server/request/connection.js +111 -0
  887. qalita/_frontend/node_modules/next/dist/server/request/cookies.js +220 -0
  888. qalita/_frontend/node_modules/next/dist/server/request/draft-mode.js +207 -0
  889. qalita/_frontend/node_modules/next/dist/server/request/fallback-params.js +112 -0
  890. qalita/_frontend/node_modules/next/dist/server/request/headers.js +219 -0
  891. qalita/_frontend/node_modules/next/dist/server/request/params.js +415 -0
  892. qalita/_frontend/node_modules/next/dist/server/request/pathname.js +104 -0
  893. qalita/_frontend/node_modules/next/dist/server/request/root-params.js +157 -0
  894. qalita/_frontend/node_modules/next/dist/server/request/search-params.js +432 -0
  895. qalita/_frontend/node_modules/next/dist/server/request/utils.js +51 -0
  896. qalita/_frontend/node_modules/next/dist/server/request-meta.js +55 -0
  897. qalita/_frontend/node_modules/next/dist/server/require-hook.js +71 -0
  898. qalita/_frontend/node_modules/next/dist/server/require.js +109 -0
  899. qalita/_frontend/node_modules/next/dist/server/response-cache/index.js +211 -0
  900. qalita/_frontend/node_modules/next/dist/server/response-cache/types.js +41 -0
  901. qalita/_frontend/node_modules/next/dist/server/response-cache/utils.js +103 -0
  902. qalita/_frontend/node_modules/next/dist/server/response-cache/web.js +101 -0
  903. qalita/_frontend/node_modules/next/dist/server/resume-data-cache/cache-store.js +84 -0
  904. qalita/_frontend/node_modules/next/dist/server/resume-data-cache/resume-data-cache.js +96 -0
  905. qalita/_frontend/node_modules/next/dist/server/revalidation-utils.js +152 -0
  906. qalita/_frontend/node_modules/next/dist/server/route-definitions/app-page-route-definition.js +16 -0
  907. qalita/_frontend/node_modules/next/dist/server/route-definitions/app-route-route-definition.js +6 -0
  908. qalita/_frontend/node_modules/next/dist/server/route-definitions/locale-route-definition.js +6 -0
  909. qalita/_frontend/node_modules/next/dist/server/route-definitions/pages-api-route-definition.js +6 -0
  910. qalita/_frontend/node_modules/next/dist/server/route-definitions/pages-route-definition.js +6 -0
  911. qalita/_frontend/node_modules/next/dist/server/route-definitions/route-definition.js +6 -0
  912. qalita/_frontend/node_modules/next/dist/server/route-kind.js +32 -0
  913. qalita/_frontend/node_modules/next/dist/server/route-matcher-managers/default-route-matcher-manager.js +239 -0
  914. qalita/_frontend/node_modules/next/dist/server/route-matcher-managers/dev-route-matcher-manager.js +120 -0
  915. qalita/_frontend/node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.js +6 -0
  916. qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/app-page-route-matcher-provider.js +55 -0
  917. qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/app-route-route-matcher-provider.js +43 -0
  918. qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-page-route-matcher-provider.js +90 -0
  919. qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-route-route-matcher-provider.js +112 -0
  920. qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-api-route-matcher-provider.js +77 -0
  921. qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-route-matcher-provider.js +77 -0
  922. qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/dev/file-cache-route-matcher-provider.js +28 -0
  923. qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/batched-file-reader.js +106 -0
  924. qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/default-file-reader.js +42 -0
  925. qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/file-reader.js +6 -0
  926. qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/helpers/cached-route-matcher-provider.js +30 -0
  927. qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/manifest-loader.js +6 -0
  928. qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/node-manifest-loader.js +34 -0
  929. qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js +20 -0
  930. qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/manifest-route-matcher-provider.js +21 -0
  931. qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/pages-api-route-matcher-provider.js +55 -0
  932. qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/pages-route-matcher-provider.js +64 -0
  933. qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.js +6 -0
  934. qalita/_frontend/node_modules/next/dist/server/route-matchers/app-page-route-matcher.js +18 -0
  935. qalita/_frontend/node_modules/next/dist/server/route-matchers/app-route-route-matcher.js +15 -0
  936. qalita/_frontend/node_modules/next/dist/server/route-matchers/locale-route-matcher.js +68 -0
  937. qalita/_frontend/node_modules/next/dist/server/route-matchers/pages-api-route-matcher.js +30 -0
  938. qalita/_frontend/node_modules/next/dist/server/route-matchers/pages-route-matcher.js +30 -0
  939. qalita/_frontend/node_modules/next/dist/server/route-matchers/route-matcher.js +54 -0
  940. qalita/_frontend/node_modules/next/dist/server/route-matches/app-page-route-match.js +6 -0
  941. qalita/_frontend/node_modules/next/dist/server/route-matches/app-route-route-match.js +6 -0
  942. qalita/_frontend/node_modules/next/dist/server/route-matches/locale-route-match.js +6 -0
  943. qalita/_frontend/node_modules/next/dist/server/route-matches/pages-api-route-match.js +16 -0
  944. qalita/_frontend/node_modules/next/dist/server/route-matches/pages-route-match.js +6 -0
  945. qalita/_frontend/node_modules/next/dist/server/route-matches/route-match.js +6 -0
  946. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.js +48 -0
  947. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/module.compiled.js +36 -0
  948. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/module.js +132 -0
  949. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/module.render.js +24 -0
  950. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js +4 -0
  951. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.js +87 -0
  952. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/head-manager-context.js +4 -0
  953. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js +4 -0
  954. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js +4 -0
  955. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js +4 -0
  956. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js +4 -0
  957. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.js +140 -0
  958. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-compiler-runtime.js +4 -0
  959. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js +4 -0
  960. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js +4 -0
  961. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js +4 -0
  962. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-server.js +4 -0
  963. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-static.js +4 -0
  964. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js +4 -0
  965. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js +4 -0
  966. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js +4 -0
  967. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.js +125 -0
  968. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-compiler-runtime.js +4 -0
  969. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom-server.js +4 -0
  970. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js +4 -0
  971. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js +4 -0
  972. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js +4 -0
  973. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.js +4 -0
  974. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js +4 -0
  975. qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js +4 -0
  976. qalita/_frontend/node_modules/next/dist/server/route-modules/app-route/helpers/auto-implement-methods.js +85 -0
  977. qalita/_frontend/node_modules/next/dist/server/route-modules/app-route/helpers/clean-url.js +24 -0
  978. qalita/_frontend/node_modules/next/dist/server/route-modules/app-route/helpers/get-pathname-from-absolute-path.js +29 -0
  979. qalita/_frontend/node_modules/next/dist/server/route-modules/app-route/helpers/is-static-gen-enabled.js +15 -0
  980. qalita/_frontend/node_modules/next/dist/server/route-modules/app-route/helpers/parsed-url-query-to-params.js +20 -0
  981. qalita/_frontend/node_modules/next/dist/server/route-modules/app-route/module.compiled.js +36 -0
  982. qalita/_frontend/node_modules/next/dist/server/route-modules/app-route/module.js +889 -0
  983. qalita/_frontend/node_modules/next/dist/server/route-modules/app-route/shared-modules.js +56 -0
  984. qalita/_frontend/node_modules/next/dist/server/route-modules/checks.js +45 -0
  985. qalita/_frontend/node_modules/next/dist/server/route-modules/pages/builtin/_error.js +100 -0
  986. qalita/_frontend/node_modules/next/dist/server/route-modules/pages/module.compiled.js +20 -0
  987. qalita/_frontend/node_modules/next/dist/server/route-modules/pages/module.js +92 -0
  988. qalita/_frontend/node_modules/next/dist/server/route-modules/pages/module.render.js +24 -0
  989. qalita/_frontend/node_modules/next/dist/server/route-modules/pages/pages-handler.js +519 -0
  990. qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/app-router-context.js +4 -0
  991. qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.js +102 -0
  992. qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js +4 -0
  993. qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/hooks-client-context.js +4 -0
  994. qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js +4 -0
  995. qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/image-config-context.js +4 -0
  996. qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable-context.js +4 -0
  997. qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable.js +4 -0
  998. qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/router-context.js +4 -0
  999. qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/server-inserted-html.js +4 -0
  1000. qalita/_frontend/node_modules/next/dist/server/route-modules/pages-api/module.compiled.js +20 -0
  1001. qalita/_frontend/node_modules/next/dist/server/route-modules/pages-api/module.js +58 -0
  1002. qalita/_frontend/node_modules/next/dist/server/route-modules/route-module.js +533 -0
  1003. qalita/_frontend/node_modules/next/dist/server/runtime-reacts.external.js +46 -0
  1004. qalita/_frontend/node_modules/next/dist/server/send-payload.js +88 -0
  1005. qalita/_frontend/node_modules/next/dist/server/send-response.js +70 -0
  1006. qalita/_frontend/node_modules/next/dist/server/serve-static.js +66 -0
  1007. qalita/_frontend/node_modules/next/dist/server/server-route-utils.js +30 -0
  1008. qalita/_frontend/node_modules/next/dist/server/server-utils.js +323 -0
  1009. qalita/_frontend/node_modules/next/dist/server/setup-http-agent-env.js +31 -0
  1010. qalita/_frontend/node_modules/next/dist/server/stream-utils/encoded-tags.js +114 -0
  1011. qalita/_frontend/node_modules/next/dist/server/stream-utils/node-web-streams-helper.js +713 -0
  1012. qalita/_frontend/node_modules/next/dist/server/stream-utils/uint8array-helpers.js +69 -0
  1013. qalita/_frontend/node_modules/next/dist/server/typescript/constant.js +97 -0
  1014. qalita/_frontend/node_modules/next/dist/server/typescript/index.js +199 -0
  1015. qalita/_frontend/node_modules/next/dist/server/typescript/rules/client-boundary.js +97 -0
  1016. qalita/_frontend/node_modules/next/dist/server/typescript/rules/config.js +457 -0
  1017. qalita/_frontend/node_modules/next/dist/server/typescript/rules/entry.js +149 -0
  1018. qalita/_frontend/node_modules/next/dist/server/typescript/rules/error.js +38 -0
  1019. qalita/_frontend/node_modules/next/dist/server/typescript/rules/metadata.js +234 -0
  1020. qalita/_frontend/node_modules/next/dist/server/typescript/rules/server-boundary.js +115 -0
  1021. qalita/_frontend/node_modules/next/dist/server/typescript/rules/server.js +79 -0
  1022. qalita/_frontend/node_modules/next/dist/server/typescript/utils.js +212 -0
  1023. qalita/_frontend/node_modules/next/dist/server/use-cache/cache-life.js +161 -0
  1024. qalita/_frontend/node_modules/next/dist/server/use-cache/cache-tag.js +50 -0
  1025. qalita/_frontend/node_modules/next/dist/server/use-cache/constants.js +28 -0
  1026. qalita/_frontend/node_modules/next/dist/server/use-cache/handlers.js +121 -0
  1027. qalita/_frontend/node_modules/next/dist/server/use-cache/use-cache-errors.js +36 -0
  1028. qalita/_frontend/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +1291 -0
  1029. qalita/_frontend/node_modules/next/dist/server/utils.js +73 -0
  1030. qalita/_frontend/node_modules/next/dist/server/web/adapter.js +388 -0
  1031. qalita/_frontend/node_modules/next/dist/server/web/edge-route-module-wrapper.js +120 -0
  1032. qalita/_frontend/node_modules/next/dist/server/web/error.js +54 -0
  1033. qalita/_frontend/node_modules/next/dist/server/web/exports/index.js +56 -0
  1034. qalita/_frontend/node_modules/next/dist/server/web/get-edge-preview-props.js +23 -0
  1035. qalita/_frontend/node_modules/next/dist/server/web/globals.js +128 -0
  1036. qalita/_frontend/node_modules/next/dist/server/web/http.js +39 -0
  1037. qalita/_frontend/node_modules/next/dist/server/web/internal-edge-wait-until.js +64 -0
  1038. qalita/_frontend/node_modules/next/dist/server/web/next-url.js +195 -0
  1039. qalita/_frontend/node_modules/next/dist/server/web/sandbox/context.js +463 -0
  1040. qalita/_frontend/node_modules/next/dist/server/web/sandbox/fetch-inline-assets.js +35 -0
  1041. qalita/_frontend/node_modules/next/dist/server/web/sandbox/index.js +28 -0
  1042. qalita/_frontend/node_modules/next/dist/server/web/sandbox/resource-managers.js +88 -0
  1043. qalita/_frontend/node_modules/next/dist/server/web/sandbox/sandbox.js +134 -0
  1044. qalita/_frontend/node_modules/next/dist/server/web/spec-extension/adapters/headers.js +192 -0
  1045. qalita/_frontend/node_modules/next/dist/server/web/spec-extension/adapters/next-request.js +142 -0
  1046. qalita/_frontend/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js +30 -0
  1047. qalita/_frontend/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js +210 -0
  1048. qalita/_frontend/node_modules/next/dist/server/web/spec-extension/cookies.js +29 -0
  1049. qalita/_frontend/node_modules/next/dist/server/web/spec-extension/fetch-event.js +98 -0
  1050. qalita/_frontend/node_modules/next/dist/server/web/spec-extension/image-response.js +22 -0
  1051. qalita/_frontend/node_modules/next/dist/server/web/spec-extension/request.js +99 -0
  1052. qalita/_frontend/node_modules/next/dist/server/web/spec-extension/response.js +136 -0
  1053. qalita/_frontend/node_modules/next/dist/server/web/spec-extension/revalidate.js +202 -0
  1054. qalita/_frontend/node_modules/next/dist/server/web/spec-extension/unstable-cache.js +284 -0
  1055. qalita/_frontend/node_modules/next/dist/server/web/spec-extension/unstable-no-store.js +49 -0
  1056. qalita/_frontend/node_modules/next/dist/server/web/spec-extension/url-pattern.js +14 -0
  1057. qalita/_frontend/node_modules/next/dist/server/web/spec-extension/user-agent.js +46 -0
  1058. qalita/_frontend/node_modules/next/dist/server/web/types.js +6 -0
  1059. qalita/_frontend/node_modules/next/dist/server/web/utils.js +151 -0
  1060. qalita/_frontend/node_modules/next/dist/server/web/web-on-close.js +87 -0
  1061. qalita/_frontend/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js +50 -0
  1062. qalita/_frontend/node_modules/next/dist/shared/lib/app-router-types.js +27 -0
  1063. qalita/_frontend/node_modules/next/dist/shared/lib/constants.js +443 -0
  1064. qalita/_frontend/node_modules/next/dist/shared/lib/deep-freeze.js +30 -0
  1065. qalita/_frontend/node_modules/next/dist/shared/lib/dset.js +34 -0
  1066. qalita/_frontend/node_modules/next/dist/shared/lib/encode-uri-path.js +15 -0
  1067. qalita/_frontend/node_modules/next/dist/shared/lib/entry-constants.js +36 -0
  1068. qalita/_frontend/node_modules/next/dist/shared/lib/error-source.js +36 -0
  1069. qalita/_frontend/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +39 -0
  1070. qalita/_frontend/node_modules/next/dist/shared/lib/errors/constants.js +19 -0
  1071. qalita/_frontend/node_modules/next/dist/shared/lib/errors/empty-generate-static-params-error.js +24 -0
  1072. qalita/_frontend/node_modules/next/dist/shared/lib/errors/hard-deprecated-config-error.js +20 -0
  1073. qalita/_frontend/node_modules/next/dist/shared/lib/escape-regexp.js +22 -0
  1074. qalita/_frontend/node_modules/next/dist/shared/lib/get-hostname.js +23 -0
  1075. qalita/_frontend/node_modules/next/dist/shared/lib/hash.js +42 -0
  1076. qalita/_frontend/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js +18 -0
  1077. qalita/_frontend/node_modules/next/dist/shared/lib/head.js +163 -0
  1078. qalita/_frontend/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js +55 -0
  1079. qalita/_frontend/node_modules/next/dist/shared/lib/html-context.shared-runtime.js +40 -0
  1080. qalita/_frontend/node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js +25 -0
  1081. qalita/_frontend/node_modules/next/dist/shared/lib/i18n/get-locale-redirect.js +59 -0
  1082. qalita/_frontend/node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js +54 -0
  1083. qalita/_frontend/node_modules/next/dist/shared/lib/image-blur-svg.js +22 -0
  1084. qalita/_frontend/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js +19 -0
  1085. qalita/_frontend/node_modules/next/dist/shared/lib/image-config.js +74 -0
  1086. qalita/_frontend/node_modules/next/dist/shared/lib/invariant-error.js +18 -0
  1087. qalita/_frontend/node_modules/next/dist/shared/lib/is-internal.js +39 -0
  1088. qalita/_frontend/node_modules/next/dist/shared/lib/is-plain-object.js +42 -0
  1089. qalita/_frontend/node_modules/next/dist/shared/lib/is-thenable.js +20 -0
  1090. qalita/_frontend/node_modules/next/dist/shared/lib/isomorphic/path.js +14 -0
  1091. qalita/_frontend/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js +37 -0
  1092. qalita/_frontend/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js +19 -0
  1093. qalita/_frontend/node_modules/next/dist/shared/lib/loadable.shared-runtime.js +246 -0
  1094. qalita/_frontend/node_modules/next/dist/shared/lib/magic-identifier.js +218 -0
  1095. qalita/_frontend/node_modules/next/dist/shared/lib/match-local-pattern.js +46 -0
  1096. qalita/_frontend/node_modules/next/dist/shared/lib/match-remote-pattern.js +63 -0
  1097. qalita/_frontend/node_modules/next/dist/shared/lib/modern-browserslist-target.js +15 -0
  1098. qalita/_frontend/node_modules/next/dist/shared/lib/no-fallback-error.external.js +18 -0
  1099. qalita/_frontend/node_modules/next/dist/shared/lib/normalized-asset-prefix.js +28 -0
  1100. qalita/_frontend/node_modules/next/dist/shared/lib/page-path/absolute-path-to-page.js +26 -0
  1101. qalita/_frontend/node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js +18 -0
  1102. qalita/_frontend/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js +18 -0
  1103. qalita/_frontend/node_modules/next/dist/shared/lib/page-path/get-page-paths.js +40 -0
  1104. qalita/_frontend/node_modules/next/dist/shared/lib/page-path/normalize-data-path.js +23 -0
  1105. qalita/_frontend/node_modules/next/dist/shared/lib/page-path/normalize-page-path.js +26 -0
  1106. qalita/_frontend/node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js +19 -0
  1107. qalita/_frontend/node_modules/next/dist/shared/lib/page-path/remove-page-path-tail.js +20 -0
  1108. qalita/_frontend/node_modules/next/dist/shared/lib/promise-with-resolvers.js +26 -0
  1109. qalita/_frontend/node_modules/next/dist/shared/lib/router/adapters.js +136 -0
  1110. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/add-locale.js +28 -0
  1111. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js +20 -0
  1112. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js +20 -0
  1113. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/app-paths.js +51 -0
  1114. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js +17 -0
  1115. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js +24 -0
  1116. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js +16 -0
  1117. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js +27 -0
  1118. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/format-url.js +111 -0
  1119. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js +196 -0
  1120. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js +52 -0
  1121. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/get-route-from-asset-path.js +25 -0
  1122. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/get-segment-param.js +90 -0
  1123. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/html-bots.js +17 -0
  1124. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/index.js +30 -0
  1125. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/interception-routes.js +108 -0
  1126. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/is-bot.js +57 -0
  1127. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/is-dynamic.js +26 -0
  1128. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.js +31 -0
  1129. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/parse-loader-tree.js +29 -0
  1130. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/parse-path.js +33 -0
  1131. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js +36 -0
  1132. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/parse-url.js +32 -0
  1133. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js +20 -0
  1134. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/path-match.js +49 -0
  1135. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/prepare-destination.js +292 -0
  1136. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/querystring.js +79 -0
  1137. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/relativize-url.js +40 -0
  1138. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js +39 -0
  1139. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js +21 -0
  1140. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/route-match-utils.js +113 -0
  1141. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/route-matcher.js +45 -0
  1142. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/route-regex.js +256 -0
  1143. qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/sorted-routes.js +244 -0
  1144. qalita/_frontend/node_modules/next/dist/shared/lib/router-context.shared-runtime.js +18 -0
  1145. qalita/_frontend/node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js +73 -0
  1146. qalita/_frontend/node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js +99 -0
  1147. qalita/_frontend/node_modules/next/dist/shared/lib/segment.js +97 -0
  1148. qalita/_frontend/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js +35 -0
  1149. qalita/_frontend/node_modules/next/dist/shared/lib/server-reference-info.js +52 -0
  1150. qalita/_frontend/node_modules/next/dist/shared/lib/side-effect.js +63 -0
  1151. qalita/_frontend/node_modules/next/dist/shared/lib/turbopack/internal-error.js +53 -0
  1152. qalita/_frontend/node_modules/next/dist/shared/lib/turbopack/utils.js +278 -0
  1153. qalita/_frontend/node_modules/next/dist/shared/lib/utils/warn-once.js +22 -0
  1154. qalita/_frontend/node_modules/next/dist/shared/lib/utils.js +207 -0
  1155. qalita/_frontend/node_modules/next/dist/shared/lib/zod.js +101 -0
  1156. qalita/_frontend/node_modules/next/dist/telemetry/anonymous-meta.js +89 -0
  1157. qalita/_frontend/node_modules/next/dist/telemetry/detached-flush.js +56 -0
  1158. qalita/_frontend/node_modules/next/dist/telemetry/events/build.js +163 -0
  1159. qalita/_frontend/node_modules/next/dist/telemetry/events/index.js +41 -0
  1160. qalita/_frontend/node_modules/next/dist/telemetry/events/plugins.js +51 -0
  1161. qalita/_frontend/node_modules/next/dist/telemetry/events/swc-load-failure.js +55 -0
  1162. qalita/_frontend/node_modules/next/dist/telemetry/events/version.js +66 -0
  1163. qalita/_frontend/node_modules/next/dist/telemetry/flush-telemetry.js +19 -0
  1164. qalita/_frontend/node_modules/next/dist/telemetry/post-telemetry-payload.js +48 -0
  1165. qalita/_frontend/node_modules/next/dist/telemetry/project-id.js +48 -0
  1166. qalita/_frontend/node_modules/next/dist/telemetry/storage.js +301 -0
  1167. qalita/_frontend/node_modules/next/dist/trace/index.js +54 -0
  1168. qalita/_frontend/node_modules/next/dist/trace/report/index.js +37 -0
  1169. qalita/_frontend/node_modules/next/dist/trace/report/to-json-build.js +137 -0
  1170. qalita/_frontend/node_modules/next/dist/trace/report/to-json.js +151 -0
  1171. qalita/_frontend/node_modules/next/dist/trace/report/to-telemetry.js +36 -0
  1172. qalita/_frontend/node_modules/next/dist/trace/shared.js +39 -0
  1173. qalita/_frontend/node_modules/next/dist/trace/trace.js +197 -0
  1174. qalita/_frontend/node_modules/next/package.json +378 -0
  1175. qalita/_frontend/node_modules/react/cjs/react-jsx-dev-runtime.production.min.js +10 -0
  1176. qalita/_frontend/node_modules/react/cjs/react-jsx-runtime.production.min.js +11 -0
  1177. qalita/_frontend/node_modules/react/cjs/react.production.min.js +26 -0
  1178. qalita/_frontend/node_modules/react/index.js +7 -0
  1179. qalita/_frontend/node_modules/react/jsx-dev-runtime.js +7 -0
  1180. qalita/_frontend/node_modules/react/jsx-runtime.js +7 -0
  1181. qalita/_frontend/node_modules/react/package.json +47 -0
  1182. qalita/_frontend/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js +93 -0
  1183. qalita/_frontend/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.min.js +101 -0
  1184. qalita/_frontend/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js +96 -0
  1185. qalita/_frontend/node_modules/react-dom/cjs/react-dom-server.node.production.min.js +102 -0
  1186. qalita/_frontend/node_modules/react-dom/cjs/react-dom.production.min.js +322 -0
  1187. qalita/_frontend/node_modules/react-dom/index.js +38 -0
  1188. qalita/_frontend/node_modules/react-dom/package.json +62 -0
  1189. qalita/_frontend/node_modules/react-dom/server.browser.js +17 -0
  1190. qalita/_frontend/node_modules/react-dom/server.node.js +17 -0
  1191. qalita/_frontend/node_modules/scheduler/cjs/scheduler.development.js +634 -0
  1192. qalita/_frontend/node_modules/scheduler/cjs/scheduler.production.min.js +19 -0
  1193. qalita/_frontend/node_modules/scheduler/index.js +7 -0
  1194. qalita/_frontend/node_modules/scheduler/package.json +36 -0
  1195. qalita/_frontend/node_modules/semver/classes/comparator.js +143 -0
  1196. qalita/_frontend/node_modules/semver/classes/range.js +557 -0
  1197. qalita/_frontend/node_modules/semver/classes/semver.js +333 -0
  1198. qalita/_frontend/node_modules/semver/functions/cmp.js +54 -0
  1199. qalita/_frontend/node_modules/semver/functions/coerce.js +62 -0
  1200. qalita/_frontend/node_modules/semver/functions/compare.js +7 -0
  1201. qalita/_frontend/node_modules/semver/functions/eq.js +5 -0
  1202. qalita/_frontend/node_modules/semver/functions/gt.js +5 -0
  1203. qalita/_frontend/node_modules/semver/functions/gte.js +5 -0
  1204. qalita/_frontend/node_modules/semver/functions/lt.js +5 -0
  1205. qalita/_frontend/node_modules/semver/functions/lte.js +5 -0
  1206. qalita/_frontend/node_modules/semver/functions/neq.js +5 -0
  1207. qalita/_frontend/node_modules/semver/functions/parse.js +18 -0
  1208. qalita/_frontend/node_modules/semver/functions/satisfies.js +12 -0
  1209. qalita/_frontend/node_modules/semver/internal/constants.js +37 -0
  1210. qalita/_frontend/node_modules/semver/internal/debug.js +11 -0
  1211. qalita/_frontend/node_modules/semver/internal/identifiers.js +29 -0
  1212. qalita/_frontend/node_modules/semver/internal/lrucache.js +42 -0
  1213. qalita/_frontend/node_modules/semver/internal/parse-options.js +17 -0
  1214. qalita/_frontend/node_modules/semver/internal/re.js +223 -0
  1215. qalita/_frontend/node_modules/semver/package.json +78 -0
  1216. qalita/_frontend/node_modules/sharp/lib/channel.js +177 -0
  1217. qalita/_frontend/node_modules/sharp/lib/colour.js +195 -0
  1218. qalita/_frontend/node_modules/sharp/lib/composite.js +212 -0
  1219. qalita/_frontend/node_modules/sharp/lib/constructor.js +499 -0
  1220. qalita/_frontend/node_modules/sharp/lib/index.js +16 -0
  1221. qalita/_frontend/node_modules/sharp/lib/input.js +809 -0
  1222. qalita/_frontend/node_modules/sharp/lib/is.js +143 -0
  1223. qalita/_frontend/node_modules/sharp/lib/libvips.js +207 -0
  1224. qalita/_frontend/node_modules/sharp/lib/operation.js +1016 -0
  1225. qalita/_frontend/node_modules/sharp/lib/output.js +1666 -0
  1226. qalita/_frontend/node_modules/sharp/lib/resize.js +595 -0
  1227. qalita/_frontend/node_modules/sharp/lib/sharp.js +121 -0
  1228. qalita/_frontend/node_modules/sharp/lib/utility.js +291 -0
  1229. qalita/_frontend/node_modules/sharp/package.json +202 -0
  1230. qalita/_frontend/node_modules/styled-jsx/dist/index/index.js +499 -0
  1231. qalita/_frontend/node_modules/styled-jsx/index.js +1 -0
  1232. qalita/_frontend/node_modules/styled-jsx/package.json +132 -0
  1233. qalita/_frontend/node_modules/styled-jsx/style.js +1 -0
  1234. qalita/_frontend/node_modules/typescript/lib/_tsc.js +133818 -0
  1235. qalita/_frontend/node_modules/typescript/lib/_tsserver.js +659 -0
  1236. qalita/_frontend/node_modules/typescript/lib/_typingsInstaller.js +222 -0
  1237. qalita/_frontend/node_modules/typescript/lib/tsc.js +8 -0
  1238. qalita/_frontend/node_modules/typescript/lib/tsserver.js +8 -0
  1239. qalita/_frontend/node_modules/typescript/lib/tsserverlibrary.js +21 -0
  1240. qalita/_frontend/node_modules/typescript/lib/typescript.js +200276 -0
  1241. qalita/_frontend/node_modules/typescript/lib/typingsInstaller.js +8 -0
  1242. qalita/_frontend/node_modules/typescript/lib/watchGuard.js +53 -0
  1243. qalita/_frontend/node_modules/typescript/package.json +120 -0
  1244. qalita/_frontend/package.json +28 -0
  1245. qalita/_frontend/public/studio.ico +0 -0
  1246. qalita/_frontend/server.js +38 -0
  1247. qalita/commands/pack.py +73 -19
  1248. qalita/commands/source.py +10 -6
  1249. qalita/commands/{agent.py → worker.py} +89 -89
  1250. qalita/internal/config.py +26 -19
  1251. qalita/internal/utils.py +57 -9
  1252. qalita/web/app.py +97 -14
  1253. qalita/web/blueprints/context.py +16 -62
  1254. qalita/web/blueprints/dashboard.py +38 -77
  1255. qalita/web/blueprints/helpers.py +154 -63
  1256. qalita/web/blueprints/sources.py +33 -63
  1257. qalita/web/blueprints/{agents.py → workers.py} +111 -188
  1258. qalita-2.5.3.dist-info/METADATA +66 -0
  1259. qalita-2.5.3.dist-info/RECORD +1333 -0
  1260. {qalita-2.3.2.dist-info → qalita-2.5.3.dist-info}/WHEEL +1 -1
  1261. qalita-2.5.3.dist-info/entry_points.txt +2 -0
  1262. qalita/web/blueprints/studio.py +0 -1294
  1263. qalita/web/public/studio.css +0 -304
  1264. qalita/web/public/styles.css +0 -682
  1265. qalita/web/templates/dashboard.html +0 -373
  1266. qalita/web/templates/navbar.html +0 -40
  1267. qalita/web/templates/sources/added.html +0 -57
  1268. qalita/web/templates/sources/edit.html +0 -411
  1269. qalita/web/templates/sources/select-source.html +0 -128
  1270. qalita/web/templates/studio/agent-panel.html +0 -828
  1271. qalita/web/templates/studio/context-panel.html +0 -300
  1272. qalita/web/templates/studio/index.html +0 -79
  1273. qalita/web/templates/studio/navbar.html +0 -14
  1274. qalita/web/templates/studio/view-panel.html +0 -529
  1275. qalita-2.3.2.dist-info/METADATA +0 -58
  1276. qalita-2.3.2.dist-info/RECORD +0 -101
  1277. qalita-2.3.2.dist-info/entry_points.txt +0 -3
  1278. /qalita/{web → _frontend}/public/chatgpt.svg +0 -0
  1279. /qalita/{web → _frontend}/public/claude.png +0 -0
  1280. /qalita/{web → _frontend}/public/favicon.ico +0 -0
  1281. /qalita/{web → _frontend}/public/gemini.png +0 -0
  1282. /qalita/{web → _frontend}/public/logo-no-slogan.png +0 -0
  1283. /qalita/{web → _frontend}/public/logo-white-no-slogan.svg +0 -0
  1284. /qalita/{web → _frontend}/public/mistral.svg +0 -0
  1285. /qalita/{web → _frontend}/public/noise.webp +0 -0
  1286. /qalita/{web → _frontend}/public/ollama.png +0 -0
  1287. /qalita/{web → _frontend}/public/platform.png +0 -0
  1288. /qalita/{web → _frontend}/public/sources-logos/alloy-db.png +0 -0
  1289. /qalita/{web → _frontend}/public/sources-logos/amazon-athena.png +0 -0
  1290. /qalita/{web → _frontend}/public/sources-logos/amazon-rds.png +0 -0
  1291. /qalita/{web → _frontend}/public/sources-logos/api.svg +0 -0
  1292. /qalita/{web → _frontend}/public/sources-logos/avro.svg +0 -0
  1293. /qalita/{web → _frontend}/public/sources-logos/azure-database-mysql.png +0 -0
  1294. /qalita/{web → _frontend}/public/sources-logos/azure-database-postgresql.png +0 -0
  1295. /qalita/{web → _frontend}/public/sources-logos/azure-sql-database.png +0 -0
  1296. /qalita/{web → _frontend}/public/sources-logos/azure-sql-managed-instance.png +0 -0
  1297. /qalita/{web → _frontend}/public/sources-logos/azure-synapse-analytics.png +0 -0
  1298. /qalita/{web → _frontend}/public/sources-logos/azure_blob.svg +0 -0
  1299. /qalita/{web → _frontend}/public/sources-logos/bigquery.png +0 -0
  1300. /qalita/{web → _frontend}/public/sources-logos/cassandra.svg +0 -0
  1301. /qalita/{web → _frontend}/public/sources-logos/clickhouse.png +0 -0
  1302. /qalita/{web → _frontend}/public/sources-logos/cloud-sql.png +0 -0
  1303. /qalita/{web → _frontend}/public/sources-logos/cockroach-db.png +0 -0
  1304. /qalita/{web → _frontend}/public/sources-logos/csv.svg +0 -0
  1305. /qalita/{web → _frontend}/public/sources-logos/database.svg +0 -0
  1306. /qalita/{web → _frontend}/public/sources-logos/databricks.png +0 -0
  1307. /qalita/{web → _frontend}/public/sources-logos/duckdb.png +0 -0
  1308. /qalita/{web → _frontend}/public/sources-logos/elasticsearch.svg +0 -0
  1309. /qalita/{web → _frontend}/public/sources-logos/excel.svg +0 -0
  1310. /qalita/{web → _frontend}/public/sources-logos/file.svg +0 -0
  1311. /qalita/{web → _frontend}/public/sources-logos/folder.svg +0 -0
  1312. /qalita/{web → _frontend}/public/sources-logos/gcs.png +0 -0
  1313. /qalita/{web → _frontend}/public/sources-logos/hdfs.svg +0 -0
  1314. /qalita/{web → _frontend}/public/sources-logos/ibm-db2.png +0 -0
  1315. /qalita/{web → _frontend}/public/sources-logos/json.png +0 -0
  1316. /qalita/{web → _frontend}/public/sources-logos/maria-db.png +0 -0
  1317. /qalita/{web → _frontend}/public/sources-logos/mongodb.svg +0 -0
  1318. /qalita/{web → _frontend}/public/sources-logos/mssql.svg +0 -0
  1319. /qalita/{web → _frontend}/public/sources-logos/mysql.svg +0 -0
  1320. /qalita/{web → _frontend}/public/sources-logos/oracle.svg +0 -0
  1321. /qalita/{web → _frontend}/public/sources-logos/parquet.svg +0 -0
  1322. /qalita/{web → _frontend}/public/sources-logos/picture.png +0 -0
  1323. /qalita/{web → _frontend}/public/sources-logos/postgresql.svg +0 -0
  1324. /qalita/{web → _frontend}/public/sources-logos/questdb.png +0 -0
  1325. /qalita/{web → _frontend}/public/sources-logos/redshift.png +0 -0
  1326. /qalita/{web → _frontend}/public/sources-logos/s3.svg +0 -0
  1327. /qalita/{web → _frontend}/public/sources-logos/sap-hana.png +0 -0
  1328. /qalita/{web → _frontend}/public/sources-logos/sftp.png +0 -0
  1329. /qalita/{web → _frontend}/public/sources-logos/single-store.png +0 -0
  1330. /qalita/{web → _frontend}/public/sources-logos/snowflake.png +0 -0
  1331. /qalita/{web → _frontend}/public/sources-logos/sqlite.svg +0 -0
  1332. /qalita/{web → _frontend}/public/sources-logos/sqlserver.png +0 -0
  1333. /qalita/{web → _frontend}/public/sources-logos/starburst.png +0 -0
  1334. /qalita/{web → _frontend}/public/sources-logos/stream.png +0 -0
  1335. /qalita/{web → _frontend}/public/sources-logos/teradata.png +0 -0
  1336. /qalita/{web → _frontend}/public/sources-logos/timescale.png +0 -0
  1337. /qalita/{web → _frontend}/public/sources-logos/xls.svg +0 -0
  1338. /qalita/{web → _frontend}/public/sources-logos/xlsx.svg +0 -0
  1339. /qalita/{web → _frontend}/public/sources-logos/yugabyte-db.png +0 -0
  1340. /qalita/{web → _frontend}/public/studio-logo.svg +0 -0
  1341. /qalita/{web → _frontend}/public/studio.png +0 -0
  1342. {qalita-2.3.2.dist-info → qalita-2.5.3.dist-info}/licenses/LICENSE +0 -0
@@ -1,1294 +0,0 @@
1
- """
2
- # QALITA (c) COPYRIGHT 2025 - ALL RIGHTS RESERVED -
3
- """
4
-
5
- import os
6
- import json
7
- import yaml
8
- import requests
9
- from datetime import datetime
10
- from flask import Blueprint, render_template, jsonify, request, current_app, Response
11
- from flask import stream_with_context
12
-
13
-
14
- bp = Blueprint("studio", __name__)
15
-
16
-
17
- @bp.get("/")
18
- def studio_home():
19
- return render_template("studio/index.html")
20
-
21
-
22
- # ---- Config management ----
23
-
24
-
25
- def _qalita_home():
26
- cfg = current_app.config.get("QALITA_CONFIG_OBJ")
27
- try:
28
- return cfg.qalita_home # type: ignore[attr-defined]
29
- except Exception:
30
- return os.path.expanduser("~/.qalita")
31
-
32
-
33
- def _studio_config_path() -> str:
34
- root = _qalita_home()
35
- try:
36
- os.makedirs(root, exist_ok=True)
37
- except Exception:
38
- pass
39
- return os.path.join(root, ".studio")
40
-
41
-
42
- def _qalita_home() -> str:
43
- cfg = current_app.config.get("QALITA_CONFIG_OBJ")
44
- try:
45
- return getattr(cfg, "qalita_home")
46
- except Exception:
47
- return os.path.expanduser("~/.qalita")
48
-
49
-
50
- def _read_qalita_conf() -> dict:
51
- try:
52
- path = os.path.join(_qalita_home(), "sources-conf.yaml")
53
- if not os.path.isfile(path):
54
- return {}
55
- with open(path, "r", encoding="utf-8") as f:
56
- data = yaml.safe_load(f) or {}
57
- return data if isinstance(data, dict) else {}
58
- except Exception:
59
- return {}
60
-
61
-
62
- def _find_source_by_id(conf: dict, source_id: str) -> dict | None:
63
- try:
64
- items = conf.get("sources") if isinstance(conf.get("sources"), list) else []
65
- for s in items:
66
- if isinstance(s, dict) and str(s.get("id", "")) == str(source_id):
67
- return s
68
- except Exception:
69
- return None
70
- return None
71
-
72
-
73
- def _redact_sensitive(obj: dict) -> dict:
74
- try:
75
- SENSITIVE = {"password", "secret", "token", "access_key", "secret_key", "connection_string", "credentials", "api_key"}
76
- def scrub(v):
77
- if isinstance(v, dict):
78
- return {k: ("***" if k.lower() in SENSITIVE else scrub(v2)) for k, v2 in v.items()}
79
- if isinstance(v, list):
80
- return [scrub(it) for it in v]
81
- return v
82
- return scrub(dict(obj)) if isinstance(obj, dict) else {}
83
- except Exception:
84
- return {}
85
-
86
-
87
- def _augment_prompt_with_context(prompt: str, issue_id: str | None, source_id: str | None, issue_details: dict | None = None, source_details: dict | None = None) -> str:
88
- base = prompt or ""
89
- meta_parts: list[str] = []
90
- if issue_id:
91
- meta_parts.append(f"Issue: {issue_id}")
92
- if source_id:
93
- meta_parts.append(f"Source: {source_id}")
94
- # Attach compact JSON of issue details if present
95
- if issue_details:
96
- try:
97
- snip = json.dumps(issue_details, ensure_ascii=False)[:800]
98
- meta_parts.append(f"IssueDetails: {snip}")
99
- except Exception:
100
- pass
101
- if source_details:
102
- try:
103
- red = _redact_sensitive(source_details)
104
- snip = json.dumps(red, ensure_ascii=False)[:800]
105
- meta_parts.append(f"SourceDetails: {snip}")
106
- except Exception:
107
- pass
108
- if not meta_parts:
109
- return base
110
- meta = "\n\n[Context]\n" + " | ".join(meta_parts) + "\n" # lightweight hint
111
- return meta + base
112
-
113
-
114
- def _cloud_enabled() -> bool:
115
- """Return whether Studio cloud providers are enabled via env flag.
116
-
117
- Env: QALITA_STUDIO_ENABLE_CLOUD = 1|true|yes|on to enable. Default: disabled.
118
- """
119
- try:
120
- raw = str(os.getenv("QALITA_STUDIO_ENABLE_CLOUD", "0") or "").strip().lower()
121
- return raw in ("1", "true", "yes", "on")
122
- except Exception:
123
- return False
124
-
125
- def _studio_conv_dir() -> str:
126
- """Return the conversations directory, ensuring it exists."""
127
- root = _qalita_home()
128
- conv_dir = os.path.join(root, "studio_conversations")
129
- try:
130
- os.makedirs(conv_dir, exist_ok=True)
131
- except Exception:
132
- pass
133
- return conv_dir
134
-
135
-
136
- def _safe_conv_id(raw: str) -> str:
137
- """Sanitize a conversation id to be filesystem-safe."""
138
- s = (raw or "").strip()
139
- if not s:
140
- s = datetime.utcnow().strftime("conv_%Y%m%d_%H%M%S")
141
- # allow alnum, dash, underscore only
142
- out = []
143
- for ch in s:
144
- if ch.isalnum() or ch in ("-", "_"):
145
- out.append(ch)
146
- s2 = "".join(out)
147
- return s2 or datetime.utcnow().strftime("conv_%Y%m%d_%H%M%S")
148
-
149
-
150
- def _studio_conv_file_for(conv_id: str) -> str:
151
- conv_dir = _studio_conv_dir()
152
- safe_id = _safe_conv_id(conv_id)
153
- return os.path.join(conv_dir, f"{safe_id}.jsonl")
154
-
155
-
156
- def _studio_conv_write(conv_id: str, record: dict) -> None:
157
- """Append one JSONL record to the studio conversations log.
158
-
159
- Errors are swallowed to avoid impacting the main request flow.
160
- """
161
- try:
162
- path = _studio_conv_file_for(conv_id)
163
- record = dict(record or {})
164
- if "ts" not in record:
165
- record["ts"] = datetime.utcnow().isoformat() + "Z"
166
- with open(path, "a", encoding="utf-8") as f:
167
- f.write(json.dumps(record, ensure_ascii=False))
168
- f.write("\n")
169
- except Exception:
170
- pass
171
-
172
-
173
- @bp.get("/conversations")
174
- def conversations_list():
175
- """List available conversations (one file per conversation)."""
176
- conv_dir = _studio_conv_dir()
177
- items: list[dict] = []
178
- try:
179
- for name in os.listdir(conv_dir):
180
- if not name.endswith(".jsonl"):
181
- continue
182
- path = os.path.join(conv_dir, name)
183
- try:
184
- st = os.stat(path)
185
- # count lines may be expensive, do bounded scan
186
- count = 0
187
- with open(path, "r", encoding="utf-8") as f:
188
- for _ in f:
189
- count += 1
190
- if count > 10000:
191
- break
192
- items.append(
193
- {
194
- "id": name[:-6],
195
- "file": name,
196
- "size": st.st_size,
197
- "mtime": datetime.utcfromtimestamp(st.st_mtime).isoformat()
198
- + "Z",
199
- "lines": count,
200
- }
201
- )
202
- except Exception:
203
- continue
204
- # Sort by mtime desc
205
- items.sort(key=lambda x: x.get("mtime", ""), reverse=True)
206
- except Exception:
207
- items = []
208
- return jsonify({"ok": True, "items": items})
209
-
210
-
211
- @bp.get("/conversation")
212
- def conversation_get():
213
- """Return a conversation's messages from its id."""
214
- conv_id = _safe_conv_id(request.args.get("id", ""))
215
- if not conv_id:
216
- return jsonify({"ok": False, "message": "Missing id"}), 400
217
- path = _studio_conv_file_for(conv_id)
218
- if not os.path.isfile(path):
219
- return jsonify({"ok": False, "message": "Not found"}), 404
220
- messages: list[dict] = []
221
- try:
222
- with open(path, "r", encoding="utf-8") as f:
223
- for raw in f:
224
- line = (raw or "").strip()
225
- if not line:
226
- continue
227
- try:
228
- obj = json.loads(line)
229
- except Exception:
230
- continue
231
- # New format uses role/text
232
- if isinstance(obj, dict) and obj.get("role") and obj.get("text") is not None:
233
- messages.append(
234
- {
235
- "role": obj.get("role"),
236
- "text": obj.get("text"),
237
- "ts": obj.get("ts"),
238
- }
239
- )
240
- # Back-compat: prompt/response record
241
- elif isinstance(obj, dict) and obj.get("prompt") is not None:
242
- messages.append({"role": "user", "text": obj.get("prompt"), "ts": obj.get("ts")})
243
- if obj.get("response") is not None:
244
- messages.append(
245
- {"role": "assistant", "text": obj.get("response"), "ts": obj.get("ts")}
246
- )
247
- except Exception as exc:
248
- return jsonify({"ok": False, "message": str(exc)}), 500
249
- return jsonify({"ok": True, "id": conv_id, "messages": messages})
250
-
251
-
252
- @bp.get("/status")
253
- def studio_status():
254
- p = _studio_config_path()
255
- exists = os.path.isfile(p)
256
- data: dict | None = None
257
- if exists:
258
- try:
259
- with open(p, "r", encoding="utf-8") as f:
260
- raw = f.read().strip()
261
- if raw:
262
- data = json.loads(raw)
263
- except Exception:
264
- data = None
265
- # Surface current provider quickly for the UI
266
- current_provider = None
267
- if isinstance(data, dict):
268
- current_provider = data.get("current_provider")
269
- if not current_provider and isinstance(data.get("providers"), dict):
270
- # Pick one deterministically for display
271
- try:
272
- current_provider = next(iter(data["providers"].keys()))
273
- except Exception:
274
- current_provider = None
275
- # Enforce local-only when cloud is disabled
276
- if not _cloud_enabled() and current_provider and current_provider != "local":
277
- current_provider = "local"
278
- return jsonify(
279
- {
280
- "configured": exists,
281
- "config": data,
282
- "current_provider": current_provider,
283
- "cloud_enabled": _cloud_enabled(),
284
- }
285
- )
286
-
287
-
288
- @bp.post("/config")
289
- def studio_save_config():
290
- payload = request.get_json(silent=True) or {}
291
- p = _studio_config_path()
292
- # Merge semantics to support multiple providers while remaining backward compatible
293
- try:
294
- current: dict = {}
295
- if os.path.isfile(p):
296
- try:
297
- with open(p, "r", encoding="utf-8") as rf:
298
- raw = (rf.read() or "").strip()
299
- if raw:
300
- current = json.loads(raw)
301
- if not isinstance(current, dict):
302
- current = {}
303
- except Exception:
304
- current = {}
305
- # Normalize base structure
306
- if "providers" not in current or not isinstance(current.get("providers"), dict):
307
- current["providers"] = {}
308
- providers: dict = current["providers"] # type: ignore[assignment]
309
- # Path A: structured provider update
310
- provider = (payload.get("provider") or "").strip()
311
- conf = (
312
- payload.get("config") if isinstance(payload.get("config"), dict) else None
313
- )
314
- set_current = bool(payload.get("set_current"))
315
- if provider and conf is not None:
316
- # Block saving non-local provider when cloud is disabled
317
- if provider != "local" and not _cloud_enabled():
318
- return (
319
- jsonify({
320
- "ok": False,
321
- "message": "Cloud providers are disabled. Set QALITA_STUDIO_ENABLE_CLOUD=1 to enable.",
322
- }),
323
- 403,
324
- )
325
- providers[provider] = conf
326
- if set_current:
327
- current["current_provider"] = provider
328
- else:
329
- # Path B: legacy flat payload (e.g., { "model": "gpt-oss:20b" })
330
- # Interpret as local provider settings
331
- if "model" in payload and isinstance(payload.get("model"), str):
332
- local_conf = (
333
- providers.get("local", {})
334
- if isinstance(providers.get("local"), dict)
335
- else {}
336
- )
337
- local_conf["model"] = (payload.get("model") or "").strip()
338
- providers["local"] = local_conf
339
- # Prefer local as current if not already chosen
340
- if not current.get("current_provider"):
341
- current["current_provider"] = "local"
342
- else:
343
- # Fallback: overwrite with provided payload (explicit user intent)
344
- current = payload
345
- if "providers" not in current:
346
- current = {
347
- "providers": {"legacy": payload},
348
- "current_provider": current.get("current_provider", "legacy"),
349
- }
350
- # Persist
351
- with open(p, "w", encoding="utf-8") as f:
352
- f.write(json.dumps(current, ensure_ascii=False, indent=2))
353
- return jsonify({"ok": True, "saved": True})
354
- except Exception as exc:
355
- return jsonify({"ok": False, "message": str(exc)}), 500
356
-
357
-
358
- @bp.get("/check-ollama")
359
- def check_ollama():
360
- url = "http://127.0.0.1:11434/api/tags"
361
- try:
362
- r = requests.get(url, timeout=2)
363
- ok = r.status_code == 200
364
- return jsonify({"ok": ok})
365
- except Exception:
366
- return jsonify({"ok": False})
367
-
368
-
369
- @bp.get("/providers")
370
- def list_providers():
371
- """Return available agent provider types and current selection from .studio config."""
372
- p = _studio_config_path()
373
- data: dict = {}
374
- try:
375
- if os.path.isfile(p):
376
- with open(p, "r", encoding="utf-8") as f:
377
- raw = (f.read() or "").strip()
378
- if raw:
379
- data = json.loads(raw)
380
- if not isinstance(data, dict):
381
- data = {}
382
- except Exception:
383
- data = {}
384
- providers = data.get("providers") if isinstance(data.get("providers"), dict) else {}
385
- current = (
386
- data.get("current_provider")
387
- if isinstance(data.get("current_provider"), str)
388
- else None
389
- )
390
- # Static list for now; can be extended later or discovered dynamically
391
- available = [
392
- {"id": "local", "name": "Local Agent", "logo": "/static/ollama.png"},
393
- {"id": "openai", "name": "ChatGPT", "logo": "/static/chatgpt.svg"},
394
- {"id": "mistral", "name": "Mistral", "logo": "/static/mistral.svg"},
395
- {"id": "claude", "name": "Claude", "logo": "/static/sources-logos/api.svg"},
396
- {"id": "gemini", "name": "Gemini", "logo": "/static/sources-logos/api.svg"},
397
- ]
398
- if not _cloud_enabled():
399
- available = [it for it in available if it.get("id") == "local"]
400
- return jsonify(
401
- {
402
- "available": available,
403
- "current": current,
404
- "configs": providers,
405
- "cloud_enabled": _cloud_enabled(),
406
- }
407
- )
408
-
409
-
410
- @bp.post("/check-remote")
411
- def check_remote():
412
- """Best-effort connectivity check for remote AI providers (OpenAI, Mistral).
413
-
414
- Body: { "provider": "openai"|"mistral", "api_key": "...", "model": "..." }
415
- Returns: { ok: bool, message?: str, provider: str }
416
- """
417
- if not _cloud_enabled():
418
- return (
419
- jsonify({
420
- "ok": False,
421
- "message": "Cloud providers are disabled. Set QALITA_STUDIO_ENABLE_CLOUD=1 to enable.",
422
- }),
423
- 403,
424
- )
425
- data = request.get_json(silent=True) or {}
426
- provider = (data.get("provider") or "").strip().lower()
427
- api_key = (data.get("api_key") or "").strip()
428
- model = (data.get("model") or "").strip()
429
- if not provider or not api_key:
430
- return (
431
- jsonify(
432
- {
433
- "ok": False,
434
- "message": "Missing provider or API key",
435
- "provider": provider,
436
- }
437
- ),
438
- 400,
439
- )
440
- try:
441
- if provider == "openai":
442
- # Lightweight models list call
443
- url = "https://api.openai.com/v1/models"
444
- headers = {"Authorization": f"Bearer {api_key}"}
445
- r = requests.get(url, headers=headers, timeout=8)
446
- if 200 <= r.status_code < 300:
447
- return jsonify({"ok": True, "provider": provider})
448
- try:
449
- body = r.json()
450
- except Exception:
451
- body = {"detail": r.text[:200]}
452
- return (
453
- jsonify(
454
- {
455
- "ok": False,
456
- "provider": provider,
457
- "status": r.status_code,
458
- "error": body,
459
- }
460
- ),
461
- 200,
462
- )
463
- if provider == "mistral":
464
- # Mistral whoami endpoint
465
- url = "https://api.mistral.ai/v1/models"
466
- headers = {"Authorization": f"Bearer {api_key}"}
467
- r = requests.get(url, headers=headers, timeout=8)
468
- if 200 <= r.status_code < 300:
469
- return jsonify({"ok": True, "provider": provider})
470
- try:
471
- body = r.json()
472
- except Exception:
473
- body = {"detail": r.text[:200]}
474
- return (
475
- jsonify(
476
- {
477
- "ok": False,
478
- "provider": provider,
479
- "status": r.status_code,
480
- "error": body,
481
- }
482
- ),
483
- 200,
484
- )
485
- if provider == "claude":
486
- # Anthropic models list requires API key header and version header
487
- url = "https://api.anthropic.com/v1/models"
488
- headers = {"x-api-key": api_key, "anthropic-version": "2023-06-01"}
489
- r = requests.get(url, headers=headers, timeout=8)
490
- if 200 <= r.status_code < 300:
491
- return jsonify({"ok": True, "provider": provider})
492
- try:
493
- body = r.json()
494
- except Exception:
495
- body = {"detail": r.text[:200]}
496
- return (
497
- jsonify(
498
- {
499
- "ok": False,
500
- "provider": provider,
501
- "status": r.status_code,
502
- "error": body,
503
- }
504
- ),
505
- 200,
506
- )
507
- if provider == "gemini":
508
- # Google Generative Language API models list with key in query
509
- url = f"https://generativelanguage.googleapis.com/v1/models?key={api_key}"
510
- r = requests.get(url, timeout=8)
511
- if 200 <= r.status_code < 300:
512
- return jsonify({"ok": True, "provider": provider})
513
- try:
514
- body = r.json()
515
- except Exception:
516
- body = {"detail": r.text[:200]}
517
- return (
518
- jsonify(
519
- {
520
- "ok": False,
521
- "provider": provider,
522
- "status": r.status_code,
523
- "error": body,
524
- }
525
- ),
526
- 200,
527
- )
528
- return (
529
- jsonify(
530
- {"ok": False, "message": "Unsupported provider", "provider": provider}
531
- ),
532
- 400,
533
- )
534
- except Exception as exc:
535
- return jsonify({"ok": False, "message": str(exc), "provider": provider}), 200
536
-
537
-
538
- @bp.get("/check-backend")
539
- def check_backend():
540
- """Proxy healthcheck against the remote backend URL from current context.
541
- Avoids CORS issues in the browser and standardizes the response shape.
542
- """
543
- cfg = current_app.config.get("QALITA_CONFIG_OBJ")
544
- backend_url: str | None = None
545
- token_value: str | None = None
546
- try:
547
- backend_url = getattr(cfg, "url", None)
548
- token_value = getattr(cfg, "token", None)
549
- except Exception:
550
- backend_url = None
551
- token_value = None
552
- # Fallback: read selected env pointer and parse URL from env file
553
- try:
554
- if not backend_url:
555
- home = _qalita_home()
556
- pointer = os.path.join(home, ".current_env")
557
- if os.path.isfile(pointer):
558
- with open(pointer, "r", encoding="utf-8") as f:
559
- env_path = (f.read() or "").strip()
560
- if env_path and os.path.isfile(env_path):
561
- with open(env_path, "r", encoding="utf-8") as ef:
562
- for raw in ef.readlines():
563
- line = (raw or "").strip()
564
- if not line or line.startswith("#") or "=" not in line:
565
- continue
566
- k, v = line.split("=", 1)
567
- k = (k or "").strip().upper()
568
- v = (v or "").strip().strip('"').strip("'")
569
- if k in (
570
- "QALITA_AGENT_ENDPOINT",
571
- "AGENT_ENDPOINT",
572
- "QALITA_URL",
573
- "URL",
574
- ):
575
- backend_url = v
576
- if (
577
- k in ("QALITA_AGENT_TOKEN", "QALITA_TOKEN", "TOKEN")
578
- and not token_value
579
- ):
580
- token_value = v
581
- # no break: we want to scan whole file to capture both url and token
582
- except Exception:
583
- pass
584
- # Compute readiness flags
585
- endpoint_present = bool(backend_url)
586
- token_present = bool(token_value)
587
- configured = endpoint_present and token_present
588
- if not backend_url:
589
- return (
590
- jsonify(
591
- {
592
- "ok": False,
593
- "status": None,
594
- "url": None,
595
- "endpoint_present": endpoint_present,
596
- "token_present": token_present,
597
- "configured": configured,
598
- }
599
- ),
600
- 200,
601
- )
602
- try:
603
- url = str(backend_url).rstrip("/") + "/api/v1/healthcheck"
604
- except Exception:
605
- url = str(backend_url) + "/api/v1/healthcheck"
606
- try:
607
- r = requests.get(url, timeout=3)
608
- ok = 200 <= r.status_code < 300
609
- return jsonify(
610
- {
611
- "ok": ok,
612
- "status": r.status_code,
613
- "url": str(backend_url).rstrip("/"),
614
- "endpoint_present": endpoint_present,
615
- "token_present": token_present,
616
- "configured": configured,
617
- }
618
- )
619
- except Exception:
620
- return (
621
- jsonify(
622
- {
623
- "ok": False,
624
- "status": None,
625
- "url": str(backend_url).rstrip("/"),
626
- "endpoint_present": endpoint_present,
627
- "token_present": token_present,
628
- "configured": configured,
629
- }
630
- ),
631
- 200,
632
- )
633
-
634
-
635
- @bp.get("/projects")
636
- def studio_projects():
637
- """Proxy projects list against the remote backend URL from current context.
638
- Standardizes response to { ok: bool, items: [...] } and avoids CORS.
639
- """
640
- cfg = current_app.config.get("QALITA_CONFIG_OBJ")
641
- backend_url: str | None = None
642
- token_value: str | None = None
643
- try:
644
- backend_url = getattr(cfg, "url", None)
645
- token_value = getattr(cfg, "token", None)
646
- except Exception:
647
- backend_url = None
648
- token_value = None
649
- # Fallback to env file like in check_backend
650
- try:
651
- if not backend_url:
652
- home = _qalita_home()
653
- pointer = os.path.join(home, ".current_env")
654
- if os.path.isfile(pointer):
655
- with open(pointer, "r", encoding="utf-8") as f:
656
- env_path = (f.read() or "").strip()
657
- if env_path and os.path.isfile(env_path):
658
- with open(env_path, "r", encoding="utf-8") as ef:
659
- for raw in ef.readlines():
660
- line = (raw or "").strip()
661
- if not line or line.startswith("#") or "=" not in line:
662
- continue
663
- k, v = line.split("=", 1)
664
- k = (k or "").strip().upper()
665
- v = (v or "").strip().strip('"').strip("'")
666
- if k in (
667
- "QALITA_AGENT_ENDPOINT",
668
- "AGENT_ENDPOINT",
669
- "QALITA_URL",
670
- "URL",
671
- ):
672
- backend_url = v
673
- if (
674
- k in ("QALITA_AGENT_TOKEN", "QALITA_TOKEN", "TOKEN")
675
- and not token_value
676
- ):
677
- token_value = v
678
- except Exception:
679
- pass
680
- if not backend_url:
681
- return jsonify({"ok": False, "items": [], "message": "Missing backend URL"}), 200
682
- try:
683
- url = str(backend_url).rstrip("/") + "/api/v2/projects"
684
- except Exception:
685
- url = str(backend_url) + "/api/v2/projects"
686
- headers = {"Accept": "application/json"}
687
- if token_value:
688
- headers["Authorization"] = f"Bearer {token_value}"
689
- try:
690
- r = requests.get(url, headers=headers, timeout=8)
691
- # Normalize response shapes
692
- try:
693
- body = r.json()
694
- except Exception:
695
- body = None
696
- def _normalize_projects(j):
697
- try:
698
- if not j:
699
- return []
700
- if isinstance(j, list):
701
- return j
702
- if isinstance(j, dict):
703
- if isinstance(j.get("items"), list):
704
- return j["items"]
705
- if isinstance(j.get("data"), list):
706
- return j["data"]
707
- if isinstance(j.get("results"), list):
708
- return j["results"]
709
- if isinstance(j.get("projects"), list):
710
- return j["projects"]
711
- if isinstance(j.get("data"), dict) and isinstance(j["data"].get("items"), list):
712
- return j["data"]["items"]
713
- # Single object
714
- if (j.get("id") is not None) or (j.get("name") is not None):
715
- return [j]
716
- except Exception:
717
- return []
718
- return []
719
- if 200 <= r.status_code < 300:
720
- items = _normalize_projects(body)
721
- return jsonify({"ok": True, "items": items})
722
- # Error passthrough (without failing the request status)
723
- return jsonify({"ok": False, "status": r.status_code, "error": body}), 200
724
- except Exception as exc:
725
- return jsonify({"ok": False, "items": [], "message": str(exc)}), 200
726
-
727
-
728
- @bp.get("/sources")
729
- def studio_sources():
730
- """Proxy sources list against the remote backend URL from current context.
731
- Enrich with local presence and validation flags from ~/.qalita/sources-conf.yaml.
732
- Response shape: { ok: bool, items: [ { ..., local_present, local_validate } ] }
733
- Optional query passthrough: project_id
734
- """
735
- cfg = current_app.config.get("QALITA_CONFIG_OBJ")
736
- backend_url: str | None = None
737
- token_value: str | None = None
738
- try:
739
- backend_url = getattr(cfg, "url", None)
740
- token_value = getattr(cfg, "token", None)
741
- except Exception:
742
- backend_url = None
743
- token_value = None
744
- # Fallback to env file like in check_backend
745
- try:
746
- if not backend_url:
747
- home = _qalita_home()
748
- pointer = os.path.join(home, ".current_env")
749
- if os.path.isfile(pointer):
750
- with open(pointer, "r", encoding="utf-8") as f:
751
- env_path = (f.read() or "").strip()
752
- if env_path and os.path.isfile(env_path):
753
- with open(env_path, "r", encoding="utf-8") as ef:
754
- for raw in ef.readlines():
755
- line = (raw or "").strip()
756
- if not line or line.startswith("#") or "=" not in line:
757
- continue
758
- k, v = line.split("=", 1)
759
- k = (k or "").strip().upper()
760
- v = (v or "").strip().strip('"').strip("'")
761
- if k in (
762
- "QALITA_AGENT_ENDPOINT",
763
- "AGENT_ENDPOINT",
764
- "QALITA_URL",
765
- "URL",
766
- ):
767
- backend_url = v
768
- if (
769
- k in ("QALITA_AGENT_TOKEN", "QALITA_TOKEN", "TOKEN")
770
- and not token_value
771
- ):
772
- token_value = v
773
- except Exception:
774
- pass
775
- if not backend_url:
776
- return jsonify({"ok": False, "items": [], "message": "Missing backend URL"}), 200
777
- try:
778
- base = str(backend_url).rstrip("/") + "/api/v2/sources"
779
- except Exception:
780
- base = str(backend_url) + "/api/v2/sources"
781
- # Optional filters passthrough
782
- params = {}
783
- project_id = (request.args.get("project_id") or "").strip()
784
- if project_id:
785
- params["project_id"] = project_id
786
- headers = {"Accept": "application/json"}
787
- if token_value:
788
- headers["Authorization"] = f"Bearer {token_value}"
789
- try:
790
- r = requests.get(base, headers=headers, params=params, timeout=8)
791
- try:
792
- body = r.json()
793
- except Exception:
794
- body = None
795
- def _normalize_sources(j):
796
- try:
797
- if not j:
798
- return []
799
- if isinstance(j, list):
800
- return j
801
- if isinstance(j, dict):
802
- if isinstance(j.get("items"), list):
803
- return j["items"]
804
- if isinstance(j.get("data"), list):
805
- return j["data"]
806
- if isinstance(j.get("results"), list):
807
- return j["results"]
808
- if isinstance(j.get("data"), dict) and isinstance(j["data"].get("items"), list):
809
- return j["data"]["items"]
810
- if isinstance(j.get("sources"), list):
811
- return j["sources"]
812
- # Single object
813
- if (j.get("id") is not None) or (j.get("name") is not None):
814
- return [j]
815
- except Exception:
816
- return []
817
- return []
818
- if 200 <= r.status_code < 300:
819
- items = _normalize_sources(body)
820
- # Enrich with local conf presence and validate flag
821
- conf = _read_qalita_conf()
822
- local_sources = conf.get("sources") if isinstance(conf.get("sources"), list) else []
823
- local_by_id: dict[str, dict] = {}
824
- try:
825
- for s in local_sources:
826
- if isinstance(s, dict) and s.get("id") is not None:
827
- local_by_id[str(s.get("id"))] = s
828
- except Exception:
829
- local_by_id = {}
830
- enriched = []
831
- seen_ids: set[str] = set()
832
- for it in items:
833
- try:
834
- obj = dict(it) if isinstance(it, dict) else {"value": it}
835
- except Exception:
836
- obj = {"value": it}
837
- sid = str(obj.get("id", ""))
838
- if sid:
839
- seen_ids.add(sid)
840
- lobj = local_by_id.get(sid)
841
- obj["local_present"] = bool(lobj is not None)
842
- if isinstance(lobj, dict):
843
- val = lobj.get("validate")
844
- try:
845
- obj["local_validate"] = (str(val).lower() if val is not None else None)
846
- except Exception:
847
- obj["local_validate"] = None
848
- else:
849
- obj["local_validate"] = None
850
- enriched.append(obj)
851
- # Add local-only sources (not present in backend response)
852
- try:
853
- for sid, lobj in local_by_id.items():
854
- if sid in seen_ids:
855
- continue
856
- try:
857
- name = lobj.get("name") or (
858
- lobj.get("source", {}).get("name") if isinstance(lobj.get("source"), dict) else None
859
- ) or f"Source {sid}"
860
- stype = lobj.get("type") or (
861
- lobj.get("source", {}).get("type") if isinstance(lobj.get("source"), dict) else None
862
- )
863
- except Exception:
864
- name = f"Source {sid}"
865
- stype = None
866
- val = lobj.get("validate")
867
- try:
868
- vnorm = (str(val).lower() if val is not None else None)
869
- except Exception:
870
- vnorm = None
871
- enriched.append({
872
- "id": sid,
873
- "name": name,
874
- "type": stype,
875
- "local_present": True,
876
- "local_validate": vnorm,
877
- })
878
- except Exception:
879
- pass
880
- return jsonify({"ok": True, "items": enriched})
881
- return jsonify({"ok": False, "status": r.status_code, "error": body}), 200
882
- except Exception as exc:
883
- return jsonify({"ok": False, "items": [], "message": str(exc)}), 200
884
-
885
-
886
- @bp.get("/sync-conversations")
887
- def sync_conversations():
888
- """Ensure local conversations for a given issue are present by pulling from backend if missing.
889
-
890
- Query: issue_id
891
- """
892
- issue_id = (request.args.get("issue_id") or "").strip()
893
- if not issue_id:
894
- return jsonify({"ok": False, "message": "Missing issue_id"}), 400
895
- cfg = current_app.config.get("QALITA_CONFIG_OBJ")
896
- backend_url: str | None = None
897
- token_value: str | None = None
898
- try:
899
- backend_url = getattr(cfg, "url", None)
900
- token_value = getattr(cfg, "token", None)
901
- except Exception:
902
- backend_url = None
903
- token_value = None
904
- # Try env file fallback
905
- try:
906
- if not backend_url:
907
- home = _qalita_home()
908
- pointer = os.path.join(home, ".current_env")
909
- if os.path.isfile(pointer):
910
- with open(pointer, "r", encoding="utf-8") as f:
911
- env_path = (f.read() or "").strip()
912
- if env_path and os.path.isfile(env_path):
913
- with open(env_path, "r", encoding="utf-8") as ef:
914
- for raw in ef.readlines():
915
- line = (raw or "").strip()
916
- if not line or line.startswith("#") or "=" not in line:
917
- continue
918
- k, v = line.split("=", 1)
919
- k = (k or "").strip().upper()
920
- v = (v or "").strip().strip('"').strip("'")
921
- if k in ("QALITA_AGENT_ENDPOINT", "AGENT_ENDPOINT", "QALITA_URL", "URL"):
922
- backend_url = v
923
- if k in ("QALITA_AGENT_TOKEN", "QALITA_TOKEN", "TOKEN") and not token_value:
924
- token_value = v
925
- except Exception:
926
- pass
927
- if not backend_url:
928
- return jsonify({"ok": False, "message": "Missing backend URL"}), 200
929
- headers = {"Accept": "application/json"}
930
- if token_value:
931
- headers["Authorization"] = f"Bearer {token_value}"
932
- # List conversations
933
- try:
934
- base = str(backend_url).rstrip("/") + f"/api/v1/issues/{issue_id}/studio_conversations"
935
- except Exception:
936
- base = str(backend_url) + f"/api/v1/issues/{issue_id}/studio_conversations"
937
- try:
938
- r = requests.get(base, headers=headers, timeout=10)
939
- items = r.json() if r.ok else []
940
- except Exception:
941
- items = []
942
- # Download any missing files
943
- conv_dir = _studio_conv_dir()
944
- downloaded = 0
945
- try:
946
- for it in (items or []):
947
- try:
948
- fname = (it.get("filename") or (it.get("conv_id", "") + ".jsonl")).strip()
949
- except Exception:
950
- fname = None
951
- if not fname:
952
- continue
953
- local_path = os.path.join(conv_dir, fname)
954
- if os.path.isfile(local_path):
955
- continue
956
- # fetch download
957
- try:
958
- did = it.get("id")
959
- url = str(backend_url).rstrip("/") + f"/api/v1/issues/{issue_id}/studio_conversations/{did}/download"
960
- except Exception:
961
- continue
962
- try:
963
- dr = requests.get(url, headers=headers, timeout=20)
964
- if dr.status_code >= 400:
965
- continue
966
- os.makedirs(conv_dir, exist_ok=True)
967
- with open(local_path, "wb") as f:
968
- f.write(dr.content or b"")
969
- downloaded += 1
970
- except Exception:
971
- continue
972
- except Exception:
973
- pass
974
- return jsonify({"ok": True, "downloaded": downloaded})
975
-
976
-
977
- @bp.post("/upload-conversation")
978
- def upload_conversation():
979
- """Upload a local conversation file for an issue to the backend.
980
-
981
- Body: { conv_id: str, issue_id: str }
982
- """
983
- data = request.get_json(silent=True) or {}
984
- conv_id = _safe_conv_id((data.get("conv_id") or "").strip())
985
- issue_id = (data.get("issue_id") or "").strip()
986
- if not conv_id or not issue_id:
987
- return jsonify({"ok": False, "message": "Missing conv_id or issue_id"}), 400
988
- path = _studio_conv_file_for(conv_id)
989
- if not os.path.isfile(path):
990
- return jsonify({"ok": False, "message": "Local conversation not found"}), 404
991
- # Backend context
992
- cfg = current_app.config.get("QALITA_CONFIG_OBJ")
993
- backend_url: str | None = None
994
- token_value: str | None = None
995
- try:
996
- backend_url = getattr(cfg, "url", None)
997
- token_value = getattr(cfg, "token", None)
998
- except Exception:
999
- backend_url = None
1000
- token_value = None
1001
- # Try env file fallback
1002
- try:
1003
- if not backend_url:
1004
- home = _qalita_home()
1005
- pointer = os.path.join(home, ".current_env")
1006
- if os.path.isfile(pointer):
1007
- with open(pointer, "r", encoding="utf-8") as f:
1008
- env_path = (f.read() or "").strip()
1009
- if env_path and os.path.isfile(env_path):
1010
- with open(env_path, "r", encoding="utf-8") as ef:
1011
- for raw in ef.readlines():
1012
- line = (raw or "").strip()
1013
- if not line or line.startswith("#") or "=" not in line:
1014
- continue
1015
- k, v = line.split("=", 1)
1016
- k = (k or "").strip().upper()
1017
- v = (v or "").strip().strip('"').strip("'")
1018
- if k in ("QALITA_AGENT_ENDPOINT", "AGENT_ENDPOINT", "QALITA_URL", "URL"):
1019
- backend_url = v
1020
- if k in ("QALITA_AGENT_TOKEN", "QALITA_TOKEN", "TOKEN") and not token_value:
1021
- token_value = v
1022
- except Exception:
1023
- pass
1024
- if not backend_url:
1025
- return jsonify({"ok": False, "message": "Missing backend URL"}), 200
1026
- try:
1027
- with open(path, "rb") as f:
1028
- files = {
1029
- "file": (f"{conv_id}.jsonl", f, "text/plain"),
1030
- }
1031
- data_form = {
1032
- "conv_id": conv_id,
1033
- "filename": f"{conv_id}.jsonl",
1034
- }
1035
- headers = {}
1036
- if token_value:
1037
- headers["Authorization"] = f"Bearer {token_value}"
1038
- url = str(backend_url).rstrip("/") + f"/api/v1/issues/{issue_id}/studio_conversations"
1039
- r = requests.post(url, headers=headers, files=files, data=data_form, timeout=30)
1040
- if r.status_code >= 400:
1041
- try:
1042
- body = r.json()
1043
- except Exception:
1044
- body = {"detail": r.text[:200]}
1045
- return jsonify({"ok": False, "status": r.status_code, "error": body}), 200
1046
- return jsonify({"ok": True})
1047
- except Exception as exc:
1048
- return jsonify({"ok": False, "message": str(exc)}), 200
1049
-
1050
-
1051
- @bp.post("/chat")
1052
- def studio_chat():
1053
- data = request.get_json(silent=True) or {}
1054
- prompt = (data.get("prompt") or "").strip()
1055
- conv_id = _safe_conv_id((data.get("conv_id") or "").strip())
1056
- issue_id = (data.get("issue_id") or "").strip()
1057
- source_id = (data.get("source_id") or "").strip()
1058
- issue_details = data.get("issue_details") if isinstance(data.get("issue_details"), dict) else None
1059
- # Prefer model from request; else fall back to saved Studio config; else default
1060
- model = (data.get("model") or "").strip()
1061
- if not model:
1062
- try:
1063
- cfg_path = _studio_config_path()
1064
- if os.path.isfile(cfg_path):
1065
- with open(cfg_path, "r", encoding="utf-8") as f:
1066
- raw = f.read().strip()
1067
- if raw:
1068
- cfg = json.loads(raw)
1069
- model = (cfg.get("model") or "").strip()
1070
- except Exception:
1071
- # Ignore config read errors and continue to use default below
1072
- pass
1073
- if not model:
1074
- model = "gpt-oss:20b"
1075
- if not prompt:
1076
- return jsonify({"ok": False, "message": "Missing prompt"}), 400
1077
- # Streaming toggle via query or body
1078
- stream_flag_raw = (
1079
- (request.args.get("stream") or data.get("stream") or "").strip().lower()
1080
- )
1081
- stream_enabled = stream_flag_raw in ("1", "true", "yes", "on")
1082
- if stream_enabled:
1083
-
1084
- def generate_stream():
1085
- req = None
1086
- accumulated = ""
1087
- logged = False
1088
- try:
1089
- # Log user message at start of request
1090
- try:
1091
- _studio_conv_write(conv_id, {"role": "user", "text": prompt, "model": model, "issue_id": issue_id or None, "source_id": source_id or None, "issue_details": issue_details or None})
1092
- except Exception:
1093
- pass
1094
- # Try attach source details when present
1095
- src_details = None
1096
- try:
1097
- if source_id:
1098
- conf = _read_qalita_conf()
1099
- src_obj = _find_source_by_id(conf, source_id)
1100
- if isinstance(src_obj, dict):
1101
- src_details = src_obj
1102
- except Exception:
1103
- src_details = None
1104
-
1105
- req = requests.post(
1106
- "http://127.0.0.1:11434/api/generate",
1107
- json={"model": model, "prompt": _augment_prompt_with_context(prompt, issue_id, source_id, issue_details, src_details), "stream": True},
1108
- stream=True,
1109
- timeout=300,
1110
- )
1111
- if req.status_code != 200:
1112
- try:
1113
- body = req.json()
1114
- msg = (
1115
- (body.get("error") if isinstance(body, dict) else None)
1116
- or (body.get("message") if isinstance(body, dict) else None)
1117
- or str(body)
1118
- )
1119
- except Exception:
1120
- msg = f"Ollama error: {req.status_code}"
1121
- try:
1122
- _studio_conv_write(
1123
- conv_id,
1124
- {
1125
- "role": "assistant",
1126
- "text": accumulated or f"[ERROR] {msg}",
1127
- "model": model,
1128
- "ok": False,
1129
- "status": req.status_code,
1130
- "error": msg,
1131
- "stream": True,
1132
- "issue_id": issue_id or None,
1133
- "source_id": source_id or None,
1134
- },
1135
- )
1136
- logged = True
1137
- except Exception:
1138
- pass
1139
- yield f"[ERROR] {msg}"
1140
- return
1141
- for line in req.iter_lines(decode_unicode=True):
1142
- if not line:
1143
- continue
1144
- try:
1145
- obj = json.loads(line)
1146
- if obj.get("response"):
1147
- piece = obj["response"]
1148
- accumulated += piece
1149
- yield piece
1150
- if obj.get("done"):
1151
- break
1152
- except Exception:
1153
- # Fallback: passthrough raw line
1154
- accumulated += line
1155
- yield line
1156
- except GeneratorExit:
1157
- # Client disconnected/aborted
1158
- if req is not None:
1159
- try:
1160
- req.close()
1161
- except Exception:
1162
- pass
1163
- try:
1164
- if not logged:
1165
- _studio_conv_write(
1166
- conv_id,
1167
- {
1168
- "role": "assistant",
1169
- "text": accumulated,
1170
- "model": model,
1171
- "ok": True,
1172
- "interrupted": True,
1173
- "stream": True,
1174
- "issue_id": issue_id or None,
1175
- "source_id": source_id or None,
1176
- },
1177
- )
1178
- logged = True
1179
- except Exception:
1180
- pass
1181
- raise
1182
- except Exception as exc:
1183
- try:
1184
- if not logged:
1185
- _studio_conv_write(
1186
- conv_id,
1187
- {
1188
- "role": "assistant",
1189
- "text": accumulated or f"[ERROR] Failed to reach Ollama: {exc}",
1190
- "model": model,
1191
- "ok": False,
1192
- "error": str(exc),
1193
- "stream": True,
1194
- "issue_id": issue_id or None,
1195
- "source_id": source_id or None,
1196
- },
1197
- )
1198
- logged = True
1199
- except Exception:
1200
- pass
1201
- yield f"[ERROR] Failed to reach Ollama: {exc}"
1202
- finally:
1203
- if req is not None:
1204
- try:
1205
- req.close()
1206
- except Exception:
1207
- pass
1208
- try:
1209
- if not logged:
1210
- _studio_conv_write(
1211
- conv_id,
1212
- {
1213
- "role": "assistant",
1214
- "text": accumulated,
1215
- "model": model,
1216
- "ok": True,
1217
- "stream": True,
1218
- "issue_id": issue_id or None,
1219
- "source_id": source_id or None,
1220
- },
1221
- )
1222
- logged = True
1223
- except Exception:
1224
- pass
1225
-
1226
- return Response(stream_with_context(generate_stream()), mimetype="text/plain; charset=utf-8")
1227
- try:
1228
- # Log user message for non-streaming
1229
- try:
1230
- _studio_conv_write(conv_id, {"role": "user", "text": prompt, "model": model, "issue_id": issue_id or None, "source_id": source_id or None, "issue_details": issue_details or None})
1231
- except Exception:
1232
- pass
1233
- # Try attach source details when present
1234
- src_details = None
1235
- try:
1236
- if source_id:
1237
- conf = _read_qalita_conf()
1238
- src_obj = _find_source_by_id(conf, source_id)
1239
- if isinstance(src_obj, dict):
1240
- src_details = src_obj
1241
- except Exception:
1242
- src_details = None
1243
-
1244
- r = requests.post(
1245
- "http://127.0.0.1:11434/api/generate",
1246
- json={"model": model, "prompt": _augment_prompt_with_context(prompt, issue_id, source_id, issue_details, src_details), "stream": False},
1247
- timeout=60,
1248
- )
1249
- if r.status_code == 200:
1250
- out = r.json().get("response", "")
1251
- try:
1252
- _studio_conv_write(conv_id, {"role": "assistant", "text": out, "model": model, "ok": True, "stream": False, "issue_id": issue_id or None, "source_id": source_id or None})
1253
- except Exception:
1254
- pass
1255
- return jsonify({"ok": True, "response": out, "conv_id": conv_id})
1256
- if r.status_code == 404:
1257
- try:
1258
- _studio_conv_write(conv_id, {"role": "assistant", "text": "", "model": model, "ok": False, "status": r.status_code, "error": "model_not_found", "stream": False})
1259
- except Exception:
1260
- pass
1261
- return (
1262
- jsonify(
1263
- {
1264
- "ok": False,
1265
- "message": f"Model not found in Ollama: '{model}'. Install it with 'ollama pull {model}' or update your Studio model.",
1266
- }
1267
- ),
1268
- 500,
1269
- )
1270
- # Try to surface error body if available
1271
- try:
1272
- err_body = r.json()
1273
- except Exception:
1274
- err_body = {"detail": r.text[:200]}
1275
- try:
1276
- _studio_conv_write(conv_id, {"role": "assistant", "text": "", "model": model, "ok": False, "status": r.status_code, "error": err_body, "stream": False})
1277
- except Exception:
1278
- pass
1279
- return (
1280
- jsonify(
1281
- {
1282
- "ok": False,
1283
- "message": f"Ollama error: {r.status_code}",
1284
- "error": err_body,
1285
- }
1286
- ),
1287
- 500,
1288
- )
1289
- except Exception as exc:
1290
- try:
1291
- _studio_conv_write(conv_id, {"role": "assistant", "text": "", "model": model, "ok": False, "error": str(exc), "stream": False})
1292
- except Exception:
1293
- pass
1294
- return jsonify({"ok": False, "message": f"Failed to reach Ollama: {exc}"}), 502