tarsk 0.4.28 → 0.4.29

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 (88) hide show
  1. package/dist/index.js +29 -25
  2. package/dist/public/assets/{account-view-DcpSNB3N.js → account-view-YvC0mymF.js} +1 -1
  3. package/dist/public/assets/alert-dialog-BFhUZsPe.js +1 -0
  4. package/dist/public/assets/api-DSvSyBH5.js +1 -0
  5. package/dist/public/assets/{browser-tab-CiAz6nc1.js → browser-tab-CCXMlmPO.js} +1 -1
  6. package/dist/public/assets/chat-input-container-VwmGKJFJ.js +21 -0
  7. package/dist/public/assets/codicon-ngg6Pgfi.ttf +0 -0
  8. package/dist/public/assets/context-menu-B6K8j1ha.js +1 -0
  9. package/dist/public/assets/conversation-history-view-DrrLyMbg.js +1 -0
  10. package/dist/public/assets/css.worker-DyDu5ynT.js +89 -0
  11. package/dist/public/assets/{dialogs-config-vkfELnGl.js → dialogs-config-B91VQpxo.js} +3 -3
  12. package/dist/public/assets/diff-view-C09yOc5d.js +3 -0
  13. package/dist/public/assets/explorer-tab-view-B1DukGdo.js +2 -0
  14. package/dist/public/assets/explorer-tree-DCeud6YI.js +1 -0
  15. package/dist/public/assets/{explorer-view-C0KcZ8NQ.js → explorer-view-BCJqE1-z.js} +1 -1
  16. package/dist/public/assets/history-view-Dj4NiScy.js +1 -0
  17. package/dist/public/assets/html.worker-IWNXhnIC.js +502 -0
  18. package/dist/public/assets/{index-Bdde81Uo.css → index-7TFkb0ll.css} +1 -1
  19. package/dist/public/assets/index-BLCecayZ.js +29 -0
  20. package/dist/public/assets/json.worker-c4h5s80L.js +58 -0
  21. package/dist/public/assets/markdown-renderer-9nzN0Pk3.js +10 -0
  22. package/dist/public/assets/mcp-server-card-BSw_FlEC.js +1 -0
  23. package/dist/public/assets/monaco-BGyhgQtx.js +1209 -0
  24. package/dist/public/assets/monaco-Br_kD0ds.css +1 -0
  25. package/dist/public/assets/onboarding-ClUE_I5q.js +1 -0
  26. package/dist/public/assets/onboarding-dialog-C2jig8mT.js +1 -0
  27. package/dist/public/assets/page-toolbar-DnVFnCgq.js +1 -0
  28. package/dist/public/assets/{project-settings-view-CxD9JZoB.js → project-settings-view-DWn0ty7b.js} +1 -1
  29. package/dist/public/assets/providers-list-view-B0DqNJYK.js +1 -0
  30. package/dist/public/assets/radio-group-CM_Wwam0.js +1 -0
  31. package/dist/public/assets/react-vendor-nPkCWaAR.js +22 -0
  32. package/dist/public/assets/{resizable-dToeUeVD.js → resizable-CEv7JjTI.js} +1 -1
  33. package/dist/public/assets/{run-stop-button-DZ4JFwdL.js → run-stop-button-CrjPMC0m.js} +2 -2
  34. package/dist/public/assets/settings-general-view-CwQYmnI2.js +1 -0
  35. package/dist/public/assets/{settings-instructions-view-DWzAH2yN.js → settings-instructions-view-C23spY9Y.js} +1 -1
  36. package/dist/public/assets/{settings-mcp-servers-view-q6gGMMVX.js → settings-mcp-servers-view-ZHar6YbE.js} +4 -4
  37. package/dist/public/assets/{settings-models-view-BDDFQWWC.js → settings-models-view-Cg6WQ4cy.js} +1 -1
  38. package/dist/public/assets/settings-rules-view-zAx5JL4w.js +8 -0
  39. package/dist/public/assets/{settings-skills-view-DV40_L1o.js → settings-skills-view-D60tD-OE.js} +2 -2
  40. package/dist/public/assets/{settings-slash-commands-view-BEk3BgOY.js → settings-slash-commands-view-DR-pzulT.js} +1 -1
  41. package/dist/public/assets/settings-subagents-view-InXmwmw9.js +2 -0
  42. package/dist/public/assets/settings-view-DLRDBuwH.js +2 -0
  43. package/dist/public/assets/side-panel-container-CO3qgRvc.js +2 -0
  44. package/dist/public/assets/skeleton-CXoVAzC1.js +1 -0
  45. package/dist/public/assets/standard-list-item-DyALhVYe.js +1 -0
  46. package/dist/public/assets/store-D28g9VUj.js +4 -0
  47. package/dist/public/assets/{tab-context-DWD20a4z.js → tab-context-C3z7YU59.js} +1 -1
  48. package/dist/public/assets/tabs-sXgL2DZz.js +1 -0
  49. package/dist/public/assets/{terminal-panel-CkIe2d2K.js → terminal-panel-EifoA6G0.js} +2 -2
  50. package/dist/public/assets/textarea-Bp3p1-25.js +1 -0
  51. package/dist/public/assets/todos-view-DRL4px6A.js +1 -0
  52. package/dist/public/assets/ts.worker-BwM5Ha3L.js +67719 -0
  53. package/dist/public/assets/use-font-size-BCtvz0bm.js +1 -0
  54. package/dist/public/assets/{use-toast-yY7qQuQP.js → use-toast-BZ79E_dX.js} +1 -1
  55. package/dist/public/assets/{utils-BKss67Vg.js → utils-Bhu11Tpg.js} +1 -1
  56. package/dist/public/assets/{whisper-wasm-B7iuRPFr.js → whisper-wasm-C_Ot631g.js} +1 -1
  57. package/dist/public/index.html +24 -22
  58. package/package.json +1 -1
  59. package/dist/public/assets/alert-dialog-CQRWdGnn.js +0 -1
  60. package/dist/public/assets/api-CH5gAPs5.js +0 -1
  61. package/dist/public/assets/chat-input-container-C6U_WFFu.js +0 -21
  62. package/dist/public/assets/context-menu-A9p22S7d.js +0 -1
  63. package/dist/public/assets/conversation-history-view-CD_uVRNY.js +0 -1
  64. package/dist/public/assets/diff-view-CjbcDB6m.js +0 -3
  65. package/dist/public/assets/explorer-tab-view-BfycKUUW.js +0 -2
  66. package/dist/public/assets/explorer-tree-DTFYhczJ.js +0 -1
  67. package/dist/public/assets/history-view-Dn0hQIKU.js +0 -1
  68. package/dist/public/assets/index-DKQVo4Vz.js +0 -29
  69. package/dist/public/assets/markdown-renderer-CNuyXHcy.js +0 -10
  70. package/dist/public/assets/mcp-server-card-DBEBe3Qh.js +0 -1
  71. package/dist/public/assets/monaco-SWcefg0q.js +0 -11
  72. package/dist/public/assets/onboarding-DslO5AS6.js +0 -1
  73. package/dist/public/assets/onboarding-dialog-CE-GhoDt.js +0 -1
  74. package/dist/public/assets/page-toolbar-CloU_Kvo.js +0 -1
  75. package/dist/public/assets/providers-list-view-CNxVBJlM.js +0 -1
  76. package/dist/public/assets/radio-group-Co0Lg6se.js +0 -1
  77. package/dist/public/assets/react-vendor-DyE9sO8V.js +0 -22
  78. package/dist/public/assets/settings-rules-view-DsEwgDFr.js +0 -8
  79. package/dist/public/assets/settings-subagents-view-d3P4ylDX.js +0 -2
  80. package/dist/public/assets/settings-view-ClTMPafQ.js +0 -2
  81. package/dist/public/assets/side-panel-container-BAYoMt7B.js +0 -2
  82. package/dist/public/assets/skeleton-DveUQR4w.js +0 -1
  83. package/dist/public/assets/standard-list-item-BLlgm1qW.js +0 -1
  84. package/dist/public/assets/store-BcwWHqYr.js +0 -4
  85. package/dist/public/assets/tabs-CgvpwOBj.js +0 -1
  86. package/dist/public/assets/textarea-C2UIAa7y.js +0 -1
  87. package/dist/public/assets/todos-view-C-awG1dZ.js +0 -1
  88. /package/dist/public/assets/{dist-Bjt_i1zi.js → dist-D5DgwfYL.js} +0 -0
