feat: encrich home screen info (#628)

r0.4
Meng Zhang 2023-10-24 13:01:14 -07:00 committed by GitHub
parent dcf82d45b5
commit b4842619a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 321 additions and 223 deletions

View File

@ -1,14 +1,102 @@
import { Button, buttonVariants } from "@/components/ui/button"
"use client";
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 { PropsWithChildren, useEffect, useState } from "react";
const COMMUNITY_DIALOG_SHOWN_KEY = "community-dialog-shown";
export default function IndexPage() {
const [healthInfo, setHealthInfo] = useState<HealthInfo | undefined>();
useEffect(() => {
fetchHealth().then(setHealthInfo);
}, []);
const [open, setOpen] = useState(false);
useEffect(() => {
if (!localStorage.getItem(COMMUNITY_DIALOG_SHOWN_KEY)) {
setOpen(true);
localStorage.setItem(COMMUNITY_DIALOG_SHOWN_KEY, "true");
}
}, []);
const gettingStartedMarkDown = `
You can find our documentation [here](https://tabby.tabbyml.com/docs/getting-started).
- 💻 [IDE/Editor Extensions](https://tabby.tabbyml.com/docs/extensions/)
- [Configuration](https://tabby.tabbyml.com/docs/configuration)`;
return <div className="grow flex justify-center items-center">
<div className="w-2/3 lg:w-1/3 flex flex-col gap-3">
<h1 className="text-xl font-bold">Join the Tabby community</h1>
<p>Connect with other contributors building Tabby. Share knowledge, get help, and contribute to the open-source project.</p>
<p>
<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>
</p>
{healthInfo && <>
<h1><span className="font-bold">Congratulations</span>, your tabby instance is running!</h1>
<span className="flex 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`} />
</span>
<Separator />
<p>
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>
</p>
</>
}
</div>
<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 HealthInfo {
device: string,
model: string,
version: {
build_date: string,
git_describe: string,
}
}
async function fetchHealth(): Promise<HealthInfo> {
if (process.env.NODE_ENV === "production") {
const resp = await fetch("/v1/health");
return await resp.json() as HealthInfo;
} else {
return {
"device": "metal",
"model": "TabbyML/StarCoder-1B",
"version": {
"build_date": "2023-10-21",
"git_describe": "v0.3.1",
"git_sha": "d5fdcf3a2cbe0f6b45d6e8ef3255e6a18f840132"
}
} as HealthInfo
}
}
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("-", "--"));
}

View File

@ -54,7 +54,11 @@ export function Header() {
}
async function fetchIsChatEnabled() {
const resp = await fetch("/v1/health");
const json = await resp.json();
return !!json.chat_model;
if (process.env.NODE_ENV === "production") {
const resp = await fetch("/v1/health");
const json = await resp.json();
return !!json.chat_model;
} else {
return true;
}
}

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

View File

@ -0,0 +1 @@
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[376],{15376:function(n,s,e){e.r(s),e.d(s,{ThemeToggle:function(){return c}});var l=e(57437),a=e(2265),i=e(6435),t=e(93023),r=e(84168);function c(){let{setTheme:n,theme:s}=(0,i.F)(),[e,c]=a.useTransition();return(0,l.jsxs)(t.z,{variant:"ghost",size:"icon",onClick:()=>{c(()=>{n("light"===s?"dark":"light")})},children:[s?"dark"===s?(0,l.jsx)(r.C9,{className:"transition-all"}):(0,l.jsx)(r.O3,{className:"transition-all"}):null,(0,l.jsx)("span",{className:"sr-only",children:"Toggle theme"})]})}}}]);

View File

@ -1 +0,0 @@
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[376],{15376:function(n,s,e){e.r(s),e.d(s,{ThemeToggle:function(){return r}});var l=e(57437),a=e(2265),i=e(6435),t=e(93023),o=e(84168);function r(){let{setTheme:n,theme:s}=(0,i.F)(),[e,r]=a.useTransition();return(0,l.jsxs)(t.z,{variant:"ghost",size:"icon",onClick:()=>{r(()=>{n("light"===s?"dark":"light")})},children:[s?"dark"===s?(0,l.jsx)(o.IconMoon,{className:"transition-all"}):(0,l.jsx)(o.IconSun,{className:"transition-all"}):null,(0,l.jsx)("span",{className:"sr-only",children:"Toggle theme"})]})}}}]);

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

View File

