@cmmd-center/forge 0.14.0 → 0.14.2

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 (70) hide show
  1. package/dist/bin.cjs +1891 -214
  2. package/dist/bin.mjs +1885 -208
  3. package/dist/client/assets/{CanvasPanel-BeSvnc85.js → CanvasPanel-Bk1rL0LG.js} +3 -3
  4. package/dist/client/assets/CompositeItem-D1GrQhpu.js +2 -0
  5. package/dist/client/assets/CompositeList-CEBk8sf_.js +2 -0
  6. package/dist/client/assets/DiffPanel-jC25MVg8.js +64 -0
  7. package/dist/client/assets/{DiffPanel.logic-42kqO7mO.js → DiffPanel.logic-DHo4jHZM.js} +6 -6
  8. package/dist/client/assets/{DiffWorkerPoolProvider-BO6WD83s.js → DiffWorkerPoolProvider-r1DUfA1d.js} +10 -10
  9. package/dist/client/assets/Effect-CyyMOw4X.js +15 -0
  10. package/dist/client/assets/PullRequestCodePanel-BWuWxI6X.js +5 -0
  11. package/dist/client/assets/Schema-8EGdYSms.js +3 -0
  12. package/dist/client/assets/Stream-Bvl2Z6qI.js +2 -0
  13. package/dist/client/assets/ThemeEditorPanel-BOkxNR3t.js +2 -0
  14. package/dist/client/assets/Virtualizer-DOL71mrP.js +2 -0
  15. package/dist/client/assets/WorkerPoolContext-gI2-7Koc.js +2538 -0
  16. package/dist/client/assets/activeOrganizationId-CySrJzMX.js +2 -0
  17. package/dist/client/assets/atomRegistry-CzI2zp7d.js +3 -0
  18. package/dist/client/assets/{canvasStateStore-DYt9MgFu.js → canvasStateStore-dUmp5NFj.js} +2 -2
  19. package/dist/client/assets/chevron-left-BXpfeqsT.js +2 -0
  20. package/dist/client/assets/chevron-right-B103tjaJ.js +2 -0
  21. package/dist/client/assets/cmmdAuthRedirect-CHlAAdAc.js +3 -0
  22. package/dist/client/assets/cmmdEmbedMode-DhVvltxi.js +2 -0
  23. package/dist/client/assets/currentForgeWorkspaceStore-eKCBxKgv.js +2 -0
  24. package/dist/client/assets/dialog-BfhVD7Kq.js +2 -0
  25. package/dist/client/assets/getPseudoElementBounds-DBf0dPO9.js +2 -0
  26. package/dist/client/assets/index-BS4FABiE.js +301 -0
  27. package/dist/client/assets/minus-CbEeUDFT.js +2 -0
  28. package/dist/client/assets/popover-D8qvi5AD.js +2 -0
  29. package/dist/client/assets/{react-D4GEJ3ir.js → react-A0DLYjwn.js} +2 -2
  30. package/dist/client/assets/scroll-area-BDuz0PnB.js +2 -0
  31. package/dist/client/assets/sidebarV2CustomSnoozeDialog-pxOuwuY2.js +2 -0
  32. package/dist/client/assets/src-7C4X1Oy2.js +2 -0
  33. package/dist/client/assets/switch-BeaQwtm7.js +2 -0
  34. package/dist/client/assets/{themePalette-BWvBK22X.js → themePalette-D4rx0k29.js} +2 -2
  35. package/dist/client/assets/toggle--uJ9LmDV.js +2 -0
  36. package/dist/client/assets/toggle-group-6UcL78FY.js +2 -0
  37. package/dist/client/assets/tooltip-C_eHCky0.js +2 -0
  38. package/dist/client/assets/useOpenInteractionType-BFjAYgzR.js +2 -0
  39. package/dist/client/assets/{workspaceReadinessAtom-D6bgTvKb.js → workspaceReadinessAtom-BIm13kLJ.js} +2 -2
  40. package/dist/client/index.html +33 -31
  41. package/dist/forge-build.json +1 -1
  42. package/package.json +1 -1
  43. package/dist/client/assets/CompositeItem-DTyKsv13.js +0 -2
  44. package/dist/client/assets/CompositeList-Bc8TYCyy.js +0 -2
  45. package/dist/client/assets/DiffPanel-WIR0Wi_H.js +0 -64
  46. package/dist/client/assets/PullRequestCodePanel-DtsLauMx.js +0 -5
  47. package/dist/client/assets/Stream-mUTFnSY9.js +0 -15
  48. package/dist/client/assets/ThemeEditorPanel-BCJuZ6ai.js +0 -2
  49. package/dist/client/assets/Virtualizer-BF0vG-Vw.js +0 -2
  50. package/dist/client/assets/WorkerPoolContext-D0Pi4ZUA.js +0 -1533
  51. package/dist/client/assets/atomRegistry-C1yW8tyM.js +0 -3
  52. package/dist/client/assets/chevron-left-1XbEOuXj.js +0 -2
  53. package/dist/client/assets/chevron-right-DAF000Jz.js +0 -2
  54. package/dist/client/assets/cmmdAuthRedirect-DRkKjx0G.js +0 -3
  55. package/dist/client/assets/cmmdForgeRuntimeListResource-TAp5gIIZ.js +0 -1008
  56. package/dist/client/assets/currentForgeWorkspaceStore-qwmFCpp4.js +0 -2
  57. package/dist/client/assets/dialog-C0bK23D8.js +0 -2
  58. package/dist/client/assets/getPseudoElementBounds-DJTX-eyW.js +0 -2
  59. package/dist/client/assets/index-BltXa50b.js +0 -301
  60. package/dist/client/assets/minus-_j91i8bf.js +0 -2
  61. package/dist/client/assets/popover-ClRgm7hB.js +0 -2
  62. package/dist/client/assets/scroll-area-BHqISEYq.js +0 -2
  63. package/dist/client/assets/sidebarV2CustomSnoozeDialog-lbAJoff_.js +0 -2
  64. package/dist/client/assets/src-B_wrKHuq.js +0 -3
  65. package/dist/client/assets/switch-BWQHMJkU.js +0 -2
  66. package/dist/client/assets/toggle-CORC1vE9.js +0 -2
  67. package/dist/client/assets/toggle-group-C9nAr6VB.js +0 -2
  68. package/dist/client/assets/tooltip-CrS-TEbN.js +0 -2
  69. package/dist/client/assets/useOpenInteractionType-KsRrk6uH.js +0 -2
  70. package/dist/client/assets/utils-xQJ3ak-X.js +0 -2
