hermium 0.3.4 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/public/assets/js/{ChatInputBlock-BNWxaUZs.js → ChatInputBlock-DtDwhu-o.js} +1 -1
- package/dist/{server/public/assets/js/MarkdownMessage-Dj4H-Hot.js → public/assets/js/MarkdownMessage-HqtkizAq.js} +1 -1
- package/dist/public/assets/js/{chat._sessionId-CdFGOM3V.js → chat._sessionId-CQhAWRie.js} +1 -1
- package/dist/{server/public/assets/js/chat.index-BjoDk7Pf.js → public/assets/js/chat.index-Rey-yJNu.js} +1 -1
- package/dist/public/assets/js/{index-CGA2_Unz.js → index-DaPM5Pp6.js} +1 -1
- package/dist/public/assets/js/{index-C_aaviLR.js → index-lcPGeFiu.js} +28 -28
- package/dist/public/assets/js/{memory-BE78tPkH.js → memory-hKlWOmsk.js} +1 -1
- package/dist/public/assets/js/{settings-RFphMDu9.js → settings-CgEeK7SY.js} +1 -1
- package/dist/public/assets/js/{skills-BNq1laCc.js → skills-Os0vuATW.js} +1 -1
- package/dist/public/assets/js/{usage-CLJFoVEz.js → usage-Bkxk-UWX.js} +1 -1
- package/dist/server/_ssr/{ChatInputBlock-CrbSl9-U.mjs → ChatInputBlock-Dax0BiWA.mjs} +1 -1
- package/dist/server/_ssr/{MarkdownMessage-DXbASNGx.mjs → MarkdownMessage-Cwh9eBP2.mjs} +1 -1
- package/dist/server/_ssr/{chat._sessionId-iub1hqTX.mjs → chat._sessionId-CI4x2myS.mjs} +4 -4
- package/dist/server/_ssr/{chat.index-QiK175_4.mjs → chat.index-CkW4HXDE.mjs} +1 -1
- package/dist/server/_ssr/{index-CKVADumM.mjs → index-CZIkem83.mjs} +2 -2
- package/dist/server/_ssr/{index-B981awUw.mjs → index-Cnfau46H.mjs} +2 -2
- package/dist/server/_ssr/{memory-C1B4dJi_.mjs → memory-DNXYkaz6.mjs} +3 -3
- package/dist/server/_ssr/{router-BNU46tgz.mjs → router-BHawbDFJ.mjs} +10 -16
- package/dist/server/_ssr/{skills-BK-0zOm1.mjs → skills-De5OAjih.mjs} +3 -3
- package/dist/server/_ssr/{usage-DEWJSXAs.mjs → usage-CDQOB3tW.mjs} +1 -1
- package/dist/server/{_tanstack-start-manifest_v-DZ_z1QIO.mjs → _tanstack-start-manifest_v-CZgpkRLi.mjs} +1 -1
- package/dist/server/index.mjs +71 -71
- package/dist/server/public/assets/js/{ChatInputBlock-BNWxaUZs.js → ChatInputBlock-DtDwhu-o.js} +1 -1
- package/dist/{public/assets/js/MarkdownMessage-Dj4H-Hot.js → server/public/assets/js/MarkdownMessage-HqtkizAq.js} +1 -1
- package/dist/server/public/assets/js/{chat._sessionId-CdFGOM3V.js → chat._sessionId-CQhAWRie.js} +1 -1
- package/dist/{public/assets/js/chat.index-BjoDk7Pf.js → server/public/assets/js/chat.index-Rey-yJNu.js} +1 -1
- package/dist/server/public/assets/js/{index-CGA2_Unz.js → index-DaPM5Pp6.js} +1 -1
- package/dist/server/public/assets/js/{index-C_aaviLR.js → index-lcPGeFiu.js} +28 -28
- package/dist/server/public/assets/js/{memory-BE78tPkH.js → memory-hKlWOmsk.js} +1 -1
- package/dist/server/public/assets/js/{settings-RFphMDu9.js → settings-CgEeK7SY.js} +1 -1
- package/dist/server/public/assets/js/{skills-BNq1laCc.js → skills-Os0vuATW.js} +1 -1
- package/dist/server/public/assets/js/{usage-CLJFoVEz.js → usage-Bkxk-UWX.js} +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{G as y,D as n,L as w,C as e,h as g,S as z,x as k,b as j,B as u,n as C,j as I,q as M,p as E}from"./index-
|
|
1
|
+
import{G as y,D as n,L as w,C as e,h as g,S as z,x as k,b as j,B as u,n as C,j as I,q as M,p as E}from"./index-lcPGeFiu.js";import{M as A}from"./MarkdownMessage-HqtkizAq.js";async function D(){return y("/api/hermes/memory")}async function L(s,o){await y("/api/hermes/memory",{method:"POST",body:JSON.stringify({section:s,content:o})})}const P={memory:{title:"My Notes",icon:e.jsx(E,{className:"size-4"}),empty:"No notes yet. Write down things you want the AI to remember.",placeholder:"Write anything you want the AI to remember about this conversation, context, or preferences..."},user:{title:"User Profile",icon:e.jsx(M,{className:"size-4"}),empty:"No user profile. Add details about yourself.",placeholder:"Describe yourself — your role, expertise, preferences, communication style..."},soul:{title:"Soul",icon:e.jsx(j,{className:"size-4"}),empty:"No soul defined. Set the AI's personality and behavior.",placeholder:"Define the AI's personality, tone, expertise, and how it should behave..."}};function R(s){if(!s)return"";try{return new Date(s).toLocaleString([],{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return""}}function p({section:s,data:o,onSave:f}){const[l,i]=n.useState(!1),[c,m]=n.useState(""),[d,r]=n.useState(!1),a=P[s],t=o[s],x=o[`${s}_mtime`],N=!t.trim(),v=()=>{m(t),i(!0)},b=()=>{i(!1),m("")},S=async()=>{r(!0);try{await f(s,c),i(!1)}catch(h){console.error("Failed to save memory:",h)}finally{r(!1)}};return e.jsxs("div",{className:"flex flex-col border rounded-lg overflow-hidden h-full min-h-0",children:[e.jsxs("div",{className:"flex items-center justify-between px-3 py-2.5 bg-muted/50 border-b shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-muted-foreground",children:a.icon}),e.jsx("span",{className:"text-sm font-medium",children:a.title}),x?e.jsx("span",{className:"text-[10px] text-muted-foreground/60 ml-1",children:R(x)}):null]}),l?e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(u,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs text-muted-foreground hover:text-foreground",onClick:b,disabled:d,children:"Cancel"}),e.jsx(u,{size:"sm",className:"h-7 px-3 text-xs",onClick:S,disabled:d,children:d?e.jsx(g,{className:"size-3 animate-spin"}):"Save"})]}):e.jsxs(u,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs text-muted-foreground hover:text-foreground",onClick:v,children:[e.jsx(I,{className:"size-3 mr-1"}),"Edit"]})]}),l?e.jsx("textarea",{value:c,onChange:h=>m(h.target.value),placeholder:a.placeholder,spellCheck:!1,className:"flex-1 min-h-0 w-full resize-none border-0 bg-transparent px-3 py-3 text-sm leading-relaxed outline-none focus-visible:ring-0 font-mono"}):e.jsx("div",{className:"flex-1 overflow-y-auto p-3 min-h-0",children:N?e.jsx("p",{className:"text-sm text-muted-foreground italic",children:a.empty}):e.jsx(A,{content:t.replace(/§/g,`
|
|
2
2
|
|
|
3
3
|
`)})})]})}function T(){const[s,o]=n.useState(null),[f,l]=n.useState(!0),[i,c]=n.useState(!1),{state:m}=w(),d=m==="collapsed",r=n.useCallback(async()=>{try{const t=await D();o(t)}catch(t){console.error("Failed to load memory:",t)}},[]);n.useEffect(()=>{l(!0),r().finally(()=>l(!1))},[r]);const a=async(t,x)=>{await L(t,x),await r()};return f?e.jsx("div",{className:"flex flex-1 items-center justify-center",children:e.jsxs("span",{className:"inline-flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(g,{className:"size-4 animate-spin"}),"Loading memory…"]})}):s?e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsxs("header",{className:"flex items-center justify-between border-b px-4 py-3 shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[d&&e.jsx(z,{className:k("mr-1 -ml-1 text-muted-foreground hover:text-foreground hover:bg-muted transition-colors shrink-0")}),e.jsx(j,{className:"size-5 text-muted-foreground"}),e.jsx("h2",{className:"text-sm font-medium",children:"Memory"})]}),e.jsxs(u,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs text-muted-foreground hover:text-foreground",onClick:()=>{c(!0),r().finally(()=>c(!1))},disabled:i,children:[i?e.jsx(g,{className:"size-3 animate-spin"}):e.jsx(C,{className:"size-3"}),"Refresh"]})]}),e.jsx("div",{className:"flex-1 min-h-0 p-4 overflow-hidden",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 h-full min-h-0",children:[e.jsx(p,{section:"memory",data:s,onSave:a}),e.jsx(p,{section:"user",data:s,onSave:a}),e.jsx(p,{section:"soul",data:s,onSave:a})]})})]}):e.jsx("div",{className:"flex flex-1 items-center justify-center",children:e.jsx("p",{className:"text-sm text-muted-foreground",children:"Failed to load memory."})})}export{T as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e}from"./index-
|
|
1
|
+
import{C as e}from"./index-lcPGeFiu.js";function t(){return e.jsxs("div",{className:"p-6",children:[e.jsx("h1",{className:"text-2xl font-semibold",children:"Settings"}),e.jsx("p",{className:"mt-2 text-muted-foreground",children:"Configure profiles, models, and preferences."})]})}export{t as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,v as ee,w as se,x as m,L as te,R as ae,D as r,z as w,A as R,S as M,B as y,I as P,h as S,n as B,g as le,r as T,o as re,t as ie,e as E,d as q,l as ne,H as oe}from"./index-C_aaviLR.js";import{M as H}from"./MarkdownMessage-Dj4H-Hot.js";function ce({className:d,size:x="default",...n}){return e.jsx(ee,{"data-slot":"switch","data-size":x,className:m("peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 data-disabled:cursor-not-allowed data-disabled:opacity-50",d),...n,children:e.jsx(se,{"data-slot":"switch-thumb",className:"pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 dark:data-unchecked:bg-foreground"})})}function K({source:d}){const x=d==="builtin"?"bg-muted-foreground":d==="hub"?"bg-blue-400":"bg-emerald-400";return e.jsx("span",{className:m("size-2 rounded-full shrink-0",x)})}function me(){const{state:d}=te(),x=d==="collapsed",n=ae.useLoaderData(),[g,z]=r.useState(!1),[o,O]=r.useState(""),[c,V]=r.useState("all"),[C,W]=r.useState(new Set),[j,G]=r.useState(!0),[l,v]=r.useState(null),[J,u]=r.useState(""),[L,N]=r.useState([]),[F,h]=r.useState(!1),[I,b]=r.useState(null),[Q,f]=r.useState(""),[,$]=r.useState(!1);r.useEffect(()=>{if(!l){u(""),N([]),b(null),f("");return}h(!0);const s=`${l.category}/${l.skill}/SKILL.md`;Promise.all([w(s),R(l.category,l.skill)]).then(([t,a])=>{u(t),N(a.filter(i=>!i.isDir))}).catch(t=>{u(`Failed to load skill: ${t.message}`)}).finally(()=>h(!1))},[l]);const A=r.useMemo(()=>{if(!n)return[];let s=n.categories;if(c!=="all"&&(s=s.map(t=>({...t,skills:t.skills.filter(a=>(a.source||"local")===c)})).filter(t=>t.skills.length>0)),o.trim()){const t=o.toLowerCase();s=s.map(a=>({...a,skills:a.skills.filter(i=>i.name.toLowerCase().includes(t)||i.description.toLowerCase().includes(t))})).filter(a=>a.skills.length>0||a.name.toLowerCase().includes(t))}return s},[n,c,o]),D=r.useMemo(()=>{if(!n)return[];let s=n.archived;if(c!=="all"&&(s=s.filter(t=>(t.source||"local")===c)),o.trim()){const t=o.toLowerCase();s=s.filter(a=>a.name.toLowerCase().includes(t)||a.description.toLowerCase().includes(t))}return s},[n,c,o]),U=s=>{W(t=>{const a=new Set(t);return a.has(s)?a.delete(s):a.add(s),a})},X=async(s,t,a)=>{try{await oe(t,a),setData(i=>i&&{...i,categories:i.categories.map(p=>p.name===s?{...p,skills:p.skills.map(k=>k.name===t?{...k,enabled:a}:k)}:p)})}catch(i){console.error("Toggle failed:",i)}},Y=async s=>{if(l){$(!0),b(s);try{const t=`${l.category}/${l.skill}/`,a=await w(`${t}${s}`);f(a)}catch(t){f(`Failed to load file: ${t.message}`)}finally{$(!1)}}},Z=()=>{b(null),f("")},_=[{label:"All",value:"all"},{label:"Builtin",value:"builtin"},{label:"Hub",value:"hub"},{label:"Local",value:"local"}];return l?e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsxs("header",{className:"flex items-center justify-between border-b px-4 py-3 shrink-0 relative",children:[e.jsxs("div",{className:"flex items-center gap-2 z-10",children:[x&&e.jsx(M,{className:m("mr-1 -ml-1 text-muted-foreground hover:text-foreground hover:bg-muted transition-colors shrink-0")}),e.jsxs(y,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs text-muted-foreground hover:text-foreground",onClick:()=>v(null),children:[e.jsx(P,{className:"size-3.5 mr-1"}),"Back"]})]}),e.jsxs("div",{className:"absolute left-1/2 -translate-x-1/2 flex items-center gap-2 max-w-[50%]",children:[e.jsx("span",{className:"text-muted-foreground text-sm truncate",children:l.category}),e.jsx("span",{className:"text-muted-foreground shrink-0",children:"/"}),e.jsx("span",{className:"text-sm font-medium truncate",children:l.skill})]}),e.jsx("div",{className:"z-10",children:e.jsxs(y,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs text-muted-foreground hover:text-foreground",onClick:()=>{h(!0);const s=`${l.category}/${l.skill}/SKILL.md`;Promise.all([w(s),R(l.category,l.skill)]).then(([t,a])=>{u(t),N(a.filter(i=>!i.isDir))}).finally(()=>h(!1))},disabled:F,children:[F?e.jsx(S,{className:"size-3 animate-spin"}):e.jsx(B,{className:"size-3"}),"Refresh"]})})]}),e.jsx("div",{className:"flex-1 overflow-y-auto p-4",children:e.jsx("div",{className:"max-w-3xl mx-auto flex flex-col gap-4",children:I?e.jsxs(e.Fragment,{children:[e.jsxs("button",{onClick:Z,className:"inline-flex items-center gap-1.5 text-xs text-primary hover:underline w-fit",children:[e.jsx(P,{className:"size-3"}),"Back to ",l.skill]}),e.jsx("div",{className:"text-sm text-muted-foreground mb-1",children:I}),e.jsx(H,{content:Q})]}):e.jsxs(e.Fragment,{children:[e.jsx(H,{content:J}),L.length>0&&e.jsxs("div",{className:"border-t pt-4 mt-2",children:[e.jsx("div",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2",children:"Attached Files"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:L.map(s=>e.jsxs("button",{onClick:()=>Y(s.path),className:"inline-flex items-center gap-1.5 rounded-md border bg-muted/50 px-2.5 py-1.5 text-xs text-foreground hover:bg-muted transition-colors",children:[e.jsx(le,{className:"size-3.5 text-muted-foreground shrink-0"}),e.jsx("span",{className:"truncate max-w-[180px]",children:s.path})]},s.path))})]})]})})})]}):e.jsxs("div",{className:"flex h-full",children:[e.jsxs("div",{className:"w-80 border-r flex flex-col h-full shrink-0",children:[e.jsxs("header",{className:"flex items-center gap-2 border-b px-3 py-3 shrink-0",children:[x&&e.jsx(M,{className:m("mr-1 -ml-1 text-muted-foreground hover:text-foreground hover:bg-muted transition-colors shrink-0")}),e.jsx(T,{className:"size-5 text-muted-foreground"}),e.jsx("h2",{className:"text-sm font-medium",children:"Skills"}),e.jsx(y,{variant:"ghost",size:"sm",className:"ml-auto h-7 px-2 text-xs text-muted-foreground hover:text-foreground",onClick:()=>{z(!0),load().finally(()=>z(!1))},disabled:g,children:g?e.jsx(S,{className:"size-3 animate-spin"}):e.jsx(B,{className:"size-3"})})]}),e.jsxs("div",{className:"px-3 py-2 border-b flex flex-col gap-2 shrink-0",children:[e.jsxs("div",{className:"relative",children:[e.jsx(re,{className:"absolute left-2 top-1/2 -translate-y-1/2 size-3.5 text-muted-foreground"}),e.jsx(ie,{value:o,onChange:s=>O(s.target.value),placeholder:"Search skills...",className:"h-8 pl-7 text-xs"})]}),e.jsx("div",{className:"flex items-center gap-1",children:_.map(s=>e.jsx("button",{onClick:()=>V(s.value),className:m("px-2 py-0.5 text-[11px] rounded-sm transition-colors",c===s.value?"bg-primary text-primary-foreground font-medium":"text-muted-foreground hover:text-foreground hover:bg-muted"),children:s.label},s.value))})]}),e.jsx("div",{className:"flex-1 overflow-y-auto p-2",children:g?e.jsx("div",{className:"flex items-center justify-center py-8",children:e.jsx(S,{className:"size-4 animate-spin text-muted-foreground"})}):!n||A.length===0?e.jsx("p",{className:"text-xs text-muted-foreground text-center py-8",children:o?"No skills match your search.":"No skills found."}):e.jsxs("div",{className:"flex flex-col gap-1",children:[A.map(s=>e.jsxs("div",{className:"flex flex-col",children:[e.jsxs("button",{onClick:()=>U(s.name),className:"flex items-center gap-1.5 px-2 py-1.5 text-xs font-semibold text-muted-foreground uppercase tracking-wider rounded-md hover:bg-muted/50 transition-colors",children:[C.has(s.name)?e.jsx(E,{className:"size-3 shrink-0"}):e.jsx(q,{className:"size-3 shrink-0"}),e.jsx("span",{className:"truncate",children:s.name}),e.jsx("span",{className:"ml-auto text-[10px] bg-muted px-1.5 py-0.5 rounded-full",children:s.skills.length})]}),!C.has(s.name)&&e.jsx("div",{className:"flex flex-col",children:s.skills.map(t=>e.jsxs("div",{className:"group flex items-center gap-2 px-2 py-1.5 pl-7 rounded-md hover:bg-muted/50 cursor-pointer transition-colors",onClick:()=>v({category:s.name,skill:t.name}),children:[e.jsx(K,{source:t.source}),e.jsxs("div",{className:"flex flex-col min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("span",{className:"text-xs font-medium truncate",children:t.name}),t.modified&&e.jsx("span",{className:"text-[10px] text-amber-500",title:"Modified",children:"✎"}),t.pinned&&e.jsx(ne,{className:"size-3 text-amber-500 shrink-0"})]}),t.description&&e.jsx("span",{className:"text-[10px] text-muted-foreground truncate",children:t.description})]}),e.jsx(ce,{checked:t.enabled!==!1,onCheckedChange:a=>X(s.name,t.name,a),className:"scale-75 shrink-0",onClick:a=>a.stopPropagation()})]},t.name))})]},s.name)),(D.length>0||(n?.archived.length??0)>0)&&e.jsxs("div",{className:"flex flex-col mt-2 pt-2 border-t",children:[e.jsxs("button",{onClick:()=>G(!j),className:"flex items-center gap-1.5 px-2 py-1.5 text-xs font-semibold text-muted-foreground uppercase tracking-wider rounded-md hover:bg-muted/50 transition-colors",children:[j?e.jsx(E,{className:"size-3 shrink-0"}):e.jsx(q,{className:"size-3 shrink-0"}),e.jsx("span",{children:"Archived"}),e.jsx("span",{className:"ml-auto text-[10px] bg-muted px-1.5 py-0.5 rounded-full",children:n?.archived.length??0})]}),!j&&D.map(s=>e.jsxs("div",{className:"flex items-center gap-2 px-2 py-1.5 pl-7 rounded-md hover:bg-muted/50 cursor-pointer transition-colors opacity-60",onClick:()=>v({category:".archive",skill:s.name}),children:[e.jsx(K,{source:s.source}),e.jsxs("div",{className:"flex flex-col min-w-0 flex-1",children:[e.jsx("span",{className:"text-xs font-medium truncate",children:s.name}),s.description&&e.jsx("span",{className:"text-[10px] text-muted-foreground truncate",children:s.description})]})]},s.name))]})]})})]}),e.jsx("div",{className:"flex-1 flex flex-col items-center justify-center",children:e.jsxs("div",{className:"flex flex-col items-center gap-3 text-muted-foreground",children:[e.jsx(T,{className:"size-12 opacity-20"}),e.jsx("p",{className:"text-sm",children:"Select a skill to view its details"})]})})]})}export{me as component};
|
|
1
|
+
import{C as e,v as ee,w as se,x as m,L as te,R as ae,D as r,z as w,A as R,S as M,B as y,I as P,h as S,n as B,g as le,r as T,o as re,t as ie,e as E,d as q,l as ne,H as oe}from"./index-lcPGeFiu.js";import{M as H}from"./MarkdownMessage-HqtkizAq.js";function ce({className:d,size:x="default",...n}){return e.jsx(ee,{"data-slot":"switch","data-size":x,className:m("peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 data-disabled:cursor-not-allowed data-disabled:opacity-50",d),...n,children:e.jsx(se,{"data-slot":"switch-thumb",className:"pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 dark:data-unchecked:bg-foreground"})})}function K({source:d}){const x=d==="builtin"?"bg-muted-foreground":d==="hub"?"bg-blue-400":"bg-emerald-400";return e.jsx("span",{className:m("size-2 rounded-full shrink-0",x)})}function me(){const{state:d}=te(),x=d==="collapsed",n=ae.useLoaderData(),[g,z]=r.useState(!1),[o,O]=r.useState(""),[c,V]=r.useState("all"),[C,W]=r.useState(new Set),[j,G]=r.useState(!0),[l,v]=r.useState(null),[J,u]=r.useState(""),[L,N]=r.useState([]),[F,h]=r.useState(!1),[I,b]=r.useState(null),[Q,f]=r.useState(""),[,$]=r.useState(!1);r.useEffect(()=>{if(!l){u(""),N([]),b(null),f("");return}h(!0);const s=`${l.category}/${l.skill}/SKILL.md`;Promise.all([w(s),R(l.category,l.skill)]).then(([t,a])=>{u(t),N(a.filter(i=>!i.isDir))}).catch(t=>{u(`Failed to load skill: ${t.message}`)}).finally(()=>h(!1))},[l]);const A=r.useMemo(()=>{if(!n)return[];let s=n.categories;if(c!=="all"&&(s=s.map(t=>({...t,skills:t.skills.filter(a=>(a.source||"local")===c)})).filter(t=>t.skills.length>0)),o.trim()){const t=o.toLowerCase();s=s.map(a=>({...a,skills:a.skills.filter(i=>i.name.toLowerCase().includes(t)||i.description.toLowerCase().includes(t))})).filter(a=>a.skills.length>0||a.name.toLowerCase().includes(t))}return s},[n,c,o]),D=r.useMemo(()=>{if(!n)return[];let s=n.archived;if(c!=="all"&&(s=s.filter(t=>(t.source||"local")===c)),o.trim()){const t=o.toLowerCase();s=s.filter(a=>a.name.toLowerCase().includes(t)||a.description.toLowerCase().includes(t))}return s},[n,c,o]),U=s=>{W(t=>{const a=new Set(t);return a.has(s)?a.delete(s):a.add(s),a})},X=async(s,t,a)=>{try{await oe(t,a),setData(i=>i&&{...i,categories:i.categories.map(p=>p.name===s?{...p,skills:p.skills.map(k=>k.name===t?{...k,enabled:a}:k)}:p)})}catch(i){console.error("Toggle failed:",i)}},Y=async s=>{if(l){$(!0),b(s);try{const t=`${l.category}/${l.skill}/`,a=await w(`${t}${s}`);f(a)}catch(t){f(`Failed to load file: ${t.message}`)}finally{$(!1)}}},Z=()=>{b(null),f("")},_=[{label:"All",value:"all"},{label:"Builtin",value:"builtin"},{label:"Hub",value:"hub"},{label:"Local",value:"local"}];return l?e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsxs("header",{className:"flex items-center justify-between border-b px-4 py-3 shrink-0 relative",children:[e.jsxs("div",{className:"flex items-center gap-2 z-10",children:[x&&e.jsx(M,{className:m("mr-1 -ml-1 text-muted-foreground hover:text-foreground hover:bg-muted transition-colors shrink-0")}),e.jsxs(y,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs text-muted-foreground hover:text-foreground",onClick:()=>v(null),children:[e.jsx(P,{className:"size-3.5 mr-1"}),"Back"]})]}),e.jsxs("div",{className:"absolute left-1/2 -translate-x-1/2 flex items-center gap-2 max-w-[50%]",children:[e.jsx("span",{className:"text-muted-foreground text-sm truncate",children:l.category}),e.jsx("span",{className:"text-muted-foreground shrink-0",children:"/"}),e.jsx("span",{className:"text-sm font-medium truncate",children:l.skill})]}),e.jsx("div",{className:"z-10",children:e.jsxs(y,{variant:"ghost",size:"sm",className:"h-7 px-2 text-xs text-muted-foreground hover:text-foreground",onClick:()=>{h(!0);const s=`${l.category}/${l.skill}/SKILL.md`;Promise.all([w(s),R(l.category,l.skill)]).then(([t,a])=>{u(t),N(a.filter(i=>!i.isDir))}).finally(()=>h(!1))},disabled:F,children:[F?e.jsx(S,{className:"size-3 animate-spin"}):e.jsx(B,{className:"size-3"}),"Refresh"]})})]}),e.jsx("div",{className:"flex-1 overflow-y-auto p-4",children:e.jsx("div",{className:"max-w-3xl mx-auto flex flex-col gap-4",children:I?e.jsxs(e.Fragment,{children:[e.jsxs("button",{onClick:Z,className:"inline-flex items-center gap-1.5 text-xs text-primary hover:underline w-fit",children:[e.jsx(P,{className:"size-3"}),"Back to ",l.skill]}),e.jsx("div",{className:"text-sm text-muted-foreground mb-1",children:I}),e.jsx(H,{content:Q})]}):e.jsxs(e.Fragment,{children:[e.jsx(H,{content:J}),L.length>0&&e.jsxs("div",{className:"border-t pt-4 mt-2",children:[e.jsx("div",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2",children:"Attached Files"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:L.map(s=>e.jsxs("button",{onClick:()=>Y(s.path),className:"inline-flex items-center gap-1.5 rounded-md border bg-muted/50 px-2.5 py-1.5 text-xs text-foreground hover:bg-muted transition-colors",children:[e.jsx(le,{className:"size-3.5 text-muted-foreground shrink-0"}),e.jsx("span",{className:"truncate max-w-[180px]",children:s.path})]},s.path))})]})]})})})]}):e.jsxs("div",{className:"flex h-full",children:[e.jsxs("div",{className:"w-80 border-r flex flex-col h-full shrink-0",children:[e.jsxs("header",{className:"flex items-center gap-2 border-b px-3 py-3 shrink-0",children:[x&&e.jsx(M,{className:m("mr-1 -ml-1 text-muted-foreground hover:text-foreground hover:bg-muted transition-colors shrink-0")}),e.jsx(T,{className:"size-5 text-muted-foreground"}),e.jsx("h2",{className:"text-sm font-medium",children:"Skills"}),e.jsx(y,{variant:"ghost",size:"sm",className:"ml-auto h-7 px-2 text-xs text-muted-foreground hover:text-foreground",onClick:()=>{z(!0),load().finally(()=>z(!1))},disabled:g,children:g?e.jsx(S,{className:"size-3 animate-spin"}):e.jsx(B,{className:"size-3"})})]}),e.jsxs("div",{className:"px-3 py-2 border-b flex flex-col gap-2 shrink-0",children:[e.jsxs("div",{className:"relative",children:[e.jsx(re,{className:"absolute left-2 top-1/2 -translate-y-1/2 size-3.5 text-muted-foreground"}),e.jsx(ie,{value:o,onChange:s=>O(s.target.value),placeholder:"Search skills...",className:"h-8 pl-7 text-xs"})]}),e.jsx("div",{className:"flex items-center gap-1",children:_.map(s=>e.jsx("button",{onClick:()=>V(s.value),className:m("px-2 py-0.5 text-[11px] rounded-sm transition-colors",c===s.value?"bg-primary text-primary-foreground font-medium":"text-muted-foreground hover:text-foreground hover:bg-muted"),children:s.label},s.value))})]}),e.jsx("div",{className:"flex-1 overflow-y-auto p-2",children:g?e.jsx("div",{className:"flex items-center justify-center py-8",children:e.jsx(S,{className:"size-4 animate-spin text-muted-foreground"})}):!n||A.length===0?e.jsx("p",{className:"text-xs text-muted-foreground text-center py-8",children:o?"No skills match your search.":"No skills found."}):e.jsxs("div",{className:"flex flex-col gap-1",children:[A.map(s=>e.jsxs("div",{className:"flex flex-col",children:[e.jsxs("button",{onClick:()=>U(s.name),className:"flex items-center gap-1.5 px-2 py-1.5 text-xs font-semibold text-muted-foreground uppercase tracking-wider rounded-md hover:bg-muted/50 transition-colors",children:[C.has(s.name)?e.jsx(E,{className:"size-3 shrink-0"}):e.jsx(q,{className:"size-3 shrink-0"}),e.jsx("span",{className:"truncate",children:s.name}),e.jsx("span",{className:"ml-auto text-[10px] bg-muted px-1.5 py-0.5 rounded-full",children:s.skills.length})]}),!C.has(s.name)&&e.jsx("div",{className:"flex flex-col",children:s.skills.map(t=>e.jsxs("div",{className:"group flex items-center gap-2 px-2 py-1.5 pl-7 rounded-md hover:bg-muted/50 cursor-pointer transition-colors",onClick:()=>v({category:s.name,skill:t.name}),children:[e.jsx(K,{source:t.source}),e.jsxs("div",{className:"flex flex-col min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("span",{className:"text-xs font-medium truncate",children:t.name}),t.modified&&e.jsx("span",{className:"text-[10px] text-amber-500",title:"Modified",children:"✎"}),t.pinned&&e.jsx(ne,{className:"size-3 text-amber-500 shrink-0"})]}),t.description&&e.jsx("span",{className:"text-[10px] text-muted-foreground truncate",children:t.description})]}),e.jsx(ce,{checked:t.enabled!==!1,onCheckedChange:a=>X(s.name,t.name,a),className:"scale-75 shrink-0",onClick:a=>a.stopPropagation()})]},t.name))})]},s.name)),(D.length>0||(n?.archived.length??0)>0)&&e.jsxs("div",{className:"flex flex-col mt-2 pt-2 border-t",children:[e.jsxs("button",{onClick:()=>G(!j),className:"flex items-center gap-1.5 px-2 py-1.5 text-xs font-semibold text-muted-foreground uppercase tracking-wider rounded-md hover:bg-muted/50 transition-colors",children:[j?e.jsx(E,{className:"size-3 shrink-0"}):e.jsx(q,{className:"size-3 shrink-0"}),e.jsx("span",{children:"Archived"}),e.jsx("span",{className:"ml-auto text-[10px] bg-muted px-1.5 py-0.5 rounded-full",children:n?.archived.length??0})]}),!j&&D.map(s=>e.jsxs("div",{className:"flex items-center gap-2 px-2 py-1.5 pl-7 rounded-md hover:bg-muted/50 cursor-pointer transition-colors opacity-60",onClick:()=>v({category:".archive",skill:s.name}),children:[e.jsx(K,{source:s.source}),e.jsxs("div",{className:"flex flex-col min-w-0 flex-1",children:[e.jsx("span",{className:"text-xs font-medium truncate",children:s.name}),s.description&&e.jsx("span",{className:"text-[10px] text-muted-foreground truncate",children:s.description})]})]},s.name))]})]})})]}),e.jsx("div",{className:"flex-1 flex flex-col items-center justify-center",children:e.jsxs("div",{className:"flex flex-col items-center gap-3 text-muted-foreground",children:[e.jsx(T,{className:"size-12 opacity-20"}),e.jsx("p",{className:"text-sm",children:"Select a skill to view its details"})]})})]})}export{me as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{G as f,C as e,D as o}from"./index-
|
|
1
|
+
import{G as f,C as e,D as o}from"./index-lcPGeFiu.js";async function g(t=30){const a=new URLSearchParams({days:String(t)});return f(`/api/hermes/usage/stats?${a}`)}const x=["#4fd1c5","#63b3ed","#f6ad55","#b794f4","#68d391","#fc8181","#f687b3","#90cdf4","#fbd38d","#9ae6b4"];function m(t){return(t||"").trim()||"unknown"}function j(t){const a=m(t);let n=0;for(let s=0;s<a.length;s++)n=(n<<5)-n+a.charCodeAt(s),n|=0;return x[Math.abs(n)%x.length]}function l(t){return t>=1e6?(t/1e6).toFixed(1)+"M":t>=1e3?(t/1e3).toFixed(1)+"K":String(t)}function u(t){return t===0?"$0.00":t<.01?"<$0.01":"$"+t.toFixed(2)}function c(t,a){return a<=0?0:t/a*100}function h(t,a){const n=t+a;return n===0?"--":(a/n*100).toFixed(1)+"%"}function b(t=30){const[a,n]=o.useState(null),[s,r]=o.useState(!1);return o.useEffect(()=>{r(!0),g(t).then(n).catch(console.error).finally(()=>r(!1))},[t]),{stats:a,loading:s}}function d({label:t,value:a,sub:n}){return e.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:t}),e.jsx("div",{className:"text-xl font-semibold",children:a}),n&&e.jsx("div",{className:"text-[11px] text-muted-foreground mt-1",children:n})]})}function N({stats:t}){const a=t.total_input_tokens+t.total_output_tokens,n=t.total_cache_read_tokens,s=a+n>0?(n/(t.total_input_tokens+n)*100).toFixed(1)+"%":"--",r=t.daily_usage.filter(p=>p.sessions>0).length,i=r>0?(t.total_sessions/r).toFixed(1):"0.0";return e.jsxs("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3 mb-5",children:[e.jsx(d,{label:"Total Tokens",value:l(a),sub:`${l(t.total_input_tokens)} input / ${l(t.total_output_tokens)} output`}),e.jsx(d,{label:"Total Sessions",value:String(t.total_sessions),sub:`${i} avg/day`}),e.jsx(d,{label:"Estimated Cost",value:u(t.total_cost??0)}),e.jsx(d,{label:"Cache Hit Rate",value:s,sub:n>0?`${l(n)} tokens`:void 0})]})}function k({stats:t}){const a=o.useMemo(()=>(t.daily_usage??[]).map(s=>{const r=s.input_tokens+s.output_tokens+s.cache_read_tokens;return{...s,visualTokens:r,inputPercent:c(s.input_tokens,r),outputPercent:c(s.output_tokens,r),cachePercent:c(s.cache_read_tokens,r)}}),[t]),n=o.useMemo(()=>Math.max(...a.map(s=>s.visualTokens),1),[a]);return a.length===0?null:e.jsxs("div",{className:"rounded-lg border bg-card p-4 mb-5",children:[e.jsx("h3",{className:"text-sm font-semibold text-secondary-foreground mb-3",children:"Daily Trend"}),e.jsx("div",{className:"flex gap-0.5 mb-2",children:a.map(s=>e.jsxs("div",{className:"flex-1 min-w-0 flex flex-col items-center relative group",children:[e.jsx("div",{className:"w-full h-36 bg-muted/40 rounded-t-sm flex items-end overflow-hidden",children:e.jsxs("div",{className:"w-full flex flex-col-reverse justify-start transition-all",style:{height:`${s.visualTokens/n*100}%`},children:[s.output_tokens>0&&e.jsx("div",{className:"w-full bg-emerald-500/80",style:{height:`${s.outputPercent}%`}}),s.input_tokens>0&&e.jsx("div",{className:"w-full bg-indigo-500/80",style:{height:`${s.inputPercent}%`}}),s.cache_read_tokens>0&&e.jsx("div",{className:"w-full bg-amber-400/80",style:{height:`${s.cachePercent}%`}})]})}),e.jsxs("div",{className:"hidden group-hover:block absolute bottom-[calc(100%+8px)] left-1/2 -translate-x-1/2 bg-popover text-popover-foreground text-[11px] whitespace-nowrap z-10 rounded-md border px-2 py-1.5 shadow-md",children:[e.jsx("div",{className:"font-semibold mb-0.5",children:s.date}),e.jsxs("div",{children:["Input: ",l(s.input_tokens)]}),e.jsxs("div",{children:["Output: ",l(s.output_tokens)]}),e.jsxs("div",{children:["Cache read: ",l(s.cache_read_tokens)]}),e.jsxs("div",{children:["Cache write: ",l(s.cache_write_tokens)]}),e.jsxs("div",{children:["Hit rate: ",h(s.input_tokens,s.cache_read_tokens)]}),e.jsxs("div",{children:["Sessions: ",s.sessions]}),e.jsxs("div",{children:["Cost: ",u(s.cost??0)]})]})]},s.date))}),e.jsxs("div",{className:"flex justify-between text-[10px] text-muted-foreground mb-3",children:[e.jsx("span",{children:a[0]?.date.slice(5)}),e.jsx("span",{children:a[a.length-1]?.date.slice(5)})]}),e.jsxs("div",{className:"flex flex-wrap gap-x-3 gap-y-1 text-[11px] text-muted-foreground mb-4",children:[e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx("span",{className:"w-2 h-2 rounded-sm bg-indigo-500/80"})," Input"]}),e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx("span",{className:"w-2 h-2 rounded-sm bg-emerald-500/80"})," Output"]}),e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx("span",{className:"w-2 h-2 rounded-sm bg-amber-400/80"})," Cache read"]})]}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-[11px] border-collapse",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"text-muted-foreground text-left",children:[e.jsx("th",{className:"pb-1.5 pr-2 font-medium",children:"Date"}),e.jsx("th",{className:"pb-1.5 pr-2 font-medium text-right",children:"Input"}),e.jsx("th",{className:"pb-1.5 pr-2 font-medium text-right",children:"Output"}),e.jsx("th",{className:"pb-1.5 pr-2 font-medium text-right",children:"Cache read"}),e.jsx("th",{className:"pb-1.5 pr-2 font-medium text-right",children:"Cache write"}),e.jsx("th",{className:"pb-1.5 pr-2 font-medium text-right",children:"Hit rate"}),e.jsx("th",{className:"pb-1.5 pr-2 font-medium text-right",children:"Sessions"}),e.jsx("th",{className:"pb-1.5 pr-2 font-medium text-right",children:"Cost"})]})}),e.jsx("tbody",{children:[...a].reverse().map(s=>e.jsxs("tr",{className:"border-t",children:[e.jsx("td",{className:"py-1.5 pr-2",children:s.date}),e.jsx("td",{className:"py-1.5 pr-2 text-right",children:l(s.input_tokens)}),e.jsx("td",{className:"py-1.5 pr-2 text-right",children:l(s.output_tokens)}),e.jsx("td",{className:"py-1.5 pr-2 text-right",children:l(s.cache_read_tokens)}),e.jsx("td",{className:"py-1.5 pr-2 text-right",children:l(s.cache_write_tokens)}),e.jsx("td",{className:"py-1.5 pr-2 text-right",children:h(s.input_tokens,s.cache_read_tokens)}),e.jsx("td",{className:"py-1.5 pr-2 text-right",children:s.sessions}),e.jsx("td",{className:"py-1.5 pr-2 text-right",children:u(s.cost??0)})]},s.date))})]})})]})}function v({stats:t}){const a=o.useMemo(()=>(t.model_usage??[]).map(s=>{const r=s.input_tokens+s.output_tokens,i=r+s.cache_read_tokens;return{model:m(s.model),inputTokens:s.input_tokens,outputTokens:s.output_tokens,cacheTokens:s.cache_read_tokens,cacheWriteTokens:s.cache_write_tokens,totalTokens:r,visualTokens:i,sessions:s.sessions,color:j(s.model),inputPercent:c(s.input_tokens,i),outputPercent:c(s.output_tokens,i),cachePercent:c(s.cache_read_tokens,i)}}).sort((s,r)=>r.visualTokens-s.visualTokens),[t]),n=o.useMemo(()=>Math.max(...a.map(s=>s.visualTokens),1),[a]);return a.length===0?null:e.jsxs("div",{className:"rounded-lg border bg-card p-4 mb-5",children:[e.jsx("h3",{className:"text-sm font-semibold text-secondary-foreground mb-3",children:"Model Breakdown"}),e.jsxs("div",{className:"flex flex-wrap gap-x-3 gap-y-1 text-[11px] text-muted-foreground mb-3",children:[e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx("span",{className:"w-2 h-2 rounded-sm bg-indigo-500/80"})," Input"]}),e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx("span",{className:"w-2 h-2 rounded-sm bg-emerald-500/80"})," Output"]}),e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx("span",{className:"w-2 h-2 rounded-sm bg-amber-400/80"})," Cache read"]})]}),e.jsx("div",{className:"flex flex-col gap-2",children:a.map(s=>e.jsxs("div",{className:"flex items-center gap-2.5",children:[e.jsx("span",{className:"w-2 h-2 rounded-sm shrink-0",style:{background:s.color}}),e.jsx("span",{className:"text-xs font-mono text-secondary-foreground w-32 shrink-0 truncate",title:s.model,children:s.model}),e.jsx("div",{className:"flex-1 h-4 bg-muted/40 rounded-sm overflow-hidden",children:e.jsxs("div",{className:"h-full flex min-w-[2px] transition-all",style:{width:`${s.visualTokens/n*100}%`},children:[s.inputTokens>0&&e.jsx("div",{className:"h-full bg-indigo-500/80",style:{width:`${s.inputPercent}%`}}),s.outputTokens>0&&e.jsx("div",{className:"h-full bg-emerald-500/80",style:{width:`${s.outputPercent}%`}}),s.cacheTokens>0&&e.jsx("div",{className:"h-full bg-amber-400/80",style:{width:`${s.cachePercent}%`}})]})}),e.jsxs("span",{className:"text-xs text-muted-foreground w-20 text-right shrink-0",children:[l(s.totalTokens),s.cacheTokens>0&&e.jsxs("span",{className:"text-[10px] text-amber-500 ml-1",children:["+",l(s.cacheTokens)]})]})]},s.model))})]})}function y(){const{stats:t,loading:a}=b(30);return e.jsx("div",{className:"flex-1 overflow-y-auto p-4 md:p-6",children:e.jsxs("div",{className:"mx-auto max-w-5xl",children:[e.jsxs("header",{className:"mb-5",children:[e.jsx("h1",{className:"text-lg font-semibold",children:"Usage"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Token consumption and cost estimates over the last 30 days."})]}),a&&e.jsx("div",{className:"text-sm text-muted-foreground py-8",children:"Loading usage stats…"}),!a&&!t&&e.jsx("div",{className:"text-sm text-muted-foreground py-8",children:"Failed to load usage data."}),!a&&t&&t.total_sessions===0&&e.jsx("div",{className:"text-sm text-muted-foreground py-8",children:"No usage data yet."}),!a&&t&&t.total_sessions>0&&e.jsxs(e.Fragment,{children:[e.jsx(N,{stats:t}),e.jsx(v,{stats:t}),e.jsx(k,{stats:t})]})]})})}export{y as component};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { u as useChatStore, B as Button, c as cn } from "./router-
|
|
2
|
+
import { u as useChatStore, B as Button, c as cn } from "./router-BHawbDFJ.mjs";
|
|
3
3
|
import { k as IconFile, C as IconX, o as IconPaperclip, q as IconPhotoScan, t as IconPlayerStop, a as IconArrowUp } from "../_libs/tabler__icons-react.mjs";
|
|
4
4
|
function Textarea({ className, ...props }) {
|
|
5
5
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import "./index-
|
|
2
|
+
import "./index-CZIkem83.mjs";
|
|
3
3
|
import { M as Markdown } from "../_libs/react-markdown.mjs";
|
|
4
4
|
import { r as rehypeHighlight } from "../_libs/rehype-highlight.mjs";
|
|
5
5
|
import { r as remarkGfm } from "../_libs/remark-gfm.mjs";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { a as Route, u as useChatStore, g as useSidebar, S as SidebarTrigger, c as cn } from "./router-
|
|
3
|
-
import { M as MarkdownMessage } from "./MarkdownMessage-
|
|
4
|
-
import { C as ChatInputBlock } from "./ChatInputBlock-
|
|
5
|
-
import "./index-
|
|
2
|
+
import { a as Route, u as useChatStore, g as useSidebar, S as SidebarTrigger, c as cn } from "./router-BHawbDFJ.mjs";
|
|
3
|
+
import { M as MarkdownMessage } from "./MarkdownMessage-Cwh9eBP2.mjs";
|
|
4
|
+
import { C as ChatInputBlock } from "./ChatInputBlock-Dax0BiWA.mjs";
|
|
5
|
+
import "./index-CZIkem83.mjs";
|
|
6
6
|
import { k as IconFile, f as IconChevronRight, m as IconLoader2, d as IconCheck, i as IconCopy } from "../_libs/tabler__icons-react.mjs";
|
|
7
7
|
import "../_libs/tanstack__react-router.mjs";
|
|
8
8
|
import "../_libs/tanstack__router-core.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
2
|
import { d as useNavigate } from "../_libs/tanstack__react-router.mjs";
|
|
3
|
-
import { u as useChatStore, b as createSession } from "./router-
|
|
3
|
+
import { u as useChatStore, b as createSession } from "./router-BHawbDFJ.mjs";
|
|
4
4
|
import "../_libs/tanstack__router-core.mjs";
|
|
5
5
|
import "../_libs/tanstack__history.mjs";
|
|
6
6
|
import "node:stream/web";
|
|
@@ -3096,7 +3096,7 @@ const defaultSerovalPlugins = [
|
|
|
3096
3096
|
p
|
|
3097
3097
|
];
|
|
3098
3098
|
async function getStartManifest(matchedRoutes) {
|
|
3099
|
-
const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-
|
|
3099
|
+
const { tsrStartManifest } = await import("../_tanstack-start-manifest_v-CZgpkRLi.mjs");
|
|
3100
3100
|
const startManifest = tsrStartManifest();
|
|
3101
3101
|
const rootRoute = startManifest.routes[rootRouteId] = startManifest.routes[rootRouteId] || {};
|
|
3102
3102
|
rootRoute.assets = rootRoute.assets || [];
|
|
@@ -4575,7 +4575,7 @@ var getBaseManifest = getProdBaseManifest;
|
|
|
4575
4575
|
var createEarlyHintsForRequest = createEarlyHintsCollector;
|
|
4576
4576
|
async function loadEntries() {
|
|
4577
4577
|
const [routerEntry, startEntry, pluginAdapters] = await Promise.all([
|
|
4578
|
-
import("./router-
|
|
4578
|
+
import("./router-BHawbDFJ.mjs").then((n2) => n2.e),
|
|
4579
4579
|
Promise.resolve().then(() => start),
|
|
4580
4580
|
import("../__23tanstack-start-plugin-adapters-Cwee5PKy.mjs")
|
|
4581
4581
|
]);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
2
|
import { d as useNavigate } from "../_libs/tanstack__react-router.mjs";
|
|
3
|
-
import { C as ChatInputBlock } from "./ChatInputBlock-
|
|
4
|
-
import "./router-
|
|
3
|
+
import { C as ChatInputBlock } from "./ChatInputBlock-Dax0BiWA.mjs";
|
|
4
|
+
import "./router-BHawbDFJ.mjs";
|
|
5
5
|
import "../_libs/tanstack__router-core.mjs";
|
|
6
6
|
import "../_libs/tanstack__history.mjs";
|
|
7
7
|
import "node:stream/web";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { g as useSidebar, S as SidebarTrigger, c as cn, B as Button, r as request } from "./router-
|
|
3
|
-
import { M as MarkdownMessage } from "./MarkdownMessage-
|
|
4
|
-
import "./index-
|
|
2
|
+
import { g as useSidebar, S as SidebarTrigger, c as cn, B as Button, r as request } from "./router-BHawbDFJ.mjs";
|
|
3
|
+
import { M as MarkdownMessage } from "./MarkdownMessage-Cwh9eBP2.mjs";
|
|
4
|
+
import "./index-CZIkem83.mjs";
|
|
5
5
|
import { m as IconLoader2, b as IconBrain, u as IconRefresh, p as IconPencil, A as IconUser, x as IconSparkles } from "../_libs/tabler__icons-react.mjs";
|
|
6
6
|
import "../_libs/tanstack__react-router.mjs";
|
|
7
7
|
import "../_libs/tanstack__router-core.mjs";
|
|
@@ -750,24 +750,24 @@ function DashboardNavigation({ routes }) {
|
|
|
750
750
|
) }, route.id);
|
|
751
751
|
}) });
|
|
752
752
|
}
|
|
753
|
-
function getBaseUrl
|
|
753
|
+
function getBaseUrl() {
|
|
754
754
|
if (typeof window === "undefined") return "";
|
|
755
755
|
return window.location.origin;
|
|
756
756
|
}
|
|
757
|
-
function getApiKey
|
|
757
|
+
function getApiKey() {
|
|
758
758
|
return typeof window !== "undefined" ? localStorage.getItem("hermium_api_key") || "" : "";
|
|
759
759
|
}
|
|
760
760
|
function clearApiKey() {
|
|
761
761
|
localStorage.removeItem("hermium_api_key");
|
|
762
762
|
}
|
|
763
763
|
async function request(path, options = {}) {
|
|
764
|
-
const base = getBaseUrl
|
|
764
|
+
const base = getBaseUrl();
|
|
765
765
|
const url = `${base}${path}`;
|
|
766
766
|
const headers = {
|
|
767
767
|
"Content-Type": "application/json",
|
|
768
768
|
...options.headers
|
|
769
769
|
};
|
|
770
|
-
const apiKey = getApiKey
|
|
770
|
+
const apiKey = getApiKey();
|
|
771
771
|
if (apiKey) {
|
|
772
772
|
headers["Authorization"] = `Bearer ${apiKey}`;
|
|
773
773
|
}
|
|
@@ -833,12 +833,6 @@ async function runChat(payload) {
|
|
|
833
833
|
});
|
|
834
834
|
}
|
|
835
835
|
const activeSources = /* @__PURE__ */ new Map();
|
|
836
|
-
function getBaseUrl() {
|
|
837
|
-
return typeof window !== "undefined" ? localStorage.getItem("hermium_server_url") || "http://localhost:4000" : "";
|
|
838
|
-
}
|
|
839
|
-
function getApiKey() {
|
|
840
|
-
return typeof window !== "undefined" ? localStorage.getItem("hermium_api_key") || "" : "";
|
|
841
|
-
}
|
|
842
836
|
function streamChatRun(runId, handlers) {
|
|
843
837
|
const existing = activeSources.get(runId);
|
|
844
838
|
if (existing) {
|
|
@@ -1934,7 +1928,7 @@ function RootDocument({ children }) {
|
|
|
1934
1928
|
] })
|
|
1935
1929
|
] });
|
|
1936
1930
|
}
|
|
1937
|
-
const $$splitComponentImporter$6 = () => import("./usage-
|
|
1931
|
+
const $$splitComponentImporter$6 = () => import("./usage-CDQOB3tW.mjs");
|
|
1938
1932
|
const Route$6 = createFileRoute("/usage")({
|
|
1939
1933
|
component: lazyRouteComponent($$splitComponentImporter$6, "component")
|
|
1940
1934
|
});
|
|
@@ -1955,7 +1949,7 @@ async function toggleSkill(name, enabled) {
|
|
|
1955
1949
|
body: JSON.stringify({ name, enabled })
|
|
1956
1950
|
});
|
|
1957
1951
|
}
|
|
1958
|
-
const $$splitComponentImporter$5 = () => import("./skills-
|
|
1952
|
+
const $$splitComponentImporter$5 = () => import("./skills-De5OAjih.mjs");
|
|
1959
1953
|
const Route$5 = createFileRoute("/skills")({
|
|
1960
1954
|
loader: async () => {
|
|
1961
1955
|
const data = await fetchSkills();
|
|
@@ -1967,19 +1961,19 @@ const $$splitComponentImporter$4 = () => import("./settings-DoXurzvn.mjs");
|
|
|
1967
1961
|
const Route$4 = createFileRoute("/settings")({
|
|
1968
1962
|
component: lazyRouteComponent($$splitComponentImporter$4, "component")
|
|
1969
1963
|
});
|
|
1970
|
-
const $$splitComponentImporter$3 = () => import("./memory-
|
|
1964
|
+
const $$splitComponentImporter$3 = () => import("./memory-DNXYkaz6.mjs");
|
|
1971
1965
|
const Route$3 = createFileRoute("/memory")({
|
|
1972
1966
|
component: lazyRouteComponent($$splitComponentImporter$3, "component")
|
|
1973
1967
|
});
|
|
1974
|
-
const $$splitComponentImporter$2 = () => import("./index-
|
|
1968
|
+
const $$splitComponentImporter$2 = () => import("./index-Cnfau46H.mjs");
|
|
1975
1969
|
const Route$2 = createFileRoute("/")({
|
|
1976
1970
|
component: lazyRouteComponent($$splitComponentImporter$2, "component")
|
|
1977
1971
|
});
|
|
1978
|
-
const $$splitComponentImporter$1 = () => import("./chat.index-
|
|
1972
|
+
const $$splitComponentImporter$1 = () => import("./chat.index-CkW4HXDE.mjs");
|
|
1979
1973
|
const Route$1 = createFileRoute("/chat/")({
|
|
1980
1974
|
component: lazyRouteComponent($$splitComponentImporter$1, "component")
|
|
1981
1975
|
});
|
|
1982
|
-
const $$splitComponentImporter = () => import("./chat._sessionId-
|
|
1976
|
+
const $$splitComponentImporter = () => import("./chat._sessionId-CI4x2myS.mjs");
|
|
1983
1977
|
const Route = createFileRoute("/chat/$sessionId")({
|
|
1984
1978
|
component: lazyRouteComponent($$splitComponentImporter, "component")
|
|
1985
1979
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../_libs/react.mjs";
|
|
2
|
-
import { g as useSidebar, R as Route$5, f as fetchSkillContent, d as fetchSkillFiles, S as SidebarTrigger, c as cn, B as Button, t as toggleSkill } from "./router-
|
|
3
|
-
import { M as MarkdownMessage } from "./MarkdownMessage-
|
|
4
|
-
import "./index-
|
|
2
|
+
import { g as useSidebar, R as Route$5, f as fetchSkillContent, d as fetchSkillFiles, S as SidebarTrigger, c as cn, B as Button, t as toggleSkill } from "./router-BHawbDFJ.mjs";
|
|
3
|
+
import { M as MarkdownMessage } from "./MarkdownMessage-Cwh9eBP2.mjs";
|
|
4
|
+
import "./index-CZIkem83.mjs";
|
|
5
5
|
import { I as IconArrowLeft, m as IconLoader2, u as IconRefresh, k as IconFile, B as IconWand, v as IconSearch, f as IconChevronRight, e as IconChevronDown, r as IconPin } from "../_libs/tabler__icons-react.mjs";
|
|
6
6
|
import { I as Input$1, S as SwitchRoot, n as SwitchThumb } from "../_libs/base-ui__react.mjs";
|
|
7
7
|
import "../_libs/tanstack__react-router.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports, r as reactExports } from "../_libs/react.mjs";
|
|
2
|
-
import { r as request } from "./router-
|
|
2
|
+
import { r as request } from "./router-BHawbDFJ.mjs";
|
|
3
3
|
import "../_libs/tanstack__react-router.mjs";
|
|
4
4
|
import "../_libs/tanstack__router-core.mjs";
|
|
5
5
|
import "../_libs/tanstack__history.mjs";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const tsrStartManifest = () => ({ routes: { __root__: { filePath: "/home/abbskhnv/Desktop/hermium-new/packages/web/src/routes/__root.tsx", children: ["/", "/memory", "/settings", "/skills", "/usage", "/chat/$sessionId", "/chat/"], assets: [{ tag: "link", attrs: { rel: "stylesheet", href: "/assets/css/index-Dfs9RUU9.css", type: "text/css" } }], preloads: ["/assets/js/index-
|
|
1
|
+
const tsrStartManifest = () => ({ routes: { __root__: { filePath: "/home/abbskhnv/Desktop/hermium-new/packages/web/src/routes/__root.tsx", children: ["/", "/memory", "/settings", "/skills", "/usage", "/chat/$sessionId", "/chat/"], assets: [{ tag: "link", attrs: { rel: "stylesheet", href: "/assets/css/index-Dfs9RUU9.css", type: "text/css" } }], preloads: ["/assets/js/index-lcPGeFiu.js"] }, "/": { filePath: "/home/abbskhnv/Desktop/hermium-new/packages/web/src/routes/index.tsx", children: void 0, assets: [], preloads: ["/assets/js/index-DaPM5Pp6.js", "/assets/js/ChatInputBlock-DtDwhu-o.js"] }, "/memory": { filePath: "/home/abbskhnv/Desktop/hermium-new/packages/web/src/routes/memory.tsx", children: void 0, assets: [], preloads: ["/assets/js/memory-hKlWOmsk.js", "/assets/js/MarkdownMessage-HqtkizAq.js"] }, "/settings": { filePath: "/home/abbskhnv/Desktop/hermium-new/packages/web/src/routes/settings.tsx", children: void 0, assets: [], preloads: ["/assets/js/settings-CgEeK7SY.js"] }, "/skills": { filePath: "/home/abbskhnv/Desktop/hermium-new/packages/web/src/routes/skills.tsx", children: void 0, assets: [], preloads: ["/assets/js/skills-Os0vuATW.js", "/assets/js/MarkdownMessage-HqtkizAq.js"] }, "/usage": { filePath: "/home/abbskhnv/Desktop/hermium-new/packages/web/src/routes/usage.tsx", children: void 0, assets: [], preloads: ["/assets/js/usage-Bkxk-UWX.js"] }, "/chat/$sessionId": { filePath: "/home/abbskhnv/Desktop/hermium-new/packages/web/src/routes/chat.$sessionId.tsx", children: void 0, assets: [], preloads: ["/assets/js/chat._sessionId-CQhAWRie.js", "/assets/js/MarkdownMessage-HqtkizAq.js", "/assets/js/ChatInputBlock-DtDwhu-o.js"] }, "/chat/": { filePath: "/home/abbskhnv/Desktop/hermium-new/packages/web/src/routes/chat.index.tsx", children: void 0, assets: [], preloads: ["/assets/js/chat.index-Rey-yJNu.js"] } }, clientEntry: "/assets/js/index-lcPGeFiu.js" });
|
|
2
2
|
export {
|
|
3
3
|
tsrStartManifest
|
|
4
4
|
};
|
package/dist/server/index.mjs
CHANGED
|
@@ -26,7 +26,7 @@ function lazyService(loader) {
|
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
const services = {
|
|
29
|
-
["ssr"]: lazyService(() => import("./_ssr/index-
|
|
29
|
+
["ssr"]: lazyService(() => import("./_ssr/index-CZIkem83.mjs"))
|
|
30
30
|
};
|
|
31
31
|
globalThis.__nitro_vite_envs__ = services;
|
|
32
32
|
const errorHandler$1 = (error, event) => {
|
|
@@ -120,154 +120,154 @@ const assets = {
|
|
|
120
120
|
"/favicon.ico": {
|
|
121
121
|
"type": "image/vnd.microsoft.icon",
|
|
122
122
|
"etag": '"f1e-ESBTjHetHyiokkO0tT/irBbMO8Y"',
|
|
123
|
-
"mtime": "2026-05-17T08:
|
|
123
|
+
"mtime": "2026-05-17T08:18:30.558Z",
|
|
124
124
|
"size": 3870,
|
|
125
125
|
"path": "../public/favicon.ico"
|
|
126
126
|
},
|
|
127
|
+
"/manifest.json": {
|
|
128
|
+
"type": "application/json",
|
|
129
|
+
"etag": '"1f2-Oqn/x1R1hBTtEjA8nFhpBeFJJNg"',
|
|
130
|
+
"mtime": "2026-05-17T08:18:30.558Z",
|
|
131
|
+
"size": 498,
|
|
132
|
+
"path": "../public/manifest.json"
|
|
133
|
+
},
|
|
127
134
|
"/robots.txt": {
|
|
128
135
|
"type": "text/plain; charset=utf-8",
|
|
129
136
|
"etag": '"43-BEzmj4PuhUNHX+oW9uOnPSihxtU"',
|
|
130
|
-
"mtime": "2026-05-17T08:
|
|
137
|
+
"mtime": "2026-05-17T08:18:30.558Z",
|
|
131
138
|
"size": 67,
|
|
132
139
|
"path": "../public/robots.txt"
|
|
133
140
|
},
|
|
134
141
|
"/assets/css/index-Dfs9RUU9.css": {
|
|
135
142
|
"type": "text/css; charset=utf-8",
|
|
136
143
|
"etag": '"429-auB1gSdvHWOpUkgakyObE/IliVA"',
|
|
137
|
-
"mtime": "2026-05-17T08:
|
|
144
|
+
"mtime": "2026-05-17T08:18:30.028Z",
|
|
138
145
|
"size": 1065,
|
|
139
146
|
"path": "../public/assets/css/index-Dfs9RUU9.css"
|
|
140
147
|
},
|
|
141
|
-
"/
|
|
142
|
-
"type": "
|
|
143
|
-
"etag": '"
|
|
144
|
-
"mtime": "2026-05-17T08:
|
|
145
|
-
"size":
|
|
146
|
-
"path": "../public/
|
|
148
|
+
"/assets/css/styles-B8p6jk5Z.css": {
|
|
149
|
+
"type": "text/css; charset=utf-8",
|
|
150
|
+
"etag": '"1a414-AEgDOOmvAte00dxPjn+Fb3xg2cQ"',
|
|
151
|
+
"mtime": "2026-05-17T08:18:30.028Z",
|
|
152
|
+
"size": 107540,
|
|
153
|
+
"path": "../public/assets/css/styles-B8p6jk5Z.css"
|
|
147
154
|
},
|
|
148
|
-
"/assets/js/ChatInputBlock-
|
|
155
|
+
"/assets/js/ChatInputBlock-DtDwhu-o.js": {
|
|
149
156
|
"type": "text/javascript; charset=utf-8",
|
|
150
|
-
"etag": '"135c-
|
|
151
|
-
"mtime": "2026-05-17T08:
|
|
157
|
+
"etag": '"135c-RASPhkqUvwggEKjP3QrylvkfN/A"',
|
|
158
|
+
"mtime": "2026-05-17T08:18:30.028Z",
|
|
152
159
|
"size": 4956,
|
|
153
|
-
"path": "../public/assets/js/ChatInputBlock-
|
|
160
|
+
"path": "../public/assets/js/ChatInputBlock-DtDwhu-o.js"
|
|
154
161
|
},
|
|
155
|
-
"/assets/js/MarkdownMessage-
|
|
162
|
+
"/assets/js/MarkdownMessage-HqtkizAq.js": {
|
|
156
163
|
"type": "text/javascript; charset=utf-8",
|
|
157
|
-
"etag": '"a1e-
|
|
158
|
-
"mtime": "2026-05-17T08:
|
|
164
|
+
"etag": '"a1e-3DyzZy40zCTQF94M/PJu0X0Hsp8"',
|
|
165
|
+
"mtime": "2026-05-17T08:18:30.028Z",
|
|
159
166
|
"size": 2590,
|
|
160
|
-
"path": "../public/assets/js/MarkdownMessage-
|
|
167
|
+
"path": "../public/assets/js/MarkdownMessage-HqtkizAq.js"
|
|
161
168
|
},
|
|
162
|
-
"/assets/js/chat._sessionId-
|
|
169
|
+
"/assets/js/chat._sessionId-CQhAWRie.js": {
|
|
163
170
|
"type": "text/javascript; charset=utf-8",
|
|
164
|
-
"etag": '"272b-
|
|
165
|
-
"mtime": "2026-05-17T08:
|
|
171
|
+
"etag": '"272b-McHXUDBuhUfUn7M1SvHgkLN8L50"',
|
|
172
|
+
"mtime": "2026-05-17T08:18:30.028Z",
|
|
166
173
|
"size": 10027,
|
|
167
|
-
"path": "../public/assets/js/chat._sessionId-
|
|
168
|
-
},
|
|
169
|
-
"/assets/css/styles-B8p6jk5Z.css": {
|
|
170
|
-
"type": "text/css; charset=utf-8",
|
|
171
|
-
"etag": '"1a414-AEgDOOmvAte00dxPjn+Fb3xg2cQ"',
|
|
172
|
-
"mtime": "2026-05-17T08:12:35.606Z",
|
|
173
|
-
"size": 107540,
|
|
174
|
-
"path": "../public/assets/css/styles-B8p6jk5Z.css"
|
|
174
|
+
"path": "../public/assets/js/chat._sessionId-CQhAWRie.js"
|
|
175
175
|
},
|
|
176
|
-
"/assets/js/chat.index-
|
|
176
|
+
"/assets/js/chat.index-Rey-yJNu.js": {
|
|
177
177
|
"type": "text/javascript; charset=utf-8",
|
|
178
|
-
"etag": '"279-
|
|
179
|
-
"mtime": "2026-05-17T08:
|
|
178
|
+
"etag": '"279-Iofhk2FD689icp8RcM3zzkZqY8w"',
|
|
179
|
+
"mtime": "2026-05-17T08:18:30.028Z",
|
|
180
180
|
"size": 633,
|
|
181
|
-
"path": "../public/assets/js/chat.index-
|
|
181
|
+
"path": "../public/assets/js/chat.index-Rey-yJNu.js"
|
|
182
182
|
},
|
|
183
|
-
"/assets/js/index-
|
|
183
|
+
"/assets/js/index-DaPM5Pp6.js": {
|
|
184
184
|
"type": "text/javascript; charset=utf-8",
|
|
185
|
-
"etag": '"25b-
|
|
186
|
-
"mtime": "2026-05-17T08:
|
|
185
|
+
"etag": '"25b-IDAV/fIuX02J7i3SFpF/2uyhwnk"',
|
|
186
|
+
"mtime": "2026-05-17T08:18:30.028Z",
|
|
187
187
|
"size": 603,
|
|
188
|
-
"path": "../public/assets/js/index-
|
|
188
|
+
"path": "../public/assets/js/index-DaPM5Pp6.js"
|
|
189
189
|
},
|
|
190
|
-
"/assets/js/memory-
|
|
190
|
+
"/assets/js/memory-hKlWOmsk.js": {
|
|
191
191
|
"type": "text/javascript; charset=utf-8",
|
|
192
|
-
"etag": '"1260-
|
|
193
|
-
"mtime": "2026-05-17T08:
|
|
192
|
+
"etag": '"1260-P9RJ2fARNmET9irs4fPhbGpXRLM"',
|
|
193
|
+
"mtime": "2026-05-17T08:18:30.028Z",
|
|
194
194
|
"size": 4704,
|
|
195
|
-
"path": "../public/assets/js/memory-
|
|
195
|
+
"path": "../public/assets/js/memory-hKlWOmsk.js"
|
|
196
196
|
},
|
|
197
|
-
"/assets/js/settings-
|
|
197
|
+
"/assets/js/settings-CgEeK7SY.js": {
|
|
198
198
|
"type": "text/javascript; charset=utf-8",
|
|
199
|
-
"etag": '"130-
|
|
200
|
-
"mtime": "2026-05-17T08:
|
|
199
|
+
"etag": '"130-WbBYVWT+6xaJdn8LeXySHPJfavQ"',
|
|
200
|
+
"mtime": "2026-05-17T08:18:30.028Z",
|
|
201
201
|
"size": 304,
|
|
202
|
-
"path": "../public/assets/js/settings-
|
|
202
|
+
"path": "../public/assets/js/settings-CgEeK7SY.js"
|
|
203
203
|
},
|
|
204
|
-
"/assets/js/skills-
|
|
204
|
+
"/assets/js/skills-Os0vuATW.js": {
|
|
205
205
|
"type": "text/javascript; charset=utf-8",
|
|
206
|
-
"etag": '"29cb
|
|
207
|
-
"mtime": "2026-05-17T08:
|
|
206
|
+
"etag": '"29cb-ligPZ9hadWJFwQWS+zV2h8J27tc"',
|
|
207
|
+
"mtime": "2026-05-17T08:18:30.028Z",
|
|
208
208
|
"size": 10699,
|
|
209
|
-
"path": "../public/assets/js/skills-
|
|
209
|
+
"path": "../public/assets/js/skills-Os0vuATW.js"
|
|
210
210
|
},
|
|
211
211
|
"/assets/js/theme-CPkdkpaj.js": {
|
|
212
212
|
"type": "text/javascript; charset=utf-8",
|
|
213
213
|
"etag": '"245-JWXBP1zFNJpiVT0wBqxD0nTaUio"',
|
|
214
|
-
"mtime": "2026-05-17T08:
|
|
214
|
+
"mtime": "2026-05-17T08:18:30.028Z",
|
|
215
215
|
"size": 581,
|
|
216
216
|
"path": "../public/assets/js/theme-CPkdkpaj.js"
|
|
217
217
|
},
|
|
218
|
-
"/assets/js/usage-
|
|
218
|
+
"/assets/js/usage-Bkxk-UWX.js": {
|
|
219
219
|
"type": "text/javascript; charset=utf-8",
|
|
220
|
-
"etag": '"2503-
|
|
221
|
-
"mtime": "2026-05-17T08:
|
|
220
|
+
"etag": '"2503-IB3o2fl6NKesErj2M0l4hapSqeY"',
|
|
221
|
+
"mtime": "2026-05-17T08:18:30.028Z",
|
|
222
222
|
"size": 9475,
|
|
223
|
-
"path": "../public/assets/js/usage-
|
|
223
|
+
"path": "../public/assets/js/usage-Bkxk-UWX.js"
|
|
224
224
|
},
|
|
225
225
|
"/assets/woff2/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2": {
|
|
226
226
|
"type": "font/woff2",
|
|
227
227
|
"etag": '"1cfc-yYSDXNlt/tTRaj6rJo8ZMqvY7pQ"',
|
|
228
|
-
"mtime": "2026-05-17T08:
|
|
228
|
+
"mtime": "2026-05-17T08:18:30.028Z",
|
|
229
229
|
"size": 7420,
|
|
230
230
|
"path": "../public/assets/woff2/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2"
|
|
231
231
|
},
|
|
232
|
-
"/assets/woff2/geist-latin-ext-wght-normal-DC-KSUi6.woff2": {
|
|
233
|
-
"type": "font/woff2",
|
|
234
|
-
"etag": '"4080-mZu3Z7sOWqglha+kefNbUA9Pp+Q"',
|
|
235
|
-
"mtime": "2026-05-17T08:12:35.606Z",
|
|
236
|
-
"size": 16512,
|
|
237
|
-
"path": "../public/assets/woff2/geist-latin-ext-wght-normal-DC-KSUi6.woff2"
|
|
238
|
-
},
|
|
239
232
|
"/assets/woff2/geist-cyrillic-wght-normal-BEAKL7Jp.woff2": {
|
|
240
233
|
"type": "font/woff2",
|
|
241
234
|
"etag": '"3aec-5kpQSZEtAzzU5kdiuro3Zr2YR54"',
|
|
242
|
-
"mtime": "2026-05-17T08:
|
|
235
|
+
"mtime": "2026-05-17T08:18:30.028Z",
|
|
243
236
|
"size": 15084,
|
|
244
237
|
"path": "../public/assets/woff2/geist-cyrillic-wght-normal-BEAKL7Jp.woff2"
|
|
245
238
|
},
|
|
239
|
+
"/assets/woff2/geist-latin-ext-wght-normal-DC-KSUi6.woff2": {
|
|
240
|
+
"type": "font/woff2",
|
|
241
|
+
"etag": '"4080-mZu3Z7sOWqglha+kefNbUA9Pp+Q"',
|
|
242
|
+
"mtime": "2026-05-17T08:18:30.028Z",
|
|
243
|
+
"size": 16512,
|
|
244
|
+
"path": "../public/assets/woff2/geist-latin-ext-wght-normal-DC-KSUi6.woff2"
|
|
245
|
+
},
|
|
246
246
|
"/assets/woff2/geist-latin-wght-normal-BgDaEnEv.woff2": {
|
|
247
247
|
"type": "font/woff2",
|
|
248
248
|
"etag": '"72d8-9J+D7/6th5UzRxIgoFX9awJv47A"',
|
|
249
|
-
"mtime": "2026-05-17T08:
|
|
249
|
+
"mtime": "2026-05-17T08:18:30.028Z",
|
|
250
250
|
"size": 29400,
|
|
251
251
|
"path": "../public/assets/woff2/geist-latin-wght-normal-BgDaEnEv.woff2"
|
|
252
252
|
},
|
|
253
253
|
"/assets/woff2/geist-vietnamese-wght-normal-6IgcOCM7.woff2": {
|
|
254
254
|
"type": "font/woff2",
|
|
255
255
|
"etag": '"1f44-6MZ7/PEEOeDVF0eHI650KpwKQV8"',
|
|
256
|
-
"mtime": "2026-05-17T08:
|
|
256
|
+
"mtime": "2026-05-17T08:18:30.028Z",
|
|
257
257
|
"size": 8004,
|
|
258
258
|
"path": "../public/assets/woff2/geist-vietnamese-wght-normal-6IgcOCM7.woff2"
|
|
259
259
|
},
|
|
260
|
-
"/assets/js/index-
|
|
260
|
+
"/assets/js/index-lcPGeFiu.js": {
|
|
261
261
|
"type": "text/javascript; charset=utf-8",
|
|
262
|
-
"etag": '"
|
|
263
|
-
"mtime": "2026-05-17T08:
|
|
264
|
-
"size":
|
|
265
|
-
"path": "../public/assets/js/index-
|
|
262
|
+
"etag": '"dcd74-pFmE6YyPXAvCoiT7p5tQeG7yt4g"',
|
|
263
|
+
"mtime": "2026-05-17T08:18:30.029Z",
|
|
264
|
+
"size": 904564,
|
|
265
|
+
"path": "../public/assets/js/index-lcPGeFiu.js"
|
|
266
266
|
},
|
|
267
267
|
"/logo.png": {
|
|
268
268
|
"type": "image/png",
|
|
269
269
|
"etag": '"142435-x+cWIod8BP5RPjbiISayulI5r7I"',
|
|
270
|
-
"mtime": "2026-05-17T08:
|
|
270
|
+
"mtime": "2026-05-17T08:18:30.558Z",
|
|
271
271
|
"size": 1319989,
|
|
272
272
|
"path": "../public/logo.png"
|
|
273
273
|
}
|