@ -0,0 +1 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[185],{35762:function(e,n,r){Promise.resolve().then(r.t.bind(r,58877,23)),Promise.resolve().then(r.bind(r,78963)),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))},78963:function(e,n,r){"use strict";r.r(n),r.d(n,{Header:function(){return h}});var t=r(57437),s=r(2265),i=r(39311),a=r(93023),o=r(84168),d=r(30415),l=r.n(d),c=r(61396),f=r.n(c);let u=l()(()=>r.e(376).then(r.bind(r,15376)).then(e=>e.ThemeToggle),{loadableGenerated:{webpack:()=>[15376]},ssr:!1});function h(){let[e,n]=s.useState(!1);return s.useEffect(()=>{m().then(n)},[]),(0,t.jsxs)("header",{className:"sticky top-0 z-50 flex items-center justify-between w-full h-16 px-4 border-b shrink-0 bg-gradient-to-b from-background/10 via-background/50 to-background/80 backdrop-blur-xl",children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(u,{}),(0,t.jsx)(f(),{href:"/",className:(0,i.cn)((0,a.d)({variant:"link"})),children:"Home"}),e&&(0,t.jsx)(f(),{href:"/playground",className:(0,i.cn)((0,a.d)({variant:"link"})),children:"Playground"})]}),(0,t.jsxs)("div",{className:"flex items-center justify-end space-x-2",children:[(0,t.jsxs)("a",{target:"_blank",href:"https://github.com/TabbyML/tabby",rel:"noopener noreferrer",className:(0,i.cn)((0,a.d)({variant:"outline"})),children:[(0,t.jsx)(o.Mr,{}),(0,t.jsx)("span",{className:"hidden ml-2 md:flex",children:"GitHub"})]}),(0,t.jsxs)("a",{target:"_blank",href:"/swagger-ui",rel:"noopener noreferrer",className:(0,i.cn)((0,a.d)({variant:"outline"})),children:[(0,t.jsx)(o.Tq,{}),(0,t.jsx)("span",{className:"hidden ml-2 md:flex",children:"OpenAPI"})]})]})]})}async function m(){{let e=await fetch("/v1/health"),n=await e.json();return!!n.chat_model}}},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 l},pn:function(){return o},u:function(){return d}});var t=r(57437),s=r(2265),i=r(43212),a=r(39311);let o=i.zt,d=i.fC,l=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},58877:function(){}},function(e){e.O(0,[358,406,832,894,971,864,744],function(){return e(e.s=35762)}),_N_E=e.O()}]);

View File