@@ -1,8 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Ar as t,B as n,Bn as r,Ct as i,Gn as a,Kn as o,Nt as s,Rn as c,Sa as l,Ti as u,U as d,Vn as f,Wi as p,Wr as m,Zn as h,ba as g,ca as _,ii as v,n as ee,qt as te,r as ne,ri as y,un as b,vt as x}from"./dialogs-config-vkfELnGl.js";import{n as S,r as C}from"./react-vendor-DyE9sO8V.js";import{a as re}from"./store-BcwWHqYr.js";import{t as w}from"./textarea-C2UIAa7y.js";import{t as T}from"./use-toast-yY7qQuQP.js";import{a as ie,c as E,i as D,n as O,o as k,r as A,s as j,t as M}from"./alert-dialog-CQRWdGnn.js";import{n as N}from"./tab-context-DWD20a4z.js";import{t as P}from"./skeleton-DveUQR4w.js";import{t as F}from"./mcp-server-card-DBEBe3Qh.js";import{n as I,t as L}from"./radio-group-Co0Lg6se.js";var R=g(),z=e(l(),1),B=t(),V=z.forwardRef((e,t)=>{let n=(0,R.c)(10),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=h(`peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input`,r),n[3]=r,n[4]=a);let o;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,B.jsx)(C,{className:h(`pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0`)}),n[5]=o):o=n[5];let s;return n[6]!==i||n[7]!==t||n[8]!==a?(s=(0,B.jsx)(S,{className:a,...i,ref:t,children:o}),n[6]=i,n[7]=t,n[8]=a,n[9]=s):s=n[9],s});V.displayName=S.displayName;function H({threadId:e,onRuleCreated:t}){let[n,i]=(0,z.useState)(``),[a,o]=(0,z.useState)(``),[s,l]=(0,z.useState)(!1),[d,p]=(0,z.useState)(`local`),[m,h]=(0,z.useState)(!1),g=n.toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/-+/g,`-`).replace(/^-|-$/g,``),v=g.length>0&&g.length<=64;return e?(0,B.jsxs)(`div`,{className:`max-w-2xl mx-auto p-6`,children:[(0,B.jsxs)(`div`,{className:`mb-6`,children:[(0,B.jsx)(`h1`,{className:`text-2xl font-bold`,children:`Add Rule`}),(0,B.jsx)(`p`,{className:`text-muted-foreground`,children:`Create a new agent rule. The rule will be saved as a .md file in the .agents/rules folder.`})]}),(0,B.jsxs)(`div`,{className:`space-y-6`,children:[(0,B.jsxs)(`div`,{className:`space-y-2`,children:[(0,B.jsx)(c,{htmlFor:`ruleName`,children:`Rule Name`}),(0,B.jsx)(r,{id:`ruleName`,value:n,onChange:e=>i(e.target.value),placeholder:`e.g. Code Style Guide`,disabled:m}),n&&(0,B.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`File name: `,(0,B.jsxs)(`span`,{className:`font-mono`,children:[g||`...`,`.md`]})]})]}),(0,B.jsxs)(`div`,{className:`space-y-2`,children:[(0,B.jsx)(c,{htmlFor:`ruleDescription`,children:`Description`}),(0,B.jsx)(w,{id:`ruleDescription`,value:a,onChange:e=>o(e.target.value),placeholder:`Describe when Tarsk should apply this rule...`,className:`resize-none min-h-[120px]`,disabled:m})]}),(0,B.jsxs)(`div`,{className:`space-y-2`,children:[(0,B.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,B.jsx)(c,{htmlFor:`alwaysApply`,children:`Always Apply`}),(0,B.jsx)(V,{id:`alwaysApply`,checked:s,onCheckedChange:l,disabled:m})]}),(0,B.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:s?`This rule will be automatically added to context for all conversations.`:`Only the rule description will be added to context, allowing the agent to read the rule file when needed.`})]}),(0,B.jsxs)(`div`,{className:`space-y-2`,children:[(0,B.jsx)(c,{children:`Scope`}),(0,B.jsxs)(L,{value:d,onValueChange:e=>p(e),className:`flex gap-4`,disabled:m,children:[(0,B.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,B.jsx)(I,{value:`local`,id:`scope-local`}),(0,B.jsx)(c,{htmlFor:`scope-local`,className:`font-normal cursor-pointer`,children:`Local (this project)`})]}),(0,B.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,B.jsx)(I,{value:`global`,id:`scope-global`,disabled:!0}),(0,B.jsx)(c,{htmlFor:`scope-global`,className:`font-normal cursor-pointer text-muted-foreground`,children:`Global (coming soon)`})]})]}),(0,B.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:d===`local`?`This rule will only be available for this project.`:`This rule will be available across all projects (coming soon).`})]}),(0,B.jsx)(`div`,{className:`border-t pt-4 flex justify-end`,children:(0,B.jsx)(f,{onClick:async()=>{if(!(!v||!e)){h(!0);try{let n=`---
2
- description: ${a.trim()}
3
- alwaysApply: ${s}
4
- ---
5
-
6
- Place your rule instructions here as markdown.
7
- `;await b(e,`.agents/rules/${g}.md`,n),T({title:`Rule created`,description:`Rule '${g}' was created successfully.`}),i(``),o(``),l(!1),p(`local`),t?.(g)}catch(e){T({title:`Error`,description:e instanceof Error?e.message:`Failed to create rule`,variant:`destructive`})}finally{h(!1)}}},disabled:!v||!a.trim()||m,children:m?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(u,{className:`mr-2 h-4 w-4 animate-spin`}),`Creating...`]}):(0,B.jsxs)(B.Fragment,{children:[`Continue`,(0,B.jsx)(_,{className:`ml-2 h-4 w-4`})]})})})]})]}):(0,B.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,B.jsxs)(`div`,{className:`text-center`,children:[(0,B.jsx)(`h2`,{className:`text-lg font-semibold text-muted-foreground mb-2`,children:`No Thread Selected`}),(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Please select a thread to add a rule.`})]})})}function U(e){let t=[];for(let n of e)n.type===`file`&&n.path.startsWith(`.agents/rules/`)&&t.push(n),n.children&&n.children.length>0&&t.push(...U(n.children));return t}function W(){let{state:e}=re(),{selectedProjectId:t,selectedThreadId:c}=e,{setActiveMainTab:l,setPendingExplorerPath:u,triggerExplorerRefresh:h,setExplorerClearPath:g}=N(),[_,S]=(0,z.useState)([]),[C,w]=(0,z.useState)(!1),[I,L]=(0,z.useState)(!1),[R,V]=(0,z.useState)(null),[W,G]=(0,z.useState)(!1),[K,q]=(0,z.useState)([]),[J,Y]=(0,z.useState)(new Set),[X,Z]=(0,z.useState)(``),Q=(0,z.useCallback)(async()=>{if(t){w(!0);try{let e=U(await i(t));if(c)try{let t=U(await s(c)),n=new Set(e.map(e=>e.path));for(let r of t)n.has(r.path)||e.push(r)}catch{}S(e),Y(new Set(e.map(e=>e.path)))}catch{S([]),Y(new Set)}finally{w(!1)}}},[t,c]);(0,z.useEffect)(()=>{Q()},[Q]),(0,z.useEffect)(()=>{x().then(q).catch(()=>q([]))},[]);let ae=(0,z.useCallback)(async e=>{if(!t)return;let r=e.name,i=e.path;G(!0);try{try{await n(t,i)}catch{if(c)await d(c,i);else throw Error(`No thread selected to delete from`)}g(i),h(),Y(e=>{let t=new Set(e);return t.delete(i),t}),T({title:`Rule removed`,description:r}),V(null),await Q()}catch(e){T({title:`Error`,description:e instanceof Error?e.message:`Failed to remove rule`,variant:`destructive`})}finally{G(!1)}},[t,c,Q,h,g]),oe=(0,z.useCallback)(e=>{u(e),l(`explorer`)},[u,l]),se=(0,z.useCallback)(async e=>{let t=`.agents/rules/${e.name}.md`;if(!(!c||J.has(t)))try{e.gitHubRepo&&e.gitHubFolder?await te(c,e.gitHubRepo,e.gitHubFolder,`.agents/rules`):await b(c,t,[`---`,`description: ${e.description}`,`alwaysApply: ${e.alwaysApply??!1}`,`---`,``,e.content].join(`
8
- `)),Y(e=>new Set(e).add(t)),h(),Q(),T({title:`Rule installed`,description:e.name})}catch(e){T({title:`Error`,description:e instanceof Error?e.message:`Failed to install rule`,variant:`destructive`})}},[c,J,h,Q]),$=X.trim()?K.filter(e=>e.name.toLowerCase().includes(X.toLowerCase())||e.description.toLowerCase().includes(X.toLowerCase())):K;return t?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,B.jsxs)(`div`,{className:`max-w-4xl mx-auto p-6`,children:[(0,B.jsxs)(`div`,{className:`flex items-center justify-between mb-6`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`h1`,{className:`text-2xl font-bold`,children:`Rules`}),(0,B.jsx)(`p`,{className:`text-muted-foreground`,children:`Manage agent rules. Rules define coding standards and project-wide guidelines.`})]}),(0,B.jsx)(f,{onClick:()=>L(!0),disabled:!c,children:`Add Rule`})]}),!c&&(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground bg-muted rounded-md px-3 py-2 mb-4`,children:`Select a thread to add rules to your project.`}),(0,B.jsx)(`h2`,{className:`text-lg font-semibold mb-3`,children:`Installed Rules`}),C?(0,B.jsxs)(`div`,{className:`space-y-3`,children:[(0,B.jsx)(P,{className:`h-20 w-full`}),(0,B.jsx)(P,{className:`h-20 w-full`})]}):_.length===0?(0,B.jsxs)(`div`,{className:`text-center py-12 border border-dashed rounded-lg mb-8`,children:[(0,B.jsx)(v,{className:`mx-auto h-10 w-10 text-muted-foreground/50 mb-3`}),(0,B.jsx)(`h3`,{className:`text-base font-semibold text-muted-foreground mb-1`,children:`No rules installed`}),(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground mb-3`,children:`Add rules to enforce coding standards and project conventions.`})]}):(0,B.jsx)(`div`,{className:`space-y-3 mb-8`,children:_.map(e=>(0,B.jsx)(ee,{children:(0,B.jsxs)(ne,{className:`flex items-center justify-between p-4`,children:[(0,B.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,B.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,B.jsx)(v,{className:`h-4 w-4 text-muted-foreground flex-shrink-0`}),(0,B.jsx)(`h3`,{className:`font-medium truncate`,children:e.name})]}),(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1 truncate font-mono`,children:e.path})]}),(0,B.jsxs)(`div`,{className:`flex items-center gap-1 ml-4 flex-shrink-0`,children:[(0,B.jsx)(f,{variant:`ghost`,size:`icon-sm`,onClick:()=>oe(e.path),title:`View in explorer`,children:(0,B.jsx)(p,{className:`h-4 w-4`})}),(0,B.jsx)(f,{variant:`ghost`,size:`icon-sm`,onClick:()=>V(e),title:`Delete rule`,children:(0,B.jsx)(m,{className:`h-4 w-4 text-destructive`})})]})]})},e.id))}),(0,B.jsx)(`div`,{className:`flex items-center justify-between mb-3`,children:(0,B.jsx)(`h2`,{className:`text-lg font-semibold`,children:`Available Rules`})}),!c&&(0,B.jsx)(`p`,{className:`text-xs text-muted-foreground bg-muted rounded-md px-3 py-2 mb-4`,children:`Select a thread to install rules into your project.`}),(0,B.jsxs)(`div`,{className:`relative mb-4`,children:[(0,B.jsx)(y,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none`}),(0,B.jsx)(r,{placeholder:`Search available rules...`,value:X,onChange:e=>Z(e.target.value),className:`pl-8`})]}),K.length===0?(0,B.jsxs)(`div`,{className:`space-y-3`,children:[(0,B.jsx)(P,{className:`h-20 w-full`}),(0,B.jsx)(P,{className:`h-20 w-full`})]}):$.length===0?(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground text-center py-8`,children:X.trim()?`No results for "${X}"`:`No available rules found.`}):(0,B.jsx)(`div`,{className:`grid gap-2`,style:{gridTemplateColumns:`repeat(auto-fill, minmax(min(220px, 100%), 1fr))`},children:$.map(e=>{let t=`.agents/rules/${e.name}.md`,n=J.has(t);return(0,B.jsx)(F,{name:e.name,description:e.description,installed:n,onClick:()=>{n||se(e)},showInstalledControls:!1},e.id)})})]})}),(0,B.jsx)(a,{open:I,onOpenChange:L,children:(0,B.jsx)(o,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,B.jsx)(H,{threadId:c,onRuleCreated:()=>{L(!1),Q(),h()}})})}),(0,B.jsx)(M,{open:R!==null,onOpenChange:e=>!e&&V(null),children:(0,B.jsxs)(D,{children:[(0,B.jsxs)(j,{children:[(0,B.jsx)(E,{children:`Delete Rule`}),(0,B.jsxs)(ie,{children:[`Are you sure you want to delete the rule "`,R?.name,`"? This action cannot be undone.`]})]}),(0,B.jsxs)(k,{children:[(0,B.jsx)(A,{children:`Cancel`}),(0,B.jsx)(O,{onClick:()=>R&&void ae(R),disabled:W,className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:W?`Deleting...`:`Delete`})]})]})})]}):(0,B.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,B.jsx)(`p`,{className:`text-muted-foreground`,children:`Select a project to manage rules.`})})}export{W as SettingsRulesView,W as default};
@@ -1,2 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Ar as t,B as n,Bn as r,Ct as i,F as a,Gn as o,Kn as s,Nt as c,Rn as l,Sa as u,Ti as d,U as f,Vn as p,Wi as m,Wr as h,ca as g,gt as _,n as v,qt as y,r as b,ri as x,un as ee,zr as S}from"./dialogs-config-vkfELnGl.js";import{a as C}from"./store-BcwWHqYr.js";import{t as w}from"./textarea-C2UIAa7y.js";import{t as T}from"./use-toast-yY7qQuQP.js";import{a as E,c as D,i as O,n as k,o as A,r as j,s as te,t as ne}from"./alert-dialog-CQRWdGnn.js";import{n as re}from"./tab-context-DWD20a4z.js";import{t as M}from"./skeleton-DveUQR4w.js";import{t as N}from"./mcp-server-card-DBEBe3Qh.js";import{n as P,t as F}from"./radio-group-Co0Lg6se.js";var I=e(u(),1),L=t();function R({threadId:e,onAgentCreated:t}){let[n,i]=(0,I.useState)(``),[o,s]=(0,I.useState)(``),[c,u]=(0,I.useState)(``),[f,m]=(0,I.useState)(`local`),[h,_]=(0,I.useState)(!1),v=n.toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/-+/g,`-`).replace(/^-|-$/g,``),y=v.length>0&&v.length<=64;return e?(0,L.jsxs)(`div`,{className:`max-w-2xl mx-auto p-6`,children:[(0,L.jsxs)(`div`,{className:`mb-6`,children:[(0,L.jsx)(`h1`,{className:`text-2xl font-bold`,children:`Add Agent`}),(0,L.jsx)(`p`,{className:`text-muted-foreground`,children:`Create a new subagent. The agent will be saved as an AGENT.md file in the .agents/agents folder.`})]}),(0,L.jsxs)(`div`,{className:`space-y-6`,children:[(0,L.jsxs)(`div`,{className:`space-y-2`,children:[(0,L.jsx)(l,{htmlFor:`agentName`,children:`Agent Name`}),(0,L.jsx)(r,{id:`agentName`,value:n,onChange:e=>i(e.target.value),placeholder:`e.g. Security Reviewer`,disabled:h}),n&&(0,L.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Folder name: `,(0,L.jsx)(`span`,{className:`font-mono`,children:v||`...`})]})]}),(0,L.jsxs)(`div`,{className:`space-y-2`,children:[(0,L.jsx)(l,{htmlFor:`agentDescription`,children:`Description`}),(0,L.jsx)(w,{id:`agentDescription`,value:o,onChange:e=>s(e.target.value),placeholder:`Describe what this agent does and when it should be invoked`,className:`resize-none min-h-[120px]`,disabled:h})]}),(0,L.jsxs)(`div`,{className:`space-y-2`,children:[(0,L.jsx)(l,{htmlFor:`agentTools`,children:`Allowed Tools (optional)`}),(0,L.jsx)(r,{id:`agentTools`,value:c,onChange:e=>u(e.target.value),placeholder:`e.g. read grep glob`,disabled:h}),(0,L.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Space-separated list of tools this agent can use. Leave empty to allow all coding tools.`})]}),(0,L.jsxs)(`div`,{className:`space-y-2`,children:[(0,L.jsx)(l,{children:`Scope`}),(0,L.jsxs)(F,{value:f,onValueChange:e=>m(e),className:`flex gap-4`,disabled:h,children:[(0,L.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,L.jsx)(P,{value:`local`,id:`scope-local`}),(0,L.jsx)(l,{htmlFor:`scope-local`,className:`font-normal cursor-pointer`,children:`Local (this project)`})]}),(0,L.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,L.jsx)(P,{value:`global`,id:`scope-global`,disabled:!0}),(0,L.jsx)(l,{htmlFor:`scope-global`,className:`font-normal cursor-pointer text-muted-foreground`,children:`Global (coming soon)`})]})]}),(0,L.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:f===`local`?`This agent will only be available for this project.`:`This agent will be available across all projects (coming soon).`})]}),(0,L.jsx)(`div`,{className:`border-t pt-4 flex justify-end`,children:(0,L.jsx)(p,{onClick:async()=>{if(!(!y||!o.trim()||!e)){_(!0);try{let n=await a(e,v,o.trim(),c.trim()||void 0);T({title:`Agent created`,description:`Agent '${v}' was created successfully.`}),i(``),s(``),u(``),m(`local`),t?.(n.path,`AGENT.md`)}catch(e){T({title:`Error`,description:e instanceof Error?e.message:`Failed to create agent`,variant:`destructive`})}finally{_(!1)}}},disabled:!y||!o.trim()||h,children:h?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(d,{className:`mr-2 h-4 w-4 animate-spin`}),`Creating...`]}):(0,L.jsxs)(L.Fragment,{children:[`Continue`,(0,L.jsx)(g,{className:`ml-2 h-4 w-4`})]})})})]})]}):(0,L.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,L.jsxs)(`div`,{className:`text-center`,children:[(0,L.jsx)(`h2`,{className:`text-lg font-semibold text-muted-foreground mb-2`,children:`No Thread Selected`}),(0,L.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Please select a thread to add an agent.`})]})})}function z(e){let t=[];for(let n of e)n.path.startsWith(`.agents/agents/`)&&n.type===`folder`&&t.push(n),n.children&&n.children.length>0&&t.push(...z(n.children));return t}function B(){let{state:e}=C(),{selectedProjectId:t,selectedThreadId:a}=e,{setActiveMainTab:l,setPendingExplorerPath:u,triggerExplorerRefresh:d,setExplorerClearPath:g}=re(),[w,P]=(0,I.useState)([]),[F,B]=(0,I.useState)(!1),[V,H]=(0,I.useState)(!1),[U,W]=(0,I.useState)(null),[G,K]=(0,I.useState)(!1),[q,J]=(0,I.useState)([]),[Y,X]=(0,I.useState)(new Set),[Z,ie]=(0,I.useState)(``),Q=(0,I.useCallback)(async()=>{if(t){B(!0);try{let e=z(await i(t));if(a)try{let t=z(await c(a)),n=new Set(e.map(e=>e.path));for(let r of t)n.has(r.path)||e.push(r)}catch{}P(e),X(new Set(e.map(e=>`${e.path}/AGENT.md`)))}catch{P([]),X(new Set)}finally{B(!1)}}},[t,a]);(0,I.useEffect)(()=>{Q()},[Q]),(0,I.useEffect)(()=>{_().then(J).catch(()=>J([]))},[]);let ae=(0,I.useCallback)(async e=>{if(!t)return;let r=e.name,i=e.path;K(!0);try{try{await n(t,i)}catch{if(a)await f(a,i);else throw Error(`No thread selected to delete from`)}g(i),d(),X(e=>{let t=new Set(e);return t.delete(`${i}/AGENT.md`),t}),T({title:`Agent removed`,description:r}),W(null),await Q()}catch(e){T({title:`Error`,description:e instanceof Error?e.message:`Failed to remove agent`,variant:`destructive`})}finally{K(!1)}},[t,a,Q,d,g]),oe=(0,I.useCallback)(e=>{u(`${e}/AGENT.md`),l(`explorer`)},[u,l]),se=(0,I.useCallback)(async e=>{let t=`.agents/agents/${e.id}/AGENT.md`;if(!(!a||Y.has(t)))try{if(e.gitHubRepo&&e.gitHubFolder)await y(a,e.gitHubRepo,e.gitHubFolder,`.agents/agents/${e.id}`);else{let n=[`---`,`name: ${e.id}`,`description: ${e.description}`];e.tools&&n.push(`tools: ${e.tools}`),n.push(`---`,``,e.systemPrompt),await ee(a,t,n.join(`
2
- `))}X(e=>new Set(e).add(t)),d(),Q(),T({title:`Agent installed`,description:e.name})}catch(e){T({title:`Error`,description:e instanceof Error?e.message:`Failed to install agent`,variant:`destructive`})}},[a,Y,d,Q]),$=Z.trim()?q.filter(e=>e.name.toLowerCase().includes(Z.toLowerCase())||e.description.toLowerCase().includes(Z.toLowerCase())):q;return t?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,L.jsxs)(`div`,{className:`max-w-4xl mx-auto p-6`,children:[(0,L.jsxs)(`div`,{className:`flex items-center justify-between mb-6`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`h1`,{className:`text-2xl font-bold`,children:`Subagents`}),(0,L.jsx)(`p`,{className:`text-muted-foreground`,children:`Manage subagents. Subagents are specialized agents for focused tasks.`})]}),(0,L.jsx)(p,{onClick:()=>H(!0),disabled:!a,children:`Add Subagent`})]}),!a&&(0,L.jsx)(`p`,{className:`text-sm text-muted-foreground bg-muted rounded-md px-3 py-2 mb-4`,children:`Select a thread to add subagents to your project.`}),(0,L.jsx)(`h2`,{className:`text-lg font-semibold mb-3`,children:`Installed Subagents`}),F?(0,L.jsxs)(`div`,{className:`space-y-3`,children:[(0,L.jsx)(M,{className:`h-20 w-full`}),(0,L.jsx)(M,{className:`h-20 w-full`})]}):w.length===0?(0,L.jsxs)(`div`,{className:`text-center py-12 border border-dashed rounded-lg mb-8`,children:[(0,L.jsx)(S,{className:`mx-auto h-10 w-10 text-muted-foreground/50 mb-3`}),(0,L.jsx)(`h3`,{className:`text-base font-semibold text-muted-foreground mb-1`,children:`No subagents installed`}),(0,L.jsx)(`p`,{className:`text-sm text-muted-foreground mb-3`,children:`Add subagents for specialized, focused tasks.`})]}):(0,L.jsx)(`div`,{className:`space-y-3 mb-8`,children:w.map(e=>(0,L.jsx)(v,{children:(0,L.jsxs)(b,{className:`flex items-center justify-between p-4`,children:[(0,L.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,L.jsx)(S,{className:`h-4 w-4 text-muted-foreground flex-shrink-0`}),(0,L.jsx)(`h3`,{className:`font-medium truncate`,children:e.name})]}),(0,L.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1 truncate font-mono`,children:e.path})]}),(0,L.jsxs)(`div`,{className:`flex items-center gap-1 ml-4 flex-shrink-0`,children:[(0,L.jsx)(p,{variant:`ghost`,size:`icon-sm`,onClick:()=>oe(e.path),title:`View in explorer`,children:(0,L.jsx)(m,{className:`h-4 w-4`})}),(0,L.jsx)(p,{variant:`ghost`,size:`icon-sm`,onClick:()=>W(e),title:`Delete agent`,children:(0,L.jsx)(h,{className:`h-4 w-4 text-destructive`})})]})]})},e.id))}),(0,L.jsx)(`div`,{className:`flex items-center justify-between mb-3`,children:(0,L.jsx)(`h2`,{className:`text-lg font-semibold`,children:`Available Subagents`})}),!a&&(0,L.jsx)(`p`,{className:`text-xs text-muted-foreground bg-muted rounded-md px-3 py-2 mb-4`,children:`Select a thread to install subagents into your project.`}),(0,L.jsxs)(`div`,{className:`relative mb-4`,children:[(0,L.jsx)(x,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none`}),(0,L.jsx)(r,{placeholder:`Search available subagents...`,value:Z,onChange:e=>ie(e.target.value),className:`pl-8`})]}),q.length===0?(0,L.jsxs)(`div`,{className:`space-y-3`,children:[(0,L.jsx)(M,{className:`h-20 w-full`}),(0,L.jsx)(M,{className:`h-20 w-full`})]}):$.length===0?(0,L.jsx)(`p`,{className:`text-sm text-muted-foreground text-center py-8`,children:Z.trim()?`No results for "${Z}"`:`No available subagents found.`}):(0,L.jsx)(`div`,{className:`grid gap-2`,style:{gridTemplateColumns:`repeat(auto-fill, minmax(min(220px, 100%), 1fr))`},children:$.map(e=>{let t=`.agents/agents/${e.id}/AGENT.md`,n=Y.has(t);return(0,L.jsx)(N,{name:e.name,description:e.description,installed:n,onClick:()=>{n||se(e)},showInstalledControls:!1},e.id)})})]})}),(0,L.jsx)(o,{open:V,onOpenChange:H,children:(0,L.jsx)(s,{className:`max-w-2xl max-h-[90vh] overflow-y-auto p-0`,children:(0,L.jsx)(R,{threadId:a,onAgentCreated:()=>{H(!1),Q(),d()}})})}),(0,L.jsx)(ne,{open:U!==null,onOpenChange:e=>!e&&W(null),children:(0,L.jsxs)(O,{children:[(0,L.jsxs)(te,{children:[(0,L.jsx)(D,{children:`Delete Subagent`}),(0,L.jsxs)(E,{children:[`Are you sure you want to delete the subagent "`,U?.name,`"? This action cannot be undone.`]})]}),(0,L.jsxs)(A,{children:[(0,L.jsx)(j,{children:`Cancel`}),(0,L.jsx)(k,{onClick:()=>U&&void ae(U),disabled:G,className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:G?`Deleting...`:`Delete`})]})]})})]}):(0,L.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,L.jsx)(`p`,{className:`text-muted-foreground`,children:`Select a project to manage subagents.`})})}export{B as SettingsSubagentsView,B as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/providers-list-view-CNxVBJlM.js","assets/rolldown-runtime-B1FJdls4.js","assets/history-view-Dn0hQIKU.js","assets/dialogs-config-vkfELnGl.js","assets/onboarding-DslO5AS6.js","assets/skeleton-DveUQR4w.js","assets/tabs-CgvpwOBj.js","assets/react-vendor-DyE9sO8V.js","assets/monaco-SWcefg0q.js","assets/settings-models-view-BDDFQWWC.js","assets/settings-mcp-servers-view-q6gGMMVX.js","assets/mcp-server-card-DBEBe3Qh.js","assets/alert-dialog-CQRWdGnn.js","assets/textarea-C2UIAa7y.js","assets/use-toast-yY7qQuQP.js","assets/store-BcwWHqYr.js","assets/tab-context-DWD20a4z.js","assets/settings-skills-view-DV40_L1o.js","assets/radio-group-Co0Lg6se.js","assets/settings-rules-view-DsEwgDFr.js","assets/settings-slash-commands-view-BEk3BgOY.js","assets/settings-subagents-view-d3P4ylDX.js","assets/settings-instructions-view-DWzAH2yN.js","assets/account-view-DcpSNB3N.js","assets/conversation-history-view-CD_uVRNY.js"])))=>i.map(i=>d[i]);
2
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Ar as t,Br as n,Kr as r,Qi as i,Rr as a,Sa as o,Zn as s,ba as c,fa as l,ha as u,ii as d,ji as f,ni as p,tn as m,zr as h}from"./dialogs-config-vkfELnGl.js";import{bt as g,t as _,vt as v,xt as y,yt as b}from"./react-vendor-DyE9sO8V.js";import{a as x}from"./store-BcwWHqYr.js";import{t as S}from"./standard-list-item-BLlgm1qW.js";import{t as C}from"./side-panel-container-BAYoMt7B.js";import{n as w,r as T,t as E}from"./resizable-dToeUeVD.js";var D=c(),O=e(o(),1),k=t(),A=(0,O.forwardRef)(function(e,t){let n=(0,D.c)(20),{sidebar:r,children:i,defaultSidebarSize:a,minSidebarSize:o,maxSidebarSize:s,minContentSize:c,collapsible:l,collapsedSize:u,className:d,onCollapse:f,onExpand:p}=e,m=a===void 0?25:a,h=o===void 0?20:o,g=s===void 0?30:s,_=c===void 0?40:c,v=l===void 0?!1:l,y=u===void 0?0:u,b=`h-full ${d===void 0?``:d}`,x;n[0]!==y||n[1]!==v||n[2]!==m||n[3]!==g||n[4]!==h||n[5]!==f||n[6]!==p||n[7]!==t||n[8]!==r?(x=(0,k.jsx)(w,{ref:t,defaultSize:m,minSize:h,maxSize:g,collapsible:v,collapsedSize:y,onCollapse:f,onExpand:p,className:`border-r border-transparent`,children:r}),n[0]=y,n[1]=v,n[2]=m,n[3]=g,n[4]=h,n[5]=f,n[6]=p,n[7]=t,n[8]=r,n[9]=x):x=n[9];let S;n[10]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,k.jsx)(E,{withHandle:!0,className:`ml-[-40px]`}),n[10]=S):S=n[10];let C;n[11]!==i||n[12]!==_?(C=(0,k.jsx)(w,{minSize:_,className:`overflow-hidden`,children:i}),n[11]=i,n[12]=_,n[13]=C):C=n[13];let O;n[14]!==C||n[15]!==x?(O=(0,k.jsxs)(T,{direction:`horizontal`,className:`h-full`,children:[x,S,C]}),n[14]=C,n[15]=x,n[16]=O):O=n[16];let A;return n[17]!==O||n[18]!==b?(A=(0,k.jsx)(`div`,{className:b,children:O}),n[17]=O,n[18]=b,n[19]=A):A=n[19],A}),j=O.forwardRef((e,t)=>{let n=(0,D.c)(14),r,i,a,o;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4]):({className:r,orientation:a,decorative:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o);let c=a===void 0?`horizontal`:a,l=o===void 0?!0:o,u=c===`horizontal`?`h-[1px] w-full`:`h-full w-[1px]`,d;n[5]!==r||n[6]!==u?(d=s(`shrink-0 bg-border`,u,r),n[5]=r,n[6]=u,n[7]=d):d=n[7];let f;return n[8]!==l||n[9]!==c||n[10]!==i||n[11]!==t||n[12]!==d?(f=(0,k.jsx)(_,{ref:t,decorative:l,orientation:c,className:d,...i}),n[8]=l,n[9]=c,n[10]=i,n[11]=t,n[12]=d,n[13]=f):f=n[13],f});j.displayName=_.displayName;var M=[{id:`providers`,label:`Providers`,icon:(0,k.jsx)(i,{className:`h-4 w-4`}),route:`/settings/providers`},{id:`models`,label:`Models`,icon:(0,k.jsx)(l,{className:`h-4 w-4`}),route:`/settings/models`},{id:`skills`,label:`Skills`,icon:(0,k.jsx)(a,{className:`h-4 w-4`}),route:`/settings/skills`},{id:`rules`,label:`Rules`,icon:(0,k.jsx)(d,{className:`h-4 w-4`}),route:`/settings/rules`},{id:`slash-commands`,label:`Slash Commands`,icon:(0,k.jsx)(r,{className:`h-4 w-4`}),route:`/settings/slash-commands`},{id:`subagents`,label:`Subagents`,icon:(0,k.jsx)(h,{className:`h-4 w-4`}),route:`/settings/subagents`},{id:`instructions`,label:`Instructions`,icon:(0,k.jsx)(u,{className:`h-4 w-4`}),route:`/settings/instructions`},{id:`mcp-servers`,label:`MCP Servers`,icon:(0,k.jsx)(p,{className:`h-4 w-4`}),route:`/settings/mcp-servers`},{id:`history`,label:`History`,icon:(0,k.jsx)(f,{className:`h-4 w-4`}),route:`/settings/history`},{id:`account`,label:`Account`,icon:(0,k.jsx)(n,{className:`h-4 w-4`}),route:`/settings/account`}];function N(e){let t=(0,D.c)(8),{className:n}=e,r=b(),i=v(),a;t[0]===i.pathname?a=t[1]:(a=function(){let e=i.pathname;for(let t of M)if(e.startsWith(t.route))return t.id;return`providers`}(),t[0]=i.pathname,t[1]=a);let o=a,s=`space-y-1${n?` ${n}`:``}`,c;t[2]!==o||t[3]!==r?(c=M.map((e,t)=>(0,k.jsxs)(O.Fragment,{children:[t===M.length-1&&(0,k.jsx)(j,{className:`my-2 bg-sidebar-border`}),(0,k.jsx)(S,{selected:o===e.id,asChild:!0,children:(0,k.jsx)(`button`,{className:`justify-start`,onClick:()=>void r(e.route),children:(0,k.jsxs)(`span`,{className:`flex items-center gap-2`,children:[e.icon,(0,k.jsx)(`span`,{children:e.label})]})})})]},e.id)),t[2]=o,t[3]=r,t[4]=c):c=t[4];let l;return t[5]!==s||t[6]!==c?(l=(0,k.jsx)(`div`,{className:s,children:c}),t[5]=s,t[6]=c,t[7]=l):l=t[7],l}var P=(0,O.lazy)(()=>y(()=>import(`./providers-list-view-CNxVBJlM.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8]))),F=(0,O.lazy)(()=>y(()=>import(`./settings-models-view-BDDFQWWC.js`),__vite__mapDeps([9,1,2,3,4,6,7,8]))),I=(0,O.lazy)(()=>y(()=>import(`./settings-mcp-servers-view-q6gGMMVX.js`),__vite__mapDeps([10,1,2,3,11,12,7,8,5,13,14,15,16]))),L=(0,O.lazy)(()=>y(()=>import(`./settings-skills-view-DV40_L1o.js`),__vite__mapDeps([17,1,3,11,2,12,7,8,18,5,13,14,15,16]))),R=(0,O.lazy)(()=>y(()=>import(`./settings-rules-view-DsEwgDFr.js`),__vite__mapDeps([19,1,7,2,3,8,11,12,18,5,13,14,15,16]))),z=(0,O.lazy)(()=>y(()=>import(`./settings-slash-commands-view-BEk3BgOY.js`),__vite__mapDeps([20,1,3,11,2,12,7,8,18,5,14,15,16]))),B=(0,O.lazy)(()=>y(()=>import(`./settings-subagents-view-d3P4ylDX.js`),__vite__mapDeps([21,1,3,11,2,12,7,8,18,5,13,14,15,16]))),V=(0,O.lazy)(()=>y(()=>import(`./settings-instructions-view-DWzAH2yN.js`),__vite__mapDeps([22,1,3,13,14,15]))),H=(0,O.lazy)(()=>y(()=>import(`./account-view-DcpSNB3N.js`),__vite__mapDeps([23,1,3,5,14]))),U=(0,O.lazy)(()=>y(()=>import(`./conversation-history-view-CD_uVRNY.js`),__vite__mapDeps([24,2,1,3]))),W=[`providers`,`models`,`skills`,`rules`,`slash-commands`,`subagents`,`instructions`,`mcp-servers`,`history`,`account`];function G(e){let t=(0,D.c)(5),{title:n}=e,r;t[0]===n?r=t[1]:(r=(0,k.jsx)(`h2`,{className:`text-lg font-semibold text-muted-foreground mb-2`,children:n}),t[0]=n,t[1]=r);let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,k.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Content coming soon...`}),t[2]=i):i=t[2];let a;return t[3]===r?a=t[4]:(a=(0,k.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,k.jsxs)(`div`,{className:`text-center`,children:[r,i]})}),t[3]=r,t[4]=a),a}function K(){let e=(0,D.c)(6),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,k.jsxs)(`div`,{className:`mb-6`,children:[(0,k.jsx)(`div`,{className:`h-8 w-32 bg-muted rounded animate-pulse mb-2`}),(0,k.jsx)(`div`,{className:`h-4 w-64 bg-muted rounded animate-pulse`})]}),e[0]=t):t=e[0];let n;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,k.jsx)(`div`,{className:`mb-6`,children:(0,k.jsx)(`div`,{className:`h-10 w-full bg-muted rounded animate-pulse`})}),e[1]=n):n=e[1];let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,k.jsx)(`div`,{className:`h-4 w-36 bg-muted rounded animate-pulse mb-3`}),e[2]=r):r=e[2];let i,a;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,k.jsxs)(`div`,{children:[r,(0,k.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3`,children:[(0,k.jsx)(`div`,{className:`h-24 bg-muted rounded-lg animate-pulse`}),(0,k.jsx)(`div`,{className:`h-24 bg-muted rounded-lg animate-pulse`})]})]}),a=(0,k.jsx)(`div`,{className:`h-4 w-40 bg-muted rounded animate-pulse mb-3`}),e[3]=i,e[4]=a):(i=e[3],a=e[4]);let o;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,k.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,k.jsxs)(`div`,{className:`max-w-4xl mx-auto p-6`,children:[t,n,(0,k.jsxs)(`div`,{className:`space-y-8`,children:[i,(0,k.jsxs)(`div`,{children:[a,(0,k.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3`,children:[(0,k.jsx)(`div`,{className:`h-24 bg-muted rounded-lg animate-pulse`}),(0,k.jsx)(`div`,{className:`h-24 bg-muted rounded-lg animate-pulse`}),(0,k.jsx)(`div`,{className:`h-24 bg-muted rounded-lg animate-pulse`}),(0,k.jsx)(`div`,{className:`h-24 bg-muted rounded-lg animate-pulse`})]})]})]})]})}),e[5]=o):o=e[5],o}function q(e){return e.startsWith(`/settings/providers`)?`providers`:e.startsWith(`/settings/models`)?`models`:e.startsWith(`/settings/skills`)?`skills`:e.startsWith(`/settings/rules`)?`rules`:e.startsWith(`/settings/slash-commands`)?`slash-commands`:e.startsWith(`/settings/subagents`)?`subagents`:e.startsWith(`/settings/instructions`)?`instructions`:e.startsWith(`/settings/mcp-servers`)?`mcp-servers`:e.startsWith(`/settings/history`)?`history`:e.startsWith(`/settings/account`)?`account`:`providers`}function J(){let e=(0,D.c)(33),{tab:t}=g(),n=b(),r=v(),{state:i}=x(),a;if(e[0]!==r.pathname||e[1]!==r.search||e[2]!==t){let n=new URLSearchParams(r.search).get(`tab`);a=n&&W.includes(n)?n:t&&W.includes(t)?t:q(r.pathname),e[0]=r.pathname,e[1]=r.search,e[2]=t,e[3]=a}else a=e[3];let o=a,[s,c]=(0,O.useState)(!1),l=(0,O.useRef)(null),u=ee,d;e[4]===n?d=e[5]:(d=()=>{n(`/`)},e[4]=n,e[5]=d);let f=d,p;e[6]===i.selectedProjectId?p=e[7]:(p=i.selectedProjectId?{type:`project`,id:i.selectedProjectId}:void 0,e[6]=i.selectedProjectId,e[7]=p);let m=p,h;e[8]===n?h=e[9]:(h=()=>{n(`/settings/providers`)},e[8]=n,e[9]=h);let _=h,y,S;e[10]!==r.pathname||e[11]!==n?(y=()=>{[`/settings/project`,`/settings/mcp-server-edit`,`/settings/add-skill`,`/settings/add-command`,`/settings/add-rule`,`/settings/add-agent`].some(e=>r.pathname.startsWith(e))&&n(`/settings/providers`,{replace:!0})},S=[r.pathname,n],e[10]=r.pathname,e[11]=n,e[12]=y,e[13]=S):(y=e[12],S=e[13]),(0,O.useEffect)(y,S);let w;e[14]===f?w=e[15]:(w=()=>(0,k.jsx)(C,{onTitleClose:f,subtitle:`Settings`,onResetOnboarding:u,children:(0,k.jsx)(`div`,{className:`px-2 py-2`,children:(0,k.jsx)(N,{})})}),e[14]=f,e[15]=w);let T=w,E;e[16]!==o||e[17]!==_||e[18]!==m||e[19]!==i.projects?(E=()=>{switch(o){case`providers`:return(0,k.jsx)(O.Suspense,{fallback:(0,k.jsx)(K,{}),children:(0,k.jsx)(P,{})});case`models`:return(0,k.jsx)(O.Suspense,{fallback:(0,k.jsx)(G,{title:`Models`}),children:(0,k.jsx)(F,{})});case`skills`:return(0,k.jsx)(O.Suspense,{fallback:(0,k.jsx)(G,{title:`Skills`}),children:(0,k.jsx)(L,{})});case`rules`:return(0,k.jsx)(O.Suspense,{fallback:(0,k.jsx)(G,{title:`Rules`}),children:(0,k.jsx)(R,{})});case`slash-commands`:return(0,k.jsx)(O.Suspense,{fallback:(0,k.jsx)(G,{title:`Slash Commands`}),children:(0,k.jsx)(z,{})});case`subagents`:return(0,k.jsx)(O.Suspense,{fallback:(0,k.jsx)(G,{title:`Subagents`}),children:(0,k.jsx)(B,{})});case`instructions`:return(0,k.jsx)(O.Suspense,{fallback:(0,k.jsx)(G,{title:`Instructions`}),children:(0,k.jsx)(V,{})});case`mcp-servers`:return(0,k.jsx)(O.Suspense,{fallback:(0,k.jsx)(G,{title:`MCP Servers`}),children:(0,k.jsx)(I,{})});case`history`:return(0,k.jsx)(O.Suspense,{fallback:(0,k.jsx)(G,{title:`History`}),children:(0,k.jsx)(U,{isOpen:!0,onClose:_,initialFilter:m,projects:i.projects,inline:!0})});case`account`:return(0,k.jsx)(O.Suspense,{fallback:(0,k.jsx)(G,{title:`Account`}),children:(0,k.jsx)(H,{})});default:return(0,k.jsx)(G,{title:`Settings`})}},e[16]=o,e[17]=_,e[18]=m,e[19]=i.projects,e[20]=E):E=e[20];let j=E,M,J;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(M=()=>c(!0),J=()=>c(!1),e[21]=M,e[22]=J):(M=e[21],J=e[22]);let Y;e[23]===T?Y=e[24]:(Y=T(),e[23]=T,e[24]=Y);let X=`h-full overflow-auto ${s?`ml-[40px]`:``}`,Z;e[25]===j?Z=e[26]:(Z=j(),e[25]=j,e[26]=Z);let Q;e[27]!==X||e[28]!==Z?(Q=(0,k.jsx)(`div`,{className:X,children:Z}),e[27]=X,e[28]=Z,e[29]=Q):Q=e[29];let $;return e[30]!==Y||e[31]!==Q?($=(0,k.jsx)(A,{ref:l,collapsible:!0,onCollapse:M,onExpand:J,sidebar:Y,children:Q}),e[30]=Y,e[31]=Q,e[32]=$):$=e[32],$}async function ee(){try{await m()}catch(e){console.error(`Failed to reset onboarding:`,e)}}export{J as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dialogs-config-vkfELnGl.js","assets/rolldown-runtime-B1FJdls4.js"])))=>i.map(i=>d[i]);
2
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Ar as t,Fn as n,Ir as r,Sa as i,Vn as a,ca as o}from"./dialogs-config-vkfELnGl.js";import{xt as s}from"./react-vendor-DyE9sO8V.js";var c=e(i(),1),l=t();function u({children:e,collapsed:t,title:i,onTitleClose:u,subtitle:d,headerAction:f,footer:p,onResetOnboarding:m,onLogoClick:h}){let g=(0,c.useRef)(0),_=(0,c.useRef)(null);return(0,c.useEffect)(()=>()=>{_.current&&clearTimeout(_.current)},[]),(0,l.jsxs)(`div`,{className:`flex flex-col bg-sidebar text-sidebar-foreground mx-2.5 mt-8 mr-10 rounded-3xl shadow-2xl overflow-hidden`,style:{containerType:`inline-size`,height:`calc(100% - 32px)`},children:[(0,l.jsxs)(`div`,{className:`flex items-center justify-between border-b border-sidebar-border px-4 py-3 h-[61px]`,children:[(0,l.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,l.jsx)(`div`,{className:`flex h-7 w-7 items-center justify-center overflow-hidden rounded-md border border-sidebar-border shadow-sm`,children:(0,l.jsx)(`img`,{src:`/tarsk.svg`,alt:`Tarsk`,className:`h-full w-full cursor-pointer`,onClick:m||h?async()=>{if(h?.(),m)if(_.current&&clearTimeout(_.current),g.current+=1,g.current>=3){g.current=0;let{resetOnboarding:e}=await s(async()=>{let{resetOnboarding:e}=await import(`./dialogs-config-vkfELnGl.js`).then(e=>e.S);return{resetOnboarding:e}},__vite__mapDeps([0,1]));e()}else _.current=setTimeout(()=>{g.current=0},500)}:void 0})}),!t&&(0,l.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,l.jsx)(`span`,{className:`text-sm font-semibold tracking-tight`,children:`Tarsk`}),d&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(o,{className:`h-3 w-3 text-sidebar-foreground/60`}),(0,l.jsx)(`span`,{className:`text-sm font-medium text-sidebar-foreground/80`,children:d})]})]})]}),(i??u??f)&&(0,l.jsxs)(`div`,{className:`flex items-center gap-2 ml-auto`,children:[f&&!t&&f,i&&(0,l.jsx)(`span`,{className:`text-xs font-medium text-sidebar-foreground/80`,children:i}),u&&(0,l.jsxs)(a,{variant:`ghost`,size:`icon`,className:`h-7 w-7 text-sidebar-foreground`,onClick:u,children:[(0,l.jsx)(r,{className:`h-4 w-4`}),(0,l.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]}),(0,l.jsx)(n,{className:`flex-1`,children:e}),p&&(0,l.jsx)(`div`,{className:`border-t border-sidebar-border`,children:p})]})}export{u as t};
@@ -1 +0,0 @@
1
- import{Ar as e,Zn as t,ba as n}from"./dialogs-config-vkfELnGl.js";var r=n(),i=e();function a(e){let n=(0,r.c)(8),a,o;n[0]===e?(a=n[1],o=n[2]):({className:a,...o}=e,n[0]=e,n[1]=a,n[2]=o);let s;n[3]===a?s=n[4]:(s=t(`animate-pulse rounded-md bg-muted`,a),n[3]=a,n[4]=s);let c;return n[5]!==o||n[6]!==s?(c=(0,i.jsx)(`div`,{className:s,...o}),n[5]=o,n[6]=s,n[7]=c):c=n[7],c}export{a as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Ar as t,Sa as n,Wn as r,Zn as i,ba as a}from"./dialogs-config-vkfELnGl.js";var o=a(),s=e(n(),1),c=t(),l=s.forwardRef((e,t)=>{let n=(0,o.c)(23),a,s,l,u,d,f,p,m,h;n[0]===e?(a=n[1],s=n[2],l=n[3],u=n[4],d=n[5],f=n[6],p=n[7],m=n[8],h=n[9]):({className:s,selected:f,noBackground:u,level:l,basePadding:a,indentSize:m,asChild:h,style:p,...d}=e,n[0]=e,n[1]=a,n[2]=s,n[3]=l,n[4]=u,n[5]=d,n[6]=f,n[7]=p,n[8]=m,n[9]=h);let g=m===void 0?20:m,_=h===void 0?!1:h,v=l===void 0?void 0:(a??12)+l*g,y=_?r:`div`,b=f&&!u&&`bg-sidebar-accent text-sidebar-accent-foreground font-medium`,x=f&&u&&`font-bold text-foreground`,S;n[10]!==s||n[11]!==b||n[12]!==x?(S=i(`flex items-center gap-2 w-full min-w-0 justify-start px-3 py-2 cursor-pointer rounded-full text-sm transition-colors group overflow-hidden`,`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,b,x,s),n[10]=s,n[11]=b,n[12]=x,n[13]=S):S=n[13];let C=v===void 0?void 0:`${v}px`,w;n[14]!==p||n[15]!==C?(w={paddingLeft:C,...p},n[14]=p,n[15]=C,n[16]=w):w=n[16];let T;return n[17]!==y||n[18]!==d||n[19]!==t||n[20]!==S||n[21]!==w?(T=(0,c.jsx)(y,{ref:t,className:S,style:w,...d}),n[17]=y,n[18]=d,n[19]=t,n[20]=S,n[21]=w,n[22]=T):T=n[22],T});l.displayName=`StandardListItem`;export{l as t};
@@ -1,4 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Sa as t,ba as n}from"./dialogs-config-vkfELnGl.js";var r=e(t(),1),i=n();function a(e){return typeof e==`string`?e.replace(/\\n/g,`
2
- `).replace(/✅/g,`✓`):``}function o(e){if(!e||typeof e!=`string`)return null;let t=e.trim();if(!t)return null;let n=/\[([A-Za-z]+)\]\s*/g,r,i=0;for(let e of t.matchAll(n))r=e[1],i=e.index+e[0].length;let a=r,o=a?t.slice(i):t;if(a&&o)return[{type:`reasoning`,text:o,label:a}];let s=[],c=0;for(;c<t.length;){let e=t.indexOf(`[`,c);if(e===-1){let e=t.slice(c).trim();e&&s.push({type:`reasoning`,text:e});break}let n=t.slice(c,e).trim();n&&s.push({type:`reasoning`,text:n});let r=0,i=-1;for(let n=e;n<t.length;n++)if(t[n]===`[`)r++;else if(t[n]===`]`&&(r--,r===0)){i=n;break}if(i===-1){let n=t.slice(e).trim();n&&s.push({type:`reasoning`,text:n});break}try{let n=JSON.parse(t.slice(e,i+1));if(Array.isArray(n)){for(let e of n)if(e&&typeof e==`object`&&`type`in e){let t=e.type;(t===`tool-result`||t===`tool_use`)&&s.push(e)}}}catch{let n=t.slice(e,i+1).trim();n&&s.push({type:`reasoning`,text:n})}c=i+1}return s.length>0?s:null}function s(e){return e.map(e=>{if(typeof e==`object`&&e&&!(`type`in e)){let t=e;if(t.reasoning)return{type:`reasoning`,text:typeof t.reasoning==`string`?t.reasoning:JSON.stringify(t.reasoning)};let n=t.text??t.content??t.answer;if(n)return{type:`text`,text:typeof n==`string`?n:JSON.stringify(n)}}return e})}function c(e){let t=[];e.reasoning&&typeof e.reasoning==`string`&&t.push({type:`reasoning`,text:e.reasoning});let n=(typeof e.text==`string`?e.text:null)??(typeof e.content==`string`?e.content:null)??(typeof e.answer==`string`?e.answer:null);return n&&t.push({type:`text`,text:n}),t.length===0&&Object.keys(e).length>0&&t.push({type:`text`,text:JSON.stringify(e,null,2)}),t}function l(e){if(!e)return null;let t=e.trim();if(t.startsWith(`{`)||t.startsWith(`[`))try{let e=JSON.parse(t);if(Array.isArray(e))return s(e);if(typeof e==`object`&&e)return c(e)}catch{}let n=[],r=e.indexOf(`{`),i=e.indexOf(`[`),a=r===-1?i:i===-1?r:Math.min(r,i);if(a!==-1){let t=e.slice(a),r=Math.max(t.lastIndexOf(`]`),t.lastIndexOf(`}`));if(r!==-1){let e=t.substring(0,r+1);try{let i=JSON.parse(e);Array.isArray(i)?n.push(...s(i)):n.push(...c(i));let a=t.substring(r+1).trim();return a&&n.push({type:`text`,text:a}),n}catch{}}}return null}function u(e,t,n){let r=e[e.length-1];return r?.type===t?[...e.slice(0,-1),{type:t,chunks:[...r.chunks,n]}]:[...e,{type:t,chunks:[n]}]}function d(e,t){return e[e.length-1]?.type===`content`?[...e.slice(0,-1),{type:`content`,chunks:[t]}]:[...e,{type:`content`,chunks:[t]}]}function f(e){let t=[];for(let n of e){let e=n.chunks.join(``);if(n.type===`thinking`){let n=o(e)??[];t.push(...n)}else{let n=l(e)??(e.trim()?[{type:`text`,text:e}]:[]);t.push(...n)}}return t}function p(e,t=!1){let n=[],r=[],i=()=>{r.length>0&&(n.push({type:`thinking-group`,text:r.join(`
3
-
4
- `),isCurrentlyStreaming:!1}),r=[])};for(let t of e)t.type===`reasoning`&&`text`in t?r.push(t.text):(i(),n.push(t));if(i(),t&&n.length>0){let e=n[n.length-1];e.type===`thinking-group`&&(e.isCurrentlyStreaming=!0)}return n}function m(e){let t=f(e);return t.length===0?`...`:t.length===1&&t[0]?.type===`text`&&`text`in t[0]?t[0].text:JSON.stringify(t)}var h=function(e){return e.SetProjects=`SET_PROJECTS`,e.SetProjectsLoading=`SET_PROJECTS_LOADING`,e.SelectThread=`SELECT_THREAD`,e.SetMessages=`SET_MESSAGES`,e.AddMessage=`ADD_MESSAGE`,e.EnqueueChatMessage=`ENQUEUE_CHAT_MESSAGE`,e.RemoveQueuedChatMessage=`REMOVE_QUEUED_CHAT_MESSAGE`,e.SetStreaming=`SET_STREAMING`,e.AppendStreamContent=`APPEND_STREAM_CONTENT`,e.SetStreamContent=`SET_STREAM_CONTENT`,e.AppendStreamThinking=`APPEND_STREAM_THINKING`,e.AppendStreamChunk=`APPEND_STREAM_CHUNK`,e.SetStreamModel=`SET_STREAM_MODEL`,e.SetProjectModel=`SET_PROJECT_MODEL`,e.ResetStream=`RESET_STREAM`,e.StopStream=`STOP_STREAM`,e.ToggleSidebar=`TOGGLE_SIDEBAR`,e.SetCreatingProject=`SET_CREATING_PROJECT`,e.ConfigUpdated=`CONFIG_UPDATED`,e.SetProcessingThreads=`SET_PROCESSING_THREADS`,e.AddProcessingThread=`ADD_PROCESSING_THREAD`,e.RemoveProcessingThread=`REMOVE_PROCESSING_THREAD`,e.AddCreatingProject=`ADD_CREATING_PROJECT`,e.AddCreatingThread=`ADD_CREATING_THREAD`,e.RemoveCreatingProject=`REMOVE_CREATING_PROJECT`,e.RemoveCreatingThread=`REMOVE_CREATING_THREAD`,e.MarkThreadCompleted=`MARK_THREAD_COMPLETED`,e.ClearThreadCompleted=`CLEAR_THREAD_COMPLETED`,e.AddDeletingThread=`ADD_DELETING_THREAD`,e.RemoveDeletingThread=`REMOVE_DELETING_THREAD`,e.AddDeletingProject=`ADD_DELETING_PROJECT`,e.RemoveDeletingProject=`REMOVE_DELETING_PROJECT`,e.AppendCommandOutput=`APPEND_COMMAND_OUTPUT`,e.SetRunningCommand=`SET_RUNNING_COMMAND`,e.ClearCommandOutput=`CLEAR_COMMAND_OUTPUT`,e.ToggleTerminal=`TOGGLE_TERMINAL`,e.SetTerminalOpen=`SET_TERMINAL_OPEN`,e.QueueTerminalCommand=`QUEUE_TERMINAL_COMMAND`,e.ClearQueuedTerminalCommand=`CLEAR_QUEUED_TERMINAL_COMMAND`,e.AppendTerminalLine=`APPEND_TERMINAL_LINE`,e.ClearTerminalOutput=`CLEAR_TERMINAL_OUTPUT`,e.SetTerminalHeight=`SET_TERMINAL_HEIGHT`,e.SetTerminalCwd=`SET_TERMINAL_CWD`,e.SetTerminalRunning=`SET_TERMINAL_RUNNING`,e.SetTerminalHistory=`SET_TERMINAL_HISTORY`,e.SetTerminalHistoryIndex=`SET_TERMINAL_HISTORY_INDEX`,e.UpdateThreadTitle=`UPDATE_THREAD_TITLE`,e.ClearFocusChatInput=`CLEAR_FOCUS_CHAT_INPUT`,e.ClearMessages=`CLEAR_MESSAGES`,e.UpdateToolCallProgress=`UPDATE_TOOL_CALL_PROGRESS`,e.SetPendingChatMessage=`SET_PENDING_CHAT_MESSAGE`,e.ClearPendingChatMessage=`CLEAR_PENDING_CHAT_MESSAGE`,e.IncrementStreamEventCount=`INCREMENT_STREAM_EVENT_COUNT`,e.SetDiffComments=`SET_DIFF_COMMENTS`,e.ClearSelection=`CLEAR_SELECTION`,e.SetChatInputDraft=`SET_CHAT_INPUT_DRAFT`,e.ClearChatInputDraft=`CLEAR_CHAT_INPUT_DRAFT`,e}({}),g={projects:[],projectsLoading:!0,selectedThreadId:null,selectedProjectId:null,messages:[],messagesLoaded:!1,queuedChatMessages:[],isStreaming:!1,streamingContent:``,streamingThinking:``,streamingSegments:[],streamingModel:``,streamingEventCount:0,projectModelSelections:{},sidebarOpen:!0,isCreatingProject:!1,configUpdatedAt:0,processingThreadIds:[],completedThreadIds:[],deletingThreadIds:[],deletingProjectIds:[],commandOutput:``,isRunningCommand:!1,terminalStates:{},focusChatInput:!1,toolCallProgress:{},pendingChatMessage:null,diffComments:{},chatInputDrafts:{}};function _(e,t){switch(t.type){case h.SetProjects:{let n={...e.projectModelSelections};for(let e of t.projects)for(let t of e.threads){if(!t.model)continue;let e=n[t.threadId];n[t.threadId]={id:t.model,provider:t.modelProvider,name:e?.name??t.model,description:e?.description??``,context_length:e?.context_length,contextWindow:e?.contextWindow,features:e?.features,input_modalities:e?.input_modalities,max_output:e?.max_output,pricing:e?.pricing,tarsk_use:e?.tarsk_use,coding_index:e?.coding_index,supportsImages:e?.supportsImages}}return{...e,projects:t.projects,projectModelSelections:n}}case h.SetProjectsLoading:return{...e,projectsLoading:t.projectsLoading};case h.SelectThread:return{...e,selectedThreadId:t.threadId,selectedProjectId:t.projectId,messages:t.initialMessages??[],messagesLoaded:!1,focusChatInput:t.focusInput??!1};case h.ClearSelection:return{...e,selectedThreadId:null,selectedProjectId:null,messages:[],messagesLoaded:!1};case h.SetMessages:return{...e,messages:t.messages,messagesLoaded:!0};case h.AddMessage:return{...e,messages:[...e.messages,t.message]};case h.EnqueueChatMessage:return{...e,queuedChatMessages:[...e.queuedChatMessages,t.message]};case h.RemoveQueuedChatMessage:return{...e,queuedChatMessages:e.queuedChatMessages.filter(e=>e.id!==t.queuedMessageId)};case h.SetStreaming:return{...e,isStreaming:t.isStreaming};case h.AppendStreamContent:return{...e,streamingContent:e.streamingContent+t.content};case h.SetStreamContent:{let n=d(e.streamingSegments,t.content);return{...e,streamingContent:t.content,streamingSegments:n}}case h.AppendStreamThinking:return{...e,streamingThinking:e.streamingThinking+t.content};case h.IncrementStreamEventCount:return{...e,streamingEventCount:e.streamingEventCount+1};case h.AppendStreamChunk:return{...e,streamingSegments:t.segments,streamingContent:t.chunkType===`content`?e.streamingContent+t.content:e.streamingContent,streamingThinking:t.chunkType===`thinking`?e.streamingThinking+t.content:e.streamingThinking};case h.SetStreamModel:return{...e,streamingModel:t.model};case h.SetProjectModel:return console.log(`[Store] SetProjectModel action:`,{threadId:t.threadId,model:{id:t.model.id,provider:t.model.provider}}),{...e,projects:e.projects.map(e=>({...e,threads:e.threads.map(e=>e.threadId===t.threadId?{...e,model:t.model.id,modelProvider:t.model.provider}:e)})),projectModelSelections:{...e.projectModelSelections,[t.threadId]:t.model}};case h.ResetStream:return{...e,streamingContent:``,streamingThinking:``,streamingSegments:[],streamingModel:``,isStreaming:!1,toolCallProgress:{},streamingEventCount:0};case h.StopStream:return{...e,isStreaming:!1};case h.ToggleSidebar:return{...e,sidebarOpen:!e.sidebarOpen};case h.SetCreatingProject:return{...e,isCreatingProject:t.isCreating};case h.ConfigUpdated:return{...e,configUpdatedAt:Date.now()};case h.SetProcessingThreads:return{...e,processingThreadIds:t.threadIds};case h.AddProcessingThread:return{...e,processingThreadIds:e.processingThreadIds.includes(t.threadId)?e.processingThreadIds:[...e.processingThreadIds,t.threadId]};case h.RemoveProcessingThread:return{...e,processingThreadIds:e.processingThreadIds.filter(e=>e!==t.threadId)};case h.AddCreatingProject:return{...e,projects:[...e.projects,{projectId:t.projectId,name:t.projectName,gitUrl:t.gitUrl,threads:[{threadId:t.threadId,title:`thread-1`,path:``,currentBranch:``}]}]};case h.AddCreatingThread:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:[...e.threads,{threadId:t.threadId,title:t.title,path:``,currentBranch:``}]}:e)};case h.RemoveCreatingProject:return{...e,projects:e.projects.filter(e=>e.projectId!==t.projectId)};case h.RemoveCreatingThread:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:e.threads.filter(e=>e.threadId!==t.threadId)}:e)};case h.MarkThreadCompleted:return{...e,completedThreadIds:e.completedThreadIds.includes(t.threadId)?e.completedThreadIds:[...e.completedThreadIds,t.threadId]};case h.ClearThreadCompleted:return{...e,completedThreadIds:e.completedThreadIds.filter(e=>e!==t.threadId)};case h.AddDeletingThread:return{...e,deletingThreadIds:e.deletingThreadIds.includes(t.threadId)?e.deletingThreadIds:[...e.deletingThreadIds,t.threadId]};case h.RemoveDeletingThread:return{...e,deletingThreadIds:e.deletingThreadIds.filter(e=>e!==t.threadId)};case h.AddDeletingProject:return{...e,deletingProjectIds:e.deletingProjectIds.includes(t.projectId)?e.deletingProjectIds:[...e.deletingProjectIds,t.projectId]};case h.RemoveDeletingProject:return{...e,deletingProjectIds:e.deletingProjectIds.filter(e=>e!==t.projectId)};case h.AppendCommandOutput:return{...e,commandOutput:e.commandOutput+t.content};case h.SetRunningCommand:return{...e,isRunningCommand:t.isRunning};case h.ClearCommandOutput:return{...e,commandOutput:``};case h.ToggleTerminal:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,open:!r.open}}}}case h.SetTerminalOpen:{let n=t.threadId??`default`,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,open:t.open}}}}case h.QueueTerminalCommand:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,queuedRelativeFolder:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,queuedCommand:t.command,queuedRelativeFolder:t.relativeFolder??null,open:!0}}}}case h.ClearQueuedTerminalCommand:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,queuedCommand:null}}}}case h.AppendTerminalLine:{let n=t.threadId??`default`,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,outputLines:[...r.outputLines,t.line]}}}}case h.ClearTerminalOutput:{let n=t.threadId??`default`,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,outputLines:[]}}}}case h.SetTerminalHeight:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,height:t.height}}}}case h.SetTerminalCwd:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,cwd:t.cwd}}}}case h.SetTerminalRunning:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,isRunning:t.isRunning}}}}case h.SetTerminalHistory:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,history:t.history}}}}case h.SetTerminalHistoryIndex:{let n=t.threadId,r=e.terminalStates[n]??{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1};return{...e,terminalStates:{...e.terminalStates,[n]:{...r,historyIndex:t.index}}}}case h.UpdateThreadTitle:return{...e,projects:e.projects.map(e=>e.projectId===t.projectId?{...e,threads:e.threads.map(e=>e.threadId===t.threadId?{...e,title:t.title}:e)}:e)};case h.ClearFocusChatInput:return{...e,focusChatInput:!1};case h.ClearMessages:return{...e,messages:[]};case h.UpdateToolCallProgress:return{...e,toolCallProgress:{...e.toolCallProgress,[t.toolCallId]:t.progress}};case h.SetPendingChatMessage:return{...e,pendingChatMessage:t.message};case h.ClearPendingChatMessage:return{...e,pendingChatMessage:null};case h.SetDiffComments:return{...e,diffComments:{...e.diffComments,[t.threadId]:t.comments}};case h.SetChatInputDraft:return{...e,chatInputDrafts:{...e.chatInputDrafts,[t.threadId]:t.draft}};case h.ClearChatInputDraft:{let{[t.threadId]:n,...r}=e.chatInputDrafts;return{...e,chatInputDrafts:r}}default:return e}}var v=(0,r.createContext)({state:g,dispatch:()=>{}});function y(){return(0,r.useContext)(v)}function b(e){let t=(0,i.c)(11),{state:n,dispatch:r}=y();if(!e){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=[],t[0]=e):e=t[0];let n;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(n={terminalState:{open:!1,queuedCommand:null,queuedRelativeFolder:null,outputLines:e,height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1},dispatch:x},t[1]=n):n=t[1],n}let a;t[2]!==n.terminalStates||t[3]!==e?(a=n.terminalStates[e]||{open:!1,queuedCommand:null,outputLines:[],height:300,history:[],historyIndex:-1,cwd:`.`,isRunning:!1},t[2]=n.terminalStates,t[3]=e,t[4]=a):a=t[4];let o=a,s;t[5]!==r||t[6]!==e?(s=t=>{r({...t,threadId:e})},t[5]=r,t[6]=e,t[7]=s):s=t[7];let c=s,l;return t[8]!==c||t[9]!==o?(l={terminalState:o,dispatch:c},t[8]=c,t[9]=o,t[10]=l):l=t[10],l}function x(){}export{y as a,f as c,p as d,a as f,g as i,u as l,o as m,v as n,b as o,l as p,_ as r,m as s,h as t,d as u};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Ar as t,Sa as n,Zn as r,ba as i}from"./dialogs-config-vkfELnGl.js";import{F as a,I as o,L as s,P as c}from"./react-vendor-DyE9sO8V.js";var l=i(),u=e(n(),1),d=t(),f=o,p=u.forwardRef((e,t)=>{let n=(0,l.c)(9),i,o;n[0]===e?(i=n[1],o=n[2]):({className:i,...o}=e,n[0]=e,n[1]=i,n[2]=o);let s;n[3]===i?s=n[4]:(s=r(`inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground`,i),n[3]=i,n[4]=s);let c;return n[5]!==o||n[6]!==t||n[7]!==s?(c=(0,d.jsx)(a,{ref:t,className:s,...o}),n[5]=o,n[6]=t,n[7]=s,n[8]=c):c=n[8],c});p.displayName=a.displayName;var m=u.forwardRef((e,t)=>{let n=(0,l.c)(9),i,a;n[0]===e?(i=n[1],a=n[2]):({className:i,...a}=e,n[0]=e,n[1]=i,n[2]=a);let o;n[3]===i?o=n[4]:(o=r(`inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm`,i),n[3]=i,n[4]=o);let c;return n[5]!==a||n[6]!==t||n[7]!==o?(c=(0,d.jsx)(s,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=c):c=n[8],c});m.displayName=s.displayName;var h=u.forwardRef((e,t)=>{let n=(0,l.c)(9),i,a;n[0]===e?(i=n[1],a=n[2]):({className:i,...a}=e,n[0]=e,n[1]=i,n[2]=a);let o;n[3]===i?o=n[4]:(o=r(`mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,i),n[3]=i,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,d.jsx)(c,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});h.displayName=c.displayName;export{m as i,h as n,p as r,f as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-B1FJdls4.js";import{Ar as t,Sa as n,Zn as r,ba as i}from"./dialogs-config-vkfELnGl.js";var a=i(),o=e(n(),1),s=t(),c=o.forwardRef((e,t)=>{let n=(0,a.c)(9),i,o;n[0]===e?(i=n[1],o=n[2]):({className:i,...o}=e,n[0]=e,n[1]=i,n[2]=o);let c;n[3]===i?c=n[4]:(c=r(`flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,i),n[3]=i,n[4]=c);let l;return n[5]!==o||n[6]!==t||n[7]!==c?(l=(0,s.jsx)(`textarea`,{className:c,ref:t,...o}),n[5]=o,n[6]=t,n[7]=c,n[8]=l):l=n[8],l});c.displayName=`Textarea`;export{c as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./index-DKQVo4Vz.js";export{e as TodosView};