tarsk 0.5.75 → 0.5.76

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.
Files changed (66) hide show
  1. package/dist/public/assets/{account-view-DvyhZGLB.js → account-view-CWtpznW2.js} +1 -1
  2. package/dist/public/assets/browser-tab-D_5MLhxE.js +12 -0
  3. package/dist/public/assets/chat-dock-context-8K8Ikjgy.js +1 -0
  4. package/dist/public/assets/{commit-dialog-BUfbvG6F.js → commit-dialog-CSXPoomw.js} +1 -1
  5. package/dist/public/assets/{commit-error-dialog-D1XRPBOc.js → commit-error-dialog-CdcGI69P.js} +1 -1
  6. package/dist/public/assets/{commit-method-fields-CVQjrJ_O.js → commit-method-fields-BtEHb0_G.js} +1 -1
  7. package/dist/public/assets/{conversation-history-view-CzRrC6cJ.js → conversation-history-view-CuzU9qF6.js} +1 -1
  8. package/dist/public/assets/{create-project-dialog-Bqm_qC2v.js → create-project-dialog-a6Wgq-Z8.js} +1 -1
  9. package/dist/public/assets/{create-repo-dialog-D2H1eZic.js → create-repo-dialog-BTIQ5Nw4.js} +1 -1
  10. package/dist/public/assets/{diff-view-zXlCXzER.js → diff-view-DA1uT9tc.js} +2 -2
  11. package/dist/public/assets/{explorer-tab-view-BOc5FPFg.js → explorer-tab-view-CewTYYOm.js} +2 -2
  12. package/dist/public/assets/explorer-tree-C0VDhihz.js +1 -0
  13. package/dist/public/assets/{explorer-view-DFjt0DXO.js → explorer-view-RCfDm3p5.js} +2 -2
  14. package/dist/public/assets/{git-history-dialog-CFoZcBB0.js → git-history-dialog-DL0Trxiz.js} +1 -1
  15. package/dist/public/assets/index-B3-5kIOf.js +3658 -0
  16. package/dist/public/assets/merged-pr-dialog-BzND8nzx.js +1 -0
  17. package/dist/public/assets/{model-list-controls-CNrps9Ys.js → model-list-controls-I67L2x3H.js} +1 -1
  18. package/dist/public/assets/onboarding-dialog-DY8v11hv.js +1 -0
  19. package/dist/public/assets/{project-coding-view-DG1D8-z4.js → project-coding-view-DxOwsjtt.js} +1 -1
  20. package/dist/public/assets/project-danger-zone-view-CkvKOQrl.js +1 -0
  21. package/dist/public/assets/{project-env-vars-view-TblkryyN.js → project-env-vars-view-DYLWA7s0.js} +1 -1
  22. package/dist/public/assets/{project-model-aliases-view-Ct0v4NQm.js → project-model-aliases-view-DWu9khLA.js} +1 -1
  23. package/dist/public/assets/{project-settings-view-Dd3QPujg.js → project-settings-view-DJfmaWn6.js} +1 -1
  24. package/dist/public/assets/{project-tools-view-DdsKSUDp.js → project-tools-view-BEjBkghz.js} +1 -1
  25. package/dist/public/assets/providers-list-view-jMEPJCci.js +1 -0
  26. package/dist/public/assets/{pull-request-dialog-BRiR5Qz8.js → pull-request-dialog-B_JCqT53.js} +1 -1
  27. package/dist/public/assets/{pull-with-changes-dialog-BCIWOzvE.js → pull-with-changes-dialog-V3_km2zQ.js} +1 -1
  28. package/dist/public/assets/{push-before-pr-dialog-BEr0QZlO.js → push-before-pr-dialog-CarrD3y2.js} +1 -1
  29. package/dist/public/assets/{settings-general-view-CKvkG8C5.js → settings-general-view-BhrfHGfQ.js} +1 -1
  30. package/dist/public/assets/{settings-list-B9a61wMg.js → settings-list-DiiYzOxn.js} +1 -1
  31. package/dist/public/assets/{settings-logs-view-4Uoa1-Dx.js → settings-logs-view-DbKM1SNk.js} +2 -2
  32. package/dist/public/assets/settings-mcp-servers-view-4FpPIeYV.js +5 -0
  33. package/dist/public/assets/{settings-models-view-Ef404r4H.js → settings-models-view-CJVeo9ad.js} +1 -1
  34. package/dist/public/assets/settings-skills-view-DoRPGbHG.js +3 -0
  35. package/dist/public/assets/{settings-slack-view-C32in2Wg.js → settings-slack-view-Cc1NgVkx.js} +1 -1
  36. package/dist/public/assets/settings-slash-commands-view-CmlWqqmi.js +1 -0
  37. package/dist/public/assets/{settings-statistics-view-CxW2KB56.js → settings-statistics-view-DRuyEbcN.js} +1 -1
  38. package/dist/public/assets/settings-storage-view-DihbtUYb.js +1 -0
  39. package/dist/public/assets/{settings-subagents-view-StdmEn-E.js → settings-subagents-view-B2RvxDZI.js} +2 -2
  40. package/dist/public/assets/{settings-system-prompt-view-DizAjXjo.js → settings-system-prompt-view-CvVbgjNN.js} +1 -1
  41. package/dist/public/assets/settings-view-CPUAjTMa.js +2 -0
  42. package/dist/public/assets/tasks-view-CvFFLPeD.js +1 -0
  43. package/dist/public/assets/{terminal-panel-DSfDZzBk.js → terminal-panel-DIh6it7K.js} +1 -1
  44. package/dist/public/assets/{use-active-dock-panel-instance-DNExGWVs.js → use-active-dock-panel-instance-DRfRj6MV.js} +1 -1
  45. package/dist/public/assets/{use-installed-ai-files-BuuVI3sM.js → use-installed-ai-files-C8nNWGC7.js} +1 -1
  46. package/dist/public/assets/{useBaseQuery-GJoj38pA.js → useBaseQuery-34f0-SVd.js} +1 -1
  47. package/dist/public/assets/{web-DyYrh5r4.js → web-Bn9n5e7r.js} +1 -1
  48. package/dist/public/assets/{web-CliOgvKf.js → web-C2KGFouM.js} +1 -1
  49. package/dist/public/assets/{web-Dzci4edU.js → web-Dk3GAfTy.js} +1 -1
  50. package/dist/public/assets/{web-BmpJHrzY.js → web-DycfRH4j.js} +1 -1
  51. package/dist/public/index.html +3 -3
  52. package/package.json +1 -1
  53. package/dist/public/assets/browser-tab-5rqpwS93.js +0 -12
  54. package/dist/public/assets/chat-dock-context-BJNNRoZC.js +0 -1
  55. package/dist/public/assets/explorer-tree-m1u3VhWL.js +0 -1
  56. package/dist/public/assets/index-u8UbWjXL.js +0 -3658
  57. package/dist/public/assets/merged-pr-dialog-BMqHRow2.js +0 -1
  58. package/dist/public/assets/onboarding-dialog-BFJftu2O.js +0 -1
  59. package/dist/public/assets/project-danger-zone-view-6HEDGyUj.js +0 -1
  60. package/dist/public/assets/providers-list-view-BUNk2E8O.js +0 -1
  61. package/dist/public/assets/settings-mcp-servers-view-CaAy6iV4.js +0 -5
  62. package/dist/public/assets/settings-skills-view-DLrG4E_U.js +0 -3
  63. package/dist/public/assets/settings-slash-commands-view-CpBMV_5D.js +0 -1
  64. package/dist/public/assets/settings-storage-view-BzT8k6yE.js +0 -1
  65. package/dist/public/assets/settings-view-CTQgFmjM.js +0 -2
  66. package/dist/public/assets/tasks-view-z93aMoQp.js +0 -1
