bb-app 0.0.7 → 0.0.9

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 (102) hide show
  1. package/app/dist/assets/{AppSettingsView-6Zzy6BfL.js → AppSettingsView-3xuBYGm-.js} +1 -1
  2. package/app/dist/assets/InternalReplayListView-D4BuZuhX.js +1 -0
  3. package/app/dist/assets/{ProjectArchivedThreadsView-65_OMZ83.js → ProjectArchivedThreadsView-CQ79aEPs.js} +1 -1
  4. package/app/dist/assets/ProjectSettingsView-D0t1s9Kc.js +1 -0
  5. package/app/dist/assets/ThreadDetailRoute-S7gHiq2R.js +2871 -0
  6. package/app/dist/assets/ThreadUnarchiveButton-ae8m78ng.js +1 -0
  7. package/app/dist/assets/{angular-html-BnZNhOVu.js → angular-html-CsQHuPoy.js} +1 -1
  8. package/app/dist/assets/{angular-ts-DErpwNhE.js → angular-ts-B9caFRUl.js} +1 -1
  9. package/app/dist/assets/{apl-jktjMWm9.js → apl-BaFDIJAy.js} +1 -1
  10. package/app/dist/assets/{astro-OyfDR1ll.js → astro-CB3F_OsY.js} +1 -1
  11. package/app/dist/assets/{blade-l0Ufqsdo.js → blade-CjgH6QoP.js} +1 -1
  12. package/app/dist/assets/{c-Zl_aQ3ky.js → c-Bknf8flU.js} +1 -1
  13. package/app/dist/assets/{chunk-JZWAC4HX-CIhf07b6.js → chunk-JZWAC4HX-C0wcTaAp.js} +1 -1
  14. package/app/dist/assets/{cobol-_uRe_arD.js → cobol-s_WYmRkb.js} +1 -1
  15. package/app/dist/assets/{coffee-CfM2Lk3K.js → coffee-B4wogQNr.js} +1 -1
  16. package/app/dist/assets/{cpp-BARm9yzN.js → cpp-DBcUjMMg.js} +1 -1
  17. package/app/dist/assets/{crystal-DPHSLUHj.js → crystal-BEUw9aly.js} +1 -1
  18. package/app/dist/assets/{css-CaJEL4gr.js → css-Tyi5cHoy.js} +1 -1
  19. package/app/dist/assets/{dialog-CuU6GHxh.js → dialog-yU2jYzlX.js} +1 -1
  20. package/app/dist/assets/{edge-Dv3pZ6l2.js → edge-DBVUn5K4.js} +1 -1
  21. package/app/dist/assets/{effective-hosts-DNH4ZZMO.js → effective-hosts-L1PAD_aI.js} +4 -4
  22. package/app/dist/assets/{elixir-5FXX4Nj9.js → elixir-DScCko2H.js} +1 -1
  23. package/app/dist/assets/{elm-Dt58k6O0.js → elm-C4qaS622.js} +1 -1
  24. package/app/dist/assets/{erb-CVKj_0yX.js → erb-CZnOXF4N.js} +1 -1
  25. package/app/dist/assets/{git-rebase-vj4pqTZR.js → git-rebase-QEKpMjJZ.js} +1 -1
  26. package/app/dist/assets/{glimmer-js-D-OzgliZ.js → glimmer-js-BNOZF2qI.js} +1 -1
  27. package/app/dist/assets/{glimmer-ts-DmVVrzIL.js → glimmer-ts-apIdP2bg.js} +1 -1
  28. package/app/dist/assets/{glsl-B1HRIf6W.js → glsl-Dg2m4Gqj.js} +1 -1
  29. package/app/dist/assets/{graphql-CRBPsUaz.js → graphql-DFhF_r-2.js} +1 -1
  30. package/app/dist/assets/{hack-BArcdkL7.js → hack-Bhx0ZE7U.js} +1 -1
  31. package/app/dist/assets/{haml-De5cSl4E.js → haml-DI6_Yg2F.js} +1 -1
  32. package/app/dist/assets/{handlebars-8Zy2Vs3a.js → handlebars-BnNY7a5K.js} +1 -1
  33. package/app/dist/assets/{html-YVJdK98d.js → html-BOXTZS1i.js} +1 -1
  34. package/app/dist/assets/{html-derivative-BT0t4I9A.js → html-derivative-v40-23QP.js} +1 -1
  35. package/app/dist/assets/{http-DC0GH0Bs.js → http-BjNdwlfX.js} +1 -1
  36. package/app/dist/assets/{hurl-D2fUFTSB.js → hurl-FLqiDEN1.js} +1 -1
  37. package/app/dist/assets/{index-BRo1YnbF.js → index-aLeXFWbZ.js} +27 -27
  38. package/app/dist/assets/{java-BQoJICeR.js → java-BK7M4QRN.js} +1 -1
  39. package/app/dist/assets/{javascript-Ct_DN1X8.js → javascript-CIysJabp.js} +1 -1
  40. package/app/dist/assets/{jinja-C1ngEoTP.js → jinja-D22cUMUY.js} +1 -1
  41. package/app/dist/assets/{jison-C5ZNVS2c.js → jison-D5ZXfQQd.js} +1 -1
  42. package/app/dist/assets/{json-DVa2wY6T.js → json-DEUxBxBS.js} +1 -1
  43. package/app/dist/assets/{jsx-BJqlX6qV.js → jsx-cxjRg4Z9.js} +1 -1
  44. package/app/dist/assets/{julia-Btw_zR3T.js → julia-DfQvji8F.js} +1 -1
  45. package/app/dist/assets/{just-CbiU0D8M.js → just-7mfnOEVc.js} +1 -1
  46. package/app/dist/assets/{latex-VgwkhkD-.js → latex-CmEGWjs7.js} +1 -1
  47. package/app/dist/assets/{liquid-D6T8WtC6.js → liquid-Cmbkwo5G.js} +1 -1
  48. package/app/dist/assets/localhost-badge-CmIXXpKJ.js +22 -0
  49. package/app/dist/assets/{lua-CuA24JSE.js → lua-DJijm0YV.js} +1 -1
  50. package/app/dist/assets/{marko-CdDxo3xN.js → marko-TMTUEuNL.js} +1 -1
  51. package/app/dist/assets/{mdc-BJBOg0pF.js → mdc-DT_H0tm2.js} +1 -1
  52. package/app/dist/assets/{mutation-cache-effects-xpqBLSkL.js → mutation-cache-effects-CDggZqqz.js} +1 -1
  53. package/app/dist/assets/{nginx-tsneJbc1.js → nginx-DfhY1ECI.js} +1 -1
  54. package/app/dist/assets/{nim-Uh4_TEhl.js → nim-CY6yBY6c.js} +1 -1
  55. package/app/dist/assets/{page-shell-BdV9dDbP.js → page-shell-BWng2QUG.js} +1 -1
  56. package/app/dist/assets/{perl-Cvf95oTY.js → perl-BRRcO43t.js} +1 -1
  57. package/app/dist/assets/{php-B83K9nvD.js → php-DoQeKnTv.js} +1 -1
  58. package/app/dist/assets/{pill-T3MuOnWq.js → pill-CoTRlxZ6.js} +1 -1
  59. package/app/dist/assets/{pug-DgUV-atw.js → pug-BusbjPKV.js} +1 -1
  60. package/app/dist/assets/{qml-DSVs6hjq.js → qml-D4hm6vUS.js} +1 -1
  61. package/app/dist/assets/{r-SJZNyiX3.js → r-C3JOt0ks.js} +1 -1
  62. package/app/dist/assets/{razor-CT_zg6et.js → razor-MHFIGhr-.js} +1 -1
  63. package/app/dist/assets/{regexp-CPrDWy5-.js → regexp-DmDmHqK0.js} +1 -1
  64. package/app/dist/assets/{rst-B9Z3vumO.js → rst-D5K5OvKu.js} +1 -1
  65. package/app/dist/assets/{ruby-C4G9wCRV.js → ruby-qXw_ViMa.js} +1 -1
  66. package/app/dist/assets/{sas-DtD9kPDC.js → sas-SiqJsOSW.js} +1 -1
  67. package/app/dist/assets/{scss-DcJY8Ckr.js → scss-B9bBsqJt.js} +1 -1
  68. package/app/dist/assets/{settings-section-CckkqJNV.js → settings-section-B0JkCbim.js} +1 -1
  69. package/app/dist/assets/{shellscript-CpA00qMx.js → shellscript-B0hF8Ck_.js} +1 -1
  70. package/app/dist/assets/{shellsession-DFkHMqry.js → shellsession-kbvqTqYV.js} +1 -1
  71. package/app/dist/assets/{soy-DEEx3Rib.js → soy-DED6zzHR.js} +1 -1
  72. package/app/dist/assets/split-button-D4kqBiFb.js +1 -0
  73. package/app/dist/assets/{sql-CnuL_wU6.js → sql-kJQbrAD6.js} +1 -1
  74. package/app/dist/assets/{stata-TDxB0qbw.js → stata-Bsjpyopz.js} +1 -1
  75. package/app/dist/assets/{surrealql-GfZLB7-R.js → surrealql-CV66KZgA.js} +1 -1
  76. package/app/dist/assets/{svelte-C1vkmr9X.js → svelte-DQTF70EG.js} +1 -1
  77. package/app/dist/assets/{templ-i1836R3s.js → templ-5jXq5O2y.js} +1 -1
  78. package/app/dist/assets/{tex-DHz9nFDC.js → tex-BKPWc06x.js} +1 -1
  79. package/app/dist/assets/thread-queries-fJ7WqAPD.js +1 -0
  80. package/app/dist/assets/{ts-tags-CsR619BC.js → ts-tags-DHR5Sjbn.js} +1 -1
  81. package/app/dist/assets/{tsx-CXRf_lPc.js → tsx-BikICA1y.js} +1 -1
  82. package/app/dist/assets/{twig-B_nSkJZb.js → twig-D00gH1GT.js} +1 -1
  83. package/app/dist/assets/{typescript-Cu2naiFK.js → typescript-B9SUz1Ri.js} +1 -1
  84. package/app/dist/assets/{vue-html-Dv_PI5xi.js → vue-html-CxTWudeN.js} +1 -1
  85. package/app/dist/assets/{vue-D3uT4E2F.js → vue-nmyY5t9g.js} +1 -1
  86. package/app/dist/assets/{vue-vine-CTHIuOTa.js → vue-vine-DKOrFY9Z.js} +1 -1
  87. package/app/dist/assets/{xml-CWWC84Is.js → xml-vPV5v5Ih.js} +1 -1
  88. package/app/dist/assets/{xsl-CXHXpU_z.js → xsl-FiPzBrgC.js} +1 -1
  89. package/app/dist/assets/{yaml-MdGg4yLc.js → yaml-CYAqjA7C.js} +1 -1
  90. package/app/dist/index.html +8 -8
  91. package/dist/bb-app.js +77 -15
  92. package/dist/bb-host-daemon.js +57 -5
  93. package/host-daemon/dist/daemon-bundle.mjs +215 -215
  94. package/package.json +1 -1
  95. package/server/dist/index.js +1886 -1666
  96. package/app/dist/assets/InternalReplayListView-Cxndg0Hg.js +0 -1
  97. package/app/dist/assets/ProjectSettingsView-GUrHZAv8.js +0 -1
  98. package/app/dist/assets/ThreadDetailRoute-DpnTShJQ.js +0 -2871
  99. package/app/dist/assets/ThreadUnarchiveButton-D_xRAhIX.js +0 -1
  100. package/app/dist/assets/localhost-badge-CSYdoqAD.js +0 -22
  101. package/app/dist/assets/split-button-CDmbOtUR.js +0 -1
  102. package/app/dist/assets/thread-queries-DBgy7tqz.js +0 -1
