import{i as q}from"./user_service-B8fIxLrp.js";import{y as F,K as g,F as l,s as v}from"./index-ccpu5IUx.js";import{u as P}from"./vendor-utils-DwtcRXMR.js";import{u as K}from"./vendor-react-C0ZmnAiH.js";var Q={VITE_API_HOST_URL:"https://modelworks.ai/api"};const u=Q.VITE_API_HOST_URL,V=async(c,t,e)=>{try{return(await c.get(`${u}/users/${t}/circuits/${e}`)).data.payload}catch(i){throw console.error("Error fetching circuit:",i),i}},D=async(c,t)=>{try{return(await c.post(`${u}/circuits`,t)).data.payload}catch(e){throw console.error("Error creating circuit:",e),e}},O=async(c,t,e,i=0,y=30)=>{try{const p={offset:i,limit:y};return(await c.get(`${u}/users/${t}/circuits/${e}/embeds`,{params:p})).data.payload}catch(p){throw console.error("Error fetching circuit embeds:",p),p}},T=async(c,t)=>{try{const e=await c.get(`${u}/circuits/${t}/primary`);return e.status===204?void 0:e.data.payload}catch(e){throw console.error("Error fetching primary circuit version:",e),e}},x=async(c,t,e=!1)=>(await c.get(`${u}/users/${t}/circuits`,{params:{hide_deprecated:e}})).data.payload,j=async(c,t,e)=>{try{return(await c.post(`${u}/users/${t}/circuits/${e}/stars`,{})).data.payload}catch(i){throw console.error("Error starring circuit:",i),i}},L=async(c,t,e)=>{try{return(await c.get(`${u}/users/${t}/circuits/${e}/stars`)).data.payload}catch(i){throw i instanceof Error?console.error("Error fetching circuit star:",i.message):console.error("Error fetching circuit star:",i),i}},M=async(c,t,e)=>{try{await c.delete(`${u}/users/${t}/circuits/${e}/stars`)}catch(i){throw console.error("Error deleting circuit star:",i),i}},R=async(c,t,e,i)=>{try{const y=Object.fromEntries(Object.entries(i).filter(([,h])=>h!=null));return(await c.put(`${u}/users/${t}/circuits/${e}`,y)).data.payload}catch(y){throw console.error("Error updating circuit:",y),y}},H=async(c,t)=>{try{return(await c.get(`${u}/circuits/${t}`)).data.payload}catch(e){throw console.error("Error fetching circuit by UID:",e),e}},z=async(c,t,e)=>{try{const y=(await c.get(`${u}/users/${t}/circuits/${e}/ping`)).data.payload;if(typeof y=="boolean")return y;throw new Error("Unexpected response format")}catch(i){throw console.error("Error checking circuit ping:",i),i}},G=async c=>{try{return(await c.get(`${u}/circuits/llm-instructions`)).data.payload}catch(t){throw console.error("Error fetching circuit authoring instructions:",t),new Error(t.message||"Failed to fetch circuit authoring instructions")}},J=async(c,t)=>{try{return(await c.put(`${u}/circuits/${t}/deprecate`,{})).data.payload}catch(e){throw console.error("Error deprecating circuit:",e),e}},rr=()=>{const[c,t]=P(v),e=K(),i=F({navigate:e,setState:t}),y=c.user.disk.currentUser,p=r=>l({queryKey:["circuits",r??""],queryFn:async()=>{if(!r)return[];const s=await x(i,r);return t({circuit:{mem:{circuitsByUser:{...c.circuit.mem.circuitsByUser,[r]:s}}}}),s},options:{enabled:!!r},navigate:e,setState:t}),h=(r,s)=>l({queryKey:["circuit-ping",r??"",s??""],queryFn:async()=>!r||!s?!1:await z(i,r,s),options:{enabled:!!r&&!!s},navigate:e,setState:t}),f=(r,s,o={})=>l({queryKey:["circuit",r??"",s??""],queryFn:async()=>{if(!r||!s)throw new Error("Username or circuitName is missing");const n=await V(i,r,s),a=`${r}-${n.name}`;return t({circuit:{mem:{circuits:{...c.circuit.mem.circuits,[a]:n}}}}),n},options:{enabled:!!r&&!!s,...o},navigate:e,setState:t}),C=(r,s)=>l({queryKey:["circuit-star",r??"",s??""],queryFn:async()=>{if(!c.session.disk.sessionToken||!r||!s)return!1;const o=await L(i,r,s),n=`${r}-${s}`;return o&&t({circuit:{mem:{circuitStarStatsByCircuitUID:{...c.circuit.mem.circuitStarStatsByCircuitUID,[n]:!0}}}}),!!o},options:{enabled:!!c.session.disk.sessionToken&&!!r&&!!s},navigate:e,setState:t}),E=(r,s={})=>l({queryKey:["circuit-primary-version",r??""],queryFn:async()=>{if(!r)return null;const o=await T(i,r);return o&&t({circuit:{mem:{primaryCircuitVersion:{...c.circuit.mem.primaryCircuitVersion,[r]:o}}}}),o??null},options:{enabled:!!r,...s},navigate:e,setState:t}),S=(r,s,o=1,n=10)=>l({queryKey:["circuit-embeds",r??"",s??"",o,n],queryFn:async()=>{if(!r||!s)return[];const a=(o-1)*n,d=await O(i,r,s,a,n),m=new Map;return d.forEach($=>m.set($.circuit_uid,$)),await Promise.all(Array.from(m.values()).map(async $=>{const w=await H(i,$.circuit_uid),k=await q(i,w.user_uid);return{...$,circuit:w,user:k}}))},options:{enabled:!!r&&!!s},navigate:e,setState:t}),U=g({mutationFn:async({username:r,circuitName:s})=>{if(!r||!s)throw new Error("Invalid input");return j(i,r,s)},options:{onSuccess:(r,{username:s,circuitName:o})=>{const n=`${s}-${o}`;t({circuit:{mem:{circuitStarStatsByCircuitUID:{...c.circuit.mem.circuitStarStatsByCircuitUID,[n]:!0}}}})}},navigate:e,setState:t}),b=g({mutationFn:async({username:r,circuitName:s})=>{if(!r||!s)throw new Error("Invalid input");return M(i,r,s)},options:{onSuccess:(r,{username:s,circuitName:o})=>{const n=`${s}-${o}`,a={...c.circuit.mem.circuitStarStatsByCircuitUID};delete a[n],t({circuit:{mem:{circuitStarStatsByCircuitUID:a}}})}},navigate:e,setState:t}),_=g({mutationFn:async r=>D(i,r),options:{onSuccess:r=>{if(r&&y){const s=`${y.username}-${r.name}`;t({circuit:{mem:{circuits:{...c.circuit.mem.circuits,[s]:r}}}})}}},navigate:e,setState:t}),B=g({mutationFn:async({username:r,circuitName:s,circuitPut:o})=>R(i,r,s,o),options:{onSuccess:(r,{username:s,circuitName:o})=>{var n;if(r){const a=`${s}-${o}`;t({circuit:{mem:{circuits:{...c.circuit.mem.circuits,[a]:r},circuitsByUser:{...c.circuit.mem.circuitsByUser,[s]:((n=c.circuit.mem.circuitsByUser[s])==null?void 0:n.map(d=>d.name===o?r:d))||[]}}}})}}},navigate:e,setState:t}),I=g({mutationFn:async({circuitUID:r})=>J(i,r),options:{onSuccess:(r,{circuitUID:s})=>{const o={...c.circuit.mem.circuits};Object.keys(o).forEach(a=>{o[a].uid===s&&(o[a]={...o[a],is_deprecated:!0})});const n={...c.circuit.mem.circuitsByUser};Object.keys(n).forEach(a=>{var d;n[a]=((d=n[a])==null?void 0:d.map(m=>m.uid===s?{...m,is_deprecated:!0}:m))||[]}),t({circuit:{mem:{circuits:o,circuitsByUser:n}}})}},navigate:e,setState:t}),A=async()=>await G(i);return{useCircuitsQuery:p,useCircuitQuery:f,useCircuitStarQuery:C,usePrimaryCircuitVersionQuery:E,useCircuitEmbedsQuery:S,useCircuitPingQuery:h,createCircuit:_.mutateAsync,createCircuitStar:U.mutateAsync,deleteCircuitStar:b.mutateAsync,updateCircuit:B.mutateAsync,deprecateCircuit:I.mutateAsync,getCircuitAuthoringInstructions:A}};export{rr as u};