(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,66899,e=>{"use strict";var t=e.i(843476),s=e.i(271645),r=e.i(994388),l=e.i(212931),a=e.i(199133),n=e.i(602869),o=e.i(269200),i=e.i(942232),c=e.i(977572),d=e.i(427612),m=e.i(64848),p=e.i(496020),x=e.i(94629),u=e.i(360820),h=e.i(871943),g=e.i(68155),f=e.i(592968),v=e.i(166406),j=e.i(152990),b=e.i(682830),y=e.i(916925);let N=e=>{let t=new Set,s=/\{\{(\w+)\}\}/g;if(e.messages.forEach(e=>{let r;for(;null!==(r=s.exec(e.content));)t.add(r[1])}),e.developerMessage){let r;for(;null!==(r=s.exec(e.developerMessage));)t.add(r[1])}return Array.from(t)},w=e=>{let t=N(e),s=`---
model: ${e.model}
`;return void 0!==e.config.temperature&&(s+=`temperature: ${e.config.temperature}
`),void 0!==e.config.max_tokens&&(s+=`max_tokens: ${e.config.max_tokens}
`),void 0!==e.config.top_p&&(s+=`top_p: ${e.config.top_p}
`),s+=`input:
  schema:
`,t.forEach(e=>{s+=`    ${e}: string
`}),s+=`output:
  format: text
`,e.tools&&e.tools.length>0&&(s+=`tools:
`,e.tools.forEach(e=>{let t=JSON.parse(e.json);s+=`  - ${JSON.stringify(t)}
`})),s+=`---

`,e.developerMessage&&""!==e.developerMessage.trim()&&(s+=`Developer: ${e.developerMessage.trim()}

`),e.messages.forEach(e=>{let t=e.role.charAt(0).toUpperCase()+e.role.slice(1);s+=`${t}: ${e.content}

`}),s.trim()},C=e=>{let t=Number(e);return Number.isFinite(t)?t:void 0},_=e=>{let t=e?.prompt_spec?.litellm_params?.dotprompt_content||"";if(!t)throw Error("No dotprompt_content found in API response");let s=t.split("---");if(s.length<3)throw Error("Invalid dotprompt format");let r=s[1],l=s.slice(2).join("---").trim(),a=(e=>{let t={config:{},tools:[]},s=e.split("\n");for(let e of(t.tools=(e=>{let t=[],s=!1;for(let r of e){let e=r.trim();if(!s){("tools:"===e||e.startsWith("tools:"))&&(s=!0);continue}if(r.length>0&&!/^\s/.test(r)&&"-"!==e&&!e.startsWith("-"))break;let l=e.match(/^-+\s*(.+)$/);if(!l)continue;let a=l[1].trim();if(a)try{let e=JSON.parse(a);t.push({name:e?.function?.name||"Unnamed Tool",description:e?.function?.description||"",json:JSON.stringify(e,null,2)})}catch{}}return t})(s),s)){let s=e.trim();if(!s||s.startsWith("input:")||s.startsWith("output:")||s.startsWith("schema:")||s.startsWith("format:")||s.startsWith("tools:")||s.startsWith("-"))continue;let r=s.indexOf(":");if(r<=0)continue;let l=s.substring(0,r).trim(),a=s.substring(r+1).trim();if("model"===l){t.model=a;continue}"temperature"===l&&(t.config.temperature=C(a)),"max_tokens"===l&&(t.config.max_tokens=C(a)),"top_p"===l&&(t.config.top_p=C(a))}return t})(r),n=(e=>{let t=/^(System|Developer|User|Assistant):(?:\s(.*)|\s*)$/,s=[],r="",l=null,a=[],n=()=>{if(!l)return;let e=a.join("\n").trim();"developer"===l?e&&(r=r?`${r}

${e}`:e):e?s.push({role:l,content:e}):s.push({role:l,content:""})};for(let s of e.split("\n")){let e=s.match(t);if(e){n(),l=e[1].toLowerCase(),a=[e[2]??""];continue}l&&a.push(s)}return n(),{developerMessage:r,messages:s}})(l),o=e?.prompt_spec?.prompt_id||"Unnamed Prompt";return{name:k(o)||o,model:a.model||"gpt-4o",config:a.config,tools:a.tools,developerMessage:n.developerMessage,messages:n.messages.length>0?n.messages:[{role:"user",content:"Enter task specifics. Use {{template_variables}} for dynamic inputs"}],environment:e?.prompt_spec?.environment||e?.prompt_spec?.prompt_info?.environment||"development"}},k=e=>e?e.replace(/[._-]v\d+$/,""):"",T=e=>e?.prompt_id||"",S=e=>{try{let t=e.litellm_params;if(t?.dotprompt_content){let e=t.dotprompt_content.match(/model:\s*([^\n]+)/);if(e)return e[1].trim()}if(t?.prompt_data?.model)return t.prompt_data.model;if(t?.model)return t.model;return null}catch(e){return console.error("Error extracting model:",e),null}},$=({promptsList:e,isLoading:l,onPromptClick:a,onDeleteClick:N,accessToken:w,isAdmin:C})=>{let[_,k]=(0,s.useState)([{id:"created_at",desc:!0}]),[T,$]=(0,s.useState)(new Map);(0,s.useEffect)(()=>{(async()=>{if(w)try{let e=await (0,n.modelHubCall)(w);if(e?.data){let t=new Map;e.data.forEach(e=>{t.set(e.model_group,e)}),$(t)}}catch(e){console.error("Error fetching model hub data:",e)}})()},[w]);let P=e=>e?new Date(e).toLocaleString():"-",I=[{header:"Prompt ID",accessorKey:"prompt_id",cell:e=>{let s=String(e.getValue()||""),l=s.length>25?`${s.slice(0,25)}...`:s;return(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(f.Tooltip,{title:s,children:(0,t.jsx)(r.Button,{size:"xs",variant:"light",className:"font-mono text-blue-500 bg-blue-50 hover:bg-blue-100 text-xs font-normal px-2 py-0.5 text-left overflow-hidden truncate min-w-[220px] justify-start",onClick:()=>e.getValue()&&a?.(e.getValue()),children:l})}),(0,t.jsx)(f.Tooltip,{title:"Copy prompt ID",children:(0,t.jsx)(v.CopyOutlined,{onClick:e=>{e.stopPropagation(),navigator.clipboard.writeText(s)},className:"cursor-pointer text-gray-500 hover:text-blue-500 text-xs"})})]})}},{header:"Model",accessorKey:"model",cell:({row:e})=>{let s=S(e.original);if(!s)return(0,t.jsx)("span",{className:"text-xs text-gray-400",children:"-"});let r=((e,t)=>{if(!e)return null;let s=t.get(e);return s&&s.providers&&s.providers.length>0?s.providers[0]:null})(s,T),{logo:l}=(0,y.getProviderLogoAndName)(r||"");return(0,t.jsx)(f.Tooltip,{title:s,children:(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)("div",{className:"flex-shrink-0",children:r&&l?(0,t.jsx)("img",{src:l,alt:`${r} logo`,className:"w-4 h-4",onError:e=>{let t=e.currentTarget,s=t.parentElement;if(s&&s.contains(t))try{let e=document.createElement("div");e.className="w-4 h-4 rounded-full bg-gray-200 flex items-center justify-center text-xs",e.textContent=r?.charAt(0)||"-",s.replaceChild(e,t)}catch(e){console.error("Failed to replace provider logo fallback:",e)}}}):(0,t.jsx)("div",{className:"w-4 h-4 rounded-full bg-gray-200 flex items-center justify-center text-xs",children:"-"})}),(0,t.jsx)("span",{className:"max-w-[15ch] truncate block",children:s})]})})}},{header:"Created At",accessorKey:"created_at",cell:({row:e})=>{let s=e.original;return(0,t.jsx)(f.Tooltip,{title:s.created_at,children:(0,t.jsx)("span",{className:"text-xs",children:P(s.created_at)})})}},{header:"Updated At",accessorKey:"updated_at",cell:({row:e})=>{let s=e.original;return(0,t.jsx)(f.Tooltip,{title:s.updated_at,children:(0,t.jsx)("span",{className:"text-xs",children:P(s.updated_at)})})}},{header:"Environment",accessorKey:"environment",cell:({row:e})=>{let s=e.original.environment||"development";return(0,t.jsx)("span",{className:`text-xs px-2 py-0.5 rounded ${{production:"text-red-600 bg-red-50",staging:"text-yellow-600 bg-yellow-50",development:"text-green-600 bg-green-50"}[s]||"text-gray-600 bg-gray-50"}`,children:s})}},{header:"Created By",accessorKey:"created_by",cell:({row:e})=>{let s=e.original;return(0,t.jsx)("span",{className:"text-xs text-gray-600",children:s.created_by||"-"})}},{header:"Type",accessorKey:"prompt_info.prompt_type",cell:({row:e})=>{let s=e.original;return(0,t.jsx)(f.Tooltip,{title:s.prompt_info.prompt_type,children:(0,t.jsx)("span",{className:"text-xs",children:s.prompt_info.prompt_type})})}},...C?[{header:"Actions",id:"actions",enableSorting:!1,cell:({row:e})=>{let s=e.original,l=s.prompt_id||"Unknown Prompt";return(0,t.jsx)("div",{className:"flex items-center gap-1",children:(0,t.jsx)(f.Tooltip,{title:"Delete prompt",children:(0,t.jsx)(r.Button,{size:"xs",variant:"light",color:"red",onClick:e=>{e.stopPropagation(),N?.(s.prompt_id,l)},icon:g.TrashIcon,className:"text-red-500 hover:text-red-700 hover:bg-red-50"})})})}}]:[]],B=(0,j.useReactTable)({data:e,columns:I,state:{sorting:_},onSortingChange:k,getCoreRowModel:(0,b.getCoreRowModel)(),getSortedRowModel:(0,b.getSortedRowModel)(),enableSorting:!0});return(0,t.jsx)("div",{className:"rounded-lg custom-border relative",children:(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)(o.Table,{className:"[&_td]:py-0.5 [&_th]:py-1",children:[(0,t.jsx)(d.TableHead,{children:B.getHeaderGroups().map(e=>(0,t.jsx)(p.TableRow,{children:e.headers.map(e=>(0,t.jsx)(m.TableHeaderCell,{className:"py-1 h-8",onClick:e.column.getToggleSortingHandler(),children:(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsx)("div",{className:"flex items-center",children:e.isPlaceholder?null:(0,j.flexRender)(e.column.columnDef.header,e.getContext())}),(0,t.jsx)("div",{className:"w-4",children:e.column.getIsSorted()?({asc:(0,t.jsx)(u.ChevronUpIcon,{className:"h-4 w-4 text-blue-500"}),desc:(0,t.jsx)(h.ChevronDownIcon,{className:"h-4 w-4 text-blue-500"})})[e.column.getIsSorted()]:(0,t.jsx)(x.SwitchVerticalIcon,{className:"h-4 w-4 text-gray-400"})})]})},e.id))},e.id))}),(0,t.jsx)(i.TableBody,{children:l?(0,t.jsx)(p.TableRow,{children:(0,t.jsx)(c.TableCell,{colSpan:I.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"Loading..."})})})}):e.length>0?B.getRowModel().rows.map(e=>(0,t.jsx)(p.TableRow,{className:"h-8",children:e.getVisibleCells().map(e=>(0,t.jsx)(c.TableCell,{className:"py-0.5 max-h-8 overflow-hidden text-ellipsis whitespace-nowrap",children:(0,j.flexRender)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,t.jsx)(p.TableRow,{children:(0,t.jsx)(c.TableCell,{colSpan:I.length,className:"h-8 text-center",children:(0,t.jsx)("div",{className:"text-center text-gray-500",children:(0,t.jsx)("p",{children:"No prompts found"})})})})})]})})})};var P=e.i(304967),I=e.i(629569),B=e.i(599724),E=e.i(350967),O=e.i(389083),A=e.i(197647),D=e.i(653824),M=e.i(881073),R=e.i(404206),z=e.i(723731),L=e.i(464571),F=e.i(530212),U=e.i(797672),V=e.i(500330),H=e.i(678784),J=e.i(118366),W=e.i(727749),K=e.i(653496),q=e.i(245094),G=e.i(650056),X=e.i(219470);let Y=({promptId:e,model:n,promptVariables:o={},accessToken:i,version:c="1",proxySettings:d})=>{let[m,p]=(0,s.useState)(!1),[x,u]=(0,s.useState)("curl"),[h,g]=(0,s.useState)("basic"),[f,v]=(0,s.useState)(""),j=window.location.origin,b=d?.LITELLM_UI_API_DOC_BASE_URL;b&&b.trim()?j=b:d?.PROXY_BASE_URL&&(j=d.PROXY_BASE_URL);let y=i||"sk-1234";return s.default.useEffect(()=>{m&&v((()=>{let t=Object.keys(o).length>0;if("curl"===x)if("basic"===h)return`curl -X POST '${j}/chat/completions' \\
  -H 'Content-Type: application/json' \\
  -H 'Authorization: Bearer ${y}' \\
  -d '{
    "model": "${n}",
    "prompt_id": "${e}"${t?`,
    "prompt_variables": ${JSON.stringify(o,null,6).replace(/\n/g,"\n    ")}`:""}
  }' | jq`;else if("messages"===h)return`curl -X POST '${j}/chat/completions' \\
  -H 'Content-Type: application/json' \\
  -H 'Authorization: Bearer ${y}' \\
  -d '{
    "model": "${n}",
    "prompt_id": "${e}"${t?`,
    "prompt_variables": ${JSON.stringify(o,null,6).replace(/\n/g,"\n    ")}`:""},
    "messages": [
      {
        "role": "user",
        "content": "hi"
      }
    ]
  }' | jq`;else return`curl -X POST '${j}/chat/completions' \\
  -H 'Content-Type: application/json' \\
  -H 'Authorization: Bearer ${y}' \\
  -d '{
    "model": "${n}",
    "prompt_id": "${e}",
    "prompt_version": ${c},
    "messages": [
      {
        "role": "user",
        "content": "Who are u"
      }
    ]
  }' | jq`;if("python"===x){let s=`import openai

client = openai.OpenAI(
    api_key="${y}",
    base_url="${j}"
)
`;return"basic"===h?`${s}
response = client.chat.completions.create(
    model="${n}",
    extra_body={
        "prompt_id": "${e}"${t?`,
        "prompt_variables": ${JSON.stringify(o,null,8).replace(/\n/g,"\n        ")}`:""}
    }
)

print(response)`:"messages"===h?`${s}
response = client.chat.completions.create(
    model="${n}",
    messages=[
        {"role": "user", "content": "hi"}
    ],
    extra_body={
        "prompt_id": "${e}"${t?`,
        "prompt_variables": ${JSON.stringify(o,null,8).replace(/\n/g,"\n        ")}`:""}
    }
)

print(response)`:`${s}
response = client.chat.completions.create(
    model="${n}",
    messages=[
        {"role": "user", "content": "Who are u"}
    ],
    extra_body={
        "prompt_id": "${e}",
        "prompt_version": ${c}
    }
)

print(response)`}{let s=`import OpenAI from 'openai';

const client = new OpenAI({
    apiKey: "${y}",
    baseURL: "${j}"
});
`;return"basic"===h?`${s}
async function main() {
    const response = await client.chat.completions.create({
        model: "${n}",
        ${t?`prompt_id: "${e}",
        prompt_variables: ${JSON.stringify(o,null,8).replace(/\n/g,"\n        ")}`:`prompt_id: "${e}"`}
    });
    
    console.log(response);
}

main();`:"messages"===h?`${s}
async function main() {
    const response = await client.chat.completions.create({
        model: "${n}",
        messages: [
            { role: "user", content: "hi" }
        ],
        ${t?`prompt_id: "${e}",
        prompt_variables: ${JSON.stringify(o,null,8).replace(/\n/g,"\n        ")}`:`prompt_id: "${e}"`}
    });
    
    console.log(response);
}

main();`:`${s}
async function main() {
    const response = await client.chat.completions.create({
        model: "${n}",
        messages: [
            { role: "user", content: "Who are u" }
        ],
        prompt_id: "${e}",
        prompt_version: ${c}
    });
    
    console.log(response);
}

main();`}})())},[m,x,h,e,n,o]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.Button,{variant:"secondary",icon:q.CodeOutlined,onClick:()=>{p(!0)},children:"Get Code"}),(0,t.jsxs)(l.Modal,{title:"Generated Code",open:m,onCancel:()=>{p(!1)},footer:null,width:800,children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(B.Text,{className:"font-medium block mb-1 text-gray-700",children:"Language"}),(0,t.jsx)(a.Select,{value:x,onChange:e=>u(e),style:{width:180},options:[{value:"curl",label:"cURL"},{value:"python",label:"Python (OpenAI SDK)"},{value:"javascript",label:"JavaScript (OpenAI SDK)"}]})]}),(0,t.jsx)(L.Button,{onClick:()=>{navigator.clipboard.writeText(f),W.default.success("Copied to clipboard!")},children:"Copy to Clipboard"})]}),(0,t.jsx)(K.Tabs,{activeKey:h,onChange:g,items:[{label:"Basic",key:"basic"},{label:"With Messages",key:"messages"},{label:"With Version",key:"version"}]}),(0,t.jsx)(G.Prism,{language:"curl"===x?"bash":"python"===x?"python":"javascript",style:X.coy,wrapLines:!0,wrapLongLines:!0,className:"rounded-md mt-0",customStyle:{maxHeight:"60vh",overflowY:"auto",marginTop:0,borderTopLeftRadius:0,borderTopRightRadius:0},children:f})]})]})},Z=({promptId:e,onClose:a,accessToken:x,isAdmin:u,onDelete:h,onEdit:f})=>{let[v,j]=(0,s.useState)(null),[b,y]=(0,s.useState)(null),[N,w]=(0,s.useState)(null),[C,_]=(0,s.useState)(!0),[k,$]=(0,s.useState)({}),[K,q]=(0,s.useState)(!1),[G,X]=(0,s.useState)(!1),[Z,Q]=(0,s.useState)([]),[ee,et]=(0,s.useState)(null),[es,er]=(0,s.useState)([]),[el,ea]=(0,s.useState)(null),[en,eo]=(0,s.useState)(!1),ei=async t=>{try{if(_(!0),!x)return;let s=await (0,n.getPromptInfo)(x,e,t);j(s.prompt_spec),y(s.raw_prompt_template),w(s),s.environments&&s.environments.length>0&&(Q(s.environments),ee||et(s.prompt_spec.environment||s.environments[0])),ea(s.prompt_spec.version||null)}catch(e){W.default.fromBackend("Failed to load prompt information"),console.error("Error fetching prompt info:",e)}finally{_(!1)}},ec=async t=>{if(x){eo(!0);try{let s=await (0,n.getPromptVersions)(x,e,t);er(s.prompts||[])}catch{er([])}finally{eo(!1)}}},ed=(0,s.useRef)(!0);if((0,s.useEffect)(()=>{et(null),Q([]),er([]),ei()},[e,x]),(0,s.useEffect)(()=>{if(ed.current){ed.current=!1,ee&&x&&ec(ee);return}ee&&x&&(ei(ee),ec(ee))},[ee]),C&&!v)return(0,t.jsx)("div",{className:"p-4",children:"Loading..."});if(!v)return(0,t.jsx)("div",{className:"p-4",children:"Prompt not found"});let em=e=>e?new Date(e).toLocaleString():"-",ep=async(e,t)=>{await (0,V.copyToClipboard)(e)&&($(e=>({...e,[t]:!0})),setTimeout(()=>{$(e=>({...e,[t]:!1}))},2e3))},ex=async()=>{if(x&&v){X(!0);try{await (0,n.deletePromptCall)(x,eg),W.default.success(`Prompt "${eg}" deleted successfully`),h?.(),a()}catch(e){console.error("Error deleting prompt:",e),W.default.fromBackend("Failed to delete prompt")}finally{X(!1),q(!1)}}},eu=async t=>{if(!x||!ee)return;let s=t.version||1;ea(s);try{let t=`${e}.v${s}`,r=await (0,n.getPromptInfo)(x,t,ee);j(r.prompt_spec),y(r.raw_prompt_template),w(r)}catch{W.default.fromBackend(`Failed to load version v${s}`)}},eh=v&&S(v)||"gpt-4o",eg=T(v),ef=(e=>{let t;if(e?.version)return String(e.version);var s=(t=T(e),e?.litellm_params?.prompt_id||t);if(!s)return"1";let r=s.match(/[._-]v(\d+)$/);return r?r[1]:"1"})(v),ev=es.length>0?Math.max(...es.map(e=>e.version||1)):null,ej=null!==ev&&null!==el&&el<ev;return(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(r.Button,{icon:F.ArrowLeftIcon,variant:"light",onClick:a,className:"mb-4",children:"Back to Prompts"}),(0,t.jsxs)("div",{className:"flex justify-between items-start mb-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(I.Title,{children:"Prompt Details"}),(0,t.jsxs)("div",{className:"flex items-center cursor-pointer",children:[(0,t.jsx)(B.Text,{className:"text-gray-500 font-mono",children:eg}),(0,t.jsx)(L.Button,{type:"text",size:"small",icon:k["prompt-id"]?(0,t.jsx)(H.CheckIcon,{size:12}):(0,t.jsx)(J.CopyIcon,{size:12}),onClick:()=>ep(eg,"prompt-id"),className:`left-2 z-10 transition-all duration-200 ${k["prompt-id"]?"text-green-600 bg-green-50 border-green-200":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"}`})]})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(Y,{promptId:eg,model:eh,promptVariables:(e=>{let t;if(!e)return{};let s={},r=/\{\{(\w+)\}\}/g;for(;null!==(t=r.exec(e));){let e=t[1];s[e]||(s[e]=`example_${e}`)}return s})(b?.content),accessToken:x,version:ef}),(0,t.jsx)(r.Button,{icon:U.PencilIcon,variant:"primary",onClick:()=>f?.(N),className:"flex items-center",children:"Prompt Studio"}),u&&(0,t.jsx)(r.Button,{icon:g.TrashIcon,variant:"secondary",onClick:()=>{q(!0)},className:"flex items-center",children:"Delete Prompt"})]})]})]}),Z.length>0&&(0,t.jsx)("div",{className:"flex gap-2 mb-4",children:[...Z].sort((e,t)=>{let s={development:0,staging:1,production:2};return(s[e]??99)-(s[t]??99)}).map(e=>(0,t.jsxs)("button",{onClick:()=>{et(e),ea(null)},className:`px-4 py-2 rounded-lg text-sm font-medium transition-all ${ee===e?"production"===e?"bg-red-100 text-red-800 border-2 border-red-300":"staging"===e?"bg-yellow-100 text-yellow-800 border-2 border-yellow-300":"bg-green-100 text-green-800 border-2 border-green-300":"bg-gray-100 text-gray-600 border-2 border-transparent hover:bg-gray-200"}`,children:[e,es.length>0&&ee===e&&(0,t.jsxs)("span",{className:"ml-1 text-xs opacity-75",children:["(v",ev,")"]})]},e))}),ej&&(0,t.jsxs)("div",{className:"mb-4 p-3 bg-amber-50 border border-amber-200 rounded-lg flex items-center justify-between",children:[(0,t.jsxs)(B.Text,{className:"text-amber-800",children:["Viewing v",el," — not the latest version (v",ev,")"]}),(0,t.jsx)(r.Button,{variant:"light",size:"xs",onClick:()=>{let e=es.find(e=>e.version===ev);e&&eu(e)},children:"Go to latest"})]}),(0,t.jsxs)(D.TabGroup,{children:[(0,t.jsxs)(M.TabList,{className:"mb-4",children:[(0,t.jsx)(A.Tab,{children:"Overview"},"overview"),b?(0,t.jsx)(A.Tab,{children:"Prompt Template"},"prompt-template"):(0,t.jsx)(t.Fragment,{}),(0,t.jsx)(A.Tab,{children:"Raw JSON"},"raw-json")]}),(0,t.jsxs)(z.TabPanels,{children:[(0,t.jsxs)(R.TabPanel,{children:[(0,t.jsxs)(E.Grid,{numItems:1,numItemsSm:2,numItemsLg:4,className:"gap-4",children:[(0,t.jsxs)(P.Card,{children:[(0,t.jsx)(B.Text,{children:"Version"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsx)(I.Title,{children:ef}),(0,t.jsxs)(O.Badge,{color:"blue",className:"mt-1",children:["v",ef]})]})]}),(0,t.jsxs)(P.Card,{children:[(0,t.jsx)(B.Text,{children:"Prompt Type"}),(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(I.Title,{children:v.prompt_info?.prompt_type||"-"})})]}),(0,t.jsxs)(P.Card,{children:[(0,t.jsx)(B.Text,{children:"Created By"}),(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(I.Title,{className:"text-sm",children:v.created_by||"-"})})]}),(0,t.jsxs)(P.Card,{children:[(0,t.jsx)(B.Text,{children:"Created At"}),(0,t.jsxs)("div",{className:"mt-2",children:[(0,t.jsx)(I.Title,{className:"text-sm",children:em(v.created_at)}),(0,t.jsxs)(B.Text,{className:"text-xs",children:["Updated: ",em(v.updated_at)]})]})]})]}),(0,t.jsxs)(P.Card,{className:"mt-6",children:[(0,t.jsxs)(I.Title,{className:"mb-3",children:["Version History — ",ee]}),en?(0,t.jsx)(B.Text,{children:"Loading versions..."}):es.length>0?(0,t.jsxs)(o.Table,{children:[(0,t.jsx)(d.TableHead,{children:(0,t.jsxs)(p.TableRow,{children:[(0,t.jsx)(m.TableHeaderCell,{children:"Version"}),(0,t.jsx)(m.TableHeaderCell,{children:"Created By"}),(0,t.jsx)(m.TableHeaderCell,{children:"Date"}),(0,t.jsx)(m.TableHeaderCell,{children:"Actions"})]})}),(0,t.jsx)(i.TableBody,{children:es.map(e=>{let s=e.version||1,l=s===el,a=s===ev;return(0,t.jsxs)(p.TableRow,{className:`cursor-pointer hover:bg-blue-50 transition-colors ${l?"bg-blue-50":""}`,onClick:()=>eu(e),children:[(0,t.jsxs)(c.TableCell,{children:[(0,t.jsxs)("span",{className:l?"font-bold":"",children:["v",s]}),a&&(0,t.jsx)(O.Badge,{color:"blue",className:"ml-2",size:"xs",children:"latest"})]}),(0,t.jsx)(c.TableCell,{children:(0,t.jsx)("span",{className:"text-sm",children:e.created_by||"-"})}),(0,t.jsx)(c.TableCell,{children:(0,t.jsx)("span",{className:"text-sm",children:em(e.created_at)})}),(0,t.jsx)(c.TableCell,{children:(0,t.jsx)(r.Button,{icon:U.PencilIcon,variant:"light",size:"xs",onClick:t=>{t.stopPropagation();let s={prompt_spec:{...e,prompt_id:eg,environment:ee},raw_prompt_template:l?b:null};f?.(s)},children:"Edit"})})]},s)})})]}):(0,t.jsxs)(B.Text,{className:"text-gray-400",children:["No versions found in ",ee]})]})]}),b&&(0,t.jsx)(R.TabPanel,{children:(0,t.jsxs)(P.Card,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(I.Title,{children:"Prompt Template"}),(0,t.jsx)(L.Button,{type:"text",size:"small",icon:k["prompt-content"]?(0,t.jsx)(H.CheckIcon,{size:16}):(0,t.jsx)(J.CopyIcon,{size:16}),onClick:()=>ep(b.content,"prompt-content"),className:`transition-all duration-200 ${k["prompt-content"]?"text-green-600 bg-green-50 border-green-200":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"}`,children:k["prompt-content"]?"Copied!":"Copy Content"})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(B.Text,{className:"font-medium",children:"Template ID"}),(0,t.jsx)("div",{className:"font-mono text-sm bg-gray-50 p-2 rounded",children:b.litellm_prompt_id})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)(B.Text,{className:"font-medium",children:"Content"}),(0,t.jsx)("div",{className:"mt-2 p-4 bg-gray-50 rounded-md border overflow-auto max-h-96",children:(0,t.jsx)("pre",{className:"text-sm text-gray-800 whitespace-pre-wrap",children:b.content})})]}),b.metadata&&Object.keys(b.metadata).length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)(B.Text,{className:"font-medium",children:"Template Metadata"}),(0,t.jsx)("div",{className:"mt-2 p-3 bg-gray-50 rounded-md border",children:(0,t.jsx)("pre",{className:"text-xs text-gray-800 whitespace-pre-wrap overflow-auto max-h-64",children:JSON.stringify(b.metadata,null,2)})})]})]})]})}),(0,t.jsx)(R.TabPanel,{children:(0,t.jsxs)(P.Card,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)(I.Title,{children:"Raw API Response"}),(0,t.jsx)(L.Button,{type:"text",size:"small",icon:k["raw-json"]?(0,t.jsx)(H.CheckIcon,{size:16}):(0,t.jsx)(J.CopyIcon,{size:16}),onClick:()=>ep(JSON.stringify(N,null,2),"raw-json"),className:`transition-all duration-200 ${k["raw-json"]?"text-green-600 bg-green-50 border-green-200":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"}`,children:k["raw-json"]?"Copied!":"Copy JSON"})]}),(0,t.jsx)("div",{className:"p-4 bg-gray-50 rounded-md border overflow-auto",children:(0,t.jsx)("pre",{className:"text-xs text-gray-800 whitespace-pre-wrap",children:JSON.stringify(N,null,2)})})]})})]})]}),(0,t.jsxs)(l.Modal,{title:"Delete Prompt",open:K,onOk:ex,onCancel:()=>{q(!1)},confirmLoading:G,okText:"Delete",okButtonProps:{danger:!0},children:[(0,t.jsxs)("p",{children:["Are you sure you want to delete prompt: ",(0,t.jsx)("strong",{children:eg}),"?"]}),(0,t.jsx)("p",{children:"This action cannot be undone."})]})]})};var Q=e.i(808613),ee=e.i(515831),et=e.i(312361),es=e.i(779241),er=e.i(519756);let{Option:el}=a.Select,ea=({visible:e,onClose:r,accessToken:o,onSuccess:i})=>{let[c]=Q.Form.useForm(),[d,m]=(0,s.useState)(!1),[p,x]=(0,s.useState)([]),[u,h]=(0,s.useState)("dotprompt"),g=()=>{c.resetFields(),x([]),h("dotprompt"),r()},f=async()=>{try{let e=await c.validateFields();if(console.log("values: ",e),!o)return void W.default.fromBackend("Access token is required");if("dotprompt"===u&&0===p.length)return void W.default.fromBackend("Please upload a .prompt file");m(!0);let t={};if("dotprompt"===u&&p.length>0){let s=p[0].originFileObj;try{let r=await (0,n.convertPromptFileToJson)(o,s);console.log("Conversion result:",r),t={prompt_id:e.prompt_id,litellm_params:{prompt_integration:"dotprompt",prompt_id:r.prompt_id,prompt_data:r.json_data},prompt_info:{prompt_type:"db"}}}catch(e){console.error("Error converting prompt file:",e),W.default.fromBackend("Failed to convert prompt file to JSON"),m(!1);return}}try{await (0,n.createPromptCall)(o,t),W.default.success("Prompt created successfully!"),g(),i()}catch(e){console.error("Error creating prompt:",e),W.default.fromBackend("Failed to create prompt")}}catch(e){console.error("Form validation error:",e)}finally{m(!1)}};return(0,t.jsx)(l.Modal,{title:"Add New Prompt",open:e,onCancel:g,footer:[(0,t.jsx)(L.Button,{onClick:g,children:"Cancel"},"cancel"),(0,t.jsx)(L.Button,{loading:d,onClick:f,children:"Create Prompt"},"submit")],width:600,children:(0,t.jsxs)(Q.Form,{form:c,layout:"vertical",requiredMark:!1,children:[(0,t.jsx)(Q.Form.Item,{label:"Prompt ID",name:"prompt_id",rules:[{required:!0,message:"Please enter a prompt ID"},{pattern:/^[a-zA-Z0-9_-]+$/,message:"Prompt ID can only contain letters, numbers, underscores, and hyphens"}],children:(0,t.jsx)(es.TextInput,{placeholder:"Enter unique prompt ID (e.g., my_prompt_id)"})}),(0,t.jsx)(Q.Form.Item,{label:"Prompt Integration",name:"prompt_integration",initialValue:"dotprompt",children:(0,t.jsx)(a.Select,{value:u,onChange:h,children:(0,t.jsx)(el,{value:"dotprompt",children:"dotprompt"})})}),"dotprompt"===u&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(et.Divider,{}),(0,t.jsxs)(Q.Form.Item,{label:"Prompt File",extra:"Upload a .prompt file that follows the Dotprompt specification",children:[(0,t.jsx)(ee.Upload,{...{beforeUpload:e=>(e.name.endsWith(".prompt")||W.default.fromBackend("Please upload a .prompt file"),!1),fileList:p,onChange:({fileList:e})=>{x(e.slice(-1))},onRemove:()=>{x([])}},children:(0,t.jsx)(L.Button,{icon:(0,t.jsx)(er.UploadOutlined,{}),children:"Select .prompt File"})}),p.length>0&&(0,t.jsxs)("div",{className:"mt-2 text-sm text-gray-600",children:["Selected: ",p[0].name]})]})]})]})})},en=`{
  "type": "function",
  "function": {
    "name": "get_current_weather",
    "description": "Get the current weather in a given location",
    "parameters": {
      "type": "object",
      "properties": {
        "location": {
          "type": "string",
          "description": "The city and state, e.g. San Francisco, CA"
        },
        "unit": {
          "type": "string",
          "enum": ["celsius", "fahrenheit"]
        }
      },
      "required": ["location"]
    }
  }
}`,eo=({visible:e,initialJson:r,onSave:a,onClose:n})=>{let[o,i]=(0,s.useState)(r||en),[c,d]=(0,s.useState)(null),m=()=>{d(null),n()};return(0,t.jsx)(l.Modal,{title:(0,t.jsx)("div",{className:"flex items-center justify-between",children:(0,t.jsx)("span",{className:"text-lg font-medium",children:"Add Tool"})}),open:e,onCancel:m,width:800,footer:[(0,t.jsx)(L.Button,{onClick:m,children:"Cancel"},"cancel"),(0,t.jsx)(L.Button,{type:"primary",onClick:()=>{try{JSON.parse(o),d(null),a(o)}catch(e){d("Invalid JSON format. Please check your syntax.")}},children:"Add"},"save")],children:(0,t.jsxs)("div",{className:"space-y-3",children:[c&&(0,t.jsx)("div",{className:"p-3 bg-red-50 border border-red-200 rounded text-red-600 text-sm",children:c}),(0,t.jsx)("textarea",{value:o,onChange:e=>i(e.target.value),className:"w-full min-h-[400px] px-4 py-3 border border-gray-300 rounded-lg text-sm font-mono focus:outline-none focus:ring-2 focus:ring-blue-500 resize-none",placeholder:"Paste your tool JSON here..."})]})})};var ei=e.i(311451),ec=e.i(516430),ed=e.i(475254);let em=(0,ed.default)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]),ep=(0,ed.default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]),ex=({promptName:e,onNameChange:s,onBack:l,onSave:n,isSaving:o,editMode:i=!1,onShowHistory:c,version:d,promptModel:m="gpt-4o",promptVariables:p={},accessToken:x,proxySettings:u,environment:h,onEnvironmentChange:g})=>(0,t.jsxs)("div",{className:"bg-white border-b border-gray-200 px-6 py-3 flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,t.jsx)(r.Button,{icon:ec.ArrowLeftIcon,variant:"light",onClick:l,size:"xs",children:"Back"}),(0,t.jsx)(ei.Input,{value:e,onChange:e=>s(e.target.value),className:"text-base font-medium border-none shadow-none",style:{width:"200px"}}),d&&(0,t.jsx)("span",{className:"px-2 py-0.5 text-xs bg-blue-100 text-blue-700 rounded font-medium",children:d}),(0,t.jsx)(a.Select,{value:h,onChange:g,style:{width:140},size:"small",options:[{label:"Development",value:"development"},{label:"Staging",value:"staging"},{label:"Production",value:"production"}]}),(0,t.jsx)("span",{className:"px-2 py-0.5 text-xs bg-gray-100 text-gray-600 rounded",children:"Draft"}),(0,t.jsx)("span",{className:"text-xs text-gray-400",children:"Unsaved changes"})]}),(0,t.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,t.jsx)(Y,{promptId:e,model:m,promptVariables:p,accessToken:x,version:d?.replace("v","")||"1",proxySettings:u}),i&&c&&(0,t.jsx)(r.Button,{icon:ep,variant:"secondary",onClick:c,children:"History"}),(0,t.jsx)(r.Button,{icon:em,onClick:n,loading:o,disabled:o,children:i?"Update":"Save"})]})]});var eu=e.i(440987),eh=e.i(992619);let eg=({model:e,temperature:r=1,maxTokens:l=1e3,accessToken:a,onModelChange:n,onTemperatureChange:o,onMaxTokensChange:i})=>{let[c,d]=(0,s.useState)(!1);return(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"w-[300px]",children:(0,t.jsx)(eh.default,{accessToken:a||"",value:e,onChange:n,showLabel:!1})}),(0,t.jsxs)("button",{onClick:()=>d(!c),className:"flex items-center gap-2 px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-lg hover:bg-gray-50",children:[(0,t.jsx)(eu.SettingsIcon,{size:16}),(0,t.jsx)("span",{children:"Parameters"})]}),c&&(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-30",children:(0,t.jsxs)("div",{className:"bg-white rounded-lg shadow-xl p-6 w-96",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,t.jsx)("h3",{className:"text-lg font-semibold",children:"Model Parameters"}),(0,t.jsx)("button",{onClick:()=>d(!1),className:"text-gray-400 hover:text-gray-600",children:"✕"})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)("div",{children:(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsx)(B.Text,{className:"text-sm text-gray-700",children:"Temperature"}),(0,t.jsx)(ei.Input,{type:"number",size:"small",min:0,max:2,step:.1,value:r,onChange:e=>o(parseFloat(e.target.value)||0),className:"w-20"})]})}),(0,t.jsx)("div",{children:(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsx)(B.Text,{className:"text-sm text-gray-700",children:"Max Tokens"}),(0,t.jsx)(ei.Input,{type:"number",size:"small",min:1,max:32768,value:l,onChange:e=>i(parseInt(e.target.value)||1e3),className:"w-24"})]})})]})]})})]})};var ef=e.i(837007);let ev=(0,ed.default)("trash",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}]]),ej=({tools:e,onAddTool:s,onEditTool:r,onRemoveTool:l})=>(0,t.jsxs)(P.Card,{className:"p-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsx)(B.Text,{className:"text-sm font-medium",children:"Tools"}),(0,t.jsxs)("button",{onClick:s,className:"text-xs text-blue-600 hover:text-blue-700 flex items-center",children:[(0,t.jsx)(ef.PlusIcon,{size:14,className:"mr-1"}),"Add"]})]}),0===e.length?(0,t.jsx)(B.Text,{className:"text-gray-500 text-xs",children:"No tools added"}):(0,t.jsx)("div",{className:"space-y-2",children:e.map((e,s)=>(0,t.jsxs)("div",{className:"flex items-center justify-between p-2 bg-gray-50 border border-gray-200 rounded",children:[(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("div",{className:"font-medium text-xs truncate",children:e.name}),(0,t.jsx)("div",{className:"text-xs text-gray-500 truncate",children:e.description})]}),(0,t.jsxs)("div",{className:"flex items-center space-x-1 ml-2",children:[(0,t.jsx)("button",{onClick:()=>r(s),className:"text-xs text-blue-600 hover:text-blue-700",children:"Edit"}),(0,t.jsx)("button",{onClick:()=>l(s),className:"text-gray-400 hover:text-red-500",children:(0,t.jsx)(ev,{size:14})})]})]},s))})]});var eb=e.i(282786),ey=e.i(262218),eN=e.i(751904);let{TextArea:ew}=ei.Input,eC=({value:e,onChange:r,placeholder:l,rows:a=4,className:n})=>{let[o,i]=(0,s.useState)(null),[c,d]=(0,s.useState)(""),m=()=>{c.trim()&&o&&(r(e.substring(0,o.start)+`{{${c}}}`+e.substring(o.end)),i(null),d(""))},p=(()=>{let t,s=/\{\{(\w+)\}\}/g,r=[];for(;null!==(t=s.exec(e));)r.push({name:t[1],start:t.index,end:t.index+t[0].length});return r})();return(0,t.jsxs)("div",{className:`variable-textarea-container ${n}`,children:[(0,t.jsx)("style",{children:`
          .variable-highlight-text {
            color: #f97316;
            background-color: #fff7ed;
            border-radius: 4px;
            padding: 0 2px;
            border: 1px solid #fed7aa;
            font-family: monospace;
          }
        `}),(0,t.jsx)(ew,{value:e,onChange:e=>r(e.target.value),placeholder:l,rows:a,className:"font-sans"}),p.length>0&&(0,t.jsxs)("div",{className:"mt-2 flex flex-wrap gap-2 items-center",children:[(0,t.jsx)("span",{className:"text-xs text-gray-500 mr-1",children:"Detected variables:"}),p.map((e,s)=>(0,t.jsx)(eb.Popover,{content:(0,t.jsxs)("div",{className:"p-2",style:{minWidth:"200px"},children:[(0,t.jsx)("div",{className:"text-xs text-gray-500 mb-2",children:"Edit variable name"}),(0,t.jsx)(ei.Input,{size:"small",value:c,onChange:e=>d(e.target.value),onPressEnter:m,placeholder:"Variable name",autoFocus:!0}),(0,t.jsxs)("div",{className:"flex gap-2 mt-2",children:[(0,t.jsx)("button",{onClick:m,className:"text-xs px-2 py-1 bg-blue-500 text-white rounded hover:bg-blue-600",children:"Save"}),(0,t.jsx)("button",{onClick:()=>{i(null),d("")},className:"text-xs px-2 py-1 bg-gray-200 text-gray-700 rounded hover:bg-gray-300",children:"Cancel"})]})]}),open:o?.start===e.start,onOpenChange:e=>{e||(i(null),d(""))},trigger:"click",children:(0,t.jsx)(ey.Tag,{color:"orange",className:"cursor-pointer hover:opacity-80 transition-all m-0",icon:(0,t.jsx)(eN.EditOutlined,{}),onClick:()=>{i({oldName:e.name,start:e.start,end:e.end}),d(e.name)},children:e.name})},`${e.start}-${s}`))]})]})},e_=({value:e,onChange:s})=>(0,t.jsxs)(P.Card,{className:"p-3",children:[(0,t.jsx)(B.Text,{className:"block mb-2 text-sm font-medium",children:"Developer message"}),(0,t.jsx)(B.Text,{className:"text-gray-500 text-xs mb-2",children:"Optional system instructions for the model"}),(0,t.jsx)(eC,{value:e,onChange:s,rows:3,placeholder:"e.g., You are a helpful assistant..."})]}),ek=(0,ed.default)("grip-vertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]),{Option:eT}=a.Select,eS=({messages:e,onAddMessage:r,onUpdateMessage:l,onRemoveMessage:n,onMoveMessage:o})=>{let[i,c]=(0,s.useState)(null),[d,m]=(0,s.useState)(null),p=()=>{c(null),m(null)};return(0,t.jsxs)(P.Card,{className:"p-3",children:[(0,t.jsxs)("div",{className:"mb-2",children:[(0,t.jsx)(B.Text,{className:"text-sm font-medium",children:"Prompt messages"}),(0,t.jsxs)(B.Text,{className:"text-gray-500 text-xs mt-1",children:["Use ",(0,t.jsx)("code",{className:"bg-gray-100 px-1 rounded text-xs",children:"{{variable}}"})," syntax for template variables"]})]}),(0,t.jsx)("div",{className:"space-y-2",children:e.map((s,r)=>(0,t.jsxs)("div",{draggable:!0,onDragStart:()=>{c(r)},onDragOver:e=>{e.preventDefault(),m(r)},onDrop:e=>{e.preventDefault(),null!==i&&i!==r&&o(i,r),c(null),m(null)},onDragEnd:p,className:`border border-gray-300 rounded overflow-hidden bg-white transition-all ${i===r?"opacity-50":""} ${d===r&&i!==r?"border-blue-500 border-2":""}`,children:[(0,t.jsxs)("div",{className:"bg-gray-50 px-2 py-1.5 border-b border-gray-300 flex items-center justify-between",children:[(0,t.jsxs)(a.Select,{value:s.role,onChange:e=>l(r,"role",e),style:{width:100},size:"small",bordered:!1,children:[(0,t.jsx)(eT,{value:"user",children:"User"}),(0,t.jsx)(eT,{value:"assistant",children:"Assistant"}),(0,t.jsx)(eT,{value:"system",children:"System"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[e.length>1&&(0,t.jsx)("button",{onClick:()=>n(r),className:"text-gray-400 hover:text-red-500",children:(0,t.jsx)(ev,{size:14})}),(0,t.jsx)("div",{className:"cursor-grab active:cursor-grabbing text-gray-400 hover:text-gray-600",children:(0,t.jsx)(ek,{size:16})})]})]}),(0,t.jsx)("div",{className:"p-2",children:(0,t.jsx)(eC,{value:s.content,onChange:e=>l(r,"content",e),rows:3,placeholder:"Enter prompt content..."})})]},r))}),(0,t.jsxs)("button",{onClick:r,className:"mt-2 text-xs text-blue-600 hover:text-blue-700 flex items-center",children:[(0,t.jsx)(ef.PlusIcon,{size:14,className:"mr-1"}),"Add message"]})]})};var e$=e.i(447593);let eP=({extractedVariables:e,variables:s,onVariableChange:r})=>0===e.length?null:(0,t.jsxs)("div",{className:"p-4 border-b border-gray-200 bg-blue-50",children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-gray-700 mb-3",children:"Fill in template variables to start testing"}),(0,t.jsx)("div",{className:"space-y-2",children:e.map(e=>(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{className:"block text-xs text-gray-600 mb-1 font-medium",children:["{{",e,"}}"]}),(0,t.jsx)(ei.Input,{value:s[e]||"",onChange:t=>r(e,t.target.value),placeholder:`Enter value for ${e}`,size:"small"})]},e))})]});var eI=e.i(56456),eB=e.i(482725),eE=e.i(983561);let eO=({hasVariables:e})=>(0,t.jsxs)("div",{className:"h-full flex flex-col items-center justify-center text-gray-400",children:[(0,t.jsx)(eE.RobotOutlined,{style:{fontSize:"48px",marginBottom:"16px"}}),(0,t.jsx)("span",{className:"text-base",children:e?"Fill in the variables above, then type a message to start testing":"Type a message below to start testing your prompt"})]});var eA=e.i(771674),eD=e.i(918789),eM=e.i(285903);let eR=({message:e})=>(0,t.jsx)("div",{className:`mb-4 flex ${"user"===e.role?"justify-end":"justify-start"}`,children:(0,t.jsxs)("div",{className:"max-w-[85%] rounded-lg shadow-sm p-3.5 px-4",style:{backgroundColor:"user"===e.role?"#f0f8ff":"#ffffff",border:"user"===e.role?"1px solid #e6f0fa":"1px solid #f0f0f0"},children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-1.5",children:[(0,t.jsx)("div",{className:"flex items-center justify-center w-6 h-6 rounded-full mr-1",style:{backgroundColor:"user"===e.role?"#e6f0fa":"#f5f5f5"},children:"user"===e.role?(0,t.jsx)(eA.UserOutlined,{style:{fontSize:"12px",color:"#2563eb"}}):(0,t.jsx)(eE.RobotOutlined,{style:{fontSize:"12px",color:"#4b5563"}})}),(0,t.jsx)("strong",{className:"text-sm capitalize",children:e.role}),"assistant"===e.role&&e.model&&(0,t.jsx)("span",{className:"text-xs px-2 py-0.5 rounded bg-gray-100 text-gray-600 font-normal",children:e.model})]}),(0,t.jsxs)("div",{className:"whitespace-pre-wrap break-words max-w-full message-content",style:{wordWrap:"break-word",overflowWrap:"break-word",wordBreak:"break-word",hyphens:"auto"},children:["assistant"===e.role?(0,t.jsx)(eD.default,{components:{code({node:e,inline:s,className:r,children:l,...a}){let n=/language-(\w+)/.exec(r||"");return!s&&n?(0,t.jsx)(G.Prism,{style:X.coy,language:n[1],PreTag:"div",className:"rounded-md my-2",wrapLines:!0,wrapLongLines:!0,...a,children:String(l).replace(/\n$/,"")}):(0,t.jsx)("code",{className:`${r} px-1.5 py-0.5 rounded bg-gray-100 text-sm font-mono`,style:{wordBreak:"break-word"},...a,children:l})},pre:({node:e,...s})=>(0,t.jsx)("pre",{style:{overflowX:"auto",maxWidth:"100%"},...s})},children:e.content}):(0,t.jsx)("div",{className:"whitespace-pre-wrap",children:e.content}),"assistant"===e.role&&(e.timeToFirstToken||e.totalLatency||e.usage)&&(0,t.jsx)(eM.default,{timeToFirstToken:e.timeToFirstToken,totalLatency:e.totalLatency,usage:e.usage})]})]})}),ez=({messages:e,isLoading:s,hasVariables:r,messagesEndRef:l})=>{let a=(0,t.jsx)(eI.LoadingOutlined,{style:{fontSize:24},spin:!0});return(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 pb-0",children:[0===e.length&&(0,t.jsx)(eO,{hasVariables:r}),e.map((e,s)=>(0,t.jsx)(eR,{message:e},s)),s&&(0,t.jsx)("div",{className:"flex justify-center items-center my-4",children:(0,t.jsx)(eB.Spin,{indicator:a})}),(0,t.jsx)("div",{ref:l,style:{height:"1px"}})]})},eL=({extractedVariables:e,variables:s})=>{let r=e.filter(e=>!s[e]||""===s[e].trim());return 0===r.length?null:(0,t.jsx)("div",{className:"mb-3 p-3 bg-yellow-50 border border-yellow-200 rounded-lg",children:(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)("span",{className:"text-yellow-600 text-sm",children:"⚠️"}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("p",{className:"text-sm text-yellow-800 font-medium mb-1",children:"Please fill in all template variables above"}),(0,t.jsxs)("p",{className:"text-xs text-yellow-700",children:["Missing: ",r.map(e=>`{{${e}}}`).join(", ")]})]})]})})};var eF=e.i(132104);let{TextArea:eU}=ei.Input,eV=({inputMessage:e,isLoading:s,isDisabled:l,onInputChange:a,onSend:n,onKeyDown:o,onCancel:i})=>(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center flex-1 bg-white border border-gray-300 rounded-xl px-3 py-1 min-h-[44px]",children:[(0,t.jsx)(eU,{value:e,onChange:e=>a(e.target.value),onKeyDown:o,placeholder:"Type your message... (Shift+Enter for new line)",disabled:s,className:"flex-1",autoSize:{minRows:1,maxRows:4},style:{resize:"none",border:"none",boxShadow:"none",background:"transparent",padding:"4px 0",fontSize:"14px",lineHeight:"20px"}}),(0,t.jsx)(r.Button,{onClick:n,disabled:l,className:"flex-shrink-0 ml-2 !w-8 !h-8 !min-w-8 !p-0 !rounded-full !bg-blue-600 hover:!bg-blue-700 disabled:!bg-gray-300 !border-none !text-white disabled:!text-gray-500 !flex !items-center !justify-center",children:(0,t.jsx)(eF.ArrowUpOutlined,{style:{fontSize:"14px"}})})]}),s&&(0,t.jsx)(r.Button,{onClick:i,className:"bg-red-50 hover:bg-red-100 text-red-600 border-red-200",children:"Cancel"})]}),eH=({prompt:e,accessToken:l})=>{let{isLoading:a,messages:o,inputMessage:i,variables:c,variablesFilled:d,extractedVariables:m,allVariablesFilled:p,messagesEndRef:x,setInputMessage:u,handleSendMessage:h,handleCancelRequest:g,handleClearConversation:f,handleKeyDown:v,handleVariableChange:j}=((e,t)=>{let[r,l]=(0,s.useState)(!1),[a,o]=(0,s.useState)([]),[i,c]=(0,s.useState)(""),[d,m]=(0,s.useState)({}),[p,x]=(0,s.useState)(!1),[u,h]=(0,s.useState)(null),g=(0,s.useRef)(null),f=N(e),v=f.every(e=>d[e]&&""!==d[e].trim());(0,s.useEffect)(()=>{g.current&&setTimeout(()=>{g.current?.scrollIntoView({behavior:"smooth",block:"end"})},100)},[a]);let j=async()=>{let s;if(!t)return void W.default.fromBackend("Access token is required");if(f.length>0&&!v)return void W.default.fromBackend("Please fill in all template variables");if(!i.trim())return;!p&&f.length>0&&x(!0);let r={role:"user",content:i};o(e=>[...e,r]),c("");let m=new AbortController;h(m),l(!0);let u=Date.now();try{let r,l,c=w(e),p=(0,n.getProxyBaseUrl)(),x={dotprompt_content:c};0===a.length?x.prompt_variables=d:x.conversation_history=[...a.map(e=>({role:e.role,content:e.content})),{role:"user",content:i}];let h=await fetch(`${p}/prompts/test`,{method:"POST",headers:{[(0,n.getGlobalLitellmHeaderName)()]:`Bearer ${t}`,"Content-Type":"application/json"},body:JSON.stringify(x),signal:m.signal});if(!h.ok){let e=await h.text();throw Error(`HTTP error! status: ${h.status}, ${e}`)}if(!h.body)throw Error("No response body");let g=h.body.getReader(),f=new TextDecoder,v="";for(o(e=>[...e,{role:"assistant",content:""}]);;){let{done:e,value:t}=await g.read();if(e)break;for(let e of f.decode(t).split("\n"))if(e.startsWith("data: ")){let t=e.slice(6);if("[DONE]"===t)continue;try{let e=JSON.parse(t);!r&&e.model&&(r=e.model),e.usage&&(l=e.usage);let a=e.choices?.[0]?.delta?.content;a&&(s||(s=Date.now()-u),v+=a,o(e=>{let t=[...e];return t[t.length-1]={role:"assistant",content:v,model:r,timeToFirstToken:s},t}))}catch(e){console.error("Error parsing chunk:",e)}}}let j=Date.now()-u;o(e=>{let t=[...e];return t[t.length-1]={...t[t.length-1],totalLatency:j,usage:l},t})}catch(e){"AbortError"===e.name?console.log("Request was cancelled"):(console.error("Error testing prompt:",e),o(t=>{let s=t[t.length-1];return s&&"assistant"===s.role&&""===s.content?[...t.slice(0,-1),{role:"assistant",content:`Error: ${e.message}`}]:[...t,{role:"assistant",content:`Error: ${e.message}`}]}))}finally{l(!1),h(null)}};return{isLoading:r,messages:a,inputMessage:i,variables:d,variablesFilled:p,extractedVariables:f,allVariablesFilled:v,messagesEndRef:g,setInputMessage:c,handleSendMessage:j,handleCancelRequest:()=>{u&&(u.abort(),h(null),l(!1),W.default.info("Request cancelled"))},handleClearConversation:()=>{o([]),x(!1),W.default.success("Chat history cleared.")},handleKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),j())},handleVariableChange:(e,t)=>{m({...d,[e]:t})}}})(e,l);return(0,t.jsxs)("div",{className:"flex flex-col h-full bg-white",children:[!d&&(0,t.jsx)(eP,{extractedVariables:m,variables:c,onVariableChange:j}),o.length>0&&(0,t.jsx)("div",{className:"p-3 border-b border-gray-200 bg-white flex justify-end",children:(0,t.jsx)(r.Button,{onClick:f,className:"bg-gray-100 hover:bg-gray-200 text-gray-700 border-gray-300",icon:e$.ClearOutlined,children:"Clear Chat"})}),(0,t.jsx)(ez,{messages:o,isLoading:a,hasVariables:m.length>0,messagesEndRef:x}),(0,t.jsxs)("div",{className:"p-4 border-t border-gray-200 bg-white",children:[(0,t.jsx)(eL,{extractedVariables:m,variables:c}),(0,t.jsx)(eV,{inputMessage:i,isLoading:a,isDisabled:a||!i.trim()||m.length>0&&!p,onInputChange:u,onSend:h,onKeyDown:v,onCancel:g})]})]})},eJ=({visible:e,promptName:s,isSaving:a,onNameChange:n,onPublish:o,onCancel:i})=>(0,t.jsx)(l.Modal,{title:"Publish Prompt",open:e,onCancel:i,footer:[(0,t.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,t.jsx)(r.Button,{variant:"secondary",onClick:i,children:"Cancel"}),(0,t.jsx)(r.Button,{onClick:o,loading:a,children:"Publish"})]},"footer")],children:(0,t.jsxs)("div",{className:"py-4",children:[(0,t.jsx)(B.Text,{className:"mb-2",children:"Name"}),(0,t.jsx)(ei.Input,{value:s,onChange:e=>n(e.target.value),placeholder:"Enter prompt name",onPressEnter:o,autoFocus:!0}),(0,t.jsx)(B.Text,{className:"text-gray-500 text-xs mt-2",children:"Published prompts can be used in API calls and are versioned for easy tracking."})]})}),eW=({prompt:e})=>{let s=w(e);return(0,t.jsxs)("div",{className:"p-6",children:[(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-gray-700 mb-2",children:"Generated .prompt file"}),(0,t.jsx)("p",{className:"text-xs text-gray-500",children:"This is the dotprompt format that will be saved to the database"})]}),(0,t.jsx)("div",{className:"bg-gray-50 border border-gray-200 rounded-lg p-4 overflow-auto",children:(0,t.jsx)("pre",{className:"text-sm text-gray-900 font-mono whitespace-pre-wrap",children:s})})]})};var eK=e.i(608856),eq=e.i(573421),eG=e.i(981339);let{Text:eX}=e.i(898586).Typography,eY=({isOpen:e,onClose:r,accessToken:l,promptId:a,activeVersionId:o,onSelectVersion:i})=>{let[c,d]=(0,s.useState)([]),[m,p]=(0,s.useState)(!1);(0,s.useEffect)(()=>{e&&l&&a&&x()},[e,l,a]);let x=async()=>{p(!0);try{let e=a.includes(".v")?a.split(".v")[0]:a,t=await (0,n.getPromptVersions)(l,e);d(t.prompts)}catch(e){console.error("Error fetching prompt versions:",e)}finally{p(!1)}},u=e=>{if(e.version)return`v${e.version}`;let t=e.litellm_params?.prompt_id||e.prompt_id;return t.includes(".v")?`v${t.split(".v")[1]}`:t.includes("_v")?`v${t.split("_v")[1]}`:"v1"};return(0,t.jsx)(eK.Drawer,{title:"Version History",placement:"right",onClose:r,open:e,width:400,mask:!1,maskClosable:!1,children:m?(0,t.jsx)(eG.Skeleton,{active:!0,paragraph:{rows:4}}):0===c.length?(0,t.jsx)("div",{className:"text-center py-8 text-gray-500",children:"No version history available."}):(0,t.jsx)(eq.List,{dataSource:c,renderItem:(e,s)=>{var r;let l=e.version||parseInt(u(e).replace("v","")),a=null;o&&(o.includes(".v")?a=parseInt(o.split(".v")[1]):o.includes("_v")&&(a=parseInt(o.split("_v")[1])));let n=a?l===a:0===s;return(0,t.jsxs)("div",{className:`mb-4 p-4 rounded-lg border cursor-pointer transition-all hover:shadow-md ${n?"border-blue-500 bg-blue-50":"border-gray-200 bg-white hover:border-blue-300"}`,onClick:()=>i?.(e),children:[(0,t.jsxs)("div",{className:"flex justify-between items-start mb-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(ey.Tag,{className:"m-0",children:u(e)}),0===s&&(0,t.jsx)(ey.Tag,{color:"blue",className:"m-0",children:"Latest"})]}),n&&(0,t.jsx)(ey.Tag,{color:"green",className:"m-0",children:"Active"})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)(eX,{className:"text-sm text-gray-600 font-medium",children:(r=e.created_at)?new Date(r).toLocaleString():"-"}),(0,t.jsx)(eX,{type:"secondary",className:"text-xs",children:e.prompt_info?.prompt_type==="db"?"Saved to Database":"Config Prompt"})]})]},`${e.prompt_id}-v${e.version||l}`)}})})},eZ=({onClose:e,onSuccess:r,accessToken:l,initialPromptData:a})=>{let[o,i]=(0,s.useState)((()=>{if(a)try{return _(a)}catch(e){console.error("Error parsing existing prompt:",e),W.default.fromBackend("Failed to parse prompt data")}return{name:"New prompt",model:"gpt-4o",config:{temperature:1,max_tokens:1e3},tools:[],developerMessage:"",messages:[{role:"user",content:"Enter task specifics. Use {{template_variables}} for dynamic inputs"}],environment:"development"}})()),[c,d]=(0,s.useState)(!!a),[m,p]=(0,s.useState)(!1),[x,u]=(0,s.useState)((()=>{if(!a?.prompt_spec)return;let e=a.prompt_spec.prompt_id,t=a.prompt_spec.version||a.prompt_spec.litellm_params?.prompt_id;return"number"==typeof t?`${e}.v${t}`:"string"==typeof t&&(t.includes(".v")||t.includes("_v"))?t:e})()),[h,g]=(0,s.useState)(!1),[f,v]=(0,s.useState)(!1),[j,b]=(0,s.useState)(null),[y,N]=(0,s.useState)(!1),[C,k]=(0,s.useState)("pretty"),T=e=>{void 0!==e?b(e):b(null),g(!0)},S=async()=>{if(!l)return void W.default.fromBackend("Access token is required");if(!o.name||""===o.name.trim())return void W.default.fromBackend("Please enter a valid prompt name");N(!0);try{let t=o.name.replace(/[^a-zA-Z0-9_-]/g,"_").toLowerCase(),s=w(o),i={prompt_id:t,litellm_params:{prompt_integration:"dotprompt",prompt_id:t,dotprompt_content:s},prompt_info:{prompt_type:"db",environment:o.environment}};c&&a?.prompt_spec?.prompt_id?(await (0,n.updatePromptCall)(l,a.prompt_spec.prompt_id,i),W.default.success("Prompt updated successfully!")):(await (0,n.createPromptCall)(l,i),W.default.success("Prompt created successfully!")),r(),e()}catch(e){console.error("Error saving prompt:",e),W.default.fromBackend(c?"Failed to update prompt":"Failed to save prompt")}finally{N(!1),v(!1)}},$=x&&x.includes(".v")?`v${x.split(".v")[1]}`:null;return(0,t.jsxs)("div",{className:"flex h-full bg-white",children:[(0,t.jsxs)("div",{className:"flex-1 flex flex-col",children:[(0,t.jsx)(ex,{promptName:o.name,onNameChange:e=>i({...o,name:e}),onBack:e,onSave:()=>{o.name&&""!==o.name.trim()&&"New prompt"!==o.name?S():v(!0)},isSaving:y,editMode:c,onShowHistory:()=>p(!0),version:$,promptModel:o.model,promptVariables:(()=>{let e,t={},s=[o.developerMessage,...o.messages.map(e=>e.content)].join(" "),r=/\{\{(\w+)\}\}/g;for(;null!==(e=r.exec(s));){let s=e[1];t[s]||(t[s]=`example_${s}`)}return t})(),accessToken:l,environment:o.environment,onEnvironmentChange:async e=>{if(i({...o,environment:e}),c&&l&&a?.prompt_spec?.prompt_id)try{let t=await (0,n.getPromptInfo)(l,a.prompt_spec.prompt_id,e);if(t?.prompt_spec){let s=_(t);i({...s,environment:e});let r=t.prompt_spec.version||1;u(`${t.prompt_spec.prompt_id}.v${r}`)}}catch{}}}),(0,t.jsxs)("div",{className:"flex-1 flex overflow-hidden",children:[(0,t.jsxs)("div",{className:"w-1/2 overflow-y-auto bg-white border-r border-gray-200 flex-shrink-0",children:[(0,t.jsxs)("div",{className:"border-b border-gray-200 bg-white px-6 py-4 flex items-center gap-3",children:[(0,t.jsx)(eg,{model:o.model,temperature:o.config.temperature,maxTokens:o.config.max_tokens,accessToken:l,onModelChange:e=>i({...o,model:e}),onTemperatureChange:e=>i({...o,config:{...o.config,temperature:e}}),onMaxTokensChange:e=>i({...o,config:{...o.config,max_tokens:e}})}),(0,t.jsxs)("div",{className:"ml-auto inline-flex items-center bg-gray-200 rounded-full p-0.5",children:[(0,t.jsx)("button",{className:`px-3 py-1 text-xs font-medium rounded-full transition-colors ${"pretty"===C?"bg-white text-gray-900 shadow-sm":"text-gray-600"}`,onClick:()=>k("pretty"),children:"PRETTY"}),(0,t.jsx)("button",{className:`px-3 py-1 text-xs font-medium rounded-full transition-colors ${"dotprompt"===C?"bg-white text-gray-900 shadow-sm":"text-gray-600"}`,onClick:()=>k("dotprompt"),children:"DOTPROMPT"})]})]}),"pretty"===C?(0,t.jsxs)("div",{className:"p-6 space-y-4 pb-20",children:[(0,t.jsx)(ej,{tools:o.tools,onAddTool:()=>T(),onEditTool:T,onRemoveTool:e=>{i({...o,tools:o.tools.filter((t,s)=>s!==e)})}}),(0,t.jsx)(e_,{value:o.developerMessage,onChange:e=>i({...o,developerMessage:e})}),(0,t.jsx)(eS,{messages:o.messages,onAddMessage:()=>{i({...o,messages:[...o.messages,{role:"user",content:""}]})},onUpdateMessage:(e,t,s)=>{let r=[...o.messages];r[e][t]=s,i({...o,messages:r})},onRemoveMessage:e=>{o.messages.length>1&&i({...o,messages:o.messages.filter((t,s)=>s!==e)})},onMoveMessage:(e,t)=>{let s=[...o.messages],[r]=s.splice(e,1);s.splice(t,0,r),i({...o,messages:s})}})]}):(0,t.jsx)(eW,{prompt:o})]}),(0,t.jsx)("div",{className:"w-1/2 flex-shrink-0",children:(0,t.jsx)(eH,{prompt:o,accessToken:l})})]})]}),(0,t.jsx)(eJ,{visible:f,promptName:o.name,isSaving:y,onNameChange:e=>i({...o,name:e}),onPublish:S,onCancel:()=>v(!1)}),h&&(0,t.jsx)(eo,{visible:h,initialJson:null!==j?o.tools[j].json:"",onSave:e=>{try{let t=JSON.parse(e),s={name:t.function?.name||"Unnamed Tool",description:t.function?.description||"",json:e};if(null!==j){let e=[...o.tools];e[j]=s,i({...o,tools:e})}else i({...o,tools:[...o.tools,s]});g(!1),b(null)}catch(e){W.default.fromBackend("Invalid JSON format")}},onClose:()=>{g(!1),b(null)}}),(0,t.jsx)(eY,{isOpen:m,onClose:()=>p(!1),accessToken:l,promptId:a?.prompt_spec?.prompt_id||o.name,activeVersionId:x,onSelectVersion:e=>{try{let t=_({prompt_spec:e});i(t);let s=e.version||1;u(`${e.prompt_id}.v${s}`)}catch(e){console.error("Error loading version:",e),W.default.fromBackend("Failed to load prompt version")}}})]})};var eQ=e.i(708347);let e0=({accessToken:e,userRole:o})=>{let[i,c]=(0,s.useState)([]),[d,m]=(0,s.useState)(!1),[p,x]=(0,s.useState)(void 0),[u,h]=(0,s.useState)(null),[g,f]=(0,s.useState)(!1),[v,j]=(0,s.useState)(!1),[b,y]=(0,s.useState)(null),[N,w]=(0,s.useState)(!1),[C,_]=(0,s.useState)(null);o&&(0,eQ.isAdminRole)(o);let k=!!o&&(0,eQ.isProxyAdminRole)(o),T=async()=>{if(e){m(!0);try{let t=await (0,n.getPromptsList)(e,p);console.log(`prompts: ${JSON.stringify(t)}`),c(t.prompts)}catch(e){console.error("Error fetching prompts:",e)}finally{m(!1)}}};(0,s.useEffect)(()=>{T()},[e,p]);let S=()=>{T(),j(!1),y(null),h(null)},P=async()=>{if(C&&e){w(!0);try{await (0,n.deletePromptCall)(e,C.id),W.default.success(`Prompt "${C.name}" deleted successfully`),T()}catch(e){console.error("Error deleting prompt:",e),W.default.fromBackend("Failed to delete prompt")}finally{w(!1),_(null)}}};return(0,t.jsxs)("div",{className:"w-full mx-auto flex-auto overflow-y-auto m-8 p-2",children:[v?(0,t.jsx)(eZ,{onClose:()=>{j(!1),y(null)},onSuccess:S,accessToken:e,initialPromptData:b}):u?(0,t.jsx)(Z,{promptId:u,onClose:()=>h(null),accessToken:e,isAdmin:k,onDelete:T,onEdit:e=>{y(e),j(!0)}}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-4",children:[(0,t.jsx)("div",{className:"flex gap-2",children:k&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.Button,{onClick:()=>{u&&h(null),y(null),j(!0)},disabled:!e,children:"+ Add New Prompt"}),(0,t.jsx)(r.Button,{onClick:()=>{u&&h(null),f(!0)},disabled:!e,variant:"secondary",children:"Upload .prompt File"})]})}),(0,t.jsx)(a.Select,{placeholder:"All Environments",allowClear:!0,value:p,onChange:e=>x(e),style:{width:180},options:[{label:"Development",value:"development"},{label:"Staging",value:"staging"},{label:"Production",value:"production"}]})]}),(0,t.jsx)($,{promptsList:i,isLoading:d,onPromptClick:e=>{h(e)},onDeleteClick:(e,t)=>{_({id:e,name:t})},accessToken:e,isAdmin:k})]}),(0,t.jsx)(ea,{visible:g,onClose:()=>{f(!1)},accessToken:e,onSuccess:S}),C&&(0,t.jsxs)(l.Modal,{title:"Delete Prompt",open:null!==C,onOk:P,onCancel:()=>{_(null)},confirmLoading:N,okText:"Delete",okButtonProps:{danger:!0},children:[(0,t.jsxs)("p",{children:["Are you sure you want to delete prompt: ",C.name," ?"]}),(0,t.jsx)("p",{children:"This action cannot be undone."})]})]})};var e1=e.i(135214);e.s(["default",0,function(){let{accessToken:e,userRole:s}=(0,e1.default)();return(0,t.jsx)(e0,{accessToken:e,userRole:s})}],66899)}]);