@@ -0,0 +1 @@
1
+ import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{Dt as n}from"./dist-CTLFS4dn.js";import{t as r}from"./button-kWtLAMpB.js";import{_r as i,dr as a,gr as o,hr as s,mr as c,o as l,pr as u,vr as d}from"./index-B3-5kIOf.js";var f=e(),p=t();function m(e){let t=(0,f.c)(30),{open:m,onOpenChange:h,onNewBranch:g,onJustOpen:_,newChatOnNewBranch:v,onNewChatOnNewBranchChange:y,isLoading:b,projectName:x}=e,S=b===void 0?!1:b,C;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,p.jsx)(d,{children:`Pull Request Merged`}),t[0]=C):C=t[0];let w=x?` for ${x}`:``,T;t[1]===w?T=t[2]:(T=(0,p.jsxs)(i,{children:[C,(0,p.jsxs)(s,{children:[`The PR has already been merged`,w,`. Create a new branch and PR?`]})]}),t[1]=w,t[2]=T);let E;t[3]===y?E=t[4]:(E=e=>y(e===!0),t[3]=y,t[4]=E);let D;t[5]!==v||t[6]!==E?(D=(0,p.jsx)(l,{id:`new-chat-on-new-branch`,checked:v,onCheckedChange:E}),t[5]=v,t[6]=E,t[7]=D):D=t[7];let O;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,p.jsx)(a,{htmlFor:`new-chat-on-new-branch`,className:n.labelNormal,children:`New Chat`}),t[8]=O):O=t[8];let k;t[9]===D?k=t[10]:(k=(0,p.jsxs)(`div`,{className:`flex items-center gap-2`,children:[D,O]}),t[9]=D,t[10]=k);let A;t[11]!==S||t[12]!==_?(A=(0,p.jsx)(r,{variant:`ghost`,onClick:_,disabled:S,children:`Just Open`}),t[11]=S,t[12]=_,t[13]=A):A=t[13];let j;t[14]!==S||t[15]!==g?(j=(0,p.jsx)(r,{onClick:g,disabled:S,children:`New Branch`}),t[14]=S,t[15]=g,t[16]=j):j=t[16];let M;t[17]!==j||t[18]!==A?(M=(0,p.jsxs)(`div`,{className:`flex w-full flex-col-reverse gap-2 sm:w-auto sm:flex-row`,children:[A,j]}),t[17]=j,t[18]=A,t[19]=M):M=t[19];let N;t[20]!==M||t[21]!==k?(N=(0,p.jsxs)(o,{className:`flex-col gap-4 sm:flex-row sm:items-center sm:justify-between`,children:[k,M]}),t[20]=M,t[21]=k,t[22]=N):N=t[22];let P;t[23]!==N||t[24]!==T?(P=(0,p.jsxs)(c,{children:[T,N]}),t[23]=N,t[24]=T,t[25]=P):P=t[25];let F;return t[26]!==h||t[27]!==m||t[28]!==P?(F=(0,p.jsx)(u,{open:m,onOpenChange:h,children:P}),t[26]=h,t[27]=m,t[28]=P,t[29]=F):F=t[29],F}export{m as MergedPRDialog};
@@ -1 +1 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{Dt as n}from"./dist-CTLFS4dn.js";import{t as r}from"./button-kWtLAMpB.js";import{P as i,Un as a,Y as o,_n as s}from"./dist-c_QADQ5u.js";import{i as c,n as l,r as u,t as d}from"./tooltip-Db8UeYxm.js";import{ot as f}from"./index-u8UbWjXL.js";import{n as p}from"./sorting-DqwxPMRN.js";var m=e(),h=t();function g(e){let t=(0,m.c)(9),{codingIndex:r,modelName:a}=e,o=p(r);if(o===0)return null;let s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=[1,2,3,4,5],t[0]=s):s=t[0];let f;t[1]===o?f=t[2]:(f=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(`div`,{className:`flex items-center gap-0.5`,children:s.map(e=>(0,h.jsx)(i,{className:`h-3 w-3 ${e<=o?`fill-yellow-400 text-yellow-400`:`text-gray-300`}`},e))})}),t[1]=o,t[2]=f);let g;t[3]!==r||t[4]!==a?(g=(0,h.jsx)(l,{children:(0,h.jsxs)(`p`,{className:n.body,children:[a,` was indexed `,r,` for coding intelligence`]})}),t[3]=r,t[4]=a,t[5]=g):g=t[5];let _;return t[6]!==f||t[7]!==g?(_=(0,h.jsx)(u,{children:(0,h.jsxs)(d,{children:[f,g]})}),t[6]=f,t[7]=g,t[8]=_):_=t[8],_}function _(e){let t=(0,m.c)(8),{id:n,checked:r,disabled:i,onChange:a}=e,o=i===void 0?!1:i,s;t[0]!==r||t[1]!==o||t[2]!==n||t[3]!==a?(s=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(`span`,{className:`inline-flex`,children:(0,h.jsx)(f,{id:n,disabled:o,value:r,onChange:a,ariaLabel:`Select All Models`})})}),t[0]=r,t[1]=o,t[2]=n,t[3]=a,t[4]=s):s=t[4];let p;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,h.jsx)(l,{children:`Select All Models`}),t[5]=p):p=t[5];let g;return t[6]===s?g=t[7]:(g=(0,h.jsx)(u,{children:(0,h.jsxs)(d,{children:[s,p]})}),t[6]=s,t[7]=g),g}function v(e){let t=(0,m.c)(31),{sortBy:n,onSortByChange:f,showCodingIndex:p,showIntelligenceByPrice:g}=e,_=p===void 0?!1:p,v=g===void 0?!1:g,y=n===`alphabetical`?`secondary`:`ghost`,b;t[0]===f?b=t[1]:(b=()=>f(`alphabetical`),t[0]=f,t[1]=b);let x;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,h.jsx)(a,{className:`h-4 w-4`}),t[2]=x):x=t[2];let S;t[3]!==y||t[4]!==b?(S=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(r,{type:`button`,variant:y,size:`icon`,className:`h-8 w-8`,onClick:b,children:x})}),t[3]=y,t[4]=b,t[5]=S):S=t[5];let C;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,h.jsx)(l,{children:`Sort A–Z`}),t[6]=C):C=t[6];let w;t[7]===S?w=t[8]:(w=(0,h.jsxs)(d,{children:[S,C]}),t[7]=S,t[8]=w);let T=n===`price-low`||n===`price-high`?`secondary`:`ghost`,E;t[9]===f?E=t[10]:(E=()=>f(`price-low`),t[9]=f,t[10]=E);let D;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,h.jsx)(s,{className:`h-4 w-4`}),t[11]=D):D=t[11];let O;t[12]!==E||t[13]!==T?(O=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(r,{type:`button`,variant:T,size:`icon`,className:`h-8 w-8`,onClick:E,children:D})}),t[12]=E,t[13]=T,t[14]=O):O=t[14];let k;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,h.jsx)(l,{children:`Sort by price`}),t[15]=k):k=t[15];let A;t[16]===O?A=t[17]:(A=(0,h.jsxs)(d,{children:[O,k]}),t[16]=O,t[17]=A);let j;t[18]!==f||t[19]!==_||t[20]!==n?(j=_?(0,h.jsxs)(d,{children:[(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(r,{type:`button`,variant:n===`coding-index`?`secondary`:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:()=>f(`coding-index`),children:(0,h.jsx)(i,{className:`h-4 w-4`})})}),(0,h.jsx)(l,{children:`Sort by coding intelligence`})]}):null,t[18]=f,t[19]=_,t[20]=n,t[21]=j):j=t[21];let M;t[22]!==f||t[23]!==v||t[24]!==n?(M=v?(0,h.jsxs)(d,{children:[(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(r,{type:`button`,variant:n===`intelligence-by-price`?`secondary`:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:()=>f(`intelligence-by-price`),children:(0,h.jsx)(o,{className:`h-4 w-4`})})}),(0,h.jsx)(l,{children:`Sort by price/intelligence`})]}):null,t[22]=f,t[23]=v,t[24]=n,t[25]=M):M=t[25];let N;return t[26]!==A||t[27]!==j||t[28]!==M||t[29]!==w?(N=(0,h.jsx)(u,{children:(0,h.jsxs)(`div`,{className:`flex items-center rounded-md p-0.5`,children:[w,A,j,M]})}),t[26]=A,t[27]=j,t[28]=M,t[29]=w,t[30]=N):N=t[30],N}export{v as n,g as r,_ as t};
1
+ import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{Dt as n}from"./dist-CTLFS4dn.js";import{t as r}from"./button-kWtLAMpB.js";import{P as i,Un as a,Y as o,_n as s}from"./dist-c_QADQ5u.js";import{i as c,n as l,r as u,t as d}from"./tooltip-Db8UeYxm.js";import{st as f}from"./index-B3-5kIOf.js";import{n as p}from"./sorting-DqwxPMRN.js";var m=e(),h=t();function g(e){let t=(0,m.c)(9),{codingIndex:r,modelName:a}=e,o=p(r);if(o===0)return null;let s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=[1,2,3,4,5],t[0]=s):s=t[0];let f;t[1]===o?f=t[2]:(f=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(`div`,{className:`flex items-center gap-0.5`,children:s.map(e=>(0,h.jsx)(i,{className:`h-3 w-3 ${e<=o?`fill-yellow-400 text-yellow-400`:`text-gray-300`}`},e))})}),t[1]=o,t[2]=f);let g;t[3]!==r||t[4]!==a?(g=(0,h.jsx)(l,{children:(0,h.jsxs)(`p`,{className:n.body,children:[a,` was indexed `,r,` for coding intelligence`]})}),t[3]=r,t[4]=a,t[5]=g):g=t[5];let _;return t[6]!==f||t[7]!==g?(_=(0,h.jsx)(u,{children:(0,h.jsxs)(d,{children:[f,g]})}),t[6]=f,t[7]=g,t[8]=_):_=t[8],_}function _(e){let t=(0,m.c)(8),{id:n,checked:r,disabled:i,onChange:a}=e,o=i===void 0?!1:i,s;t[0]!==r||t[1]!==o||t[2]!==n||t[3]!==a?(s=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(`span`,{className:`inline-flex`,children:(0,h.jsx)(f,{id:n,disabled:o,value:r,onChange:a,ariaLabel:`Select All Models`})})}),t[0]=r,t[1]=o,t[2]=n,t[3]=a,t[4]=s):s=t[4];let p;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,h.jsx)(l,{children:`Select All Models`}),t[5]=p):p=t[5];let g;return t[6]===s?g=t[7]:(g=(0,h.jsx)(u,{children:(0,h.jsxs)(d,{children:[s,p]})}),t[6]=s,t[7]=g),g}function v(e){let t=(0,m.c)(31),{sortBy:n,onSortByChange:f,showCodingIndex:p,showIntelligenceByPrice:g}=e,_=p===void 0?!1:p,v=g===void 0?!1:g,y=n===`alphabetical`?`secondary`:`ghost`,b;t[0]===f?b=t[1]:(b=()=>f(`alphabetical`),t[0]=f,t[1]=b);let x;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,h.jsx)(a,{className:`h-4 w-4`}),t[2]=x):x=t[2];let S;t[3]!==y||t[4]!==b?(S=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(r,{type:`button`,variant:y,size:`icon`,className:`h-8 w-8`,onClick:b,children:x})}),t[3]=y,t[4]=b,t[5]=S):S=t[5];let C;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,h.jsx)(l,{children:`Sort A–Z`}),t[6]=C):C=t[6];let w;t[7]===S?w=t[8]:(w=(0,h.jsxs)(d,{children:[S,C]}),t[7]=S,t[8]=w);let T=n===`price-low`||n===`price-high`?`secondary`:`ghost`,E;t[9]===f?E=t[10]:(E=()=>f(`price-low`),t[9]=f,t[10]=E);let D;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,h.jsx)(s,{className:`h-4 w-4`}),t[11]=D):D=t[11];let O;t[12]!==E||t[13]!==T?(O=(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(r,{type:`button`,variant:T,size:`icon`,className:`h-8 w-8`,onClick:E,children:D})}),t[12]=E,t[13]=T,t[14]=O):O=t[14];let k;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,h.jsx)(l,{children:`Sort by price`}),t[15]=k):k=t[15];let A;t[16]===O?A=t[17]:(A=(0,h.jsxs)(d,{children:[O,k]}),t[16]=O,t[17]=A);let j;t[18]!==f||t[19]!==_||t[20]!==n?(j=_?(0,h.jsxs)(d,{children:[(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(r,{type:`button`,variant:n===`coding-index`?`secondary`:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:()=>f(`coding-index`),children:(0,h.jsx)(i,{className:`h-4 w-4`})})}),(0,h.jsx)(l,{children:`Sort by coding intelligence`})]}):null,t[18]=f,t[19]=_,t[20]=n,t[21]=j):j=t[21];let M;t[22]!==f||t[23]!==v||t[24]!==n?(M=v?(0,h.jsxs)(d,{children:[(0,h.jsx)(c,{asChild:!0,children:(0,h.jsx)(r,{type:`button`,variant:n===`intelligence-by-price`?`secondary`:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:()=>f(`intelligence-by-price`),children:(0,h.jsx)(o,{className:`h-4 w-4`})})}),(0,h.jsx)(l,{children:`Sort by price/intelligence`})]}):null,t[22]=f,t[23]=v,t[24]=n,t[25]=M):M=t[25];let N;return t[26]!==A||t[27]!==j||t[28]!==M||t[29]!==w?(N=(0,h.jsx)(u,{children:(0,h.jsxs)(`div`,{className:`flex items-center rounded-md p-0.5`,children:[w,A,j,M]})}),t[26]=A,t[27]=j,t[28]=M,t[29]=w,t[30]=N):N=t[30],N}export{v as n,g as r,_ as t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Dt as i,N as a,rt as o}from"./dist-CTLFS4dn.js";import{a as s,r as c,t as l}from"./button-kWtLAMpB.js";import{Bn as u,Ot as d,Pn as f,Un as p,_n as m,fn as h,kn as g,q as _}from"./dist-c_QADQ5u.js";import{i as v,n as y,r as b,t as x}from"./tooltip-Db8UeYxm.js";import{Cn as S,G as C,Nt as w,V as ee,jt as T,m as E,o as D,wn as O}from"./api-DX1ny6q-.js";import{n as k}from"./scroll-area-lkVMElz5.js";import{_r as A,ct as j,dr as M,dt as N,fr as P,ft as F,gr as I,hr as L,kn as R,mr as z,mt as B,pr as V,pt as H,st as U,ut as W,vr as G,vt as K,wt as q,zt as te}from"./index-B3-5kIOf.js";import{n as J,t as Y}from"./toggle-group-Q36wRGKA.js";import{t as ne}from"./sorting-DqwxPMRN.js";import{t as re}from"./pending-changes-Bn-0ak1d.js";function ie(e){let t=/^[^:]+:\s+(.+)$/.exec(e);return(t?t[1]:e).trim()}function ae(e){return[R(e.id),e.name,ie(e.name)]}function oe(e,t){let n=new Set(t.map(e=>e.toLowerCase()));return ae(e).some(e=>n.has(e.toLowerCase()))}function se(e,t){return e.filter(e=>oe(e,t)).map(e=>e.id)}var X=t(),Z=e(n(),1),Q=r(),ce=a(`app.model-selector.ui`),le=`rounded-full border-0 px-3 data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:shadow-sm`;function ue({provider:e,onModelsChange:t,isLoading:n,disabled:r,displayMode:a=`grid`,autoSelectRecommended:o=!1}){let[l,u]=(0,Z.useState)([]),[f,h]=(0,Z.useState)(new Set),[g,S]=(0,Z.useState)(new Set),[ee,T]=(0,Z.useState)(new Map),[E,D]=(0,Z.useState)(!1),[O,k]=(0,Z.useState)(``),[A,j]=(0,Z.useState)(`alphabetical`);(0,Z.useEffect)(()=>{M()},[e]);let M=async()=>{D(!0),k(``),j(`alphabetical`);try{let t=await C(e);u(t.models);let n=new Set(t.enabledModelIds);h(n);let r=new Map,i=new Set;if(o)try{let{models:e}=await w();i=new Set(se(t.models,e)),r=new Map([...i].filter(e=>!n.has(e)).map(e=>[e,!0]))}catch(e){ce.error(`Failed to load recommended models:`,e)}S(i),T(r),N(n,r,t.models)}catch(t){ce.error(`Failed to load models for ${e}:`,t),u([]),h(new Set),S(new Set)}finally{D(!1)}},N=(e,n,r=l)=>{let i=new Set(e);r.forEach(e=>{n.has(e.id)&&(n.get(e.id)?i.add(e.id):i.delete(e.id))}),t?.(i)},F=e=>{T(t=>{let n=re(t,e,f);return N(f,n),n})},I=e=>{T(t=>{let n=new Map(t);return l.forEach(t=>{let r=f.has(t.id);e?r?n.delete(t.id):n.set(t.id,!0):r?n.set(t.id,!1):n.delete(t.id)}),N(f,n),n})},L=e=>R(e.id);function z(e,t=ee){let n=t.has(e),r=t.get(e);return n?!!r:f.has(e)}let B=ne({models:l,query:O,sortBy:A,getDisplayName:L,getPriority:e=>+!z(e.id)}),V=A===`alphabetical`?`alphabetical`:`price`;function H(e){if(e===`alphabetical`){j(`alphabetical`);return}e===`price`&&j(`price-low`)}function W(){A!==`alphabetical`&&j(e=>e===`price-low`?`price-high`:`price-low`)}return E||n?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Q.jsx)(d,{className:`h-5 w-5 animate-spin text-muted-foreground`})}):l.length===0?(0,Q.jsx)(`div`,{className:`text-center py-8`,children:(0,Q.jsx)(`p`,{className:i.bodyMuted,children:`No models available for this provider.`})}):a===`compact`?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`div`,{className:c(`flex items-center justify-between gap-3`,r&&`opacity-25`),children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,Q.jsx)(U,{id:`select-all-models`,disabled:r,value:l.every(e=>z(e.id)),onChange:e=>I(e),ariaLabel:`Select all models`}),(0,Q.jsx)(`label`,{htmlFor:`select-all-models`,className:c(i.body,`cursor-pointer`),children:`Select all models`})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[(0,Q.jsxs)(`div`,{className:`relative w-44 sm:w-52`,children:[(0,Q.jsx)(_,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none`}),(0,Q.jsx)(P,{placeholder:`Search models...`,value:O,onChange:e=>k(e.target.value),disabled:r,className:`pl-8 h-9`})]}),(0,Q.jsxs)(Y,{type:`single`,value:V,onValueChange:H,"aria-label":`Sort models`,variant:`outline`,className:`inline-flex rounded-full border bg-muted/40 p-1`,children:[(0,Q.jsx)(J,{value:`alphabetical`,"aria-label":`Sort A–Z`,disabled:r,className:le,children:(0,Q.jsx)(p,{className:`h-4 w-4`})}),(0,Q.jsx)(J,{value:`price`,"aria-label":`Sort by price`,disabled:r,className:le,onClick:W,children:(0,Q.jsx)(m,{className:`h-4 w-4`})})]})]})]}),(0,Q.jsx)(b,{children:(0,Q.jsx)(`div`,{className:`grid grid-cols-1 gap-0 overflow-hidden rounded-md border border-table-border`,children:B.length===0?(0,Q.jsx)(`div`,{className:`text-center py-4`,children:(0,Q.jsx)(`p`,{className:i.bodyMuted,children:O?`No models match your search.`:`No models available.`})}):B.map(e=>{let t=z(e.id),n=e.pricing,a=t&&g.has(e.id);return(0,Q.jsxs)(x,{children:[(0,Q.jsx)(v,{asChild:!0,children:(0,Q.jsxs)(`div`,{className:c(`flex items-center space-x-3 p-3 hover:bg-muted/30 transition-colors cursor-default`,r&&`opacity-25`),children:[(0,Q.jsx)(U,{id:e.id,disabled:r,value:t??!1,onChange:()=>F(e.id),ariaLabel:`${L(e)} ${t?`enabled`:`disabled`}`}),(0,Q.jsxs)(`div`,{className:`flex-1 flex items-center justify-between gap-3 leading-none`,children:[(0,Q.jsxs)(`label`,{htmlFor:e.id,className:c(i.body,`peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer truncate flex-1 w-0`),children:[L(e),a&&(0,Q.jsx)(`span`,{className:`text-muted-foreground`,children:` (Recommended)`})]}),n&&(0,Q.jsx)(`span`,{className:c(i.compact,`text-muted-foreground whitespace-nowrap flex-shrink-0`),children:(n.prompt??0)<=0&&(n.completion??0)<=0?`Free`:`${s(n.prompt??0)} in | ${s(n.completion??0)} out`})]})]})}),e.description&&(0,Q.jsx)(y,{side:`top`,className:`max-w-xs`,children:(0,Q.jsx)(`p`,{className:i.body,children:e.description})})]},e.id)})})})]}):null}var $=a(`app.onboarding-dialog.ui`);function de(e){let t=(0,X.c)(26),{currentStep:n}=e,r=e=>e===`provider-selection`&&n===`provider-selection`||n===`model-selection`,a=e=>n===e,o=a(`git-check`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,s;t[0]===o?s=t[1]:(s=c(`flex items-center justify-center h-8 w-8 rounded-full`,i.label,o),t[0]=o,t[1]=s);let l;t[2]===s?l=t[3]:(l=(0,Q.jsx)(`div`,{className:s,children:`1`}),t[2]=s,t[3]=l);let u=r(`provider-selection`)?`bg-primary`:`bg-muted`,d;t[4]===u?d=t[5]:(d=c(`h-0.5 flex-1`,u),t[4]=u,t[5]=d);let f;t[6]===d?f=t[7]:(f=(0,Q.jsx)(`div`,{className:d}),t[6]=d,t[7]=f);let p=a(`provider-selection`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,m;t[8]===p?m=t[9]:(m=c(`flex items-center justify-center h-8 w-8 rounded-full`,i.label,p),t[8]=p,t[9]=m);let h;t[10]===m?h=t[11]:(h=(0,Q.jsx)(`div`,{className:m,children:`2`}),t[10]=m,t[11]=h);let g=r(`model-selection`)?`bg-primary`:`bg-muted`,_;t[12]===g?_=t[13]:(_=c(`h-0.5 flex-1`,g),t[12]=g,t[13]=_);let v;t[14]===_?v=t[15]:(v=(0,Q.jsx)(`div`,{className:_}),t[14]=_,t[15]=v);let y=a(`model-selection`)?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground`,b;t[16]===y?b=t[17]:(b=c(`flex items-center justify-center h-8 w-8 rounded-full`,i.label,y),t[16]=y,t[17]=b);let x;t[18]===b?x=t[19]:(x=(0,Q.jsx)(`div`,{className:b,children:`3`}),t[18]=b,t[19]=x);let S;return t[20]!==v||t[21]!==x||t[22]!==l||t[23]!==f||t[24]!==h?(S=(0,Q.jsxs)(`div`,{className:`w-1/2 mx-auto flex items-center gap-2 mb-6`,children:[l,f,h,v,x]}),t[20]=v,t[21]=x,t[22]=l,t[23]=f,t[24]=h,t[25]=S):S=t[25],S}function fe(e){let t=(0,X.c)(3),{currentStep:n}=e;if(n===`provider-selection`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(G,{children:`Select an AI Provider`}),(0,Q.jsx)(L,{children:`Choose your preferred AI provider and enter your API key.`})]}),t[0]=e):e=t[0],e}if(n===`model-selection`){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(G,{children:`Select Models`}),(0,Q.jsx)(L,{children:`Choose which models you want to use with this provider.`})]}),t[1]=e):e=t[1],e}let r;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(G,{children:`Let's get started`}),(0,Q.jsx)(L,{children:`First, we need to check that Git is installed on your system.`})]}),t[2]=r):r=t[2],r}function pe(e){let t=(0,X.c)(7),{gitLoading:n,gitInstalled:r}=e;if(n){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Q.jsx)(d,{className:`h-5 w-5 animate-spin text-muted-foreground`})}),t[0]=e):e=t[0],e}if(r){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsxs)(K,{variant:`success`,className:`mb-0 flex items-start gap-3`,children:[(0,Q.jsx)(f,{className:`h-5 w-5 text-green-600 flex-shrink-0 mt-0.5`}),(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`p`,{className:c(i.label,`text-green-900`),children:`Git is installed`}),(0,Q.jsx)(`p`,{className:i.bodyMuted,children:`You're all set to use Git features in Tarsk.`})]})]}),t[1]=e):e=t[1],e}let a;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Q.jsx)(g,{className:`h-5 w-5 text-yellow-600 flex-shrink-0 mt-0.5`}),t[2]=a):a=t[2];let o,s;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,Q.jsx)(`p`,{className:i.label,children:`Git is not installed`}),s=(0,Q.jsx)(`p`,{className:i.bodyMuted,children:`Git is required for some features in Tarsk. You can continue without it, but we recommend installing it.`}),t[3]=o,t[4]=s):(o=t[3],s=t[4]);let l;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(l=c(i.caption,`text-brand hover:underline mt-2 inline-flex items-center gap-1`),t[5]=l):l=t[5];let u;return t[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Q.jsxs)(K,{variant:`hint`,className:`mb-0 flex items-start gap-3`,children:[a,(0,Q.jsxs)(`div`,{className:`flex-1`,children:[o,s,(0,Q.jsxs)(`a`,{href:`https://git-scm.com/downloads`,target:`_blank`,rel:`noreferrer`,className:l,children:[`Download Git `,(0,Q.jsx)(h,{className:`h-3 w-3`})]})]})]}),t[6]=u):u=t[6],u}function me(e){let t=(0,X.c)(16),{selectedProvider:n,onProviderChange:r,apiKey:a,onApiKeyChange:s,validatingKey:l,providerEnvValues:u,onProviderEnvChange:d,keyError:f}=e,p;t[0]!==a||t[1]!==s||t[2]!==r||t[3]!==n||t[4]!==l?(p=(0,Q.jsx)(j,{selectedProvider:n,onProviderChange:r,showApiKeyInput:!0,apiKey:a,onApiKeyChange:s,variant:`dropdown`,isLoading:l}),t[0]=a,t[1]=s,t[2]=r,t[3]=n,t[4]=l,t[5]=p):p=t[5];let m;t[6]!==d||t[7]!==u||t[8]!==n?(m=n&&F(n).map(e=>(0,Q.jsx)(q,{label:(0,Q.jsx)(M,{htmlFor:e,children:N(e)}),control:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`input`,{id:e,value:u[e]??``,onChange:t=>d(e,t.target.value),className:`h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base`,placeholder:o(n.slug)&&e===`LOCAL_API_URL`?n.api:e,spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`}),n.slug===`azure`&&e===H(n)||o(n.slug)&&e===`LOCAL_API_URL`?(0,Q.jsx)(`p`,{className:c(i.bodyMuted,`mt-2 break-all`),children:B(n,u)||n.api}):null]}),align:`start`},e)),t[6]=d,t[7]=u,t[8]=n,t[9]=m):m=t[9];let h;t[10]===f?h=t[11]:(h=f&&(0,Q.jsx)(K,{variant:`error`,className:`mb-0`,children:f}),t[10]=f,t[11]=h);let g;return t[12]!==p||t[13]!==m||t[14]!==h?(g=(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[p,m,h]}),t[12]=p,t[13]=m,t[14]=h,t[15]=g):g=t[15],g}function he(e){let t=(0,X.c)(4),{providerSlug:n,modelsLoading:r,onModelsChange:i}=e,a;return t[0]!==r||t[1]!==i||t[2]!==n?(a=(0,Q.jsx)(`div`,{className:`space-y-4`,children:(0,Q.jsx)(ue,{provider:n,isLoading:r,displayMode:`compact`,disabled:!1,autoSelectRecommended:!0,onModelsChange:i})}),t[0]=r,t[1]=i,t[2]=n,t[3]=a):a=t[3],a}function ge(e){let t=(0,X.c)(32),{currentStep:n,savingOnboarding:r,gitLoading:i,validatingKey:a,apiKey:o,hasProvider:s,onSkip:c,onBack:p,onContinue:m,onValidate:h,onFinish:g}=e,_;t[0]!==n||t[1]!==c||t[2]!==r?(_=n===`provider-selection`&&(0,Q.jsx)(l,{variant:`ghost`,onClick:c,disabled:r,children:`Skip for now`}),t[0]=n,t[1]=c,t[2]=r,t[3]=_):_=t[3];let v;t[4]===_?v=t[5]:(v=(0,Q.jsx)(`div`,{children:_}),t[4]=_,t[5]=v);let y;t[6]!==n||t[7]!==p||t[8]!==r?(y=n!==`git-check`&&(0,Q.jsx)(l,{variant:`outline`,onClick:p,disabled:r,children:`Back`}),t[6]=n,t[7]=p,t[8]=r,t[9]=y):y=t[9];let b;t[10]!==n||t[11]!==i||t[12]!==m?(b=n===`git-check`&&(0,Q.jsxs)(l,{onClick:m,disabled:i,className:`gap-2`,children:[`Continue `,(0,Q.jsx)(u,{className:`h-4 w-4`})]}),t[10]=n,t[11]=i,t[12]=m,t[13]=b):b=t[13];let x;t[14]!==o||t[15]!==n||t[16]!==s||t[17]!==h||t[18]!==a?(x=n===`provider-selection`&&(0,Q.jsx)(l,{onClick:h,disabled:a||!o.trim()||!s,className:`gap-2`,children:a?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(d,{className:`h-4 w-4 animate-spin`}),`Validating...`]}):(0,Q.jsxs)(Q.Fragment,{children:[`Next `,(0,Q.jsx)(u,{className:`h-4 w-4`})]})}),t[14]=o,t[15]=n,t[16]=s,t[17]=h,t[18]=a,t[19]=x):x=t[19];let S;t[20]!==n||t[21]!==g||t[22]!==r?(S=n===`model-selection`&&(0,Q.jsx)(l,{onClick:g,disabled:r,className:`gap-2`,children:r?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(d,{className:`h-4 w-4 animate-spin`}),`Finishing...`]}):(0,Q.jsxs)(Q.Fragment,{children:[`Finish `,(0,Q.jsx)(f,{className:`h-4 w-4`})]})}),t[20]=n,t[21]=g,t[22]=r,t[23]=S):S=t[23];let C;t[24]!==y||t[25]!==b||t[26]!==x||t[27]!==S?(C=(0,Q.jsxs)(`div`,{className:`flex gap-3`,children:[y,b,x,S]}),t[24]=y,t[25]=b,t[26]=x,t[27]=S,t[28]=C):C=t[28];let w;return t[29]!==v||t[30]!==C?(w=(0,Q.jsx)(`div`,{className:`px-6 py-4 border-t border-border bg-muted/10`,children:(0,Q.jsxs)(I,{className:`flex items-center justify-between`,children:[v,C]})}),t[29]=v,t[30]=C,t[31]=w):w=t[31],w}function _e({open:e,onOpenChange:t,onComplete:n}){let[r,i]=(0,Z.useState)(`git-check`),[a,o]=(0,Z.useState)(null),[s,c]=(0,Z.useState)(!1),[l,u]=(0,Z.useState)([]),[d,f]=(0,Z.useState)(null),[p,m]=(0,Z.useState)(``),[h,g]=(0,Z.useState)({}),[_,v]=(0,Z.useState)(!1),[y,b]=(0,Z.useState)(``),[x,w]=(0,Z.useState)(new Set),[j,M]=(0,Z.useState)(!1),[P,I]=(0,Z.useState)(!1);(0,Z.useEffect)(()=>{e&&r===`git-check`&&L()},[e,r]),(0,Z.useEffect)(()=>{e&&r===`provider-selection`&&l.length===0&&R()},[e,r,l.length]),(0,Z.useEffect)(()=>{e&&r===`model-selection`&&d&&B()},[e,r,d]);let L=async()=>{c(!0);try{let e=await D();o(e.gitInstalled),e.gitInstalled&&i(`provider-selection`)}catch(e){$.error(`Failed to check git installation:`,e),o(!1)}finally{c(!1)}},R=async()=>{try{let e=await T();if(u(e),e.length>0&&!d){let t=W(e);t&&(f(t),m(t.apiKey??``),g(t.envValues??{}))}}catch(e){$.error(`Failed to load providers:`,e)}},B=async()=>{if(d){M(!0);try{await C(d.name),w(new Set)}catch(e){$.error(`Failed to load models:`,e)}finally{M(!1)}}},H=async()=>{if(!d||!p.trim()){b(`Please enter an API key`);return}let e=F(d),t=e.find(e=>!h[e]?.trim());if(t){b(`Please enter ${N(t)}`);return}v(!0),b(``);try{e.length>0&&await S(Object.fromEntries(e.map(e=>[e,h[e].trim()]))),await O(d.slug,p),i(`model-selection`)}catch(e){b(e instanceof Error?e.message:`Failed to validate API key`)}finally{v(!1)}},U=async()=>{if(d){I(!0);try{for(let e of x)await ee(d.slug,e);te(),await E(),n?.(),t(!1)}catch(e){$.error(`Failed to complete onboarding:`,e)}finally{I(!1)}}},G=async()=>{I(!0);try{await E(),n?.(),t(!1)}catch(e){$.error(`Failed to skip onboarding:`,e)}finally{I(!1)}},K=e=>{f(e),m(e.apiKey??``),g(e.envValues??{}),b(``)},q=(e,t)=>{g(n=>({...n,[e]:t}))},J=()=>{i(`provider-selection`)};function Y(){r===`provider-selection`?i(`git-check`):r===`model-selection`&&i(`provider-selection`)}return(0,Q.jsx)(V,{open:e,onOpenChange:t,children:(0,Q.jsxs)(z,{className:`max-w-2xl h-[min(42rem,90dvh)] flex flex-col p-0 overflow-hidden`,children:[(0,Q.jsxs)(`div`,{className:`px-6 pt-6 pb-2`,children:[(0,Q.jsx)(de,{currentStep:r}),(0,Q.jsx)(A,{children:(0,Q.jsx)(fe,{currentStep:r})})]}),(0,Q.jsx)(k,{className:`flex-1 min-h-0 overflow-hidden`,children:(0,Q.jsxs)(`div`,{className:`px-6 py-4`,children:[r===`git-check`&&(0,Q.jsx)(`div`,{className:`space-y-4`,children:(0,Q.jsx)(pe,{gitLoading:s,gitInstalled:a})}),r===`provider-selection`&&(0,Q.jsx)(me,{selectedProvider:d,onProviderChange:K,apiKey:p,onApiKeyChange:m,validatingKey:_,providerEnvValues:h,onProviderEnvChange:q,keyError:y}),r===`model-selection`&&d&&(0,Q.jsx)(he,{providerSlug:d.slug,modelsLoading:j,onModelsChange:w})]})}),(0,Q.jsx)(ge,{currentStep:r,savingOnboarding:P,gitLoading:s,validatingKey:_,apiKey:p,hasProvider:!!d,onSkip:()=>void G(),onBack:Y,onContinue:J,onValidate:()=>void H(),onFinish:()=>void U()})]})})}export{_e as OnboardingDialog,_e as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Dt as a,Jt as o}from"./dist-CTLFS4dn.js";import{r as ee,t as te}from"./button-kWtLAMpB.js";import{Ot as s}from"./dist-c_QADQ5u.js";import{Hn as c,Kn as l,bt as u}from"./api-DX1ny6q-.js";import{t as d}from"./use-toast-xpb5jNtN.js";import{Et as ne,Jn as re,St as ie,Tt as ae,dr as f,fr as oe,gt as p,kt as se,ot as ce,vt as le,wt as ue}from"./index-u8UbWjXL.js";import{i as de}from"./commit-method-fields-CVQjrJ_O.js";import{t as fe}from"./use-settings-page-loading-BTySlInF.js";var pe=t(),m=e(n(),1),h=r();async function me(e,t){if(!e){t.setLoading(!1);return}t.setLoading(!0);try{let n=await u(e);t.setValue(n.setupScript??``),t.setRunCmd(n.runCommand??``),t.setCommitMethod(n.commitMethod??o.PullRequest),t.setAllowAllCommands(n.allowAllCommands!==!1),t.setAllowedCommandPatterns(n.allowedCommandPatterns??[]),t.setUseBuiltInBrowser(n.useBuiltInBrowser!==!1),t.setOriginalValue(n.setupScript??``),t.setOriginalRunCmd(n.runCommand??``),t.setOriginalCommitMethod(n.commitMethod??o.PullRequest),t.setOriginalAllowAllCommands(n.allowAllCommands!==!1),t.setOriginalAllowedCommandPatterns(n.allowedCommandPatterns??[]),t.setOriginalUseBuiltInBrowser(n.useBuiltInBrowser!==!1)}catch(e){d({title:`Error`,description:e instanceof Error?e.message:`Failed to load coding settings`,variant:`destructive`})}finally{t.setLoading(!1)}}async function he(e,t,n){n(!0);try{let n=await c(e);n.runCommand?(t(n.runCommand),d({title:`Success`,description:`Suggested: ${n.runCommand}`})):d({title:`No command found`,description:`Could not detect a dev script in package.json`})}catch(e){d({title:`Error`,description:e instanceof Error?e.message:`Failed to suggest command`,variant:`destructive`})}finally{n(!1)}}async function ge(e,t,n,r){await l(e,{setupScript:t.trim()||null,runCommand:n.trim()||null,commitMethod:r})}async function g(e,t,n,r,i){(t!==r||JSON.stringify(n)!==JSON.stringify(i))&&await l(e,{allowAllCommands:t,allowedCommandPatterns:n})}async function _e(e,t,n){t!==n&&await l(e,{useBuiltInBrowser:t})}function ve(e){return e.value!==e.originalValue||e.runCmd!==e.originalRunCmd||e.commitMethod!==e.originalCommitMethod||e.allowAllCommands!==e.originalAllowAllCommands||JSON.stringify(e.allowedCommandPatterns)!==JSON.stringify(e.originalAllowedCommandPatterns)||e.useBuiltInBrowser!==e.originalUseBuiltInBrowser}async function ye(e,t,n){n.setSaving(!0);try{return await ge(e,t.value,t.runCmd,t.commitMethod),await g(e,t.allowAllCommands,t.allowedCommandPatterns,t.originalAllowAllCommands,t.originalAllowedCommandPatterns),await _e(e,t.useBuiltInBrowser,t.originalUseBuiltInBrowser),n.setOriginalValue(t.value),n.setOriginalRunCmd(t.runCmd),n.setOriginalCommitMethod(t.commitMethod),n.setOriginalAllowAllCommands(t.allowAllCommands),n.setOriginalAllowedCommandPatterns(t.allowedCommandPatterns),n.setOriginalUseBuiltInBrowser(t.useBuiltInBrowser),!0}catch(e){return d({title:`Error`,description:e instanceof Error?e.message:`Failed to save coding settings`,variant:`destructive`}),!1}finally{n.setSaving(!1)}}function be(e){let t=(0,pe.c)(10),{allowAllCommands:n,patterns:r,disabled:i,onRemove:o}=e;if(n||r.length===0)return null;let s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,h.jsx)(f,{children:`Allowed command patterns`}),t[0]=s):s=t[0];let c;if(t[1]!==i||t[2]!==o||t[3]!==r){let e;t[5]!==i||t[6]!==o?(e=e=>(0,h.jsxs)(`li`,{className:`flex items-center justify-between rounded-md border border-border px-3 py-2`,children:[(0,h.jsx)(`code`,{className:ee(a.mono,a.bodyMuted),children:e}),(0,h.jsx)(te,{type:`button`,variant:`ghost`,size:`sm`,disabled:i,onClick:()=>o(e),children:`Remove`})]},e),t[5]=i,t[6]=o,t[7]=e):e=t[7],c=r.map(e),t[1]=i,t[2]=o,t[3]=r,t[4]=c}else c=t[4];let l;return t[8]===c?l=t[9]:(l=(0,h.jsxs)(`div`,{className:`space-y-2 mt-3`,children:[s,(0,h.jsx)(`ul`,{className:`space-y-1`,children:c})]}),t[8]=c,t[9]=l),l}function _(e){let t=(0,pe.c)(105),{projectId:n}=e,r=i(),[a,ee]=(0,m.useState)(``),[c,l]=(0,m.useState)(``),[u,d]=(0,m.useState)(o.PullRequest),[f,ge]=(0,m.useState)(!1),[g,_e]=(0,m.useState)(!1),[_,xe]=(0,m.useState)(!0),[v,Se]=(0,m.useState)(!0),Ce;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(Ce=[],t[0]=Ce):Ce=t[0];let[y,we]=(0,m.useState)(Ce),[b,Te]=(0,m.useState)(``),[x,Ee]=(0,m.useState)(``),[S,De]=(0,m.useState)(o.PullRequest),[C,Oe]=(0,m.useState)(!0),w;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(w=[],t[1]=w):w=t[1];let[T,ke]=(0,m.useState)(w),[E,Ae]=(0,m.useState)(!0),[D,je]=(0,m.useState)(!0),O;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(O={setValue:ee,setRunCmd:l,setCommitMethod:d,setAllowAllCommands:Se,setAllowedCommandPatterns:we,setUseBuiltInBrowser:Ae,setOriginalValue:Te,setOriginalRunCmd:Ee,setOriginalCommitMethod:De,setOriginalAllowAllCommands:Oe,setOriginalAllowedCommandPatterns:ke,setOriginalUseBuiltInBrowser:je,setLoading:xe,setSaving:ge,setSuggestingCommand:_e},t[2]=O):O=t[2];let Me=O,k;t[3]===n?k=t[4]:(k=()=>me(n,Me),t[3]=n,t[4]=k);let A=k,j,M;t[5]===n?(j=t[6],M=t[7]):(j=()=>{n&&xe(!0)},M=[n],t[5]=n,t[6]=j,t[7]=M),(0,m.useLayoutEffect)(j,M);let N,P;t[8]===A?(N=t[9],P=t[10]):(N=()=>{A()},P=[A],t[8]=A,t[9]=N,t[10]=P),(0,m.useEffect)(N,P);let Ne;t[11]===_?Ne=t[12]:(Ne=[_],t[11]=_,t[12]=Ne);let Pe=fe(n,Ne),Fe;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(Fe=function(e){d(e)},t[13]=Fe):Fe=t[13];let Ie=Fe,Le;t[14]===n?Le=t[15]:(Le=async function(){n&&await he(n,l,_e)},t[14]=n,t[15]=Le);let Re=Le,ze;t[16]!==v||t[17]!==y||t[18]!==u||t[19]!==r||t[20]!==C||t[21]!==T||t[22]!==S||t[23]!==x||t[24]!==D||t[25]!==b||t[26]!==n||t[27]!==c||t[28]!==E||t[29]!==a?(ze=async function(){n&&await ye(n,{value:a,runCmd:c,commitMethod:u,allowAllCommands:v,allowedCommandPatterns:y,useBuiltInBrowser:E,originalValue:b,originalRunCmd:x,originalCommitMethod:S,originalAllowAllCommands:C,originalAllowedCommandPatterns:T,originalUseBuiltInBrowser:D},Me)&&r(`/`)},t[16]=v,t[17]=y,t[18]=u,t[19]=r,t[20]=C,t[21]=T,t[22]=S,t[23]=x,t[24]=D,t[25]=b,t[26]=n,t[27]=c,t[28]=E,t[29]=a,t[30]=ze):ze=t[30];let Be=ze,F=_||f,Ve=_||g,He;t[31]!==v||t[32]!==y||t[33]!==u||t[34]!==C||t[35]!==T||t[36]!==S||t[37]!==x||t[38]!==D||t[39]!==b||t[40]!==c||t[41]!==E||t[42]!==a?(He=ve({value:a,runCmd:c,commitMethod:u,allowAllCommands:v,allowedCommandPatterns:y,useBuiltInBrowser:E,originalValue:b,originalRunCmd:x,originalCommitMethod:S,originalAllowAllCommands:C,originalAllowedCommandPatterns:T,originalUseBuiltInBrowser:D}),t[31]=v,t[32]=y,t[33]=u,t[34]=C,t[35]=T,t[36]=S,t[37]=x,t[38]=D,t[39]=b,t[40]=c,t[41]=E,t[42]=a,t[43]=He):He=t[43];let Ue=He;if(!n){let e;return t[44]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,h.jsx)(ae,{title:`No project selected`,children:`Please select a project from the sidebar to view its coding settings.`}),t[44]=e):e=t[44],e}let I;t[45]===Be?I=t[46]:(I=()=>void Be(),t[45]=Be,t[46]=I);let We=F||!Ue,L;t[47]===f?L=t[48]:(L=f?(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(s,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[47]=f,t[48]=L);let R;t[49]!==I||t[50]!==We||t[51]!==L?(R=(0,h.jsx)(le,{title:`Coding`,description:`Scripts and command behavior Tarsk uses when working on this project.`,action:(0,h.jsx)(te,{onClick:I,disabled:We,children:L}),sticky:!1}),t[49]=I,t[50]=We,t[51]=L,t[52]=R):R=t[52];let Ge;t[53]===Symbol.for(`react.memo_cache_sentinel`)?(Ge=e=>ee(e.target.value),t[53]=Ge):Ge=t[53];let z;t[54]!==_||t[55]!==a?(z=(0,h.jsx)(p,{title:`Setup Script`,description:`This script runs automatically after cloning the repo for new threads.`,children:(0,h.jsx)(re,{id:`setupScript`,value:a,onChange:Ge,placeholder:`e.g. npm install`,className:`font-mono min-h-[80px] resize-none`,disabled:_})}),t[54]=_,t[55]=a,t[56]=z):z=t[56];let Ke;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(Ke=e=>l(e.target.value),t[57]=Ke):Ke=t[57];let B;t[58]!==_||t[59]!==c?(B=(0,h.jsx)(oe,{id:`runCommand`,value:c,onChange:Ke,placeholder:`e.g. npm run dev`,className:`font-mono pr-28`,disabled:_}),t[58]=_,t[59]=c,t[60]=B):B=t[60];let V;t[61]===Re?V=t[62]:(V=()=>void Re(),t[61]=Re,t[62]=V);let H;t[63]===g?H=t[64]:(H=g?(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(s,{className:`h-3 w-3 animate-spin`}),`Suggesting...`]}):`Suggest`,t[63]=g,t[64]=H);let U;t[65]!==Ve||t[66]!==V||t[67]!==H?(U=(0,h.jsx)(te,{variant:`ghost`,size:`sm`,className:`absolute right-1 top-1 h-8`,onClick:V,disabled:Ve,children:H}),t[65]=Ve,t[66]=V,t[67]=H,t[68]=U):U=t[68];let W;t[69]!==B||t[70]!==U?(W=(0,h.jsx)(p,{title:`Run Command`,description:`The command to start the dev server. Leave empty to disable run functionality.`,children:(0,h.jsxs)(`div`,{className:`relative`,children:[B,U]})}),t[69]=B,t[70]=U,t[71]=W):W=t[71];let qe=u===o.PullRequest?`Feature branches are created and pull requests can be created.`:`Commits are made directly to the main branch without feature branches.`,G;t[72]!==u||t[73]!==_?(G=(0,h.jsx)(de,{commitMethod:u,onCommitMethodChange:Ie,disabled:_}),t[72]=u,t[73]=_,t[74]=G):G=t[74];let K;t[75]!==qe||t[76]!==G?(K=(0,h.jsx)(p,{title:`Commit Method`,description:qe,controlLayout:`row-end`,action:G}),t[75]=qe,t[76]=G,t[77]=K):K=t[77];let Je=!v,Ye;t[78]===Symbol.for(`react.memo_cache_sentinel`)?(Ye=e=>Se(!e),t[78]=Ye):Ye=t[78];let q;t[79]!==_||t[80]!==Je?(q=(0,h.jsx)(ce,{value:Je,onChange:Ye,disabled:_,ariaLabel:`Confirm Commands`}),t[79]=_,t[80]=Je,t[81]=q):q=t[81];let J;t[82]!==v||t[83]!==y||t[84]!==F?(J=!v&&y.length>0&&(0,h.jsx)(be,{allowAllCommands:v,patterns:y,disabled:F,onRemove:e=>we(t=>t.filter(t=>t!==e))}),t[82]=v,t[83]=y,t[84]=F,t[85]=J):J=t[85];let Y;t[86]!==q||t[87]!==J?(Y=(0,h.jsx)(p,{title:`Confirm Commands`,description:`When enabled, the agent asks for approval before running bash commands, skill scripts, and browser shell calls.`,controlLayout:`row-end`,action:q,children:J}),t[86]=q,t[87]=J,t[88]=Y):Y=t[88];let X;t[89]!==F||t[90]!==E?(X=(0,h.jsx)(p,{title:`Built-in Browser`,description:`When enabled, Tarsk shows the Browser tab and opens detected dev URLs in the app. When disabled, the tab is hidden and URLs open in your system browser.`,controlLayout:`row-end`,action:(0,h.jsx)(ce,{value:E,onChange:Ae,disabled:F,ariaLabel:`Built-in Browser`})}),t[89]=F,t[90]=E,t[91]=X):X=t[91];let Z;t[92]!==z||t[93]!==W||t[94]!==K||t[95]!==Y||t[96]!==X?(Z=(0,h.jsx)(ne,{className:`max-w-none pt-6`,children:(0,h.jsxs)(ue,{children:[z,W,K,Y,X]})}),t[92]=z,t[93]=W,t[94]=K,t[95]=Y,t[96]=X,t[97]=Z):Z=t[97];let Q;t[98]!==R||t[99]!==Z?(Q=(0,h.jsxs)(se,{className:`shrink-0`,children:[R,Z]}),t[98]=R,t[99]=Z,t[100]=Q):Q=t[100];let $;return t[101]!==Pe||t[102]!==n||t[103]!==Q?($=(0,h.jsx)(ie,{loading:Pe,children:Q},n),t[101]=Pe,t[102]=n,t[103]=Q,t[104]=$):$=t[104],$}export{_ as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Dt as a,Jt as o}from"./dist-CTLFS4dn.js";import{r as ee,t as te}from"./button-kWtLAMpB.js";import{Ot as s}from"./dist-c_QADQ5u.js";import{Hn as c,Kn as l,bt as u}from"./api-DX1ny6q-.js";import{t as d}from"./use-toast-xpb5jNtN.js";import{At as ne,Ct as re,Dt as ie,Et as ae,Jn as oe,Tt as se,_t as f,dr as p,fr as ce,st as le,yt as ue}from"./index-B3-5kIOf.js";import{i as de}from"./commit-method-fields-BtEHb0_G.js";import{t as fe}from"./use-settings-page-loading-BTySlInF.js";var pe=t(),m=e(n(),1),h=r();async function me(e,t){if(!e){t.setLoading(!1);return}t.setLoading(!0);try{let n=await u(e);t.setValue(n.setupScript??``),t.setRunCmd(n.runCommand??``),t.setCommitMethod(n.commitMethod??o.PullRequest),t.setAllowAllCommands(n.allowAllCommands!==!1),t.setAllowedCommandPatterns(n.allowedCommandPatterns??[]),t.setUseBuiltInBrowser(n.useBuiltInBrowser!==!1),t.setOriginalValue(n.setupScript??``),t.setOriginalRunCmd(n.runCommand??``),t.setOriginalCommitMethod(n.commitMethod??o.PullRequest),t.setOriginalAllowAllCommands(n.allowAllCommands!==!1),t.setOriginalAllowedCommandPatterns(n.allowedCommandPatterns??[]),t.setOriginalUseBuiltInBrowser(n.useBuiltInBrowser!==!1)}catch(e){d({title:`Error`,description:e instanceof Error?e.message:`Failed to load coding settings`,variant:`destructive`})}finally{t.setLoading(!1)}}async function he(e,t,n){n(!0);try{let n=await c(e);n.runCommand?(t(n.runCommand),d({title:`Success`,description:`Suggested: ${n.runCommand}`})):d({title:`No command found`,description:`Could not detect a dev script in package.json`})}catch(e){d({title:`Error`,description:e instanceof Error?e.message:`Failed to suggest command`,variant:`destructive`})}finally{n(!1)}}async function ge(e,t,n,r){await l(e,{setupScript:t.trim()||null,runCommand:n.trim()||null,commitMethod:r})}async function g(e,t,n,r,i){(t!==r||JSON.stringify(n)!==JSON.stringify(i))&&await l(e,{allowAllCommands:t,allowedCommandPatterns:n})}async function _e(e,t,n){t!==n&&await l(e,{useBuiltInBrowser:t})}function ve(e){return e.value!==e.originalValue||e.runCmd!==e.originalRunCmd||e.commitMethod!==e.originalCommitMethod||e.allowAllCommands!==e.originalAllowAllCommands||JSON.stringify(e.allowedCommandPatterns)!==JSON.stringify(e.originalAllowedCommandPatterns)||e.useBuiltInBrowser!==e.originalUseBuiltInBrowser}async function ye(e,t,n){n.setSaving(!0);try{return await ge(e,t.value,t.runCmd,t.commitMethod),await g(e,t.allowAllCommands,t.allowedCommandPatterns,t.originalAllowAllCommands,t.originalAllowedCommandPatterns),await _e(e,t.useBuiltInBrowser,t.originalUseBuiltInBrowser),n.setOriginalValue(t.value),n.setOriginalRunCmd(t.runCmd),n.setOriginalCommitMethod(t.commitMethod),n.setOriginalAllowAllCommands(t.allowAllCommands),n.setOriginalAllowedCommandPatterns(t.allowedCommandPatterns),n.setOriginalUseBuiltInBrowser(t.useBuiltInBrowser),!0}catch(e){return d({title:`Error`,description:e instanceof Error?e.message:`Failed to save coding settings`,variant:`destructive`}),!1}finally{n.setSaving(!1)}}function be(e){let t=(0,pe.c)(10),{allowAllCommands:n,patterns:r,disabled:i,onRemove:o}=e;if(n||r.length===0)return null;let s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,h.jsx)(p,{children:`Allowed command patterns`}),t[0]=s):s=t[0];let c;if(t[1]!==i||t[2]!==o||t[3]!==r){let e;t[5]!==i||t[6]!==o?(e=e=>(0,h.jsxs)(`li`,{className:`flex items-center justify-between rounded-md border border-border px-3 py-2`,children:[(0,h.jsx)(`code`,{className:ee(a.mono,a.bodyMuted),children:e}),(0,h.jsx)(te,{type:`button`,variant:`ghost`,size:`sm`,disabled:i,onClick:()=>o(e),children:`Remove`})]},e),t[5]=i,t[6]=o,t[7]=e):e=t[7],c=r.map(e),t[1]=i,t[2]=o,t[3]=r,t[4]=c}else c=t[4];let l;return t[8]===c?l=t[9]:(l=(0,h.jsxs)(`div`,{className:`space-y-2 mt-3`,children:[s,(0,h.jsx)(`ul`,{className:`space-y-1`,children:c})]}),t[8]=c,t[9]=l),l}function _(e){let t=(0,pe.c)(105),{projectId:n}=e,r=i(),[a,ee]=(0,m.useState)(``),[c,l]=(0,m.useState)(``),[u,d]=(0,m.useState)(o.PullRequest),[p,ge]=(0,m.useState)(!1),[g,_e]=(0,m.useState)(!1),[_,xe]=(0,m.useState)(!0),[v,Se]=(0,m.useState)(!0),Ce;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(Ce=[],t[0]=Ce):Ce=t[0];let[y,we]=(0,m.useState)(Ce),[b,Te]=(0,m.useState)(``),[x,Ee]=(0,m.useState)(``),[S,De]=(0,m.useState)(o.PullRequest),[C,Oe]=(0,m.useState)(!0),w;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(w=[],t[1]=w):w=t[1];let[T,ke]=(0,m.useState)(w),[E,Ae]=(0,m.useState)(!0),[D,je]=(0,m.useState)(!0),O;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(O={setValue:ee,setRunCmd:l,setCommitMethod:d,setAllowAllCommands:Se,setAllowedCommandPatterns:we,setUseBuiltInBrowser:Ae,setOriginalValue:Te,setOriginalRunCmd:Ee,setOriginalCommitMethod:De,setOriginalAllowAllCommands:Oe,setOriginalAllowedCommandPatterns:ke,setOriginalUseBuiltInBrowser:je,setLoading:xe,setSaving:ge,setSuggestingCommand:_e},t[2]=O):O=t[2];let Me=O,k;t[3]===n?k=t[4]:(k=()=>me(n,Me),t[3]=n,t[4]=k);let A=k,j,M;t[5]===n?(j=t[6],M=t[7]):(j=()=>{n&&xe(!0)},M=[n],t[5]=n,t[6]=j,t[7]=M),(0,m.useLayoutEffect)(j,M);let N,P;t[8]===A?(N=t[9],P=t[10]):(N=()=>{A()},P=[A],t[8]=A,t[9]=N,t[10]=P),(0,m.useEffect)(N,P);let Ne;t[11]===_?Ne=t[12]:(Ne=[_],t[11]=_,t[12]=Ne);let Pe=fe(n,Ne),Fe;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(Fe=function(e){d(e)},t[13]=Fe):Fe=t[13];let Ie=Fe,Le;t[14]===n?Le=t[15]:(Le=async function(){n&&await he(n,l,_e)},t[14]=n,t[15]=Le);let Re=Le,ze;t[16]!==v||t[17]!==y||t[18]!==u||t[19]!==r||t[20]!==C||t[21]!==T||t[22]!==S||t[23]!==x||t[24]!==D||t[25]!==b||t[26]!==n||t[27]!==c||t[28]!==E||t[29]!==a?(ze=async function(){n&&await ye(n,{value:a,runCmd:c,commitMethod:u,allowAllCommands:v,allowedCommandPatterns:y,useBuiltInBrowser:E,originalValue:b,originalRunCmd:x,originalCommitMethod:S,originalAllowAllCommands:C,originalAllowedCommandPatterns:T,originalUseBuiltInBrowser:D},Me)&&r(`/`)},t[16]=v,t[17]=y,t[18]=u,t[19]=r,t[20]=C,t[21]=T,t[22]=S,t[23]=x,t[24]=D,t[25]=b,t[26]=n,t[27]=c,t[28]=E,t[29]=a,t[30]=ze):ze=t[30];let Be=ze,F=_||p,Ve=_||g,He;t[31]!==v||t[32]!==y||t[33]!==u||t[34]!==C||t[35]!==T||t[36]!==S||t[37]!==x||t[38]!==D||t[39]!==b||t[40]!==c||t[41]!==E||t[42]!==a?(He=ve({value:a,runCmd:c,commitMethod:u,allowAllCommands:v,allowedCommandPatterns:y,useBuiltInBrowser:E,originalValue:b,originalRunCmd:x,originalCommitMethod:S,originalAllowAllCommands:C,originalAllowedCommandPatterns:T,originalUseBuiltInBrowser:D}),t[31]=v,t[32]=y,t[33]=u,t[34]=C,t[35]=T,t[36]=S,t[37]=x,t[38]=D,t[39]=b,t[40]=c,t[41]=E,t[42]=a,t[43]=He):He=t[43];let Ue=He;if(!n){let e;return t[44]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,h.jsx)(ae,{title:`No project selected`,children:`Please select a project from the sidebar to view its coding settings.`}),t[44]=e):e=t[44],e}let I;t[45]===Be?I=t[46]:(I=()=>void Be(),t[45]=Be,t[46]=I);let We=F||!Ue,L;t[47]===p?L=t[48]:(L=p?(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(s,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[47]=p,t[48]=L);let R;t[49]!==I||t[50]!==We||t[51]!==L?(R=(0,h.jsx)(ue,{title:`Coding`,description:`Scripts and command behavior Tarsk uses when working on this project.`,action:(0,h.jsx)(te,{onClick:I,disabled:We,children:L}),sticky:!1}),t[49]=I,t[50]=We,t[51]=L,t[52]=R):R=t[52];let Ge;t[53]===Symbol.for(`react.memo_cache_sentinel`)?(Ge=e=>ee(e.target.value),t[53]=Ge):Ge=t[53];let z;t[54]!==_||t[55]!==a?(z=(0,h.jsx)(f,{title:`Setup Script`,description:`This script runs automatically after cloning the repo for new threads.`,children:(0,h.jsx)(oe,{id:`setupScript`,value:a,onChange:Ge,placeholder:`e.g. npm install`,className:`font-mono min-h-[80px] resize-none`,disabled:_})}),t[54]=_,t[55]=a,t[56]=z):z=t[56];let Ke;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(Ke=e=>l(e.target.value),t[57]=Ke):Ke=t[57];let B;t[58]!==_||t[59]!==c?(B=(0,h.jsx)(ce,{id:`runCommand`,value:c,onChange:Ke,placeholder:`e.g. npm run dev`,className:`font-mono pr-28`,disabled:_}),t[58]=_,t[59]=c,t[60]=B):B=t[60];let V;t[61]===Re?V=t[62]:(V=()=>void Re(),t[61]=Re,t[62]=V);let H;t[63]===g?H=t[64]:(H=g?(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(s,{className:`h-3 w-3 animate-spin`}),`Suggesting...`]}):`Suggest`,t[63]=g,t[64]=H);let U;t[65]!==Ve||t[66]!==V||t[67]!==H?(U=(0,h.jsx)(te,{variant:`ghost`,size:`sm`,className:`absolute right-1 top-1 h-8`,onClick:V,disabled:Ve,children:H}),t[65]=Ve,t[66]=V,t[67]=H,t[68]=U):U=t[68];let W;t[69]!==B||t[70]!==U?(W=(0,h.jsx)(f,{title:`Run Command`,description:`The command to start the dev server. Leave empty to disable run functionality.`,children:(0,h.jsxs)(`div`,{className:`relative`,children:[B,U]})}),t[69]=B,t[70]=U,t[71]=W):W=t[71];let qe=u===o.PullRequest?`Feature branches are created and pull requests can be created.`:`Commits are made directly to the main branch without feature branches.`,G;t[72]!==u||t[73]!==_?(G=(0,h.jsx)(de,{commitMethod:u,onCommitMethodChange:Ie,disabled:_}),t[72]=u,t[73]=_,t[74]=G):G=t[74];let K;t[75]!==qe||t[76]!==G?(K=(0,h.jsx)(f,{title:`Commit Method`,description:qe,controlLayout:`row-end`,action:G}),t[75]=qe,t[76]=G,t[77]=K):K=t[77];let Je=!v,Ye;t[78]===Symbol.for(`react.memo_cache_sentinel`)?(Ye=e=>Se(!e),t[78]=Ye):Ye=t[78];let q;t[79]!==_||t[80]!==Je?(q=(0,h.jsx)(le,{value:Je,onChange:Ye,disabled:_,ariaLabel:`Confirm Commands`}),t[79]=_,t[80]=Je,t[81]=q):q=t[81];let J;t[82]!==v||t[83]!==y||t[84]!==F?(J=!v&&y.length>0&&(0,h.jsx)(be,{allowAllCommands:v,patterns:y,disabled:F,onRemove:e=>we(t=>t.filter(t=>t!==e))}),t[82]=v,t[83]=y,t[84]=F,t[85]=J):J=t[85];let Y;t[86]!==q||t[87]!==J?(Y=(0,h.jsx)(f,{title:`Confirm Commands`,description:`When enabled, the agent asks for approval before running bash commands, skill scripts, and browser shell calls.`,controlLayout:`row-end`,action:q,children:J}),t[86]=q,t[87]=J,t[88]=Y):Y=t[88];let X;t[89]!==F||t[90]!==E?(X=(0,h.jsx)(f,{title:`Built-in Browser`,description:`When enabled, Tarsk shows the Browser tab and opens detected dev URLs in the app. When disabled, the tab is hidden and URLs open in your system browser.`,controlLayout:`row-end`,action:(0,h.jsx)(le,{value:E,onChange:Ae,disabled:F,ariaLabel:`Built-in Browser`})}),t[89]=F,t[90]=E,t[91]=X):X=t[91];let Z;t[92]!==z||t[93]!==W||t[94]!==K||t[95]!==Y||t[96]!==X?(Z=(0,h.jsx)(ie,{className:`max-w-none pt-6`,children:(0,h.jsxs)(se,{children:[z,W,K,Y,X]})}),t[92]=z,t[93]=W,t[94]=K,t[95]=Y,t[96]=X,t[97]=Z):Z=t[97];let Q;t[98]!==R||t[99]!==Z?(Q=(0,h.jsxs)(ne,{className:`shrink-0`,children:[R,Z]}),t[98]=R,t[99]=Z,t[100]=Q):Q=t[100];let $;return t[101]!==Pe||t[102]!==n||t[103]!==Q?($=(0,h.jsx)(re,{loading:Pe,children:Q},n),t[101]=Pe,t[102]=n,t[103]=Q,t[104]=$):$=t[104],$}export{_ as default};
@@ -0,0 +1 @@
1
+ import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{Dt as n}from"./dist-CTLFS4dn.js";import{r}from"./store-BSzKIu5G.js";import{m as i,t as a}from"./button-kWtLAMpB.js";import{At as o,Ct as s,Dt as c,Et as l,i as u,yt as d}from"./index-B3-5kIOf.js";var f=e(),p=t();function m(e){let t=(0,f.c)(11),{projectId:m}=e,h=u(),g;t[0]===m?g=t[1]:(g=e=>e.projects.find(e=>e.projectId===m),t[0]=m,t[1]=g);let _=r(g);if(!m){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,p.jsx)(l,{title:`No project selected`,children:`Please select a project from the sidebar to manage its danger zone.`}),t[2]=e):e=t[2],e}let v=_?.builtIn===!0,y;t[3]===_?y=t[4]:(y=_?i(_):``,t[3]=_,t[4]=y);let b=y,x;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,p.jsx)(d,{title:`Danger Zone`,description:`Irreversible actions for this project.`,sticky:!1}),t[5]=x):x=t[5];let S;return t[6]!==v||t[7]!==m||t[8]!==b||t[9]!==h?(S=(0,p.jsx)(s,{loading:!1,children:(0,p.jsxs)(o,{className:`shrink-0`,children:[x,(0,p.jsx)(c,{className:`max-w-none pt-6`,children:v?(0,p.jsx)(`p`,{className:n.bodyMuted,children:`Built-in bots cannot be deleted.`}):(0,p.jsxs)(`div`,{className:`flex flex-col items-start gap-4`,children:[(0,p.jsx)(`p`,{className:n.bodyMuted,children:`Permanently removes the project, its threads, and all associated storage. This action cannot be undone.`}),(0,p.jsx)(a,{type:`button`,variant:`destructive`,onClick:()=>{h({id:m,name:b})},children:`Delete Project`})]})})]})}),t[6]=v,t[7]=m,t[8]=b,t[9]=h,t[10]=S):S=t[10],S}export{m as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Dt as a,Y as o}from"./dist-CTLFS4dn.js";import{r as s,t as c}from"./button-kWtLAMpB.js";import{Ot as l,dn as u,un as d,y as f}from"./dist-c_QADQ5u.js";import{Ct as p,Un as m}from"./api-DX1ny6q-.js";import{t as h}from"./use-toast-xpb5jNtN.js";import{Et as g,St as _,Tt as v,fr as y,kt as b,vt as x}from"./index-u8UbWjXL.js";import{t as S}from"./use-settings-page-loading-BTySlInF.js";var C=t(),w=e(n(),1),T=r();function E(e){let t=(0,C.c)(20),{entry:n,index:r,loading:i,onValueChange:a}=e,l=o(n.name),[f,p]=(0,w.useState)(!1),m=n.value.length>0||n.hasExistingValue,h=n.hasExistingValue&&!n.value?`••••••••`:`value`;(0,w.useEffect)(()=>{l||p(!1)},[l]);let g=y,_=l&&!f?`password`:`text`,v=n.value,b;t[0]!==r||t[1]!==a?(b=e=>a(r,e.target.value),t[0]=r,t[1]=a,t[2]=b):b=t[2];let x=s(`font-mono`,l&&`pr-10`),S;t[3]!==g||t[4]!==n.value||t[5]!==i||t[6]!==h||t[7]!==_||t[8]!==b||t[9]!==x?(S=(0,T.jsx)(g,{type:_,placeholder:h,value:v,onChange:b,className:x,disabled:i}),t[3]=g,t[4]=n.value,t[5]=i,t[6]=h,t[7]=_,t[8]=b,t[9]=x,t[10]=S):S=t[10];let E;t[11]!==m||t[12]!==l||t[13]!==i||t[14]!==p||t[15]!==f?(E=l?(0,T.jsx)(c,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 h-8 w-8 -translate-y-1/2 p-0`,onClick:()=>p(D),disabled:i||!m,children:f?(0,T.jsx)(u,{className:`h-4 w-4 text-muted-foreground`}):(0,T.jsx)(d,{className:`h-4 w-4 text-muted-foreground`})}):null,t[11]=m,t[12]=l,t[13]=i,t[14]=p,t[15]=f,t[16]=E):E=t[16];let O;return t[17]!==S||t[18]!==E?(O=(0,T.jsxs)(`div`,{className:`relative flex-1`,children:[S,E]}),t[17]=S,t[18]=E,t[19]=O):O=t[19],O}function D(e){return!e}function O({projectId:e}){let t=i(),[n,r]=(0,w.useState)([]),[o,s]=(0,w.useState)([]),[u,d]=(0,w.useState)(!0),[C,D]=(0,w.useState)(!1),O=(0,w.useCallback)(async()=>{if(!e){d(!1);return}d(!0);try{let t=(await p(e)).vars.map(e=>({name:e.name,value:e.value??``,hasExistingValue:e.hasValue&&e.value===void 0}));r(t),s(t)}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to load environment variables`,variant:`destructive`})}finally{d(!1)}},[e]);(0,w.useLayoutEffect)(()=>{e&&d(!0)},[e]),(0,w.useEffect)(()=>{O()},[O]);let k=S(e,[u]);function A(){r(e=>[...e,{name:``,value:``,hasExistingValue:!1}])}function j(e,t){r(n=>n.map((n,r)=>r===e?{...n,name:t.toUpperCase()}:n))}function M(e,t){r(n=>n.map((n,r)=>r===e?{...n,value:t}:n))}function N(e){r(t=>t.filter((t,n)=>n!==e))}function P(){if(n.length!==o.length)return!0;for(let e=0;e<n.length;e+=1){let t=n[e],r=o[e];if(!r||t.name!==r.name||t.value!==r.value||t.hasExistingValue!==r.hasExistingValue)return!0}return!1}async function F(){if(!(!e||!P())){D(!0);try{let r=n.map(e=>({name:e.name.trim(),value:e.value,hasExistingValue:e.hasExistingValue})).filter(e=>e.name.length>0),i=r.find((e,t)=>r.findIndex(t=>t.name===e.name)!==t);if(i)throw Error(`Duplicate environment variable name: ${i.name}`);let a=r.find(e=>!e.hasExistingValue&&!e.value.trim());if(a)throw Error(`Value is required for environment variable: ${a.name}`);await m(e,r.map(e=>({name:e.name,value:e.value.trim()||void 0}))),s(n.map(e=>({...e,value:``}))),await O(),t(`/`)}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to save environment variables`,variant:`destructive`})}finally{D(!1)}}}let I=P();return e?(0,T.jsx)(_,{loading:k,children:(0,T.jsxs)(b,{className:`shrink-0`,children:[(0,T.jsx)(x,{title:`Environment Variables`,description:`Encrypted in Tarsk and injected for bash commands and MCP tools.`,action:(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(c,{variant:`ghost`,size:`sm`,onClick:A,disabled:u,children:`Add variable`}),(0,T.jsx)(c,{onClick:()=>void F(),disabled:C||u||!I,children:C?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(l,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`})]}),sticky:!1}),(0,T.jsx)(g,{className:`max-w-none pt-6`,children:n.length===0?(0,T.jsx)(`p`,{className:a.caption,children:`No environment variables configured`}):(0,T.jsx)(`div`,{className:`flex flex-col gap-2`,children:n.map((e,t)=>(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(y,{placeholder:`API_KEY`,value:e.name,onChange:e=>j(t,e.target.value),className:`w-[35%] font-mono`,disabled:u}),(0,T.jsx)(E,{entry:e,index:t,loading:u,onValueChange:M}),(0,T.jsx)(c,{variant:`ghost`,size:`icon`,onClick:()=>N(t),className:`h-9 w-9 shrink-0`,disabled:u||C,children:(0,T.jsx)(f,{className:`h-3.5 w-3.5`})})]},t))})})]})}):(0,T.jsx)(v,{title:`No project selected`,children:`Please select a project from the sidebar to manage environment variables.`})}export{O as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Dt as a,Y as o}from"./dist-CTLFS4dn.js";import{r as s,t as c}from"./button-kWtLAMpB.js";import{Ot as l,dn as u,un as d,y as f}from"./dist-c_QADQ5u.js";import{Ct as p,Un as m}from"./api-DX1ny6q-.js";import{t as h}from"./use-toast-xpb5jNtN.js";import{At as g,Ct as _,Dt as v,Et as y,fr as b,yt as x}from"./index-B3-5kIOf.js";import{t as S}from"./use-settings-page-loading-BTySlInF.js";var C=t(),w=e(n(),1),T=r();function E(e){let t=(0,C.c)(20),{entry:n,index:r,loading:i,onValueChange:a}=e,l=o(n.name),[f,p]=(0,w.useState)(!1),m=n.value.length>0||n.hasExistingValue,h=n.hasExistingValue&&!n.value?`••••••••`:`value`;(0,w.useEffect)(()=>{l||p(!1)},[l]);let g=b,_=l&&!f?`password`:`text`,v=n.value,y;t[0]!==r||t[1]!==a?(y=e=>a(r,e.target.value),t[0]=r,t[1]=a,t[2]=y):y=t[2];let x=s(`font-mono`,l&&`pr-10`),S;t[3]!==g||t[4]!==n.value||t[5]!==i||t[6]!==h||t[7]!==_||t[8]!==y||t[9]!==x?(S=(0,T.jsx)(g,{type:_,placeholder:h,value:v,onChange:y,className:x,disabled:i}),t[3]=g,t[4]=n.value,t[5]=i,t[6]=h,t[7]=_,t[8]=y,t[9]=x,t[10]=S):S=t[10];let E;t[11]!==m||t[12]!==l||t[13]!==i||t[14]!==p||t[15]!==f?(E=l?(0,T.jsx)(c,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 h-8 w-8 -translate-y-1/2 p-0`,onClick:()=>p(D),disabled:i||!m,children:f?(0,T.jsx)(u,{className:`h-4 w-4 text-muted-foreground`}):(0,T.jsx)(d,{className:`h-4 w-4 text-muted-foreground`})}):null,t[11]=m,t[12]=l,t[13]=i,t[14]=p,t[15]=f,t[16]=E):E=t[16];let O;return t[17]!==S||t[18]!==E?(O=(0,T.jsxs)(`div`,{className:`relative flex-1`,children:[S,E]}),t[17]=S,t[18]=E,t[19]=O):O=t[19],O}function D(e){return!e}function O({projectId:e}){let t=i(),[n,r]=(0,w.useState)([]),[o,s]=(0,w.useState)([]),[u,d]=(0,w.useState)(!0),[C,D]=(0,w.useState)(!1),O=(0,w.useCallback)(async()=>{if(!e){d(!1);return}d(!0);try{let t=(await p(e)).vars.map(e=>({name:e.name,value:e.value??``,hasExistingValue:e.hasValue&&e.value===void 0}));r(t),s(t)}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to load environment variables`,variant:`destructive`})}finally{d(!1)}},[e]);(0,w.useLayoutEffect)(()=>{e&&d(!0)},[e]),(0,w.useEffect)(()=>{O()},[O]);let k=S(e,[u]);function A(){r(e=>[...e,{name:``,value:``,hasExistingValue:!1}])}function j(e,t){r(n=>n.map((n,r)=>r===e?{...n,name:t.toUpperCase()}:n))}function M(e,t){r(n=>n.map((n,r)=>r===e?{...n,value:t}:n))}function N(e){r(t=>t.filter((t,n)=>n!==e))}function P(){if(n.length!==o.length)return!0;for(let e=0;e<n.length;e+=1){let t=n[e],r=o[e];if(!r||t.name!==r.name||t.value!==r.value||t.hasExistingValue!==r.hasExistingValue)return!0}return!1}async function F(){if(!(!e||!P())){D(!0);try{let r=n.map(e=>({name:e.name.trim(),value:e.value,hasExistingValue:e.hasExistingValue})).filter(e=>e.name.length>0),i=r.find((e,t)=>r.findIndex(t=>t.name===e.name)!==t);if(i)throw Error(`Duplicate environment variable name: ${i.name}`);let a=r.find(e=>!e.hasExistingValue&&!e.value.trim());if(a)throw Error(`Value is required for environment variable: ${a.name}`);await m(e,r.map(e=>({name:e.name,value:e.value.trim()||void 0}))),s(n.map(e=>({...e,value:``}))),await O(),t(`/`)}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to save environment variables`,variant:`destructive`})}finally{D(!1)}}}let I=P();return e?(0,T.jsx)(_,{loading:k,children:(0,T.jsxs)(g,{className:`shrink-0`,children:[(0,T.jsx)(x,{title:`Environment Variables`,description:`Encrypted in Tarsk and injected for bash commands and MCP tools.`,action:(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(c,{variant:`ghost`,size:`sm`,onClick:A,disabled:u,children:`Add variable`}),(0,T.jsx)(c,{onClick:()=>void F(),disabled:C||u||!I,children:C?(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(l,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`})]}),sticky:!1}),(0,T.jsx)(v,{className:`max-w-none pt-6`,children:n.length===0?(0,T.jsx)(`p`,{className:a.caption,children:`No environment variables configured`}):(0,T.jsx)(`div`,{className:`flex flex-col gap-2`,children:n.map((e,t)=>(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(b,{placeholder:`API_KEY`,value:e.name,onChange:e=>j(t,e.target.value),className:`w-[35%] font-mono`,disabled:u}),(0,T.jsx)(E,{entry:e,index:t,loading:u,onValueChange:M}),(0,T.jsx)(c,{variant:`ghost`,size:`icon`,onClick:()=>N(t),className:`h-9 w-9 shrink-0`,disabled:u||C,children:(0,T.jsx)(f,{className:`h-3.5 w-3.5`})})]},t))})})]})}):(0,T.jsx)(y,{title:`No project selected`,children:`Please select a project from the sidebar to manage environment variables.`})}export{O as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Dt as i,an as a,hn as o,in as s,mn as c,on as l,pn as u,rn as d,sn as f}from"./dist-CTLFS4dn.js";import{r as p,t as m}from"./button-kWtLAMpB.js";import{$ as h,Gn as g,tt as _}from"./api-DX1ny6q-.js";import{t as v}from"./use-toast-xpb5jNtN.js";import{At as y,Et as b,Ft as x,Lt as S,Mt as C,Nt as w,On as T,Pt as E,St as D,gt as O,jt as k,kt as A,vt as j,wt as M}from"./index-u8UbWjXL.js";import{t as N}from"./use-settings-page-loading-BTySlInF.js";var P=e(n(),1),F=t(),I=r(),L=`__unspecified__`,R=`__default__`;function z(e){let t=(0,F.c)(20),{value:n,onChange:r,enabledModels:i,disabled:u}=e,p=u===void 0?!1:u,m;if(t[0]!==i){m=new Map;for(let e of i){let t=e.provider??`other`,n=m.get(t);n?n.push(e):m.set(t,[e])}t[0]=i,t[1]=m}else m=t[1];let h=m,g;t[2]!==r||t[3]!==n?(g=function(e,t){let i={...n};if(t===L){delete i[e],r(i);return}let a=l(t);a&&(i[e]=a,r(i))},t[2]=r,t[3]=n,t[4]=g):g=t[4];let _=g,v;t[5]===i?v=t[6]:(v=function(e){if(!e)return;let t=e.provider.toLowerCase();return i.find(n=>n.id===e.model&&(n.provider??`other`).toLowerCase()===t)},t[5]=i,t[6]=v);let b=v,S;t[7]!==r||t[8]!==n?(S=function(e,t){let i=n[e];if(!i)return;let a={...i};if(t===R)delete a.reasoningEffort;else if(o(t))a.reasoningEffort=t;else return;r({...n,[e]:a})},t[7]=r,t[8]=n,t[9]=S):S=t[9];let T=S,D;t[10]!==p||t[11]!==i||t[12]!==b||t[13]!==_||t[14]!==T||t[15]!==h||t[16]!==n?(D=a.map(e=>{let t=n[e],r=t?f(t):L,a=b(t)?.supportedReasoningEfforts??[];return(0,I.jsx)(O,{title:s[e],description:d[e],children:(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,I.jsxs)(y,{value:r,onValueChange:t=>_(e,t),disabled:p,children:[(0,I.jsx)(E,{id:`model-alias-${e}`,className:`w-full min-w-0`,children:(0,I.jsx)(x,{placeholder:`Unspecified`})}),(0,I.jsxs)(k,{children:[(0,I.jsx)(C,{value:L,children:`Unspecified`}),i.length>0&&(0,I.jsx)(w,{}),[...h.entries()].map(V)]})]}),t&&a.length>0&&(0,I.jsxs)(y,{value:t.reasoningEffort??R,onValueChange:t=>T(e,t),disabled:p,children:[(0,I.jsx)(E,{id:`model-alias-${e}-reasoning`,className:`w-full min-w-0`,children:(0,I.jsx)(x,{placeholder:`Model default`})}),(0,I.jsxs)(k,{children:[(0,I.jsx)(C,{value:R,children:`Model default`}),(0,I.jsx)(C,{value:`off`,children:c(`off`)}),a.map(B)]})]})]})},e)}),t[10]=p,t[11]=i,t[12]=b,t[13]=_,t[14]=T,t[15]=h,t[16]=n,t[17]=D):D=t[17];let A;return t[18]===D?A=t[19]:(A=(0,I.jsx)(M,{id:`model-aliases`,children:D}),t[18]=D,t[19]=A),A}function B(e){return(0,I.jsx)(C,{value:e,children:c(e)},e)}function V(e){let[t,n]=e;return(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:p(i.dropdownGroupHeading,`px-2 py-1.5 uppercase`),children:t}),n.map(e=>{let n=f({provider:e.provider??t,model:e.id});return(0,I.jsx)(C,{value:n,children:T(e.id)},n)})]},t)}function H(e){return[...e].sort((e,t)=>{let n=(e.provider??``).localeCompare(t.provider??``);return n===0?T(e.id).localeCompare(T(t.id)):n})}function U(){let[e,t]=(0,P.useState)({}),[n,r]=(0,P.useState)({}),[i,a]=(0,P.useState)([]),[o,s]=(0,P.useState)(!0),[c,l]=(0,P.useState)(!1),d=(0,P.useCallback)(async()=>{s(!0);try{let[e,n]=await Promise.all([h(),_().catch(()=>({}))]),i=e.modelAliases??{};a(H(Object.values(n).flat())),t(i),r(i)}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to load model aliases`,variant:`destructive`})}finally{s(!1)}},[]);(0,P.useEffect)(()=>{d()},[d]);let f=N(`model-aliases`,[o]);function p(){return JSON.stringify(e)!==JSON.stringify(n)}async function y(){if(p()){l(!0);try{let t=Object.keys(e).length>0?e:void 0;if(t){let e=await _();u(t,Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t.map(e=>e.id)])))}await g({modelAliases:t??null}),r(e),window.dispatchEvent(new Event(S)),await d()}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to save model aliases`,variant:`destructive`})}finally{l(!1)}}}return(0,I.jsx)(D,{loading:f,children:(0,I.jsxs)(A,{className:`shrink-0`,children:[(0,I.jsx)(j,{title:`Model Aliases`,description:`Choose the default model for new chats and map Tarsk-wide short names (fast, local, cheap, smart) to enabled models. Subagents can reference these aliases in AGENT.md. Set Cheap to enable Orchestrate mode.`,action:(0,I.jsx)(m,{onClick:()=>void y(),disabled:o||c||!p(),children:`Save`}),sticky:!1}),(0,I.jsx)(b,{className:`max-w-none pt-6`,children:(0,I.jsx)(z,{value:e,onChange:t,enabledModels:i,disabled:o||c})})]})})}export{U as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{Dt as i,an as a,hn as o,in as s,mn as c,on as l,pn as u,rn as d,sn as f}from"./dist-CTLFS4dn.js";import{r as p,t as m}from"./button-kWtLAMpB.js";import{$ as h,Gn as g,tt as _}from"./api-DX1ny6q-.js";import{t as v}from"./use-toast-xpb5jNtN.js";import{At as y,Ct as b,Dt as x,Ft as S,It as C,Mt as w,Nt as T,Pt as E,Rt as D,Tt as O,_t as k,jt as A,kn as j,yt as M}from"./index-B3-5kIOf.js";import{t as N}from"./use-settings-page-loading-BTySlInF.js";var P=e(n(),1),F=t(),I=r(),L=`__unspecified__`,R=`__default__`;function z(e){let t=(0,F.c)(20),{value:n,onChange:r,enabledModels:i,disabled:u}=e,p=u===void 0?!1:u,m;if(t[0]!==i){m=new Map;for(let e of i){let t=e.provider??`other`,n=m.get(t);n?n.push(e):m.set(t,[e])}t[0]=i,t[1]=m}else m=t[1];let h=m,g;t[2]!==r||t[3]!==n?(g=function(e,t){let i={...n};if(t===L){delete i[e],r(i);return}let a=l(t);a&&(i[e]=a,r(i))},t[2]=r,t[3]=n,t[4]=g):g=t[4];let _=g,v;t[5]===i?v=t[6]:(v=function(e){if(!e)return;let t=e.provider.toLowerCase();return i.find(n=>n.id===e.model&&(n.provider??`other`).toLowerCase()===t)},t[5]=i,t[6]=v);let y=v,b;t[7]!==r||t[8]!==n?(b=function(e,t){let i=n[e];if(!i)return;let a={...i};if(t===R)delete a.reasoningEffort;else if(o(t))a.reasoningEffort=t;else return;r({...n,[e]:a})},t[7]=r,t[8]=n,t[9]=b):b=t[9];let x=b,D;t[10]!==p||t[11]!==i||t[12]!==y||t[13]!==_||t[14]!==x||t[15]!==h||t[16]!==n?(D=a.map(e=>{let t=n[e],r=t?f(t):L,a=y(t)?.supportedReasoningEfforts??[];return(0,I.jsx)(k,{title:s[e],description:d[e],children:(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,I.jsxs)(A,{value:r,onValueChange:t=>_(e,t),disabled:p,children:[(0,I.jsx)(S,{id:`model-alias-${e}`,className:`w-full min-w-0`,children:(0,I.jsx)(C,{placeholder:`Unspecified`})}),(0,I.jsxs)(w,{children:[(0,I.jsx)(T,{value:L,children:`Unspecified`}),i.length>0&&(0,I.jsx)(E,{}),[...h.entries()].map(V)]})]}),t&&a.length>0&&(0,I.jsxs)(A,{value:t.reasoningEffort??R,onValueChange:t=>x(e,t),disabled:p,children:[(0,I.jsx)(S,{id:`model-alias-${e}-reasoning`,className:`w-full min-w-0`,children:(0,I.jsx)(C,{placeholder:`Model default`})}),(0,I.jsxs)(w,{children:[(0,I.jsx)(T,{value:R,children:`Model default`}),(0,I.jsx)(T,{value:`off`,children:c(`off`)}),a.map(B)]})]})]})},e)}),t[10]=p,t[11]=i,t[12]=y,t[13]=_,t[14]=x,t[15]=h,t[16]=n,t[17]=D):D=t[17];let j;return t[18]===D?j=t[19]:(j=(0,I.jsx)(O,{id:`model-aliases`,children:D}),t[18]=D,t[19]=j),j}function B(e){return(0,I.jsx)(T,{value:e,children:c(e)},e)}function V(e){let[t,n]=e;return(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:p(i.dropdownGroupHeading,`px-2 py-1.5 uppercase`),children:t}),n.map(e=>{let n=f({provider:e.provider??t,model:e.id});return(0,I.jsx)(T,{value:n,children:j(e.id)},n)})]},t)}function H(e){return[...e].sort((e,t)=>{let n=(e.provider??``).localeCompare(t.provider??``);return n===0?j(e.id).localeCompare(j(t.id)):n})}function U(){let[e,t]=(0,P.useState)({}),[n,r]=(0,P.useState)({}),[i,a]=(0,P.useState)([]),[o,s]=(0,P.useState)(!0),[c,l]=(0,P.useState)(!1),d=(0,P.useCallback)(async()=>{s(!0);try{let[e,n]=await Promise.all([h(),_().catch(()=>({}))]),i=e.modelAliases??{};a(H(Object.values(n).flat())),t(i),r(i)}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to load model aliases`,variant:`destructive`})}finally{s(!1)}},[]);(0,P.useEffect)(()=>{d()},[d]);let f=N(`model-aliases`,[o]);function p(){return JSON.stringify(e)!==JSON.stringify(n)}async function S(){if(p()){l(!0);try{let t=Object.keys(e).length>0?e:void 0;if(t){let e=await _();u(t,Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t.map(e=>e.id)])))}await g({modelAliases:t??null}),r(e),window.dispatchEvent(new Event(D)),await d()}catch(e){v({title:`Error`,description:e instanceof Error?e.message:`Failed to save model aliases`,variant:`destructive`})}finally{l(!1)}}}return(0,I.jsx)(b,{loading:f,children:(0,I.jsxs)(y,{className:`shrink-0`,children:[(0,I.jsx)(M,{title:`Model Aliases`,description:`Choose the default model for new chats and map Tarsk-wide short names (fast, local, cheap, smart) to enabled models. Subagents can reference these aliases in AGENT.md. Set Cheap to enable Orchestrate mode.`,action:(0,I.jsx)(m,{onClick:()=>void S(),disabled:o||c||!p(),children:`Save`}),sticky:!1}),(0,I.jsx)(x,{className:`max-w-none pt-6`,children:(0,I.jsx)(z,{value:e,onChange:t,enabledModels:i,disabled:o||c})})]})})}export{U as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{mt as a}from"./dist-CTLFS4dn.js";import{r as o}from"./store-BSzKIu5G.js";import{t as s}from"./button-kWtLAMpB.js";import{Kt as c,Ot as l}from"./dist-c_QADQ5u.js";import{i as u,n as d,r as f,t as ee}from"./tooltip-Db8UeYxm.js";import{Kn as p,Wr as m,bt as h,qn as g,xn as _,xt as v}from"./api-DX1ny6q-.js";import{t as y}from"./use-toast-xpb5jNtN.js";import{Et as b,Jn as x,St as te,Tt as ne,fr as re,gt as ie,kt as ae,o as oe,vt as se,wt as ce}from"./index-u8UbWjXL.js";import{a as S,n as C,r as w,t as le}from"./context-menu-BcM6I0Sx.js";import{t as ue}from"./use-settings-page-loading-BTySlInF.js";var T=t(),E=e(n(),1),D=r();function de(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>t(r),r.onerror=()=>n(Error(`The selected file is not a readable image.`)),r.src=e})}async function fe(e,t){if(!e){t.setLoading(!1);return}t.setLoading(!0);try{let n=await h(e);t.setProjectPath(n.projectPath??null),t.setName(n.name??``),t.setProjectIcon(n.projectIcon??null),t.setOriginalName(n.name??``),t.setOriginalProjectIcon(n.projectIcon??null);try{let n=await v(e,`AGENTS.md`);t.setInstructions(n.content),t.setOriginalInstructions(n.content)}catch{t.setInstructions(``),t.setOriginalInstructions(``)}}catch(e){y({title:`Error`,description:e instanceof Error?e.message:`Failed to load project settings`,variant:`destructive`})}finally{t.setLoading(!1)}}async function O(e,t){try{let n=await de(e),r=document.createElement(`canvas`);r.width=256,r.height=256;let i=r.getContext(`2d`);if(!i)throw Error(`Could not prepare image conversion`);i.imageSmoothingEnabled=!0,i.imageSmoothingQuality=`high`;let a=Math.max(256/n.naturalWidth,256/n.naturalHeight),o=n.naturalWidth*a,s=n.naturalHeight*a;i.drawImage(n,(256-o)/2,(256-s)/2,o,s),t(r.toDataURL(`image/png`))}catch(e){y({title:`Could not use image`,description:e instanceof Error?e.message:`The selected file could not be read.`,variant:`destructive`})}}async function k(e,t){let n=e.target.files?.[0];if(e.target.value=``,!n)return;let r=URL.createObjectURL(n);try{await O(r,t)}finally{URL.revokeObjectURL(r)}}async function A(e,t,n){t!==n&&await g(e,t)}async function pe(e,t,n){t!==n&&await _(e,`AGENTS.md`,t)}async function j(e,t,n){t!==n&&await p(e,{projectIcon:t})}async function me(e,t,n,r,i,a){n.setSaving(!0);try{await A(e,t.name,t.originalName),await pe(e,t.instructions,t.originalInstructions),await j(e,t.projectIcon,t.originalProjectIcon),n.setOriginalName(t.name),n.setOriginalInstructions(t.instructions),n.setOriginalProjectIcon(t.projectIcon),r&&await r(),await a(),i(`/`)}catch(e){y({title:`Error`,description:e instanceof Error?e.message:`Failed to save settings`,variant:`destructive`})}finally{n.setSaving(!1)}}function he(e){let t=(0,T.c)(26),{projectIcon:n,entityNoun:r,disabled:i,inputRef:a,onFileChange:o,onButtonClick:s,onRemove:l}=e,p;t[0]!==i||t[1]!==a||t[2]!==o?(p=(0,D.jsx)(`input`,{ref:a,type:`file`,accept:`image/*`,className:`sr-only`,onChange:o,disabled:i}),t[0]=i,t[1]=a,t[2]=o,t[3]=p):p=t[3];let m=n?`Change project icon`:`Choose project icon`,h;t[4]===n?h=t[5]:(h=n?(0,D.jsx)(`img`,{src:n,alt:``,className:`h-full w-full object-cover`}):(0,D.jsx)(c,{className:`h-8 w-8 text-muted-foreground`,strokeWidth:1.5}),t[4]=n,t[5]=h);let g;t[6]!==i||t[7]!==s||t[8]!==m||t[9]!==h?(g=(0,D.jsx)(S,{asChild:!0,children:(0,D.jsx)(u,{asChild:!0,children:(0,D.jsx)(`button`,{type:`button`,className:`flex h-16 w-16 items-center justify-center overflow-hidden rounded-lg border border-border bg-muted/40 outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:s,disabled:i,"aria-label":m,children:h})})}),t[6]=i,t[7]=s,t[8]=m,t[9]=h,t[10]=g):g=t[10];let _;t[11]===r?_=t[12]:(_=(0,D.jsxs)(d,{side:`bottom`,className:`max-w-xs`,children:[`Choose an avatar for this `,r,` (pick any image from your computer)`]}),t[11]=r,t[12]=_);let v;t[13]!==g||t[14]!==_?(v=(0,D.jsx)(f,{delayDuration:300,children:(0,D.jsxs)(ee,{children:[g,_]})}),t[13]=g,t[14]=_,t[15]=v):v=t[15];let y;t[16]!==i||t[17]!==l||t[18]!==n?(y=n&&(0,D.jsx)(C,{children:(0,D.jsx)(w,{disabled:i,onSelect:l,children:`Remove`})}),t[16]=i,t[17]=l,t[18]=n,t[19]=y):y=t[19];let b;t[20]!==v||t[21]!==y?(b=(0,D.jsxs)(le,{children:[v,y]}),t[20]=v,t[21]=y,t[22]=b):b=t[22];let x;return t[23]!==p||t[24]!==b?(x=(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[p,b]}),t[23]=p,t[24]=b,t[25]=x):x=t[25],x}function ge(e){let t=(0,T.c)(6),{saving:n,disabled:r,onClick:i}=e,a;t[0]===n?a=t[1]:(a=n?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(l,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[0]=n,t[1]=a);let o;return t[2]!==r||t[3]!==i||t[4]!==a?(o=(0,D.jsx)(s,{onClick:i,disabled:r,children:a}),t[2]=r,t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function _e(e,t,n){let r=(0,T.c)(13),i;r[0]===e?i=r[1]:(i=function(t){return O(t,e)},r[0]=e,r[1]=i);let a=i,o,s;r[2]===a?(o=r[3],s=r[4]):(o=()=>{if(!m())return;let e=function(e){let t=e.detail.dataUrl;a(t)};return window.addEventListener(`tarsk:project-icon-selected`,e),()=>{window.removeEventListener(`tarsk:project-icon-selected`,e)}},s=[a],r[2]=a,r[3]=o,r[4]=s),(0,E.useEffect)(o,s);let c;r[5]===e?c=r[6]:(c=function(t){return k(t,e)},r[5]=e,r[6]=c);let l=c,u;r[7]!==n||r[8]!==t?(u=function(){m()&&t?oe(t):n.current?.click()},r[7]=n,r[8]=t,r[9]=u):u=r[9];let d=u,f;return r[10]!==d||r[11]!==l?(f={handleProjectIconChange:l,handleProjectIconButtonClick:d},r[10]=d,r[11]=l,r[12]=f):f=r[12],f}function M(e){let t=(0,T.c)(55),{projectId:n,onProjectUpdated:r}=e,s=i(),c;t[0]===n?c=t[1]:(c=e=>e.projects.find(e=>e.projectId===n)?.type,t[0]=n,t[1]=c);let l=a({type:o(c)})?`bot`:`project`,[u,d]=(0,E.useState)(``),[f,ee]=(0,E.useState)(``),[p,m]=(0,E.useState)(``),[h,g]=(0,E.useState)(!1),[_,v]=(0,E.useState)(!0),[y,oe]=(0,E.useState)(``),[S,C]=(0,E.useState)(null),[w,le]=(0,E.useState)(null),[de,O]=(0,E.useState)(null),k=(0,E.useRef)(null),A;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(A={setProjectPath:O,setName:d,setInstructions:ee,setProjectIcon:C,setOriginalName:oe,setOriginalInstructions:m,setOriginalProjectIcon:le,setLoading:v,setSaving:g},t[2]=A):A=t[2];let pe=A,j;t[3]===n?j=t[4]:(j=()=>fe(n,pe),t[3]=n,t[4]=j);let M=j,N,P;t[5]===n?(N=t[6],P=t[7]):(N=()=>{n&&v(!0)},P=[n],t[5]=n,t[6]=N,t[7]=P),(0,E.useLayoutEffect)(N,P);let F,I;t[8]===M?(F=t[9],I=t[10]):(F=()=>{M()},I=[M],t[8]=M,t[9]=F,t[10]=I),(0,E.useEffect)(F,I);let L;t[11]===_?L=t[12]:(L=[_],t[11]=_,t[12]=L);let R=ue(n,L),{handleProjectIconChange:z,handleProjectIconButtonClick:B}=_e(C,de,k),V;t[13]!==f||t[14]!==M||t[15]!==u||t[16]!==s||t[17]!==r||t[18]!==p||t[19]!==y||t[20]!==w||t[21]!==S||t[22]!==n?(V=async()=>{n&&await me(n,{name:u,instructions:f,projectIcon:S,originalName:y,originalInstructions:p,originalProjectIcon:w},pe,r,s,M)},t[13]=f,t[14]=M,t[15]=u,t[16]=s,t[17]=r,t[18]=p,t[19]=y,t[20]=w,t[21]=S,t[22]=n,t[23]=V):V=t[23];let H=V,U=_||h,ve=u!==y||f!==p||S!==w;if(!n){let e;return t[24]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,D.jsx)(ne,{title:`No project selected`,children:`Please select a project from the sidebar to view its settings.`}),t[24]=e):e=t[24],e}let ye=U||!ve,W;t[25]!==H||t[26]!==h||t[27]!==ye?(W=(0,D.jsx)(se,{title:`Project Settings`,description:`Configure settings for your project.`,action:(0,D.jsx)(ge,{saving:h,disabled:ye,onClick:H}),sticky:!1}),t[25]=H,t[26]=h,t[27]=ye,t[28]=W):W=t[28];let G;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(G=()=>C(null),t[29]=G):G=t[29];let K;t[30]!==U||t[31]!==B||t[32]!==z||t[33]!==l||t[34]!==S?(K=(0,D.jsx)(`div`,{className:`flex justify-center`,children:(0,D.jsx)(he,{projectIcon:S,entityNoun:l,disabled:U,inputRef:k,onFileChange:z,onButtonClick:B,onRemove:G})}),t[30]=U,t[31]=B,t[32]=z,t[33]=l,t[34]=S,t[35]=K):K=t[35];let q;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(q=e=>d(e.target.value),t[36]=q):q=t[36];let J;t[37]!==_||t[38]!==u?(J=(0,D.jsx)(ie,{title:`Name`,controlLayout:`stack`,children:(0,D.jsx)(re,{id:`projectName`,value:u,onChange:q,placeholder:`Enter project name`,disabled:_})}),t[37]=_,t[38]=u,t[39]=J):J=t[39];let Y;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(Y=e=>ee(e.target.value),t[40]=Y):Y=t[40];let X;t[41]!==f||t[42]!==_?(X=(0,D.jsx)(ie,{title:`Instructions`,description:`Agent context and coding guidelines, stored in AGENTS.md. New threads start from a copy of this file.`,controlLayout:`stack`,children:(0,D.jsx)(x,{id:`projectInstructions`,value:f,onChange:Y,placeholder:`Add instructions for your agent in AGENTS.md...`,className:`font-mono min-h-[376px] resize-none`,disabled:_})}),t[41]=f,t[42]=_,t[43]=X):X=t[43];let Z;t[44]!==K||t[45]!==J||t[46]!==X?(Z=(0,D.jsx)(b,{className:`max-w-none pt-6`,children:(0,D.jsxs)(ce,{children:[K,J,X]})}),t[44]=K,t[45]=J,t[46]=X,t[47]=Z):Z=t[47];let Q;t[48]!==W||t[49]!==Z?(Q=(0,D.jsxs)(ae,{className:`shrink-0`,children:[W,Z]}),t[48]=W,t[49]=Z,t[50]=Q):Q=t[50];let $;return t[51]!==R||t[52]!==n||t[53]!==Q?($=(0,D.jsx)(te,{loading:R,children:Q},n),t[51]=R,t[52]=n,t[53]=Q,t[54]=$):$=t[54],$}export{M as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{mt as a}from"./dist-CTLFS4dn.js";import{r as o}from"./store-BSzKIu5G.js";import{t as s}from"./button-kWtLAMpB.js";import{Kt as c,Ot as l}from"./dist-c_QADQ5u.js";import{i as u,n as d,r as f,t as ee}from"./tooltip-Db8UeYxm.js";import{Kn as p,Wr as m,bt as h,qn as g,xn as _,xt as v}from"./api-DX1ny6q-.js";import{t as y}from"./use-toast-xpb5jNtN.js";import{At as b,Ct as x,Dt as te,Et as ne,Jn as re,Tt as ie,_t as ae,fr as oe,s as se,yt as ce}from"./index-B3-5kIOf.js";import{a as S,n as C,r as w,t as le}from"./context-menu-BcM6I0Sx.js";import{t as ue}from"./use-settings-page-loading-BTySlInF.js";var T=t(),E=e(n(),1),D=r();function de(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>t(r),r.onerror=()=>n(Error(`The selected file is not a readable image.`)),r.src=e})}async function fe(e,t){if(!e){t.setLoading(!1);return}t.setLoading(!0);try{let n=await h(e);t.setProjectPath(n.projectPath??null),t.setName(n.name??``),t.setProjectIcon(n.projectIcon??null),t.setOriginalName(n.name??``),t.setOriginalProjectIcon(n.projectIcon??null);try{let n=await v(e,`AGENTS.md`);t.setInstructions(n.content),t.setOriginalInstructions(n.content)}catch{t.setInstructions(``),t.setOriginalInstructions(``)}}catch(e){y({title:`Error`,description:e instanceof Error?e.message:`Failed to load project settings`,variant:`destructive`})}finally{t.setLoading(!1)}}async function O(e,t){try{let n=await de(e),r=document.createElement(`canvas`);r.width=256,r.height=256;let i=r.getContext(`2d`);if(!i)throw Error(`Could not prepare image conversion`);i.imageSmoothingEnabled=!0,i.imageSmoothingQuality=`high`;let a=Math.max(256/n.naturalWidth,256/n.naturalHeight),o=n.naturalWidth*a,s=n.naturalHeight*a;i.drawImage(n,(256-o)/2,(256-s)/2,o,s),t(r.toDataURL(`image/png`))}catch(e){y({title:`Could not use image`,description:e instanceof Error?e.message:`The selected file could not be read.`,variant:`destructive`})}}async function k(e,t){let n=e.target.files?.[0];if(e.target.value=``,!n)return;let r=URL.createObjectURL(n);try{await O(r,t)}finally{URL.revokeObjectURL(r)}}async function A(e,t,n){t!==n&&await g(e,t)}async function pe(e,t,n){t!==n&&await _(e,`AGENTS.md`,t)}async function j(e,t,n){t!==n&&await p(e,{projectIcon:t})}async function me(e,t,n,r,i,a){n.setSaving(!0);try{await A(e,t.name,t.originalName),await pe(e,t.instructions,t.originalInstructions),await j(e,t.projectIcon,t.originalProjectIcon),n.setOriginalName(t.name),n.setOriginalInstructions(t.instructions),n.setOriginalProjectIcon(t.projectIcon),r&&await r(),await a(),i(`/`)}catch(e){y({title:`Error`,description:e instanceof Error?e.message:`Failed to save settings`,variant:`destructive`})}finally{n.setSaving(!1)}}function he(e){let t=(0,T.c)(26),{projectIcon:n,entityNoun:r,disabled:i,inputRef:a,onFileChange:o,onButtonClick:s,onRemove:l}=e,p;t[0]!==i||t[1]!==a||t[2]!==o?(p=(0,D.jsx)(`input`,{ref:a,type:`file`,accept:`image/*`,className:`sr-only`,onChange:o,disabled:i}),t[0]=i,t[1]=a,t[2]=o,t[3]=p):p=t[3];let m=n?`Change project icon`:`Choose project icon`,h;t[4]===n?h=t[5]:(h=n?(0,D.jsx)(`img`,{src:n,alt:``,className:`h-full w-full object-cover`}):(0,D.jsx)(c,{className:`h-8 w-8 text-muted-foreground`,strokeWidth:1.5}),t[4]=n,t[5]=h);let g;t[6]!==i||t[7]!==s||t[8]!==m||t[9]!==h?(g=(0,D.jsx)(S,{asChild:!0,children:(0,D.jsx)(u,{asChild:!0,children:(0,D.jsx)(`button`,{type:`button`,className:`flex h-16 w-16 items-center justify-center overflow-hidden rounded-lg border border-border bg-muted/40 outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:s,disabled:i,"aria-label":m,children:h})})}),t[6]=i,t[7]=s,t[8]=m,t[9]=h,t[10]=g):g=t[10];let _;t[11]===r?_=t[12]:(_=(0,D.jsxs)(d,{side:`bottom`,className:`max-w-xs`,children:[`Choose an avatar for this `,r,` (pick any image from your computer)`]}),t[11]=r,t[12]=_);let v;t[13]!==g||t[14]!==_?(v=(0,D.jsx)(f,{delayDuration:300,children:(0,D.jsxs)(ee,{children:[g,_]})}),t[13]=g,t[14]=_,t[15]=v):v=t[15];let y;t[16]!==i||t[17]!==l||t[18]!==n?(y=n&&(0,D.jsx)(C,{children:(0,D.jsx)(w,{disabled:i,onSelect:l,children:`Remove`})}),t[16]=i,t[17]=l,t[18]=n,t[19]=y):y=t[19];let b;t[20]!==v||t[21]!==y?(b=(0,D.jsxs)(le,{children:[v,y]}),t[20]=v,t[21]=y,t[22]=b):b=t[22];let x;return t[23]!==p||t[24]!==b?(x=(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[p,b]}),t[23]=p,t[24]=b,t[25]=x):x=t[25],x}function ge(e){let t=(0,T.c)(6),{saving:n,disabled:r,onClick:i}=e,a;t[0]===n?a=t[1]:(a=n?(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(l,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`,t[0]=n,t[1]=a);let o;return t[2]!==r||t[3]!==i||t[4]!==a?(o=(0,D.jsx)(s,{onClick:i,disabled:r,children:a}),t[2]=r,t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function _e(e,t,n){let r=(0,T.c)(13),i;r[0]===e?i=r[1]:(i=function(t){return O(t,e)},r[0]=e,r[1]=i);let a=i,o,s;r[2]===a?(o=r[3],s=r[4]):(o=()=>{if(!m())return;let e=function(e){let t=e.detail.dataUrl;a(t)};return window.addEventListener(`tarsk:project-icon-selected`,e),()=>{window.removeEventListener(`tarsk:project-icon-selected`,e)}},s=[a],r[2]=a,r[3]=o,r[4]=s),(0,E.useEffect)(o,s);let c;r[5]===e?c=r[6]:(c=function(t){return k(t,e)},r[5]=e,r[6]=c);let l=c,u;r[7]!==n||r[8]!==t?(u=function(){m()&&t?se(t):n.current?.click()},r[7]=n,r[8]=t,r[9]=u):u=r[9];let d=u,f;return r[10]!==d||r[11]!==l?(f={handleProjectIconChange:l,handleProjectIconButtonClick:d},r[10]=d,r[11]=l,r[12]=f):f=r[12],f}function M(e){let t=(0,T.c)(55),{projectId:n,onProjectUpdated:r}=e,s=i(),c;t[0]===n?c=t[1]:(c=e=>e.projects.find(e=>e.projectId===n)?.type,t[0]=n,t[1]=c);let l=a({type:o(c)})?`bot`:`project`,[u,d]=(0,E.useState)(``),[f,ee]=(0,E.useState)(``),[p,m]=(0,E.useState)(``),[h,g]=(0,E.useState)(!1),[_,v]=(0,E.useState)(!0),[y,se]=(0,E.useState)(``),[S,C]=(0,E.useState)(null),[w,le]=(0,E.useState)(null),[de,O]=(0,E.useState)(null),k=(0,E.useRef)(null),A;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(A={setProjectPath:O,setName:d,setInstructions:ee,setProjectIcon:C,setOriginalName:se,setOriginalInstructions:m,setOriginalProjectIcon:le,setLoading:v,setSaving:g},t[2]=A):A=t[2];let pe=A,j;t[3]===n?j=t[4]:(j=()=>fe(n,pe),t[3]=n,t[4]=j);let M=j,N,P;t[5]===n?(N=t[6],P=t[7]):(N=()=>{n&&v(!0)},P=[n],t[5]=n,t[6]=N,t[7]=P),(0,E.useLayoutEffect)(N,P);let F,I;t[8]===M?(F=t[9],I=t[10]):(F=()=>{M()},I=[M],t[8]=M,t[9]=F,t[10]=I),(0,E.useEffect)(F,I);let L;t[11]===_?L=t[12]:(L=[_],t[11]=_,t[12]=L);let R=ue(n,L),{handleProjectIconChange:z,handleProjectIconButtonClick:B}=_e(C,de,k),V;t[13]!==f||t[14]!==M||t[15]!==u||t[16]!==s||t[17]!==r||t[18]!==p||t[19]!==y||t[20]!==w||t[21]!==S||t[22]!==n?(V=async()=>{n&&await me(n,{name:u,instructions:f,projectIcon:S,originalName:y,originalInstructions:p,originalProjectIcon:w},pe,r,s,M)},t[13]=f,t[14]=M,t[15]=u,t[16]=s,t[17]=r,t[18]=p,t[19]=y,t[20]=w,t[21]=S,t[22]=n,t[23]=V):V=t[23];let H=V,U=_||h,ve=u!==y||f!==p||S!==w;if(!n){let e;return t[24]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,D.jsx)(ne,{title:`No project selected`,children:`Please select a project from the sidebar to view its settings.`}),t[24]=e):e=t[24],e}let ye=U||!ve,W;t[25]!==H||t[26]!==h||t[27]!==ye?(W=(0,D.jsx)(ce,{title:`Project Settings`,description:`Configure settings for your project.`,action:(0,D.jsx)(ge,{saving:h,disabled:ye,onClick:H}),sticky:!1}),t[25]=H,t[26]=h,t[27]=ye,t[28]=W):W=t[28];let G;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(G=()=>C(null),t[29]=G):G=t[29];let K;t[30]!==U||t[31]!==B||t[32]!==z||t[33]!==l||t[34]!==S?(K=(0,D.jsx)(`div`,{className:`flex justify-center`,children:(0,D.jsx)(he,{projectIcon:S,entityNoun:l,disabled:U,inputRef:k,onFileChange:z,onButtonClick:B,onRemove:G})}),t[30]=U,t[31]=B,t[32]=z,t[33]=l,t[34]=S,t[35]=K):K=t[35];let q;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(q=e=>d(e.target.value),t[36]=q):q=t[36];let J;t[37]!==_||t[38]!==u?(J=(0,D.jsx)(ae,{title:`Name`,controlLayout:`stack`,children:(0,D.jsx)(oe,{id:`projectName`,value:u,onChange:q,placeholder:`Enter project name`,disabled:_})}),t[37]=_,t[38]=u,t[39]=J):J=t[39];let Y;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(Y=e=>ee(e.target.value),t[40]=Y):Y=t[40];let X;t[41]!==f||t[42]!==_?(X=(0,D.jsx)(ae,{title:`Instructions`,description:`Agent context and coding guidelines, stored in AGENTS.md. New threads start from a copy of this file.`,controlLayout:`stack`,children:(0,D.jsx)(re,{id:`projectInstructions`,value:f,onChange:Y,placeholder:`Add instructions for your agent in AGENTS.md...`,className:`font-mono min-h-[376px] resize-none`,disabled:_})}),t[41]=f,t[42]=_,t[43]=X):X=t[43];let Z;t[44]!==K||t[45]!==J||t[46]!==X?(Z=(0,D.jsx)(te,{className:`max-w-none pt-6`,children:(0,D.jsxs)(ie,{children:[K,J,X]})}),t[44]=K,t[45]=J,t[46]=X,t[47]=Z):Z=t[47];let Q;t[48]!==W||t[49]!==Z?(Q=(0,D.jsxs)(b,{className:`shrink-0`,children:[W,Z]}),t[48]=W,t[49]=Z,t[50]=Q):Q=t[50];let $;return t[51]!==R||t[52]!==n||t[53]!==Q?($=(0,D.jsx)(x,{loading:R,children:Q},n),t[51]=R,t[52]=n,t[53]=Q,t[54]=$):$=t[54],$}export{M as default};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Dt as a,_t as o,ft as s,gt as c,ht as l,mt as u,pt as d}from"./dist-CTLFS4dn.js";import{r as f,t as p}from"./button-kWtLAMpB.js";import{Ot as m}from"./dist-c_QADQ5u.js";import{Kn as h,bt as g}from"./api-DX1ny6q-.js";import{t as _}from"./use-toast-xpb5jNtN.js";import{Et as v,St as y,Tt as b,gt as x,kt as S,ot as C,vt as w}from"./index-u8UbWjXL.js";import{t as T}from"./use-settings-page-loading-BTySlInF.js";var E=e(n(),1),D=t(),O=r(),k=o(),A=Math.ceil(k.length/2),j=[k.slice(0,A),k.slice(A)];function M(e){let t=(0,D.c)(14),{tool:n,enabled:r,disabled:i,onToggle:o}=e,s;t[0]!==o||t[1]!==n.name?(s=e=>o(n.name,e),t[0]=o,t[1]=n.name,t[2]=s):s=t[2];let c;t[3]!==i||t[4]!==r||t[5]!==s||t[6]!==n.displayName?(c=(0,O.jsx)(C,{value:r,onChange:s,disabled:i,ariaLabel:n.displayName}),t[3]=i,t[4]=r,t[5]=s,t[6]=n.displayName,t[7]=c):c=t[7];let l;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=f(a.body,`truncate`),t[8]=l):l=t[8];let u;t[9]===n.displayName?u=t[10]:(u=(0,O.jsx)(`span`,{className:l,children:n.displayName}),t[9]=n.displayName,t[10]=u);let d;return t[11]!==c||t[12]!==u?(d=(0,O.jsxs)(`div`,{className:`grid min-h-10 grid-cols-[auto_minmax(0,1fr)] items-center gap-3 px-3 py-2`,children:[c,u]}),t[11]=c,t[12]=u,t[13]=d):d=t[13],d}function N(e,t,n){return!t.includes(e)&&!n.has(e)}function P(e,t,n,r){return t||n.has(e)||r.has(e)}function F(e){let t=(0,D.c)(15),{tools:n,disabledTools:r,disabled:i,forceEnabledTools:a,forceDisabledTools:o,onToggle:s}=e,c;if(t[0]!==i||t[1]!==r||t[2]!==o||t[3]!==a||t[4]!==s||t[5]!==n){let e;t[7]!==i||t[8]!==r||t[9]!==o||t[10]!==a||t[11]!==s?(e=e=>(0,O.jsx)(M,{tool:e,enabled:N(e.name,r,o),disabled:P(e.name,i,a,o),onToggle:s},e.name),t[7]=i,t[8]=r,t[9]=o,t[10]=a,t[11]=s,t[12]=e):e=t[12],c=n.map(e),t[0]=i,t[1]=r,t[2]=o,t[3]=a,t[4]=s,t[5]=n,t[6]=c}else c=t[6];let l;return t[13]===c?l=t[14]:(l=(0,O.jsx)(`div`,{className:`divide-y divide-table-border`,children:c}),t[13]=c,t[14]=l),l}function I(e){let t=(0,D.c)(24),{disabledTools:n,onChange:r,disabled:i,forceEnabledTools:a,forceDisabledTools:o}=e,s=i===void 0?!1:i,c,l,u,d,f;t[0]!==s||t[1]!==n||t[2]!==o||t[3]!==a||t[4]!==r?(l=new Set((a??[]).map(R)),c=new Set((o??[]).map(L)),u=function(e,t){let i=e.toLowerCase();if(!(l.has(i)&&!t)&&!(c.has(i)&&t)){if(t){r(n.filter(e=>e!==i));return}n.includes(i)||r([...n,i].sort())}},d=`divide-y divide-table-border @md/settings-page:hidden`,f=k.map(e=>(0,O.jsx)(M,{tool:e,enabled:N(e.name,n,c),disabled:P(e.name,s,l,c),onToggle:u},e.name)),t[0]=s,t[1]=n,t[2]=o,t[3]=a,t[4]=r,t[5]=c,t[6]=l,t[7]=u,t[8]=d,t[9]=f):(c=t[5],l=t[6],u=t[7],d=t[8],f=t[9]);let p;t[10]!==d||t[11]!==f?(p=(0,O.jsx)(`div`,{className:d,children:f}),t[10]=d,t[11]=f,t[12]=p):p=t[12];let m;t[13]!==s||t[14]!==n||t[15]!==c||t[16]!==l||t[17]!==u?(m=j.map((e,t)=>(0,O.jsx)(F,{tools:e,disabledTools:n,disabled:s,forceEnabledTools:l,forceDisabledTools:c,onToggle:u},t)),t[13]=s,t[14]=n,t[15]=c,t[16]=l,t[17]=u,t[18]=m):m=t[18];let h;t[19]===m?h=t[20]:(h=(0,O.jsx)(`div`,{className:`hidden @md/settings-page:grid @md/settings-page:grid-cols-2 divide-x divide-table-border`,children:m}),t[19]=m,t[20]=h);let g;return t[21]!==p||t[22]!==h?(g=(0,O.jsxs)(O.Fragment,{children:[p,h]}),t[21]=p,t[22]=h,t[23]=g):g=t[23],g}function L(e){return e.toLowerCase()}function R(e){return e.toLowerCase()}function z({projectId:e,onProjectUpdated:t}){let n=i(),[r,a]=(0,E.useState)([]),[o,f]=(0,E.useState)([]),[D,k]=(0,E.useState)(!1),[A,j]=(0,E.useState)(!1),[M,N]=(0,E.useState)(!0),[P,F]=(0,E.useState)(!1),[L,R]=(0,E.useState)(!1),[z,B]=(0,E.useState)(!1),V=(0,E.useCallback)(async()=>{if(!e){N(!1);return}N(!0);try{let t=await g(e),n=c(t),r=t.smartJsEnabled===!0;a(n),f(n),k(r),j(r),R(u(t)),B(l(t))}catch(e){_({title:`Error`,description:e instanceof Error?e.message:`Failed to load tools settings`,variant:`destructive`})}finally{N(!1)}},[e]);(0,E.useLayoutEffect)(()=>{e&&N(!0)},[e]),(0,E.useEffect)(()=>{V()},[V]);let H=T(e,[M]);function U(){return JSON.stringify([...r].sort())!==JSON.stringify([...o].sort())}function W(){return U()||D!==A}async function G(){if(!(!e||!W())){F(!0);try{let i={};U()&&(i.disabledTools=z?c({type:s,disabledTools:r}):r),D!==A&&(i.smartJsEnabled=D),await h(e,i),f(r),j(D),t&&await t(),await V(),n(`/`)}catch(e){_({title:`Error`,description:e instanceof Error?e.message:`Failed to save tools settings`,variant:`destructive`})}finally{F(!1)}}}function K(e){k(e),e&&a(e=>e.filter(e=>e!==`run_js`))}return e?(0,O.jsx)(y,{loading:H,children:(0,O.jsxs)(S,{className:`shrink-0`,children:[(0,O.jsx)(w,{title:`Tools`,description:`Control which tools the agent can use in this project. Disabled tools are hidden from the agent.`,action:(0,O.jsx)(p,{onClick:()=>void G(),disabled:P||M||L||!W(),children:P?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(m,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`}),sticky:!1}),(0,O.jsxs)(v,{className:`max-w-none pt-6`,children:[(0,O.jsx)(x,{title:`Smart JS`,description:`When enabled, the agent orchestrates tools by writing JavaScript for Run JS (except Ask, Write, and Subagent). Other tools stay available through callTool inside the worker.`,controlLayout:`row-end`,action:(0,O.jsx)(C,{value:D,onChange:K,disabled:M||P||L,ariaLabel:`Smart JS`})}),(0,O.jsx)(`div`,{className:`mt-8`,children:(0,O.jsx)(I,{disabledTools:r,onChange:a,disabled:M||P||L,forceEnabledTools:D?[`run_js`]:void 0,forceDisabledTools:z?[...d]:void 0})})]})]})}):(0,O.jsx)(b,{title:`No project selected`,children:`Please select a project from the sidebar to configure tools.`})}export{z as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{s as i}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Dt as a,_t as o,ft as s,gt as c,ht as l,mt as u,pt as d}from"./dist-CTLFS4dn.js";import{r as f,t as p}from"./button-kWtLAMpB.js";import{Ot as m}from"./dist-c_QADQ5u.js";import{Kn as h,bt as g}from"./api-DX1ny6q-.js";import{t as _}from"./use-toast-xpb5jNtN.js";import{At as v,Ct as y,Dt as b,Et as x,_t as S,st as C,yt as w}from"./index-B3-5kIOf.js";import{t as T}from"./use-settings-page-loading-BTySlInF.js";var E=e(n(),1),D=t(),O=r(),k=o(),A=Math.ceil(k.length/2),j=[k.slice(0,A),k.slice(A)];function M(e){let t=(0,D.c)(14),{tool:n,enabled:r,disabled:i,onToggle:o}=e,s;t[0]!==o||t[1]!==n.name?(s=e=>o(n.name,e),t[0]=o,t[1]=n.name,t[2]=s):s=t[2];let c;t[3]!==i||t[4]!==r||t[5]!==s||t[6]!==n.displayName?(c=(0,O.jsx)(C,{value:r,onChange:s,disabled:i,ariaLabel:n.displayName}),t[3]=i,t[4]=r,t[5]=s,t[6]=n.displayName,t[7]=c):c=t[7];let l;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=f(a.body,`truncate`),t[8]=l):l=t[8];let u;t[9]===n.displayName?u=t[10]:(u=(0,O.jsx)(`span`,{className:l,children:n.displayName}),t[9]=n.displayName,t[10]=u);let d;return t[11]!==c||t[12]!==u?(d=(0,O.jsxs)(`div`,{className:`grid min-h-10 grid-cols-[auto_minmax(0,1fr)] items-center gap-3 px-3 py-2`,children:[c,u]}),t[11]=c,t[12]=u,t[13]=d):d=t[13],d}function N(e,t,n){return!t.includes(e)&&!n.has(e)}function P(e,t,n,r){return t||n.has(e)||r.has(e)}function F(e){let t=(0,D.c)(15),{tools:n,disabledTools:r,disabled:i,forceEnabledTools:a,forceDisabledTools:o,onToggle:s}=e,c;if(t[0]!==i||t[1]!==r||t[2]!==o||t[3]!==a||t[4]!==s||t[5]!==n){let e;t[7]!==i||t[8]!==r||t[9]!==o||t[10]!==a||t[11]!==s?(e=e=>(0,O.jsx)(M,{tool:e,enabled:N(e.name,r,o),disabled:P(e.name,i,a,o),onToggle:s},e.name),t[7]=i,t[8]=r,t[9]=o,t[10]=a,t[11]=s,t[12]=e):e=t[12],c=n.map(e),t[0]=i,t[1]=r,t[2]=o,t[3]=a,t[4]=s,t[5]=n,t[6]=c}else c=t[6];let l;return t[13]===c?l=t[14]:(l=(0,O.jsx)(`div`,{className:`divide-y divide-table-border`,children:c}),t[13]=c,t[14]=l),l}function I(e){let t=(0,D.c)(24),{disabledTools:n,onChange:r,disabled:i,forceEnabledTools:a,forceDisabledTools:o}=e,s=i===void 0?!1:i,c,l,u,d,f;t[0]!==s||t[1]!==n||t[2]!==o||t[3]!==a||t[4]!==r?(l=new Set((a??[]).map(R)),c=new Set((o??[]).map(L)),u=function(e,t){let i=e.toLowerCase();if(!(l.has(i)&&!t)&&!(c.has(i)&&t)){if(t){r(n.filter(e=>e!==i));return}n.includes(i)||r([...n,i].sort())}},d=`divide-y divide-table-border @md/settings-page:hidden`,f=k.map(e=>(0,O.jsx)(M,{tool:e,enabled:N(e.name,n,c),disabled:P(e.name,s,l,c),onToggle:u},e.name)),t[0]=s,t[1]=n,t[2]=o,t[3]=a,t[4]=r,t[5]=c,t[6]=l,t[7]=u,t[8]=d,t[9]=f):(c=t[5],l=t[6],u=t[7],d=t[8],f=t[9]);let p;t[10]!==d||t[11]!==f?(p=(0,O.jsx)(`div`,{className:d,children:f}),t[10]=d,t[11]=f,t[12]=p):p=t[12];let m;t[13]!==s||t[14]!==n||t[15]!==c||t[16]!==l||t[17]!==u?(m=j.map((e,t)=>(0,O.jsx)(F,{tools:e,disabledTools:n,disabled:s,forceEnabledTools:l,forceDisabledTools:c,onToggle:u},t)),t[13]=s,t[14]=n,t[15]=c,t[16]=l,t[17]=u,t[18]=m):m=t[18];let h;t[19]===m?h=t[20]:(h=(0,O.jsx)(`div`,{className:`hidden @md/settings-page:grid @md/settings-page:grid-cols-2 divide-x divide-table-border`,children:m}),t[19]=m,t[20]=h);let g;return t[21]!==p||t[22]!==h?(g=(0,O.jsxs)(O.Fragment,{children:[p,h]}),t[21]=p,t[22]=h,t[23]=g):g=t[23],g}function L(e){return e.toLowerCase()}function R(e){return e.toLowerCase()}function z({projectId:e,onProjectUpdated:t}){let n=i(),[r,a]=(0,E.useState)([]),[o,f]=(0,E.useState)([]),[D,k]=(0,E.useState)(!1),[A,j]=(0,E.useState)(!1),[M,N]=(0,E.useState)(!0),[P,F]=(0,E.useState)(!1),[L,R]=(0,E.useState)(!1),[z,B]=(0,E.useState)(!1),V=(0,E.useCallback)(async()=>{if(!e){N(!1);return}N(!0);try{let t=await g(e),n=c(t),r=t.smartJsEnabled===!0;a(n),f(n),k(r),j(r),R(u(t)),B(l(t))}catch(e){_({title:`Error`,description:e instanceof Error?e.message:`Failed to load tools settings`,variant:`destructive`})}finally{N(!1)}},[e]);(0,E.useLayoutEffect)(()=>{e&&N(!0)},[e]),(0,E.useEffect)(()=>{V()},[V]);let H=T(e,[M]);function U(){return JSON.stringify([...r].sort())!==JSON.stringify([...o].sort())}function W(){return U()||D!==A}async function G(){if(!(!e||!W())){F(!0);try{let i={};U()&&(i.disabledTools=z?c({type:s,disabledTools:r}):r),D!==A&&(i.smartJsEnabled=D),await h(e,i),f(r),j(D),t&&await t(),await V(),n(`/`)}catch(e){_({title:`Error`,description:e instanceof Error?e.message:`Failed to save tools settings`,variant:`destructive`})}finally{F(!1)}}}function K(e){k(e),e&&a(e=>e.filter(e=>e!==`run_js`))}return e?(0,O.jsx)(y,{loading:H,children:(0,O.jsxs)(v,{className:`shrink-0`,children:[(0,O.jsx)(w,{title:`Tools`,description:`Control which tools the agent can use in this project. Disabled tools are hidden from the agent.`,action:(0,O.jsx)(p,{onClick:()=>void G(),disabled:P||M||L||!W(),children:P?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(m,{className:`mr-2 h-4 w-4 animate-spin`}),`Saving...`]}):`Save`}),sticky:!1}),(0,O.jsxs)(b,{className:`max-w-none pt-6`,children:[(0,O.jsx)(S,{title:`Smart JS`,description:`When enabled, the agent orchestrates tools by writing JavaScript for Run JS (except Ask, Write, and Subagent). Other tools stay available through callTool inside the worker.`,controlLayout:`row-end`,action:(0,O.jsx)(C,{value:D,onChange:K,disabled:M||P||L,ariaLabel:`Smart JS`})}),(0,O.jsx)(`div`,{className:`mt-8`,children:(0,O.jsx)(I,{disabledTools:r,onChange:a,disabled:M||P||L,forceEnabledTools:D?[`run_js`]:void 0,forceDisabledTools:z?[...d]:void 0})})]})]})}):(0,O.jsx)(x,{title:`No project selected`,children:`Please select a project from the sidebar to configure tools.`})}export{z as default};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{n as t,o as n,t as r}from"./react-vendor-Ee0-5T4I.js";import{c as i,s as a}from"./chunk-QFMPRPBF-COsSkB7x.js";import{Dt as o,Et as s,N as c,rt as l}from"./dist-CTLFS4dn.js";import{$ as u,n as d}from"./store-BSzKIu5G.js";import{a as f,r as p,s as m,t as h}from"./button-kWtLAMpB.js";import{$ as g,Mn as _,Nt as v,Ot as y,dn as b,q as x,un as S,y as C}from"./dist-c_QADQ5u.js";import{i as w,n as ee,r as T,t as E}from"./tooltip-Db8UeYxm.js";import{B as te,Cn as ne,G as re,L as ie,Ot as ae,R as oe,V as se,W as ce,jt as le,sn as D,tt as O,wn as ue}from"./api-DX1ny6q-.js";import{t as k}from"./suspense-resource-BFrb_XJX.js";import{t as A}from"./use-suspense-resource-Dakt9lfT.js";import{n as j}from"./async-loading-fallback-V0EaQ_Kn.js";import{$n as de,At as M,Dt as N,Et as P,Qn as F,Tt as I,Xn as fe,Zn as pe,dt as L,fr as R,ft as z,ht as B,kn as me,lt as he,st as V,vt as H,wt as U,yt as W,zt as ge}from"./index-B3-5kIOf.js";import{t as G}from"./async-error-boundary-BX1G17o9.js";import{t as K}from"./sorting-DqwxPMRN.js";import{t as _e}from"./pending-changes-Bn-0ak1d.js";import{a as q}from"./settings-list-DiiYzOxn.js";import{t as J}from"./use-deferred-search-Dgxosq55.js";import{n as Y,r as X,t as ve}from"./model-list-controls-I67L2x3H.js";var Z=t(),Q=e(n(),1),$=r(),ye=m(p(o.compact,`inline-flex items-center rounded-full border px-2.5 py-0.5 font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`),{variants:{variant:{default:`border-transparent bg-primary text-primary-foreground hover:bg-primary/80`,secondary:`border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80`,destructive:`border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80`,outline:`text-foreground`}},defaultVariants:{variant:`default`}});function be(e){let t=(0,Z.c)(10),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,variant:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a;t[4]!==n||t[5]!==i?(a=p(ye({variant:i}),n),t[4]=n,t[5]=i,t[6]=a):a=t[6];let o;return t[7]!==r||t[8]!==a?(o=(0,$.jsx)(`div`,{className:a,...r}),t[7]=r,t[8]=a,t[9]=o):o=t[9],o}var xe=c(`app.use-provider-details.hook`);function Se(e,t,n){return n?e.find(e=>e.slug===n)??null:t?e.find(e=>e.name===t)??null:null}function Ce({selectedProviderName:e=null,selectedProviderSlug:t=null,providerData:n}){let r=d(),[i,a]=(0,Q.useState)(null),[o,s]=(0,Q.useState)(``),[c,f]=(0,Q.useState)(!1),[p,m]=(0,Q.useState)(null),[h,g]=(0,Q.useState)(``),[_,v]=(0,Q.useState)([]),[y,b]=(0,Q.useState)(new Set),[x,S]=(0,Q.useState)(new Set),[C,w]=(0,Q.useState)(new Map),{query:ee,setQuery:T,deferredQuery:E}=J(),[O,k]=(0,Q.useState)(`alphabetical`),[A,j]=(0,Q.useState)(`all`),[de,M]=(0,Q.useState)(!1),[N,P]=(0,Q.useState)(``),[F,I]=(0,Q.useState)(``),[fe,pe]=(0,Q.useState)(``),[R,z]=(0,Q.useState)(`coding`),[B,he]=(0,Q.useState)([]),[V,H]=(0,Q.useState)(new Set),[U,W]=(0,Q.useState)(new Set),[G,q]=(0,Q.useState)(new Map),[Y,X]=(0,Q.useState)({}),ve=e=>me(e.id);(0,Q.useEffect)(()=>{(async()=>{if(g(``),n&&(t&&n.slug===t||e&&n.name===e)){a(n),pe(n.apiKey??``),s(n.apiKey??``),X(n.envValues??{}),be(n.slug),Z(n.slug);return}try{let n=Se(await le(),e,t);a(n),pe(n?.apiKey??``),s(n?.apiKey??``),X(n?.envValues??{}),n&&(be(n.slug),Z(n.slug))}catch(e){g(e instanceof Error?e.message:`Failed to load providers`)}})()},[e,t,n]);let Z=async e=>{m(null);try{let t=await ae(e);t.status===`success`&&m(t.balance)}catch(t){xe.error(`Failed to load balance for ${e}:`,t)}};function $(){v([]),he([]),b(new Set),S(new Set),H(new Set),W(new Set),w(new Map),q(new Map)}function ye(e){return e instanceof Error?e.message:`Failed to load models from local API`}let be=async e=>{f(!0),I(``),T(``),k(`alphabetical`),j(`all`),z(`coding`);try{let[t,n]=await Promise.all([re(e),ce(e)]);v(t.models),he(n.models);let r=new Set(t.enabledModelIds);b(r),S(r);let i=new Set(n.enabledModelIds);H(i),W(i),w(new Map),q(new Map)}catch(t){xe.error(`Failed to load models for ${e}:`,t),$(),I(ye(t))}finally{f(!1)}};async function Ce(e){f(!0),I(``);try{await D(e),await be(e),r({type:u.ConfigUpdated})}catch(t){xe.error(`Failed to refresh models for ${e}:`,t),$(),I(ye(t)),f(!1)}}let we=(e,t)=>{i?.name===e&&(s(t),Ee(t))},Te=(e,t)=>{X(n=>({...n,[e]:t})),i&&(async()=>{try{await ne({[e]:t}),r({type:u.ConfigUpdated}),P(`${L(e)} saved successfully`),setTimeout(()=>P(``),3e3)}catch(e){P(e instanceof Error?e.message:`Failed to save provider settings`);return}l(i.slug)&&e===`LOCAL_API_URL`&&t.trim()&&await Ce(i.slug)})()},Ee=async e=>{if(!(!i||e===fe))try{await ue(i.slug,e),r({type:u.ConfigUpdated}),pe(e),P(`API key saved successfully`),setTimeout(()=>P(``),3e3)}catch(e){P(e instanceof Error?e.message:`Failed to save API key`)}},De=(e,t)=>{t===`image`?q(t=>{let n=new Map(t),r=V.has(e),i=n.has(e),a=n.get(e),o=!(i?a:r);return o===r?n.delete(e):n.set(e,o),Oe(e,(n.has(e)?n.get(e):r)??!1,`image`),n}):w(t=>{let n=_e(t,e,y);return Oe(e,(n.has(e)?n.get(e):y.has(e))??!1,`coding`),n})},Oe=async(e,t,n=`coding`)=>{if(i)try{n===`image`?(t?(await te(i.slug,e),H(t=>new Set([...t,e]))):(await ie(i.slug,e),H(t=>{let n=new Set(t);return n.delete(e),n})),q(t=>{let n=new Map(t);return n.delete(e),n})):(t?(await se(i.slug,e),b(t=>new Set([...t,e]))):(await oe(i.slug,e),b(t=>{let n=new Set(t);return n.delete(e),n})),w(t=>{let n=new Map(t);return n.delete(e),n}),ge()),r({type:u.ConfigUpdated}),P(`Model preferences saved successfully`),setTimeout(()=>P(``),3e3)}catch(e){P(e instanceof Error?e.message:`Failed to save model changes`)}};async function ke(e,t=`coding`){let n=t===`image`?B:_,r=t===`image`?V:y;(t===`image`?q:w)(t=>{let i=new Map(t);for(let t of n)r.has(t.id)===e?i.delete(t.id):i.set(t.id,e);return i});for(let i of n)r.has(i.id)!==e&&await Oe(i.id,e,t)}let Ae=o!==void 0&&o.trim().length>0;return{selectedProvider:i,error:h,balance:p,displayApiKey:o,showApiKey:de,setShowApiKey:M,providerEnvValues:Y,modelsLoading:c,modelsError:F,saveStatus:N,modelTab:R,setModelTab:z,modelSearchQuery:ee,setModelSearchQuery:T,modelSortBy:O,setModelSortBy:k,modelFilter:A,setModelFilter:j,availableModels:_,enabledModelIds:y,pendingChanges:C,filteredAndSortedModels:(0,Q.useMemo)(()=>K({models:_,query:E,sortBy:O,getDisplayName:ve,freeOnly:A===`free`,groupByProvider:!0,getPriority:e=>+!x.has(e.id)}),[_,E,A,x,O,ve]),availableImageModels:B,enabledImageModelIds:V,pendingImageChanges:G,filteredAndSortedImageModels:(0,Q.useMemo)(()=>K({models:B,query:E,sortBy:O===`coding-index`||O===`intelligence-by-price`?`alphabetical`:O,getDisplayName:ve,freeOnly:A===`free`,groupByProvider:!0,getPriority:e=>+!U.has(e.id)}),[B,E,A,U,O,ve]),hasApiKey:Ae,getModelDisplayName:ve,handleUpdateKeyLocal:we,handleUpdateProviderEnv:Te,refreshLocalProviderModels:Ce,handleToggleModel:De,handleToggleAllModels:ke}}function we(e){let t=(0,Z.c)(7),{provider:n,onBack:r}=e;if(!r&&!n.url)return null;let i;t[0]===n.url?i=t[1]:(i=n.url?(0,$.jsx)(he,{url:n.url,className:p(o.compact,`p-3`)}):null,t[0]=n.url,t[1]=i);let a;t[2]===r?a=t[3]:(a=r?(0,$.jsxs)(h,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:r,children:[(0,$.jsx)(C,{className:`h-4 w-4`}),(0,$.jsx)(`span`,{className:`sr-only`,children:`Close provider details`})]}):null,t[2]=r,t[3]=a);let s;return t[4]!==i||t[5]!==a?(s=(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=s):s=t[6],s}function Te(e){let t=(0,Z.c)(6),{balance:n}=e;if(n===null)return null;let r,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=p(o.compact,`inline-flex shrink-0 items-center gap-1.5 font-medium`),i=(0,$.jsx)(`div`,{className:`h-1.5 w-1.5 rounded-full bg-green-500`}),t[0]=r,t[1]=i):(r=t[0],i=t[1]);let a;t[2]===n?a=t[3]:(a=f(n),t[2]=n,t[3]=a);let s;return t[4]===a?s=t[5]:(s=(0,$.jsxs)(`span`,{className:r,children:[i,`$`,a,` balance`]}),t[4]=a,t[5]=s),s}function Ee(e){let t=(0,Z.c)(8),{title:n,tooltip:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=p(o.label,`cursor-help`),t[0]=i):i=t[0];let a;t[1]===n?a=t[2]:(a=(0,$.jsx)(w,{asChild:!0,children:(0,$.jsx)(`span`,{className:i,children:n})}),t[1]=n,t[2]=a);let s;t[3]===r?s=t[4]:(s=(0,$.jsx)(ee,{children:r}),t[3]=r,t[4]=s);let c;return t[5]!==a||t[6]!==s?(c=(0,$.jsx)(T,{children:(0,$.jsxs)(E,{children:[a,s]})}),t[5]=a,t[6]=s,t[7]=c):c=t[7],c}function De(e){let t=(0,Z.c)(10),{provider:n,displayApiKey:r,showApiKey:i,onToggleShowApiKey:a,onUpdateKey:o,providerEnvValues:s,onUpdateEnv:c,modelsLoading:u,onRefreshModels:d}=e,f;return t[0]!==r||t[1]!==u||t[2]!==d||t[3]!==a||t[4]!==c||t[5]!==o||t[6]!==n||t[7]!==s||t[8]!==i?(f=(0,$.jsx)($.Fragment,{children:n.authType===`APIKey`?(0,$.jsx)($.Fragment,{children:(0,$.jsxs)(I,{children:[(0,$.jsx)(U,{label:(0,$.jsx)(Ee,{title:`API Key`,tooltip:`Your API key is stored locally and never shared.`}),control:(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(v,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground`}),(0,$.jsx)(R,{type:i?`text`:`password`,placeholder:n.keyName||`Enter API Key`,className:`pl-10 pr-10`,value:r,onChange:e=>{o(n.name,e.target.value)}}),(0,$.jsx)(h,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 -translate-y-1/2 h-8 w-8 p-0`,onClick:a,disabled:!r,children:i?(0,$.jsx)(b,{className:`h-4 w-4 text-muted-foreground`}):(0,$.jsx)(S,{className:`h-4 w-4 text-muted-foreground`})})]})}),z(n).map(e=>(0,$.jsx)(U,{label:(0,$.jsx)(Ee,{title:L(e),tooltip:e}),control:l(n.slug)&&e===`LOCAL_API_URL`?(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(R,{id:e,value:s[e]??``,onChange:t=>c(e,t.target.value),placeholder:n.api,className:`pr-10`,spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`}),(0,$.jsx)(T,{children:(0,$.jsxs)(E,{children:[(0,$.jsx)(w,{asChild:!0,children:(0,$.jsx)(h,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-1 top-1/2 -translate-y-1/2 h-8 w-8 p-0`,onClick:()=>{d(n.slug)},disabled:u,children:u?(0,$.jsx)(y,{className:`h-4 w-4 animate-spin text-muted-foreground`}):(0,$.jsx)(g,{className:`h-4 w-4 text-muted-foreground`})})}),(0,$.jsx)(ee,{children:`Refresh models`})]})})]}):(0,$.jsx)(R,{id:e,value:s[e]??``,onChange:t=>c(e,t.target.value),placeholder:e,spellCheck:!1,autoCorrect:`off`,autoCapitalize:`off`})},e))]})}):(0,$.jsxs)(`div`,{className:`space-y-2 text-center`,children:[(0,$.jsx)(H,{className:`mb-0`,children:`This provider uses OAuth for authentication.`}),(0,$.jsxs)(h,{variant:`outline`,size:`sm`,disabled:!0,children:[`Sign in with `,n.name]})]})}),t[0]=r,t[1]=u,t[2]=d,t[3]=a,t[4]=c,t[5]=o,t[6]=n,t[7]=s,t[8]=i,t[9]=f):f=t[9],f}function Oe(e){let t=(0,Z.c)(23),{tab:n,model:r,displayName:i,willBeEnabled:a,hasApiKey:s,showStarRating:c,onToggle:l}=e,u=r.pricing,d=n===`image`?`image-${r.id}`:r.id,m=r.id,h=!s&&`opacity-25`,g;t[0]===h?g=t[1]:(g=p(`flex cursor-default items-center space-x-3 px-3 py-2 transition-colors hover:bg-muted/30`,h),t[0]=h,t[1]=g);let _=!s,v=a??!1,y;t[2]!==r.id||t[3]!==l?(y=()=>l(r.id),t[2]=r.id,t[3]=l,t[4]=y):y=t[4];let b=`${i} ${a?`enabled`:`disabled`}`,x;t[5]!==d||t[6]!==_||t[7]!==v||t[8]!==y||t[9]!==b?(x=(0,$.jsx)(V,{id:d,disabled:_,value:v,onChange:y,ariaLabel:b}),t[5]=d,t[6]=_,t[7]=v,t[8]=y,t[9]=b,t[10]=x):x=t[10];let S;t[11]!==d||t[12]!==i||t[13]!==r.coding_index||t[14]!==u||t[15]!==c||t[16]!==n?(S=n===`coding`?(0,$.jsxs)(`div`,{className:`flex-1 flex items-center justify-between gap-3 leading-none`,children:[(0,$.jsx)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:(0,$.jsx)(`label`,{htmlFor:d,className:p(o.body,`leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer truncate`),children:i})}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[c&&(0,$.jsx)(X,{codingIndex:r.coding_index,modelName:i}),u&&(0,$.jsx)(`span`,{className:p(o.caption,`whitespace-nowrap`),children:(u.prompt??0)===0&&(u.completion??0)===0?``:`$${f(u.prompt??0)} in | $${f(u.completion??0)} out`})]})]}):(0,$.jsxs)(`div`,{className:`flex-1 flex items-center justify-between gap-3 leading-none`,children:[(0,$.jsx)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:(0,$.jsx)(`label`,{htmlFor:d,className:p(o.label,`leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer truncate`),children:i})}),u&&(0,$.jsx)(`span`,{className:p(o.caption,`whitespace-nowrap flex-shrink-0`),children:(u.prompt??0)===0&&(u.completion??0)===0?``:`$${f(u.prompt??0)} in | $${f(u.completion??0)} out`})]}),t[11]=d,t[12]=i,t[13]=r.coding_index,t[14]=u,t[15]=c,t[16]=n,t[17]=S):S=t[17];let C;return t[18]!==r.id||t[19]!==g||t[20]!==x||t[21]!==S?(C=(0,$.jsxs)(`div`,{className:g,children:[x,S]},m),t[18]=r.id,t[19]=g,t[20]=x,t[21]=S,t[22]=C):C=t[22],C}function ke(e){let t=(0,Z.c)(13),{tab:n,models:r,filteredModels:i,modelsLoading:a,modelsError:c,hasApiKey:l,enabledModelIds:u,pendingChanges:d,modelSortBy:f,getModelDisplayName:m,onToggleModel:h}=e,g=n===`coding`,_=g?c?`No models loaded.`:`No models available for this provider.`:`No image models available for this provider.`,v;return t[0]!==_||t[1]!==u||t[2]!==i||t[3]!==m||t[4]!==l||t[5]!==g||t[6]!==f||t[7]!==r||t[8]!==a||t[9]!==h||t[10]!==d||t[11]!==n?(v=(0,$.jsx)(`div`,{className:`flex flex-col gap-4`,children:a?(0,$.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,$.jsx)(y,{className:`h-5 w-5 animate-spin text-muted-foreground`})}):r.length===0?(0,$.jsx)(`div`,{className:`text-center py-8`,children:(0,$.jsx)(`p`,{className:o.bodyMuted,children:_})}):(0,$.jsx)(T,{children:(0,$.jsx)(`div`,{className:p(`grid grid-cols-1 gap-0`,s.tableWrapper),children:i.length===0?(0,$.jsx)(`div`,{className:`text-center py-8`,children:(0,$.jsx)(`p`,{className:o.bodyMuted,children:`No models matching your filters.`})}):i.map(e=>{let t=u.has(e.id),r=d.has(e.id),i=d.get(e.id),a=(r?i:t)??!1;return(0,$.jsx)(Oe,{tab:n,model:e,displayName:m(e),willBeEnabled:a,hasApiKey:l,showStarRating:g&&(f===`coding-index`||f===`intelligence-by-price`),onToggle:e=>h(e,n)},e.id)})})})}),t[0]=_,t[1]=u,t[2]=i,t[3]=m,t[4]=l,t[5]=g,t[6]=f,t[7]=r,t[8]=a,t[9]=h,t[10]=d,t[11]=n,t[12]=v):v=t[12],v}function Ae(e){let t=(0,Z.c)(22),{tab:n,showImageTab:r,modelsLoading:i,models:a,hasApiKey:o,enabledModelIds:s,pendingChanges:c,modelSearchQuery:l,onModelSearchQueryChange:u,modelSortBy:d,onModelSortByChange:f,onToggleAllModels:m}=e,h=n===`coding`,g=h?`select-all-models`:`select-all-image-models`,_=!i&&a.length>0,v=_&&!o&&`opacity-25`,y;t[0]===v?y=t[1]:(y=p(`flex flex-col gap-2 md:flex-row md:items-center`,v),t[0]=v,t[1]=y);let b;t[2]===r?b=t[3]:(b=r?(0,$.jsxs)(F,{className:`w-fit shrink-0 self-start`,children:[(0,$.jsx)(de,{value:`coding`,children:`Coding`}),(0,$.jsx)(de,{value:`image`,children:`Image`})]}):null,t[2]=r,t[3]=b);let S;t[4]!==s||t[5]!==o||t[6]!==h||t[7]!==l||t[8]!==d||t[9]!==a||t[10]!==u||t[11]!==f||t[12]!==m||t[13]!==c||t[14]!==g||t[15]!==_||t[16]!==n?(S=_?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`relative w-full md:w-52 flex-shrink-0`,children:[(0,$.jsx)(x,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground pointer-events-none`}),(0,$.jsx)(R,{placeholder:`Search`,className:`pl-10 h-8`,value:l,onChange:e=>u(e.target.value),disabled:!o})]}),(0,$.jsxs)(`div`,{className:`flex flex-shrink-0 items-center gap-2 self-end md:ml-auto md:self-auto`,children:[(0,$.jsx)(ve,{id:g,disabled:!o,checked:a.every(e=>{let t=c.has(e.id),n=c.get(e.id);return t?n:s.has(e.id)}),onChange:e=>{m(e,n)}}),(0,$.jsx)(Y,{sortBy:d,showCodingIndex:h,showIntelligenceByPrice:h,onSortByChange:f})]})]}):null,t[4]=s,t[5]=o,t[6]=h,t[7]=l,t[8]=d,t[9]=a,t[10]=u,t[11]=f,t[12]=m,t[13]=c,t[14]=g,t[15]=_,t[16]=n,t[17]=S):S=t[17];let C;return t[18]!==y||t[19]!==b||t[20]!==S?(C=(0,$.jsxs)(`div`,{className:y,children:[b,S]}),t[18]=y,t[19]=b,t[20]=S,t[21]=C):C=t[21],C}function je(e){let t=(0,Z.c)(10),{title:n,description:r,action:i,tableHeader:a,children:o}=e,s;t[0]!==i||t[1]!==r||t[2]!==a||t[3]!==n?(s=(0,$.jsx)(W,{title:n,description:r,action:i,sticky:!1,tableHeader:a}),t[0]=i,t[1]=r,t[2]=a,t[3]=n,t[4]=s):s=t[4];let c;t[5]===o?c=t[6]:(c=(0,$.jsx)(`div`,{className:`px-6 pb-6`,children:o}),t[5]=o,t[6]=c);let l;return t[7]!==s||t[8]!==c?(l=(0,$.jsxs)(M,{className:`shrink-0`,children:[s,c]}),t[7]=s,t[8]=c,t[9]=l):l=t[9],l}function Me(e){let t=(0,Z.c)(111),{selectedProviderName:n,selectedProviderSlug:r,providerData:i,onBack:a,className:o}=e,s=n===void 0?null:n,c=r===void 0?null:r,l;t[0]!==i||t[1]!==s||t[2]!==c?(l={selectedProviderName:s,selectedProviderSlug:c,providerData:i},t[0]=i,t[1]=s,t[2]=c,t[3]=l):l=t[3];let{selectedProvider:u,error:d,balance:f,displayApiKey:m,showApiKey:g,setShowApiKey:v,providerEnvValues:y,modelsLoading:b,modelsError:x,saveStatus:S,modelTab:C,setModelTab:w,modelSearchQuery:ee,setModelSearchQuery:T,modelSortBy:E,setModelSortBy:te,availableModels:ne,enabledModelIds:re,pendingChanges:ie,filteredAndSortedModels:ae,availableImageModels:oe,enabledImageModelIds:se,pendingImageChanges:ce,filteredAndSortedImageModels:le,hasApiKey:D,getModelDisplayName:O,handleUpdateKeyLocal:ue,handleUpdateProviderEnv:k,refreshLocalProviderModels:A,handleToggleModel:j,handleToggleAllModels:de}=Ce(l);if(d){let e;t[4]===o?e=t[5]:(e=p(`flex h-full min-h-0 flex-col items-center justify-center gap-4 p-6`,o),t[4]=o,t[5]=e);let n;t[6]===d?n=t[7]:(n=(0,$.jsx)(H,{variant:`error`,className:`mb-0`,children:d}),t[6]=d,t[7]=n);let r;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,$.jsx)(h,{variant:`outline`,size:`sm`,onClick:Ne,children:`Retry`}),t[8]=r):r=t[8];let i;return t[9]!==e||t[10]!==n?(i=(0,$.jsxs)(`div`,{className:e,children:[n,r]}),t[9]=e,t[10]=n,t[11]=i):i=t[11],i}if(!u){let e;t[12]===o?e=t[13]:(e=p(`flex h-full min-h-0 items-center justify-center`,o),t[12]=o,t[13]=e);let n=s||c?`Provider not found`:`Select a Provider`,r;t[14]===a?r=t[15]:(r=a?(0,$.jsxs)(h,{variant:`outline`,size:`sm`,onClick:a,children:[(0,$.jsx)(_,{className:`h-4 w-4 mr-1`}),`Back to Providers`]}):void 0,t[14]=a,t[15]=r);let i=a?`This provider could not be found.`:`Choose a provider from the list to configure its settings.`,l;t[16]!==n||t[17]!==r||t[18]!==i?(l=(0,$.jsx)(P,{title:n,action:r,children:i}),t[16]=n,t[17]=r,t[18]=i,t[19]=l):l=t[19];let u;return t[20]!==e||t[21]!==l?(u=(0,$.jsx)(`div`,{className:e,children:l}),t[20]=e,t[21]=l,t[22]=u):u=t[22],u}let M;t[23]===o?M=t[24]:(M=p(`h-full min-h-0`,o),t[23]=o,t[24]=M);let N;t[25]!==a||t[26]!==u?(N=(0,$.jsx)(we,{provider:u,onBack:a}),t[25]=a,t[26]=u,t[27]=N):N=t[27];let F;t[28]!==v||t[29]!==g?(F=()=>v(!g),t[28]=v,t[29]=g,t[30]=F):F=t[30];let I;t[31]!==m||t[32]!==ue||t[33]!==k||t[34]!==b||t[35]!==y||t[36]!==A||t[37]!==u||t[38]!==g||t[39]!==F?(I=(0,$.jsx)(`div`,{className:`pt-6`,children:(0,$.jsx)(De,{provider:u,displayApiKey:m,showApiKey:g,onToggleShowApiKey:F,onUpdateKey:ue,providerEnvValues:y,onUpdateEnv:k,modelsLoading:b,onRefreshModels:A})}),t[31]=m,t[32]=ue,t[33]=k,t[34]=b,t[35]=y,t[36]=A,t[37]=u,t[38]=g,t[39]=F,t[40]=I):I=t[40];let L;t[41]!==u.name||t[42]!==N||t[43]!==I?(L=(0,$.jsx)(je,{title:u.name,description:`Configure API keys and connection settings for this provider.`,action:N,children:I}),t[41]=u.name,t[42]=N,t[43]=I,t[44]=L):L=t[44];let R;t[45]!==T||t[46]!==te||t[47]!==w?(R=e=>{w(e),T(``),te(`alphabetical`)},t[45]=T,t[46]=te,t[47]=w,t[48]=R):R=t[48];let z;t[49]===f?z=t[50]:(z=(0,$.jsx)(Te,{balance:f}),t[49]=f,t[50]=z);let B;t[51]===u.name?B=t[52]:(B=u.name.toLowerCase(),t[51]=u.name,t[52]=B);let me=B===`openrouter`,he=C===`coding`?ne:oe,V=C===`coding`?re:se,U=C===`coding`?ie:ce,W;t[53]!==de||t[54]!==D||t[55]!==ee||t[56]!==E||t[57]!==C||t[58]!==b||t[59]!==T||t[60]!==te||t[61]!==me||t[62]!==he||t[63]!==V||t[64]!==U?(W=(0,$.jsx)(Ae,{tab:C,showImageTab:me,modelsLoading:b,models:he,hasApiKey:D,enabledModelIds:V,pendingChanges:U,modelSearchQuery:ee,onModelSearchQueryChange:T,modelSortBy:E,onModelSortByChange:te,onToggleAllModels:de}),t[53]=de,t[54]=D,t[55]=ee,t[56]=E,t[57]=C,t[58]=b,t[59]=T,t[60]=te,t[61]=me,t[62]=he,t[63]=V,t[64]=U,t[65]=W):W=t[65];let ge;t[66]===x?ge=t[67]:(ge=x?(0,$.jsx)(H,{variant:`error`,className:`mb-4`,children:x}):null,t[66]=x,t[67]=ge);let G;t[68]!==ne||t[69]!==re||t[70]!==ae||t[71]!==O||t[72]!==j||t[73]!==D||t[74]!==E||t[75]!==x||t[76]!==b||t[77]!==ie||t[78]!==u?(G=(0,$.jsx)(pe,{value:`coding`,children:(0,$.jsx)(ke,{tab:`coding`,provider:u,models:ne,filteredModels:ae,modelsLoading:b,modelsError:x,hasApiKey:D,enabledModelIds:re,pendingChanges:ie,modelSortBy:E,getModelDisplayName:O,onToggleModel:j})}),t[68]=ne,t[69]=re,t[70]=ae,t[71]=O,t[72]=j,t[73]=D,t[74]=E,t[75]=x,t[76]=b,t[77]=ie,t[78]=u,t[79]=G):G=t[79];let K;t[80]!==oe||t[81]!==se||t[82]!==le||t[83]!==O||t[84]!==j||t[85]!==D||t[86]!==E||t[87]!==x||t[88]!==b||t[89]!==ce||t[90]!==u?(K=(0,$.jsx)(pe,{value:`image`,children:(0,$.jsx)(ke,{tab:`image`,provider:u,models:oe,filteredModels:le,modelsLoading:b,modelsError:x,hasApiKey:D,enabledModelIds:se,pendingChanges:ce,modelSortBy:E,getModelDisplayName:O,onToggleModel:j})}),t[80]=oe,t[81]=se,t[82]=le,t[83]=O,t[84]=j,t[85]=D,t[86]=E,t[87]=x,t[88]=b,t[89]=ce,t[90]=u,t[91]=K):K=t[91];let _e;t[92]===S?_e=t[93]:(_e=S?(0,$.jsx)(H,{variant:S.includes(`error`)||S.includes(`Failed`)?`error`:`success`,className:`mt-4`,children:S}):null,t[92]=S,t[93]=_e);let q;t[94]!==z||t[95]!==W||t[96]!==ge||t[97]!==G||t[98]!==K||t[99]!==_e?(q=(0,$.jsxs)(je,{title:`Models`,description:`Enable coding and image models for this provider.`,action:z,tableHeader:W,children:[ge,G,K,_e]}),t[94]=z,t[95]=W,t[96]=ge,t[97]=G,t[98]=K,t[99]=_e,t[100]=q):q=t[100];let J;t[101]!==C||t[102]!==q||t[103]!==R?(J=(0,$.jsx)(fe,{value:C,onValueChange:R,children:q}),t[101]=C,t[102]=q,t[103]=R,t[104]=J):J=t[104];let Y;t[105]!==J||t[106]!==L?(Y=(0,$.jsx)(`div`,{className:`frosted-scrollbar h-full min-h-0 overflow-auto`,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[L,J]})}),t[105]=J,t[106]=L,t[107]=Y):Y=t[107];let X;return t[108]!==Y||t[109]!==M?(X=(0,$.jsx)(`div`,{className:M,children:Y}),t[108]=Y,t[109]=M,t[110]=X):X=t[110],X}function Ne(){return window.location.reload()}function Pe(e){return`providers:list:${e}`}async function Fe(){let[e,t]=await Promise.all([le(),O().catch(()=>({}))]),n={};for(let[e,r]of Object.entries(t))n[e]=r.length;return{providers:e,enabledModelCounts:n}}var Ie=`grid min-h-10 grid-cols-[minmax(0,1fr)_auto] items-center gap-3 px-3 py-2 hover:bg-muted/30 cursor-pointer`,Le=`[&>*+*]:border-t [&>*+*]:border-table-border`;function Re(e){let t=(0,Z.c)(9),{title:n,description:r,action:i,children:a}=e,o;t[0]!==i||t[1]!==r||t[2]!==n?(o=(0,$.jsx)(W,{title:n,description:r,action:i,sticky:!1}),t[0]=i,t[1]=r,t[2]=n,t[3]=o):o=t[3];let s;t[4]===a?s=t[5]:(s=(0,$.jsx)(N,{className:`pt-6`,children:a}),t[4]=a,t[5]=s);let c;return t[6]!==o||t[7]!==s?(c=(0,$.jsxs)(M,{className:`shrink-0`,children:[o,s]}),t[6]=o,t[7]=s,t[8]=c):c=t[8],c}function ze(e){let t=(0,Z.c)(33),{loadVersion:n,onProviderClick:r}=e,{query:i,setQuery:a,deferredQuery:s}=J(),c;t[0]===n?c=t[1]:(c=Pe(n),t[0]=n,t[1]=c);let{providers:l,enabledModelCounts:u}=A(c,Fe),d;if(t[2]!==s||t[3]!==u||t[4]!==l){let e;t[6]===s?e=t[7]:(e=e=>{let t=s.toLowerCase();return e.name.toLowerCase().includes(t)},t[6]=s,t[7]=e);let n;t[8]===u?n=t[9]:(n=(e,t)=>{let n=(u[e.slug]??0)>0,r=(u[t.slug]??0)>0;return n&&!r?-1:!n&&r?1:e.name.localeCompare(t.name)},t[8]=u,t[9]=n),d=l.filter(He).filter(e).sort(n),t[2]=s,t[3]=u,t[4]=l,t[5]=d}else d=t[5];let f=d,m;if(t[10]!==s||t[11]!==l){let e;t[13]===s?e=t[14]:(e=e=>{let t=s.toLowerCase();return e.name.toLowerCase().includes(t)},t[13]=s,t[14]=e),m=l.filter(Ve).filter(e).sort(Be),t[10]=s,t[11]=l,t[12]=m}else m=t[12];let h=m,g;t[15]!==i||t[16]!==a?(g=(0,$.jsx)(q,{placeholder:`Search`,value:i,onChange:a,className:`mb-0 w-64`}),t[15]=i,t[16]=a,t[17]=g):g=t[17];let _;t[18]!==f||t[19]!==u||t[20]!==r||t[21]!==i?(_=f.length===0?(0,$.jsx)(`p`,{className:p(o.bodyMuted,`py-4`),children:i?`No connected providers match your search.`:`No providers connected yet. Add an API key to get started.`}):(0,$.jsx)(`div`,{className:Le,children:f.map(e=>(0,$.jsx)(Ye,{provider:e,modelCount:u[e.slug]??0,onClick:r},e.name))}),t[18]=f,t[19]=u,t[20]=r,t[21]=i,t[22]=_):_=t[22];let v;t[23]!==g||t[24]!==_?(v=(0,$.jsx)(Re,{title:`Connected Providers`,description:`Providers you've connected with an API key or environment variable.`,action:g,children:_}),t[23]=g,t[24]=_,t[25]=v):v=t[25];let y;t[26]!==h||t[27]!==r||t[28]!==i?(y=(0,$.jsx)(Re,{title:`Available Providers`,description:`Connect additional providers by adding your API key.`,children:h.length===0?(0,$.jsx)(`p`,{className:p(o.bodyMuted,`py-4`),children:i?`No available providers match your search.`:`All providers are connected.`}):(0,$.jsx)(`div`,{className:Le,children:h.map(e=>(0,$.jsx)(Xe,{provider:e,onClick:r},e.name))})}),t[26]=h,t[27]=r,t[28]=i,t[29]=y):y=t[29];let b;return t[30]!==v||t[31]!==y?(b=(0,$.jsx)(`div`,{className:`frosted-scrollbar h-full min-h-0 overflow-auto`,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[v,y]})}),t[30]=v,t[31]=y,t[32]=b):b=t[32],b}function Be(e,t){return e.name.localeCompare(t.name)}function Ve(e){return!e.apiKey}function He(e){return e.apiKey}function Ue(){let e=(0,Z.c)(21),t=a(),{providerSlug:n}=i(),[r,o]=(0,Q.useState)(0),s=(0,Q.useRef)(n),c,l;e[0]!==r||e[1]!==n?(c=()=>{s.current&&!n&&(k(Pe(r)),o(qe)),s.current=n},l=[n,r],e[0]=r,e[1]=n,e[2]=c,e[3]=l):(c=e[2],l=e[3]),(0,Q.useEffect)(c,l);let u;e[4]===t?u=e[5]:(u=e=>{t(`/settings/providers/${encodeURIComponent(e.slug)}`)},e[4]=t,e[5]=u);let d=u,f;e[6]!==r||e[7]!==t?(f=()=>{t(`/settings/providers`),k(Pe(r)),o(Ke)},e[6]=r,e[7]=t,e[8]=f):f=e[8];let p=f,m;e[9]===r?m=e[10]:(m=function(){k(Pe(r)),o(Ge)},e[9]=r,e[10]=m);let h=m;if(n){let t=decodeURIComponent(n),r;return e[11]!==p||e[12]!==t?(r=(0,$.jsx)(Me,{selectedProviderSlug:t,onBack:p}),e[11]=p,e[12]=t,e[13]=r):r=e[13],r}let g;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,$.jsx)(j,{label:`Loading providers...`,size:`lg`}),e[14]=g):g=e[14];let _;e[15]!==d||e[16]!==r?(_=(0,$.jsx)(Q.Suspense,{fallback:g,children:(0,$.jsx)(ze,{loadVersion:r,onProviderClick:d},r)}),e[15]=d,e[16]=r,e[17]=_):_=e[17];let v;return e[18]!==h||e[19]!==_?(v=(0,$.jsx)(`div`,{className:`h-full min-h-0`,children:(0,$.jsx)(G,{fallbackTitle:`Failed to load providers`,onRetry:h,renderFallback:We,children:_})}),e[18]=h,e[19]=_,e[20]=v):v=e[20],v}function We(e,t){return(0,$.jsx)(`div`,{className:`frosted-scrollbar h-full min-h-0 overflow-auto`,children:(0,$.jsxs)(M,{className:`shrink-0`,children:[(0,$.jsx)(W,{title:`Providers`,description:`Manage your AI provider connections and API keys.`,sticky:!1}),(0,$.jsx)(`div`,{className:`flex items-center justify-center px-6 pb-6 pt-6`,children:(0,$.jsxs)(`div`,{className:`max-w-md text-center`,children:[(0,$.jsx)(H,{variant:`error`,className:`mb-4`,children:e.message}),(0,$.jsx)(h,{variant:`outline`,size:`sm`,onClick:t,children:`Retry`})]})})]})})}function Ge(e){return e+1}function Ke(e){return e+1}function qe(e){return e+1}function Je(e,t){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t())}function Ye(e){let t=(0,Z.c)(25),{provider:n,modelCount:r,onClick:i}=e,a;t[0]!==i||t[1]!==n?(a=function(){i(n)},t[0]=i,t[1]=n,t[2]=a):a=t[2];let s=a,c;t[3]===s?c=t[4]:(c=e=>Je(e,s),t[3]=s,t[4]=c);let l;t[5]===n?l=t[6]:(l=(0,$.jsx)(B,{provider:n}),t[5]=n,t[6]=l);let u;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(u=p(o.label,`truncate leading-normal`),t[7]=u):u=t[7];let d;t[8]===n.name?d=t[9]:(d=(0,$.jsx)(`span`,{className:u,children:n.name}),t[8]=n.name,t[9]=d);let f;t[10]!==l||t[11]!==d?(f=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[l,d]}),t[10]=l,t[11]=d,t[12]=f):f=t[12];let m;t[13]===n.isEnv?m=t[14]:(m=n.isEnv?(0,$.jsx)(be,{variant:`secondary`,className:p(o.compact,`px-2 py-0.5`),children:`Environment`}):(0,$.jsx)(be,{variant:`secondary`,className:p(o.compact,`px-2 py-0.5`),children:`API Key`}),t[13]=n.isEnv,t[14]=m);let h;t[15]===r?h=t[16]:(h=r>0&&(0,$.jsxs)(be,{variant:`default`,className:p(o.compact,`px-2 py-0.5`),children:[r,` `,r===1?`Model`:`Models`]}),t[15]=r,t[16]=h);let g;t[17]!==m||t[18]!==h?(g=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-1.5`,children:[m,h]}),t[17]=m,t[18]=h,t[19]=g):g=t[19];let _;return t[20]!==s||t[21]!==c||t[22]!==f||t[23]!==g?(_=(0,$.jsxs)(`div`,{className:Ie,role:`button`,tabIndex:0,onClick:s,onKeyDown:c,children:[f,g]}),t[20]=s,t[21]=c,t[22]=f,t[23]=g,t[24]=_):_=t[24],_}function Xe(e){let t=(0,Z.c)(18),{provider:n,onClick:r}=e,i;t[0]!==r||t[1]!==n?(i=function(){r(n)},t[0]=r,t[1]=n,t[2]=i):i=t[2];let a=i,s;t[3]===a?s=t[4]:(s=e=>Je(e,a),t[3]=a,t[4]=s);let c;t[5]===n?c=t[6]:(c=(0,$.jsx)(B,{provider:n}),t[5]=n,t[6]=c);let l;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(l=p(o.label,`truncate leading-normal`),t[7]=l):l=t[7];let u;t[8]===n.name?u=t[9]:(u=(0,$.jsx)(`span`,{className:l,children:n.name}),t[8]=n.name,t[9]=u);let d;t[10]!==c||t[11]!==u?(d=(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[c,u]}),t[10]=c,t[11]=u,t[12]=d):d=t[12];let f;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,$.jsx)(`span`,{className:p(o.compact,`shrink-0 text-muted-foreground`),children:`Configure`}),t[13]=f):f=t[13];let m;return t[14]!==a||t[15]!==s||t[16]!==d?(m=(0,$.jsxs)(`div`,{className:Ie,role:`button`,tabIndex:0,onClick:a,onKeyDown:s,children:[d,f]}),t[14]=a,t[15]=s,t[16]=d,t[17]=m):m=t[17],m}export{Ue as ProvidersListView,Ue as default};
@@ -1 +1 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{Dt as ee}from"./dist-CTLFS4dn.js";import{t as n}from"./button-kWtLAMpB.js";import{I as r}from"./dist-c_QADQ5u.js";import{i,n as te,r as a,t as ne}from"./tooltip-Db8UeYxm.js";import{Jn as o,Vn as s,_r as re,dr as c,fr as l,gr as u,hr as d,mr as f,ot as p,pr as ie,vr as ae}from"./index-u8UbWjXL.js";var oe=e(),m=t();function h(e){let t=(0,oe.c)(58),{open:h,onOpenChange:g,prTitle:_,onPrTitleChange:v,prDescription:y,onPrDescriptionChange:b,isGeneratingPRInfo:x,isLoading:S,onGeneratePRInfo:C,onCreatePR:w,currentBranch:T,createWorkspaceAfterPR:E,onCreateWorkspaceAfterPRChange:D}=e,O;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,m.jsx)(ae,{children:`Create Pull Request`}),t[0]=O):O=t[0];let k;t[1]===T?k=t[2]:(k=(0,m.jsxs)(re,{children:[O,(0,m.jsxs)(d,{children:[`Create a pull request for branch `,T]})]}),t[1]=T,t[2]=k);let A;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,m.jsx)(c,{htmlFor:`pr-title`,children:`Title`}),t[3]=A):A=t[3];let j=T||`Enter PR title...`,M;t[4]===v?M=t[5]:(M=e=>v(e.target.value),t[4]=v,t[5]=M);let N;t[6]!==x||t[7]!==_||t[8]!==j||t[9]!==M?(N=(0,m.jsxs)(`div`,{className:`grid gap-2`,children:[A,(0,m.jsx)(l,{id:`pr-title`,placeholder:j,value:_,onChange:M,disabled:x})]}),t[6]=x,t[7]=_,t[8]=j,t[9]=M,t[10]=N):N=t[10];let P;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,m.jsx)(c,{htmlFor:`pr-description`,children:`Description`}),t[11]=P):P=t[11];let F;t[12]===b?F=t[13]:(F=e=>b(e.target.value),t[12]=b,t[13]=F);let I;t[14]!==x||t[15]!==y||t[16]!==F?(I=(0,m.jsx)(o,{id:`pr-description`,placeholder:`Enter PR description...`,value:y,onChange:F,disabled:x,className:`pr-10 h-full min-h-[14rem] resize-none`}),t[14]=x,t[15]=y,t[16]=F,t[17]=I):I=t[17];let L=x||S,R;t[18]===x?R=t[19]:(R=x?(0,m.jsx)(s,{}):(0,m.jsx)(r,{className:`h-3.5 w-3.5`}),t[18]=x,t[19]=R);let z;t[20]!==C||t[21]!==L||t[22]!==R?(z=(0,m.jsx)(i,{asChild:!0,children:(0,m.jsx)(n,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:C,disabled:L,children:R})}),t[20]=C,t[21]=L,t[22]=R,t[23]=z):z=t[23];let B=x?`Generating PR description...`:`Generate PR title and description with AI`,V;t[24]===B?V=t[25]:(V=(0,m.jsx)(te,{children:B}),t[24]=B,t[25]=V);let H;t[26]!==z||t[27]!==V?(H=(0,m.jsx)(a,{children:(0,m.jsxs)(ne,{children:[z,V]})}),t[26]=z,t[27]=V,t[28]=H):H=t[28];let U;t[29]!==H||t[30]!==I?(U=(0,m.jsxs)(`div`,{className:`grid gap-2 flex-1 min-h-0`,children:[P,(0,m.jsxs)(`div`,{className:`relative flex-1 min-h-0`,children:[I,H]})]}),t[29]=H,t[30]=I,t[31]=U):U=t[31];let W;t[32]!==U||t[33]!==N?(W=(0,m.jsxs)(`div`,{className:`grid gap-4 py-4 flex-1 min-h-0`,children:[N,U]}),t[32]=U,t[33]=N,t[34]=W):W=t[34];let G;t[35]!==E||t[36]!==D?(G=(0,m.jsx)(p,{value:E,onChange:D,ariaLabel:`Create a new branch`}),t[35]=E,t[36]=D,t[37]=G):G=t[37];let K;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,m.jsx)(c,{className:ee.labelNormal,children:`Create a new branch`}),t[38]=K):K=t[38];let q;t[39]===G?q=t[40]:(q=(0,m.jsxs)(`div`,{className:`mr-auto flex items-center gap-3`,children:[G,K]}),t[39]=G,t[40]=q);let J=S||x,Y;t[41]===S?Y=t[42]:(Y=S?(0,m.jsxs)(m.Fragment,{children:[`Create PR`,(0,m.jsx)(s,{size:`sm`})]}):`Create PR`,t[41]=S,t[42]=Y);let X;t[43]!==w||t[44]!==J||t[45]!==Y?(X=(0,m.jsx)(n,{className:`ml-auto`,onClick:w,disabled:J,children:Y}),t[43]=w,t[44]=J,t[45]=Y,t[46]=X):X=t[46];let Z;t[47]!==q||t[48]!==X?(Z=(0,m.jsxs)(u,{className:`w-full items-center gap-4`,children:[q,X]}),t[47]=q,t[48]=X,t[49]=Z):Z=t[49];let Q;t[50]!==W||t[51]!==k||t[52]!==Z?(Q=(0,m.jsxs)(f,{className:`flex max-w-2xl flex-col max-md:top-[max(1rem,env(safe-area-inset-top,0px))] max-md:max-h-[calc(100dvh-2rem)] max-md:translate-y-0 max-md:overflow-y-auto max-md:data-[state=closed]:slide-out-to-top max-md:data-[state=open]:slide-in-from-top max-md:data-[state=closed]:slide-out-to-left-0 max-md:data-[state=open]:slide-in-from-left-0 max-md:data-[state=closed]:zoom-out-100 max-md:data-[state=open]:zoom-in-100 md:h-[min(36rem,85dvh)]`,children:[k,W,Z]}),t[50]=W,t[51]=k,t[52]=Z,t[53]=Q):Q=t[53];let $;return t[54]!==g||t[55]!==h||t[56]!==Q?($=(0,m.jsx)(ie,{open:h,onOpenChange:g,children:Q}),t[54]=g,t[55]=h,t[56]=Q,t[57]=$):$=t[57],$}export{h as PullRequestDialog};
1
+ import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{Dt as ee}from"./dist-CTLFS4dn.js";import{t as n}from"./button-kWtLAMpB.js";import{I as r}from"./dist-c_QADQ5u.js";import{i,n as te,r as a,t as ne}from"./tooltip-Db8UeYxm.js";import{Jn as o,Vn as s,_r as re,dr as c,fr as l,gr as u,hr as d,mr as f,pr as p,st as ie,vr as ae}from"./index-B3-5kIOf.js";var oe=e(),m=t();function h(e){let t=(0,oe.c)(58),{open:h,onOpenChange:g,prTitle:_,onPrTitleChange:v,prDescription:y,onPrDescriptionChange:b,isGeneratingPRInfo:x,isLoading:S,onGeneratePRInfo:C,onCreatePR:w,currentBranch:T,createWorkspaceAfterPR:E,onCreateWorkspaceAfterPRChange:D}=e,O;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,m.jsx)(ae,{children:`Create Pull Request`}),t[0]=O):O=t[0];let k;t[1]===T?k=t[2]:(k=(0,m.jsxs)(re,{children:[O,(0,m.jsxs)(d,{children:[`Create a pull request for branch `,T]})]}),t[1]=T,t[2]=k);let A;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,m.jsx)(c,{htmlFor:`pr-title`,children:`Title`}),t[3]=A):A=t[3];let j=T||`Enter PR title...`,M;t[4]===v?M=t[5]:(M=e=>v(e.target.value),t[4]=v,t[5]=M);let N;t[6]!==x||t[7]!==_||t[8]!==j||t[9]!==M?(N=(0,m.jsxs)(`div`,{className:`grid gap-2`,children:[A,(0,m.jsx)(l,{id:`pr-title`,placeholder:j,value:_,onChange:M,disabled:x})]}),t[6]=x,t[7]=_,t[8]=j,t[9]=M,t[10]=N):N=t[10];let P;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,m.jsx)(c,{htmlFor:`pr-description`,children:`Description`}),t[11]=P):P=t[11];let F;t[12]===b?F=t[13]:(F=e=>b(e.target.value),t[12]=b,t[13]=F);let I;t[14]!==x||t[15]!==y||t[16]!==F?(I=(0,m.jsx)(o,{id:`pr-description`,placeholder:`Enter PR description...`,value:y,onChange:F,disabled:x,className:`pr-10 h-full min-h-[14rem] resize-none`}),t[14]=x,t[15]=y,t[16]=F,t[17]=I):I=t[17];let L=x||S,R;t[18]===x?R=t[19]:(R=x?(0,m.jsx)(s,{}):(0,m.jsx)(r,{className:`h-3.5 w-3.5`}),t[18]=x,t[19]=R);let z;t[20]!==C||t[21]!==L||t[22]!==R?(z=(0,m.jsx)(i,{asChild:!0,children:(0,m.jsx)(n,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:C,disabled:L,children:R})}),t[20]=C,t[21]=L,t[22]=R,t[23]=z):z=t[23];let B=x?`Generating PR description...`:`Generate PR title and description with AI`,V;t[24]===B?V=t[25]:(V=(0,m.jsx)(te,{children:B}),t[24]=B,t[25]=V);let H;t[26]!==z||t[27]!==V?(H=(0,m.jsx)(a,{children:(0,m.jsxs)(ne,{children:[z,V]})}),t[26]=z,t[27]=V,t[28]=H):H=t[28];let U;t[29]!==H||t[30]!==I?(U=(0,m.jsxs)(`div`,{className:`grid gap-2 flex-1 min-h-0`,children:[P,(0,m.jsxs)(`div`,{className:`relative flex-1 min-h-0`,children:[I,H]})]}),t[29]=H,t[30]=I,t[31]=U):U=t[31];let W;t[32]!==U||t[33]!==N?(W=(0,m.jsxs)(`div`,{className:`grid gap-4 py-4 flex-1 min-h-0`,children:[N,U]}),t[32]=U,t[33]=N,t[34]=W):W=t[34];let G;t[35]!==E||t[36]!==D?(G=(0,m.jsx)(ie,{value:E,onChange:D,ariaLabel:`Create a new branch`}),t[35]=E,t[36]=D,t[37]=G):G=t[37];let K;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,m.jsx)(c,{className:ee.labelNormal,children:`Create a new branch`}),t[38]=K):K=t[38];let q;t[39]===G?q=t[40]:(q=(0,m.jsxs)(`div`,{className:`mr-auto flex items-center gap-3`,children:[G,K]}),t[39]=G,t[40]=q);let J=S||x,Y;t[41]===S?Y=t[42]:(Y=S?(0,m.jsxs)(m.Fragment,{children:[`Create PR`,(0,m.jsx)(s,{size:`sm`})]}):`Create PR`,t[41]=S,t[42]=Y);let X;t[43]!==w||t[44]!==J||t[45]!==Y?(X=(0,m.jsx)(n,{className:`ml-auto`,onClick:w,disabled:J,children:Y}),t[43]=w,t[44]=J,t[45]=Y,t[46]=X):X=t[46];let Z;t[47]!==q||t[48]!==X?(Z=(0,m.jsxs)(u,{className:`w-full items-center gap-4`,children:[q,X]}),t[47]=q,t[48]=X,t[49]=Z):Z=t[49];let Q;t[50]!==W||t[51]!==k||t[52]!==Z?(Q=(0,m.jsxs)(f,{className:`flex max-w-2xl flex-col max-md:top-[max(1rem,env(safe-area-inset-top,0px))] max-md:max-h-[calc(100dvh-2rem)] max-md:translate-y-0 max-md:overflow-y-auto max-md:data-[state=closed]:slide-out-to-top max-md:data-[state=open]:slide-in-from-top max-md:data-[state=closed]:slide-out-to-left-0 max-md:data-[state=open]:slide-in-from-left-0 max-md:data-[state=closed]:zoom-out-100 max-md:data-[state=open]:zoom-in-100 md:h-[min(36rem,85dvh)]`,children:[k,W,Z]}),t[50]=W,t[51]=k,t[52]=Z,t[53]=Q):Q=t[53];let $;return t[54]!==g||t[55]!==h||t[56]!==Q?($=(0,m.jsx)(p,{open:h,onOpenChange:g,children:Q}),t[54]=g,t[55]=h,t[56]=Q,t[57]=$):$=t[57],$}export{h as PullRequestDialog};
@@ -1 +1 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{Dt as n}from"./dist-CTLFS4dn.js";import{t as r}from"./button-kWtLAMpB.js";import{E as i,Wt as a,pt as o}from"./dist-c_QADQ5u.js";import{_r as s,_t as c,gr as l,hr as u,mr as d,pr as f,vr as p}from"./index-u8UbWjXL.js";var m=e(),h=t();function g(e){let t=(0,m.c)(27),{open:g,onOpenChange:_,onCommitFirst:v,onStashAndPull:y,onCancel:b,isLoading:x}=e,S=x===void 0?!1:x,C;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,h.jsxs)(s,{children:[(0,h.jsxs)(p,{className:`flex items-center gap-2`,children:[(0,h.jsx)(i,{className:`h-5 w-5 text-amber-500`}),`Uncommitted Changes Detected`]}),(0,h.jsx)(u,{children:`You have uncommitted changes. You need to handle them before pulling from the remote branch.`})]}),t[0]=C):C=t[0];let w;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,h.jsx)(`div`,{className:n.bodyMuted,children:`Choose how you want to proceed:`}),t[1]=w):w=t[1];let T;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,h.jsx)(a,{className:`h-4 w-4 mr-2`}),t[2]=T):T=t[2];let E;t[3]!==S||t[4]!==v?(E=(0,h.jsxs)(r,{onClick:v,disabled:S,className:`w-full justify-start`,variant:`outline`,children:[T,`Commit changes first, then pull`]}),t[3]=S,t[4]=v,t[5]=E):E=t[5];let D;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,h.jsx)(o,{className:`h-4 w-4 mr-2`}),t[6]=D):D=t[6];let O;t[7]!==S||t[8]!==y?(O=(0,h.jsxs)(r,{onClick:y,disabled:S,className:`w-full justify-start`,variant:`outline`,children:[D,`Stash changes → Pull → Restore changes`]}),t[7]=S,t[8]=y,t[9]=O):O=t[9];let k;t[10]!==E||t[11]!==O?(k=(0,h.jsxs)(`div`,{className:`space-y-2`,children:[E,O]}),t[10]=E,t[11]=O,t[12]=k):k=t[12];let A;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,h.jsx)(`strong`,{children:`Commit first:`}),t[13]=A):A=t[13];let j;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,h.jsxs)(c,{variant:`hint`,className:`mt-4 mb-0`,children:[A,` Safe option, preserves changes in your commit history.`,(0,h.jsx)(`br`,{}),(0,h.jsx)(`strong`,{children:`Stash and pull:`}),` Temporary option, changes will be restored after pulling.`]}),t[14]=j):j=t[14];let M;t[15]===k?M=t[16]:(M=(0,h.jsx)(`div`,{className:`py-4`,children:(0,h.jsxs)(`div`,{className:`space-y-3`,children:[w,k,j]})}),t[15]=k,t[16]=M);let N;t[17]!==S||t[18]!==b?(N=(0,h.jsx)(l,{children:(0,h.jsx)(r,{variant:`ghost`,onClick:b,disabled:S,children:`Cancel`})}),t[17]=S,t[18]=b,t[19]=N):N=t[19];let P;t[20]!==M||t[21]!==N?(P=(0,h.jsxs)(d,{className:`sm:max-w-[425px]`,children:[C,M,N]}),t[20]=M,t[21]=N,t[22]=P):P=t[22];let F;return t[23]!==_||t[24]!==g||t[25]!==P?(F=(0,h.jsx)(f,{open:g,onOpenChange:_,children:P}),t[23]=_,t[24]=g,t[25]=P,t[26]=F):F=t[26],F}export{g as PullWithChangesDialog};
1
+ import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{Dt as n}from"./dist-CTLFS4dn.js";import{t as r}from"./button-kWtLAMpB.js";import{E as i,Wt as a,pt as o}from"./dist-c_QADQ5u.js";import{_r as s,gr as c,hr as l,mr as u,pr as d,vr as f,vt as p}from"./index-B3-5kIOf.js";var m=e(),h=t();function g(e){let t=(0,m.c)(27),{open:g,onOpenChange:_,onCommitFirst:v,onStashAndPull:y,onCancel:b,isLoading:x}=e,S=x===void 0?!1:x,C;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,h.jsxs)(s,{children:[(0,h.jsxs)(f,{className:`flex items-center gap-2`,children:[(0,h.jsx)(i,{className:`h-5 w-5 text-amber-500`}),`Uncommitted Changes Detected`]}),(0,h.jsx)(l,{children:`You have uncommitted changes. You need to handle them before pulling from the remote branch.`})]}),t[0]=C):C=t[0];let w;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,h.jsx)(`div`,{className:n.bodyMuted,children:`Choose how you want to proceed:`}),t[1]=w):w=t[1];let T;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,h.jsx)(a,{className:`h-4 w-4 mr-2`}),t[2]=T):T=t[2];let E;t[3]!==S||t[4]!==v?(E=(0,h.jsxs)(r,{onClick:v,disabled:S,className:`w-full justify-start`,variant:`outline`,children:[T,`Commit changes first, then pull`]}),t[3]=S,t[4]=v,t[5]=E):E=t[5];let D;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,h.jsx)(o,{className:`h-4 w-4 mr-2`}),t[6]=D):D=t[6];let O;t[7]!==S||t[8]!==y?(O=(0,h.jsxs)(r,{onClick:y,disabled:S,className:`w-full justify-start`,variant:`outline`,children:[D,`Stash changes → Pull → Restore changes`]}),t[7]=S,t[8]=y,t[9]=O):O=t[9];let k;t[10]!==E||t[11]!==O?(k=(0,h.jsxs)(`div`,{className:`space-y-2`,children:[E,O]}),t[10]=E,t[11]=O,t[12]=k):k=t[12];let A;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,h.jsx)(`strong`,{children:`Commit first:`}),t[13]=A):A=t[13];let j;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,h.jsxs)(p,{variant:`hint`,className:`mt-4 mb-0`,children:[A,` Safe option, preserves changes in your commit history.`,(0,h.jsx)(`br`,{}),(0,h.jsx)(`strong`,{children:`Stash and pull:`}),` Temporary option, changes will be restored after pulling.`]}),t[14]=j):j=t[14];let M;t[15]===k?M=t[16]:(M=(0,h.jsx)(`div`,{className:`py-4`,children:(0,h.jsxs)(`div`,{className:`space-y-3`,children:[w,k,j]})}),t[15]=k,t[16]=M);let N;t[17]!==S||t[18]!==b?(N=(0,h.jsx)(c,{children:(0,h.jsx)(r,{variant:`ghost`,onClick:b,disabled:S,children:`Cancel`})}),t[17]=S,t[18]=b,t[19]=N):N=t[19];let P;t[20]!==M||t[21]!==N?(P=(0,h.jsxs)(u,{className:`sm:max-w-[425px]`,children:[C,M,N]}),t[20]=M,t[21]=N,t[22]=P):P=t[22];let F;return t[23]!==_||t[24]!==g||t[25]!==P?(F=(0,h.jsx)(d,{open:g,onOpenChange:_,children:P}),t[23]=_,t[24]=g,t[25]=P,t[26]=F):F=t[26],F}export{g as PullWithChangesDialog};
@@ -1 +1 @@
1
- import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{t as n}from"./button-kWtLAMpB.js";import{_r as r,gr as i,hr as a,mr as o,pr as s,vr as c}from"./index-u8UbWjXL.js";var l=e(),u=t();function d(e){let t=(0,l.c)(15),{open:d,onOpenChange:f,isLoading:p,onPushAndCreatePR:m,onCancel:h}=e,g;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,u.jsxs)(r,{children:[(0,u.jsx)(c,{children:`Push Branch First`}),(0,u.jsx)(a,{children:`Your branch needs to be pushed to the remote before creating a pull request. Would you like to push it now?`})]}),t[0]=g):g=t[0];let _;t[1]!==p||t[2]!==h?(_=(0,u.jsx)(n,{variant:`outline`,onClick:h,disabled:p,children:`Cancel`}),t[1]=p,t[2]=h,t[3]=_):_=t[3];let v=p?`Pushing...`:`Push & Create PR`,y;t[4]!==p||t[5]!==m||t[6]!==v?(y=(0,u.jsx)(n,{onClick:m,disabled:p,children:v}),t[4]=p,t[5]=m,t[6]=v,t[7]=y):y=t[7];let b;t[8]!==_||t[9]!==y?(b=(0,u.jsxs)(o,{children:[g,(0,u.jsxs)(i,{children:[_,y]})]}),t[8]=_,t[9]=y,t[10]=b):b=t[10];let x;return t[11]!==f||t[12]!==d||t[13]!==b?(x=(0,u.jsx)(s,{open:d,onOpenChange:f,children:b}),t[11]=f,t[12]=d,t[13]=b,t[14]=x):x=t[14],x}export{d as PushBeforePRDialog};
1
+ import{n as e,t}from"./react-vendor-Ee0-5T4I.js";import{t as n}from"./button-kWtLAMpB.js";import{_r as r,gr as i,hr as a,mr as o,pr as s,vr as c}from"./index-B3-5kIOf.js";var l=e(),u=t();function d(e){let t=(0,l.c)(15),{open:d,onOpenChange:f,isLoading:p,onPushAndCreatePR:m,onCancel:h}=e,g;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,u.jsxs)(r,{children:[(0,u.jsx)(c,{children:`Push Branch First`}),(0,u.jsx)(a,{children:`Your branch needs to be pushed to the remote before creating a pull request. Would you like to push it now?`})]}),t[0]=g):g=t[0];let _;t[1]!==p||t[2]!==h?(_=(0,u.jsx)(n,{variant:`outline`,onClick:h,disabled:p,children:`Cancel`}),t[1]=p,t[2]=h,t[3]=_):_=t[3];let v=p?`Pushing...`:`Push & Create PR`,y;t[4]!==p||t[5]!==m||t[6]!==v?(y=(0,u.jsx)(n,{onClick:m,disabled:p,children:v}),t[4]=p,t[5]=m,t[6]=v,t[7]=y):y=t[7];let b;t[8]!==_||t[9]!==y?(b=(0,u.jsxs)(o,{children:[g,(0,u.jsxs)(i,{children:[_,y]})]}),t[8]=_,t[9]=y,t[10]=b):b=t[10];let x;return t[11]!==f||t[12]!==d||t[13]!==b?(x=(0,u.jsx)(s,{open:d,onOpenChange:f,children:b}),t[11]=f,t[12]=d,t[13]=b,t[14]=x):x=t[14],x}export{d as PushBeforePRDialog};