@@ -0,0 +1,64 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{Ha as t,Ti as n}from"./Effect-CyyMOw4X.js";import{Jo as r,Kr as i,Lr as a,Nn as o,Ps as s,Qc as c,Qn as l,Tn as u,Vn as d,Wn as f,c as p,d as m,el as h,fn as g,is as _,kn as v,m as y,nl as b,o as x,pi as S,qn as C,qt as w,rl as T,s as E,t as D,u as O,zl as k,zn as A}from"./WorkerPoolContext-gI2-7Koc.js";import{R as j,z as M}from"./Stream-Bvl2Z6qI.js";import{fn as N}from"./CompositeItem-D1GrQhpu.js";import{a as P,c as F,i as I,l as L,n as R,o as z,r as B,s as V,t as H}from"./Virtualizer-DOL71mrP.js";import{at as U,ot as W}from"./src-7C4X1Oy2.js";import"./cmmdAuthRedirect-CHlAAdAc.js";import{L as G}from"./Schema-8EGdYSms.js";import{t as K}from"./chevron-left-BXpfeqsT.js";import{t as q}from"./chevron-right-B103tjaJ.js";import{a as J,c as ee,d as te,h as ne,i as re,l as ie,m as ae,n as oe,o as Y,p as se,r as ce,s as le,t as ue,u as de}from"./DiffPanel.logic-DHo4jHZM.js";import{n as fe,t as X}from"./toggle-group-6UcL78FY.js";var Z=e(t(),1),pe=typeof window>`u`?Z.useEffect:Z.useLayoutEffect;function me({fileDiff:e,options:t,editorOptions:n,lineAnnotations:r,selectedLines:i,prerenderedHTML:a,metrics:o,hasGutterRenderUtility:s,hasCustomHeader:c,disableWorkerPool:l,edit:u}){let d=R(),f=i!==void 0,m=(0,Z.useContext)(D),h=E(),g=(0,Z.useRef)(null),_=p(n=>{if(n!=null){if(g.current!=null)throw Error(`useFileDiffInstance: An instance should not already exist when a node is created`);d==null?g.current=new te(he({controlledSelection:f,hasCustomHeader:c,hasGutterRenderUtility:s,options:t}),l?void 0:m,!0):g.current=new de(he({controlledSelection:f,hasCustomHeader:c,hasGutterRenderUtility:s,options:t}),d,o,l?void 0:m,!0),g.current.hydrate({fileDiff:e,fileContainer:n,lineAnnotations:r,prerenderedHTML:a})}else{if(g.current==null)throw Error(`useFileDiffInstance: A FileDiff instance should exist when unmounting`);g.current.cleanUp(),g.current=null}});return pe(()=>{let{current:n}=g;if(n==null)return;let a=he({controlledSelection:f,hasCustomHeader:c,hasGutterRenderUtility:s,options:t}),o=a!==void 0&&!w(n.options,a);n.setOptions(a),n.render({forceRender:o,fileDiff:e,lineAnnotations:r}),i!==void 0&&n.setSelectedLines(i)}),pe(()=>{if(u&&g.current!=null){if(h===void 0)throw Error(`FileDiff: EditContext is not attached`);let e=h(n??{});if(e==null)throw Error(`FileDiff: EditProvider.createEditor must return an editor instance`);try{return e.edit(g.current)}catch(t){throw e.cleanUp(),t}}},[u]),{ref:_,getHoveredLine:(0,Z.useCallback)(()=>g.current?.getHoveredLine(),[])}}function he({options:e,controlledSelection:t,hasCustomHeader:n,hasGutterRenderUtility:r}){return t||r||n?{...e,controlledSelection:t,renderCustomHeader:n?x:e?.renderCustomHeader,renderGutterUtility:r?x:e?.renderGutterUtility}:e}var Q=M();function ge({fileDiff:e,options:t,editorOptions:n,metrics:r,lineAnnotations:i,selectedLines:a,className:o,style:s,prerenderedHTML:c,renderAnnotation:l,renderCustomHeader:u,renderHeaderPrefix:d,renderHeaderFilenameSuffix:f,renderHeaderMetadata:p,renderGutterUtility:m,disableWorkerPool:h=!1,edit:_=!1}){let{ref:v,getHoveredLine:y}=me({fileDiff:e,options:t,editorOptions:n,metrics:r,lineAnnotations:i,selectedLines:a,prerenderedHTML:c,hasGutterRenderUtility:m!=null,hasCustomHeader:u!=null,disableWorkerPool:h,edit:_});return(0,Q.jsx)(g,{ref:v,className:o,style:s,children:B(ie({fileDiff:e,renderCustomHeader:u,renderHeaderPrefix:d,renderHeaderFilenameSuffix:f,renderHeaderMetadata:p,renderAnnotation:l,renderGutterUtility:m,lineAnnotations:i,getHoveredLine:y}),c)})}var $=j();function _e(e){return e.fromTurnCount===0?G(U)({threadId:e.threadId,toTurnCount:e.toTurnCount}).pipe(n(e=>({kind:`fullThreadDiff`,input:e}))):G(W)({threadId:e.threadId,fromTurnCount:e.fromTurnCount,toTurnCount:e.toTurnCount}).pipe(n(e=>({kind:`turnDiff`,input:e})))}function ve(e){return e instanceof Error?e.message:typeof e==`string`?e:``}function ye(e){let t=ve(e).trim();if(t.length===0)return`Failed to load checkpoint diff.`;let n=t.toLowerCase();if(n.includes(`not a git repository`))return`Turn diffs are unavailable because this project is not a git repository.`;if(n.includes(`checkpoint unavailable for thread`)||n.includes(`checkpoint invariant violation`)){let e=t.indexOf(`:`);if(e>=0){let n=t.slice(e+1).trim();if(n.length>0)return n}}return t}function be(e){let t=ve(e).toLowerCase();return t.includes(`exceeds current turn count`)||t.includes(`checkpoint is unavailable for turn`)||t.includes(`filesystem checkpoint is unavailable`)}function xe(e){let t=_e(e);return b({queryKey:s.checkpointDiff(e),queryFn:async({signal:n})=>{if(!e.environmentId||!e.threadId||t._tag===`None`)throw Error(`Checkpoint diff is unavailable.`);let r=l(e.environmentId);try{return t.value.kind===`fullThreadDiff`?await r.orchestration.getFullThreadDiff(t.value.input,{signal:n}):await r.orchestration.getTurnDiff(t.value.input,{signal:n})}catch(e){throw Error(ye(e),{cause:e})}},enabled:(e.enabled??!0)&&!!e.environmentId&&!!e.threadId&&t._tag===`Some`,staleTime:1/0,retry:(e,t)=>be(t)?e<12:e<3,retryDelay:(e,t)=>be(t)?Math.min(5e3,250*2**(e-1)):Math.min(1e3,100*2**(e-1))})}function Se(e){if(!(!e.canScrollLeft&&!e.canScrollRight))return{maskImage:`linear-gradient(to right, ${e.canScrollLeft?`transparent 24px, black 72px`:`black`}, ${e.canScrollRight?`black calc(100% - 72px), transparent calc(100% - 24px)`:`black`})`}}function Ce(e){return e instanceof Error?e.message:e?`Failed to load checkpoint diff.`:null}function we(e){return{environmentId:e.environmentId??null,threadId:e.threadId,fromTurnCount:e.range?.fromTurnCount??null,toTurnCount:e.range?.toTurnCount??null,cacheScope:e.selectedTurnId?`turn:${e.selectedTurnId}`:e.conversationCacheScope,enabled:e.enabled}}function Te(){let e=(0,$.c)(8),t=(0,Z.useRef)(null),[n,r]=(0,Z.useState)(!1),[i,a]=(0,Z.useState)(!1),o;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>{let e=t.current;if(!e){r(!1),a(!1);return}let n=le({scrollLeft:e.scrollLeft,scrollWidth:e.scrollWidth,clientWidth:e.clientWidth});r(n.canScrollLeft),a(n.canScrollRight)},e[0]=o):o=e[0];let s=o,c;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=e=>{t.current?.scrollBy({left:e,behavior:`smooth`})},e[1]=c):c=e[1];let l=c,u;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=e=>{let n=t.current;n&&ee({scrollWidth:n.scrollWidth,clientWidth:n.clientWidth,deltaX:e.deltaX,deltaY:e.deltaY})&&(e.preventDefault(),n.scrollBy({left:e.deltaY,behavior:`auto`}))},e[2]=u):u=e[2];let d=u,f,p;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=()=>{let e=t.current;if(!e)return;let n=window.requestAnimationFrame(s),r=()=>s();e.addEventListener(`scroll`,r,{passive:!0});let i=new ResizeObserver(()=>s());return i.observe(e),()=>{window.cancelAnimationFrame(n),e.removeEventListener(`scroll`,r),i.disconnect()}},p=[s],e[3]=f,e[4]=p):(f=e[3],p=e[4]),(0,Z.useEffect)(f,p);let m;return e[5]!==n||e[6]!==i?(m={ref:t,canScrollLeft:n,canScrollRight:i,scrollBy:l,onWheel:d,remeasure:s},e[5]=n,e[6]=i,e[7]=m):m=e[7],m}function Ee(e,t){let n=(0,$.c)(5),r;n[0]===e.current?r=n[1]:(r=()=>{(e.current?.querySelector(`[data-turn-chip-selected='true']`))?.scrollIntoView({block:`nearest`,inline:`nearest`,behavior:`smooth`})},n[0]=e.current,n[1]=r);let i;n[2]!==e||n[3]!==t?(i=[e,t],n[2]=e,n[3]=t,n[4]=i):i=n[4],(0,Z.useEffect)(r,i)}var De=`
2
+ [data-diffs-header],
3
+ [data-diff],
4
+ [data-file],
5
+ [data-error-wrapper],
6
+ [data-virtualizer-buffer] {
7
+ --diffs-bg: color-mix(in srgb, var(--card) 90%, var(--background)) !important;
8
+ --diffs-light-bg: color-mix(in srgb, var(--card) 90%, var(--background)) !important;
9
+ --diffs-dark-bg: color-mix(in srgb, var(--card) 90%, var(--background)) !important;
10
+ --diffs-token-light-bg: transparent;
11
+ --diffs-token-dark-bg: transparent;
12
+
13
+ --diffs-bg-context-override: color-mix(in srgb, var(--background) 97%, var(--foreground));
14
+ --diffs-bg-hover-override: color-mix(in srgb, var(--background) 94%, var(--foreground));
15
+ --diffs-bg-separator-override: color-mix(in srgb, var(--background) 95%, var(--foreground));
16
+ --diffs-bg-buffer-override: color-mix(in srgb, var(--background) 90%, var(--foreground));
17
+
18
+ --diffs-bg-addition-override: color-mix(in srgb, var(--background) 92%, var(--success));
19
+ --diffs-bg-addition-number-override: color-mix(in srgb, var(--background) 88%, var(--success));
20
+ --diffs-bg-addition-hover-override: color-mix(in srgb, var(--background) 85%, var(--success));
21
+ --diffs-bg-addition-emphasis-override: color-mix(in srgb, var(--background) 80%, var(--success));
22
+
23
+ --diffs-bg-deletion-override: color-mix(in srgb, var(--background) 92%, var(--destructive));
24
+ --diffs-bg-deletion-number-override: color-mix(in srgb, var(--background) 88%, var(--destructive));
25
+ --diffs-bg-deletion-hover-override: color-mix(in srgb, var(--background) 85%, var(--destructive));
26
+ --diffs-bg-deletion-emphasis-override: color-mix(
27
+ in srgb,
28
+ var(--background) 80%,
29
+ var(--destructive)
30
+ );
31
+
32
+ background-color: var(--diffs-bg) !important;
33
+ }
34
+
35
+ [data-file-info] {
36
+ background-color: color-mix(in srgb, var(--card) 94%, var(--foreground)) !important;
37
+ border-block-color: var(--border) !important;
38
+ color: var(--foreground) !important;
39
+ }
40
+
41
+ [data-diffs-header] {
42
+ position: sticky !important;
43
+ top: 0;
44
+ z-index: 4;
45
+ background-color: color-mix(in srgb, var(--card) 94%, var(--foreground)) !important;
46
+ border-bottom: 1px solid var(--border) !important;
47
+ }
48
+
49
+ [data-title] {
50
+ cursor: pointer;
51
+ transition:
52
+ color 120ms ease,
53
+ text-decoration-color 120ms ease;
54
+ text-decoration: underline;
55
+ text-decoration-color: transparent;
56
+ text-underline-offset: 2px;
57
+ }
58
+
59
+ [data-title]:hover {
60
+ color: color-mix(in srgb, var(--foreground) 84%, var(--primary)) !important;
61
+ text-decoration-color: currentColor;
62
+ }
63
+ `;function Oe(e){let t=(0,$.c)(44),{mode:n}=e,r=n===void 0?`inline`:n,{resolvedTheme:a}=o(),s=i(),[l,d]=(0,Z.useState)(`stacked`),[f,p]=(0,Z.useState)(s.diffWordWrap),g=(0,Z.useRef)(null),_=(0,Z.useRef)(!1),y=Te(),{activeCwd:b,activeThread:x,bodyState:S,diffOpen:w,inferredCheckpointTurnCountByTurnId:T,orderedTurnDiffSummaries:E,renderableFiles:D,renderablePatch:O,selectedFilePath:k,selectedTurn:j,selectedTurnId:M}=Le(a),N,P;t[0]!==w||t[1]!==s.diffWordWrap?(N=()=>{w&&!_.current&&p(s.diffWordWrap),_.current=w},P=[w,s.diffWordWrap],t[0]=w,t[1]=s.diffWordWrap,t[2]=N,t[3]=P):(N=t[2],P=t[3]),(0,Z.useEffect)(N,P);let F;t[4]===k?F=t[5]:(F=()=>{!k||!g.current||Array.from(g.current.querySelectorAll(`[data-diff-file-path]`)).find(e=>e.dataset.diffFilePath===k)?.scrollIntoView({block:`nearest`})},t[4]=k,t[5]=F);let I;t[6]!==D||t[7]!==k?(I=[k,D],t[6]=D,t[7]=k,t[8]=I):I=t[8],(0,Z.useEffect)(F,I);let L;t[9]===b?L=t[10]:(L=e=>{let t=A();if(!t)return;let n=b?u(e,b):e;v(t,n).catch(ke)},t[9]=b,t[10]=L);let R=L,z;t[11]===x?z=t[12]:(z=e=>{x&&C.getState().openDiff(h(c(x.environmentId,x.id)),e)},t[11]=x,t[12]=z);let B=z,V;t[13]===x?V=t[14]:(V=()=>{x&&C.getState().openDiff(h(c(x.environmentId,x.id)))},t[13]=x,t[14]=V);let H=V,U;t[15]===y.remeasure?U=t[16]:(U=()=>{let e=window.requestAnimationFrame(y.remeasure);return()=>window.cancelAnimationFrame(e)},t[15]=y.remeasure,t[16]=U);let W;t[17]!==E||t[18]!==M||t[19]!==y.remeasure?(W=[E,M,y.remeasure],t[17]=E,t[18]=M,t[19]=y.remeasure,t[20]=W):W=t[20],(0,Z.useEffect)(U,W),Ee(y.ref,j?.turnId??M);let G;t[21]!==l||t[22]!==f||t[23]!==T||t[24]!==E||t[25]!==B||t[26]!==H||t[27]!==j||t[28]!==M||t[29]!==s||t[30]!==y?(G=(0,Q.jsx)(Ae,{diffRenderMode:l,diffWordWrap:f,inferredCheckpointTurnCountByTurnId:T,orderedTurnDiffSummaries:E,selectTurn:B,selectWholeConversation:H,selectedTurn:j,selectedTurnId:M,setDiffRenderMode:d,setDiffWordWrap:p,settings:s,turnStrip:y}),t[21]=l,t[22]=f,t[23]=T,t[24]=E,t[25]=B,t[26]=H,t[27]=j,t[28]=M,t[29]=s,t[30]=y,t[31]=G):G=t[31];let K=G,q;t[32]!==S||t[33]!==l||t[34]!==f||t[35]!==R||t[36]!==D||t[37]!==O||t[38]!==a?(q=(0,Q.jsx)(je,{bodyState:S,diffRenderMode:l,diffWordWrap:f,openDiffFileInEditor:R,patchViewportRef:g,renderableFiles:D,renderablePatch:O,resolvedTheme:a}),t[32]=S,t[33]=l,t[34]=f,t[35]=R,t[36]=D,t[37]=O,t[38]=a,t[39]=q):q=t[39];let J;return t[40]!==K||t[41]!==r||t[42]!==q?(J=(0,Q.jsx)(m,{mode:r,header:K,children:q}),t[40]=K,t[41]=r,t[42]=q,t[43]=J):J=t[43],J}function ke(e){console.warn(`Failed to open diff file in editor.`,e)}function Ae(e){let t=(0,$.c)(59),{diffRenderMode:n,diffWordWrap:r,inferredCheckpointTurnCountByTurnId:i,orderedTurnDiffSummaries:a,selectTurn:o,selectWholeConversation:s,selectedTurn:c,selectedTurnId:l,setDiffRenderMode:u,setDiffWordWrap:d,settings:f,turnStrip:p}=e,m,h;t[0]===p?(m=t[1],h=t[2]):(m=(0,Q.jsx)(Be,{direction:`left`,strip:p}),h=(0,Q.jsx)(Be,{direction:`right`,strip:p}),t[0]=p,t[1]=m,t[2]=h);let g=p.ref,_;t[3]!==p.canScrollLeft||t[4]!==p.canScrollRight?(_=Se({canScrollLeft:p.canScrollLeft,canScrollRight:p.canScrollRight}),t[3]=p.canScrollLeft,t[4]=p.canScrollRight,t[5]=_):_=t[5];let v=p.onWheel,y=l===null,b=l===null?`border-border bg-accent text-accent-foreground`:`border-border/70 bg-background/70 text-muted-foreground/80 hover:border-border hover:text-foreground/80`,x;t[6]===b?x=t[7]:(x=N(`rounded-md border px-2 py-1 text-left transition-colors`,b),t[6]=b,t[7]=x);let S;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,Q.jsx)(`div`,{className:`text-[10px] leading-tight font-medium`,children:`All turns`}),t[8]=S):S=t[8];let C;t[9]===x?C=t[10]:(C=(0,Q.jsx)(`div`,{className:x,children:S}),t[9]=x,t[10]=C);let w;t[11]!==s||t[12]!==C||t[13]!==y?(w=(0,Q.jsx)(`button`,{type:`button`,className:`shrink-0 rounded-md`,onClick:s,"data-turn-chip-selected":y,children:C}),t[11]=s,t[12]=C,t[13]=y,t[14]=w):w=t[14];let T;if(t[15]!==i||t[16]!==a||t[17]!==o||t[18]!==c?.turnId||t[19]!==f){let e;t[21]!==i||t[22]!==o||t[23]!==c?.turnId||t[24]!==f?(e=e=>(0,Q.jsx)(Ve,{summary:e,selected:e.turnId===c?.turnId,turnCount:e.checkpointTurnCount??i[e.turnId],timestampFormat:f.timestampFormat,onSelect:o},e.turnId),t[21]=i,t[22]=o,t[23]=c?.turnId,t[24]=f,t[25]=e):e=t[25],T=a.map(e),t[15]=i,t[16]=a,t[17]=o,t[18]=c?.turnId,t[19]=f,t[20]=T}else T=t[20];let E;t[26]!==w||t[27]!==T||t[28]!==_||t[29]!==p.onWheel||t[30]!==p.ref?(E=(0,Q.jsxs)(`div`,{ref:g,className:`turn-chip-strip flex gap-1 overflow-x-auto px-8 py-0.5`,style:_,onWheel:v,children:[w,T]}),t[26]=w,t[27]=T,t[28]=_,t[29]=p.onWheel,t[30]=p.ref,t[31]=E):E=t[31];let D;t[32]!==m||t[33]!==E||t[34]!==h?(D=(0,Q.jsxs)(`div`,{className:`relative min-w-0 flex-1 [-webkit-app-region:no-drag]`,children:[m,h,E]}),t[32]=m,t[33]=E,t[34]=h,t[35]=D):D=t[35];let O;t[36]===n?O=t[37]:(O=[n],t[36]=n,t[37]=O);let k;t[38]===u?k=t[39]:(k=e=>{let t=e[0];(t===`stacked`||t===`split`)&&u(t)},t[38]=u,t[39]=k);let A;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,Q.jsx)(X,{"aria-label":`Stacked diff view`,value:`stacked`,children:(0,Q.jsx)(ae,{className:`size-3`})}),t[40]=A):A=t[40];let j;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,Q.jsx)(X,{"aria-label":`Split diff view`,value:`split`,children:(0,Q.jsx)(ne,{className:`size-3`})}),t[41]=j):j=t[41];let M;t[42]!==O||t[43]!==k?(M=(0,Q.jsxs)(fe,{className:`shrink-0`,variant:`outline`,size:`xs`,value:O,onValueChange:k,children:[A,j]}),t[42]=O,t[43]=k,t[44]=M):M=t[44];let P=r?`Disable diff line wrapping`:`Enable diff line wrapping`,F=r?`Disable line wrapping`:`Enable line wrapping`,I;t[45]===d?I=t[46]:(I=e=>{d(!!e)},t[45]=d,t[46]=I);let L;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,Q.jsx)(se,{className:`size-3`}),t[47]=L):L=t[47];let R;t[48]!==r||t[49]!==P||t[50]!==F||t[51]!==I?(R=(0,Q.jsx)(X,{"aria-label":P,title:F,variant:`outline`,size:`xs`,pressed:r,onPressedChange:I,children:L}),t[48]=r,t[49]=P,t[50]=F,t[51]=I,t[52]=R):R=t[52];let z;t[53]!==M||t[54]!==R?(z=(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 [-webkit-app-region:no-drag]`,children:[M,R]}),t[53]=M,t[54]=R,t[55]=z):z=t[55];let B;return t[56]!==D||t[57]!==z?(B=(0,Q.jsxs)(Q.Fragment,{children:[D,z]}),t[56]=D,t[57]=z,t[58]=B):B=t[58],B}function je(e){let t=(0,$.c)(18),{bodyState:n,diffRenderMode:r,diffWordWrap:i,openDiffFileInEditor:a,patchViewportRef:o,renderableFiles:s,renderablePatch:c,resolvedTheme:l}=e;if(n.kind===`no-thread`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(Ne,{children:`Select a thread to inspect turn diffs.`}),t[0]=e):e=t[0],e}if(n.kind===`not-git-repo`){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(Ne,{children:`Turn diffs are unavailable because this project is not a git repository.`}),t[1]=e):e=t[1],e}if(n.kind===`no-completed-turns`){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(Ne,{children:`No completed turns yet.`}),t[2]=e):e=t[2],e}let u;t[3]!==n.error||t[4]!==c?(u=n.error&&!c&&(0,Q.jsx)(`div`,{className:`px-3`,children:(0,Q.jsx)(`p`,{className:`mb-2 text-[11px] text-destructive-foreground`,children:n.error})}),t[3]=n.error,t[4]=c,t[5]=u):u=t[5];let d;t[6]!==n||t[7]!==r||t[8]!==i||t[9]!==a||t[10]!==s||t[11]!==c||t[12]!==l?(d=c?c.kind===`files`?(0,Q.jsx)(H,{className:`diff-render-surface h-full min-h-0 overflow-auto px-2 pb-2`,config:{overscrollSize:600,intersectionObserverMargin:1200},children:s.map(e=>{let t=Y(e),n=`${ue(e)}:${l}`;return(0,Q.jsx)(`div`,{"data-diff-file-path":t,className:`diff-render-file mb-2 rounded-md first:mt-2 last:mb-0`,onClickCapture:e=>{(e.nativeEvent.composedPath?.()??[]).some(Me)&&a(t)},children:(0,Q.jsx)(ge,{fileDiff:e,options:{diffStyle:r===`split`?`split`:`unified`,lineDiffType:`none`,overflow:i?`wrap`:`scroll`,theme:y(l),themeType:l,unsafeCSS:De}})},n)})}):(0,Q.jsx)(`div`,{className:`h-full overflow-auto p-2`,children:(0,Q.jsxs)(`div`,{className:`space-y-2`,children:[(0,Q.jsx)(`p`,{className:`text-[11px] text-muted-foreground/75`,children:c.reason}),(0,Q.jsx)(`pre`,{className:N(`max-h-[72vh] rounded-md border border-border/70 bg-background/70 p-3 font-mono text-[11px] leading-relaxed text-muted-foreground/90`,i?`overflow-auto whitespace-pre-wrap wrap-break-word`:`overflow-auto`),children:c.text})]})}):(0,Q.jsx)(Re,{bodyState:n}),t[6]=n,t[7]=r,t[8]=i,t[9]=a,t[10]=s,t[11]=c,t[12]=l,t[13]=d):d=t[13];let f;return t[14]!==o||t[15]!==u||t[16]!==d?(f=(0,Q.jsx)(Q.Fragment,{children:(0,Q.jsxs)(`div`,{ref:o,className:`diff-panel-viewport min-h-0 min-w-0 flex-1 overflow-hidden`,children:[u,d]})}),t[14]=o,t[15]=u,t[16]=d,t[17]=f):f=t[17],f}function Me(e){return e instanceof Element&&e.hasAttribute(`data-title`)}function Ne(e){let t=(0,$.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,Q.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-5 text-center text-xs text-muted-foreground/70`,children:n}),t[0]=n,t[1]=r),r}function Pe(){let e=(0,$.c)(19),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={strict:!1,select:Ie},e[0]=t):t=e[0];let n=k(t),r;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(r={strict:!1,select:Fe},e[1]=r):r=e[1];let i=L(r),o=i.rightPanel===`diff`,s=n?.threadId??null,c,l;e[2]===n?l=e[3]:(l=a(n),e[2]=n,e[3]=l),c=l;let u=_(c),f=He(u),p=u?.worktreePath,m=f?.cwd,h;e[4]!==p||e[5]!==m?(h=z({threadWorktreePath:p,projectCwd:m}),e[4]=p,e[5]=m,e[6]=h):h=e[6];let g=h,v=u?.environmentId??null,y=g??null,b;e[7]!==v||e[8]!==y?(b={environmentId:v,cwd:y},e[7]=v,e[8]=y,e[9]=b):b=e[9];let x=d(b),S;e[10]===x.data?S=e[11]:(S=V(x.data),e[10]=x.data,e[11]=S);let C=S,w;return e[12]!==g||e[13]!==u||e[14]!==s||e[15]!==o||e[16]!==i||e[17]!==C?(w={activeThread:u,activeThreadId:s,activeCwd:g,isGitRepo:C,diffSearch:i,diffOpen:o},e[12]=g,e[13]=u,e[14]=s,e[15]=o,e[16]=i,e[17]=C,e[18]=w):w=e[18],w}function Fe(e){return P(e)}function Ie(e){return S(e)}function Le(e){let{activeThread:t,activeThreadId:n,activeCwd:r,isGitRepo:i,diffSearch:a,diffOpen:o}=Pe(),{turnDiffSummaries:s,inferredCheckpointTurnCountByTurnId:c}=I(t),l=a.diffTurnId??null,u=l===null?null:a.diffFilePath??null,{activeCheckpointRange:d,conversationCacheScope:f,orderedTurnDiffSummaries:p,selectedTurn:m}=(0,Z.useMemo)(()=>J({summaries:s,inferredCheckpointTurnCountByTurnId:c,selectedTurnId:l}),[c,l,s]),h=T(xe(we({environmentId:t?.environmentId,threadId:n,range:d,selectedTurnId:m?.turnId,conversationCacheScope:f,enabled:i}))),g=h.isLoading,_=Ce(h.error),v=h.data?.diff,y=typeof v==`string`&&v.trim().length===0,{emptyDiffMessage:b}=(0,Z.useMemo)(()=>re(m),[m]),x=(0,Z.useMemo)(()=>oe(v,`diff-panel:${e}`),[e,v]),S=(0,Z.useMemo)(()=>Ue(x),[x]);return{activeCwd:r,activeThread:t,bodyState:ce({hasActiveThread:!!t,isGitRepo:i,turnSummaryCount:p.length,checkpointDiffError:_,hasRenderablePatch:!!x,isLoadingCheckpointDiff:g,hasNoNetChanges:y,emptyDiffMessage:b}),diffOpen:o,inferredCheckpointTurnCountByTurnId:c,orderedTurnDiffSummaries:p,renderableFiles:S,renderablePatch:x,selectedFilePath:u,selectedTurn:m,selectedTurnId:l}}function Re(e){let t=(0,$.c)(4),{bodyState:n}=e;if(n.kind===`loading`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(O,{label:`Loading checkpoint diff...`}),t[0]=e):e=t[0],e}let r;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Q.jsx)(F,{className:`size-7 text-muted-foreground/25`}),t[1]=r):r=t[1];let i=n.kind===`empty`?n.message:`No diff is available for this range.`,a;return t[2]===i?a=t[3]:(a=(0,Q.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-2 px-5 py-2 text-center`,children:[r,(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground/70`,children:i})]}),t[2]=i,t[3]=a),a}var ze=180;function Be(e){let t=(0,$.c)(14),{direction:n,strip:r}=e,i=n===`left`,a=i?r.canScrollLeft:r.canScrollRight,o=i?K:q,s=i?`left-0`:`right-0`,c=a?`border-border/70 hover:border-border hover:text-foreground`:`cursor-not-allowed border-border/40 text-muted-foreground/40`,l;t[0]!==s||t[1]!==c?(l=N(`absolute top-1/2 z-20 inline-flex size-6 -translate-y-1/2 items-center justify-center rounded-md border bg-background/90 text-muted-foreground transition-colors`,s,c),t[0]=s,t[1]=c,t[2]=l):l=t[2];let u;t[3]!==i||t[4]!==r?(u=()=>r.scrollBy(i?-180:ze),t[3]=i,t[4]=r,t[5]=u):u=t[5];let d=!a,f=`Scroll turn list ${n}`,p;t[6]===o?p=t[7]:(p=(0,Q.jsx)(o,{className:`size-3.5`}),t[6]=o,t[7]=p);let m;return t[8]!==l||t[9]!==u||t[10]!==d||t[11]!==f||t[12]!==p?(m=(0,Q.jsx)(`button`,{type:`button`,className:l,onClick:u,disabled:d,"aria-label":f,children:p}),t[8]=l,t[9]=u,t[10]=d,t[11]=f,t[12]=p,t[13]=m):m=t[13],m}function Ve(e){let t=(0,$.c)(23),{summary:n,selected:r,turnCount:i,timestampFormat:a,onSelect:o}=e,s;t[0]!==o||t[1]!==n.turnId?(s=()=>o(n.turnId),t[0]=o,t[1]=n.turnId,t[2]=s):s=t[2];let c=n.turnId,l=r?`border-border bg-accent text-accent-foreground`:`border-border/70 bg-background/70 text-muted-foreground/80 hover:border-border hover:text-foreground/80`,u;t[3]===l?u=t[4]:(u=N(`rounded-md border px-2 py-1 text-left transition-colors`,l),t[3]=l,t[4]=u);let d=i??`?`,p;t[5]===d?p=t[6]:(p=(0,Q.jsxs)(`span`,{className:`text-[10px] leading-tight font-medium`,children:[`Turn `,d]}),t[5]=d,t[6]=p);let m;t[7]!==n.completedAt||t[8]!==a?(m=f(n.completedAt,a),t[7]=n.completedAt,t[8]=a,t[9]=m):m=t[9];let h;t[10]===m?h=t[11]:(h=(0,Q.jsx)(`span`,{className:`text-[9px] leading-tight opacity-70`,children:m}),t[10]=m,t[11]=h);let g;t[12]!==p||t[13]!==h?(g=(0,Q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[p,h]}),t[12]=p,t[13]=h,t[14]=g):g=t[14];let _;t[15]!==u||t[16]!==g?(_=(0,Q.jsx)(`div`,{className:u,children:g}),t[15]=u,t[16]=g,t[17]=_):_=t[17];let v;return t[18]!==r||t[19]!==n.turnId||t[20]!==s||t[21]!==_?(v=(0,Q.jsx)(`button`,{type:`button`,className:`shrink-0 rounded-md`,onClick:s,title:c,"data-turn-chip-selected":r,children:_}),t[18]=r,t[19]=n.turnId,t[20]=s,t[21]=_,t[22]=v):v=t[22],v}function He(e){let t=(0,$.c)(3),n=e?.environmentId,i=e?.projectId,a;return t[0]!==n||t[1]!==i?(a=e=>n&&i?r(e,{environmentId:n,projectId:i}):void 0,t[0]=n,t[1]=i,t[2]=a):a=t[2],_(a)}function Ue(e){return!e||e.kind!==`files`?[]:e.files.toSorted((e,t)=>Y(e).localeCompare(Y(t),void 0,{numeric:!0,sensitivity:`base`}))}export{Oe as default};
64
+ //# sourceMappingURL=DiffPanel-jC25MVg8.js.map