gpustack 2.2.1__tar.gz → 2.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1086) hide show
  1. gpustack-2.2.2/PKG-INFO +300 -0
  2. gpustack-2.2.2/README.md +231 -0
  3. gpustack-2.2.2/gpustack/__init__.py +4 -0
  4. gpustack-2.2.2/gpustack/api/auth.py +557 -0
  5. gpustack-2.2.2/gpustack/api/middlewares.py +450 -0
  6. gpustack-2.2.2/gpustack/api/responses.py +119 -0
  7. gpustack-2.2.2/gpustack/api/tenant.py +757 -0
  8. gpustack-2.2.2/gpustack/assets/community-inference-backends.yaml +402 -0
  9. gpustack-2.2.2/gpustack/assets/model-catalog-modelscope.yaml +3679 -0
  10. gpustack-2.2.2/gpustack/assets/model-catalog.yaml +3770 -0
  11. gpustack-2.2.2/gpustack/client/generated_benchmark_client.py +350 -0
  12. gpustack-2.2.2/gpustack/client/generated_inference_backend_client.py +353 -0
  13. gpustack-2.2.2/gpustack/client/generated_model_client.py +348 -0
  14. gpustack-2.2.2/gpustack/client/generated_model_file_client.py +350 -0
  15. gpustack-2.2.2/gpustack/client/generated_model_instance_client.py +351 -0
  16. gpustack-2.2.2/gpustack/client/generated_model_route_target_client.py +353 -0
  17. gpustack-2.2.2/gpustack/client/generated_user_client.py +348 -0
  18. gpustack-2.2.2/gpustack/client/generated_worker_client.py +350 -0
  19. gpustack-2.2.2/gpustack/cmd/images.py +71 -0
  20. gpustack-2.2.2/gpustack/cmd/prerun.py +432 -0
  21. gpustack-2.2.2/gpustack/cmd/reload_config.py +333 -0
  22. gpustack-2.2.2/gpustack/cmd/start.py +935 -0
  23. gpustack-2.2.2/gpustack/cmd/version.py +29 -0
  24. gpustack-2.2.2/gpustack/codegen/templates/client.py.jinja +354 -0
  25. gpustack-2.2.2/gpustack/config/config.py +1041 -0
  26. gpustack-2.2.2/gpustack/config/registration.py +102 -0
  27. gpustack-2.2.2/gpustack/envs/__init__.py +320 -0
  28. gpustack-2.2.2/gpustack/exporter/bus_metrics.py +147 -0
  29. gpustack-2.2.2/gpustack/exporter/exporter.py +329 -0
  30. gpustack-2.2.2/gpustack/extension.py +147 -0
  31. gpustack-2.2.2/gpustack/gateway/__init__.py +886 -0
  32. gpustack-2.2.2/gpustack/gateway/utils.py +1636 -0
  33. gpustack-2.2.2/gpustack/gpu_instances/cluster_apis.py +561 -0
  34. gpustack-2.2.2/gpustack/gpu_instances/cluster_apis_util.py +228 -0
  35. gpustack-2.2.2/gpustack/gpu_instances/controllers.py +1270 -0
  36. gpustack-2.2.2/gpustack/gpu_instances/gateway.py +54 -0
  37. gpustack-2.2.2/gpustack/gpu_instances/gateway_client.py +232 -0
  38. gpustack-2.2.2/gpustack/k8s/daemonset.jinja +273 -0
  39. gpustack-2.2.2/gpustack/k8s/manifest_template.py +399 -0
  40. gpustack-2.2.2/gpustack/k8s/manifests.jinja +62 -0
  41. gpustack-2.2.2/gpustack/migrations/versions/2026_01_05_1048-53667f33f000_v2_1_0_database_changes.py +517 -0
  42. gpustack-2.2.2/gpustack/migrations/versions/2026_06_24_1100-c4d7e8f9a0b1_v2_2_2_database_changes.py +390 -0
  43. gpustack-2.2.2/gpustack/mixins/active_record.py +938 -0
  44. gpustack-2.2.2/gpustack/policies/candidate_selectors/vllm_resource_fit_selector.py +867 -0
  45. gpustack-2.2.2/gpustack/policies/worker_filters/backend_framework_filter.py +234 -0
  46. gpustack-2.2.2/gpustack/routes/api_keys.py +285 -0
  47. gpustack-2.2.2/gpustack/routes/auth.py +1415 -0
  48. gpustack-2.2.2/gpustack/routes/benchmarks.py +580 -0
  49. gpustack-2.2.2/gpustack/routes/cloud_credentials.py +214 -0
  50. gpustack-2.2.2/gpustack/routes/clusters.py +998 -0
  51. gpustack-2.2.2/gpustack/routes/gpu_devices.py +128 -0
  52. gpustack-2.2.2/gpustack/routes/gpu_instance_persistent_volume_types.py +306 -0
  53. gpustack-2.2.2/gpustack/routes/gpu_instance_persistent_volumes.py +323 -0
  54. gpustack-2.2.2/gpustack/routes/gpu_instances.py +537 -0
  55. gpustack-2.2.2/gpustack/routes/inference_backend.py +1612 -0
  56. gpustack-2.2.2/gpustack/routes/model_common.py +99 -0
  57. gpustack-2.2.2/gpustack/routes/model_files.py +299 -0
  58. gpustack-2.2.2/gpustack/routes/model_instances.py +525 -0
  59. gpustack-2.2.2/gpustack/routes/model_routes.py +1596 -0
  60. gpustack-2.2.2/gpustack/routes/models.py +799 -0
  61. gpustack-2.2.2/gpustack/routes/openai.py +565 -0
  62. gpustack-2.2.2/gpustack/routes/organizations.py +277 -0
  63. gpustack-2.2.2/gpustack/routes/proxy.py +197 -0
  64. gpustack-2.2.2/gpustack/routes/resource_usage.py +1412 -0
  65. gpustack-2.2.2/gpustack/routes/token.py +177 -0
  66. gpustack-2.2.2/gpustack/routes/usage.py +1179 -0
  67. gpustack-2.2.2/gpustack/routes/users.py +498 -0
  68. gpustack-2.2.2/gpustack/routes/worker/cluster_proxy.py +200 -0
  69. gpustack-2.2.2/gpustack/routes/worker/logs.py +625 -0
  70. gpustack-2.2.2/gpustack/routes/workers.py +816 -0
  71. gpustack-2.2.2/gpustack/scheduler/evaluator.py +449 -0
  72. gpustack-2.2.2/gpustack/scheduler/model_registry.py +476 -0
  73. gpustack-2.2.2/gpustack/schemas/__init__.py +353 -0
  74. gpustack-2.2.2/gpustack/schemas/api_keys.py +121 -0
  75. gpustack-2.2.2/gpustack/schemas/gpu_instance_persistent_volume_types.py +398 -0
  76. gpustack-2.2.2/gpustack/schemas/gpu_instance_persistent_volumes.py +268 -0
  77. gpustack-2.2.2/gpustack/schemas/gpu_instances.py +857 -0
  78. gpustack-2.2.2/gpustack/schemas/inference_backend.py +445 -0
  79. gpustack-2.2.2/gpustack/schemas/metered_usage.py +294 -0
  80. gpustack-2.2.2/gpustack/schemas/model_usage.py +79 -0
  81. gpustack-2.2.2/gpustack/schemas/principals.py +556 -0
  82. gpustack-2.2.2/gpustack/schemas/resource_events.py +158 -0
  83. gpustack-2.2.2/gpustack/schemas/usage.py +294 -0
  84. gpustack-2.2.2/gpustack/schemas/user_groups.py +83 -0
  85. gpustack-2.2.2/gpustack/schemas/users.py +254 -0
  86. gpustack-2.2.2/gpustack/server/app.py +108 -0
  87. gpustack-2.2.2/gpustack/server/bus.py +497 -0
  88. gpustack-2.2.2/gpustack/server/controllers.py +3178 -0
  89. gpustack-2.2.2/gpustack/server/coordinator/base.py +222 -0
  90. gpustack-2.2.2/gpustack/server/init_db.py +261 -0
  91. gpustack-2.2.2/gpustack/server/metrics_collector.py +840 -0
  92. gpustack-2.2.2/gpustack/server/passwords.py +181 -0
  93. gpustack-2.2.2/gpustack/server/resource_event_logger.py +426 -0
  94. gpustack-2.2.2/gpustack/server/resource_usage_collector.py +612 -0
  95. gpustack-2.2.2/gpustack/server/server.py +1339 -0
  96. gpustack-2.2.2/gpustack/server/services.py +1076 -0
  97. gpustack-2.2.2/gpustack/server/storage_usage_collector.py +423 -0
  98. gpustack-2.2.2/gpustack/server/usage_details_archiver.py +217 -0
  99. gpustack-2.2.2/gpustack/server/workqueue.py +345 -0
  100. gpustack-2.2.2/gpustack/ui/css/8742.1784901406814.chunk.css +1 -0
  101. gpustack-2.2.2/gpustack/ui/css/8742.1784901406814.chunk.css.gz +0 -0
  102. gpustack-2.2.2/gpustack/ui/css/layouts__index.1784901406814.chunk.css +9 -0
  103. gpustack-2.2.2/gpustack/ui/css/layouts__index.1784901406814.chunk.css.gz +0 -0
  104. gpustack-2.2.2/gpustack/ui/css/p__api-keys__index.1784901406814.chunk.css +1 -0
  105. gpustack-2.2.2/gpustack/ui/css/p__backends__index.1784901406814.chunk.css +1 -0
  106. gpustack-2.2.2/gpustack/ui/css/p__benchmark__details.1784901406814.chunk.css +1 -0
  107. gpustack-2.2.2/gpustack/ui/css/p__benchmark__index.1784901406814.chunk.css +1 -0
  108. gpustack-2.2.2/gpustack/ui/css/p__billing__index.1784901406814.chunk.css +1 -0
  109. gpustack-2.2.2/gpustack/ui/css/p__cluster-management__clusters.1784901406814.chunk.css +1 -0
  110. gpustack-2.2.2/gpustack/ui/css/p__cluster-management__credentials.1784901406814.chunk.css +1 -0
  111. gpustack-2.2.2/gpustack/ui/css/p__dashboard__index.1784901406814.chunk.css +1 -0
  112. gpustack-2.2.2/gpustack/ui/css/p__gpu-service__instances__index.1784901406814.chunk.css +1 -0
  113. gpustack-2.2.2/gpustack/ui/css/p__gpu-service__public-keys__index.1784901406814.chunk.css +1 -0
  114. gpustack-2.2.2/gpustack/ui/css/p__gpu-service__storage-types__index.1784901406814.chunk.css +1 -0
  115. gpustack-2.2.2/gpustack/ui/css/p__gpu-service__storage__index.1784901406814.chunk.css +1 -0
  116. gpustack-2.2.2/gpustack/ui/css/p__gpu-service__templates__index.1784901406814.chunk.css +1 -0
  117. gpustack-2.2.2/gpustack/ui/css/p__llmodels__catalog.1784901406814.chunk.css +1 -0
  118. gpustack-2.2.2/gpustack/ui/css/p__llmodels__index.1784901406814.chunk.css +1 -0
  119. gpustack-2.2.2/gpustack/ui/css/p__llmodels__index.1784901406814.chunk.css.gz +0 -0
  120. gpustack-2.2.2/gpustack/ui/css/p__llmodels__user-models.1784901406814.chunk.css +1 -0
  121. gpustack-2.2.2/gpustack/ui/css/p__maas-provider__index.1784901406814.chunk.css +1 -0
  122. gpustack-2.2.2/gpustack/ui/css/p__model-routes__index.1784901406814.chunk.css +1 -0
  123. gpustack-2.2.2/gpustack/ui/css/p__organizations__index.1784901406814.chunk.css +1 -0
  124. gpustack-2.2.2/gpustack/ui/css/p__playground__chat__index.1784901406814.chunk.css +1 -0
  125. gpustack-2.2.2/gpustack/ui/css/p__playground__chat__index.1784901406814.chunk.css.gz +0 -0
  126. gpustack-2.2.2/gpustack/ui/css/p__playground__embedding__index.1784901406814.chunk.css +1 -0
  127. gpustack-2.2.2/gpustack/ui/css/p__playground__images__index.1784901406814.chunk.css +1 -0
  128. gpustack-2.2.2/gpustack/ui/css/p__playground__rerank__index.1784901406814.chunk.css +1 -0
  129. gpustack-2.2.2/gpustack/ui/css/p__playground__speech__index.1784901406814.chunk.css +1 -0
  130. gpustack-2.2.2/gpustack/ui/css/p__profile__index.1784901406814.chunk.css +1 -0
  131. gpustack-2.2.2/gpustack/ui/css/p__resources__components__gpus.1784901406814.chunk.css +1 -0
  132. gpustack-2.2.2/gpustack/ui/css/p__resources__components__model-files.1784901406814.chunk.css +1 -0
  133. gpustack-2.2.2/gpustack/ui/css/p__resources__components__model-files.1784901406814.chunk.css.gz +0 -0
  134. gpustack-2.2.2/gpustack/ui/css/p__resources__components__workers.1784901406814.chunk.css +1 -0
  135. gpustack-2.2.2/gpustack/ui/css/p__usage__index.1784901406814.chunk.css +1 -0
  136. gpustack-2.2.2/gpustack/ui/css/p__users__index.1784901406814.chunk.css +1 -0
  137. gpustack-2.2.2/gpustack/ui/css/umi.1784901406814.css +1 -0
  138. gpustack-2.2.2/gpustack/ui/css/umi.1784901406814.css.gz +0 -0
  139. gpustack-2.2.2/gpustack/ui/index.html +16 -0
  140. gpustack-2.2.2/gpustack/ui/js/102.1784901406814.chunk.js +1 -0
  141. gpustack-2.2.2/gpustack/ui/js/1259.1784901406814.chunk.js +1 -0
  142. gpustack-2.2.2/gpustack/ui/js/1259.1784901406814.chunk.js.gz +0 -0
  143. gpustack-2.2.2/gpustack/ui/js/1384.1784901406814.chunk.js +1 -0
  144. gpustack-2.2.2/gpustack/ui/js/1384.1784901406814.chunk.js.gz +0 -0
  145. gpustack-2.2.2/gpustack/ui/js/1497.1784901406814.chunk.js +1 -0
  146. gpustack-2.2.2/gpustack/ui/js/1497.1784901406814.chunk.js.gz +0 -0
  147. gpustack-2.2.2/gpustack/ui/js/1601.1784901406814.chunk.js +1 -0
  148. gpustack-2.2.2/gpustack/ui/js/1601.1784901406814.chunk.js.gz +0 -0
  149. gpustack-2.2.2/gpustack/ui/js/1662.1784901406814.chunk.js +1 -0
  150. gpustack-2.2.2/gpustack/ui/js/1662.1784901406814.chunk.js.gz +0 -0
  151. gpustack-2.2.2/gpustack/ui/js/1755.1784901406814.chunk.js +1 -0
  152. gpustack-2.2.2/gpustack/ui/js/1755.1784901406814.chunk.js.gz +0 -0
  153. gpustack-2.2.2/gpustack/ui/js/2350.1784901406814.chunk.js +1 -0
  154. gpustack-2.2.2/gpustack/ui/js/2350.1784901406814.chunk.js.gz +0 -0
  155. gpustack-2.2.2/gpustack/ui/js/3690.1784901406814.chunk.js +1 -0
  156. gpustack-2.2.2/gpustack/ui/js/3690.1784901406814.chunk.js.gz +0 -0
  157. gpustack-2.2.2/gpustack/ui/js/3806.1784901406814.chunk.js +1 -0
  158. gpustack-2.2.2/gpustack/ui/js/3806.1784901406814.chunk.js.gz +0 -0
  159. gpustack-2.2.2/gpustack/ui/js/4392.1784901406814.chunk.js +1 -0
  160. gpustack-2.2.2/gpustack/ui/js/4392.1784901406814.chunk.js.gz +0 -0
  161. gpustack-2.2.2/gpustack/ui/js/4477.1784901406814.chunk.js +1 -0
  162. gpustack-2.2.2/gpustack/ui/js/4477.1784901406814.chunk.js.gz +0 -0
  163. gpustack-2.2.2/gpustack/ui/js/4494.1784901406814.chunk.js +1 -0
  164. gpustack-2.2.2/gpustack/ui/js/4494.1784901406814.chunk.js.gz +0 -0
  165. gpustack-2.2.2/gpustack/ui/js/4596.1784901406814.chunk.js +1 -0
  166. gpustack-2.2.2/gpustack/ui/js/5028.1784901406814.chunk.js +1 -0
  167. gpustack-2.2.2/gpustack/ui/js/5028.1784901406814.chunk.js.gz +0 -0
  168. gpustack-2.2.2/gpustack/ui/js/5117.1784901406814.chunk.js +1 -0
  169. gpustack-2.2.2/gpustack/ui/js/5117.1784901406814.chunk.js.gz +0 -0
  170. gpustack-2.2.2/gpustack/ui/js/5442.1784901406814.chunk.js +1 -0
  171. gpustack-2.2.2/gpustack/ui/js/5442.1784901406814.chunk.js.gz +0 -0
  172. gpustack-2.2.2/gpustack/ui/js/5611.1784901406814.chunk.js +1 -0
  173. gpustack-2.2.2/gpustack/ui/js/5611.1784901406814.chunk.js.gz +0 -0
  174. gpustack-2.2.2/gpustack/ui/js/5807.1784901406814.chunk.js +1 -0
  175. gpustack-2.2.2/gpustack/ui/js/617.1784901406814.chunk.js +1 -0
  176. gpustack-2.2.2/gpustack/ui/js/617.1784901406814.chunk.js.gz +0 -0
  177. gpustack-2.2.2/gpustack/ui/js/6340.1784901406814.chunk.js +1 -0
  178. gpustack-2.2.2/gpustack/ui/js/6340.1784901406814.chunk.js.gz +0 -0
  179. gpustack-2.2.2/gpustack/ui/js/6841.1784901406814.chunk.js +1 -0
  180. gpustack-2.2.2/gpustack/ui/js/6841.1784901406814.chunk.js.gz +0 -0
  181. gpustack-2.2.2/gpustack/ui/js/6867.1784901406814.chunk.js +1 -0
  182. gpustack-2.2.2/gpustack/ui/js/6867.1784901406814.chunk.js.gz +0 -0
  183. gpustack-2.2.2/gpustack/ui/js/6974.1784901406814.chunk.js +1 -0
  184. gpustack-2.2.2/gpustack/ui/js/6974.1784901406814.chunk.js.gz +0 -0
  185. gpustack-2.2.2/gpustack/ui/js/7020.1784901406814.chunk.js +1 -0
  186. gpustack-2.2.2/gpustack/ui/js/7020.1784901406814.chunk.js.gz +0 -0
  187. gpustack-2.2.2/gpustack/ui/js/7738.1784901406814.chunk.js +31 -0
  188. gpustack-2.2.2/gpustack/ui/js/7738.1784901406814.chunk.js.gz +0 -0
  189. gpustack-2.2.2/gpustack/ui/js/7825.1784901406814.chunk.js +1 -0
  190. gpustack-2.2.2/gpustack/ui/js/8091.1784901406814.chunk.js +1 -0
  191. gpustack-2.2.2/gpustack/ui/js/8091.1784901406814.chunk.js.gz +0 -0
  192. gpustack-2.2.2/gpustack/ui/js/8319.1784901406814.chunk.js +1 -0
  193. gpustack-2.2.2/gpustack/ui/js/8661.1784901406814.chunk.js +1 -0
  194. gpustack-2.2.2/gpustack/ui/js/8661.1784901406814.chunk.js.gz +0 -0
  195. gpustack-2.2.2/gpustack/ui/js/90.1784901406814.chunk.js +1 -0
  196. gpustack-2.2.2/gpustack/ui/js/90.1784901406814.chunk.js.gz +0 -0
  197. gpustack-2.2.2/gpustack/ui/js/9367.1784901406814.chunk.js +1 -0
  198. gpustack-2.2.2/gpustack/ui/js/9878.1784901406814.chunk.js +1 -0
  199. gpustack-2.2.2/gpustack/ui/js/9878.1784901406814.chunk.js.gz +0 -0
  200. gpustack-2.2.2/gpustack/ui/js/layouts__index.1784901406814.chunk.js +1 -0
  201. gpustack-2.2.2/gpustack/ui/js/layouts__index.1784901406814.chunk.js.gz +0 -0
  202. gpustack-2.2.2/gpustack/ui/js/p__404.1784901406814.chunk.js +1 -0
  203. gpustack-2.2.2/gpustack/ui/js/p__api-keys__index.1784901406814.chunk.js +1 -0
  204. gpustack-2.2.2/gpustack/ui/js/p__api-keys__index.1784901406814.chunk.js.gz +0 -0
  205. gpustack-2.2.2/gpustack/ui/js/p__backends__index.1784901406814.chunk.js +1 -0
  206. gpustack-2.2.2/gpustack/ui/js/p__backends__index.1784901406814.chunk.js.gz +0 -0
  207. gpustack-2.2.2/gpustack/ui/js/p__benchmark__details.1784901406814.chunk.js +1 -0
  208. gpustack-2.2.2/gpustack/ui/js/p__benchmark__details.1784901406814.chunk.js.gz +0 -0
  209. gpustack-2.2.2/gpustack/ui/js/p__benchmark__index.1784901406814.chunk.js +1 -0
  210. gpustack-2.2.2/gpustack/ui/js/p__benchmark__index.1784901406814.chunk.js.gz +0 -0
  211. gpustack-2.2.2/gpustack/ui/js/p__billing__index.1784901406814.chunk.js +1 -0
  212. gpustack-2.2.2/gpustack/ui/js/p__cluster-management__clusters.1784901406814.chunk.js +1 -0
  213. gpustack-2.2.2/gpustack/ui/js/p__cluster-management__clusters.1784901406814.chunk.js.gz +0 -0
  214. gpustack-2.2.2/gpustack/ui/js/p__cluster-management__credentials.1784901406814.chunk.js +1 -0
  215. gpustack-2.2.2/gpustack/ui/js/p__dashboard__index.1784901406814.chunk.js +1 -0
  216. gpustack-2.2.2/gpustack/ui/js/p__dashboard__index.1784901406814.chunk.js.gz +0 -0
  217. gpustack-2.2.2/gpustack/ui/js/p__gpu-service__instances__index.1784901406814.chunk.js +1 -0
  218. gpustack-2.2.2/gpustack/ui/js/p__gpu-service__instances__index.1784901406814.chunk.js.gz +0 -0
  219. gpustack-2.2.2/gpustack/ui/js/p__gpu-service__public-keys__index.1784901406814.chunk.js +1 -0
  220. gpustack-2.2.2/gpustack/ui/js/p__gpu-service__public-keys__index.1784901406814.chunk.js.gz +0 -0
  221. gpustack-2.2.2/gpustack/ui/js/p__gpu-service__storage-types__index.1784901406814.chunk.js +1 -0
  222. gpustack-2.2.2/gpustack/ui/js/p__gpu-service__storage-types__index.1784901406814.chunk.js.gz +0 -0
  223. gpustack-2.2.2/gpustack/ui/js/p__gpu-service__storage__index.1784901406814.chunk.js +1 -0
  224. gpustack-2.2.2/gpustack/ui/js/p__gpu-service__storage__index.1784901406814.chunk.js.gz +0 -0
  225. gpustack-2.2.2/gpustack/ui/js/p__gpu-service__templates__index.1784901406814.chunk.js +1 -0
  226. gpustack-2.2.2/gpustack/ui/js/p__gpu-service__templates__index.1784901406814.chunk.js.gz +0 -0
  227. gpustack-2.2.2/gpustack/ui/js/p__llmodels__catalog.1784901406814.chunk.js +1 -0
  228. gpustack-2.2.2/gpustack/ui/js/p__llmodels__catalog.1784901406814.chunk.js.gz +0 -0
  229. gpustack-2.2.2/gpustack/ui/js/p__llmodels__index.1784901406814.chunk.js +1 -0
  230. gpustack-2.2.2/gpustack/ui/js/p__llmodels__index.1784901406814.chunk.js.gz +0 -0
  231. gpustack-2.2.2/gpustack/ui/js/p__llmodels__user-models.1784901406814.chunk.js +1 -0
  232. gpustack-2.2.2/gpustack/ui/js/p__llmodels__user-models.1784901406814.chunk.js.gz +0 -0
  233. gpustack-2.2.2/gpustack/ui/js/p__login__index.1784901406814.chunk.js +1 -0
  234. gpustack-2.2.2/gpustack/ui/js/p__login__index.1784901406814.chunk.js.gz +0 -0
  235. gpustack-2.2.2/gpustack/ui/js/p__maas-provider__index.1784901406814.chunk.js +1 -0
  236. gpustack-2.2.2/gpustack/ui/js/p__maas-provider__index.1784901406814.chunk.js.gz +0 -0
  237. gpustack-2.2.2/gpustack/ui/js/p__model-routes__index.1784901406814.chunk.js +1 -0
  238. gpustack-2.2.2/gpustack/ui/js/p__model-routes__index.1784901406814.chunk.js.gz +0 -0
  239. gpustack-2.2.2/gpustack/ui/js/p__organizations__index.1784901406814.chunk.js +1 -0
  240. gpustack-2.2.2/gpustack/ui/js/p__playground__chat__index.1784901406814.chunk.js +1 -0
  241. gpustack-2.2.2/gpustack/ui/js/p__playground__chat__index.1784901406814.chunk.js.gz +0 -0
  242. gpustack-2.2.2/gpustack/ui/js/p__playground__embedding__index.1784901406814.chunk.js +13 -0
  243. gpustack-2.2.2/gpustack/ui/js/p__playground__embedding__index.1784901406814.chunk.js.gz +0 -0
  244. gpustack-2.2.2/gpustack/ui/js/p__playground__images__index.1784901406814.chunk.js +1 -0
  245. gpustack-2.2.2/gpustack/ui/js/p__playground__images__index.1784901406814.chunk.js.gz +0 -0
  246. gpustack-2.2.2/gpustack/ui/js/p__playground__rerank__index.1784901406814.chunk.js +1 -0
  247. gpustack-2.2.2/gpustack/ui/js/p__playground__rerank__index.1784901406814.chunk.js.gz +0 -0
  248. gpustack-2.2.2/gpustack/ui/js/p__playground__speech__index.1784901406814.chunk.js +1 -0
  249. gpustack-2.2.2/gpustack/ui/js/p__playground__speech__index.1784901406814.chunk.js.gz +0 -0
  250. gpustack-2.2.2/gpustack/ui/js/p__profile__index.1784901406814.chunk.js +1 -0
  251. gpustack-2.2.2/gpustack/ui/js/p__profile__index.1784901406814.chunk.js.gz +0 -0
  252. gpustack-2.2.2/gpustack/ui/js/p__resources__components__gpus.1784901406814.chunk.js +1 -0
  253. gpustack-2.2.2/gpustack/ui/js/p__resources__components__gpus.1784901406814.chunk.js.gz +0 -0
  254. gpustack-2.2.2/gpustack/ui/js/p__resources__components__model-files.1784901406814.chunk.js +1 -0
  255. gpustack-2.2.2/gpustack/ui/js/p__resources__components__model-files.1784901406814.chunk.js.gz +0 -0
  256. gpustack-2.2.2/gpustack/ui/js/p__resources__components__workers.1784901406814.chunk.js +1 -0
  257. gpustack-2.2.2/gpustack/ui/js/p__resources__components__workers.1784901406814.chunk.js.gz +0 -0
  258. gpustack-2.2.2/gpustack/ui/js/p__usage__index.1784901406814.chunk.js +1 -0
  259. gpustack-2.2.2/gpustack/ui/js/p__usage__index.1784901406814.chunk.js.gz +0 -0
  260. gpustack-2.2.2/gpustack/ui/js/p__users__index.1784901406814.chunk.js +1 -0
  261. gpustack-2.2.2/gpustack/ui/js/p__users__index.1784901406814.chunk.js.gz +0 -0
  262. gpustack-2.2.2/gpustack/ui/js/t__plugin-maxtabs__Layout.1784901406814.chunk.js +1 -0
  263. gpustack-2.2.2/gpustack/ui/js/umi.1784901406814.js +1685 -0
  264. gpustack-2.2.2/gpustack/ui/js/umi.1784901406814.js.gz +0 -0
  265. gpustack-2.2.2/gpustack/ui/static/KaTeX_AMS-Regular.1608a09b.woff +0 -0
  266. gpustack-2.2.2/gpustack/ui/static/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
  267. gpustack-2.2.2/gpustack/ui/static/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
  268. gpustack-2.2.2/gpustack/ui/static/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
  269. gpustack-2.2.2/gpustack/ui/static/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
  270. gpustack-2.2.2/gpustack/ui/static/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
  271. gpustack-2.2.2/gpustack/ui/static/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
  272. gpustack-2.2.2/gpustack/ui/static/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
  273. gpustack-2.2.2/gpustack/ui/static/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
  274. gpustack-2.2.2/gpustack/ui/static/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
  275. gpustack-2.2.2/gpustack/ui/static/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
  276. gpustack-2.2.2/gpustack/ui/static/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
  277. gpustack-2.2.2/gpustack/ui/static/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
  278. gpustack-2.2.2/gpustack/ui/static/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
  279. gpustack-2.2.2/gpustack/ui/static/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
  280. gpustack-2.2.2/gpustack/ui/static/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
  281. gpustack-2.2.2/gpustack/ui/static/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
  282. gpustack-2.2.2/gpustack/ui/static/KaTeX_Main-Bold.d181c465.woff +0 -0
  283. gpustack-2.2.2/gpustack/ui/static/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
  284. gpustack-2.2.2/gpustack/ui/static/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
  285. gpustack-2.2.2/gpustack/ui/static/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
  286. gpustack-2.2.2/gpustack/ui/static/KaTeX_Main-Italic.47373d1e.ttf +0 -0
  287. gpustack-2.2.2/gpustack/ui/static/KaTeX_Main-Italic.8916142b.woff2 +0 -0
  288. gpustack-2.2.2/gpustack/ui/static/KaTeX_Main-Italic.9024d815.woff +0 -0
  289. gpustack-2.2.2/gpustack/ui/static/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
  290. gpustack-2.2.2/gpustack/ui/static/KaTeX_Main-Regular.7f51fe03.woff +0 -0
  291. gpustack-2.2.2/gpustack/ui/static/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
  292. gpustack-2.2.2/gpustack/ui/static/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
  293. gpustack-2.2.2/gpustack/ui/static/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
  294. gpustack-2.2.2/gpustack/ui/static/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
  295. gpustack-2.2.2/gpustack/ui/static/KaTeX_Math-Italic.5295ba48.woff +0 -0
  296. gpustack-2.2.2/gpustack/ui/static/KaTeX_Math-Italic.939bc644.ttf +0 -0
  297. gpustack-2.2.2/gpustack/ui/static/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
  298. gpustack-2.2.2/gpustack/ui/static/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
  299. gpustack-2.2.2/gpustack/ui/static/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
  300. gpustack-2.2.2/gpustack/ui/static/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
  301. gpustack-2.2.2/gpustack/ui/static/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
  302. gpustack-2.2.2/gpustack/ui/static/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
  303. gpustack-2.2.2/gpustack/ui/static/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
  304. gpustack-2.2.2/gpustack/ui/static/KaTeX_SansSerif-Regular.74048478.woff +0 -0
  305. gpustack-2.2.2/gpustack/ui/static/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
  306. gpustack-2.2.2/gpustack/ui/static/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
  307. gpustack-2.2.2/gpustack/ui/static/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
  308. gpustack-2.2.2/gpustack/ui/static/KaTeX_Script-Regular.07505710.woff +0 -0
  309. gpustack-2.2.2/gpustack/ui/static/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
  310. gpustack-2.2.2/gpustack/ui/static/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
  311. gpustack-2.2.2/gpustack/ui/static/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
  312. gpustack-2.2.2/gpustack/ui/static/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
  313. gpustack-2.2.2/gpustack/ui/static/KaTeX_Size2-Regular.57727022.woff +0 -0
  314. gpustack-2.2.2/gpustack/ui/static/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
  315. gpustack-2.2.2/gpustack/ui/static/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
  316. gpustack-2.2.2/gpustack/ui/static/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
  317. gpustack-2.2.2/gpustack/ui/static/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
  318. gpustack-2.2.2/gpustack/ui/static/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
  319. gpustack-2.2.2/gpustack/ui/static/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
  320. gpustack-2.2.2/gpustack/ui/static/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
  321. gpustack-2.2.2/gpustack/ui/static/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
  322. gpustack-2.2.2/gpustack/ui/static/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
  323. gpustack-2.2.2/gpustack/ui/static/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
  324. gpustack-2.2.2/gpustack/ui/static/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
  325. gpustack-2.2.2/gpustack/ui/static/catalog_icons/ERNIE.png +0 -0
  326. gpustack-2.2.2/gpustack/ui/static/catalog_icons/FunAudioLLM.png +0 -0
  327. gpustack-2.2.2/gpustack/ui/static/catalog_icons/THUDM.png +0 -0
  328. gpustack-2.2.2/gpustack/ui/static/catalog_icons/bagel.png +0 -0
  329. gpustack-2.2.2/gpustack/ui/static/catalog_icons/bge_logo.jpeg +0 -0
  330. gpustack-2.2.2/gpustack/ui/static/embedding.5b37c1bf.svg +1 -0
  331. gpustack-2.2.2/gpustack/ui/static/falcon3.c3625fd1.png +0 -0
  332. gpustack-2.2.2/gpustack/ui/static/hunyuan.8026e687.png +0 -0
  333. gpustack-2.2.2/gpustack/ui/static/image.d2650b7d.svg +1 -0
  334. gpustack-2.2.2/gpustack/ui/static/jetbrains.4d4395df.png +0 -0
  335. gpustack-2.2.2/gpustack/ui/static/kimi.38ca5f9b.png +0 -0
  336. gpustack-2.2.2/gpustack/ui/static/liquidai.5d5bb23d.png +0 -0
  337. gpustack-2.2.2/gpustack/ui/static/llm-icon.66c5f392.png +0 -0
  338. gpustack-2.2.2/gpustack/ui/static/llm.33a711a4.svg +1 -0
  339. gpustack-2.2.2/gpustack/ui/static/nanbeige.c59e8b02.png +0 -0
  340. gpustack-2.2.2/gpustack/ui/static/narilabs.fadd43d8.png +0 -0
  341. gpustack-2.2.2/gpustack/ui/static/nomic.640f9fbb.png +0 -0
  342. gpustack-2.2.2/gpustack/ui/static/qwen.75bce0fe.png +0 -0
  343. gpustack-2.2.2/gpustack/ui/static/reranker.74f7d3ee.svg +1 -0
  344. gpustack-2.2.2/gpustack/ui/static/stt.fa7b227b.svg +1 -0
  345. gpustack-2.2.2/gpustack/ui/static/systran.698fd0a8.png +0 -0
  346. gpustack-2.2.2/gpustack/ui/static/tts.cf02f8ca.svg +1 -0
  347. gpustack-2.2.2/gpustack/utils/command.py +457 -0
  348. gpustack-2.2.2/gpustack/utils/forwarded.py +110 -0
  349. gpustack-2.2.2/gpustack/utils/hub.py +789 -0
  350. gpustack-2.2.2/gpustack/utils/resource_usage.py +479 -0
  351. gpustack-2.2.2/gpustack/utils/rollup_tz.py +100 -0
  352. gpustack-2.2.2/gpustack/utils/usage_snapshots.py +162 -0
  353. gpustack-2.2.2/gpustack/utils/vllm_topology.py +208 -0
  354. gpustack-2.2.2/gpustack/websocket_proxy/message_server.py +663 -0
  355. gpustack-2.2.2/gpustack/worker/backends/base.py +1298 -0
  356. gpustack-2.2.2/gpustack/worker/backends/custom.py +181 -0
  357. gpustack-2.2.2/gpustack/worker/backends/vllm.py +1139 -0
  358. gpustack-2.2.2/gpustack/worker/serve_manager.py +1890 -0
  359. gpustack-2.2.2/gpustack/worker/tools_manager.py +337 -0
  360. gpustack-2.2.2/gpustack/worker/worker.py +537 -0
  361. gpustack-2.2.2/pyproject.toml +120 -0
  362. gpustack-2.2.1/PKG-INFO +0 -315
  363. gpustack-2.2.1/README.md +0 -232
  364. gpustack-2.2.1/gpustack/__init__.py +0 -4
  365. gpustack-2.2.1/gpustack/api/auth.py +0 -498
  366. gpustack-2.2.1/gpustack/api/middlewares.py +0 -396
  367. gpustack-2.2.1/gpustack/api/responses.py +0 -109
  368. gpustack-2.2.1/gpustack/api/tenant.py +0 -819
  369. gpustack-2.2.1/gpustack/assets/community-inference-backends.yaml +0 -353
  370. gpustack-2.2.1/gpustack/assets/model-catalog-modelscope.yaml +0 -3489
  371. gpustack-2.2.1/gpustack/assets/model-catalog.yaml +0 -3580
  372. gpustack-2.2.1/gpustack/client/generated_benchmark_client.py +0 -342
  373. gpustack-2.2.1/gpustack/client/generated_inference_backend_client.py +0 -344
  374. gpustack-2.2.1/gpustack/client/generated_model_client.py +0 -340
  375. gpustack-2.2.1/gpustack/client/generated_model_file_client.py +0 -342
  376. gpustack-2.2.1/gpustack/client/generated_model_instance_client.py +0 -342
  377. gpustack-2.2.1/gpustack/client/generated_model_route_target_client.py +0 -344
  378. gpustack-2.2.1/gpustack/client/generated_user_client.py +0 -340
  379. gpustack-2.2.1/gpustack/client/generated_worker_client.py +0 -342
  380. gpustack-2.2.1/gpustack/cmd/images.py +0 -71
  381. gpustack-2.2.1/gpustack/cmd/prerun.py +0 -420
  382. gpustack-2.2.1/gpustack/cmd/reload_config.py +0 -312
  383. gpustack-2.2.1/gpustack/cmd/start.py +0 -877
  384. gpustack-2.2.1/gpustack/cmd/version.py +0 -48
  385. gpustack-2.2.1/gpustack/codegen/templates/client.py.jinja +0 -345
  386. gpustack-2.2.1/gpustack/config/config.py +0 -976
  387. gpustack-2.2.1/gpustack/config/registration.py +0 -99
  388. gpustack-2.2.1/gpustack/envs/__init__.py +0 -259
  389. gpustack-2.2.1/gpustack/exporter/bus_metrics.py +0 -86
  390. gpustack-2.2.1/gpustack/exporter/exporter.py +0 -321
  391. gpustack-2.2.1/gpustack/extension.py +0 -118
  392. gpustack-2.2.1/gpustack/gateway/__init__.py +0 -879
  393. gpustack-2.2.1/gpustack/gateway/utils.py +0 -1614
  394. gpustack-2.2.1/gpustack/gpu_instances/cluster_apis.py +0 -546
  395. gpustack-2.2.1/gpustack/gpu_instances/cluster_apis_util.py +0 -266
  396. gpustack-2.2.1/gpustack/gpu_instances/gateway.py +0 -50
  397. gpustack-2.2.1/gpustack/gpu_instances/gateway_client.py +0 -221
  398. gpustack-2.2.1/gpustack/k8s/daemonset.jinja +0 -262
  399. gpustack-2.2.1/gpustack/k8s/manifest_template.py +0 -392
  400. gpustack-2.2.1/gpustack/k8s/manifests.jinja +0 -62
  401. gpustack-2.2.1/gpustack/migrations/versions/2026_01_05_1048-53667f33f000_v2_1_0_database_changes.py +0 -523
  402. gpustack-2.2.1/gpustack/mixins/active_record.py +0 -935
  403. gpustack-2.2.1/gpustack/policies/candidate_selectors/vllm_resource_fit_selector.py +0 -865
  404. gpustack-2.2.1/gpustack/policies/worker_filters/backend_framework_filter.py +0 -266
  405. gpustack-2.2.1/gpustack/routes/api_keys.py +0 -281
  406. gpustack-2.2.1/gpustack/routes/auth.py +0 -737
  407. gpustack-2.2.1/gpustack/routes/benchmarks.py +0 -590
  408. gpustack-2.2.1/gpustack/routes/cloud_credentials.py +0 -190
  409. gpustack-2.2.1/gpustack/routes/clusters.py +0 -907
  410. gpustack-2.2.1/gpustack/routes/gpu_devices.py +0 -128
  411. gpustack-2.2.1/gpustack/routes/gpu_instance_persistent_volume_types.py +0 -272
  412. gpustack-2.2.1/gpustack/routes/gpu_instance_persistent_volumes.py +0 -291
  413. gpustack-2.2.1/gpustack/routes/gpu_instances.py +0 -530
  414. gpustack-2.2.1/gpustack/routes/inference_backend.py +0 -1653
  415. gpustack-2.2.1/gpustack/routes/model_common.py +0 -57
  416. gpustack-2.2.1/gpustack/routes/model_files.py +0 -301
  417. gpustack-2.2.1/gpustack/routes/model_instances.py +0 -501
  418. gpustack-2.2.1/gpustack/routes/model_routes.py +0 -1507
  419. gpustack-2.2.1/gpustack/routes/models.py +0 -733
  420. gpustack-2.2.1/gpustack/routes/openai.py +0 -536
  421. gpustack-2.2.1/gpustack/routes/organizations.py +0 -275
  422. gpustack-2.2.1/gpustack/routes/proxy.py +0 -188
  423. gpustack-2.2.1/gpustack/routes/resource_usage.py +0 -978
  424. gpustack-2.2.1/gpustack/routes/token.py +0 -176
  425. gpustack-2.2.1/gpustack/routes/usage.py +0 -748
  426. gpustack-2.2.1/gpustack/routes/users.py +0 -459
  427. gpustack-2.2.1/gpustack/routes/worker/cluster_proxy.py +0 -194
  428. gpustack-2.2.1/gpustack/routes/worker/logs.py +0 -628
  429. gpustack-2.2.1/gpustack/routes/workers.py +0 -804
  430. gpustack-2.2.1/gpustack/scheduler/evaluator.py +0 -621
  431. gpustack-2.2.1/gpustack/scheduler/model_registry.py +0 -463
  432. gpustack-2.2.1/gpustack/schemas/__init__.py +0 -345
  433. gpustack-2.2.1/gpustack/schemas/api_keys.py +0 -117
  434. gpustack-2.2.1/gpustack/schemas/gpu_instance_persistent_volume_types.py +0 -335
  435. gpustack-2.2.1/gpustack/schemas/gpu_instance_persistent_volumes.py +0 -205
  436. gpustack-2.2.1/gpustack/schemas/gpu_instances.py +0 -719
  437. gpustack-2.2.1/gpustack/schemas/inference_backend.py +0 -437
  438. gpustack-2.2.1/gpustack/schemas/metered_usage.py +0 -288
  439. gpustack-2.2.1/gpustack/schemas/model_usage.py +0 -84
  440. gpustack-2.2.1/gpustack/schemas/principals.py +0 -545
  441. gpustack-2.2.1/gpustack/schemas/resource_events.py +0 -154
  442. gpustack-2.2.1/gpustack/schemas/usage.py +0 -255
  443. gpustack-2.2.1/gpustack/schemas/user_groups.py +0 -83
  444. gpustack-2.2.1/gpustack/schemas/users.py +0 -224
  445. gpustack-2.2.1/gpustack/server/app.py +0 -106
  446. gpustack-2.2.1/gpustack/server/bus.py +0 -473
  447. gpustack-2.2.1/gpustack/server/controllers.py +0 -4152
  448. gpustack-2.2.1/gpustack/server/coordinator/base.py +0 -226
  449. gpustack-2.2.1/gpustack/server/init_db.py +0 -229
  450. gpustack-2.2.1/gpustack/server/metrics_collector.py +0 -736
  451. gpustack-2.2.1/gpustack/server/passwords.py +0 -160
  452. gpustack-2.2.1/gpustack/server/resource_event_logger.py +0 -405
  453. gpustack-2.2.1/gpustack/server/resource_usage_collector.py +0 -544
  454. gpustack-2.2.1/gpustack/server/server.py +0 -1288
  455. gpustack-2.2.1/gpustack/server/services.py +0 -1022
  456. gpustack-2.2.1/gpustack/server/storage_usage_collector.py +0 -345
  457. gpustack-2.2.1/gpustack/server/usage_details_archiver.py +0 -213
  458. gpustack-2.2.1/gpustack/ui/css/layouts__index.1783075810543.chunk.css +0 -9
  459. gpustack-2.2.1/gpustack/ui/css/layouts__index.1783075810543.chunk.css.gz +0 -0
  460. gpustack-2.2.1/gpustack/ui/css/p__api-keys__index.1783075810543.chunk.css +0 -1
  461. gpustack-2.2.1/gpustack/ui/css/p__backends__index.1783075810543.chunk.css +0 -1
  462. gpustack-2.2.1/gpustack/ui/css/p__benchmark__details.1783075810543.chunk.css +0 -1
  463. gpustack-2.2.1/gpustack/ui/css/p__benchmark__index.1783075810543.chunk.css +0 -1
  464. gpustack-2.2.1/gpustack/ui/css/p__billing__index.1783075810543.chunk.css +0 -1
  465. gpustack-2.2.1/gpustack/ui/css/p__cluster-management__cluster-detail.1783075810543.chunk.css +0 -1
  466. gpustack-2.2.1/gpustack/ui/css/p__cluster-management__clusters.1783075810543.chunk.css +0 -1
  467. gpustack-2.2.1/gpustack/ui/css/p__cluster-management__credentials.1783075810543.chunk.css +0 -1
  468. gpustack-2.2.1/gpustack/ui/css/p__dashboard__index.1783075810543.chunk.css +0 -1
  469. gpustack-2.2.1/gpustack/ui/css/p__gpu-service__instances__index.1783075810543.chunk.css +0 -1
  470. gpustack-2.2.1/gpustack/ui/css/p__gpu-service__public-keys__index.1783075810543.chunk.css +0 -1
  471. gpustack-2.2.1/gpustack/ui/css/p__gpu-service__storage-types__index.1783075810543.chunk.css +0 -1
  472. gpustack-2.2.1/gpustack/ui/css/p__gpu-service__storage__index.1783075810543.chunk.css +0 -1
  473. gpustack-2.2.1/gpustack/ui/css/p__gpu-service__templates__index.1783075810543.chunk.css +0 -1
  474. gpustack-2.2.1/gpustack/ui/css/p__llmodels__catalog.1783075810543.chunk.css +0 -1
  475. gpustack-2.2.1/gpustack/ui/css/p__llmodels__index.1783075810543.chunk.css +0 -1
  476. gpustack-2.2.1/gpustack/ui/css/p__llmodels__index.1783075810543.chunk.css.gz +0 -0
  477. gpustack-2.2.1/gpustack/ui/css/p__llmodels__user-models.1783075810543.chunk.css +0 -1
  478. gpustack-2.2.1/gpustack/ui/css/p__maas-provider__index.1783075810543.chunk.css +0 -1
  479. gpustack-2.2.1/gpustack/ui/css/p__model-routes__index.1783075810543.chunk.css +0 -1
  480. gpustack-2.2.1/gpustack/ui/css/p__organizations__index.1783075810543.chunk.css +0 -1
  481. gpustack-2.2.1/gpustack/ui/css/p__playground__chat__index.1783075810543.chunk.css +0 -1
  482. gpustack-2.2.1/gpustack/ui/css/p__playground__chat__index.1783075810543.chunk.css.gz +0 -0
  483. gpustack-2.2.1/gpustack/ui/css/p__playground__embedding__index.1783075810543.chunk.css +0 -1
  484. gpustack-2.2.1/gpustack/ui/css/p__playground__images__index.1783075810543.chunk.css +0 -1
  485. gpustack-2.2.1/gpustack/ui/css/p__playground__rerank__index.1783075810543.chunk.css +0 -1
  486. gpustack-2.2.1/gpustack/ui/css/p__playground__speech__index.1783075810543.chunk.css +0 -1
  487. gpustack-2.2.1/gpustack/ui/css/p__profile__index.1783075810543.chunk.css +0 -1
  488. gpustack-2.2.1/gpustack/ui/css/p__resources__components__gpus.1783075810543.chunk.css +0 -1
  489. gpustack-2.2.1/gpustack/ui/css/p__resources__components__model-files.1783075810543.chunk.css +0 -1
  490. gpustack-2.2.1/gpustack/ui/css/p__resources__components__model-files.1783075810543.chunk.css.gz +0 -0
  491. gpustack-2.2.1/gpustack/ui/css/p__resources__components__workers.1783075810543.chunk.css +0 -1
  492. gpustack-2.2.1/gpustack/ui/css/p__usage__index.1783075810543.chunk.css +0 -1
  493. gpustack-2.2.1/gpustack/ui/css/p__users__index.1783075810543.chunk.css +0 -1
  494. gpustack-2.2.1/gpustack/ui/css/umi.1783075810543.css +0 -1
  495. gpustack-2.2.1/gpustack/ui/css/umi.1783075810543.css.gz +0 -0
  496. gpustack-2.2.1/gpustack/ui/index.html +0 -16
  497. gpustack-2.2.1/gpustack/ui/js/102.1783075810543.chunk.js +0 -31
  498. gpustack-2.2.1/gpustack/ui/js/102.1783075810543.chunk.js.gz +0 -0
  499. gpustack-2.2.1/gpustack/ui/js/1104.1783075810543.chunk.js +0 -1
  500. gpustack-2.2.1/gpustack/ui/js/1104.1783075810543.chunk.js.gz +0 -0
  501. gpustack-2.2.1/gpustack/ui/js/1259.1783075810543.chunk.js +0 -1
  502. gpustack-2.2.1/gpustack/ui/js/1259.1783075810543.chunk.js.gz +0 -0
  503. gpustack-2.2.1/gpustack/ui/js/1601.1783075810543.chunk.js +0 -1
  504. gpustack-2.2.1/gpustack/ui/js/1601.1783075810543.chunk.js.gz +0 -0
  505. gpustack-2.2.1/gpustack/ui/js/1662.1783075810543.chunk.js +0 -1
  506. gpustack-2.2.1/gpustack/ui/js/1662.1783075810543.chunk.js.gz +0 -0
  507. gpustack-2.2.1/gpustack/ui/js/1755.1783075810543.chunk.js +0 -1
  508. gpustack-2.2.1/gpustack/ui/js/1755.1783075810543.chunk.js.gz +0 -0
  509. gpustack-2.2.1/gpustack/ui/js/2165.1783075810543.chunk.js +0 -1
  510. gpustack-2.2.1/gpustack/ui/js/2291.1783075810543.chunk.js +0 -1
  511. gpustack-2.2.1/gpustack/ui/js/2291.1783075810543.chunk.js.gz +0 -0
  512. gpustack-2.2.1/gpustack/ui/js/2350.1783075810543.chunk.js +0 -1
  513. gpustack-2.2.1/gpustack/ui/js/2350.1783075810543.chunk.js.gz +0 -0
  514. gpustack-2.2.1/gpustack/ui/js/2939.1783075810543.chunk.js +0 -1
  515. gpustack-2.2.1/gpustack/ui/js/415.1783075810543.chunk.js +0 -1
  516. gpustack-2.2.1/gpustack/ui/js/4392.1783075810543.chunk.js +0 -1
  517. gpustack-2.2.1/gpustack/ui/js/4392.1783075810543.chunk.js.gz +0 -0
  518. gpustack-2.2.1/gpustack/ui/js/4477.1783075810543.chunk.js +0 -1
  519. gpustack-2.2.1/gpustack/ui/js/4477.1783075810543.chunk.js.gz +0 -0
  520. gpustack-2.2.1/gpustack/ui/js/4494.1783075810543.chunk.js +0 -1
  521. gpustack-2.2.1/gpustack/ui/js/4494.1783075810543.chunk.js.gz +0 -0
  522. gpustack-2.2.1/gpustack/ui/js/4596.1783075810543.chunk.js +0 -1
  523. gpustack-2.2.1/gpustack/ui/js/5028.1783075810543.chunk.js +0 -1
  524. gpustack-2.2.1/gpustack/ui/js/5028.1783075810543.chunk.js.gz +0 -0
  525. gpustack-2.2.1/gpustack/ui/js/5277.1783075810543.chunk.js +0 -1
  526. gpustack-2.2.1/gpustack/ui/js/5277.1783075810543.chunk.js.gz +0 -0
  527. gpustack-2.2.1/gpustack/ui/js/5442.1783075810543.chunk.js +0 -1
  528. gpustack-2.2.1/gpustack/ui/js/5442.1783075810543.chunk.js.gz +0 -0
  529. gpustack-2.2.1/gpustack/ui/js/5611.1783075810543.chunk.js +0 -1
  530. gpustack-2.2.1/gpustack/ui/js/5611.1783075810543.chunk.js.gz +0 -0
  531. gpustack-2.2.1/gpustack/ui/js/617.1783075810543.chunk.js +0 -1
  532. gpustack-2.2.1/gpustack/ui/js/617.1783075810543.chunk.js.gz +0 -0
  533. gpustack-2.2.1/gpustack/ui/js/630.1783075810543.chunk.js +0 -1
  534. gpustack-2.2.1/gpustack/ui/js/630.1783075810543.chunk.js.gz +0 -0
  535. gpustack-2.2.1/gpustack/ui/js/645.1783075810543.chunk.js +0 -1
  536. gpustack-2.2.1/gpustack/ui/js/6867.1783075810543.chunk.js +0 -1
  537. gpustack-2.2.1/gpustack/ui/js/6867.1783075810543.chunk.js.gz +0 -0
  538. gpustack-2.2.1/gpustack/ui/js/6974.1783075810543.chunk.js +0 -1
  539. gpustack-2.2.1/gpustack/ui/js/6974.1783075810543.chunk.js.gz +0 -0
  540. gpustack-2.2.1/gpustack/ui/js/7298.1783075810543.chunk.js +0 -1
  541. gpustack-2.2.1/gpustack/ui/js/7298.1783075810543.chunk.js.gz +0 -0
  542. gpustack-2.2.1/gpustack/ui/js/7346.1783075810543.chunk.js +0 -1
  543. gpustack-2.2.1/gpustack/ui/js/7346.1783075810543.chunk.js.gz +0 -0
  544. gpustack-2.2.1/gpustack/ui/js/7763.1783075810543.chunk.js +0 -1
  545. gpustack-2.2.1/gpustack/ui/js/7763.1783075810543.chunk.js.gz +0 -0
  546. gpustack-2.2.1/gpustack/ui/js/781.1783075810543.chunk.js +0 -1
  547. gpustack-2.2.1/gpustack/ui/js/781.1783075810543.chunk.js.gz +0 -0
  548. gpustack-2.2.1/gpustack/ui/js/7967.1783075810543.chunk.js +0 -1
  549. gpustack-2.2.1/gpustack/ui/js/7967.1783075810543.chunk.js.gz +0 -0
  550. gpustack-2.2.1/gpustack/ui/js/8091.1783075810543.chunk.js +0 -1
  551. gpustack-2.2.1/gpustack/ui/js/8091.1783075810543.chunk.js.gz +0 -0
  552. gpustack-2.2.1/gpustack/ui/js/8319.1783075810543.chunk.js +0 -1
  553. gpustack-2.2.1/gpustack/ui/js/8661.1783075810543.chunk.js +0 -1
  554. gpustack-2.2.1/gpustack/ui/js/8661.1783075810543.chunk.js.gz +0 -0
  555. gpustack-2.2.1/gpustack/ui/js/9367.1783075810543.chunk.js +0 -1
  556. gpustack-2.2.1/gpustack/ui/js/9942.1783075810543.chunk.js +0 -1
  557. gpustack-2.2.1/gpustack/ui/js/9942.1783075810543.chunk.js.gz +0 -0
  558. gpustack-2.2.1/gpustack/ui/js/layouts__index.1783075810543.chunk.js +0 -1
  559. gpustack-2.2.1/gpustack/ui/js/layouts__index.1783075810543.chunk.js.gz +0 -0
  560. gpustack-2.2.1/gpustack/ui/js/p__404.1783075810543.chunk.js +0 -1
  561. gpustack-2.2.1/gpustack/ui/js/p__api-keys__index.1783075810543.chunk.js +0 -1
  562. gpustack-2.2.1/gpustack/ui/js/p__api-keys__index.1783075810543.chunk.js.gz +0 -0
  563. gpustack-2.2.1/gpustack/ui/js/p__backends__index.1783075810543.chunk.js +0 -1
  564. gpustack-2.2.1/gpustack/ui/js/p__backends__index.1783075810543.chunk.js.gz +0 -0
  565. gpustack-2.2.1/gpustack/ui/js/p__benchmark__details.1783075810543.chunk.js +0 -1
  566. gpustack-2.2.1/gpustack/ui/js/p__benchmark__details.1783075810543.chunk.js.gz +0 -0
  567. gpustack-2.2.1/gpustack/ui/js/p__benchmark__index.1783075810543.chunk.js +0 -1
  568. gpustack-2.2.1/gpustack/ui/js/p__benchmark__index.1783075810543.chunk.js.gz +0 -0
  569. gpustack-2.2.1/gpustack/ui/js/p__billing__index.1783075810543.chunk.js +0 -1
  570. gpustack-2.2.1/gpustack/ui/js/p__cluster-management__cluster-detail.1783075810543.chunk.js +0 -1
  571. gpustack-2.2.1/gpustack/ui/js/p__cluster-management__cluster-detail.1783075810543.chunk.js.gz +0 -0
  572. gpustack-2.2.1/gpustack/ui/js/p__cluster-management__clusters.1783075810543.chunk.js +0 -1
  573. gpustack-2.2.1/gpustack/ui/js/p__cluster-management__clusters.1783075810543.chunk.js.gz +0 -0
  574. gpustack-2.2.1/gpustack/ui/js/p__cluster-management__credentials.1783075810543.chunk.js +0 -1
  575. gpustack-2.2.1/gpustack/ui/js/p__dashboard__index.1783075810543.chunk.js +0 -1
  576. gpustack-2.2.1/gpustack/ui/js/p__dashboard__index.1783075810543.chunk.js.gz +0 -0
  577. gpustack-2.2.1/gpustack/ui/js/p__gpu-service__instances__index.1783075810543.chunk.js +0 -1
  578. gpustack-2.2.1/gpustack/ui/js/p__gpu-service__instances__index.1783075810543.chunk.js.gz +0 -0
  579. gpustack-2.2.1/gpustack/ui/js/p__gpu-service__public-keys__index.1783075810543.chunk.js +0 -1
  580. gpustack-2.2.1/gpustack/ui/js/p__gpu-service__public-keys__index.1783075810543.chunk.js.gz +0 -0
  581. gpustack-2.2.1/gpustack/ui/js/p__gpu-service__storage-types__index.1783075810543.chunk.js +0 -1
  582. gpustack-2.2.1/gpustack/ui/js/p__gpu-service__storage-types__index.1783075810543.chunk.js.gz +0 -0
  583. gpustack-2.2.1/gpustack/ui/js/p__gpu-service__storage__index.1783075810543.chunk.js +0 -1
  584. gpustack-2.2.1/gpustack/ui/js/p__gpu-service__storage__index.1783075810543.chunk.js.gz +0 -0
  585. gpustack-2.2.1/gpustack/ui/js/p__gpu-service__templates__index.1783075810543.chunk.js +0 -1
  586. gpustack-2.2.1/gpustack/ui/js/p__gpu-service__templates__index.1783075810543.chunk.js.gz +0 -0
  587. gpustack-2.2.1/gpustack/ui/js/p__llmodels__catalog.1783075810543.chunk.js +0 -1
  588. gpustack-2.2.1/gpustack/ui/js/p__llmodels__catalog.1783075810543.chunk.js.gz +0 -0
  589. gpustack-2.2.1/gpustack/ui/js/p__llmodels__index.1783075810543.chunk.js +0 -1
  590. gpustack-2.2.1/gpustack/ui/js/p__llmodels__index.1783075810543.chunk.js.gz +0 -0
  591. gpustack-2.2.1/gpustack/ui/js/p__llmodels__user-models.1783075810543.chunk.js +0 -1
  592. gpustack-2.2.1/gpustack/ui/js/p__llmodels__user-models.1783075810543.chunk.js.gz +0 -0
  593. gpustack-2.2.1/gpustack/ui/js/p__login__index.1783075810543.chunk.js +0 -1
  594. gpustack-2.2.1/gpustack/ui/js/p__login__index.1783075810543.chunk.js.gz +0 -0
  595. gpustack-2.2.1/gpustack/ui/js/p__maas-provider__index.1783075810543.chunk.js +0 -1
  596. gpustack-2.2.1/gpustack/ui/js/p__maas-provider__index.1783075810543.chunk.js.gz +0 -0
  597. gpustack-2.2.1/gpustack/ui/js/p__model-routes__index.1783075810543.chunk.js +0 -1
  598. gpustack-2.2.1/gpustack/ui/js/p__model-routes__index.1783075810543.chunk.js.gz +0 -0
  599. gpustack-2.2.1/gpustack/ui/js/p__organizations__index.1783075810543.chunk.js +0 -1
  600. gpustack-2.2.1/gpustack/ui/js/p__playground__chat__index.1783075810543.chunk.js +0 -1
  601. gpustack-2.2.1/gpustack/ui/js/p__playground__chat__index.1783075810543.chunk.js.gz +0 -0
  602. gpustack-2.2.1/gpustack/ui/js/p__playground__embedding__index.1783075810543.chunk.js +0 -1
  603. gpustack-2.2.1/gpustack/ui/js/p__playground__embedding__index.1783075810543.chunk.js.gz +0 -0
  604. gpustack-2.2.1/gpustack/ui/js/p__playground__images__index.1783075810543.chunk.js +0 -1
  605. gpustack-2.2.1/gpustack/ui/js/p__playground__images__index.1783075810543.chunk.js.gz +0 -0
  606. gpustack-2.2.1/gpustack/ui/js/p__playground__rerank__index.1783075810543.chunk.js +0 -1
  607. gpustack-2.2.1/gpustack/ui/js/p__playground__rerank__index.1783075810543.chunk.js.gz +0 -0
  608. gpustack-2.2.1/gpustack/ui/js/p__playground__speech__index.1783075810543.chunk.js +0 -1
  609. gpustack-2.2.1/gpustack/ui/js/p__playground__speech__index.1783075810543.chunk.js.gz +0 -0
  610. gpustack-2.2.1/gpustack/ui/js/p__profile__index.1783075810543.chunk.js +0 -1
  611. gpustack-2.2.1/gpustack/ui/js/p__profile__index.1783075810543.chunk.js.gz +0 -0
  612. gpustack-2.2.1/gpustack/ui/js/p__resources__components__gpus.1783075810543.chunk.js +0 -1
  613. gpustack-2.2.1/gpustack/ui/js/p__resources__components__gpus.1783075810543.chunk.js.gz +0 -0
  614. gpustack-2.2.1/gpustack/ui/js/p__resources__components__model-files.1783075810543.chunk.js +0 -1
  615. gpustack-2.2.1/gpustack/ui/js/p__resources__components__model-files.1783075810543.chunk.js.gz +0 -0
  616. gpustack-2.2.1/gpustack/ui/js/p__usage__index.1783075810543.chunk.js +0 -1
  617. gpustack-2.2.1/gpustack/ui/js/p__usage__index.1783075810543.chunk.js.gz +0 -0
  618. gpustack-2.2.1/gpustack/ui/js/p__users__index.1783075810543.chunk.js +0 -1
  619. gpustack-2.2.1/gpustack/ui/js/p__users__index.1783075810543.chunk.js.gz +0 -0
  620. gpustack-2.2.1/gpustack/ui/js/t__plugin-maxtabs__Layout.1783075810543.chunk.js +0 -1
  621. gpustack-2.2.1/gpustack/ui/js/umi.1783075810543.js +0 -1668
  622. gpustack-2.2.1/gpustack/ui/js/umi.1783075810543.js.gz +0 -0
  623. gpustack-2.2.1/gpustack/utils/command.py +0 -452
  624. gpustack-2.2.1/gpustack/utils/forwarded.py +0 -43
  625. gpustack-2.2.1/gpustack/utils/hub.py +0 -760
  626. gpustack-2.2.1/gpustack/utils/resource_usage.py +0 -451
  627. gpustack-2.2.1/gpustack/utils/rollup_tz.py +0 -82
  628. gpustack-2.2.1/gpustack/utils/usage_snapshots.py +0 -142
  629. gpustack-2.2.1/gpustack/utils/vllm_topology.py +0 -193
  630. gpustack-2.2.1/gpustack/websocket_proxy/message_server.py +0 -659
  631. gpustack-2.2.1/gpustack/worker/backends/base.py +0 -1198
  632. gpustack-2.2.1/gpustack/worker/backends/custom.py +0 -177
  633. gpustack-2.2.1/gpustack/worker/backends/vllm.py +0 -1132
  634. gpustack-2.2.1/gpustack/worker/serve_manager.py +0 -1704
  635. gpustack-2.2.1/gpustack/worker/tools_manager.py +0 -337
  636. gpustack-2.2.1/gpustack/worker/worker.py +0 -530
  637. gpustack-2.2.1/pyproject.toml +0 -139
  638. {gpustack-2.2.1 → gpustack-2.2.2}/.gitignore +0 -0
  639. {gpustack-2.2.1 → gpustack-2.2.2}/LICENSE +0 -0
  640. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/api/exceptions.py +0 -0
  641. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/api/types/openai_ext.py +0 -0
  642. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/assets/chat_templates/template_deepseek_vl2.jinja +0 -0
  643. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/assets/chat_templates/tool_chat_template_deepseekv32.jinja +0 -0
  644. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/assets/chat_templates/tool_chat_template_llama3.1_json.jinja +0 -0
  645. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/assets/chat_templates/tool_chat_template_llama3.2_json.jinja +0 -0
  646. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/assets/gpu-instance-templates.yaml +0 -0
  647. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/assets/metrics_config/metrics_config.yaml +0 -0
  648. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/assets/profiles_config/profiles_config.yaml +0 -0
  649. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/client/__init__.py +0 -0
  650. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/client/generated_clientset.py +0 -0
  651. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/client/generated_http_client.py +0 -0
  652. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/client/worker_filesystem_client.py +0 -0
  653. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/client/worker_manager_clients.py +0 -0
  654. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/cloud_providers/abstract.py +0 -0
  655. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/cloud_providers/common.py +0 -0
  656. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/cloud_providers/digital_ocean.py +0 -0
  657. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/cloud_providers/user_data.py +0 -0
  658. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/cmd/__init__.py +0 -0
  659. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/cmd/db_migration.py +0 -0
  660. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/cmd/download_tools.py +0 -0
  661. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/cmd/local_auth.py +0 -0
  662. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/cmd/reset_admin_password.py +0 -0
  663. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/codegen/__init__.py +0 -0
  664. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/codegen/filters.py +0 -0
  665. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/codegen/generate.py +0 -0
  666. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/codegen/templates/clientset.py.jinja +0 -0
  667. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/codegen/templates/http_client.py.jinja +0 -0
  668. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/config/__init__.py +0 -0
  669. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/detectors/base.py +0 -0
  670. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/detectors/custom/custom.py +0 -0
  671. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/detectors/detector_factory.py +0 -0
  672. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/detectors/fastfetch/config_gpu.jsonc +0 -0
  673. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/detectors/fastfetch/config_system_info.jsonc +0 -0
  674. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/detectors/fastfetch/fastfetch.py +0 -0
  675. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/detectors/runtime/runtime.py +0 -0
  676. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/gateway/ai_proxy_types.py +0 -0
  677. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/gateway/client/__init__.py +0 -0
  678. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/gateway/client/extensions_higress_io_v1_api.py +0 -0
  679. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/gateway/client/networking_higress_io_v1_api.py +0 -0
  680. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/gateway/client/networking_istio_io_v1alpha3_api.py +0 -0
  681. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/gateway/labels_annotations.py +0 -0
  682. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/gateway/plugins.py +0 -0
  683. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/gpu_instances/__init__.py +0 -0
  684. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/gpu_instances/templates.py +0 -0
  685. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/gpu_instances/validation.py +0 -0
  686. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/http_proxy/__init__.py +0 -0
  687. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/http_proxy/load_balancer.py +0 -0
  688. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/http_proxy/strategies.py +0 -0
  689. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/k8s/__init__.py +0 -0
  690. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/k8s/image_pull_secrets.jinja +0 -0
  691. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/k8s/operator.jinja +0 -0
  692. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/logging.py +0 -0
  693. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/main.py +0 -0
  694. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/README +0 -0
  695. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/env.py +0 -0
  696. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/script.py.mako +0 -0
  697. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/utils.py +0 -0
  698. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2024_07_24_1113-1dd9fa5b38ff_initialize_tables.py +0 -0
  699. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2024_07_31_1203-8277680cfcb7_add_model_embedding_only.py +0 -0
  700. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2024_09_11_1629-6dcb3a50da19_update_model_instance_and_system_load_for_.py +0 -0
  701. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2024_09_19_1939-f29521415cbd_update_model_instance_to_support_model_.py +0 -0
  702. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2024_10_10_1027-0f7dde8b3c4b_add_reranker.py +0 -0
  703. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2024_11_04_1347-004c73a5c09e_add_local_path.py +0 -0
  704. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2024_12_26_1409-e6bf9e067296_add_model_categories.py +0 -0
  705. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2025_02_19_1743-c45e397531d1_add_env.py +0 -0
  706. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2025_06_09_1507-cbbc03c88985_add_worker_uuid.py +0 -0
  707. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2025_08_05_1605-d19176de3b74_add_users_source.py +0 -0
  708. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2025_09_08_1454-924c9a0b4c13_v2_0_database_migration.py +0 -0
  709. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2025_09_17_1812-f3d36b2d11f8_add_worker_metrics_port.py +0 -0
  710. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2025_10_07_2341-2025_10_07_add_is_active_add_is_active_field_to_users.py +0 -0
  711. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2025_10_09_1037-eeacfbc6a2bf_model_access_control.py +0 -0
  712. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2025_10_09_1940-nrxtab43e8j8_add_image_name_run_command.py +0 -0
  713. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2025_10_22_1749-35e8ebcae667_add_worker_ifname.py +0 -0
  714. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2025_10_23_1438-eca16ce6dedd_add_authproviderenum.py +0 -0
  715. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2025_10_23_1736-7737c7eba9c4_server_proxy_improvement.py +0 -0
  716. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2025_10_28_1548-912d04e0d1d0_support_speculative_config.py +0 -0
  717. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2025_11_01_0034-2ea2c247a117_gateway_followup.py +0 -0
  718. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2025_11_06_1839-89cb8df41bf0_update_cpu_offloading_to_nullable.py +0 -0
  719. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2025_11_12_1157-bb9ce21dcc10_add_the_mapping_of_model_backend_field.py +0 -0
  720. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2025_11_12_1642-433346ba0efd_add_maintenance_to_worker.py +0 -0
  721. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2025_11_17_1555-e30134bd18dc_migrate_model_instance_port_to_ports.py +0 -0
  722. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2025_12_08_1623-2aed534bd7b2_v2_0_2_database_changes.py +0 -0
  723. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2026_03_09_1359-8ad0f94c92e8_v2_1_1_migrate_legacy_backend_source.py +0 -0
  724. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2026_03_10_1600-8bf38a6bb3b5_v2_2_0_database_changes.py +0 -0
  725. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2026_04_28_1200-7c5e3f9a2d18_multi_tenancy_foundation.py +0 -0
  726. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2026_05_28_0852-61929acb0676_gpu_instances.py +0 -0
  727. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/migrations/versions/2026_05_29_1000-b2c3d4e5f6a7_metered_usage.py +0 -0
  728. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/mixins/__init__.py +0 -0
  729. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/mixins/timestamp.py +0 -0
  730. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/policies/base.py +0 -0
  731. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/policies/candidate_selectors/__init__.py +0 -0
  732. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/policies/candidate_selectors/ascend_mindie_resource_fit_selector.py +0 -0
  733. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/policies/candidate_selectors/base_candidate_selector.py +0 -0
  734. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/policies/candidate_selectors/custom_backend_resource_fit_selector.py +0 -0
  735. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/policies/candidate_selectors/gguf_resource_fit_selector.py +0 -0
  736. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/policies/candidate_selectors/sglang_resource_fit_selector.py +0 -0
  737. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/policies/event_recorder/recorder.py +0 -0
  738. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/policies/scorers/model_file_locality_scorer.py +0 -0
  739. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/policies/scorers/offload_layer_scorer.py +0 -0
  740. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/policies/scorers/placement_scorer.py +0 -0
  741. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/policies/scorers/score_chain.py +0 -0
  742. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/policies/scorers/status_scorer.py +0 -0
  743. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/policies/utils.py +0 -0
  744. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/policies/worker_filters/cluster_filter.py +0 -0
  745. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/policies/worker_filters/gpu_matching_filter.py +0 -0
  746. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/policies/worker_filters/label_matching_filter.py +0 -0
  747. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/policies/worker_filters/local_path_filter.py +0 -0
  748. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/policies/worker_filters/status_filter.py +0 -0
  749. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/__init__.py +0 -0
  750. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/benchmark_profiles.py +0 -0
  751. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/cluster_access.py +0 -0
  752. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/config.py +0 -0
  753. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/dashboard.py +0 -0
  754. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/debug.py +0 -0
  755. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/draft_models.py +0 -0
  756. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/gateway_metrics.py +0 -0
  757. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/gpu_instance_ssh_public_keys.py +0 -0
  758. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/gpu_instance_templates.py +0 -0
  759. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/gpu_instance_types.py +0 -0
  760. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/grafana.py +0 -0
  761. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/me_orgs.py +0 -0
  762. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/metrics.py +0 -0
  763. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/model_evaluations.py +0 -0
  764. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/model_provider.py +0 -0
  765. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/model_sets.py +0 -0
  766. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/organization_members.py +0 -0
  767. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/probes.py +0 -0
  768. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/prometheus.py +0 -0
  769. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/rerank.py +0 -0
  770. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/routes.py +0 -0
  771. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/ui.py +0 -0
  772. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/update.py +0 -0
  773. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/user_groups.py +0 -0
  774. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/worker/filesystem.py +0 -0
  775. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/worker/proxy.py +0 -0
  776. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/routes/worker_pools.py +0 -0
  777. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/scheduler/calculator.py +0 -0
  778. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/scheduler/meta_registry.py +0 -0
  779. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/scheduler/queue.py +0 -0
  780. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/scheduler/scheduler.py +0 -0
  781. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/benchmark.py +0 -0
  782. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/cluster_access.py +0 -0
  783. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/clusters.py +0 -0
  784. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/common.py +0 -0
  785. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/config.py +0 -0
  786. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/dashboard.py +0 -0
  787. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/filesystem.py +0 -0
  788. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/gpu_devices.py +0 -0
  789. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/gpu_instance_ssh_public_keys.py +0 -0
  790. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/gpu_instance_templates.py +0 -0
  791. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/gpu_instance_types.py +0 -0
  792. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/images.py +0 -0
  793. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/links.py +0 -0
  794. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/model_evaluations.py +0 -0
  795. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/model_files.py +0 -0
  796. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/model_provider.py +0 -0
  797. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/model_routes.py +0 -0
  798. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/model_sets.py +0 -0
  799. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/model_usage_details.py +0 -0
  800. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/models.py +0 -0
  801. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/organizations.py +0 -0
  802. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/stmt.py +0 -0
  803. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/system_load.py +0 -0
  804. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/user_passwords.py +0 -0
  805. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/schemas/workers.py +0 -0
  806. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/security.py +0 -0
  807. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/__init__.py +0 -0
  808. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/cache.py +0 -0
  809. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/catalog.py +0 -0
  810. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/coordinator/__init__.py +0 -0
  811. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/coordinator/cache.py +0 -0
  812. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/coordinator/local.py +0 -0
  813. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/coordinator/models.py +0 -0
  814. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/db.py +0 -0
  815. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/deps.py +0 -0
  816. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/lora_adapters_discovery.py +0 -0
  817. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/lora_model_routes.py +0 -0
  818. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/system_load.py +0 -0
  819. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/update_check.py +0 -0
  820. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/usage_archiver.py +0 -0
  821. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/worker_allocated_cache.py +0 -0
  822. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/worker_instance_cleaner.py +0 -0
  823. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/worker_request.py +0 -0
  824. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/worker_selector.py +0 -0
  825. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/worker_status_buffer.py +0 -0
  826. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/server/worker_syncer.py +0 -0
  827. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ssl_context.py +0 -0
  828. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/third_party/.gitkeep +0 -0
  829. /gpustack-2.2.1/gpustack/ui/css/102.1783075810543.chunk.css → /gpustack-2.2.2/gpustack/ui/css/7738.1784901406814.chunk.css +0 -0
  830. /gpustack-2.2.1/gpustack/ui/css/102.1783075810543.chunk.css.gz → /gpustack-2.2.2/gpustack/ui/css/7738.1784901406814.chunk.css.gz +0 -0
  831. /gpustack-2.2.1/gpustack/ui/css/p__login__index.1783075810543.chunk.css → /gpustack-2.2.2/gpustack/ui/css/p__login__index.1784901406814.chunk.css +0 -0
  832. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/editor.worker.js +0 -0
  833. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/editor.worker.js.gz +0 -0
  834. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/favicon.ico +0 -0
  835. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/favicon.png +0 -0
  836. /gpustack-2.2.1/gpustack/ui/js/1144.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/1144.1784901406814.chunk.js +0 -0
  837. /gpustack-2.2.1/gpustack/ui/js/1278.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/1278.1784901406814.chunk.js +0 -0
  838. /gpustack-2.2.1/gpustack/ui/js/1302.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/1302.1784901406814.chunk.js +0 -0
  839. /gpustack-2.2.1/gpustack/ui/js/1302.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/1302.1784901406814.chunk.js.gz +0 -0
  840. /gpustack-2.2.1/gpustack/ui/js/1320.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/1320.1784901406814.chunk.js +0 -0
  841. /gpustack-2.2.1/gpustack/ui/js/1416.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/1416.1784901406814.chunk.js +0 -0
  842. /gpustack-2.2.1/gpustack/ui/js/1488.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/1488.1784901406814.chunk.js +0 -0
  843. /gpustack-2.2.1/gpustack/ui/js/1518.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/1518.1784901406814.chunk.js +0 -0
  844. /gpustack-2.2.1/gpustack/ui/js/1524.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/1524.1784901406814.chunk.js +0 -0
  845. /gpustack-2.2.1/gpustack/ui/js/1524.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/1524.1784901406814.chunk.js.gz +0 -0
  846. /gpustack-2.2.1/gpustack/ui/js/1553.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/1553.1784901406814.chunk.js +0 -0
  847. /gpustack-2.2.1/gpustack/ui/js/1561.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/1561.1784901406814.chunk.js +0 -0
  848. /gpustack-2.2.1/gpustack/ui/js/1699.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/1699.1784901406814.chunk.js +0 -0
  849. /gpustack-2.2.1/gpustack/ui/js/1699.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/1699.1784901406814.chunk.js.gz +0 -0
  850. /gpustack-2.2.1/gpustack/ui/js/1838.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/1838.1784901406814.chunk.js +0 -0
  851. /gpustack-2.2.1/gpustack/ui/js/1925.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/1925.1784901406814.chunk.js +0 -0
  852. /gpustack-2.2.1/gpustack/ui/js/1925.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/1925.1784901406814.chunk.js.gz +0 -0
  853. /gpustack-2.2.1/gpustack/ui/js/2363.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/2363.1784901406814.chunk.js +0 -0
  854. /gpustack-2.2.1/gpustack/ui/js/2394.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/2394.1784901406814.chunk.js +0 -0
  855. /gpustack-2.2.1/gpustack/ui/js/2722.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/2722.1784901406814.chunk.js +0 -0
  856. /gpustack-2.2.1/gpustack/ui/js/2806.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/2806.1784901406814.chunk.js +0 -0
  857. /gpustack-2.2.1/gpustack/ui/js/2901.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/2901.1784901406814.chunk.js +0 -0
  858. /gpustack-2.2.1/gpustack/ui/js/2901.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/2901.1784901406814.chunk.js.gz +0 -0
  859. /gpustack-2.2.1/gpustack/ui/js/2946.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/2946.1784901406814.chunk.js +0 -0
  860. /gpustack-2.2.1/gpustack/ui/js/3020.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/3020.1784901406814.chunk.js +0 -0
  861. /gpustack-2.2.1/gpustack/ui/js/3059.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/3059.1784901406814.chunk.js +0 -0
  862. /gpustack-2.2.1/gpustack/ui/js/3078.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/3078.1784901406814.chunk.js +0 -0
  863. /gpustack-2.2.1/gpustack/ui/js/3109.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/3109.1784901406814.chunk.js +0 -0
  864. /gpustack-2.2.1/gpustack/ui/js/319.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/319.1784901406814.chunk.js +0 -0
  865. /gpustack-2.2.1/gpustack/ui/js/319.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/319.1784901406814.chunk.js.gz +0 -0
  866. /gpustack-2.2.1/gpustack/ui/js/3266.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/3266.1784901406814.chunk.js +0 -0
  867. /gpustack-2.2.1/gpustack/ui/js/3273.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/3273.1784901406814.chunk.js +0 -0
  868. /gpustack-2.2.1/gpustack/ui/js/3324.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/3324.1784901406814.chunk.js +0 -0
  869. /gpustack-2.2.1/gpustack/ui/js/3531.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/3531.1784901406814.chunk.js +0 -0
  870. /gpustack-2.2.1/gpustack/ui/js/3603.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/3603.1784901406814.chunk.js +0 -0
  871. /gpustack-2.2.1/gpustack/ui/js/3603.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/3603.1784901406814.chunk.js.gz +0 -0
  872. /gpustack-2.2.1/gpustack/ui/js/3631.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/3631.1784901406814.chunk.js +0 -0
  873. /gpustack-2.2.1/gpustack/ui/js/3638.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/3638.1784901406814.chunk.js +0 -0
  874. /gpustack-2.2.1/gpustack/ui/js/3761.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/3761.1784901406814.chunk.js +0 -0
  875. /gpustack-2.2.1/gpustack/ui/js/3778.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/3778.1784901406814.chunk.js +0 -0
  876. /gpustack-2.2.1/gpustack/ui/js/38.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/38.1784901406814.chunk.js +0 -0
  877. /gpustack-2.2.1/gpustack/ui/js/3834.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/3834.1784901406814.chunk.js +0 -0
  878. /gpustack-2.2.1/gpustack/ui/js/3870.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/3870.1784901406814.chunk.js +0 -0
  879. /gpustack-2.2.1/gpustack/ui/js/3870.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/3870.1784901406814.chunk.js.gz +0 -0
  880. /gpustack-2.2.1/gpustack/ui/js/3955.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/3955.1784901406814.chunk.js +0 -0
  881. /gpustack-2.2.1/gpustack/ui/js/4191.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/4191.1784901406814.chunk.js +0 -0
  882. /gpustack-2.2.1/gpustack/ui/js/4447.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/4447.1784901406814.chunk.js +0 -0
  883. /gpustack-2.2.1/gpustack/ui/js/4466.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/4466.1784901406814.chunk.js +0 -0
  884. /gpustack-2.2.1/gpustack/ui/js/4466.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/4466.1784901406814.chunk.js.gz +0 -0
  885. /gpustack-2.2.1/gpustack/ui/js/4485.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/4485.1784901406814.chunk.js +0 -0
  886. /gpustack-2.2.1/gpustack/ui/js/4489.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/4489.1784901406814.chunk.js +0 -0
  887. /gpustack-2.2.1/gpustack/ui/js/4535.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/4535.1784901406814.chunk.js +0 -0
  888. /gpustack-2.2.1/gpustack/ui/js/4537.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/4537.1784901406814.chunk.js +0 -0
  889. /gpustack-2.2.1/gpustack/ui/js/4675.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/4675.1784901406814.chunk.js +0 -0
  890. /gpustack-2.2.1/gpustack/ui/js/4675.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/4675.1784901406814.chunk.js.gz +0 -0
  891. /gpustack-2.2.1/gpustack/ui/js/4702.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/4702.1784901406814.chunk.js +0 -0
  892. /gpustack-2.2.1/gpustack/ui/js/4741.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/4741.1784901406814.chunk.js +0 -0
  893. /gpustack-2.2.1/gpustack/ui/js/4741.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/4741.1784901406814.chunk.js.gz +0 -0
  894. /gpustack-2.2.1/gpustack/ui/js/4753.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/4753.1784901406814.chunk.js +0 -0
  895. /gpustack-2.2.1/gpustack/ui/js/481.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/481.1784901406814.chunk.js +0 -0
  896. /gpustack-2.2.1/gpustack/ui/js/5142.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/5142.1784901406814.chunk.js +0 -0
  897. /gpustack-2.2.1/gpustack/ui/js/5142.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/5142.1784901406814.chunk.js.gz +0 -0
  898. /gpustack-2.2.1/gpustack/ui/js/520.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/520.1784901406814.chunk.js +0 -0
  899. /gpustack-2.2.1/gpustack/ui/js/5293.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/5293.1784901406814.chunk.js +0 -0
  900. /gpustack-2.2.1/gpustack/ui/js/5422.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/5422.1784901406814.chunk.js +0 -0
  901. /gpustack-2.2.1/gpustack/ui/js/5578.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/5578.1784901406814.chunk.js +0 -0
  902. /gpustack-2.2.1/gpustack/ui/js/5629.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/5629.1784901406814.chunk.js +0 -0
  903. /gpustack-2.2.1/gpustack/ui/js/5629.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/5629.1784901406814.chunk.js.gz +0 -0
  904. /gpustack-2.2.1/gpustack/ui/js/5636.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/5636.1784901406814.chunk.js +0 -0
  905. /gpustack-2.2.1/gpustack/ui/js/5778.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/5778.1784901406814.chunk.js +0 -0
  906. /gpustack-2.2.1/gpustack/ui/js/5778.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/5778.1784901406814.chunk.js.gz +0 -0
  907. /gpustack-2.2.1/gpustack/ui/js/5796.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/5796.1784901406814.chunk.js +0 -0
  908. /gpustack-2.2.1/gpustack/ui/js/5859.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/5859.1784901406814.chunk.js +0 -0
  909. /gpustack-2.2.1/gpustack/ui/js/587.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/587.1784901406814.chunk.js +0 -0
  910. /gpustack-2.2.1/gpustack/ui/js/5886.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/5886.1784901406814.chunk.js +0 -0
  911. /gpustack-2.2.1/gpustack/ui/js/5886.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/5886.1784901406814.chunk.js.gz +0 -0
  912. /gpustack-2.2.1/gpustack/ui/js/6416.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/6416.1784901406814.chunk.js +0 -0
  913. /gpustack-2.2.1/gpustack/ui/js/6423.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/6423.1784901406814.chunk.js +0 -0
  914. /gpustack-2.2.1/gpustack/ui/js/6423.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/6423.1784901406814.chunk.js.gz +0 -0
  915. /gpustack-2.2.1/gpustack/ui/js/6519.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/6519.1784901406814.chunk.js +0 -0
  916. /gpustack-2.2.1/gpustack/ui/js/6551.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/6551.1784901406814.chunk.js +0 -0
  917. /gpustack-2.2.1/gpustack/ui/js/6624.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/6624.1784901406814.chunk.js +0 -0
  918. /gpustack-2.2.1/gpustack/ui/js/6753.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/6753.1784901406814.chunk.js +0 -0
  919. /gpustack-2.2.1/gpustack/ui/js/6777.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/6777.1784901406814.chunk.js +0 -0
  920. /gpustack-2.2.1/gpustack/ui/js/6777.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/6777.1784901406814.chunk.js.gz +0 -0
  921. /gpustack-2.2.1/gpustack/ui/js/6790.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/6790.1784901406814.chunk.js +0 -0
  922. /gpustack-2.2.1/gpustack/ui/js/6924.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/6924.1784901406814.chunk.js +0 -0
  923. /gpustack-2.2.1/gpustack/ui/js/693.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/693.1784901406814.chunk.js +0 -0
  924. /gpustack-2.2.1/gpustack/ui/js/693.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/693.1784901406814.chunk.js.gz +0 -0
  925. /gpustack-2.2.1/gpustack/ui/js/7059.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/7059.1784901406814.chunk.js +0 -0
  926. /gpustack-2.2.1/gpustack/ui/js/7083.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/7083.1784901406814.chunk.js +0 -0
  927. /gpustack-2.2.1/gpustack/ui/js/7119.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/7119.1784901406814.chunk.js +0 -0
  928. /gpustack-2.2.1/gpustack/ui/js/736.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/736.1784901406814.chunk.js +0 -0
  929. /gpustack-2.2.1/gpustack/ui/js/7361.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/7361.1784901406814.chunk.js +0 -0
  930. /gpustack-2.2.1/gpustack/ui/js/7401.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/7401.1784901406814.chunk.js +0 -0
  931. /gpustack-2.2.1/gpustack/ui/js/782.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/782.1784901406814.chunk.js +0 -0
  932. /gpustack-2.2.1/gpustack/ui/js/8255.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/8255.1784901406814.chunk.js +0 -0
  933. /gpustack-2.2.1/gpustack/ui/js/8292.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/8292.1784901406814.chunk.js +0 -0
  934. /gpustack-2.2.1/gpustack/ui/js/8386.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/8386.1784901406814.chunk.js +0 -0
  935. /gpustack-2.2.1/gpustack/ui/js/8386.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/8386.1784901406814.chunk.js.gz +0 -0
  936. /gpustack-2.2.1/gpustack/ui/js/8500.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/8500.1784901406814.chunk.js +0 -0
  937. /gpustack-2.2.1/gpustack/ui/js/857.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/857.1784901406814.chunk.js +0 -0
  938. /gpustack-2.2.1/gpustack/ui/js/8622.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/8622.1784901406814.chunk.js +0 -0
  939. /gpustack-2.2.1/gpustack/ui/js/8680.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/8680.1784901406814.chunk.js +0 -0
  940. /gpustack-2.2.1/gpustack/ui/js/8680.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/8680.1784901406814.chunk.js.gz +0 -0
  941. /gpustack-2.2.1/gpustack/ui/js/8989.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/8989.1784901406814.chunk.js +0 -0
  942. /gpustack-2.2.1/gpustack/ui/js/9015.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/9015.1784901406814.chunk.js +0 -0
  943. /gpustack-2.2.1/gpustack/ui/js/9016.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/9016.1784901406814.chunk.js +0 -0
  944. /gpustack-2.2.1/gpustack/ui/js/9050.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/9050.1784901406814.chunk.js +0 -0
  945. /gpustack-2.2.1/gpustack/ui/js/9252.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/9252.1784901406814.chunk.js +0 -0
  946. /gpustack-2.2.1/gpustack/ui/js/9268.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/9268.1784901406814.chunk.js +0 -0
  947. /gpustack-2.2.1/gpustack/ui/js/9433.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/9433.1784901406814.chunk.js +0 -0
  948. /gpustack-2.2.1/gpustack/ui/js/9625.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/9625.1784901406814.chunk.js +0 -0
  949. /gpustack-2.2.1/gpustack/ui/js/9726.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/9726.1784901406814.chunk.js +0 -0
  950. /gpustack-2.2.1/gpustack/ui/js/9726.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/9726.1784901406814.chunk.js.gz +0 -0
  951. /gpustack-2.2.1/gpustack/ui/js/9832.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/9832.1784901406814.chunk.js +0 -0
  952. /gpustack-2.2.1/gpustack/ui/js/9832.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/9832.1784901406814.chunk.js.gz +0 -0
  953. /gpustack-2.2.1/gpustack/ui/js/9869.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/9869.1784901406814.chunk.js +0 -0
  954. /gpustack-2.2.1/gpustack/ui/js/9869.1783075810543.chunk.js.gz → /gpustack-2.2.2/gpustack/ui/js/9869.1784901406814.chunk.js.gz +0 -0
  955. /gpustack-2.2.1/gpustack/ui/js/99.1783075810543.chunk.js → /gpustack-2.2.2/gpustack/ui/js/99.1784901406814.chunk.js +0 -0
  956. /gpustack-2.2.1/gpustack/ui/static/catalog_icons/ERNIE.png → /gpustack-2.2.2/gpustack/ui/static/ERNIE.e063a952.png +0 -0
  957. /gpustack-2.2.1/gpustack/ui/static/catalog_icons/FunAudioLLM.png → /gpustack-2.2.2/gpustack/ui/static/FunAudioLLM.9f0dd0d0.png +0 -0
  958. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/Iluvatar.0cfb50aa.png +0 -0
  959. /gpustack-2.2.1/gpustack/ui/static/catalog_icons/THUDM.png → /gpustack-2.2.2/gpustack/ui/static/THUDM.6952856d.png +0 -0
  960. /gpustack-2.2.1/gpustack/ui/static/catalog_icons/bagel.png → /gpustack-2.2.2/gpustack/ui/static/bagel.16fb8279.png +0 -0
  961. /gpustack-2.2.1/gpustack/ui/static/catalog_icons/bge_logo.jpeg → /gpustack-2.2.2/gpustack/ui/static/bge.bfc4c38d.jpeg +0 -0
  962. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/01ai.png +0 -0
  963. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/OpenBMB.png +0 -0
  964. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/OpenGVLab.jpeg +0 -0
  965. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/XiaomiMiMo.png +0 -0
  966. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/alibaba.png +0 -0
  967. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/baidu.jpeg +0 -0
  968. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/blackforestlabs.png +0 -0
  969. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/cohere.png +0 -0
  970. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/deepseek.png +0 -0
  971. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/falcon3.png +0 -0
  972. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/freepik.jpeg +0 -0
  973. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/google.png +0 -0
  974. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/hunyuan.png +0 -0
  975. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/ibm.png +0 -0
  976. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/jetbrains.png +0 -0
  977. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/jina.png +0 -0
  978. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/kimi.png +0 -0
  979. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/lighton.png +0 -0
  980. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/liquidai.png +0 -0
  981. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/meta.png +0 -0
  982. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/microsoft.png +0 -0
  983. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/minimax.png +0 -0
  984. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/mistral.png +0 -0
  985. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/nanbeige.png +0 -0
  986. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/narilabs.png +0 -0
  987. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/nomic.png +0 -0
  988. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/nvidia.png +0 -0
  989. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/openai.png +0 -0
  990. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/paddlepaddle.jpeg +0 -0
  991. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/qwen.png +0 -0
  992. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/stability.png +0 -0
  993. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/stepfun.png +0 -0
  994. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/systran.png +0 -0
  995. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/tencentARC.png +0 -0
  996. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/tii.png +0 -0
  997. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/youdao.png +0 -0
  998. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/catalog_icons/zai.png +0 -0
  999. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/codicon.c04940ee.ttf +0 -0
  1000. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/favicon.ico +0 -0
  1001. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/favicon.png +0 -0
  1002. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/gpustack-logo.170e4fba.png +0 -0
  1003. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/invert-worker-CFNPVgCi.002d6282.js +0 -0
  1004. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/jupyter_logo.60f36548.png +0 -0
  1005. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/moore-logo.91b937f3.png +0 -0
  1006. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/offscreen-worker-DL5yJmAw.7dfe7396.js +0 -0
  1007. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/parse-worker-BnGEhil7.c0942db2.js +0 -0
  1008. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/redoc.standalone.js +0 -0
  1009. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/redoc.standalone.js.gz +0 -0
  1010. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/sglang.b6bdf611.png +0 -0
  1011. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/small-logo-200x200.cf14a378.png +0 -0
  1012. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/swagger-ui-bundle.js +0 -0
  1013. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/swagger-ui-bundle.js.gz +0 -0
  1014. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/swagger-ui.css +0 -0
  1015. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/swagger-ui.css.gz +0 -0
  1016. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/t-head-en.219f59df.png +0 -0
  1017. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/ubuntu_logo.0685f3d2.png +0 -0
  1018. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/vllm.33a8b885.png +0 -0
  1019. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/static/voxbox.e5139272.png +0 -0
  1020. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/yaml.worker.worker.js +0 -0
  1021. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/ui/yaml.worker.worker.js.gz +0 -0
  1022. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/api_keys.py +0 -0
  1023. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/attrs.py +0 -0
  1024. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/cache.py +0 -0
  1025. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/compat_importlib.py +0 -0
  1026. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/config.py +0 -0
  1027. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/convert.py +0 -0
  1028. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/datetimex.py +0 -0
  1029. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/db.py +0 -0
  1030. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/envs.py +0 -0
  1031. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/ephemeral_ports.py +0 -0
  1032. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/file.py +0 -0
  1033. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/gpu.py +0 -0
  1034. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/grafana.py +0 -0
  1035. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/locks.py +0 -0
  1036. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/lora_model_source.py +0 -0
  1037. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/math.py +0 -0
  1038. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/metrics.py +0 -0
  1039. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/model_instance_workers.py +0 -0
  1040. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/model_source.py +0 -0
  1041. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/name.py +0 -0
  1042. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/network.py +0 -0
  1043. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/platform.py +0 -0
  1044. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/process.py +0 -0
  1045. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/profiling.py +0 -0
  1046. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/runtime.py +0 -0
  1047. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/s6_services.py +0 -0
  1048. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/snapshot.py +0 -0
  1049. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/sql_enum.py +0 -0
  1050. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/system_check.py +0 -0
  1051. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/task.py +0 -0
  1052. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/unit.py +0 -0
  1053. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/uuid.py +0 -0
  1054. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/validators.py +0 -0
  1055. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/utils/version.py +0 -0
  1056. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/websocket_proxy/__init__.py +0 -0
  1057. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/websocket_proxy/authenticator.py +0 -0
  1058. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/websocket_proxy/connection.py +0 -0
  1059. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/websocket_proxy/connection_manager.py +0 -0
  1060. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/websocket_proxy/constants.py +0 -0
  1061. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/websocket_proxy/main.py +0 -0
  1062. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/websocket_proxy/message.py +0 -0
  1063. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/websocket_proxy/message_client.py +0 -0
  1064. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/websocket_proxy/patricia_trie.py +0 -0
  1065. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/websocket_proxy/proxy_server.py +0 -0
  1066. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/__init__.py +0 -0
  1067. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/backend_dependency_manager.py +0 -0
  1068. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/backends/ascend_mindie.py +0 -0
  1069. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/backends/sglang.py +0 -0
  1070. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/backends/vox_box.py +0 -0
  1071. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/benchmark/runner.py +0 -0
  1072. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/benchmark_manager.py +0 -0
  1073. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/collector.py +0 -0
  1074. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/downloaders.py +0 -0
  1075. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/exporter.py +0 -0
  1076. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/inference_backend_manager.py +0 -0
  1077. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/log_sources.py +0 -0
  1078. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/logs.py +0 -0
  1079. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/model_file_manager.py +0 -0
  1080. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/model_meta.py +0 -0
  1081. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/runtime_metrics_aggregator.py +0 -0
  1082. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/runtime_metrics_client.py +0 -0
  1083. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/schemas/__init__.py +0 -0
  1084. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/schemas/benchmark_runner.py +0 -0
  1085. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/worker_manager.py +0 -0
  1086. {gpustack-2.2.1 → gpustack-2.2.2}/gpustack/worker/workload_cleaner.py +0 -0
