skypilot-nightly 1.0.0.dev20250906__py3-none-any.whl → 1.0.0.dev20250908__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (49) hide show
  1. sky/__init__.py +2 -2
  2. sky/adaptors/common.py +24 -1
  3. sky/adaptors/do.py +8 -2
  4. sky/clouds/aws.py +4 -6
  5. sky/clouds/azure.py +12 -13
  6. sky/clouds/cudo.py +4 -8
  7. sky/clouds/do.py +5 -6
  8. sky/clouds/nebius.py +1 -1
  9. sky/clouds/oci.py +7 -7
  10. sky/clouds/runpod.py +59 -18
  11. sky/clouds/vast.py +21 -22
  12. sky/clouds/vsphere.py +10 -15
  13. sky/dashboard/out/404.html +1 -1
  14. sky/dashboard/out/_next/static/chunks/8969-0487dfbf149d9e53.js +1 -0
  15. sky/dashboard/out/_next/static/chunks/{webpack-8df25bce0107f4bd.js → webpack-47c64cc05717f8a3.js} +1 -1
  16. sky/dashboard/out/_next/static/{ZOaq9s6U49jSoGAMkeKqu → qikl6zGuwe8BKavteei3r}/_buildManifest.js +1 -1
  17. sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  18. sky/dashboard/out/clusters/[cluster].html +1 -1
  19. sky/dashboard/out/clusters.html +1 -1
  20. sky/dashboard/out/config.html +1 -1
  21. sky/dashboard/out/index.html +1 -1
  22. sky/dashboard/out/infra/[context].html +1 -1
  23. sky/dashboard/out/infra.html +1 -1
  24. sky/dashboard/out/jobs/[job].html +1 -1
  25. sky/dashboard/out/jobs/pools/[pool].html +1 -1
  26. sky/dashboard/out/jobs.html +1 -1
  27. sky/dashboard/out/users.html +1 -1
  28. sky/dashboard/out/volumes.html +1 -1
  29. sky/dashboard/out/workspace/new.html +1 -1
  30. sky/dashboard/out/workspaces/[name].html +1 -1
  31. sky/dashboard/out/workspaces.html +1 -1
  32. sky/jobs/server/core.py +44 -2
  33. sky/jobs/server/server.py +17 -0
  34. sky/server/constants.py +1 -1
  35. sky/server/daemons.py +2 -0
  36. sky/server/requests/executor.py +7 -0
  37. sky/server/requests/payloads.py +8 -0
  38. sky/server/requests/serializers/decoders.py +7 -1
  39. sky/server/requests/serializers/encoders.py +10 -2
  40. sky/utils/common_utils.py +18 -0
  41. sky/utils/resource_checker.py +2 -3
  42. {skypilot_nightly-1.0.0.dev20250906.dist-info → skypilot_nightly-1.0.0.dev20250908.dist-info}/METADATA +33 -33
  43. {skypilot_nightly-1.0.0.dev20250906.dist-info → skypilot_nightly-1.0.0.dev20250908.dist-info}/RECORD +48 -48
  44. sky/dashboard/out/_next/static/chunks/8969-0be3036bf86f8256.js +0 -1
  45. /sky/dashboard/out/_next/static/{ZOaq9s6U49jSoGAMkeKqu → qikl6zGuwe8BKavteei3r}/_ssgManifest.js +0 -0
  46. {skypilot_nightly-1.0.0.dev20250906.dist-info → skypilot_nightly-1.0.0.dev20250908.dist-info}/WHEEL +0 -0
  47. {skypilot_nightly-1.0.0.dev20250906.dist-info → skypilot_nightly-1.0.0.dev20250908.dist-info}/entry_points.txt +0 -0
  48. {skypilot_nightly-1.0.0.dev20250906.dist-info → skypilot_nightly-1.0.0.dev20250908.dist-info}/licenses/LICENSE +0 -0
  49. {skypilot_nightly-1.0.0.dev20250906.dist-info → skypilot_nightly-1.0.0.dev20250908.dist-info}/top_level.txt +0 -0
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-8df25bce0107f4bd.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-469814d711d63b1b.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"ZOaq9s6U49jSoGAMkeKqu","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-469814d711d63b1b.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-8df25bce0107f4bd.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/config-dfb9bf07b13045f4.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config","query":{},"buildId":"ZOaq9s6U49jSoGAMkeKqu","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/config-dfb9bf07b13045f4.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-8df25bce0107f4bd.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-444f1804401f04ea.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"ZOaq9s6U49jSoGAMkeKqu","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-444f1804401f04ea.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-8df25bce0107f4bd.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra/%5Bcontext%5D-6563820e094f68ca.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra/[context]","query":{},"buildId":"ZOaq9s6U49jSoGAMkeKqu","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra/%5Bcontext%5D-6563820e094f68ca.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra/[context]","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-8df25bce0107f4bd.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra-aabba60d57826e0f.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra","query":{},"buildId":"ZOaq9s6U49jSoGAMkeKqu","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra-aabba60d57826e0f.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-8df25bce0107f4bd.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-3d59f75e2ccf9321.js" defer=""></script><script src="/dashboard/_next/static/chunks/6130-2be46d70a38f1e82.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-d67458fcb1386c92.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-b15471acd2cba716.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/754-d0da8ab45f9509e9.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-01359c57e018caa4.js" defer=""></script><script src="/dashboard/_next/static/chunks/3850-ff4a9a69d978632b.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-0be3036bf86f8256.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-4b4d5e824b7f9d3c.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/%5Bjob%5D-dd64309c3fe67ed2.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/[job]","query":{},"buildId":"ZOaq9s6U49jSoGAMkeKqu","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-3d59f75e2ccf9321.js" defer=""></script><script src="/dashboard/_next/static/chunks/6130-2be46d70a38f1e82.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-d67458fcb1386c92.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-b15471acd2cba716.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/754-d0da8ab45f9509e9.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-01359c57e018caa4.js" defer=""></script><script src="/dashboard/_next/static/chunks/3850-ff4a9a69d978632b.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-0487dfbf149d9e53.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-4b4d5e824b7f9d3c.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/%5Bjob%5D-dd64309c3fe67ed2.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/[job]","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-8df25bce0107f4bd.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-3d59f75e2ccf9321.js" defer=""></script><script src="/dashboard/_next/static/chunks/6130-2be46d70a38f1e82.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-d67458fcb1386c92.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/754-d0da8ab45f9509e9.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-01359c57e018caa4.js" defer=""></script><script src="/dashboard/_next/static/chunks/3850-ff4a9a69d978632b.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-0be3036bf86f8256.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/pools/%5Bpool%5D-07349868f7905d37.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/pools/[pool]","query":{},"buildId":"ZOaq9s6U49jSoGAMkeKqu","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-3d59f75e2ccf9321.js" defer=""></script><script src="/dashboard/_next/static/chunks/6130-2be46d70a38f1e82.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-d67458fcb1386c92.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/754-d0da8ab45f9509e9.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-01359c57e018caa4.js" defer=""></script><script src="/dashboard/_next/static/chunks/3850-ff4a9a69d978632b.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-0487dfbf149d9e53.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/pools/%5Bpool%5D-07349868f7905d37.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/pools/[pool]","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-8df25bce0107f4bd.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs-1f70d9faa564804f.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs","query":{},"buildId":"ZOaq9s6U49jSoGAMkeKqu","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs-1f70d9faa564804f.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-8df25bce0107f4bd.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/users-018bf31cda52e11b.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/users","query":{},"buildId":"ZOaq9s6U49jSoGAMkeKqu","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/users-018bf31cda52e11b.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/users","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-8df25bce0107f4bd.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/volumes-739726d6b823f532.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/volumes","query":{},"buildId":"ZOaq9s6U49jSoGAMkeKqu","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/volumes-739726d6b823f532.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/volumes","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-8df25bce0107f4bd.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspace/new","query":{},"buildId":"ZOaq9s6U49jSoGAMkeKqu","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspace/new-3f88a1c7e86a3f86.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspace/new","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-8df25bce0107f4bd.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-3d59f75e2ccf9321.js" defer=""></script><script src="/dashboard/_next/static/chunks/6130-2be46d70a38f1e82.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-d67458fcb1386c92.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-b15471acd2cba716.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/1836-37fede578e2da5f8.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-01359c57e018caa4.js" defer=""></script><script src="/dashboard/_next/static/chunks/3850-ff4a9a69d978632b.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-0be3036bf86f8256.js" defer=""></script><script src="/dashboard/_next/static/chunks/6990-08b2a1cae076a943.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-4b4d5e824b7f9d3c.js" defer=""></script><script src="/dashboard/_next/static/chunks/1121-408ed10b2f9fce17.js" defer=""></script><script src="/dashboard/_next/static/chunks/6601-06114c982db410b6.js" defer=""></script><script src="/dashboard/_next/static/chunks/3015-86cabed5d4669ad0.js" defer=""></script><script src="/dashboard/_next/static/chunks/1141-943efc7aff0f0c06.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces/%5Bname%5D-af76bb06dbb3954f.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspaces/[name]","query":{},"buildId":"ZOaq9s6U49jSoGAMkeKqu","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-3d59f75e2ccf9321.js" defer=""></script><script src="/dashboard/_next/static/chunks/6130-2be46d70a38f1e82.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-d67458fcb1386c92.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-b15471acd2cba716.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/1836-37fede578e2da5f8.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-01359c57e018caa4.js" defer=""></script><script src="/dashboard/_next/static/chunks/3850-ff4a9a69d978632b.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-0487dfbf149d9e53.js" defer=""></script><script src="/dashboard/_next/static/chunks/6990-08b2a1cae076a943.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-4b4d5e824b7f9d3c.js" defer=""></script><script src="/dashboard/_next/static/chunks/1121-408ed10b2f9fce17.js" defer=""></script><script src="/dashboard/_next/static/chunks/6601-06114c982db410b6.js" defer=""></script><script src="/dashboard/_next/static/chunks/3015-86cabed5d4669ad0.js" defer=""></script><script src="/dashboard/_next/static/chunks/1141-943efc7aff0f0c06.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces/%5Bname%5D-af76bb06dbb3954f.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspaces/[name]","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-8df25bce0107f4bd.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces-7598c33a746cdc91.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/ZOaq9s6U49jSoGAMkeKqu/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspaces","query":{},"buildId":"ZOaq9s6U49jSoGAMkeKqu","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/4614e06482d7309e.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/4614e06482d7309e.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-47c64cc05717f8a3.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-cf60a09ccd051a10.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-f15ccb73239a3bf1.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-ce361c6959bc2001.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces-7598c33a746cdc91.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/qikl6zGuwe8BKavteei3r/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspaces","query":{},"buildId":"qikl6zGuwe8BKavteei3r","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
sky/jobs/server/core.py CHANGED
@@ -575,8 +575,50 @@ def _maybe_restart_controller(
575
575
  return handle
576
576
 
577
577
 
578
+ # For backwards compatibility
579
+ # TODO(hailong): Remove before 0.12.0.
578
580
  @usage_lib.entrypoint
579
- def queue(
581
+ def queue(refresh: bool,
582
+ skip_finished: bool = False,
583
+ all_users: bool = False,
584
+ job_ids: Optional[List[int]] = None) -> List[Dict[str, Any]]:
585
+ # NOTE(dev): Keep the docstring consistent between the Python API and CLI.
586
+ """Gets statuses of managed jobs.
587
+
588
+ Please refer to sky.cli.job_queue for documentation.
589
+
590
+ Returns:
591
+ [
592
+ {
593
+ 'job_id': int,
594
+ 'job_name': str,
595
+ 'resources': str,
596
+ 'submitted_at': (float) timestamp of submission,
597
+ 'end_at': (float) timestamp of end,
598
+ 'job_duration': (float) duration in seconds,
599
+ 'recovery_count': (int) Number of retries,
600
+ 'status': (sky.jobs.ManagedJobStatus) of the job,
601
+ 'cluster_resources': (str) resources of the cluster,
602
+ 'region': (str) region of the cluster,
603
+ 'user_name': (Optional[str]) job creator's user name,
604
+ 'user_hash': (str) job creator's user hash,
605
+ 'task_id': (int), set to 0 (except in pipelines, which may have multiple tasks), # pylint: disable=line-too-long
606
+ 'task_name': (str), same as job_name (except in pipelines, which may have multiple tasks), # pylint: disable=line-too-long
607
+ }
608
+ ]
609
+ Raises:
610
+ sky.exceptions.ClusterNotUpError: the jobs controller is not up or
611
+ does not exist.
612
+ RuntimeError: if failed to get the managed jobs with ssh.
613
+ """
614
+ jobs, _, _, _ = queue_v2(refresh, skip_finished, all_users, job_ids, None,
615
+ None, None, None, None, None, None)
616
+
617
+ return jobs
618
+
619
+
620
+ @usage_lib.entrypoint
621
+ def queue_v2(
580
622
  refresh: bool,
581
623
  skip_finished: bool = False,
582
624
  all_users: bool = False,
@@ -590,7 +632,7 @@ def queue(
590
632
  statuses: Optional[List[str]] = None,
591
633
  ) -> Tuple[List[Dict[str, Any]], int, Dict[str, int], int]:
592
634
  # NOTE(dev): Keep the docstring consistent between the Python API and CLI.
593
- """Gets statuses of managed jobs.
635
+ """Gets statuses of managed jobs with filtering.
594
636
 
595
637
  Please refer to sky.cli.job_queue for documentation.
596
638
 
sky/jobs/server/server.py CHANGED
@@ -32,6 +32,8 @@ async def launch(request: fastapi.Request,
32
32
  )
33
33
 
34
34
 
35
+ # For backwards compatibility
36
+ # TODO(hailong): Remove before 0.12.0.
35
37
  @router.post('/queue')
36
38
  async def queue(request: fastapi.Request,
37
39
  jobs_queue_body: payloads.JobsQueueBody) -> None:
@@ -46,6 +48,21 @@ async def queue(request: fastapi.Request,
46
48
  )
47
49
 
48
50
 
51
+ @router.post('/queue/v2')
52
+ async def queue_v2(request: fastapi.Request,
53
+ jobs_queue_body_v2: payloads.JobsQueueV2Body) -> None:
54
+ executor.schedule_request(
55
+ request_id=request.state.request_id,
56
+ request_name='jobs.queue_v2',
57
+ request_body=jobs_queue_body_v2,
58
+ func=core.queue_v2,
59
+ schedule_type=(api_requests.ScheduleType.LONG
60
+ if jobs_queue_body_v2.refresh else
61
+ api_requests.ScheduleType.SHORT),
62
+ request_cluster_name=common.JOB_CONTROLLER_NAME,
63
+ )
64
+
65
+
49
66
  @router.post('/cancel')
50
67
  async def cancel(request: fastapi.Request,
51
68
  jobs_cancel_body: payloads.JobsCancelBody) -> None:
sky/server/constants.py CHANGED
@@ -10,7 +10,7 @@ from sky.skylet import constants
10
10
  # based on version info is needed.
11
11
  # For more details and code guidelines, refer to:
12
12
  # https://docs.skypilot.co/en/latest/developers/CONTRIBUTING.html#backward-compatibility-guidelines
13
- API_VERSION = 17
13
+ API_VERSION = 18
14
14
 
15
15
  # The minimum peer API version that the code should still work with.
16
16
  # Notes (dev):
sky/server/daemons.py CHANGED
@@ -9,6 +9,7 @@ from sky import skypilot_config
9
9
  from sky.server import constants as server_constants
10
10
  from sky.utils import annotations
11
11
  from sky.utils import common
12
+ from sky.utils import common_utils
12
13
  from sky.utils import env_options
13
14
  from sky.utils import timeline
14
15
  from sky.utils import ux_utils
@@ -73,6 +74,7 @@ class InternalRequestDaemon:
73
74
  # using too much memory.
74
75
  annotations.clear_request_level_cache()
75
76
  timeline.save_timeline()
77
+ common_utils.release_memory()
76
78
  except Exception: # pylint: disable=broad-except
77
79
  # It is OK to fail to run the event, as the event is not
78
80
  # critical, but we should log the error.
@@ -437,6 +437,13 @@ def _request_execution_wrapper(request_id: str,
437
437
  request_id, return_value if not ignore_return_value else None)
438
438
  _restore_output(original_stdout, original_stderr)
439
439
  logger.info(f'Request {request_id} finished')
440
+ finally:
441
+ with metrics_lib.time_it(name='release_memory', group='internal'):
442
+ try:
443
+ common_utils.release_memory()
444
+ except Exception as e: # pylint: disable=broad-except
445
+ logger.error(f'Failed to release memory: '
446
+ f'{common_utils.format_exception(e)}')
440
447
 
441
448
 
442
449
  async def execute_request_coroutine(request: api_requests.Request):
@@ -512,6 +512,14 @@ class JobsQueueBody(RequestBody):
512
512
  skip_finished: bool = False
513
513
  all_users: bool = False
514
514
  job_ids: Optional[List[int]] = None
515
+
516
+
517
+ class JobsQueueV2Body(RequestBody):
518
+ """The request body for the jobs queue endpoint."""
519
+ refresh: bool = False
520
+ skip_finished: bool = False
521
+ all_users: bool = False
522
+ job_ids: Optional[List[int]] = None
515
523
  user_match: Optional[str] = None
516
524
  workspace_match: Optional[str] = None
517
525
  name_match: Optional[str] = None
@@ -109,7 +109,13 @@ def decode_queue(return_value: List[dict],) -> List[Dict[str, Any]]:
109
109
 
110
110
 
111
111
  @register_decoders('jobs.queue')
112
- def decode_jobs_queue(return_value):
112
+ def decode_jobs_queue(return_value: List[dict],) -> List[Dict[str, Any]]:
113
+ # To keep backward compatibility with v0.10.2
114
+ return decode_jobs_queue_v2(return_value)
115
+
116
+
117
+ @register_decoders('jobs.queue_v2')
118
+ def decode_jobs_queue_v2(return_value) -> List[Dict[str, Any]]:
113
119
  """Decode jobs queue response.
114
120
 
115
121
  Supports legacy list, or a dict {jobs, total}.
@@ -6,7 +6,7 @@ import base64
6
6
  import dataclasses
7
7
  import pickle
8
8
  import typing
9
- from typing import Any, Dict, List, Optional, Tuple
9
+ from typing import Any, Dict, List, Optional, Tuple, Union
10
10
 
11
11
  from sky.schemas.api import responses
12
12
  from sky.server import constants as server_constants
@@ -121,7 +121,15 @@ def encode_status_kubernetes(
121
121
 
122
122
 
123
123
  @register_encoder('jobs.queue')
124
- def encode_jobs_queue(jobs_or_tuple):
124
+ def encode_jobs_queue(jobs: List[dict],) -> List[Dict[str, Any]]:
125
+ for job in jobs:
126
+ job['status'] = job['status'].value
127
+ return jobs
128
+
129
+
130
+ @register_encoder('jobs.queue_v2')
131
+ def encode_jobs_queue_v2(
132
+ jobs_or_tuple) -> Union[List[Dict[str, Any]], Dict[str, Any]]:
125
133
  # Support returning either a plain jobs list or a (jobs, total) tuple
126
134
  status_counts = {}
127
135
  if isinstance(jobs_or_tuple, tuple):
sky/utils/common_utils.py CHANGED
@@ -1,8 +1,10 @@
1
1
  """Utils shared between all of sky"""
2
2
 
3
+ import ctypes
3
4
  import difflib
4
5
  import enum
5
6
  import functools
7
+ import gc
6
8
  import getpass
7
9
  import hashlib
8
10
  import inspect
@@ -1090,3 +1092,19 @@ def removeprefix(string: str, prefix: str) -> str:
1090
1092
  if string.startswith(prefix):
1091
1093
  return string[len(prefix):]
1092
1094
  return string
1095
+
1096
+
1097
+ def release_memory():
1098
+ """Release the process memory"""
1099
+ # Do the best effort to release the python heap and let malloc_trim
1100
+ # be more efficient.
1101
+ gc.collect()
1102
+ if sys.platform.startswith('linux'):
1103
+ try:
1104
+ # Will fail on musl (alpine), but at least it works on our
1105
+ # offical docker images.
1106
+ libc = ctypes.CDLL('libc.so.6')
1107
+ return libc.malloc_trim(0)
1108
+ except (AttributeError, OSError):
1109
+ return 0
1110
+ return 0
@@ -276,9 +276,8 @@ def _get_active_resources(
276
276
  # pylint: disable=import-outside-toplevel
277
277
  from sky.jobs.server import core as managed_jobs_core
278
278
  try:
279
- filtered_jobs, _, _, _ = managed_jobs_core.queue(refresh=False,
280
- skip_finished=True,
281
- all_users=True)
279
+ filtered_jobs, _, _, _ = managed_jobs_core.queue_v2(
280
+ refresh=False, skip_finished=True, all_users=True)
282
281
  return filtered_jobs
283
282
  except exceptions.ClusterNotUpError:
284
283
  logger.warning('All jobs should be finished.')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250906
3
+ Version: 1.0.0.dev20250908
4
4
  Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -145,48 +145,48 @@ Requires-Dist: grpcio>=1.63.0; extra == "server"
145
145
  Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "server"
146
146
  Requires-Dist: aiosqlite; extra == "server"
147
147
  Provides-Extra: all
148
- Requires-Dist: google-cloud-storage; extra == "all"
149
- Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
150
- Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
151
- Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
152
- Requires-Dist: anyio; extra == "all"
153
- Requires-Dist: aiosqlite; extra == "all"
154
- Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
155
- Requires-Dist: aiohttp; extra == "all"
156
- Requires-Dist: azure-cli>=2.65.0; extra == "all"
148
+ Requires-Dist: colorama<0.4.5; extra == "all"
149
+ Requires-Dist: ibm-vpc; extra == "all"
150
+ Requires-Dist: msrestazure; extra == "all"
151
+ Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
152
+ Requires-Dist: botocore>=1.29.10; extra == "all"
153
+ Requires-Dist: cudo-compute>=0.1.10; extra == "all"
157
154
  Requires-Dist: sqlalchemy_adapter; extra == "all"
158
- Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "all"
159
- Requires-Dist: nebius>=0.2.47; extra == "all"
160
- Requires-Dist: runpod>=1.6.1; extra == "all"
161
- Requires-Dist: passlib; extra == "all"
162
- Requires-Dist: oci; extra == "all"
163
- Requires-Dist: ibm-cloud-sdk-core; extra == "all"
155
+ Requires-Dist: azure-core>=1.24.0; extra == "all"
164
156
  Requires-Dist: casbin; extra == "all"
157
+ Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
158
+ Requires-Dist: ibm-cloud-sdk-core; extra == "all"
159
+ Requires-Dist: aiohttp; extra == "all"
160
+ Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
161
+ Requires-Dist: python-dateutil; extra == "all"
162
+ Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
163
+ Requires-Dist: google-cloud-storage; extra == "all"
165
164
  Requires-Dist: azure-core>=1.31.0; extra == "all"
166
165
  Requires-Dist: pydo>=0.3.0; extra == "all"
167
- Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
166
+ Requires-Dist: pyopenssl<24.3.0,>=23.2.0; extra == "all"
167
+ Requires-Dist: runpod>=1.6.1; extra == "all"
168
168
  Requires-Dist: websockets; extra == "all"
169
+ Requires-Dist: ibm-cos-sdk; extra == "all"
170
+ Requires-Dist: azure-identity>=1.19.0; extra == "all"
171
+ Requires-Dist: azure-common; extra == "all"
172
+ Requires-Dist: boto3>=1.26.1; extra == "all"
173
+ Requires-Dist: azure-cli>=2.65.0; extra == "all"
174
+ Requires-Dist: nebius>=0.2.47; extra == "all"
175
+ Requires-Dist: passlib; extra == "all"
176
+ Requires-Dist: google-api-python-client>=2.69.0; extra == "all"
169
177
  Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
170
178
  Requires-Dist: awscli>=1.27.10; extra == "all"
171
- Requires-Dist: azure-core>=1.24.0; extra == "all"
172
- Requires-Dist: botocore>=1.29.10; extra == "all"
173
- Requires-Dist: colorama<0.4.5; extra == "all"
174
- Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
175
- Requires-Dist: boto3>=1.26.1; extra == "all"
176
- Requires-Dist: ibm-vpc; extra == "all"
177
- Requires-Dist: azure-storage-blob>=12.23.1; extra == "all"
178
- Requires-Dist: grpcio>=1.63.0; extra == "all"
179
- Requires-Dist: msgraph-sdk; extra == "all"
179
+ Requires-Dist: azure-mgmt-network>=27.0.0; extra == "all"
180
+ Requires-Dist: protobuf<7.0.0,>=5.26.1; extra == "all"
181
+ Requires-Dist: aiosqlite; extra == "all"
182
+ Requires-Dist: anyio; extra == "all"
180
183
  Requires-Dist: pyjwt; extra == "all"
181
- Requires-Dist: azure-identity>=1.19.0; extra == "all"
182
- Requires-Dist: cudo-compute>=0.1.10; extra == "all"
183
- Requires-Dist: msrestazure; extra == "all"
184
+ Requires-Dist: oci; extra == "all"
185
+ Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
184
186
  Requires-Dist: docker; extra == "all"
185
- Requires-Dist: python-dateutil; extra == "all"
187
+ Requires-Dist: grpcio>=1.63.0; extra == "all"
186
188
  Requires-Dist: ibm-platform-services>=0.48.0; extra == "all"
187
- Requires-Dist: azure-common; extra == "all"
188
- Requires-Dist: azure-mgmt-compute>=33.0.0; extra == "all"
189
- Requires-Dist: ibm-cos-sdk; extra == "all"
189
+ Requires-Dist: msgraph-sdk; extra == "all"
190
190
  Dynamic: author
191
191
  Dynamic: classifier
192
192
  Dynamic: description