parent
89a63dbf33
commit
b4772fbcd0
|
|
@ -144,10 +144,6 @@ pub async fn main(config: &Config, args: &ServeArgs) {
|
|||
|
||||
let app = Router::new()
|
||||
.route("/", routing::get(ui::handler))
|
||||
.route("/index.txt", routing::get(ui::handler))
|
||||
.route("/api", routing::get(ui::handler))
|
||||
.route("/api.txt", routing::get(ui::handler))
|
||||
.route("/_next/*path", routing::get(ui::handler))
|
||||
.merge(api_router(args, config))
|
||||
.merge(SwaggerUi::new("/swagger-ui").url("/api-docs/openapi.json", doc))
|
||||
.fallback(ui::handler);
|
||||
|
|
|
|||
|
|
@ -41,6 +41,10 @@ pub async fn handler(uri: Uri) -> impl IntoResponse {
|
|||
path = "index.html".to_owned()
|
||||
} else if path == "playground" {
|
||||
path = "playground.html".to_owned();
|
||||
} else if path == "dashboard/home" {
|
||||
path = "dashboard/home.html".to_owned();
|
||||
} else if path == "dashboard/runners" {
|
||||
path = "dashboard/runners.html".to_owned();
|
||||
}
|
||||
WebStaticFile(path)
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
crates/tabby/ui/_next/static/chunks/app/dashboard/home/page-4eb22256bfa93a96.js
vendored
Normal file
1
crates/tabby/ui/_next/static/chunks/app/dashboard/home/page-4eb22256bfa93a96.js
vendored
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[663],{7404:function(e,n,t){"use strict";t.d(n,{j:function(){return s}});let r=e=>"boolean"==typeof e?"".concat(e):0===e?"0":e,l=function(){for(var e=arguments.length,n=Array(e),t=0;t<e;t++)n[t]=arguments[t];return n.flat(1/0).filter(Boolean).join(" ")},s=(e,n)=>t=>{var s;if((null==n?void 0:n.variants)==null)return l(e,null==t?void 0:t.class,null==t?void 0:t.className);let{variants:i,defaultVariants:a}=n,o=Object.keys(i).map(e=>{let n=null==t?void 0:t[e],l=null==a?void 0:a[e];if(null===n)return null;let s=r(n)||r(l);return i[e][s]}),c=t&&Object.entries(t).reduce((e,n)=>{let[t,r]=n;return void 0===r||(e[t]=r),e},{}),d=null==n?void 0:null===(s=n.compoundVariants)||void 0===s?void 0:s.reduce((e,n)=>{let{class:t,className:r,...l}=n;return Object.entries(l).every(e=>{let[n,t]=e;return Array.isArray(t)?t.includes({...a,...c}[n]):({...a,...c})[n]===t})?[...e,t,r]:e},[]);return l(e,o,d,null==t?void 0:t.class,null==t?void 0:t.className)}},96360:function(e,n,t){Promise.resolve().then(t.bind(t,79744))},79744:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return c}});var r=t(57437),l=t(39311),s=t(7404),i=t(61396),a=t.n(i),o=t(24033);function c(e){let{children:n,className:t}=e;return(0,r.jsxs)("div",{className:(0,l.cn)("grid overflow-hidden lg:grid-cols-[280px_1fr]",t),children:[(0,r.jsx)("div",{className:"hidden border-r bg-zinc-100/40 dark:bg-zinc-800/40 lg:block",children:(0,r.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,r.jsx)("div",{className:"h-[12px]"}),(0,r.jsx)("div",{className:"flex-1",children:(0,r.jsxs)("nav",{className:"grid items-start gap-4 px-4 text-sm font-medium",children:[(0,r.jsxs)(u,{href:"/dashboard/home",children:[(0,r.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:" h-4 w-4",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"}),(0,r.jsx)("polyline",{points:"9 22 9 12 15 12 15 22"})]}),"Home"]}),(0,r.jsxs)(u,{href:"/dashboard/runners",children:[(0,r.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:" h-4 w-4",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"}),(0,r.jsx)("path",{d:"m6.08 9.5-3.5 1.6a1 1 0 0 0 0 1.81l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9a1 1 0 0 0 0-1.83l-3.5-1.59"}),(0,r.jsx)("path",{d:"m6.08 14.5-3.5 1.6a1 1 0 0 0 0 1.81l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9a1 1 0 0 0 0-1.83l-3.5-1.59"})]}),"Runners"]})]})})]})}),(0,r.jsx)("div",{className:"flex flex-1 flex-col overflow-auto p-4 lg:p-16",children:n})]})}let d=(0,s.j)("flex items-center gap-3 rounded-lg px-3 py-2 text-zinc-900 transition-all hover:text-zinc-900 dark:text-zinc-50 dark:hover:text-zinc-50",{variants:{state:{selected:"bg-zinc-200 dark:bg-zinc-800","not-selected":""}},defaultVariants:{state:"not-selected"}});function u(e){let{href:n,children:t}=e,l=(0,o.usePathname)();return(0,r.jsx)(a(),{className:d({state:l==n?"selected":"not-selected"}),href:n,children:t})}},39311:function(e,n,t){"use strict";t.d(n,{cn:function(){return i}});var r=t(50348),l=t(28481),s=t(23986);function i(){for(var e=arguments.length,n=Array(e),t=0;t<e;t++)n[t]=arguments[t];return(0,s.m)((0,r.W)(n))}(0,l.kP)("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",7)},67650:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"RouterContext",{enumerable:!0,get:function(){return s}});let r=t(21024),l=r._(t(2265)),s=l.default.createContext(null)},24033:function(e,n,t){e.exports=t(20290)}},function(e){e.O(0,[195,396,971,864,744],function(){return e(e.s=96360)}),_N_E=e.O()}]);
|
||||
1
crates/tabby/ui/_next/static/chunks/app/dashboard/runners/page-5a19d3435b2e9dae.js
vendored
Normal file
1
crates/tabby/ui/_next/static/chunks/app/dashboard/runners/page-5a19d3435b2e9dae.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[454],{93924:function(e,t,s){Promise.resolve().then(s.bind(s,93203))},93203:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return f}});var r=s(57437),a=s(94190),n=s(2265),l=s(39311);let d=n.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,l.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",s),...a})});d.displayName="Card";let i=n.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,l.cn)("flex flex-col space-y-1.5 p-6",s),...a})});i.displayName="CardHeader";let o=n.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("h3",{ref:t,className:(0,l.cn)("text-2xl font-semibold leading-none tracking-tight",s),...a})});o.displayName="CardTitle";let h=n.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("p",{ref:t,className:(0,l.cn)("text-sm text-muted-foreground",s),...a})});h.displayName="CardDescription";let c=n.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,l.cn)("p-6 pt-0",s),...a})});c.displayName="CardContent";let x=n.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,r.jsx)("div",{ref:t,className:(0,l.cn)("flex items-center p-6 pt-0",s),...a})});function p(e){let{title:t,health:s}=e;return(0,r.jsxs)(d,{className:"rounded-xl shadow-md",children:[(0,r.jsx)(i,{className:"p-0 px-4 pb-2 pt-4",children:(0,r.jsx)(o,{className:"text-md font-semibold",children:t})}),(0,r.jsxs)(c,{className:"flex flex-col gap-2 p-0 px-4 pb-4 pt-2",children:[(0,r.jsxs)(u,{children:[(0,r.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:" h-5 w-5 text-gray-400",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"}),(0,r.jsx)("polyline",{points:"14 2 14 8 20 8"}),(0,r.jsx)("path",{d:"m10 13-2 2 2 2"}),(0,r.jsx)("path",{d:"m14 17 2-2-2-2"})]}),(0,r.jsx)("p",{className:"ml-2",children:s.model})]}),s.chat_model&&(0,r.jsxs)(u,{children:[(0,r.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:" h-5 w-5 text-gray-400",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2v5Z"}),(0,r.jsx)("path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1"})]}),(0,r.jsx)("p",{className:"ml-2",children:s.chat_model})]}),(0,r.jsxs)(u,{children:[(0,r.jsxs)("svg",{className:" h-5 w-5 text-gray-400",fill:"none",height:"24",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg",children:[(0,r.jsx)("rect",{height:"16",rx:"2",width:"16",x:"4",y:"4"}),(0,r.jsx)("rect",{height:"6",width:"6",x:"9",y:"9"}),(0,r.jsx)("path",{d:"M15 2v2"}),(0,r.jsx)("path",{d:"M15 20v2"}),(0,r.jsx)("path",{d:"M2 15h2"}),(0,r.jsx)("path",{d:"M2 9h2"}),(0,r.jsx)("path",{d:"M20 15h2"}),(0,r.jsx)("path",{d:"M20 9h2"}),(0,r.jsx)("path",{d:"M9 2v2"}),(0,r.jsx)("path",{d:"M9 20v2"})]}),(0,r.jsxs)("p",{className:"ml-2",children:[s.cpu_info," (",s.cpu_count," cores)"]})]}),s.cuda_devices.map((e,t)=>(0,r.jsxs)(u,{children:[(0,r.jsxs)("svg",{className:" h-5 w-5 text-gray-400",fill:"none",height:"24",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg",children:[(0,r.jsx)("path",{d:"M6 19v-3"}),(0,r.jsx)("path",{d:"M10 19v-3"}),(0,r.jsx)("path",{d:"M14 19v-3"}),(0,r.jsx)("path",{d:"M18 19v-3"}),(0,r.jsx)("path",{d:"M8 11V9"}),(0,r.jsx)("path",{d:"M16 11V9"}),(0,r.jsx)("path",{d:"M12 11V9"}),(0,r.jsx)("path",{d:"M2 15h20"}),(0,r.jsx)("path",{d:"M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1.1a2 2 0 0 0 0 3.837V17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5.1a2 2 0 0 0 0-3.837Z"})]}),(0,r.jsx)("p",{className:"ml-2",children:e})]},t))]})]})}function u(e){let{children:t}=e;return(0,r.jsx)("div",{className:"mt-2 flex items-center text-sm text-gray-500",children:t})}function f(){let{data:e}=(0,a.Q)();if(e)return(0,r.jsx)("div",{className:"flex h-full w-full items-start justify-start",children:(0,r.jsx)(p,{title:"Local Runner",health:e})})}x.displayName="CardFooter"},94190:function(e,t,s){"use strict";s.d(t,{Q:function(){return n}});var r=s(45362);function a(e){return fetch(e).then(e=>e.json())}function n(){return(0,r.Z)("/v1/health",a)}},39311:function(e,t,s){"use strict";s.d(t,{cn:function(){return l}});var r=s(50348),a=s(28481),n=s(23986);function l(){for(var e=arguments.length,t=Array(e),s=0;s<e;s++)t[s]=arguments[s];return(0,n.m)((0,r.W)(t))}(0,a.kP)("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",7)}},function(e){e.O(0,[195,362,971,864,744],function(){return e(e.s=93924)}),_N_E=e.O()}]);
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[185],{25330:function(e,n,r){Promise.resolve().then(r.t.bind(r,58877,23)),Promise.resolve().then(r.bind(r,79446)),Promise.resolve().then(r.bind(r,78495)),Promise.resolve().then(r.t.bind(r,6928,23)),Promise.resolve().then(r.t.bind(r,33195,23)),Promise.resolve().then(r.bind(r,5925))},79446:function(e,n,r){"use strict";r.r(n),r.d(n,{Header:function(){return b}});var t=r(57437);r(2265);var s=r(39311),i=r(93023),a=r(84168),o=r(30415),l=r.n(o),d=r(61396),c=r.n(d),u=r(94190),f=r(45362),h=r(73737);let m=l()(()=>r.e(376).then(r.bind(r,15376)).then(e=>e.ThemeToggle),{loadableGenerated:{webpack:()=>[15376]},ssr:!1});function b(){var e;let{data:n}=(0,u.Q)(),r=!!(null==n?void 0:n.chat_model),o=null==n?void 0:null===(e=n.version)||void 0===e?void 0:e.git_describe,{data:l}=(0,f.Z)("https://api.github.com/repos/TabbyML/tabby/releases/latest",e=>fetch(e).then(e=>e.json())),d=function(e,n){try{return e&&n&&(0,h.q)(n.name,e,">")}catch(e){return console.warn(e),!0}}(o,l);return(0,t.jsxs)("header",{className:"sticky top-0 z-50 flex h-16 w-full shrink-0 items-center justify-between border-b bg-gradient-to-b from-background/10 via-background/50 to-background/80 px-4 backdrop-blur-xl",children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(m,{}),(0,t.jsx)(c(),{href:"/",className:(0,s.cn)((0,i.d)({variant:"link"})),children:"Home"}),(0,t.jsx)(c(),{href:"/api",className:(0,s.cn)((0,i.d)({variant:"link"})),children:"API"}),r&&(0,t.jsx)(c(),{href:"/playground",className:(0,s.cn)((0,i.d)({variant:"link"})),children:"Playground"})]}),(0,t.jsxs)("div",{className:"flex items-center justify-end space-x-2",children:[d&&(0,t.jsxs)("a",{target:"_blank",href:"https://github.com/TabbyML/tabby/releases/latest",rel:"noopener noreferrer",className:(0,i.d)({variant:"ghost"}),children:[(0,t.jsx)(a.Qs,{className:"text-yellow-600 dark:text-yellow-400"}),(0,t.jsxs)("span",{className:"ml-2 hidden md:flex",children:["New version (",null==l?void 0:l.name,") available"]})]}),(0,t.jsxs)("a",{target:"_blank",href:"https://github.com/TabbyML/tabby",rel:"noopener noreferrer",className:(0,s.cn)((0,i.d)({variant:"outline"})),children:[(0,t.jsx)(a.Mr,{}),(0,t.jsx)("span",{className:"ml-2 hidden md:flex",children:"GitHub"})]})]})]})}},78495:function(e,n,r){"use strict";r.r(n),r.d(n,{Providers:function(){return a}});var t=r(57437);r(2265);var s=r(6435),i=r(95482);function a(e){let{children:n,...r}=e;return(0,t.jsx)(s.f,{...r,children:(0,t.jsx)(i.pn,{children:n})})}},95482:function(e,n,r){"use strict";r.d(n,{_v:function(){return c},aJ:function(){return d},pn:function(){return o},u:function(){return l}});var t=r(57437),s=r(2265),i=r(43212),a=r(39311);let o=i.zt,l=i.fC,d=i.xz,c=s.forwardRef((e,n)=>{let{className:r,sideOffset:s=4,...o}=e;return(0,t.jsx)(i.VY,{ref:n,sideOffset:s,className:(0,a.cn)("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-xs font-medium text-popover-foreground shadow-md animate-in fade-in-50 data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1",r),...o})});c.displayName=i.VY.displayName},94190:function(e,n,r){"use strict";r.d(n,{Q:function(){return i}});var t=r(45362);function s(e){return fetch(e).then(e=>e.json())}function i(){return(0,t.Z)("/v1/health",s)}},58877:function(){}},function(e){e.O(0,[400,406,362,563,894,971,864,744],function(){return e(e.s=25330)}),_N_E=e.O()}]);
|
||||
|
|
@ -0,0 +1 @@
|
|||
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[931],{69563:function(e,n,t){Promise.resolve().then(t.t.bind(t,63388,23))},63388:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),function(e,n){for(var t in n)Object.defineProperty(e,t,{enumerable:!0,get:n[t]})}(n,{suspense:function(){return u},NoSSR:function(){return o}}),t(21024),t(2265);let r=t(54922);function u(){let e=Error(r.NEXT_DYNAMIC_NO_SSR_CODE);throw e.digest=r.NEXT_DYNAMIC_NO_SSR_CODE,e}function o(e){let{children:n}=e;return n}}},function(e){e.O(0,[971,864,744],function(){return e(e.s=69563)}),_N_E=e.O()}]);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
!function(){"use strict";var t,e,n,r,o,u,i,c,f,a={},l={};function s(t){var e=l[t];if(void 0!==e)return e.exports;var n=l[t]={exports:{}},r=!0;try{a[t](n,n.exports,s),r=!1}finally{r&&delete l[t]}return n.exports}s.m=a,t=[],s.O=function(e,n,r,o){if(n){o=o||0;for(var u=t.length;u>0&&t[u-1][2]>o;u--)t[u]=t[u-1];t[u]=[n,r,o];return}for(var i=1/0,u=0;u<t.length;u++){for(var n=t[u][0],r=t[u][1],o=t[u][2],c=!0,f=0;f<n.length;f++)i>=o&&Object.keys(s.O).every(function(t){return s.O[t](n[f])})?n.splice(f--,1):(c=!1,o<i&&(i=o));if(c){t.splice(u--,1);var a=r()}}return a},s.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return s.d(e,{a:e}),e},n=Object.getPrototypeOf?function(t){return Object.getPrototypeOf(t)}:function(t){return t.__proto__},s.t=function(t,r){if(1&r&&(t=this(t)),8&r||"object"==typeof t&&t&&(4&r&&t.__esModule||16&r&&"function"==typeof t.then))return t;var o=Object.create(null);s.r(o);var u={};e=e||[null,n({}),n([]),n(n)];for(var i=2&r&&t;"object"==typeof i&&!~e.indexOf(i);i=n(i))Object.getOwnPropertyNames(i).forEach(function(e){u[e]=function(){return t[e]}});return u.default=function(){return t},s.d(o,u),o},s.d=function(t,e){for(var n in e)s.o(e,n)&&!s.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},s.f={},s.e=function(t){return Promise.all(Object.keys(s.f).reduce(function(e,n){return s.f[n](t,e),e},[]))},s.u=function(t){return"static/chunks/"+t+".2b6536d53b303d15.js"},s.miniCssF=function(t){return"static/css/2b051a9b83c80bf9.css"},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(t){if("object"==typeof window)return window}}(),s.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r={},o="_N_E:",s.l=function(t,e,n,u){if(r[t]){r[t].push(e);return}if(void 0!==n)for(var i,c,f=document.getElementsByTagName("script"),a=0;a<f.length;a++){var l=f[a];if(l.getAttribute("src")==t||l.getAttribute("data-webpack")==o+n){i=l;break}}i||(c=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,s.nc&&i.setAttribute("nonce",s.nc),i.setAttribute("data-webpack",o+n),i.src=s.tu(t)),r[t]=[e];var d=function(e,n){i.onerror=i.onload=null,clearTimeout(p);var o=r[t];if(delete r[t],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach(function(t){return t(n)}),e)return e(n)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=d.bind(null,i.onerror),i.onload=d.bind(null,i.onload),c&&document.head.appendChild(i)},s.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},s.tt=function(){return void 0===u&&(u={createScriptURL:function(t){return t}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(u=trustedTypes.createPolicy("nextjs#bundler",u))),u},s.tu=function(t){return s.tt().createScriptURL(t)},s.p="/_next/",i={272:0},s.f.j=function(t,e){var n=s.o(i,t)?i[t]:void 0;if(0!==n){if(n)e.push(n[2]);else if(272!=t){var r=new Promise(function(e,r){n=i[t]=[e,r]});e.push(n[2]=r);var o=s.p+s.u(t),u=Error();s.l(o,function(e){if(s.o(i,t)&&(0!==(n=i[t])&&(i[t]=void 0),n)){var r=e&&("load"===e.type?"missing":e.type),o=e&&e.target&&e.target.src;u.message="Loading chunk "+t+" failed.\n("+r+": "+o+")",u.name="ChunkLoadError",u.type=r,u.request=o,n[1](u)}},"chunk-"+t,t)}else i[t]=0}},s.O.j=function(t){return 0===i[t]},c=function(t,e){var n,r,o=e[0],u=e[1],c=e[2],f=0;if(o.some(function(t){return 0!==i[t]})){for(n in u)s.o(u,n)&&(s.m[n]=u[n]);if(c)var a=c(s)}for(t&&t(e);f<o.length;f++)r=o[f],s.o(i,r)&&i[r]&&i[r][0](),i[r]=0;return s.O(a)},(f=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(c.bind(null,0)),f.push=c.bind(null,f.push.bind(f)),s.nc=void 0}();
|
||||
|
|
@ -0,0 +1 @@
|
|||
!function(){"use strict";var e,t,n,r,o,u,i,c,f,a={},l={};function s(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={exports:{}},r=!0;try{a[e](n,n.exports,s),r=!1}finally{r&&delete l[e]}return n.exports}s.m=a,e=[],s.O=function(t,n,r,o){if(n){o=o||0;for(var u=e.length;u>0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[n,r,o];return}for(var i=1/0,u=0;u<e.length;u++){for(var n=e[u][0],r=e[u][1],o=e[u][2],c=!0,f=0;f<n.length;f++)i>=o&&Object.keys(s.O).every(function(e){return s.O[e](n[f])})?n.splice(f--,1):(c=!1,o<i&&(i=o));if(c){e.splice(u--,1);var a=r()}}return a},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},s.t=function(e,r){if(1&r&&(e=this(e)),8&r||"object"==typeof e&&e&&(4&r&&e.__esModule||16&r&&"function"==typeof e.then))return e;var o=Object.create(null);s.r(o);var u={};t=t||[null,n({}),n([]),n(n)];for(var i=2&r&&e;"object"==typeof i&&!~t.indexOf(i);i=n(i))Object.getOwnPropertyNames(i).forEach(function(t){u[t]=function(){return e[t]}});return u.default=function(){return e},s.d(o,u),o},s.d=function(e,t){for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.f={},s.e=function(e){return Promise.all(Object.keys(s.f).reduce(function(t,n){return s.f[n](e,t),t},[]))},s.u=function(e){return"static/chunks/"+e+".2b6536d53b303d15.js"},s.miniCssF=function(e){return"static/css/ec1d302aa85c53c3.css"},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},o="_N_E:",s.l=function(e,t,n,u){if(r[e]){r[e].push(t);return}if(void 0!==n)for(var i,c,f=document.getElementsByTagName("script"),a=0;a<f.length;a++){var l=f[a];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==o+n){i=l;break}}i||(c=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,s.nc&&i.setAttribute("nonce",s.nc),i.setAttribute("data-webpack",o+n),i.src=s.tu(e)),r[e]=[t];var d=function(t,n){i.onerror=i.onload=null,clearTimeout(p);var o=r[e];if(delete r[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach(function(e){return e(n)}),t)return t(n)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=d.bind(null,i.onerror),i.onload=d.bind(null,i.onload),c&&document.head.appendChild(i)},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.tt=function(){return void 0===u&&(u={createScriptURL:function(e){return e}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(u=trustedTypes.createPolicy("nextjs#bundler",u))),u},s.tu=function(e){return s.tt().createScriptURL(e)},s.p="/_next/",i={272:0},s.f.j=function(e,t){var n=s.o(i,e)?i[e]:void 0;if(0!==n){if(n)t.push(n[2]);else if(272!=e){var r=new Promise(function(t,r){n=i[e]=[t,r]});t.push(n[2]=r);var o=s.p+s.u(e),u=Error();s.l(o,function(t){if(s.o(i,e)&&(0!==(n=i[e])&&(i[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;u.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",u.name="ChunkLoadError",u.type=r,u.request=o,n[1](u)}},"chunk-"+e,e)}else i[e]=0}},s.O.j=function(e){return 0===i[e]},c=function(e,t){var n,r,o=t[0],u=t[1],c=t[2],f=0;if(o.some(function(e){return 0!==i[e]})){for(n in u)s.o(u,n)&&(s.m[n]=u[n]);if(c)var a=c(s)}for(e&&e(t);f<o.length;f++)r=o[f],s.o(i,r)&&i[r]&&i[r][0](),i[r]=0;return s.O(a)},(f=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(c.bind(null,0)),f.push=c.bind(null,f.push.bind(f)),s.nc=void 0}();
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,12 +1,12 @@
|
|||
1:HL["/_next/static/media/86fdec36ddd9097e-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
2:HL["/_next/static/media/c9a5bc6a7c948fb0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
3:HL["/_next/static/css/2b051a9b83c80bf9.css","style"]
|
||||
0:["QrHYrv6IM9fXxh7mpanWB",[[["",{"children":["api",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],"$L4",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/2b051a9b83c80bf9.css","precedence":"next"}]],"$L5"]]]]
|
||||
6:I{"id":5925,"chunks":["400:static/chunks/400-bab9e88e0219f9f5.js","406:static/chunks/406-35481e1b86c5b377.js","362:static/chunks/362-ae0994d279f3f3bb.js","563:static/chunks/563-52218f82bb9eb225.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-f087fba7a4279e51.js"],"name":"Toaster","async":false}
|
||||
7:I{"id":78495,"chunks":["400:static/chunks/400-bab9e88e0219f9f5.js","406:static/chunks/406-35481e1b86c5b377.js","362:static/chunks/362-ae0994d279f3f3bb.js","563:static/chunks/563-52218f82bb9eb225.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-f087fba7a4279e51.js"],"name":"Providers","async":false}
|
||||
8:I{"id":79446,"chunks":["400:static/chunks/400-bab9e88e0219f9f5.js","406:static/chunks/406-35481e1b86c5b377.js","362:static/chunks/362-ae0994d279f3f3bb.js","563:static/chunks/563-52218f82bb9eb225.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-f087fba7a4279e51.js"],"name":"Header","async":false}
|
||||
9:I{"id":81443,"chunks":["272:static/chunks/webpack-04ed420267a761a9.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
|
||||
a:I{"id":18639,"chunks":["272:static/chunks/webpack-04ed420267a761a9.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
|
||||
3:HL["/_next/static/css/ec1d302aa85c53c3.css","style"]
|
||||
0:["ie_20wEIgQnZFxy1-N2Oh",[[["",{"children":["api",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],"$L4",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ec1d302aa85c53c3.css","precedence":"next"}]],"$L5"]]]]
|
||||
6:I{"id":5925,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","362:static/chunks/362-87396568076e34f1.js","536:static/chunks/536-ac1918586623b8f8.js","406:static/chunks/406-35481e1b86c5b377.js","396:static/chunks/396-28aae48ee9582229.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-6289fba2f8cf7457.js"],"name":"Toaster","async":false}
|
||||
7:I{"id":78495,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","362:static/chunks/362-87396568076e34f1.js","536:static/chunks/536-ac1918586623b8f8.js","406:static/chunks/406-35481e1b86c5b377.js","396:static/chunks/396-28aae48ee9582229.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-6289fba2f8cf7457.js"],"name":"Providers","async":false}
|
||||
8:I{"id":11486,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","362:static/chunks/362-87396568076e34f1.js","536:static/chunks/536-ac1918586623b8f8.js","406:static/chunks/406-35481e1b86c5b377.js","396:static/chunks/396-28aae48ee9582229.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-6289fba2f8cf7457.js"],"name":"Header","async":false}
|
||||
9:I{"id":81443,"chunks":["272:static/chunks/webpack-ea3be9ec3294ba31.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
|
||||
a:I{"id":18639,"chunks":["272:static/chunks/webpack-ea3be9ec3294ba31.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
|
||||
5:[["$","meta","0",{"charSet":"utf-8"}],["$","title","1",{"children":"Tabby - API"}],["$","meta","2",{"name":"description","content":"Tabby, an opensource, self-hosted AI coding assistant."}],["$","meta","3",{"name":"theme-color","media":"(prefers-color-scheme: light)","content":"white"}],["$","meta","4",{"name":"theme-color","media":"(prefers-color-scheme: dark)","content":"black"}],["$","meta","5",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","6",{"name":"next-size-adjust"}]]
|
||||
4:[null,["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{}],["$","body",null,{"className":"font-sans antialiased __variable_e66fe9 __variable_bd9c35","children":[["$","$L6",null,{}],["$","$L7",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"children":[["$","div",null,{"className":"flex min-h-screen flex-col","children":[["$","$L8",null,{}],["$","main",null,{"className":"flex flex-1 flex-col bg-muted/50","children":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"childProp":{"current":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children","api","children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","childProp":{"current":["$Lb",["$","iframe",null,{"className":"grow","src":"/swagger-ui"}],null],"segment":"__PAGE__"},"styles":[]}],"segment":"api"},"styles":[]}]}]]}],null]}]]}]]}],null]
|
||||
b:null
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,15 @@
|
|||
1:HL["/_next/static/media/86fdec36ddd9097e-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
2:HL["/_next/static/media/c9a5bc6a7c948fb0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
3:HL["/_next/static/css/ec1d302aa85c53c3.css","style"]
|
||||
0:["ie_20wEIgQnZFxy1-N2Oh",[[["",{"children":["dashboard",{"children":["home",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],"$L4",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ec1d302aa85c53c3.css","precedence":"next"}]],"$L5"]]]]
|
||||
6:I{"id":5925,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","362:static/chunks/362-87396568076e34f1.js","536:static/chunks/536-ac1918586623b8f8.js","406:static/chunks/406-35481e1b86c5b377.js","396:static/chunks/396-28aae48ee9582229.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-6289fba2f8cf7457.js"],"name":"Toaster","async":false}
|
||||
7:I{"id":78495,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","362:static/chunks/362-87396568076e34f1.js","536:static/chunks/536-ac1918586623b8f8.js","406:static/chunks/406-35481e1b86c5b377.js","396:static/chunks/396-28aae48ee9582229.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-6289fba2f8cf7457.js"],"name":"Providers","async":false}
|
||||
8:I{"id":11486,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","362:static/chunks/362-87396568076e34f1.js","536:static/chunks/536-ac1918586623b8f8.js","406:static/chunks/406-35481e1b86c5b377.js","396:static/chunks/396-28aae48ee9582229.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-6289fba2f8cf7457.js"],"name":"Header","async":false}
|
||||
9:I{"id":81443,"chunks":["272:static/chunks/webpack-ea3be9ec3294ba31.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
|
||||
a:I{"id":18639,"chunks":["272:static/chunks/webpack-ea3be9ec3294ba31.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
|
||||
b:I{"id":79744,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","396:static/chunks/396-28aae48ee9582229.js","663:static/chunks/app/dashboard/layout-9b2ef3995d47740e.js"],"name":"","async":false}
|
||||
d:I{"id":65146,"chunks":["272:static/chunks/webpack-ea3be9ec3294ba31.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
|
||||
e:I{"id":70406,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","362:static/chunks/362-87396568076e34f1.js","536:static/chunks/536-ac1918586623b8f8.js","703:static/chunks/703-35aa8c1eaf8df6ef.js","894:static/chunks/894-f0d1adefd8c6331e.js","883:static/chunks/app/dashboard/home/page-4eb22256bfa93a96.js"],"name":"","async":false}
|
||||
5:[["$","meta","0",{"charSet":"utf-8"}],["$","title","1",{"children":"Tabby - Dashboard"}],["$","meta","2",{"name":"description","content":"Tabby, an opensource, self-hosted AI coding assistant."}],["$","meta","3",{"name":"theme-color","media":"(prefers-color-scheme: light)","content":"white"}],["$","meta","4",{"name":"theme-color","media":"(prefers-color-scheme: dark)","content":"black"}],["$","meta","5",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","6",{"name":"next-size-adjust"}]]
|
||||
4:[null,["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{}],["$","body",null,{"className":"font-sans antialiased __variable_e66fe9 __variable_bd9c35","children":[["$","$L6",null,{}],["$","$L7",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"children":[["$","div",null,{"className":"flex min-h-screen flex-col","children":[["$","$L8",null,{}],["$","main",null,{"className":"flex flex-1 flex-col bg-muted/50","children":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"childProp":{"current":[null,["$","$Lb",null,{"className":"flex-1","children":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","childProp":{"current":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","home","children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","childProp":{"current":["$Lc",["$","$Ld",null,{"propsForComponent":{"params":{}},"Component":"$e"}],null],"segment":"__PAGE__"},"styles":[]}],"segment":"home"},"styles":[]}]}],null],"segment":"dashboard"},"styles":[]}]}]]}],null]}]]}]]}],null]
|
||||
c:null
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,15 @@
|
|||
1:HL["/_next/static/media/86fdec36ddd9097e-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
2:HL["/_next/static/media/c9a5bc6a7c948fb0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
3:HL["/_next/static/css/ec1d302aa85c53c3.css","style"]
|
||||
0:["ie_20wEIgQnZFxy1-N2Oh",[[["",{"children":["dashboard",{"children":["runners",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],"$L4",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ec1d302aa85c53c3.css","precedence":"next"}]],"$L5"]]]]
|
||||
6:I{"id":5925,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","362:static/chunks/362-87396568076e34f1.js","536:static/chunks/536-ac1918586623b8f8.js","406:static/chunks/406-35481e1b86c5b377.js","396:static/chunks/396-28aae48ee9582229.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-6289fba2f8cf7457.js"],"name":"Toaster","async":false}
|
||||
7:I{"id":78495,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","362:static/chunks/362-87396568076e34f1.js","536:static/chunks/536-ac1918586623b8f8.js","406:static/chunks/406-35481e1b86c5b377.js","396:static/chunks/396-28aae48ee9582229.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-6289fba2f8cf7457.js"],"name":"Providers","async":false}
|
||||
8:I{"id":11486,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","362:static/chunks/362-87396568076e34f1.js","536:static/chunks/536-ac1918586623b8f8.js","406:static/chunks/406-35481e1b86c5b377.js","396:static/chunks/396-28aae48ee9582229.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-6289fba2f8cf7457.js"],"name":"Header","async":false}
|
||||
9:I{"id":81443,"chunks":["272:static/chunks/webpack-ea3be9ec3294ba31.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
|
||||
a:I{"id":18639,"chunks":["272:static/chunks/webpack-ea3be9ec3294ba31.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
|
||||
b:I{"id":79744,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","396:static/chunks/396-28aae48ee9582229.js","663:static/chunks/app/dashboard/layout-9b2ef3995d47740e.js"],"name":"","async":false}
|
||||
d:I{"id":65146,"chunks":["272:static/chunks/webpack-ea3be9ec3294ba31.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
|
||||
e:I{"id":93203,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","362:static/chunks/362-87396568076e34f1.js","454:static/chunks/app/dashboard/runners/page-5a19d3435b2e9dae.js"],"name":"","async":false}
|
||||
5:[["$","meta","0",{"charSet":"utf-8"}],["$","title","1",{"children":"Tabby - Dashboard"}],["$","meta","2",{"name":"description","content":"Tabby, an opensource, self-hosted AI coding assistant."}],["$","meta","3",{"name":"theme-color","media":"(prefers-color-scheme: light)","content":"white"}],["$","meta","4",{"name":"theme-color","media":"(prefers-color-scheme: dark)","content":"black"}],["$","meta","5",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","6",{"name":"next-size-adjust"}]]
|
||||
4:[null,["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{}],["$","body",null,{"className":"font-sans antialiased __variable_e66fe9 __variable_bd9c35","children":[["$","$L6",null,{}],["$","$L7",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"children":[["$","div",null,{"className":"flex min-h-screen flex-col","children":[["$","$L8",null,{}],["$","main",null,{"className":"flex flex-1 flex-col bg-muted/50","children":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"childProp":{"current":[null,["$","$Lb",null,{"className":"flex-1","children":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","childProp":{"current":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children","dashboard","children","runners","children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","childProp":{"current":["$Lc",["$","$Ld",null,{"propsForComponent":{"params":{}},"Component":"$e"}],null],"segment":"__PAGE__"},"styles":[]}],"segment":"runners"},"styles":[]}]}],null],"segment":"dashboard"},"styles":[]}]}]]}],null]}]]}]]}],null]
|
||||
c:null
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,14 +1,13 @@
|
|||
1:HL["/_next/static/media/86fdec36ddd9097e-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
2:HL["/_next/static/media/c9a5bc6a7c948fb0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
3:HL["/_next/static/css/2b051a9b83c80bf9.css","style"]
|
||||
0:["QrHYrv6IM9fXxh7mpanWB",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],"$L4",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/2b051a9b83c80bf9.css","precedence":"next"}]],"$L5"]]]]
|
||||
6:I{"id":5925,"chunks":["400:static/chunks/400-bab9e88e0219f9f5.js","406:static/chunks/406-35481e1b86c5b377.js","362:static/chunks/362-ae0994d279f3f3bb.js","563:static/chunks/563-52218f82bb9eb225.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-f087fba7a4279e51.js"],"name":"Toaster","async":false}
|
||||
7:I{"id":78495,"chunks":["400:static/chunks/400-bab9e88e0219f9f5.js","406:static/chunks/406-35481e1b86c5b377.js","362:static/chunks/362-ae0994d279f3f3bb.js","563:static/chunks/563-52218f82bb9eb225.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-f087fba7a4279e51.js"],"name":"Providers","async":false}
|
||||
8:I{"id":79446,"chunks":["400:static/chunks/400-bab9e88e0219f9f5.js","406:static/chunks/406-35481e1b86c5b377.js","362:static/chunks/362-ae0994d279f3f3bb.js","563:static/chunks/563-52218f82bb9eb225.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-f087fba7a4279e51.js"],"name":"Header","async":false}
|
||||
9:I{"id":81443,"chunks":["272:static/chunks/webpack-04ed420267a761a9.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
|
||||
a:I{"id":18639,"chunks":["272:static/chunks/webpack-04ed420267a761a9.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
|
||||
c:I{"id":65146,"chunks":["272:static/chunks/webpack-04ed420267a761a9.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
|
||||
d:I{"id":25454,"chunks":["400:static/chunks/400-bab9e88e0219f9f5.js","362:static/chunks/362-ae0994d279f3f3bb.js","703:static/chunks/703-35aa8c1eaf8df6ef.js","894:static/chunks/894-f0d1adefd8c6331e.js","931:static/chunks/app/page-478c8032840b58db.js"],"name":"","async":false}
|
||||
4:[null,["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{}],["$","body",null,{"className":"font-sans antialiased __variable_e66fe9 __variable_bd9c35","children":[["$","$L6",null,{}],["$","$L7",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"children":[["$","div",null,{"className":"flex min-h-screen flex-col","children":[["$","$L8",null,{}],["$","main",null,{"className":"flex flex-1 flex-col bg-muted/50","children":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"childProp":{"current":["$Lb",["$","$Lc",null,{"propsForComponent":{"params":{}},"Component":"$d"}],null],"segment":"__PAGE__"},"styles":[]}]}]]}],null]}]]}]]}],null]
|
||||
5:[["$","meta","0",{"charSet":"utf-8"}],["$","title","1",{"children":"Tabby - Home"}],["$","meta","2",{"name":"description","content":"Tabby, an opensource, self-hosted AI coding assistant."}],["$","meta","3",{"name":"theme-color","media":"(prefers-color-scheme: light)","content":"white"}],["$","meta","4",{"name":"theme-color","media":"(prefers-color-scheme: dark)","content":"black"}],["$","meta","5",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","6",{"name":"next-size-adjust"}]]
|
||||
3:HL["/_next/static/css/ec1d302aa85c53c3.css","style"]
|
||||
0:["ie_20wEIgQnZFxy1-N2Oh",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],"$L4",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ec1d302aa85c53c3.css","precedence":"next"}]],"$L5"]]]]
|
||||
6:I{"id":5925,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","362:static/chunks/362-87396568076e34f1.js","536:static/chunks/536-ac1918586623b8f8.js","406:static/chunks/406-35481e1b86c5b377.js","396:static/chunks/396-28aae48ee9582229.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-6289fba2f8cf7457.js"],"name":"Toaster","async":false}
|
||||
7:I{"id":78495,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","362:static/chunks/362-87396568076e34f1.js","536:static/chunks/536-ac1918586623b8f8.js","406:static/chunks/406-35481e1b86c5b377.js","396:static/chunks/396-28aae48ee9582229.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-6289fba2f8cf7457.js"],"name":"Providers","async":false}
|
||||
8:I{"id":11486,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","362:static/chunks/362-87396568076e34f1.js","536:static/chunks/536-ac1918586623b8f8.js","406:static/chunks/406-35481e1b86c5b377.js","396:static/chunks/396-28aae48ee9582229.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-6289fba2f8cf7457.js"],"name":"Header","async":false}
|
||||
9:I{"id":81443,"chunks":["272:static/chunks/webpack-ea3be9ec3294ba31.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
|
||||
a:I{"id":18639,"chunks":["272:static/chunks/webpack-ea3be9ec3294ba31.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
|
||||
5:[["$","meta","0",{"charSet":"utf-8"}],["$","title","1",{"children":"Tabby"}],["$","meta","2",{"name":"description","content":"Tabby, an opensource, self-hosted AI coding assistant."}],["$","meta","3",{"name":"theme-color","media":"(prefers-color-scheme: light)","content":"white"}],["$","meta","4",{"name":"theme-color","media":"(prefers-color-scheme: dark)","content":"black"}],["$","meta","5",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","6",{"name":"next-size-adjust"}]]
|
||||
4:[null,["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{}],["$","body",null,{"className":"font-sans antialiased __variable_e66fe9 __variable_bd9c35","children":[["$","$L6",null,{}],["$","$L7",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"children":[["$","div",null,{"className":"flex min-h-screen flex-col","children":[["$","$L8",null,{}],["$","main",null,{"className":"flex flex-1 flex-col bg-muted/50","children":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"childProp":{"current":["$Lb","$Lc",null],"segment":"__PAGE__"},"styles":[]}]}]]}],null]}]]}]]}],null]
|
||||
c:E{"digest":"NEXT_REDIRECT;replace;/dashboard/home;false"}
|
||||
b:null
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,13 +1,13 @@
|
|||
1:HL["/_next/static/media/86fdec36ddd9097e-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
2:HL["/_next/static/media/c9a5bc6a7c948fb0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||
3:HL["/_next/static/css/2b051a9b83c80bf9.css","style"]
|
||||
0:["QrHYrv6IM9fXxh7mpanWB",[[["",{"children":["playground",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],"$L4",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/2b051a9b83c80bf9.css","precedence":"next"}]],"$L5"]]]]
|
||||
6:I{"id":5925,"chunks":["400:static/chunks/400-bab9e88e0219f9f5.js","406:static/chunks/406-35481e1b86c5b377.js","362:static/chunks/362-ae0994d279f3f3bb.js","563:static/chunks/563-52218f82bb9eb225.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-f087fba7a4279e51.js"],"name":"Toaster","async":false}
|
||||
7:I{"id":78495,"chunks":["400:static/chunks/400-bab9e88e0219f9f5.js","406:static/chunks/406-35481e1b86c5b377.js","362:static/chunks/362-ae0994d279f3f3bb.js","563:static/chunks/563-52218f82bb9eb225.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-f087fba7a4279e51.js"],"name":"Providers","async":false}
|
||||
8:I{"id":79446,"chunks":["400:static/chunks/400-bab9e88e0219f9f5.js","406:static/chunks/406-35481e1b86c5b377.js","362:static/chunks/362-ae0994d279f3f3bb.js","563:static/chunks/563-52218f82bb9eb225.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-f087fba7a4279e51.js"],"name":"Header","async":false}
|
||||
9:I{"id":81443,"chunks":["272:static/chunks/webpack-04ed420267a761a9.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
|
||||
a:I{"id":18639,"chunks":["272:static/chunks/webpack-04ed420267a761a9.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
|
||||
c:I{"id":12202,"chunks":["400:static/chunks/400-bab9e88e0219f9f5.js","406:static/chunks/406-35481e1b86c5b377.js","28:static/chunks/28-27d0fe8a88c4cbfb.js","894:static/chunks/894-f0d1adefd8c6331e.js","383:static/chunks/app/playground/page-b742820613e86585.js"],"name":"Chat","async":false}
|
||||
3:HL["/_next/static/css/ec1d302aa85c53c3.css","style"]
|
||||
0:["ie_20wEIgQnZFxy1-N2Oh",[[["",{"children":["playground",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],"$L4",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ec1d302aa85c53c3.css","precedence":"next"}]],"$L5"]]]]
|
||||
6:I{"id":5925,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","362:static/chunks/362-87396568076e34f1.js","536:static/chunks/536-ac1918586623b8f8.js","406:static/chunks/406-35481e1b86c5b377.js","396:static/chunks/396-28aae48ee9582229.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-6289fba2f8cf7457.js"],"name":"Toaster","async":false}
|
||||
7:I{"id":78495,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","362:static/chunks/362-87396568076e34f1.js","536:static/chunks/536-ac1918586623b8f8.js","406:static/chunks/406-35481e1b86c5b377.js","396:static/chunks/396-28aae48ee9582229.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-6289fba2f8cf7457.js"],"name":"Providers","async":false}
|
||||
8:I{"id":11486,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","362:static/chunks/362-87396568076e34f1.js","536:static/chunks/536-ac1918586623b8f8.js","406:static/chunks/406-35481e1b86c5b377.js","396:static/chunks/396-28aae48ee9582229.js","894:static/chunks/894-f0d1adefd8c6331e.js","185:static/chunks/app/layout-6289fba2f8cf7457.js"],"name":"Header","async":false}
|
||||
9:I{"id":81443,"chunks":["272:static/chunks/webpack-ea3be9ec3294ba31.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
|
||||
a:I{"id":18639,"chunks":["272:static/chunks/webpack-ea3be9ec3294ba31.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
|
||||
c:I{"id":12202,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","536:static/chunks/536-ac1918586623b8f8.js","406:static/chunks/406-35481e1b86c5b377.js","28:static/chunks/28-f3f58cacc7da57b1.js","894:static/chunks/894-f0d1adefd8c6331e.js","383:static/chunks/app/playground/page-6f64c606c3737aeb.js"],"name":"Chat","async":false}
|
||||
5:[["$","meta","0",{"charSet":"utf-8"}],["$","title","1",{"children":"Tabby - Playground"}],["$","meta","2",{"name":"description","content":"Tabby, an opensource, self-hosted AI coding assistant."}],["$","meta","3",{"name":"theme-color","media":"(prefers-color-scheme: light)","content":"white"}],["$","meta","4",{"name":"theme-color","media":"(prefers-color-scheme: dark)","content":"black"}],["$","meta","5",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","6",{"name":"next-size-adjust"}]]
|
||||
4:[null,["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{}],["$","body",null,{"className":"font-sans antialiased __variable_e66fe9 __variable_bd9c35","children":[["$","$L6",null,{}],["$","$L7",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"children":[["$","div",null,{"className":"flex min-h-screen flex-col","children":[["$","$L8",null,{}],["$","main",null,{"className":"flex flex-1 flex-col bg-muted/50","children":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"childProp":{"current":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children","playground","children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","childProp":{"current":["$Lb",["$","$Lc",null,{"id":"GG5oy2I"}],null],"segment":"__PAGE__"},"styles":[]}],"segment":"playground"},"styles":[]}]}]]}],null]}]]}]]}],null]
|
||||
4:[null,["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{}],["$","body",null,{"className":"font-sans antialiased __variable_e66fe9 __variable_bd9c35","children":[["$","$L6",null,{}],["$","$L7",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"children":[["$","div",null,{"className":"flex min-h-screen flex-col","children":[["$","$L8",null,{}],["$","main",null,{"className":"flex flex-1 flex-col bg-muted/50","children":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"childProp":{"current":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children","playground","children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","childProp":{"current":["$Lb",["$","$Lc",null,{"id":"5kvurMY"}],null],"segment":"__PAGE__"},"styles":[]}],"segment":"playground"},"styles":[]}]}]]}],null]}]]}]]}],null]
|
||||
b:null
|
||||
|
|
|
|||
|
|
@ -0,0 +1,99 @@
|
|||
'use client'
|
||||
|
||||
import { cn } from '@/lib/utils'
|
||||
import { VariantProps, cva } from 'class-variance-authority'
|
||||
import Link from 'next/link'
|
||||
import { usePathname } from 'next/navigation'
|
||||
|
||||
export interface SidebarProps {
|
||||
children: React.ReactNode
|
||||
className?: string
|
||||
}
|
||||
|
||||
export default function Sidebar({ children, className }: SidebarProps) {
|
||||
return (
|
||||
<div
|
||||
className={cn('grid overflow-hidden lg:grid-cols-[280px_1fr]', className)}
|
||||
>
|
||||
<div className="hidden border-r bg-zinc-100/40 dark:bg-zinc-800/40 lg:block">
|
||||
<div className="flex flex-col gap-2">
|
||||
<div className="h-[12px]"></div>
|
||||
<div className="flex-1">
|
||||
<nav className="grid items-start gap-4 px-4 text-sm font-medium">
|
||||
<SidebarButton href="/dashboard/home">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
className=" h-4 w-4"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth="2"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" />
|
||||
<polyline points="9 22 9 12 15 12 15 22" />
|
||||
</svg>
|
||||
Home
|
||||
</SidebarButton>
|
||||
<SidebarButton href="/dashboard/runners">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
className=" h-4 w-4"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth="2"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z" />
|
||||
<path d="m6.08 9.5-3.5 1.6a1 1 0 0 0 0 1.81l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9a1 1 0 0 0 0-1.83l-3.5-1.59" />
|
||||
<path d="m6.08 14.5-3.5 1.6a1 1 0 0 0 0 1.81l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9a1 1 0 0 0 0-1.83l-3.5-1.59" />
|
||||
</svg>
|
||||
Runners
|
||||
</SidebarButton>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex flex-1 flex-col overflow-auto p-4 lg:p-16">
|
||||
{children}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
interface SidebarButtonProps {
|
||||
href: string
|
||||
children: React.ReactNode
|
||||
}
|
||||
|
||||
const linkVariants = cva(
|
||||
'flex items-center gap-3 rounded-lg px-3 py-2 text-zinc-900 transition-all hover:text-zinc-900 dark:text-zinc-50 dark:hover:text-zinc-50',
|
||||
{
|
||||
variants: {
|
||||
state: {
|
||||
selected: 'bg-zinc-200 dark:bg-zinc-800',
|
||||
'not-selected': ''
|
||||
}
|
||||
},
|
||||
defaultVariants: {
|
||||
state: 'not-selected'
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
function SidebarButton({ href, children }: SidebarButtonProps) {
|
||||
const pathname = usePathname()
|
||||
const state = pathname == href ? 'selected' : 'not-selected'
|
||||
return (
|
||||
<Link className={linkVariants({ state })} href={href}>
|
||||
{children}
|
||||
</Link>
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,118 @@
|
|||
'use client'
|
||||
|
||||
import { buttonVariants } from '@/components/ui/button'
|
||||
import {
|
||||
Dialog,
|
||||
DialogContent,
|
||||
DialogDescription,
|
||||
DialogFooter,
|
||||
DialogHeader,
|
||||
DialogTitle
|
||||
} from '@/components/ui/dialog'
|
||||
import { IconSlack } from '@/components/ui/icons'
|
||||
import { Separator } from '@/components/ui/separator'
|
||||
import { useHealth } from '@/lib/hooks/use-health'
|
||||
import { PropsWithChildren, useEffect, useState } from 'react'
|
||||
|
||||
const COMMUNITY_DIALOG_SHOWN_KEY = 'community-dialog-shown'
|
||||
|
||||
export default function Home() {
|
||||
const [open, setOpen] = useState(false)
|
||||
useEffect(() => {
|
||||
if (!localStorage.getItem(COMMUNITY_DIALOG_SHOWN_KEY)) {
|
||||
setOpen(true)
|
||||
localStorage.setItem(COMMUNITY_DIALOG_SHOWN_KEY, 'true')
|
||||
}
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<div>
|
||||
<MainPanel />
|
||||
<Dialog open={open} onOpenChange={setOpen}>
|
||||
<DialogContent>
|
||||
<DialogHeader className="gap-3">
|
||||
<DialogTitle>Join the Tabby community</DialogTitle>
|
||||
<DialogDescription>
|
||||
Connect with other contributors building Tabby. Share knowledge,
|
||||
get help, and contribute to the open-source project.
|
||||
</DialogDescription>
|
||||
</DialogHeader>
|
||||
<DialogFooter className="sm:justify-start">
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://join.slack.com/t/tabbycommunity/shared_invite/zt-1xeiddizp-bciR2RtFTaJ37RBxr8VxpA"
|
||||
className={buttonVariants()}
|
||||
>
|
||||
<IconSlack className="-ml-2 h-8 w-8" />
|
||||
Join us on Slack
|
||||
</a>
|
||||
</DialogFooter>
|
||||
</DialogContent>
|
||||
</Dialog>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
interface LinkProps {
|
||||
href: string
|
||||
}
|
||||
|
||||
function Link({ href, children }: PropsWithChildren<LinkProps>) {
|
||||
return (
|
||||
<a target="_blank" href={href} className="underline">
|
||||
{children}
|
||||
</a>
|
||||
)
|
||||
}
|
||||
|
||||
function toBadgeString(str: string) {
|
||||
return encodeURIComponent(str.replaceAll('-', '--'))
|
||||
}
|
||||
|
||||
function MainPanel() {
|
||||
const { data: healthInfo } = useHealth()
|
||||
|
||||
if (!healthInfo) return
|
||||
|
||||
return (
|
||||
<div className="flex w-full flex-col gap-3">
|
||||
<h1>
|
||||
<span className="font-bold">Congratulations</span>, your tabby instance
|
||||
is running!
|
||||
</h1>
|
||||
<span className="flex flex-wrap gap-1">
|
||||
<a
|
||||
target="_blank"
|
||||
href={`https://github.com/TabbyML/tabby/releases/tag/${healthInfo.version.git_describe}`}
|
||||
>
|
||||
<img
|
||||
src={`https://img.shields.io/badge/version-${toBadgeString(
|
||||
healthInfo.version.git_describe
|
||||
)}-green`}
|
||||
/>
|
||||
</a>
|
||||
</span>
|
||||
|
||||
<Separator />
|
||||
|
||||
<span>
|
||||
You can find our documentation{' '}
|
||||
<Link href="https://tabby.tabbyml.com/docs/getting-started">here</Link>.
|
||||
<ul className="mt-2">
|
||||
<li>
|
||||
💻{' '}
|
||||
<Link href="https://tabby.tabbyml.com/docs/extensions/">
|
||||
IDE/Editor Extensions
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
⚙️{' '}
|
||||
<Link href="https://tabby.tabbyml.com/docs/configuration">
|
||||
Configuration
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</span>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
import { Metadata } from 'next'
|
||||
import Sidebar from './components/sidebar'
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Dashboard'
|
||||
}
|
||||
|
||||
interface DashboardLayoutProps {
|
||||
children: React.ReactNode
|
||||
}
|
||||
|
||||
export default function RootLayout({ children }: DashboardLayoutProps) {
|
||||
return <Sidebar className="flex-1">{children}</Sidebar>
|
||||
}
|
||||
|
|
@ -0,0 +1,126 @@
|
|||
import { CardTitle, CardHeader, CardContent, Card } from '@/components/ui/card'
|
||||
import { HealthInfo } from '@/lib/hooks/use-health'
|
||||
|
||||
interface RunnerCardProps {
|
||||
title: string
|
||||
health: HealthInfo
|
||||
}
|
||||
|
||||
export default function RunnerCard({ title, health }: RunnerCardProps) {
|
||||
return (
|
||||
<Card className="rounded-xl shadow-md">
|
||||
<CardHeader className="p-0 px-4 pb-2 pt-4">
|
||||
<CardTitle className="text-md font-semibold">{title}</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="flex flex-col gap-2 p-0 px-4 pb-4 pt-2">
|
||||
<Info>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
className=" h-5 w-5 text-gray-400"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth="2"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z" />
|
||||
<polyline points="14 2 14 8 20 8" />
|
||||
<path d="m10 13-2 2 2 2" />
|
||||
<path d="m14 17 2-2-2-2" />
|
||||
</svg>
|
||||
<p className="ml-2">{health.model}</p>
|
||||
</Info>
|
||||
{health.chat_model && (
|
||||
<Info>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
className=" h-5 w-5 text-gray-400"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
strokeWidth="2"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
>
|
||||
<path d="M14 9a2 2 0 0 1-2 2H6l-4 4V4c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2v5Z" />
|
||||
<path d="M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1" />
|
||||
</svg>
|
||||
<p className="ml-2">{health.chat_model}</p>
|
||||
</Info>
|
||||
)}
|
||||
<Info>
|
||||
<svg
|
||||
className=" h-5 w-5 text-gray-400"
|
||||
fill="none"
|
||||
height="24"
|
||||
stroke="currentColor"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<rect height="16" rx="2" width="16" x="4" y="4" />
|
||||
<rect height="6" width="6" x="9" y="9" />
|
||||
<path d="M15 2v2" />
|
||||
<path d="M15 20v2" />
|
||||
<path d="M2 15h2" />
|
||||
<path d="M2 9h2" />
|
||||
<path d="M20 15h2" />
|
||||
<path d="M20 9h2" />
|
||||
<path d="M9 2v2" />
|
||||
<path d="M9 20v2" />
|
||||
</svg>
|
||||
<p className="ml-2">
|
||||
{health.cpu_info} ({health.cpu_count} cores)
|
||||
</p>
|
||||
</Info>
|
||||
{health.cuda_devices.map((x, i) => (
|
||||
<Info key={i}>
|
||||
<svg
|
||||
className=" h-5 w-5 text-gray-400"
|
||||
fill="none"
|
||||
height="24"
|
||||
stroke="currentColor"
|
||||
strokeLinecap="round"
|
||||
strokeLinejoin="round"
|
||||
strokeWidth="2"
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path d="M6 19v-3" />
|
||||
<path d="M10 19v-3" />
|
||||
<path d="M14 19v-3" />
|
||||
<path d="M18 19v-3" />
|
||||
<path d="M8 11V9" />
|
||||
<path d="M16 11V9" />
|
||||
<path d="M12 11V9" />
|
||||
<path d="M2 15h20" />
|
||||
<path d="M2 7a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v1.1a2 2 0 0 0 0 3.837V17a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-5.1a2 2 0 0 0 0-3.837Z" />
|
||||
</svg>
|
||||
<p className="ml-2">{x}</p>
|
||||
</Info>
|
||||
))}
|
||||
</CardContent>
|
||||
</Card>
|
||||
)
|
||||
}
|
||||
|
||||
interface InfoProps {
|
||||
children: React.ReactNode
|
||||
}
|
||||
|
||||
function Info({ children }: InfoProps) {
|
||||
return (
|
||||
<div className="mt-2 flex items-center text-sm text-gray-500">
|
||||
{children}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
'use client'
|
||||
|
||||
import { useHealth } from '@/lib/hooks/use-health'
|
||||
import RunnerCard from './components/runner-card'
|
||||
|
||||
export default function Runners() {
|
||||
const { data: health } = useHealth()
|
||||
|
||||
if (!health) return
|
||||
|
||||
return (
|
||||
<div className="flex h-full w-full items-start justify-start">
|
||||
<RunnerCard title="Local Runner" health={health} />
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
|
@ -11,7 +11,7 @@ import { Header } from '@/components/header'
|
|||
|
||||
export const metadata: Metadata = {
|
||||
title: {
|
||||
default: 'Tabby - Home',
|
||||
default: 'Tabby',
|
||||
template: `Tabby - %s`
|
||||
},
|
||||
description: 'Tabby, an opensource, self-hosted AI coding assistant.',
|
||||
|
|
|
|||
|
|
@ -1,134 +1,5 @@
|
|||
'use client'
|
||||
import { redirect } from 'next/navigation'
|
||||
|
||||
import { buttonVariants } from '@/components/ui/button'
|
||||
import {
|
||||
Dialog,
|
||||
DialogContent,
|
||||
DialogDescription,
|
||||
DialogFooter,
|
||||
DialogHeader,
|
||||
DialogTitle,
|
||||
DialogTrigger
|
||||
} from '@/components/ui/dialog'
|
||||
import { IconSlack } from '@/components/ui/icons'
|
||||
import { Separator } from '@/components/ui/separator'
|
||||
import { useHealth } from '@/lib/hooks/use-health'
|
||||
import { PropsWithChildren, useEffect, useState } from 'react'
|
||||
|
||||
const COMMUNITY_DIALOG_SHOWN_KEY = 'community-dialog-shown'
|
||||
|
||||
export default function IndexPage() {
|
||||
const [open, setOpen] = useState(false)
|
||||
useEffect(() => {
|
||||
if (!localStorage.getItem(COMMUNITY_DIALOG_SHOWN_KEY)) {
|
||||
setOpen(true)
|
||||
localStorage.setItem(COMMUNITY_DIALOG_SHOWN_KEY, 'true')
|
||||
}
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<div className="flex grow items-center justify-center">
|
||||
<MainPanel />
|
||||
<Dialog open={open} onOpenChange={setOpen}>
|
||||
<DialogContent>
|
||||
<DialogHeader className="gap-3">
|
||||
<DialogTitle>Join the Tabby community</DialogTitle>
|
||||
<DialogDescription>
|
||||
Connect with other contributors building Tabby. Share knowledge,
|
||||
get help, and contribute to the open-source project.
|
||||
</DialogDescription>
|
||||
</DialogHeader>
|
||||
<DialogFooter className="sm:justify-start">
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://join.slack.com/t/tabbycommunity/shared_invite/zt-1xeiddizp-bciR2RtFTaJ37RBxr8VxpA"
|
||||
className={buttonVariants()}
|
||||
>
|
||||
<IconSlack className="-ml-2 h-8 w-8" />
|
||||
Join us on Slack
|
||||
</a>
|
||||
</DialogFooter>
|
||||
</DialogContent>
|
||||
</Dialog>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
interface LinkProps {
|
||||
href: string
|
||||
}
|
||||
|
||||
function Link({ href, children }: PropsWithChildren<LinkProps>) {
|
||||
return (
|
||||
<a target="_blank" href={href} className="underline">
|
||||
{children}
|
||||
</a>
|
||||
)
|
||||
}
|
||||
|
||||
function toBadgeString(str: string) {
|
||||
return encodeURIComponent(str.replaceAll('-', '--'))
|
||||
}
|
||||
|
||||
function MainPanel() {
|
||||
const { data: healthInfo } = useHealth()
|
||||
|
||||
if (!healthInfo) return
|
||||
|
||||
return (
|
||||
<div className="flex w-2/3 flex-col gap-3 lg:w-1/3">
|
||||
<h1>
|
||||
<span className="font-bold">Congratulations</span>, your tabby instance
|
||||
is running!
|
||||
</h1>
|
||||
<span className="flex flex-wrap gap-1">
|
||||
<a
|
||||
target="_blank"
|
||||
href={`https://github.com/TabbyML/tabby/releases/tag/${healthInfo.version.git_describe}`}
|
||||
>
|
||||
<img
|
||||
src={`https://img.shields.io/badge/version-${toBadgeString(
|
||||
healthInfo.version.git_describe
|
||||
)}-green`}
|
||||
/>
|
||||
</a>
|
||||
<img
|
||||
src={`https://img.shields.io/badge/device-${healthInfo.device}-blue`}
|
||||
/>
|
||||
<img
|
||||
src={`https://img.shields.io/badge/model-${toBadgeString(
|
||||
healthInfo.model
|
||||
)}-red`}
|
||||
/>
|
||||
{healthInfo.chat_model && (
|
||||
<img
|
||||
src={`https://img.shields.io/badge/chat%20model-${toBadgeString(
|
||||
healthInfo.chat_model
|
||||
)}-orange`}
|
||||
/>
|
||||
)}
|
||||
</span>
|
||||
|
||||
<Separator />
|
||||
|
||||
<span>
|
||||
You can find our documentation{' '}
|
||||
<Link href="https://tabby.tabbyml.com/docs/getting-started">here</Link>.
|
||||
<ul className="mt-2">
|
||||
<li>
|
||||
💻{' '}
|
||||
<Link href="https://tabby.tabbyml.com/docs/extensions/">
|
||||
IDE/Editor Extensions
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
⚙️{' '}
|
||||
<Link href="https://tabby.tabbyml.com/docs/configuration">
|
||||
Configuration
|
||||
</Link>
|
||||
</li>
|
||||
</ul>
|
||||
</span>
|
||||
</div>
|
||||
)
|
||||
export default function () {
|
||||
redirect('/dashboard/home')
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import * as React from 'react'
|
|||
|
||||
import { cn } from '@/lib/utils'
|
||||
import { buttonVariants } from '@/components/ui/button'
|
||||
import { IconGitHub, IconExternalLink, IconNotice } from '@/components/ui/icons'
|
||||
import { IconGitHub, IconNotice } from '@/components/ui/icons'
|
||||
import dynamic from 'next/dynamic'
|
||||
import Link from 'next/link'
|
||||
import { useHealth } from '@/lib/hooks/use-health'
|
||||
|
|
@ -28,7 +28,7 @@ export function Header() {
|
|||
<div className="flex items-center">
|
||||
<ThemeToggle />
|
||||
<Link href="/" className={cn(buttonVariants({ variant: 'link' }))}>
|
||||
Home
|
||||
Dashboard
|
||||
</Link>
|
||||
<Link href="/api" className={cn(buttonVariants({ variant: 'link' }))}>
|
||||
API
|
||||
|
|
|
|||
|
|
@ -0,0 +1,79 @@
|
|||
import * as React from 'react'
|
||||
|
||||
import { cn } from '@/lib/utils'
|
||||
|
||||
const Card = React.forwardRef<
|
||||
HTMLDivElement,
|
||||
React.HTMLAttributes<HTMLDivElement>
|
||||
>(({ className, ...props }, ref) => (
|
||||
<div
|
||||
ref={ref}
|
||||
className={cn(
|
||||
'rounded-lg border bg-card text-card-foreground shadow-sm',
|
||||
className
|
||||
)}
|
||||
{...props}
|
||||
/>
|
||||
))
|
||||
Card.displayName = 'Card'
|
||||
|
||||
const CardHeader = React.forwardRef<
|
||||
HTMLDivElement,
|
||||
React.HTMLAttributes<HTMLDivElement>
|
||||
>(({ className, ...props }, ref) => (
|
||||
<div
|
||||
ref={ref}
|
||||
className={cn('flex flex-col space-y-1.5 p-6', className)}
|
||||
{...props}
|
||||
/>
|
||||
))
|
||||
CardHeader.displayName = 'CardHeader'
|
||||
|
||||
const CardTitle = React.forwardRef<
|
||||
HTMLParagraphElement,
|
||||
React.HTMLAttributes<HTMLHeadingElement>
|
||||
>(({ className, ...props }, ref) => (
|
||||
<h3
|
||||
ref={ref}
|
||||
className={cn(
|
||||
'text-2xl font-semibold leading-none tracking-tight',
|
||||
className
|
||||
)}
|
||||
{...props}
|
||||
/>
|
||||
))
|
||||
CardTitle.displayName = 'CardTitle'
|
||||
|
||||
const CardDescription = React.forwardRef<
|
||||
HTMLParagraphElement,
|
||||
React.HTMLAttributes<HTMLParagraphElement>
|
||||
>(({ className, ...props }, ref) => (
|
||||
<p
|
||||
ref={ref}
|
||||
className={cn('text-sm text-muted-foreground', className)}
|
||||
{...props}
|
||||
/>
|
||||
))
|
||||
CardDescription.displayName = 'CardDescription'
|
||||
|
||||
const CardContent = React.forwardRef<
|
||||
HTMLDivElement,
|
||||
React.HTMLAttributes<HTMLDivElement>
|
||||
>(({ className, ...props }, ref) => (
|
||||
<div ref={ref} className={cn('p-6 pt-0', className)} {...props} />
|
||||
))
|
||||
CardContent.displayName = 'CardContent'
|
||||
|
||||
const CardFooter = React.forwardRef<
|
||||
HTMLDivElement,
|
||||
React.HTMLAttributes<HTMLDivElement>
|
||||
>(({ className, ...props }, ref) => (
|
||||
<div
|
||||
ref={ref}
|
||||
className={cn('flex items-center p-6 pt-0', className)}
|
||||
{...props}
|
||||
/>
|
||||
))
|
||||
CardFooter.displayName = 'CardFooter'
|
||||
|
||||
export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }
|
||||
|
|
@ -8,6 +8,9 @@ export interface HealthInfo {
|
|||
device: string
|
||||
model: string
|
||||
chat_model?: string
|
||||
cpu_info: string
|
||||
cpu_count: number
|
||||
cuda_devices: string[]
|
||||
version: {
|
||||
build_date: string
|
||||
git_describe: string
|
||||
|
|
|
|||
Loading…
Reference in New Issue