@@ -0,0 +1,300 @@
1
+ Metadata-Version: 2.3
2
+ Name: gpustack
3
+ Version: 2.2.2
4
+ Summary: GPUStack
5
+ Author-email: GPUStack Authors <contact@gpustack.ai>
6
+ Requires-Python: <3.13,>=3.10
7
+ Requires-Dist: aiocache>=0.12.3
8
+ Requires-Dist: aiofiles>=23.2.1
9
+ Requires-Dist: aiohttp>=3.11.2
10
+ Requires-Dist: aiolimiter>=1.2.1
11
+ Requires-Dist: aiosqlite>=0.20.0
12
+ Requires-Dist: alembic>=1.13.2
13
+ Requires-Dist: apscheduler<4.0.0,>=3.10.4
14
+ Requires-Dist: argon2-cffi>=23.1.0
15
+ Requires-Dist: asyncmy>=0.2.10
16
+ Requires-Dist: asyncpg>=0.29.0
17
+ Requires-Dist: attrs>=24.2.0
18
+ Requires-Dist: blobfile>=3.0.0
19
+ Requires-Dist: cachetools>=6.0.0
20
+ Requires-Dist: certifi>=2024.0.0
21
+ Requires-Dist: colorama>=0.4.6
22
+ Requires-Dist: cryptography>=43.0.0
23
+ Requires-Dist: dataclasses-json>=0.6.7
24
+ Requires-Dist: fastapi-cdn-host>=0.8.0
25
+ Requires-Dist: fastapi<0.137.0,>=0.115.0
26
+ Requires-Dist: gpustack-higress-plugins==0.2.3.post5
27
+ Requires-Dist: gpustack-runner==0.1.27.post4
28
+ Requires-Dist: gpustack-runtime==0.2.1
29
+ Requires-Dist: hf-xet<2.0.0,>=1.3.1
30
+ Requires-Dist: httpx[socks]>=0.27.0
31
+ Requires-Dist: huggingface-hub>=1.0.0
32
+ Requires-Dist: importlib-resources>=6.4.0
33
+ Requires-Dist: inflection>=0.5.1
34
+ Requires-Dist: jinja2>=3.1.6
35
+ Requires-Dist: kubernetes-asyncio<34.0.0,>=33.1.0
36
+ Requires-Dist: kubernetes<34.0.0,>=33.1.0
37
+ Requires-Dist: lxml>=6.0.2
38
+ Requires-Dist: modelscope>=1.28
39
+ Requires-Dist: msgpack>=1.1.2
40
+ Requires-Dist: openai>=1.31.1
41
+ Requires-Dist: packaging>=24.1
42
+ Requires-Dist: prometheus-client>=0.20.0
43
+ Requires-Dist: psutil>=7.0.0
44
+ Requires-Dist: psycopg2-binary>=2.9.10
45
+ Requires-Dist: py-radix>=1.1.0
46
+ Requires-Dist: pydantic-settings>=2.2.1
47
+ Requires-Dist: pydantic>=2.11.5
48
+ Requires-Dist: pydo>=0.15.0
49
+ Requires-Dist: pyjwt>=2.8.0
50
+ Requires-Dist: pymysql>=1.1.1
51
+ Requires-Dist: pytest-asyncio>=0.23.7
52
+ Requires-Dist: python-json-logger>=3.3.0
53
+ Requires-Dist: python-multipart>=0.0.17
54
+ Requires-Dist: python3-saml==1.16.0
55
+ Requires-Dist: pywin32>=308; platform_system == 'Windows'
56
+ Requires-Dist: pyyaml<7.0,>=6.0
57
+ Requires-Dist: requests>=2.32.3
58
+ Requires-Dist: setproctitle>=1.3.3
59
+ Requires-Dist: sqlalchemy[asyncio]>=2.0.38
60
+ Requires-Dist: sqlmodel>=0.0.18
61
+ Requires-Dist: tenacity>=9.0.0
62
+ Requires-Dist: transformers!=4.57.0,>=4.51.3
63
+ Requires-Dist: tzdata>=2024.1
64
+ Requires-Dist: uvicorn>=0.32.0
65
+ Requires-Dist: websockets==16.0
66
+ Requires-Dist: wmi>=1.5.1; platform_system == 'Windows'
67
+ Requires-Dist: xmlsec>=1.3.17
68
+ Description-Content-Type: text/markdown
69
+
70
+ <br>
71
+
72
+ <p align="center">
73
+ <img alt="GPUStack" src="https://raw.githubusercontent.com/gpustack/gpustack/main/docs/assets/gpustack-logo.png" width="300px"/>
74
+ </p>
75
+ <br>
76
+
77
+ <p align="center">
78
+ <a href="https://docs.gpustack.ai" target="_blank">
79
+ <img alt="Documentation" src="https://img.shields.io/badge/Docs-GPUStack-blue?logo=readthedocs&logoColor=white"></a>
80
+ <a href="./LICENSE" target="_blank">
81
+ <img alt="License" src="https://img.shields.io/github/license/gpustack/gpustack?logo=github&logoColor=white&label=License&color=blue"></a>
82
+ <a href="https://discord.gg/VXYJzuaqwD" target="_blank">
83
+ <img alt="Discord" src="https://img.shields.io/badge/Discord-GPUStack-blue?logo=discord&logoColor=white"></a>
84
+ <a href="https://twitter.com/intent/follow?screen_name=gpustack_ai" target="_blank">
85
+ <img alt="Follow on X(Twitter)" src="https://img.shields.io/twitter/follow/gpustack_ai?logo=X"></a>
86
+ </p>
87
+ <br>
88
+
89
+ <p align="center">
90
+ <a href="./README.md">English</a> |
91
+ <a href="./README_CN.md">简体中文</a> |
92
+ <a href="./README_JP.md">日本語</a>
93
+ </p>
94
+
95
+ <br>
96
+
97
+ ## Overview
98
+
99
+ GPUStack is an open-source GPU cluster manager for AI model serving and GPU instance provisioning. It configures and orchestrates inference engines — vLLM, SGLang, TensorRT-LLM, or your own — and lets you launch SSH-accessible GPU instances on demand. Its core features include:
100
+ - **Multi-Cluster GPU Management.** Manages GPU clusters across multiple environments. This includes on-premises servers, Kubernetes clusters, and cloud providers.
101
+ - **Pluggable Inference Engines.** Automatically configures high-performance inference engines such as vLLM, SGLang, and TensorRT-LLM. You can also add custom inference engines as needed.
102
+ - **Day 0 Model Support.** GPUStack's pluggable engine architecture enables you to deploy new models on the day they are released.
103
+ - **Performance-Optimized Configurations.** Offers pre-tuned modes for low latency or high throughput. GPUStack supports extended KV cache systems like LMCache and HiCache to reduce TTFT. It also includes built-in support for speculative decoding methods such as EAGLE3, MTP, and N-grams.
104
+ - **GPU Instances.** Launches SSH-accessible GPU instances on demand for development, fine-tuning, and interactive workloads.
105
+ - **Enterprise-Grade Operations.** Offers support for automated failure recovery, load balancing, monitoring, authentication, and access control.
106
+
107
+ ## Architecture
108
+
109
+ GPUStack enables development teams, IT organizations, and service providers to deliver Model-as-a-Service at scale. It supports industry-standard APIs for LLM, voice, image, and video models. The platform includes built-in user authentication and access control, real-time monitoring of GPU performance and utilization, and detailed metering of token usage and API request rates.
110
+
111
+ The figure below illustrates how a single GPUStack server can manage multiple GPU clusters across both on-premises and cloud environments. The GPUStack scheduler allocates GPUs to maximize resource utilization and selects the appropriate inference engines for optimal performance. Administrators also gain full visibility into system health and metrics through integrated Grafana and Prometheus dashboards.
112
+
113
+ ![gpustack-v2-architecture](docs/assets/gpustack-v2-architecture.png)
114
+
115
+ ## Optimized Inference Performance
116
+
117
+ GPUStack's automated engine selection and parameter optimization deliver strong inference performance out of the box. The following figure shows throughput improvements over default vLLM configurations:
118
+
119
+ ![h200-throughput-comparison](docs/assets/h200-throughput-comparison.png)
120
+
121
+ For detailed benchmarking methods and results, visit our [Inference Performance Lab](https://docs.gpustack.ai/latest/performance-lab/overview/).
122
+
123
+ ## Supported Accelerators
124
+
125
+ GPUStack supports a wide range of accelerators for AI inference:
126
+
127
+ - **NVIDIA GPU**
128
+ - **AMD GPU**
129
+ - **Ascend NPU**
130
+ - **Hygon DCU**
131
+ - **MThreads GPU**
132
+ - **Iluvatar GPU**
133
+ - **MetaX GPU**
134
+ - **Cambricon MLU**
135
+ - **T-Head PPU**
136
+
137
+ For detailed requirements and setup instructions, see the [Installation Requirements](https://docs.gpustack.ai/latest/installation/requirements/) documentation.
138
+
139
+ ## Quick Start
140
+
141
+ ### Prerequisites
142
+
143
+ 1. A node with at least one NVIDIA GPU. For other GPU types, please check the guidelines in the GPUStack UI when adding a worker, or refer to the [Installation documentation](https://docs.gpustack.ai/latest/installation/requirements/) for more details.
144
+ 2. Ensure the NVIDIA driver, [Docker](https://docs.docker.com/engine/install/) and [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html) are installed on the worker node.
145
+ 3. (Optional) A CPU node for hosting the GPUStack server. The GPUStack server does not require a GPU and can run on a CPU-only machine. [Docker](https://docs.docker.com/engine/install/) must be installed. Docker Desktop (for Windows and macOS) is also supported. If no dedicated CPU node is available, the GPUStack server can be installed on the same machine as a GPU worker node.
146
+ 4. Only Linux is supported for GPUStack worker nodes. If you use Windows, consider using WSL2 and avoid using Docker Desktop. macOS is not supported for GPUStack worker nodes.
147
+
148
+ ### Install GPUStack
149
+
150
+ Run the following command to install and start the GPUStack server using Docker:
151
+
152
+ ```bash
153
+ sudo docker run -d --name gpustack \
154
+ --restart unless-stopped \
155
+ -p 80:80 \
156
+ --volume gpustack-data:/var/lib/gpustack \
157
+ gpustack/gpustack
158
+ ```
159
+
160
+ <details>
161
+ <summary>Alternative: Use Quay Container Registry Mirror</summary>
162
+
163
+ If you cannot pull images from `Docker Hub` or the download is very slow, you can use our `Quay.io` mirror by pointing your registry to `quay.io`:
164
+
165
+ ```bash
166
+ sudo docker run -d --name gpustack \
167
+ --restart unless-stopped \
168
+ -p 80:80 \
169
+ --volume gpustack-data:/var/lib/gpustack \
170
+ quay.io/gpustack/gpustack \
171
+ --system-default-container-registry quay.io
172
+ ```
173
+ </details>
174
+
175
+ Check the GPUStack startup logs:
176
+
177
+ ```bash
178
+ sudo docker logs -f gpustack
179
+ ```
180
+
181
+ After GPUStack starts, run the following command to get the default admin password:
182
+
183
+ ```bash
184
+ sudo docker exec gpustack cat /var/lib/gpustack/initial_admin_password
185
+ ```
186
+
187
+ Open your browser and navigate to `http://your_host_ip` to access the GPUStack UI. Use the default username `admin` and the password you retrieved above to log in.
188
+
189
+ ### Set Up a GPU Cluster
190
+
191
+ 1. On the GPUStack UI, navigate to the `Clusters` page.
192
+
193
+ 2. Click the `Add Cluster` button.
194
+
195
+ 3. Select `Docker` as the cluster provider.
196
+
197
+ 4. Fill in the `Name` and `Description` fields for the new cluster, then click the `Save` button.
198
+
199
+ 5. Follow the UI guidelines to configure the new worker node. You will need to run a Docker command on the worker node to connect it to the GPUStack server. The command will look similar to the following:
200
+
201
+ ```bash
202
+ sudo docker run -d --name gpustack-worker \
203
+ --restart=unless-stopped \
204
+ --privileged \
205
+ --network=host \
206
+ --volume /var/run/docker.sock:/var/run/docker.sock \
207
+ --volume gpustack-data:/var/lib/gpustack \
208
+ --runtime nvidia \
209
+ gpustack/gpustack \
210
+ --server-url http://your_gpustack_server_url \
211
+ --token your_worker_token \
212
+ --advertise-address 192.168.1.2
213
+ ```
214
+
215
+ 6. Execute the command on the worker node to connect it to the GPUStack server.
216
+
217
+ 7. After the worker node connects successfully, it will appear on the `Workers` page in the GPUStack UI.
218
+
219
+ ### Deploy a Model
220
+
221
+ 1. Navigate to the `Catalog` page in the GPUStack UI.
222
+
223
+ 2. Select the `Qwen3.5-0.8B` model from the list of available models.
224
+
225
+ ![deploy qwen3 from catalog](docs/assets/quick-start/quick-start-qwen3.png)
226
+
227
+ 3. After the deployment compatibility checks pass, click the `Save` button to deploy the model.
228
+
229
+ 4. GPUStack will start downloading the model files and deploying the model. When the deployment status shows `Running`, the model has been deployed successfully.
230
+
231
+ ![model is running](docs/assets/quick-start/model-running.png)
232
+
233
+ 5. Click `Playground - Chat` in the navigation menu, check that the model `qwen3.5-0.8b` is selected from the top-right `Model` dropdown. Now you can chat with the model in the UI playground.
234
+
235
+ ![quick chat](docs/assets/quick-start/quick-chat.png)
236
+
237
+ ### Use the model via API
238
+
239
+ 1. Navigate to the `Access Control` > `API Keys` page, then click the `New API Key` button.
240
+
241
+ 2. Fill in the `Name` and click the `Save` button.
242
+
243
+ 3. Copy the generated API key and save it somewhere safe. Please note that you can only see it once on creation.
244
+
245
+ 4. You can now use the API key to access the OpenAI-compatible API endpoints provided by GPUStack. For example, use curl as the following:
246
+
247
+ ```bash
248
+ # Replace `your_api_key` and `your_gpustack_server_url`
249
+ # with your actual API key and GPUStack server URL.
250
+ export GPUSTACK_API_KEY=your_api_key
251
+ curl http://your_gpustack_server_url/v1/chat/completions \
252
+ -H "Content-Type: application/json" \
253
+ -H "Authorization: Bearer $GPUSTACK_API_KEY" \
254
+ -d '{
255
+ "model": "qwen3.5-0.8b",
256
+ "messages": [
257
+ {
258
+ "role": "system",
259
+ "content": "You are a helpful assistant."
260
+ },
261
+ {
262
+ "role": "user",
263
+ "content": "Tell me a joke."
264
+ }
265
+ ],
266
+ "stream": true
267
+ }'
268
+ ```
269
+
270
+ ## Documentation
271
+
272
+ Please see the [official docs site](https://docs.gpustack.ai) for complete documentation.
273
+
274
+ ## Build
275
+
276
+ 1. Install [Docker](https://docs.docker.com/engine/install/).
277
+
278
+ 2. Run `make package`.
279
+
280
+ ## Contributing
281
+
282
+ Please read the [Contributing Guide](./docs/contributing.md) if you're interested in contributing to GPUStack.
283
+
284
+ ## Join Community
285
+
286
+ Any issues or have suggestions, feel free to join our [Community](https://discord.gg/VXYJzuaqwD) for support.
287
+
288
+ ## License
289
+
290
+ Copyright (c) 2024-2026 The GPUStack authors
291
+
292
+ Licensed under the Apache License, Version 2.0 (the "License");
293
+ you may not use this file except in compliance with the License.
294
+ You may obtain a copy of the License at [LICENSE](./LICENSE) file for details.
295
+
296
+ Unless required by applicable law or agreed to in writing, software
297
+ distributed under the License is distributed on an "AS IS" BASIS,
298
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
299
+ See the License for the specific language governing permissions and
300
+ limitations under the License.
@@ -0,0 +1,231 @@
1
+ <br>
2
+
3
+ <p align="center">
4
+ <img alt="GPUStack" src="https://raw.githubusercontent.com/gpustack/gpustack/main/docs/assets/gpustack-logo.png" width="300px"/>
5
+ </p>
6
+ <br>
7
+
8
+ <p align="center">
9
+ <a href="https://docs.gpustack.ai" target="_blank">
10
+ <img alt="Documentation" src="https://img.shields.io/badge/Docs-GPUStack-blue?logo=readthedocs&logoColor=white"></a>
11
+ <a href="./LICENSE" target="_blank">
12
+ <img alt="License" src="https://img.shields.io/github/license/gpustack/gpustack?logo=github&logoColor=white&label=License&color=blue"></a>
13
+ <a href="https://discord.gg/VXYJzuaqwD" target="_blank">
14
+ <img alt="Discord" src="https://img.shields.io/badge/Discord-GPUStack-blue?logo=discord&logoColor=white"></a>
15
+ <a href="https://twitter.com/intent/follow?screen_name=gpustack_ai" target="_blank">
16
+ <img alt="Follow on X(Twitter)" src="https://img.shields.io/twitter/follow/gpustack_ai?logo=X"></a>
17
+ </p>
18
+ <br>
19
+
20
+ <p align="center">
21
+ <a href="./README.md">English</a> |
22
+ <a href="./README_CN.md">简体中文</a> |
23
+ <a href="./README_JP.md">日本語</a>
24
+ </p>
25
+
26
+ <br>
27
+
28
+ ## Overview
29
+
30
+ GPUStack is an open-source GPU cluster manager for AI model serving and GPU instance provisioning. It configures and orchestrates inference engines — vLLM, SGLang, TensorRT-LLM, or your own — and lets you launch SSH-accessible GPU instances on demand. Its core features include:
31
+ - **Multi-Cluster GPU Management.** Manages GPU clusters across multiple environments. This includes on-premises servers, Kubernetes clusters, and cloud providers.
32
+ - **Pluggable Inference Engines.** Automatically configures high-performance inference engines such as vLLM, SGLang, and TensorRT-LLM. You can also add custom inference engines as needed.
33
+ - **Day 0 Model Support.** GPUStack's pluggable engine architecture enables you to deploy new models on the day they are released.
34
+ - **Performance-Optimized Configurations.** Offers pre-tuned modes for low latency or high throughput. GPUStack supports extended KV cache systems like LMCache and HiCache to reduce TTFT. It also includes built-in support for speculative decoding methods such as EAGLE3, MTP, and N-grams.
35
+ - **GPU Instances.** Launches SSH-accessible GPU instances on demand for development, fine-tuning, and interactive workloads.
36
+ - **Enterprise-Grade Operations.** Offers support for automated failure recovery, load balancing, monitoring, authentication, and access control.
37
+
38
+ ## Architecture
39
+
40
+ GPUStack enables development teams, IT organizations, and service providers to deliver Model-as-a-Service at scale. It supports industry-standard APIs for LLM, voice, image, and video models. The platform includes built-in user authentication and access control, real-time monitoring of GPU performance and utilization, and detailed metering of token usage and API request rates.
41
+
42
+ The figure below illustrates how a single GPUStack server can manage multiple GPU clusters across both on-premises and cloud environments. The GPUStack scheduler allocates GPUs to maximize resource utilization and selects the appropriate inference engines for optimal performance. Administrators also gain full visibility into system health and metrics through integrated Grafana and Prometheus dashboards.
43
+
44
+ ![gpustack-v2-architecture](docs/assets/gpustack-v2-architecture.png)
45
+
46
+ ## Optimized Inference Performance
47
+
48
+ GPUStack's automated engine selection and parameter optimization deliver strong inference performance out of the box. The following figure shows throughput improvements over default vLLM configurations:
49
+
50
+ ![h200-throughput-comparison](docs/assets/h200-throughput-comparison.png)
51
+
52
+ For detailed benchmarking methods and results, visit our [Inference Performance Lab](https://docs.gpustack.ai/latest/performance-lab/overview/).
53
+
54
+ ## Supported Accelerators
55
+
56
+ GPUStack supports a wide range of accelerators for AI inference:
57
+
58
+ - **NVIDIA GPU**
59
+ - **AMD GPU**
60
+ - **Ascend NPU**
61
+ - **Hygon DCU**
62
+ - **MThreads GPU**
63
+ - **Iluvatar GPU**
64
+ - **MetaX GPU**
65
+ - **Cambricon MLU**
66
+ - **T-Head PPU**
67
+
68
+ For detailed requirements and setup instructions, see the [Installation Requirements](https://docs.gpustack.ai/latest/installation/requirements/) documentation.
69
+
70
+ ## Quick Start
71
+
72
+ ### Prerequisites
73
+
74
+ 1. A node with at least one NVIDIA GPU. For other GPU types, please check the guidelines in the GPUStack UI when adding a worker, or refer to the [Installation documentation](https://docs.gpustack.ai/latest/installation/requirements/) for more details.
75
+ 2. Ensure the NVIDIA driver, [Docker](https://docs.docker.com/engine/install/) and [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html) are installed on the worker node.
76
+ 3. (Optional) A CPU node for hosting the GPUStack server. The GPUStack server does not require a GPU and can run on a CPU-only machine. [Docker](https://docs.docker.com/engine/install/) must be installed. Docker Desktop (for Windows and macOS) is also supported. If no dedicated CPU node is available, the GPUStack server can be installed on the same machine as a GPU worker node.
77
+ 4. Only Linux is supported for GPUStack worker nodes. If you use Windows, consider using WSL2 and avoid using Docker Desktop. macOS is not supported for GPUStack worker nodes.
78
+
79
+ ### Install GPUStack
80
+
81
+ Run the following command to install and start the GPUStack server using Docker:
82
+
83
+ ```bash
84
+ sudo docker run -d --name gpustack \
85
+ --restart unless-stopped \
86
+ -p 80:80 \
87
+ --volume gpustack-data:/var/lib/gpustack \
88
+ gpustack/gpustack
89
+ ```
90
+
91
+ <details>
92
+ <summary>Alternative: Use Quay Container Registry Mirror</summary>
93
+
94
+ If you cannot pull images from `Docker Hub` or the download is very slow, you can use our `Quay.io` mirror by pointing your registry to `quay.io`:
95
+
96
+ ```bash
97
+ sudo docker run -d --name gpustack \
98
+ --restart unless-stopped \
99
+ -p 80:80 \
100
+ --volume gpustack-data:/var/lib/gpustack \
101
+ quay.io/gpustack/gpustack \
102
+ --system-default-container-registry quay.io
103
+ ```
104
+ </details>
105
+
106
+ Check the GPUStack startup logs:
107
+
108
+ ```bash
109
+ sudo docker logs -f gpustack
110
+ ```
111
+
112
+ After GPUStack starts, run the following command to get the default admin password:
113
+
114
+ ```bash
115
+ sudo docker exec gpustack cat /var/lib/gpustack/initial_admin_password
116
+ ```
117
+
118
+ Open your browser and navigate to `http://your_host_ip` to access the GPUStack UI. Use the default username `admin` and the password you retrieved above to log in.
119
+
120
+ ### Set Up a GPU Cluster
121
+
122
+ 1. On the GPUStack UI, navigate to the `Clusters` page.
123
+
124
+ 2. Click the `Add Cluster` button.
125
+
126
+ 3. Select `Docker` as the cluster provider.
127
+
128
+ 4. Fill in the `Name` and `Description` fields for the new cluster, then click the `Save` button.
129
+
130
+ 5. Follow the UI guidelines to configure the new worker node. You will need to run a Docker command on the worker node to connect it to the GPUStack server. The command will look similar to the following:
131
+
132
+ ```bash
133
+ sudo docker run -d --name gpustack-worker \
134
+ --restart=unless-stopped \
135
+ --privileged \
136
+ --network=host \
137
+ --volume /var/run/docker.sock:/var/run/docker.sock \
138
+ --volume gpustack-data:/var/lib/gpustack \
139
+ --runtime nvidia \
140
+ gpustack/gpustack \
141
+ --server-url http://your_gpustack_server_url \
142
+ --token your_worker_token \
143
+ --advertise-address 192.168.1.2
144
+ ```
145
+
146
+ 6. Execute the command on the worker node to connect it to the GPUStack server.
147
+
148
+ 7. After the worker node connects successfully, it will appear on the `Workers` page in the GPUStack UI.
149
+
150
+ ### Deploy a Model
151
+
152
+ 1. Navigate to the `Catalog` page in the GPUStack UI.
153
+
154
+ 2. Select the `Qwen3.5-0.8B` model from the list of available models.
155
+
156
+ ![deploy qwen3 from catalog](docs/assets/quick-start/quick-start-qwen3.png)
157
+
158
+ 3. After the deployment compatibility checks pass, click the `Save` button to deploy the model.
159
+
160
+ 4. GPUStack will start downloading the model files and deploying the model. When the deployment status shows `Running`, the model has been deployed successfully.
161
+
162
+ ![model is running](docs/assets/quick-start/model-running.png)
163
+
164
+ 5. Click `Playground - Chat` in the navigation menu, check that the model `qwen3.5-0.8b` is selected from the top-right `Model` dropdown. Now you can chat with the model in the UI playground.
165
+
166
+ ![quick chat](docs/assets/quick-start/quick-chat.png)
167
+
168
+ ### Use the model via API
169
+
170
+ 1. Navigate to the `Access Control` > `API Keys` page, then click the `New API Key` button.
171
+
172
+ 2. Fill in the `Name` and click the `Save` button.
173
+
174
+ 3. Copy the generated API key and save it somewhere safe. Please note that you can only see it once on creation.
175
+
176
+ 4. You can now use the API key to access the OpenAI-compatible API endpoints provided by GPUStack. For example, use curl as the following:
177
+
178
+ ```bash
179
+ # Replace `your_api_key` and `your_gpustack_server_url`
180
+ # with your actual API key and GPUStack server URL.
181
+ export GPUSTACK_API_KEY=your_api_key
182
+ curl http://your_gpustack_server_url/v1/chat/completions \
183
+ -H "Content-Type: application/json" \
184
+ -H "Authorization: Bearer $GPUSTACK_API_KEY" \
185
+ -d '{
186
+ "model": "qwen3.5-0.8b",
187
+ "messages": [
188
+ {
189
+ "role": "system",
190
+ "content": "You are a helpful assistant."
191
+ },
192
+ {
193
+ "role": "user",
194
+ "content": "Tell me a joke."
195
+ }
196
+ ],
197
+ "stream": true
198
+ }'
199
+ ```
200
+
201
+ ## Documentation
202
+
203
+ Please see the [official docs site](https://docs.gpustack.ai) for complete documentation.
204
+
205
+ ## Build
206
+
207
+ 1. Install [Docker](https://docs.docker.com/engine/install/).
208
+
209
+ 2. Run `make package`.
210
+
211
+ ## Contributing
212
+
213
+ Please read the [Contributing Guide](./docs/contributing.md) if you're interested in contributing to GPUStack.
214
+
215
+ ## Join Community
216
+
217
+ Any issues or have suggestions, feel free to join our [Community](https://discord.gg/VXYJzuaqwD) for support.
218
+
219
+ ## License
220
+
221
+ Copyright (c) 2024-2026 The GPUStack authors
222
+
223
+ Licensed under the Apache License, Version 2.0 (the "License");
224
+ you may not use this file except in compliance with the License.
225
+ You may obtain a copy of the License at [LICENSE](./LICENSE) file for details.
226
+
227
+ Unless required by applicable law or agreed to in writing, software
228
+ distributed under the License is distributed on an "AS IS" BASIS,
229
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
230
+ See the License for the specific language governing permissions and
231
+ limitations under the License.
@@ -0,0 +1,4 @@
1
+ __version__ = 'v2.2.2'
2
+ __git_commit__ = '6bc353b'
3
+ __benchmark_runner_version__ = 'v0.0.4'
4
+ __operator_version__ = 'v0.5.4'