@@ -1 +0,0 @@
1
- import{Fi as e,Kt as t,Pi as n,Si as r,bi as i,fi as a,ia as o,it as s,t as c,ua as l,xi as u,xn as d,yi as f,zn as p}from"./page-shell-BdV9dDbP.js";import{n as m}from"./effective-hosts-DNH4ZZMO.js";import{n as h}from"./chunk-JZWAC4HX-CIhf07b6.js";import{D as g,O as _,T as v,un as y}from"./index-BRo1YnbF.js";import{t as b}from"./pill-T3MuOnWq.js";import{t as x}from"./split-button-CDmbOtUR.js";var S=l(o(),1),C=e(),w=1,T=[.5,1,2,5,10],E=`block min-w-0 truncate text-foreground underline underline-offset-2 transition-colors hover:text-foreground/80`;function D(e){return`${e}×`}function O(e){return new Date(e).toLocaleString()}function k(){let e=n(),[o,l]=(0,S.useState)(()=>new Set),k=e=>{l(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},A=r({queryKey:s(),queryFn:()=>d()}),{data:j=[]}=m(),M=(0,S.useMemo)(()=>new Map(j.map(e=>[e.id,e.name])),[j]),N=u({mutationFn:e=>t(e),onSuccess:()=>{y({queryClient:e})}}),P=u({mutationFn:({captureId:e,speed:t})=>p(e,{speed:t}),onSuccess:e=>{window.open(`/projects/${e.projectId}/threads/${e.replayThreadId}`,`_blank`,`noopener`)}}),F=A.data?.captures??[];return(0,C.jsx)(c,{contentClassName:`pt-4 md:pt-5`,children:(0,C.jsxs)(`div`,{className:`mx-auto w-full max-w-3xl space-y-4`,children:[(0,C.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-border bg-surface-recessed px-3 py-2 text-sm text-muted-foreground`,children:[(0,C.jsx)(f,{name:`Info`,className:`mt-0.5 size-4 shrink-0`}),(0,C.jsxs)(`p`,{className:`m-0`,children:[`Replay previously captured conversations in a fresh thread. To record new captures, create threads with`,` `,(0,C.jsx)(`code`,{className:`font-mono text-xs`,children:`BB_DEV_REPLAY_CAPTURE=true pnpm dev`}),`.`]})]}),A.isLoading?(0,C.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading…`}):A.isError?(0,C.jsx)(`p`,{className:`text-sm text-destructive`,children:`Failed to load replay captures.`}):F.length===0?(0,C.jsx)(`p`,{className:`rounded-md border border-dashed border-border px-3 py-4 text-sm text-muted-foreground`,children:`No replay captures found on any connected host.`}):(0,C.jsx)(`div`,{className:`space-y-1`,children:F.map(e=>{let t=e.userInputPreview||e.captureId,n=e.kind===`thread-start`,r=n?`new`:`follow-up`,s=v(e.providerId),c=s?.icon,l=o.has(e.captureId),u=N.isPending&&N.variables===e.captureId,d=P.isPending&&P.variables?.captureId===e.captureId,p=P.isError&&P.variables?.captureId===e.captureId,m=e.eventCounts.rawProviderEvents===0,y={label:`Start replay at ${D(w)}`,onSelect:()=>P.mutate({captureId:e.captureId,speed:w}),content:(0,C.jsxs)(C.Fragment,{children:[d?(0,C.jsx)(f,{name:`Spinner`,className:`size-3 animate-spin`}):null,`Replay`]})},S=T.map(t=>({label:`Start replay at ${D(t)}`,onSelect:()=>P.mutate({captureId:e.captureId,speed:t}),content:(0,C.jsx)(`span`,{children:D(t)})}));return(0,C.jsxs)(`div`,{children:[(0,C.jsxs)(`div`,{className:`flex h-9 items-center gap-3 text-sm`,children:[(0,C.jsxs)(`button`,{type:`button`,onClick:()=>k(e.captureId),"aria-expanded":l,className:`flex min-w-0 flex-1 items-center gap-2 text-left`,children:[(0,C.jsx)(f,{name:`ChevronRight`,className:i(`size-3 shrink-0 text-muted-foreground transition-transform`,l&&`rotate-90`)}),(0,C.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,C.jsx)(`span`,{className:`min-w-0 max-w-xs truncate`,children:t}),e.title?(0,C.jsx)(`span`,{className:`min-w-0 truncate text-muted-foreground`,children:e.title}):null,(0,C.jsx)(b,{variant:n?`secondary`:`outline`,className:`shrink-0`,children:r}),c?(0,C.jsx)(c,{className:`size-3.5 shrink-0 text-muted-foreground`,"aria-label":s?.ariaLabel}):(0,C.jsx)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:e.providerId})]})]}),(0,C.jsx)(x,{disabled:d||m,primaryAction:y,secondaryActions:S,triggerLabel:`Choose replay speed`,mobileTitle:`Replay speed`}),(0,C.jsx)(a,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":`Delete replay capture`,title:`Delete replay capture`,disabled:u,onClick:()=>N.mutate(e.captureId),className:`size-6`,children:u?(0,C.jsx)(f,{name:`Spinner`,className:`size-3 animate-spin`}):(0,C.jsx)(f,{name:`Trash2`,className:`size-3`})})]}),l?(0,C.jsxs)(`div`,{className:`space-y-2 pb-3 pt-2`,children:[(0,C.jsxs)(g,{children:[(0,C.jsx)(_,{label:`Capture`,valueClassName:`min-w-0 truncate font-mono`,children:e.captureId}),(0,C.jsx)(_,{label:`Host`,valueClassName:`min-w-0 truncate`,children:M.get(e.hostId)??e.hostId}),(0,C.jsx)(_,{label:`Provider`,valueClassName:`min-w-0 truncate`,children:e.providerId}),(0,C.jsx)(_,{label:`Project`,valueClassName:`min-w-0`,children:(0,C.jsx)(h,{to:`/projects/${e.projectId}`,className:E,children:e.projectName??e.projectId})}),(0,C.jsx)(_,{label:`Thread`,valueClassName:`min-w-0`,children:(0,C.jsx)(h,{to:`/projects/${e.projectId}/threads/${e.threadId}`,className:i(E,!e.title&&`font-mono`),children:e.title??e.threadId})}),(0,C.jsx)(_,{label:`Captured`,valueClassName:`min-w-0 truncate`,children:O(e.capturedAt)}),(0,C.jsx)(_,{label:`Raw events`,valueClassName:`min-w-0 truncate`,children:e.eventCounts.rawProviderEvents})]}),p?(0,C.jsx)(`p`,{className:`text-xs text-destructive`,children:`Failed to start replay.`}):null]}):null]},`${e.hostId}:${e.captureId}`)})})]})})}export{k as InternalReplayListView};
@@ -1 +0,0 @@
1
- import{Fi as e,Pi as t,Tr as n,fi as r,ia as i,jn as a,t as o,ua as s,wr as c,xi as l,yi as u}from"./page-shell-BdV9dDbP.js";import{c as d,n as f,o as p,p as m,u as h}from"./effective-hosts-DNH4ZZMO.js";import{d as g}from"./chunk-JZWAC4HX-CIhf07b6.js";import{a as _,i as v,o as y,r as b,s as x,t as S}from"./dialog-CuU6GHxh.js";import{D as C,E as w,d as T,r as E,s as D,t as O}from"./localhost-badge-CSYdoqAD.js";import{a as k}from"./mutation-cache-effects-xpqBLSkL.js";import{an as A,in as j,mn as M,pn as N}from"./index-BRo1YnbF.js";import{n as P,r as F,t as I}from"./settings-section-CckkqJNV.js";import{t as L}from"./pill-T3MuOnWq.js";var R=s(i(),1),z=e();function B({target:e,pending:t,onOpenChange:n,onDelete:r}){return(0,z.jsx)(S,{open:e!==null,onOpenChange:n,children:(0,z.jsx)(b,{children:e?(0,z.jsx)(V,{target:e,pending:t,onDelete:r}):null})})}function V({target:e,pending:t,onDelete:n}){return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(y,{children:[(0,z.jsx)(x,{children:`Remove source?`}),(0,z.jsx)(v,{children:`Remove "${e.label}" from this project? This cannot be undone.`})]}),(0,z.jsx)(_,{children:(0,z.jsx)(r,{type:`button`,variant:`destructive`,disabled:t,onClick:()=>n(e.id),children:`Remove source`})})]})}function H({source:e,isLocalhostSource:t,isLocalPathInvalid:n,hostName:i,isEditPending:a,isOnlySource:o,onEditLocalPath:s,onRemove:c}){return(0,z.jsxs)(I,{children:[(0,z.jsx)(u,{name:E,className:`size-4 shrink-0 text-muted-foreground`}),(0,z.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-baseline gap-1.5`,children:[(0,z.jsx)(`span`,{className:`min-w-0 flex-shrink truncate`,children:e.path}),(0,z.jsx)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:i}),t?(0,z.jsx)(`span`,{className:`self-center`,children:(0,z.jsx)(O,{})}):null,n?(0,z.jsx)(L,{variant:`destructive`,children:`Invalid local path`}):null]}),(0,z.jsxs)(p,{children:[(0,z.jsx)(m,{asChild:!0,children:(0,z.jsx)(r,{variant:`ghost`,size:`icon`,className:`h-7 w-7 shrink-0`,"aria-label":`Source actions`,children:(0,z.jsx)(u,{name:`MoreHorizontal`,className:`size-4`})})}),(0,z.jsxs)(d,{align:`end`,className:`w-40`,children:[t?(0,z.jsx)(h,{disabled:a,onSelect:t=>{t.preventDefault(),s(e)},children:`Edit local path`}):null,(0,z.jsx)(h,{className:`text-destructive focus:text-destructive`,disabled:o,onSelect:()=>c(e),children:`Remove`})]})]})]})}function U(e,t){return t.get(e.hostId)??e.hostId}function W(){let{projectId:e}=g(),i=C(),s=w({enabled:i.isSuccess||i.isError}),u=s.data,d=i.isFetching||s.isLoading,{data:p=[]}=f(),m=t(),[h,_]=(0,R.useState)(null),v=l({meta:{errorMessage:`Failed to remove source.`},mutationFn:({sourceId:t})=>e?a(e,t):Promise.resolve(),onSuccess:()=>{k({projectId:e,queryClient:m}),_(null)}}),y=D(),b=T(),x=u?.find(t=>t.id===e),S=x?.sources,E=(0,R.useMemo)(()=>S??[],[S]),O=(0,R.useMemo)(()=>new Map(p.map(e=>[e.id,e.name])),[p]),I=x?.name??``,L=y.isPending||b.isPending,V=A({isPending:L,submit:(0,R.useCallback)(({path:t,hostId:r,target:i,closeDialog:a})=>{if(e){if(i.kind===`add-source`)y.mutate({projectId:e,path:t,hostId:r},{onSuccess:a});else if(i.kind===`update`){let i=E.find(e=>n(e)&&e.hostId===r);if(!i)return;b.mutate({projectId:e,sourceId:i.id,path:t},{onSuccess:a})}}},[y,e,E,b])}),W=(0,R.useCallback)(()=>{e&&V.openPicker({kind:`add-source`,projectId:e,projectName:I})},[V,e,I]),G=(0,R.useCallback)(t=>{e&&V.openPicker({kind:`update`,projectId:e,projectName:I,currentPath:t.path})},[V,e,I]),K=V.localHostId,q=M((0,R.useMemo)(()=>K?E.filter(e=>n(e)&&e.hostId===K).map(e=>e.path):[],[K,E])),J=K!=null&&!c(E,K)?(0,z.jsx)(`div`,{className:`mt-2 flex gap-2`,children:(0,z.jsx)(r,{size:`sm`,variant:`outline`,disabled:y.isPending,onClick:W,children:`Add local path`})}):null;return(0,z.jsxs)(o,{contentClassName:`pt-4 md:pt-5`,children:[(0,z.jsx)(`div`,{className:`mx-auto w-full max-w-3xl space-y-6`,children:(0,z.jsx)(F,{title:`Project Sources`,children:d?(0,z.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading…`}):E.length===0?(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No sources configured.`}),J]}):(0,z.jsxs)(`div`,{children:[(0,z.jsx)(P,{children:E.map(e=>{let t=n(e)&&K!=null&&e.hostId===K;return(0,z.jsx)(H,{source:e,isLocalhostSource:t,isLocalPathInvalid:t&&N(q,e.path),hostName:n(e)?O.get(e.hostId)??e.hostId:``,isEditPending:L,isOnlySource:E.length<=1,onEditLocalPath:G,onRemove:e=>_({id:e.id,label:U(e,O)})},e.id)})}),J]})})}),(0,z.jsx)(j,{target:V.projectPathDialog.target,pending:L,platform:V.platform,onOpenChange:V.projectPathDialog.onOpenChange,onSubmit:V.submitProjectPath}),(0,z.jsx)(B,{target:h,pending:v.isPending,onOpenChange:e=>{e||_(null)},onDelete:e=>v.mutate({sourceId:e})})]})}export{W as ProjectSettingsView};