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.
- qalita/__main__.py +236 -9
- qalita/_frontend/.next/static/chunks/023d923a37d494fc.js +1 -0
- qalita/_frontend/.next/static/chunks/0f84739db4a8acc7.js +1 -0
- qalita/_frontend/.next/static/chunks/1107bdca1eff6d34.css +1 -0
- qalita/_frontend/.next/static/chunks/247eb132b7f7b574.js +1 -0
- qalita/_frontend/.next/static/chunks/4b0c5de8d4cc313f.js +1 -0
- qalita/_frontend/.next/static/chunks/6c99da4248e4fcfc.js +1 -0
- qalita/_frontend/.next/static/chunks/a6dad97d9634a72d.js +1 -0
- qalita/_frontend/.next/static/chunks/bb29c2be4df20a40.js +1 -0
- qalita/_frontend/.next/static/chunks/bba035711c7e37a2.js +4 -0
- qalita/_frontend/.next/static/chunks/c903f9580a4b6572.js +2 -0
- qalita/_frontend/.next/static/chunks/cbd55ab9639e1e66.js +1 -0
- qalita/_frontend/.next/static/chunks/e393fec0d8ba175d.js +3 -0
- qalita/_frontend/.next/static/chunks/ff1a16fafef87110.js +1 -0
- qalita/_frontend/.next/static/chunks/turbopack-1ad58da399056f41.js +3 -0
- qalita/_frontend/.next/static/fm8OzItmoekYnFcSZ5R8j/_buildManifest.js +11 -0
- qalita/_frontend/.next/static/fm8OzItmoekYnFcSZ5R8j/_ssgManifest.js +1 -0
- qalita/_frontend/node_modules/@img/colour/color.cjs +1594 -0
- qalita/_frontend/node_modules/@img/colour/index.cjs +1 -0
- qalita/_frontend/node_modules/@img/colour/package.json +45 -0
- qalita/_frontend/node_modules/@img/sharp-libvips-linux-x64/README.md +46 -0
- qalita/_frontend/node_modules/@img/sharp-libvips-linux-x64/lib/glib-2.0/include/glibconfig.h +221 -0
- qalita/_frontend/node_modules/@img/sharp-libvips-linux-x64/lib/index.js +1 -0
- qalita/_frontend/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- qalita/_frontend/node_modules/@img/sharp-libvips-linux-x64/package.json +42 -0
- qalita/_frontend/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +46 -0
- qalita/_frontend/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +221 -0
- qalita/_frontend/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +1 -0
- qalita/_frontend/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- qalita/_frontend/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +42 -0
- qalita/_frontend/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
- qalita/_frontend/node_modules/@img/sharp-linux-x64/package.json +46 -0
- qalita/_frontend/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
- qalita/_frontend/node_modules/@img/sharp-linuxmusl-x64/package.json +46 -0
- qalita/_frontend/node_modules/@next/env/dist/index.js +1 -0
- qalita/_frontend/node_modules/@next/env/package.json +36 -0
- qalita/_frontend/node_modules/@swc/helpers/cjs/_interop_require_default.cjs +6 -0
- qalita/_frontend/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs +38 -0
- qalita/_frontend/node_modules/@swc/helpers/package.json +471 -0
- qalita/_frontend/node_modules/client-only/index.js +0 -0
- qalita/_frontend/node_modules/client-only/package.json +19 -0
- qalita/_frontend/node_modules/detect-libc/lib/detect-libc.js +313 -0
- qalita/_frontend/node_modules/detect-libc/lib/elf.js +39 -0
- qalita/_frontend/node_modules/detect-libc/lib/filesystem.js +51 -0
- qalita/_frontend/node_modules/detect-libc/lib/process.js +24 -0
- qalita/_frontend/node_modules/detect-libc/package.json +44 -0
- qalita/_frontend/node_modules/next/dist/build/adapter/build-complete.js +993 -0
- qalita/_frontend/node_modules/next/dist/build/after-production-compile.js +95 -0
- qalita/_frontend/node_modules/next/dist/build/analysis/extract-const-value.js +205 -0
- qalita/_frontend/node_modules/next/dist/build/analysis/get-page-static-info.js +601 -0
- qalita/_frontend/node_modules/next/dist/build/analysis/parse-module.js +20 -0
- qalita/_frontend/node_modules/next/dist/build/babel/loader/get-config.js +429 -0
- qalita/_frontend/node_modules/next/dist/build/babel/loader/index.js +56 -0
- qalita/_frontend/node_modules/next/dist/build/babel/loader/transform.js +103 -0
- qalita/_frontend/node_modules/next/dist/build/babel/loader/util.js +20 -0
- qalita/_frontend/node_modules/next/dist/build/babel/plugins/commonjs.js +42 -0
- qalita/_frontend/node_modules/next/dist/build/babel/plugins/jsx-pragma.js +74 -0
- qalita/_frontend/node_modules/next/dist/build/babel/plugins/next-font-unsupported.js +36 -0
- qalita/_frontend/node_modules/next/dist/build/babel/plugins/next-page-config.js +104 -0
- qalita/_frontend/node_modules/next/dist/build/babel/plugins/next-page-disallow-re-export-all-exports.js +29 -0
- qalita/_frontend/node_modules/next/dist/build/babel/plugins/next-ssg-transform.js +345 -0
- qalita/_frontend/node_modules/next/dist/build/babel/plugins/optimize-hook-destructuring.js +60 -0
- qalita/_frontend/node_modules/next/dist/build/babel/plugins/react-loadable-plugin.js +145 -0
- qalita/_frontend/node_modules/next/dist/build/babel/preset.js +250 -0
- qalita/_frontend/node_modules/next/dist/build/build-context.js +58 -0
- qalita/_frontend/node_modules/next/dist/build/collect-build-traces.js +536 -0
- qalita/_frontend/node_modules/next/dist/build/compiler.js +88 -0
- qalita/_frontend/node_modules/next/dist/build/create-compiler-aliases.js +436 -0
- qalita/_frontend/node_modules/next/dist/build/define-env.js +228 -0
- qalita/_frontend/node_modules/next/dist/build/deployment-id.js +18 -0
- qalita/_frontend/node_modules/next/dist/build/duration-to-string.js +99 -0
- qalita/_frontend/node_modules/next/dist/build/entries.js +798 -0
- qalita/_frontend/node_modules/next/dist/build/generate-build-id.js +31 -0
- qalita/_frontend/node_modules/next/dist/build/get-babel-config-file.js +35 -0
- qalita/_frontend/node_modules/next/dist/build/get-babel-loader-config.js +109 -0
- qalita/_frontend/node_modules/next/dist/build/get-static-info-including-layouts.js +81 -0
- qalita/_frontend/node_modules/next/dist/build/handle-entrypoints.js +176 -0
- qalita/_frontend/node_modules/next/dist/build/handle-externals.js +290 -0
- qalita/_frontend/node_modules/next/dist/build/index.js +2728 -0
- qalita/_frontend/node_modules/next/dist/build/is-writeable.js +26 -0
- qalita/_frontend/node_modules/next/dist/build/jest/__mocks__/empty.js +10 -0
- qalita/_frontend/node_modules/next/dist/build/jest/__mocks__/fileMock.js +15 -0
- qalita/_frontend/node_modules/next/dist/build/jest/__mocks__/nextFontMock.js +20 -0
- qalita/_frontend/node_modules/next/dist/build/jest/__mocks__/styleMock.js +10 -0
- qalita/_frontend/node_modules/next/dist/build/jest/jest.js +227 -0
- qalita/_frontend/node_modules/next/dist/build/jest/object-proxy.js +50 -0
- qalita/_frontend/node_modules/next/dist/build/load-entrypoint.js +30 -0
- qalita/_frontend/node_modules/next/dist/build/load-jsconfig.js +162 -0
- qalita/_frontend/node_modules/next/dist/build/lockfile.js +160 -0
- qalita/_frontend/node_modules/next/dist/build/manifests/formatter/format-manifest.js +19 -0
- qalita/_frontend/node_modules/next/dist/build/next-config-ts/require-hook.js +85 -0
- qalita/_frontend/node_modules/next/dist/build/next-config-ts/transpile-config.js +172 -0
- qalita/_frontend/node_modules/next/dist/build/next-dir-paths.js +37 -0
- qalita/_frontend/node_modules/next/dist/build/normalize-catchall-routes.js +76 -0
- qalita/_frontend/node_modules/next/dist/build/output/format.js +84 -0
- qalita/_frontend/node_modules/next/dist/build/output/index.js +186 -0
- qalita/_frontend/node_modules/next/dist/build/output/log.js +138 -0
- qalita/_frontend/node_modules/next/dist/build/output/store.js +204 -0
- qalita/_frontend/node_modules/next/dist/build/page-extensions-type.js +6 -0
- qalita/_frontend/node_modules/next/dist/build/polyfills/fetch/index.js +6 -0
- qalita/_frontend/node_modules/next/dist/build/polyfills/fetch/whatwg-fetch.js +7 -0
- qalita/_frontend/node_modules/next/dist/build/polyfills/object-assign.js +6 -0
- qalita/_frontend/node_modules/next/dist/build/polyfills/object.assign/auto.js +4 -0
- qalita/_frontend/node_modules/next/dist/build/polyfills/object.assign/implementation.js +4 -0
- qalita/_frontend/node_modules/next/dist/build/polyfills/object.assign/index.js +19 -0
- qalita/_frontend/node_modules/next/dist/build/polyfills/object.assign/polyfill.js +6 -0
- qalita/_frontend/node_modules/next/dist/build/polyfills/object.assign/shim.js +6 -0
- qalita/_frontend/node_modules/next/dist/build/polyfills/polyfill-module.js +1 -0
- qalita/_frontend/node_modules/next/dist/build/polyfills/polyfill-nomodule.js +1 -0
- qalita/_frontend/node_modules/next/dist/build/polyfills/process.js +5 -0
- qalita/_frontend/node_modules/next/dist/build/preview-key-utils.js +91 -0
- qalita/_frontend/node_modules/next/dist/build/progress.js +151 -0
- qalita/_frontend/node_modules/next/dist/build/rendering-mode.js +26 -0
- qalita/_frontend/node_modules/next/dist/build/segment-config/app/app-segment-config.js +145 -0
- qalita/_frontend/node_modules/next/dist/build/segment-config/app/app-segments.js +213 -0
- qalita/_frontend/node_modules/next/dist/build/segment-config/app/collect-root-param-keys.js +52 -0
- qalita/_frontend/node_modules/next/dist/build/segment-config/middleware/middleware-config.js +121 -0
- qalita/_frontend/node_modules/next/dist/build/segment-config/pages/pages-segment-config.js +62 -0
- qalita/_frontend/node_modules/next/dist/build/sort-by-page-exts.js +30 -0
- qalita/_frontend/node_modules/next/dist/build/spinner.js +138 -0
- qalita/_frontend/node_modules/next/dist/build/static-paths/app.js +823 -0
- qalita/_frontend/node_modules/next/dist/build/static-paths/pages.js +169 -0
- qalita/_frontend/node_modules/next/dist/build/static-paths/types.js +6 -0
- qalita/_frontend/node_modules/next/dist/build/static-paths/utils.js +47 -0
- qalita/_frontend/node_modules/next/dist/build/swc/helpers.js +15 -0
- qalita/_frontend/node_modules/next/dist/build/swc/index.js +1267 -0
- qalita/_frontend/node_modules/next/dist/build/swc/install-bindings.js +30 -0
- qalita/_frontend/node_modules/next/dist/build/swc/jest-transformer.js +75 -0
- qalita/_frontend/node_modules/next/dist/build/swc/options.js +386 -0
- qalita/_frontend/node_modules/next/dist/build/swc/types.js +6 -0
- qalita/_frontend/node_modules/next/dist/build/templates/app-page.js +1064 -0
- qalita/_frontend/node_modules/next/dist/build/templates/app-route.js +422 -0
- qalita/_frontend/node_modules/next/dist/build/templates/edge-app-route.js +88 -0
- qalita/_frontend/node_modules/next/dist/build/templates/edge-ssr-app.js +313 -0
- qalita/_frontend/node_modules/next/dist/build/templates/edge-ssr.js +329 -0
- qalita/_frontend/node_modules/next/dist/build/templates/helpers.js +36 -0
- qalita/_frontend/node_modules/next/dist/build/templates/middleware.js +114 -0
- qalita/_frontend/node_modules/next/dist/build/templates/pages-api.js +194 -0
- qalita/_frontend/node_modules/next/dist/build/templates/pages-edge-api.js +38 -0
- qalita/_frontend/node_modules/next/dist/build/templates/pages.js +155 -0
- qalita/_frontend/node_modules/next/dist/build/turbopack-build/impl.js +243 -0
- qalita/_frontend/node_modules/next/dist/build/turbopack-build/index.js +85 -0
- qalita/_frontend/node_modules/next/dist/build/turborepo-access-trace/env.js +29 -0
- qalita/_frontend/node_modules/next/dist/build/turborepo-access-trace/helpers.js +104 -0
- qalita/_frontend/node_modules/next/dist/build/turborepo-access-trace/index.js +30 -0
- qalita/_frontend/node_modules/next/dist/build/turborepo-access-trace/result.js +51 -0
- qalita/_frontend/node_modules/next/dist/build/turborepo-access-trace/tcp.js +41 -0
- qalita/_frontend/node_modules/next/dist/build/turborepo-access-trace/types.js +8 -0
- qalita/_frontend/node_modules/next/dist/build/type-check.js +152 -0
- qalita/_frontend/node_modules/next/dist/build/utils.js +1220 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/alias/react-dom-server-experimental.js +32 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/alias/react-dom-server.js +32 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/cache-invalidation.js +91 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/base.js +82 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/index.js +562 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/loaders/client.js +49 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/loaders/file-resolve.js +21 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/loaders/getCssModuleLocalIdent.js +37 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/loaders/global.js +65 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/loaders/index.js +22 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/loaders/modules.js +86 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/loaders/next-font.js +62 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/messages.js +45 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/css/plugins.js +190 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/images/index.js +42 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/config/blocks/images/messages.js +16 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/config/helpers.js +78 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/config/index.js +46 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/config/utils.js +13 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/CssSyntaxError.js +32 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/camelcase.js +93 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js +287 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/plugins/index.js +36 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/plugins/postcss-icss-parser.js +105 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/plugins/postcss-import-parser.js +220 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/plugins/postcss-url-parser.js +307 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js +83 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/getUrl.js +23 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/css-loader/src/utils.js +459 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/devtool/devtool-style-inject.js +129 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/empty-loader.js +14 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/error-loader.js +36 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/get-module-build-info.js +15 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/codegen.js +156 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/index.js +27 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/interface.js +17 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/loader.js +429 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/minify.js +94 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/lightningcss-loader/src/utils.js +58 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/metadata/discover.js +122 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/metadata/resolve-route-data.js +171 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/metadata/types.js +7 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/modularize-import-loader.js +39 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-app-loader/create-app-route-code.js +65 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js +747 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-barrel-loader.js +268 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js +37 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-edge-app-route-loader/index.js +54 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-edge-function-loader.js +52 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-edge-ssr-loader/index.js +100 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-error-browser-binary-loader.js +21 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js +32 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js +45 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-client-module-loader.js +49 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-css-loader.js +56 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-client-wrapper.js +33 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-validate.js +27 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-loader/cache-wrapper.js +13 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-loader/index.js +211 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js +14 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-loader/server-reference.js +13 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-loader/track-dynamic-import.js +13 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-flight-server-reference-proxy-loader.js +29 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js +133 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-font-loader/postcss-next-font.js +169 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-image-loader/blur.js +73 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-image-loader/index.js +80 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-invalid-import-error-loader.js +28 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js +158 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-metadata-route-loader.js +342 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-middleware-asset-loader.js +46 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-middleware-loader.js +59 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-middleware-wasm-loader.js +46 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-root-params-loader.js +164 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js +141 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-style-loader/index.js +220 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoLinkTag.js +61 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/injectStylesIntoStyleTag.js +221 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-style-loader/runtime/isEqualLocals.js +27 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/next-swc-loader.js +241 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/Error.js +40 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/Warning.js +35 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js +125 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/utils.js +86 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/index.js +101 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/lib/file-protocol.js +78 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/lib/join-function.js +190 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/lib/postcss.js +92 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/resolve-url-loader/lib/value-processor.js +97 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/loaders/utils.js +100 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/build-manifest-plugin-utils.js +79 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/build-manifest-plugin.js +183 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/copy-file-plugin.js +67 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/css-chunking-plugin.js +277 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/css-minimizer-plugin.js +92 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/devtools-ignore-list-plugin.js +78 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/eval-source-map-dev-tool-plugin.js +191 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/flight-client-entry-plugin.js +793 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.js +420 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/force-complete-runtime.js +42 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/jsconfig-paths-plugin.js +219 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/memory-with-gc-cache-plugin.js +114 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/middleware-plugin.js +611 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/mini-css-extract-plugin.js +24 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/minify-webpack-plugin/src/index.js +188 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.js +120 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/next-trace-entrypoints-plugin.js +542 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/next-types-plugin/index.js +428 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/next-types-plugin/shared.js +14 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/nextjs-require-cache-hot-reloader.js +57 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/optional-peer-dependency-resolve-plugin.js +45 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.js +146 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/profiling-plugin.js +282 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/react-loadable-plugin.js +169 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/rspack-flight-client-entry-plugin.js +97 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/rspack-profiling-plugin.js +62 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/slow-module-detection-plugin.js +190 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.js +62 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/telemetry-plugin/telemetry-plugin.js +188 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/telemetry-plugin/update-telemetry-loader-context-from-swc.js +28 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/telemetry-plugin/use-cache-tracker-utils.js +43 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/getModuleTrace.js +89 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/index.js +43 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parse-dynamic-code-evaluation-error.js +19 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseBabel.js +29 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseCss.js +29 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNextAppLoaderError.js +26 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNextFontError.js +33 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNextInvalidImportError.js +26 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseNotFoundError.js +166 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/parseScss.js +42 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/simpleWebpackError.js +18 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/plugins/wellknown-errors-plugin/webpackModuleError.js +138 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/stringify-request.js +15 -0
- qalita/_frontend/node_modules/next/dist/build/webpack/utils.js +109 -0
- qalita/_frontend/node_modules/next/dist/build/webpack-build/impl.js +380 -0
- qalita/_frontend/node_modules/next/dist/build/webpack-build/index.js +179 -0
- qalita/_frontend/node_modules/next/dist/build/webpack-config-rules/resolve.js +55 -0
- qalita/_frontend/node_modules/next/dist/build/webpack-config.js +2311 -0
- qalita/_frontend/node_modules/next/dist/build/worker.js +35 -0
- qalita/_frontend/node_modules/next/dist/build/write-build-id.js +19 -0
- qalita/_frontend/node_modules/next/dist/cli/next-test.js +171 -0
- qalita/_frontend/node_modules/next/dist/client/add-base-path.js +24 -0
- qalita/_frontend/node_modules/next/dist/client/app-build-id.js +49 -0
- qalita/_frontend/node_modules/next/dist/client/app-call-server.js +34 -0
- qalita/_frontend/node_modules/next/dist/client/app-find-source-map-url.js +38 -0
- qalita/_frontend/node_modules/next/dist/client/assign-location.js +29 -0
- qalita/_frontend/node_modules/next/dist/client/components/app-router-announcer.js +78 -0
- qalita/_frontend/node_modules/next/dist/client/components/app-router-headers.js +123 -0
- qalita/_frontend/node_modules/next/dist/client/components/app-router-instance.js +327 -0
- qalita/_frontend/node_modules/next/dist/client/components/app-router-utils.js +62 -0
- qalita/_frontend/node_modules/next/dist/client/components/app-router.js +515 -0
- qalita/_frontend/node_modules/next/dist/client/components/builtin/default.js +35 -0
- qalita/_frontend/node_modules/next/dist/client/components/builtin/global-error.js +82 -0
- qalita/_frontend/node_modules/next/dist/client/components/dev-root-http-access-fallback-boundary.js +52 -0
- qalita/_frontend/node_modules/next/dist/client/components/error-boundary.js +134 -0
- qalita/_frontend/node_modules/next/dist/client/components/errors/graceful-degrade-boundary.js +86 -0
- qalita/_frontend/node_modules/next/dist/client/components/errors/root-error-boundary.js +41 -0
- qalita/_frontend/node_modules/next/dist/client/components/forbidden.js +48 -0
- qalita/_frontend/node_modules/next/dist/client/components/handle-isr-error.js +31 -0
- qalita/_frontend/node_modules/next/dist/client/components/hooks-server-context.js +42 -0
- qalita/_frontend/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js +125 -0
- qalita/_frontend/node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js +72 -0
- qalita/_frontend/node_modules/next/dist/client/components/is-next-router-error.js +23 -0
- qalita/_frontend/node_modules/next/dist/client/components/links.js +292 -0
- qalita/_frontend/node_modules/next/dist/client/components/match-segments.js +32 -0
- qalita/_frontend/node_modules/next/dist/client/components/nav-failure-handler.js +61 -0
- qalita/_frontend/node_modules/next/dist/client/components/navigation-devtools.js +128 -0
- qalita/_frontend/node_modules/next/dist/client/components/navigation-untracked.js +65 -0
- qalita/_frontend/node_modules/next/dist/client/components/navigation.js +197 -0
- qalita/_frontend/node_modules/next/dist/client/components/navigation.react-server.js +72 -0
- qalita/_frontend/node_modules/next/dist/client/components/not-found.js +42 -0
- qalita/_frontend/node_modules/next/dist/client/components/readonly-url-search-params.js +41 -0
- qalita/_frontend/node_modules/next/dist/client/components/redirect-boundary.js +107 -0
- qalita/_frontend/node_modules/next/dist/client/components/redirect-error.js +52 -0
- qalita/_frontend/node_modules/next/dist/client/components/redirect-status-code.js +24 -0
- qalita/_frontend/node_modules/next/dist/client/components/redirect.js +91 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/apply-flight-data.js +53 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js +105 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/compute-changed-path.js +128 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/create-href-from-url.js +21 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js +78 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js +32 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/fetch-server-response.js +352 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/fill-cache-with-new-subtree-data.js +110 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js +131 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/handle-mutable.js +66 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/handle-segment-mismatch.js +25 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/invalidate-cache-by-router-state.js +32 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js +51 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js +875 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js +64 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js +38 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/reducers/hmr-refresh-reducer.js +95 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js +165 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js +105 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js +63 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js +279 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js +65 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/refetch-inactive-parallel-segments.js +104 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/router-reducer-types.js +62 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/router-reducer.js +66 -0
- qalita/_frontend/node_modules/next/dist/client/components/router-reducer/set-cache-busting-search-param.js +60 -0
- qalita/_frontend/node_modules/next/dist/client/components/segment-cache/cache-key.js +28 -0
- qalita/_frontend/node_modules/next/dist/client/components/segment-cache/cache-map.js +310 -0
- qalita/_frontend/node_modules/next/dist/client/components/segment-cache/cache.js +1419 -0
- qalita/_frontend/node_modules/next/dist/client/components/segment-cache/lru.js +141 -0
- qalita/_frontend/node_modules/next/dist/client/components/segment-cache/navigation.js +416 -0
- qalita/_frontend/node_modules/next/dist/client/components/segment-cache/prefetch.js +31 -0
- qalita/_frontend/node_modules/next/dist/client/components/segment-cache/scheduler.js +1150 -0
- qalita/_frontend/node_modules/next/dist/client/components/segment-cache/types.js +69 -0
- qalita/_frontend/node_modules/next/dist/client/components/segment-cache/vary-path.js +216 -0
- qalita/_frontend/node_modules/next/dist/client/components/static-generation-bailout.js +42 -0
- qalita/_frontend/node_modules/next/dist/client/components/unauthorized.js +49 -0
- qalita/_frontend/node_modules/next/dist/client/components/unrecognized-action-error.js +39 -0
- qalita/_frontend/node_modules/next/dist/client/components/unresolved-thenable.js +23 -0
- qalita/_frontend/node_modules/next/dist/client/components/unstable-rethrow.browser.js +28 -0
- qalita/_frontend/node_modules/next/dist/client/components/unstable-rethrow.js +25 -0
- qalita/_frontend/node_modules/next/dist/client/components/unstable-rethrow.server.js +32 -0
- qalita/_frontend/node_modules/next/dist/client/components/use-action-queue.js +102 -0
- qalita/_frontend/node_modules/next/dist/client/dev/debug-channel.js +72 -0
- qalita/_frontend/node_modules/next/dist/client/flight-data-helpers.js +219 -0
- qalita/_frontend/node_modules/next/dist/client/has-base-path.js +23 -0
- qalita/_frontend/node_modules/next/dist/client/lib/console.js +177 -0
- qalita/_frontend/node_modules/next/dist/client/normalize-trailing-slash.js +36 -0
- qalita/_frontend/node_modules/next/dist/client/remove-base-path.js +32 -0
- qalita/_frontend/node_modules/next/dist/client/route-params.js +230 -0
- qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/cookies/index.js +339 -0
- qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/cookies/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/ponyfill/index.js +46 -0
- qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/ponyfill/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/primitives/abort-controller.js.text.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/primitives/console.js.text.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/primitives/events.js.text.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/primitives/index.js +5 -0
- qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/primitives/load.js +18713 -0
- qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/primitives/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/primitives/stream.js +44 -0
- qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/primitives/timers.js.text.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/@edge-runtime/primitives/url.js.text.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/@hapi/accept/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/@hapi/accept/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/@mswjs/interceptors/ClientRequest/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/@napi-rs/triples/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/@napi-rs/triples/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/@opentelemetry/api/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/@opentelemetry/api/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/async-retry/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/async-retry/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/async-sema/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/async-sema/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/babel/code-frame.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/babel/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/babel-code-frame/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/babel-code-frame/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/busboy/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/busboy/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/bytes/index.js +8 -0
- qalita/_frontend/node_modules/next/dist/compiled/bytes/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/ci-info/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/ci-info/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/commander/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/commander/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/comment-json/index.js +7 -0
- qalita/_frontend/node_modules/next/dist/compiled/comment-json/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/compression/index.js +58 -0
- qalita/_frontend/node_modules/next/dist/compiled/compression/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/conf/index.js +15 -0
- qalita/_frontend/node_modules/next/dist/compiled/conf/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/content-disposition/index.js +6 -0
- qalita/_frontend/node_modules/next/dist/compiled/content-disposition/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/cookie/index.js +7 -0
- qalita/_frontend/node_modules/next/dist/compiled/cookie/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/cross-spawn/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/cross-spawn/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/debug/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/debug/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/edge-runtime/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/edge-runtime/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/find-up/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/find-up/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/fresh/index.js +8 -0
- qalita/_frontend/node_modules/next/dist/compiled/fresh/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/http-proxy/index.js +34 -0
- qalita/_frontend/node_modules/next/dist/compiled/http-proxy/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/image-detector/detector.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/image-size/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/image-size/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/ipaddr.js/ipaddr.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/ipaddr.js/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/is-animated/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/is-animated/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/is-docker/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/is-docker/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/is-wsl/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/is-wsl/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/jsonwebtoken/index.js +11 -0
- qalita/_frontend/node_modules/next/dist/compiled/jsonwebtoken/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/nanoid/index.cjs +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/nanoid/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +24 -0
- qalita/_frontend/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +24 -0
- qalita/_frontend/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +6 -0
- qalita/_frontend/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +20 -0
- qalita/_frontend/node_modules/next/dist/compiled/p-limit/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/p-limit/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/p-queue/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/p-queue/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/path-browserify/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/path-browserify/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/path-to-regexp/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/path-to-regexp/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/picomatch/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/picomatch/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/react-is/cjs/react-is.development.js +133 -0
- qalita/_frontend/node_modules/next/dist/compiled/react-is/cjs/react-is.production.js +130 -0
- qalita/_frontend/node_modules/next/dist/compiled/react-is/index.js +7 -0
- qalita/_frontend/node_modules/next/dist/compiled/react-is/package.json +26 -0
- qalita/_frontend/node_modules/next/dist/compiled/regenerator-runtime/package.json +19 -0
- qalita/_frontend/node_modules/next/dist/compiled/regenerator-runtime/runtime.js +729 -0
- qalita/_frontend/node_modules/next/dist/compiled/semver/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/semver/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/send/index.js +70 -0
- qalita/_frontend/node_modules/next/dist/compiled/send/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/source-map/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/source-map/source-map.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/stacktrace-parser/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/string-hash/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/string-hash/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/strip-ansi/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/strip-ansi/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/superstruct/index.cjs +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/superstruct/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/tar/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/tar/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/text-table/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/text-table/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/watchpack/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/watchpack/watchpack.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/ws/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/ws/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/zod/index.cjs +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/zod/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/zod-validation-error/index.js +1 -0
- qalita/_frontend/node_modules/next/dist/compiled/zod-validation-error/package.json +1 -0
- qalita/_frontend/node_modules/next/dist/experimental/testmode/context.js +57 -0
- qalita/_frontend/node_modules/next/dist/experimental/testmode/fetch.js +142 -0
- qalita/_frontend/node_modules/next/dist/experimental/testmode/httpget.js +26 -0
- qalita/_frontend/node_modules/next/dist/experimental/testmode/server-edge.js +32 -0
- qalita/_frontend/node_modules/next/dist/experimental/testmode/server.js +62 -0
- qalita/_frontend/node_modules/next/dist/export/helpers/create-incremental-cache.js +61 -0
- qalita/_frontend/node_modules/next/dist/lib/batcher.js +65 -0
- qalita/_frontend/node_modules/next/dist/lib/build-custom-route.js +46 -0
- qalita/_frontend/node_modules/next/dist/lib/bundler.js +97 -0
- qalita/_frontend/node_modules/next/dist/lib/client-and-server-references.js +54 -0
- qalita/_frontend/node_modules/next/dist/lib/coalesced-function.js +39 -0
- qalita/_frontend/node_modules/next/dist/lib/compile-error.js +14 -0
- qalita/_frontend/node_modules/next/dist/lib/constants.js +410 -0
- qalita/_frontend/node_modules/next/dist/lib/create-client-router-filter.js +67 -0
- qalita/_frontend/node_modules/next/dist/lib/detached-promise.js +32 -0
- qalita/_frontend/node_modules/next/dist/lib/detect-typo.js +51 -0
- qalita/_frontend/node_modules/next/dist/lib/download-swc.js +183 -0
- qalita/_frontend/node_modules/next/dist/lib/error-telemetry-utils.js +42 -0
- qalita/_frontend/node_modules/next/dist/lib/fallback.js +100 -0
- qalita/_frontend/node_modules/next/dist/lib/fatal-error.js +14 -0
- qalita/_frontend/node_modules/next/dist/lib/file-exists.js +53 -0
- qalita/_frontend/node_modules/next/dist/lib/find-config.js +102 -0
- qalita/_frontend/node_modules/next/dist/lib/find-pages-dir.js +65 -0
- qalita/_frontend/node_modules/next/dist/lib/find-root.js +122 -0
- qalita/_frontend/node_modules/next/dist/lib/format-cli-help-output.js +84 -0
- qalita/_frontend/node_modules/next/dist/lib/format-dynamic-import-path.js +24 -0
- qalita/_frontend/node_modules/next/dist/lib/format-server-error.js +74 -0
- qalita/_frontend/node_modules/next/dist/lib/framework/boundary-components.js +62 -0
- qalita/_frontend/node_modules/next/dist/lib/framework/boundary-constants.js +36 -0
- qalita/_frontend/node_modules/next/dist/lib/fs/rename.js +87 -0
- qalita/_frontend/node_modules/next/dist/lib/fs/write-atomic.js +28 -0
- qalita/_frontend/node_modules/next/dist/lib/generate-interception-routes-rewrites.js +70 -0
- qalita/_frontend/node_modules/next/dist/lib/get-files-in-dir.js +33 -0
- qalita/_frontend/node_modules/next/dist/lib/get-network-host.js +44 -0
- qalita/_frontend/node_modules/next/dist/lib/get-package-version.js +118 -0
- qalita/_frontend/node_modules/next/dist/lib/get-project-dir.js +51 -0
- qalita/_frontend/node_modules/next/dist/lib/has-necessary-dependencies.js +49 -0
- qalita/_frontend/node_modules/next/dist/lib/helpers/get-cache-directory.js +66 -0
- qalita/_frontend/node_modules/next/dist/lib/helpers/get-npx-command.js +29 -0
- qalita/_frontend/node_modules/next/dist/lib/helpers/get-online.js +50 -0
- qalita/_frontend/node_modules/next/dist/lib/helpers/get-pkg-manager.js +63 -0
- qalita/_frontend/node_modules/next/dist/lib/helpers/get-registry.js +45 -0
- qalita/_frontend/node_modules/next/dist/lib/helpers/get-reserved-port.js +116 -0
- qalita/_frontend/node_modules/next/dist/lib/helpers/install.js +83 -0
- qalita/_frontend/node_modules/next/dist/lib/import-next-warning.js +50 -0
- qalita/_frontend/node_modules/next/dist/lib/inline-static-env.js +112 -0
- qalita/_frontend/node_modules/next/dist/lib/install-dependencies.js +40 -0
- qalita/_frontend/node_modules/next/dist/lib/interop-default.js +15 -0
- qalita/_frontend/node_modules/next/dist/lib/is-api-route.js +15 -0
- qalita/_frontend/node_modules/next/dist/lib/is-app-page-route.js +15 -0
- qalita/_frontend/node_modules/next/dist/lib/is-app-route-route.js +15 -0
- qalita/_frontend/node_modules/next/dist/lib/is-edge-runtime.js +16 -0
- qalita/_frontend/node_modules/next/dist/lib/is-error.js +78 -0
- qalita/_frontend/node_modules/next/dist/lib/is-internal-component.js +36 -0
- qalita/_frontend/node_modules/next/dist/lib/is-serializable-props.js +106 -0
- qalita/_frontend/node_modules/next/dist/lib/load-custom-routes.js +550 -0
- qalita/_frontend/node_modules/next/dist/lib/memory/gc-observer.js +53 -0
- qalita/_frontend/node_modules/next/dist/lib/memory/shutdown.js +29 -0
- qalita/_frontend/node_modules/next/dist/lib/memory/startup.js +47 -0
- qalita/_frontend/node_modules/next/dist/lib/memory/trace.js +109 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/constants.js +40 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/default-metadata.js +82 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/generate/alternate.js +55 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/generate/basic.js +307 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/generate/icon-mark.js +22 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/generate/icons.js +64 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/generate/meta.js +123 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/generate/opengraph.js +478 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/generate/utils.js +52 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/get-metadata-route.js +114 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/is-metadata-route.js +221 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/metadata-context.js +18 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/metadata.js +237 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/resolve-metadata.js +859 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/resolvers/resolve-basics.js +232 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/resolvers/resolve-icons.js +56 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/resolvers/resolve-opengraph.js +199 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/resolvers/resolve-title.js +40 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/resolvers/resolve-url.js +135 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/types/alternative-urls-types.js +7 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/types/extra-types.js +9 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/types/icons.js +6 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/types/manifest-types.js +6 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/types/metadata-interface.js +18 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/types/metadata-types.js +10 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/types/opengraph-types.js +6 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/types/resolvers.js +6 -0
- qalita/_frontend/node_modules/next/dist/lib/metadata/types/twitter-types.js +7 -0
- qalita/_frontend/node_modules/next/dist/lib/mime-type.js +20 -0
- qalita/_frontend/node_modules/next/dist/lib/mkcert.js +204 -0
- qalita/_frontend/node_modules/next/dist/lib/multi-file-writer.js +75 -0
- qalita/_frontend/node_modules/next/dist/lib/needs-experimental-react.js +16 -0
- qalita/_frontend/node_modules/next/dist/lib/non-nullable.js +15 -0
- qalita/_frontend/node_modules/next/dist/lib/normalize-path.js +21 -0
- qalita/_frontend/node_modules/next/dist/lib/oxford-comma-list.js +15 -0
- qalita/_frontend/node_modules/next/dist/lib/page-types.js +18 -0
- qalita/_frontend/node_modules/next/dist/lib/patch-incorrect-lockfile.js +185 -0
- qalita/_frontend/node_modules/next/dist/lib/pick.js +19 -0
- qalita/_frontend/node_modules/next/dist/lib/picocolors.js +177 -0
- qalita/_frontend/node_modules/next/dist/lib/pretty-bytes.js +74 -0
- qalita/_frontend/node_modules/next/dist/lib/realpath.js +20 -0
- qalita/_frontend/node_modules/next/dist/lib/recursive-copy.js +76 -0
- qalita/_frontend/node_modules/next/dist/lib/recursive-delete.js +137 -0
- qalita/_frontend/node_modules/next/dist/lib/recursive-readdir.js +124 -0
- qalita/_frontend/node_modules/next/dist/lib/redirect-status.js +46 -0
- qalita/_frontend/node_modules/next/dist/lib/require-instrumentation-client.js +26 -0
- qalita/_frontend/node_modules/next/dist/lib/resolve-build-paths.js +181 -0
- qalita/_frontend/node_modules/next/dist/lib/resolve-from.js +65 -0
- qalita/_frontend/node_modules/next/dist/lib/route-pattern-normalizer.js +107 -0
- qalita/_frontend/node_modules/next/dist/lib/scheduler.js +64 -0
- qalita/_frontend/node_modules/next/dist/lib/semver-noop.js +18 -0
- qalita/_frontend/node_modules/next/dist/lib/setup-exception-listeners.js +11 -0
- qalita/_frontend/node_modules/next/dist/lib/static-env.js +92 -0
- qalita/_frontend/node_modules/next/dist/lib/try-to-parse-path.js +68 -0
- qalita/_frontend/node_modules/next/dist/lib/turbopack-warning.js +188 -0
- qalita/_frontend/node_modules/next/dist/lib/typescript/diagnosticFormatter.js +240 -0
- qalita/_frontend/node_modules/next/dist/lib/typescript/getTypeScriptConfiguration.js +73 -0
- qalita/_frontend/node_modules/next/dist/lib/typescript/getTypeScriptIntent.js +52 -0
- qalita/_frontend/node_modules/next/dist/lib/typescript/missingDependencyError.js +27 -0
- qalita/_frontend/node_modules/next/dist/lib/typescript/runTypeCheck.js +95 -0
- qalita/_frontend/node_modules/next/dist/lib/typescript/writeAppTypeDeclarations.js +65 -0
- qalita/_frontend/node_modules/next/dist/lib/typescript/writeConfigurationDefaults.js +405 -0
- qalita/_frontend/node_modules/next/dist/lib/url.js +75 -0
- qalita/_frontend/node_modules/next/dist/lib/verify-partytown-setup.js +115 -0
- qalita/_frontend/node_modules/next/dist/lib/verify-root-layout.js +165 -0
- qalita/_frontend/node_modules/next/dist/lib/verify-typescript-setup.js +170 -0
- qalita/_frontend/node_modules/next/dist/lib/wait.js +19 -0
- qalita/_frontend/node_modules/next/dist/lib/with-promise-cache.js +24 -0
- qalita/_frontend/node_modules/next/dist/lib/worker.js +215 -0
- qalita/_frontend/node_modules/next/dist/next-devtools/server/shared.js +61 -0
- qalita/_frontend/node_modules/next/dist/server/ReactDOMServerPages.js +16 -0
- qalita/_frontend/node_modules/next/dist/server/accept-header.js +132 -0
- qalita/_frontend/node_modules/next/dist/server/after/after-context.js +140 -0
- qalita/_frontend/node_modules/next/dist/server/after/after.js +26 -0
- qalita/_frontend/node_modules/next/dist/server/after/awaiter.js +74 -0
- qalita/_frontend/node_modules/next/dist/server/after/builtin-request-context.js +38 -0
- qalita/_frontend/node_modules/next/dist/server/after/index.js +21 -0
- qalita/_frontend/node_modules/next/dist/server/after/run-with-after.js +35 -0
- qalita/_frontend/node_modules/next/dist/server/api-utils/get-cookie-parser.js +22 -0
- qalita/_frontend/node_modules/next/dist/server/api-utils/index.js +201 -0
- qalita/_frontend/node_modules/next/dist/server/api-utils/node/api-resolver.js +395 -0
- qalita/_frontend/node_modules/next/dist/server/api-utils/node/parse-body.js +79 -0
- qalita/_frontend/node_modules/next/dist/server/api-utils/node/try-get-preview-data.js +86 -0
- qalita/_frontend/node_modules/next/dist/server/api-utils/web.js +17 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/action-async-storage-instance.js +14 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/action-async-storage.external.js +13 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/action-handler.js +916 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/action-utils.js +90 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js +14 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/after-task-async-storage.external.js +13 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/app-render-prerender-utils.js +228 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/app-render-render-utils.js +91 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/app-render.js +3470 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/async-local-storage.js +76 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/cache-signal.js +181 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/collect-segment-data.js +270 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/console-async-storage-instance.js +14 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/console-async-storage.external.js +13 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js +33 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/create-component-tree.js +754 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/create-error-handler.js +220 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js +76 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/csrf-protection.js +75 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js +14 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js +13 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/dynamic-rendering.js +715 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/encryption-utils-server.js +114 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/encryption-utils.js +198 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/encryption.js +237 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/entry-base.js +237 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/flight-render-result.js +27 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/get-asset-query-string.js +29 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/get-css-inlined-link-tags.js +48 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/get-layer-assets.js +65 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/get-preloadable-fonts.js +39 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/get-script-nonce-from-header.js +44 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/get-short-dynamic-param-type.js +25 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/has-loading-component-in-tree.js +19 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/interop-default.js +17 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/make-get-server-inserted-html.js +92 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/metadata-insertion/create-server-inserted-metadata.js +28 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/module-loading/track-dynamic-import.js +57 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js +32 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js +66 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js +49 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/postponed-state.js +156 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/prospective-render-utils.js +56 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/react-large-shell-error.js +17 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/react-server.node.js +39 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/render-css-resource.js +52 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/required-scripts.js +76 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/rsc/postpone.js +18 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/rsc/preloads.js +74 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/rsc/taint.js +79 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/segment-explorer-path.js +103 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/server-inserted-html.js +77 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/staged-rendering.js +127 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/staged-validation.js +32 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/strip-flight-headers.js +18 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/types.js +59 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/use-flight-response.js +165 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js +185 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/work-async-storage-instance.js +14 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/work-async-storage.external.js +13 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js +14 -0
- qalita/_frontend/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js +252 -0
- qalita/_frontend/node_modules/next/dist/server/async-storage/draft-mode-provider.js +62 -0
- qalita/_frontend/node_modules/next/dist/server/async-storage/request-store.js +144 -0
- qalita/_frontend/node_modules/next/dist/server/async-storage/with-store.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/async-storage/work-store.js +93 -0
- qalita/_frontend/node_modules/next/dist/server/base-http/helpers.js +36 -0
- qalita/_frontend/node_modules/next/dist/server/base-http/index.js +54 -0
- qalita/_frontend/node_modules/next/dist/server/base-http/node.js +147 -0
- qalita/_frontend/node_modules/next/dist/server/base-http/web.js +124 -0
- qalita/_frontend/node_modules/next/dist/server/base-server.js +1833 -0
- qalita/_frontend/node_modules/next/dist/server/body-streams.js +114 -0
- qalita/_frontend/node_modules/next/dist/server/cache-dir.js +26 -0
- qalita/_frontend/node_modules/next/dist/server/ci-info.js +41 -0
- qalita/_frontend/node_modules/next/dist/server/client-component-renderer-logger.js +70 -0
- qalita/_frontend/node_modules/next/dist/server/config-schema.js +623 -0
- qalita/_frontend/node_modules/next/dist/server/config-shared.js +224 -0
- qalita/_frontend/node_modules/next/dist/server/config-utils.js +185 -0
- qalita/_frontend/node_modules/next/dist/server/config.js +1461 -0
- qalita/_frontend/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js +96 -0
- qalita/_frontend/node_modules/next/dist/server/crypto-utils.js +70 -0
- qalita/_frontend/node_modules/next/dist/server/dev/browser-logs/file-logger.js +183 -0
- qalita/_frontend/node_modules/next/dist/server/dev/browser-logs/receive-logs.js +512 -0
- qalita/_frontend/node_modules/next/dist/server/dev/browser-logs/source-map.js +225 -0
- qalita/_frontend/node_modules/next/dist/server/dev/debug-channel.js +87 -0
- qalita/_frontend/node_modules/next/dist/server/dev/dev-indicator-server-state.js +15 -0
- qalita/_frontend/node_modules/next/dist/server/dev/get-source-map-from-file.js +100 -0
- qalita/_frontend/node_modules/next/dist/server/dev/hot-middleware.js +274 -0
- qalita/_frontend/node_modules/next/dist/server/dev/hot-reloader-shared-utils.js +56 -0
- qalita/_frontend/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +1235 -0
- qalita/_frontend/node_modules/next/dist/server/dev/hot-reloader-types.js +57 -0
- qalita/_frontend/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1377 -0
- qalita/_frontend/node_modules/next/dist/server/dev/log-requests.js +133 -0
- qalita/_frontend/node_modules/next/dist/server/dev/messages.js +64 -0
- qalita/_frontend/node_modules/next/dist/server/dev/middleware-turbopack.js +393 -0
- qalita/_frontend/node_modules/next/dist/server/dev/middleware-webpack.js +473 -0
- qalita/_frontend/node_modules/next/dist/server/dev/node-stack-frames.js +72 -0
- qalita/_frontend/node_modules/next/dist/server/dev/on-demand-entry-handler.js +704 -0
- qalita/_frontend/node_modules/next/dist/server/dev/parse-version-info.js +108 -0
- qalita/_frontend/node_modules/next/dist/server/dev/require-cache.js +49 -0
- qalita/_frontend/node_modules/next/dist/server/dev/static-paths-worker.js +93 -0
- qalita/_frontend/node_modules/next/dist/server/dev/turbopack-utils.js +696 -0
- qalita/_frontend/node_modules/next/dist/server/dynamic-rendering-utils.js +86 -0
- qalita/_frontend/node_modules/next/dist/server/font-utils.js +43 -0
- qalita/_frontend/node_modules/next/dist/server/get-app-route-from-entrypoint.js +30 -0
- qalita/_frontend/node_modules/next/dist/server/get-page-files.js +23 -0
- qalita/_frontend/node_modules/next/dist/server/get-route-from-entrypoint.js +35 -0
- qalita/_frontend/node_modules/next/dist/server/htmlescape.js +37 -0
- qalita/_frontend/node_modules/next/dist/server/image-optimizer.js +1067 -0
- qalita/_frontend/node_modules/next/dist/server/instrumentation/types.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/instrumentation/utils.js +21 -0
- qalita/_frontend/node_modules/next/dist/server/internal-utils.js +39 -0
- qalita/_frontend/node_modules/next/dist/server/is-private-ip.js +36 -0
- qalita/_frontend/node_modules/next/dist/server/lib/app-dir-module.js +59 -0
- qalita/_frontend/node_modules/next/dist/server/lib/app-info-log.js +154 -0
- qalita/_frontend/node_modules/next/dist/server/lib/async-callback-set.js +29 -0
- qalita/_frontend/node_modules/next/dist/server/lib/cache-control.js +22 -0
- qalita/_frontend/node_modules/next/dist/server/lib/cache-handlers/default.external.js +18 -0
- qalita/_frontend/node_modules/next/dist/server/lib/cache-handlers/default.js +160 -0
- qalita/_frontend/node_modules/next/dist/server/lib/cache-handlers/types.js +8 -0
- qalita/_frontend/node_modules/next/dist/server/lib/chrome-devtools-workspace.js +116 -0
- qalita/_frontend/node_modules/next/dist/server/lib/clone-response.js +77 -0
- qalita/_frontend/node_modules/next/dist/server/lib/cpu-profile.js +28 -0
- qalita/_frontend/node_modules/next/dist/server/lib/decode-query-path-parameter.js +26 -0
- qalita/_frontend/node_modules/next/dist/server/lib/dedupe-fetch.js +163 -0
- qalita/_frontend/node_modules/next/dist/server/lib/dev-bundler-service.js +99 -0
- qalita/_frontend/node_modules/next/dist/server/lib/etag.js +56 -0
- qalita/_frontend/node_modules/next/dist/server/lib/experimental/create-env-definitions.js +48 -0
- qalita/_frontend/node_modules/next/dist/server/lib/experimental/ppr.js +47 -0
- qalita/_frontend/node_modules/next/dist/server/lib/find-page-file.js +127 -0
- qalita/_frontend/node_modules/next/dist/server/lib/fix-mojibake.js +25 -0
- qalita/_frontend/node_modules/next/dist/server/lib/format-hostname.js +16 -0
- qalita/_frontend/node_modules/next/dist/server/lib/i18n-provider.js +129 -0
- qalita/_frontend/node_modules/next/dist/server/lib/implicit-tags.js +77 -0
- qalita/_frontend/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +333 -0
- qalita/_frontend/node_modules/next/dist/server/lib/incremental-cache/index.js +479 -0
- qalita/_frontend/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js +40 -0
- qalita/_frontend/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js +73 -0
- qalita/_frontend/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js +55 -0
- qalita/_frontend/node_modules/next/dist/server/lib/is-ipv6.js +41 -0
- qalita/_frontend/node_modules/next/dist/server/lib/lazy-result.js +46 -0
- qalita/_frontend/node_modules/next/dist/server/lib/lru-cache.js +177 -0
- qalita/_frontend/node_modules/next/dist/server/lib/match-next-data-pathname.js +18 -0
- qalita/_frontend/node_modules/next/dist/server/lib/mock-request.js +416 -0
- qalita/_frontend/node_modules/next/dist/server/lib/module-loader/module-loader.js +8 -0
- qalita/_frontend/node_modules/next/dist/server/lib/module-loader/node-module-loader.js +25 -0
- qalita/_frontend/node_modules/next/dist/server/lib/module-loader/route-module-loader.js +26 -0
- qalita/_frontend/node_modules/next/dist/server/lib/node-fs-methods.js +28 -0
- qalita/_frontend/node_modules/next/dist/server/lib/parse-stack.js +46 -0
- qalita/_frontend/node_modules/next/dist/server/lib/patch-fetch.js +945 -0
- qalita/_frontend/node_modules/next/dist/server/lib/patch-set-header.js +38 -0
- qalita/_frontend/node_modules/next/dist/server/lib/render-server.js +152 -0
- qalita/_frontend/node_modules/next/dist/server/lib/router-server.js +658 -0
- qalita/_frontend/node_modules/next/dist/server/lib/router-utils/block-cross-site.js +76 -0
- qalita/_frontend/node_modules/next/dist/server/lib/router-utils/build-data-route.js +48 -0
- qalita/_frontend/node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.js +71 -0
- qalita/_frontend/node_modules/next/dist/server/lib/router-utils/cache-life-type-utils.js +211 -0
- qalita/_frontend/node_modules/next/dist/server/lib/router-utils/decode-path-params.js +42 -0
- qalita/_frontend/node_modules/next/dist/server/lib/router-utils/filesystem.js +595 -0
- qalita/_frontend/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js +89 -0
- qalita/_frontend/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js +96 -0
- qalita/_frontend/node_modules/next/dist/server/lib/router-utils/is-postpone.js +16 -0
- qalita/_frontend/node_modules/next/dist/server/lib/router-utils/proxy-request.js +118 -0
- qalita/_frontend/node_modules/next/dist/server/lib/router-utils/resolve-routes.js +604 -0
- qalita/_frontend/node_modules/next/dist/server/lib/router-utils/route-types-utils.js +286 -0
- qalita/_frontend/node_modules/next/dist/server/lib/router-utils/router-server-context.js +26 -0
- qalita/_frontend/node_modules/next/dist/server/lib/router-utils/typegen.js +613 -0
- qalita/_frontend/node_modules/next/dist/server/lib/router-utils/types.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/lib/server-action-request-meta.js +53 -0
- qalita/_frontend/node_modules/next/dist/server/lib/server-ipc/utils.js +80 -0
- qalita/_frontend/node_modules/next/dist/server/lib/source-maps.js +196 -0
- qalita/_frontend/node_modules/next/dist/server/lib/start-server.js +460 -0
- qalita/_frontend/node_modules/next/dist/server/lib/streaming-metadata.js +38 -0
- qalita/_frontend/node_modules/next/dist/server/lib/to-route.js +37 -0
- qalita/_frontend/node_modules/next/dist/server/lib/trace/constants.js +203 -0
- qalita/_frontend/node_modules/next/dist/server/lib/trace/tracer.js +266 -0
- qalita/_frontend/node_modules/next/dist/server/lib/trace/utils.js +16 -0
- qalita/_frontend/node_modules/next/dist/server/lib/types.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/lib/utils.js +249 -0
- qalita/_frontend/node_modules/next/dist/server/lib/worker-utils.js +36 -0
- qalita/_frontend/node_modules/next/dist/server/load-components.js +183 -0
- qalita/_frontend/node_modules/next/dist/server/load-default-error-components.js +41 -0
- qalita/_frontend/node_modules/next/dist/server/load-manifest.external.js +97 -0
- qalita/_frontend/node_modules/next/dist/server/match-bundle.js +25 -0
- qalita/_frontend/node_modules/next/dist/server/mcp/get-mcp-middleware.js +49 -0
- qalita/_frontend/node_modules/next/dist/server/mcp/get-or-create-mcp-server.js +41 -0
- qalita/_frontend/node_modules/next/dist/server/mcp/mcp-telemetry-tracker.js +82 -0
- qalita/_frontend/node_modules/next/dist/server/mcp/tools/get-errors.js +107 -0
- qalita/_frontend/node_modules/next/dist/server/mcp/tools/get-logs.js +61 -0
- qalita/_frontend/node_modules/next/dist/server/mcp/tools/get-page-metadata.js +180 -0
- qalita/_frontend/node_modules/next/dist/server/mcp/tools/get-project-metadata.js +55 -0
- qalita/_frontend/node_modules/next/dist/server/mcp/tools/get-routes.js +171 -0
- qalita/_frontend/node_modules/next/dist/server/mcp/tools/get-server-action-by-id.js +113 -0
- qalita/_frontend/node_modules/next/dist/server/mcp/tools/next-instance-error-state.js +31 -0
- qalita/_frontend/node_modules/next/dist/server/mcp/tools/utils/browser-communication.js +90 -0
- qalita/_frontend/node_modules/next/dist/server/mcp/tools/utils/format-errors.js +147 -0
- qalita/_frontend/node_modules/next/dist/server/next-server.js +1458 -0
- qalita/_frontend/node_modules/next/dist/server/next-typescript.js +13 -0
- qalita/_frontend/node_modules/next/dist/server/next.js +452 -0
- qalita/_frontend/node_modules/next/dist/server/node-environment-baseline.js +25 -0
- qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/console-dim.external.js +246 -0
- qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/console-exit.js +49 -0
- qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/console-file.js +56 -0
- qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/date.js +52 -0
- qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/error-inspect.js +8 -0
- qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/global-behaviors.js +33 -0
- qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/node-crypto.js +103 -0
- qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/random.js +28 -0
- qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.js +489 -0
- qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/utils.js +129 -0
- qalita/_frontend/node_modules/next/dist/server/node-environment-extensions/web-crypto.js +45 -0
- qalita/_frontend/node_modules/next/dist/server/node-environment.js +18 -0
- qalita/_frontend/node_modules/next/dist/server/node-polyfill-crypto.js +21 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/absolute-filename-normalizer.js +33 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/built/app/app-bundle-path-normalizer.js +54 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/built/app/app-filename-normalizer.js +22 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/built/app/app-page-normalizer.js +40 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/built/app/app-pathname-normalizer.js +55 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/built/app/index.js +42 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/built/pages/index.js +44 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/built/pages/pages-bundle-path-normalizer.js +55 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/built/pages/pages-filename-normalizer.js +22 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/built/pages/pages-page-normalizer.js +19 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/built/pages/pages-pathname-normalizer.js +19 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/locale-route-normalizer.js +26 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/normalizer.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/normalizers.js +23 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/prefixing-normalizer.js +26 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/request/base-path.js +25 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/request/next-data.js +38 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/request/pathname-normalizer.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/request/prefetch-rsc.js +31 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/request/prefix.js +39 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/request/rsc.js +19 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.js +32 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/request/suffix.js +27 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/underscore-normalizer.js +17 -0
- qalita/_frontend/node_modules/next/dist/server/normalizers/wrap-normalizer-fn.js +17 -0
- qalita/_frontend/node_modules/next/dist/server/og/image-response.js +53 -0
- qalita/_frontend/node_modules/next/dist/server/patch-error-inspect.js +433 -0
- qalita/_frontend/node_modules/next/dist/server/pipe-readable.js +140 -0
- qalita/_frontend/node_modules/next/dist/server/post-process.js +39 -0
- qalita/_frontend/node_modules/next/dist/server/render-result.js +195 -0
- qalita/_frontend/node_modules/next/dist/server/render.js +1138 -0
- qalita/_frontend/node_modules/next/dist/server/request/connection.js +111 -0
- qalita/_frontend/node_modules/next/dist/server/request/cookies.js +220 -0
- qalita/_frontend/node_modules/next/dist/server/request/draft-mode.js +207 -0
- qalita/_frontend/node_modules/next/dist/server/request/fallback-params.js +112 -0
- qalita/_frontend/node_modules/next/dist/server/request/headers.js +219 -0
- qalita/_frontend/node_modules/next/dist/server/request/params.js +415 -0
- qalita/_frontend/node_modules/next/dist/server/request/pathname.js +104 -0
- qalita/_frontend/node_modules/next/dist/server/request/root-params.js +157 -0
- qalita/_frontend/node_modules/next/dist/server/request/search-params.js +432 -0
- qalita/_frontend/node_modules/next/dist/server/request/utils.js +51 -0
- qalita/_frontend/node_modules/next/dist/server/request-meta.js +55 -0
- qalita/_frontend/node_modules/next/dist/server/require-hook.js +71 -0
- qalita/_frontend/node_modules/next/dist/server/require.js +109 -0
- qalita/_frontend/node_modules/next/dist/server/response-cache/index.js +211 -0
- qalita/_frontend/node_modules/next/dist/server/response-cache/types.js +41 -0
- qalita/_frontend/node_modules/next/dist/server/response-cache/utils.js +103 -0
- qalita/_frontend/node_modules/next/dist/server/response-cache/web.js +101 -0
- qalita/_frontend/node_modules/next/dist/server/resume-data-cache/cache-store.js +84 -0
- qalita/_frontend/node_modules/next/dist/server/resume-data-cache/resume-data-cache.js +96 -0
- qalita/_frontend/node_modules/next/dist/server/revalidation-utils.js +152 -0
- qalita/_frontend/node_modules/next/dist/server/route-definitions/app-page-route-definition.js +16 -0
- qalita/_frontend/node_modules/next/dist/server/route-definitions/app-route-route-definition.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/route-definitions/locale-route-definition.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/route-definitions/pages-api-route-definition.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/route-definitions/pages-route-definition.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/route-definitions/route-definition.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/route-kind.js +32 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-managers/default-route-matcher-manager.js +239 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-managers/dev-route-matcher-manager.js +120 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/app-page-route-matcher-provider.js +55 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/app-route-route-matcher-provider.js +43 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-page-route-matcher-provider.js +90 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-route-route-matcher-provider.js +112 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-api-route-matcher-provider.js +77 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-route-matcher-provider.js +77 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/dev/file-cache-route-matcher-provider.js +28 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/batched-file-reader.js +106 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/default-file-reader.js +42 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/file-reader.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/helpers/cached-route-matcher-provider.js +30 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/manifest-loader.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/node-manifest-loader.js +34 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js +20 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/manifest-route-matcher-provider.js +21 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/pages-api-route-matcher-provider.js +55 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/pages-route-matcher-provider.js +64 -0
- qalita/_frontend/node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/route-matchers/app-page-route-matcher.js +18 -0
- qalita/_frontend/node_modules/next/dist/server/route-matchers/app-route-route-matcher.js +15 -0
- qalita/_frontend/node_modules/next/dist/server/route-matchers/locale-route-matcher.js +68 -0
- qalita/_frontend/node_modules/next/dist/server/route-matchers/pages-api-route-matcher.js +30 -0
- qalita/_frontend/node_modules/next/dist/server/route-matchers/pages-route-matcher.js +30 -0
- qalita/_frontend/node_modules/next/dist/server/route-matchers/route-matcher.js +54 -0
- qalita/_frontend/node_modules/next/dist/server/route-matches/app-page-route-match.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/route-matches/app-route-route-match.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/route-matches/locale-route-match.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/route-matches/pages-api-route-match.js +16 -0
- qalita/_frontend/node_modules/next/dist/server/route-matches/pages-route-match.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/route-matches/route-match.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.js +48 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/module.compiled.js +36 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/module.js +132 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/module.render.js +24 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.js +87 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/head-manager-context.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.js +140 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-compiler-runtime.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-dom.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-runtime.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-server.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-turbopack-static.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-static.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.js +125 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-compiler-runtime.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom-server.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-route/helpers/auto-implement-methods.js +85 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-route/helpers/clean-url.js +24 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-route/helpers/get-pathname-from-absolute-path.js +29 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-route/helpers/is-static-gen-enabled.js +15 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-route/helpers/parsed-url-query-to-params.js +20 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-route/module.compiled.js +36 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-route/module.js +889 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/app-route/shared-modules.js +56 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/checks.js +45 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/pages/builtin/_error.js +100 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/pages/module.compiled.js +20 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/pages/module.js +92 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/pages/module.render.js +24 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/pages/pages-handler.js +519 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/app-router-context.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.js +102 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/hooks-client-context.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/image-config-context.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable-context.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/router-context.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/pages/vendored/contexts/server-inserted-html.js +4 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/pages-api/module.compiled.js +20 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/pages-api/module.js +58 -0
- qalita/_frontend/node_modules/next/dist/server/route-modules/route-module.js +533 -0
- qalita/_frontend/node_modules/next/dist/server/runtime-reacts.external.js +46 -0
- qalita/_frontend/node_modules/next/dist/server/send-payload.js +88 -0
- qalita/_frontend/node_modules/next/dist/server/send-response.js +70 -0
- qalita/_frontend/node_modules/next/dist/server/serve-static.js +66 -0
- qalita/_frontend/node_modules/next/dist/server/server-route-utils.js +30 -0
- qalita/_frontend/node_modules/next/dist/server/server-utils.js +323 -0
- qalita/_frontend/node_modules/next/dist/server/setup-http-agent-env.js +31 -0
- qalita/_frontend/node_modules/next/dist/server/stream-utils/encoded-tags.js +114 -0
- qalita/_frontend/node_modules/next/dist/server/stream-utils/node-web-streams-helper.js +713 -0
- qalita/_frontend/node_modules/next/dist/server/stream-utils/uint8array-helpers.js +69 -0
- qalita/_frontend/node_modules/next/dist/server/typescript/constant.js +97 -0
- qalita/_frontend/node_modules/next/dist/server/typescript/index.js +199 -0
- qalita/_frontend/node_modules/next/dist/server/typescript/rules/client-boundary.js +97 -0
- qalita/_frontend/node_modules/next/dist/server/typescript/rules/config.js +457 -0
- qalita/_frontend/node_modules/next/dist/server/typescript/rules/entry.js +149 -0
- qalita/_frontend/node_modules/next/dist/server/typescript/rules/error.js +38 -0
- qalita/_frontend/node_modules/next/dist/server/typescript/rules/metadata.js +234 -0
- qalita/_frontend/node_modules/next/dist/server/typescript/rules/server-boundary.js +115 -0
- qalita/_frontend/node_modules/next/dist/server/typescript/rules/server.js +79 -0
- qalita/_frontend/node_modules/next/dist/server/typescript/utils.js +212 -0
- qalita/_frontend/node_modules/next/dist/server/use-cache/cache-life.js +161 -0
- qalita/_frontend/node_modules/next/dist/server/use-cache/cache-tag.js +50 -0
- qalita/_frontend/node_modules/next/dist/server/use-cache/constants.js +28 -0
- qalita/_frontend/node_modules/next/dist/server/use-cache/handlers.js +121 -0
- qalita/_frontend/node_modules/next/dist/server/use-cache/use-cache-errors.js +36 -0
- qalita/_frontend/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +1291 -0
- qalita/_frontend/node_modules/next/dist/server/utils.js +73 -0
- qalita/_frontend/node_modules/next/dist/server/web/adapter.js +388 -0
- qalita/_frontend/node_modules/next/dist/server/web/edge-route-module-wrapper.js +120 -0
- qalita/_frontend/node_modules/next/dist/server/web/error.js +54 -0
- qalita/_frontend/node_modules/next/dist/server/web/exports/index.js +56 -0
- qalita/_frontend/node_modules/next/dist/server/web/get-edge-preview-props.js +23 -0
- qalita/_frontend/node_modules/next/dist/server/web/globals.js +128 -0
- qalita/_frontend/node_modules/next/dist/server/web/http.js +39 -0
- qalita/_frontend/node_modules/next/dist/server/web/internal-edge-wait-until.js +64 -0
- qalita/_frontend/node_modules/next/dist/server/web/next-url.js +195 -0
- qalita/_frontend/node_modules/next/dist/server/web/sandbox/context.js +463 -0
- qalita/_frontend/node_modules/next/dist/server/web/sandbox/fetch-inline-assets.js +35 -0
- qalita/_frontend/node_modules/next/dist/server/web/sandbox/index.js +28 -0
- qalita/_frontend/node_modules/next/dist/server/web/sandbox/resource-managers.js +88 -0
- qalita/_frontend/node_modules/next/dist/server/web/sandbox/sandbox.js +134 -0
- qalita/_frontend/node_modules/next/dist/server/web/spec-extension/adapters/headers.js +192 -0
- qalita/_frontend/node_modules/next/dist/server/web/spec-extension/adapters/next-request.js +142 -0
- qalita/_frontend/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js +30 -0
- qalita/_frontend/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js +210 -0
- qalita/_frontend/node_modules/next/dist/server/web/spec-extension/cookies.js +29 -0
- qalita/_frontend/node_modules/next/dist/server/web/spec-extension/fetch-event.js +98 -0
- qalita/_frontend/node_modules/next/dist/server/web/spec-extension/image-response.js +22 -0
- qalita/_frontend/node_modules/next/dist/server/web/spec-extension/request.js +99 -0
- qalita/_frontend/node_modules/next/dist/server/web/spec-extension/response.js +136 -0
- qalita/_frontend/node_modules/next/dist/server/web/spec-extension/revalidate.js +202 -0
- qalita/_frontend/node_modules/next/dist/server/web/spec-extension/unstable-cache.js +284 -0
- qalita/_frontend/node_modules/next/dist/server/web/spec-extension/unstable-no-store.js +49 -0
- qalita/_frontend/node_modules/next/dist/server/web/spec-extension/url-pattern.js +14 -0
- qalita/_frontend/node_modules/next/dist/server/web/spec-extension/user-agent.js +46 -0
- qalita/_frontend/node_modules/next/dist/server/web/types.js +6 -0
- qalita/_frontend/node_modules/next/dist/server/web/utils.js +151 -0
- qalita/_frontend/node_modules/next/dist/server/web/web-on-close.js +87 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js +50 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/app-router-types.js +27 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/constants.js +443 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/deep-freeze.js +30 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/dset.js +34 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/encode-uri-path.js +15 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/entry-constants.js +36 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/error-source.js +36 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +39 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/errors/constants.js +19 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/errors/empty-generate-static-params-error.js +24 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/errors/hard-deprecated-config-error.js +20 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/escape-regexp.js +22 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/get-hostname.js +23 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/hash.js +42 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js +18 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/head.js +163 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js +55 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/html-context.shared-runtime.js +40 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js +25 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/i18n/get-locale-redirect.js +59 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js +54 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/image-blur-svg.js +22 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js +19 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/image-config.js +74 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/invariant-error.js +18 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/is-internal.js +39 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/is-plain-object.js +42 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/is-thenable.js +20 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/isomorphic/path.js +14 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js +37 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js +19 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/loadable.shared-runtime.js +246 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/magic-identifier.js +218 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/match-local-pattern.js +46 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/match-remote-pattern.js +63 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/modern-browserslist-target.js +15 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/no-fallback-error.external.js +18 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/normalized-asset-prefix.js +28 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/page-path/absolute-path-to-page.js +26 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js +18 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js +18 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/page-path/get-page-paths.js +40 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/page-path/normalize-data-path.js +23 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/page-path/normalize-page-path.js +26 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js +19 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/page-path/remove-page-path-tail.js +20 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/promise-with-resolvers.js +26 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/adapters.js +136 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/add-locale.js +28 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js +20 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js +20 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/app-paths.js +51 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js +17 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js +24 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js +16 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js +27 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/format-url.js +111 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js +196 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js +52 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/get-route-from-asset-path.js +25 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/get-segment-param.js +90 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/html-bots.js +17 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/index.js +30 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/interception-routes.js +108 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/is-bot.js +57 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/is-dynamic.js +26 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.js +31 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/parse-loader-tree.js +29 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/parse-path.js +33 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js +36 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/parse-url.js +32 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js +20 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/path-match.js +49 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/prepare-destination.js +292 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/querystring.js +79 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/relativize-url.js +40 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js +39 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js +21 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/route-match-utils.js +113 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/route-matcher.js +45 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/route-regex.js +256 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router/utils/sorted-routes.js +244 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/router-context.shared-runtime.js +18 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/segment-cache/output-export-prefetch-encoding.js +73 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js +99 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/segment.js +97 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js +35 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/server-reference-info.js +52 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/side-effect.js +63 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/turbopack/internal-error.js +53 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/turbopack/utils.js +278 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/utils/warn-once.js +22 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/utils.js +207 -0
- qalita/_frontend/node_modules/next/dist/shared/lib/zod.js +101 -0
- qalita/_frontend/node_modules/next/dist/telemetry/anonymous-meta.js +89 -0
- qalita/_frontend/node_modules/next/dist/telemetry/detached-flush.js +56 -0
- qalita/_frontend/node_modules/next/dist/telemetry/events/build.js +163 -0
- qalita/_frontend/node_modules/next/dist/telemetry/events/index.js +41 -0
- qalita/_frontend/node_modules/next/dist/telemetry/events/plugins.js +51 -0
- qalita/_frontend/node_modules/next/dist/telemetry/events/swc-load-failure.js +55 -0
- qalita/_frontend/node_modules/next/dist/telemetry/events/version.js +66 -0
- qalita/_frontend/node_modules/next/dist/telemetry/flush-telemetry.js +19 -0
- qalita/_frontend/node_modules/next/dist/telemetry/post-telemetry-payload.js +48 -0
- qalita/_frontend/node_modules/next/dist/telemetry/project-id.js +48 -0
- qalita/_frontend/node_modules/next/dist/telemetry/storage.js +301 -0
- qalita/_frontend/node_modules/next/dist/trace/index.js +54 -0
- qalita/_frontend/node_modules/next/dist/trace/report/index.js +37 -0
- qalita/_frontend/node_modules/next/dist/trace/report/to-json-build.js +137 -0
- qalita/_frontend/node_modules/next/dist/trace/report/to-json.js +151 -0
- qalita/_frontend/node_modules/next/dist/trace/report/to-telemetry.js +36 -0
- qalita/_frontend/node_modules/next/dist/trace/shared.js +39 -0
- qalita/_frontend/node_modules/next/dist/trace/trace.js +197 -0
- qalita/_frontend/node_modules/next/package.json +378 -0
- qalita/_frontend/node_modules/react/cjs/react-jsx-dev-runtime.production.min.js +10 -0
- qalita/_frontend/node_modules/react/cjs/react-jsx-runtime.production.min.js +11 -0
- qalita/_frontend/node_modules/react/cjs/react.production.min.js +26 -0
- qalita/_frontend/node_modules/react/index.js +7 -0
- qalita/_frontend/node_modules/react/jsx-dev-runtime.js +7 -0
- qalita/_frontend/node_modules/react/jsx-runtime.js +7 -0
- qalita/_frontend/node_modules/react/package.json +47 -0
- qalita/_frontend/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js +93 -0
- qalita/_frontend/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.min.js +101 -0
- qalita/_frontend/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js +96 -0
- qalita/_frontend/node_modules/react-dom/cjs/react-dom-server.node.production.min.js +102 -0
- qalita/_frontend/node_modules/react-dom/cjs/react-dom.production.min.js +322 -0
- qalita/_frontend/node_modules/react-dom/index.js +38 -0
- qalita/_frontend/node_modules/react-dom/package.json +62 -0
- qalita/_frontend/node_modules/react-dom/server.browser.js +17 -0
- qalita/_frontend/node_modules/react-dom/server.node.js +17 -0
- qalita/_frontend/node_modules/scheduler/cjs/scheduler.development.js +634 -0
- qalita/_frontend/node_modules/scheduler/cjs/scheduler.production.min.js +19 -0
- qalita/_frontend/node_modules/scheduler/index.js +7 -0
- qalita/_frontend/node_modules/scheduler/package.json +36 -0
- qalita/_frontend/node_modules/semver/classes/comparator.js +143 -0
- qalita/_frontend/node_modules/semver/classes/range.js +557 -0
- qalita/_frontend/node_modules/semver/classes/semver.js +333 -0
- qalita/_frontend/node_modules/semver/functions/cmp.js +54 -0
- qalita/_frontend/node_modules/semver/functions/coerce.js +62 -0
- qalita/_frontend/node_modules/semver/functions/compare.js +7 -0
- qalita/_frontend/node_modules/semver/functions/eq.js +5 -0
- qalita/_frontend/node_modules/semver/functions/gt.js +5 -0
- qalita/_frontend/node_modules/semver/functions/gte.js +5 -0
- qalita/_frontend/node_modules/semver/functions/lt.js +5 -0
- qalita/_frontend/node_modules/semver/functions/lte.js +5 -0
- qalita/_frontend/node_modules/semver/functions/neq.js +5 -0
- qalita/_frontend/node_modules/semver/functions/parse.js +18 -0
- qalita/_frontend/node_modules/semver/functions/satisfies.js +12 -0
- qalita/_frontend/node_modules/semver/internal/constants.js +37 -0
- qalita/_frontend/node_modules/semver/internal/debug.js +11 -0
- qalita/_frontend/node_modules/semver/internal/identifiers.js +29 -0
- qalita/_frontend/node_modules/semver/internal/lrucache.js +42 -0
- qalita/_frontend/node_modules/semver/internal/parse-options.js +17 -0
- qalita/_frontend/node_modules/semver/internal/re.js +223 -0
- qalita/_frontend/node_modules/semver/package.json +78 -0
- qalita/_frontend/node_modules/sharp/lib/channel.js +177 -0
- qalita/_frontend/node_modules/sharp/lib/colour.js +195 -0
- qalita/_frontend/node_modules/sharp/lib/composite.js +212 -0
- qalita/_frontend/node_modules/sharp/lib/constructor.js +499 -0
- qalita/_frontend/node_modules/sharp/lib/index.js +16 -0
- qalita/_frontend/node_modules/sharp/lib/input.js +809 -0
- qalita/_frontend/node_modules/sharp/lib/is.js +143 -0
- qalita/_frontend/node_modules/sharp/lib/libvips.js +207 -0
- qalita/_frontend/node_modules/sharp/lib/operation.js +1016 -0
- qalita/_frontend/node_modules/sharp/lib/output.js +1666 -0
- qalita/_frontend/node_modules/sharp/lib/resize.js +595 -0
- qalita/_frontend/node_modules/sharp/lib/sharp.js +121 -0
- qalita/_frontend/node_modules/sharp/lib/utility.js +291 -0
- qalita/_frontend/node_modules/sharp/package.json +202 -0
- qalita/_frontend/node_modules/styled-jsx/dist/index/index.js +499 -0
- qalita/_frontend/node_modules/styled-jsx/index.js +1 -0
- qalita/_frontend/node_modules/styled-jsx/package.json +132 -0
- qalita/_frontend/node_modules/styled-jsx/style.js +1 -0
- qalita/_frontend/node_modules/typescript/lib/_tsc.js +133818 -0
- qalita/_frontend/node_modules/typescript/lib/_tsserver.js +659 -0
- qalita/_frontend/node_modules/typescript/lib/_typingsInstaller.js +222 -0
- qalita/_frontend/node_modules/typescript/lib/tsc.js +8 -0
- qalita/_frontend/node_modules/typescript/lib/tsserver.js +8 -0
- qalita/_frontend/node_modules/typescript/lib/tsserverlibrary.js +21 -0
- qalita/_frontend/node_modules/typescript/lib/typescript.js +200276 -0
- qalita/_frontend/node_modules/typescript/lib/typingsInstaller.js +8 -0
- qalita/_frontend/node_modules/typescript/lib/watchGuard.js +53 -0
- qalita/_frontend/node_modules/typescript/package.json +120 -0
- qalita/_frontend/package.json +28 -0
- qalita/_frontend/public/studio.ico +0 -0
- qalita/_frontend/server.js +38 -0
- qalita/commands/pack.py +73 -19
- qalita/commands/source.py +10 -6
- qalita/commands/{agent.py → worker.py} +89 -89
- qalita/internal/config.py +26 -19
- qalita/internal/utils.py +57 -9
- qalita/web/app.py +97 -14
- qalita/web/blueprints/context.py +16 -62
- qalita/web/blueprints/dashboard.py +38 -77
- qalita/web/blueprints/helpers.py +154 -63
- qalita/web/blueprints/sources.py +33 -63
- qalita/web/blueprints/{agents.py → workers.py} +111 -188
- qalita-2.5.3.dist-info/METADATA +66 -0
- qalita-2.5.3.dist-info/RECORD +1333 -0
- {qalita-2.3.2.dist-info → qalita-2.5.3.dist-info}/WHEEL +1 -1
- qalita-2.5.3.dist-info/entry_points.txt +2 -0
- qalita/web/blueprints/studio.py +0 -1294
- qalita/web/public/studio.css +0 -304
- qalita/web/public/styles.css +0 -682
- qalita/web/templates/dashboard.html +0 -373
- qalita/web/templates/navbar.html +0 -40
- qalita/web/templates/sources/added.html +0 -57
- qalita/web/templates/sources/edit.html +0 -411
- qalita/web/templates/sources/select-source.html +0 -128
- qalita/web/templates/studio/agent-panel.html +0 -828
- qalita/web/templates/studio/context-panel.html +0 -300
- qalita/web/templates/studio/index.html +0 -79
- qalita/web/templates/studio/navbar.html +0 -14
- qalita/web/templates/studio/view-panel.html +0 -529
- qalita-2.3.2.dist-info/METADATA +0 -58
- qalita-2.3.2.dist-info/RECORD +0 -101
- qalita-2.3.2.dist-info/entry_points.txt +0 -3
- /qalita/{web → _frontend}/public/chatgpt.svg +0 -0
- /qalita/{web → _frontend}/public/claude.png +0 -0
- /qalita/{web → _frontend}/public/favicon.ico +0 -0
- /qalita/{web → _frontend}/public/gemini.png +0 -0
- /qalita/{web → _frontend}/public/logo-no-slogan.png +0 -0
- /qalita/{web → _frontend}/public/logo-white-no-slogan.svg +0 -0
- /qalita/{web → _frontend}/public/mistral.svg +0 -0
- /qalita/{web → _frontend}/public/noise.webp +0 -0
- /qalita/{web → _frontend}/public/ollama.png +0 -0
- /qalita/{web → _frontend}/public/platform.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/alloy-db.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/amazon-athena.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/amazon-rds.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/api.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/avro.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/azure-database-mysql.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/azure-database-postgresql.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/azure-sql-database.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/azure-sql-managed-instance.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/azure-synapse-analytics.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/azure_blob.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/bigquery.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/cassandra.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/clickhouse.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/cloud-sql.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/cockroach-db.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/csv.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/database.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/databricks.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/duckdb.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/elasticsearch.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/excel.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/file.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/folder.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/gcs.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/hdfs.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/ibm-db2.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/json.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/maria-db.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/mongodb.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/mssql.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/mysql.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/oracle.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/parquet.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/picture.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/postgresql.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/questdb.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/redshift.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/s3.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/sap-hana.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/sftp.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/single-store.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/snowflake.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/sqlite.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/sqlserver.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/starburst.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/stream.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/teradata.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/timescale.png +0 -0
- /qalita/{web → _frontend}/public/sources-logos/xls.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/xlsx.svg +0 -0
- /qalita/{web → _frontend}/public/sources-logos/yugabyte-db.png +0 -0
- /qalita/{web → _frontend}/public/studio-logo.svg +0 -0
- /qalita/{web → _frontend}/public/studio.png +0 -0
- {qalita-2.3.2.dist-info → qalita-2.5.3.dist-info}/licenses/LICENSE +0 -0
qalita/web/blueprints/studio.py
DELETED
|
@@ -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
|