@ -1 +0,0 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[185],{35762:function(e,n,r){Promise.resolve().then(r.t.bind(r,58877,23)),Promise.resolve().then(r.bind(r,78963)),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))},78963:function(e,n,r){"use strict";r.r(n),r.d(n,{Header:function(){return h}});var t=r(57437),i=r(2265),o=r(39311),s=r(93023),a=r(84168),d=r(30415),c=r.n(d),l=r(61396),u=r.n(l);let f=c()(()=>r.e(376).then(r.bind(r,15376)).then(e=>e.ThemeToggle),{loadableGenerated:{webpack:()=>[15376]},ssr:!1});function h(){let[e,n]=i.useState(!1);return i.useEffect(()=>{m().then(n)},[]),(0,t.jsxs)("header",{className:"sticky top-0 z-50 flex items-center justify-between w-full h-16 px-4 border-b shrink-0 bg-gradient-to-b from-background/10 via-background/50 to-background/80 backdrop-blur-xl",children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(f,{}),(0,t.jsx)(u(),{href:"/",className:(0,o.cn)((0,s.d)({variant:"link"})),children:"Home"}),e&&(0,t.jsx)(u(),{href:"/playground",className:(0,o.cn)((0,s.d)({variant:"link"})),children:"Playground"})]}),(0,t.jsxs)("div",{className:"flex items-center justify-end space-x-2",children:[(0,t.jsxs)("a",{target:"_blank",href:"https://github.com/TabbyML/tabby",rel:"noopener noreferrer",className:(0,o.cn)((0,s.d)({variant:"outline"})),children:[(0,t.jsx)(a.IconGitHub,{}),(0,t.jsx)("span",{className:"hidden ml-2 md:flex",children:"GitHub"})]}),(0,t.jsxs)("a",{target:"_blank",href:"/swagger-ui",rel:"noopener noreferrer",className:(0,o.cn)((0,s.d)({variant:"outline"})),children:[(0,t.jsx)(a.IconExternalLink,{}),(0,t.jsx)("span",{className:"hidden ml-2 md:flex",children:"OpenAPI"})]})]})]})}async function m(){let e=await fetch("/v1/health"),n=await e.json();return!!n.chat_model}},78495:function(e,n,r){"use strict";r.r(n),r.d(n,{Providers:function(){return s}});var t=r(57437);r(2265);var i=r(6435),o=r(95482);function s(e){let{children:n,...r}=e;return(0,t.jsx)(i.f,{...r,children:(0,t.jsx)(o.pn,{children:n})})}},93023:function(e,n,r){"use strict";r.d(n,{d:function(){return d},z:function(){return c}});var t=r(57437),i=r(2265),o=r(67256),s=r(7404),a=r(39311);let d=(0,s.j)("inline-flex items-center justify-center rounded-md text-sm font-medium shadow ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-md hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"shadow-none hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 shadow-none hover:underline"},size:{default:"h-8 px-4 py-2",sm:"h-8 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-8 w-8 p-0"}},defaultVariants:{variant:"default",size:"default"}}),c=i.forwardRef((e,n)=>{let{className:r,variant:i,size:s,asChild:c=!1,...l}=e,u=c?o.g7:"button";return(0,t.jsx)(u,{className:(0,a.cn)(d({variant:i,size:s,className:r})),ref:n,...l})});c.displayName="Button"},95482:function(e,n,r){"use strict";r.d(n,{_v:function(){return l},aJ:function(){return c},pn:function(){return a},u:function(){return d}});var t=r(57437),i=r(2265),o=r(3072),s=r(39311);let a=o.zt,d=o.fC,c=o.xz,l=i.forwardRef((e,n)=>{let{className:r,sideOffset:i=4,...a}=e;return(0,t.jsx)(o.VY,{ref:n,sideOffset:i,className:(0,s.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),...a})});l.displayName=o.VY.displayName},58877:function(){}},function(e){e.O(0,[195,861,832,168,971,864,744],function(){return e(e.s=35762)}),_N_E=e.O()}]);

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[931],{26039:function(n,e,u){Promise.resolve().then(u.bind(u,84168))}},function(n){n.O(0,[195,168,971,864,744],function(){return n(n.s=26039)}),_N_E=n.O()}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
!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/616b1d8d470f862f.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}();

View File

@ -1 +0,0 @@
!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+".fad7d92fce894ba9.js"},s.miniCssF=function(e){return"static/css/3aa519e3dd59a9b3.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))}();

File diff suppressed because one or more lines are too long

View File

@ -1,13 +1,14 @@
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/3aa519e3dd59a9b3.css","style"]
0:["kTf01AW-j0xnBhHfdnMlO",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],"$L4",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/3aa519e3dd59a9b3.css","precedence":"next"}]],"$L5"]]]]
6:I{"id":5925,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","861:static/chunks/861-b61dfc288e31f406.js","832:static/chunks/832-06362e8382d18069.js","168:static/chunks/168-628e6130810bc4d7.js","185:static/chunks/app/layout-a3a8312b187162b4.js"],"name":"Toaster","async":false}
7:I{"id":78495,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","861:static/chunks/861-b61dfc288e31f406.js","832:static/chunks/832-06362e8382d18069.js","168:static/chunks/168-628e6130810bc4d7.js","185:static/chunks/app/layout-a3a8312b187162b4.js"],"name":"Providers","async":false}
8:I{"id":78963,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","861:static/chunks/861-b61dfc288e31f406.js","832:static/chunks/832-06362e8382d18069.js","168:static/chunks/168-628e6130810bc4d7.js","185:static/chunks/app/layout-a3a8312b187162b4.js"],"name":"Header","async":false}
9:I{"id":81443,"chunks":["272:static/chunks/webpack-905b6479559cc2f9.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-905b6479559cc2f9.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
c:I{"id":84168,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","168:static/chunks/168-628e6130810bc4d7.js","931:static/chunks/app/page-3b78cb85666b4f5a.js"],"name":"IconSlack","async":false}
3:HL["/_next/static/css/616b1d8d470f862f.css","style"]
0:["zeY5-E7aVjZwD9S_JXVsQ",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],"$L4",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/616b1d8d470f862f.css","precedence":"next"}]],"$L5"]]]]
6:I{"id":5925,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","832:static/chunks/832-06362e8382d18069.js","894:static/chunks/894-25d9916957b869f3.js","185:static/chunks/app/layout-6c30f50bddf243c7.js"],"name":"Toaster","async":false}
7:I{"id":78495,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","832:static/chunks/832-06362e8382d18069.js","894:static/chunks/894-25d9916957b869f3.js","185:static/chunks/app/layout-6c30f50bddf243c7.js"],"name":"Providers","async":false}
8:I{"id":78963,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","832:static/chunks/832-06362e8382d18069.js","894:static/chunks/894-25d9916957b869f3.js","185:static/chunks/app/layout-6c30f50bddf243c7.js"],"name":"Header","async":false}
9:I{"id":81443,"chunks":["272:static/chunks/webpack-425a00248a63a7de.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-425a00248a63a7de.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-425a00248a63a7de.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
d:I{"id":25454,"chunks":["358:static/chunks/358-dc819165169f937b.js","703:static/chunks/703-35aa8c1eaf8df6ef.js","894:static/chunks/894-25d9916957b869f3.js","931:static/chunks/app/page-20035815ff7846b5.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 flex-col min-h-screen","children":[["$","$L8",null,{}],["$","main",null,{"className":"flex flex-col flex-1 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"}]]
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 flex-col min-h-screen","children":[["$","$L8",null,{}],["$","main",null,{"className":"flex flex-col flex-1 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",["$","div",null,{"className":"grow flex justify-center items-center","children":["$","div",null,{"className":"w-2/3 lg:w-1/3 flex flex-col gap-3","children":[["$","h1",null,{"className":"text-xl font-bold","children":"Join the Tabby community"}],["$","p",null,{"children":"Connect with other contributors building Tabby. Share knowledge, get help, and contribute to the open-source project."}],["$","p",null,{"children":["$","a",null,{"target":"_blank","href":"https://join.slack.com/t/tabbycommunity/shared_invite/zt-1xeiddizp-bciR2RtFTaJ37RBxr8VxpA","className":"inline-flex items-center justify-center rounded-md text-sm font-medium shadow ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground shadow-md hover:bg-primary/90 h-8 px-4 py-2","children":[["$","$Lc",null,{"className":"-ml-2 h-8 w-8"}],"Join us on Slack"]}]}]]}]}],null],"segment":"__PAGE__"},"styles":[]}]}]]}],null]}]]}]]}],null]
b:null

File diff suppressed because one or more lines are too long

View File

@ -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/3aa519e3dd59a9b3.css","style"]
0:["kTf01AW-j0xnBhHfdnMlO",[[["",{"children":["playground",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],"$L4",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/3aa519e3dd59a9b3.css","precedence":"next"}]],"$L5"]]]]
6:I{"id":5925,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","861:static/chunks/861-b61dfc288e31f406.js","832:static/chunks/832-06362e8382d18069.js","168:static/chunks/168-628e6130810bc4d7.js","185:static/chunks/app/layout-a3a8312b187162b4.js"],"name":"Toaster","async":false}
7:I{"id":78495,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","861:static/chunks/861-b61dfc288e31f406.js","832:static/chunks/832-06362e8382d18069.js","168:static/chunks/168-628e6130810bc4d7.js","185:static/chunks/app/layout-a3a8312b187162b4.js"],"name":"Providers","async":false}
8:I{"id":78963,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","861:static/chunks/861-b61dfc288e31f406.js","832:static/chunks/832-06362e8382d18069.js","168:static/chunks/168-628e6130810bc4d7.js","185:static/chunks/app/layout-a3a8312b187162b4.js"],"name":"Header","async":false}
9:I{"id":81443,"chunks":["272:static/chunks/webpack-905b6479559cc2f9.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-905b6479559cc2f9.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
c:I{"id":10413,"chunks":["195:static/chunks/195-42fffaf30b0aaee4.js","861:static/chunks/861-b61dfc288e31f406.js","978:static/chunks/978-6768c629d09f4ba9.js","168:static/chunks/168-628e6130810bc4d7.js","383:static/chunks/app/playground/page-d13a8c08b4e9e208.js"],"name":"Chat","async":false}
3:HL["/_next/static/css/616b1d8d470f862f.css","style"]
0:["zeY5-E7aVjZwD9S_JXVsQ",[[["",{"children":["playground",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],"$L4",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/616b1d8d470f862f.css","precedence":"next"}]],"$L5"]]]]
6:I{"id":5925,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","832:static/chunks/832-06362e8382d18069.js","894:static/chunks/894-25d9916957b869f3.js","185:static/chunks/app/layout-6c30f50bddf243c7.js"],"name":"Toaster","async":false}
7:I{"id":78495,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","832:static/chunks/832-06362e8382d18069.js","894:static/chunks/894-25d9916957b869f3.js","185:static/chunks/app/layout-6c30f50bddf243c7.js"],"name":"Providers","async":false}
8:I{"id":78963,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","832:static/chunks/832-06362e8382d18069.js","894:static/chunks/894-25d9916957b869f3.js","185:static/chunks/app/layout-6c30f50bddf243c7.js"],"name":"Header","async":false}
9:I{"id":81443,"chunks":["272:static/chunks/webpack-425a00248a63a7de.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-425a00248a63a7de.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false}
c:I{"id":12202,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","978:static/chunks/978-6768c629d09f4ba9.js","894:static/chunks/894-25d9916957b869f3.js","383:static/chunks/app/playground/page-cf297629ec68c7f0.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 flex-col min-h-screen","children":[["$","$L8",null,{}],["$","main",null,{"className":"flex flex-col flex-1 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":"RSr7rXr"}],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 flex-col min-h-screen","children":[["$","$L8",null,{}],["$","main",null,{"className":"flex flex-col flex-1 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":"QeIo9rC"}],null],"segment":"__PAGE__"},"styles":[]}],"segment":"playground"},"styles":[]}]}]]}],null]}]]}]]}],null]
b:null