@p4code/cli 0.6.44 → 0.6.46
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.
- package/dist/bin.mjs +82 -29
- package/dist/client/assets/{DiffPanel-CPNnJWpe.js → DiffPanel-D82ZjYTf.js} +2 -2
- package/dist/client/assets/{FilePreviewPanel-D216VWWl.js → FilePreviewPanel-D6QXdNh6.js} +2 -2
- package/dist/client/assets/{PreviewPanel-BCEYF36v.js → PreviewPanel-vcBi8deE.js} +2 -2
- package/dist/client/assets/{PullRequestCodeTab-DutgkNKA.js → PullRequestCodeTab-WvydcWoh.js} +2 -2
- package/dist/client/assets/{fileCommentAnnotations-DNkRcWlE.js → fileCommentAnnotations-C6DAPLaB.js} +2 -2
- package/dist/client/assets/{index-CO08ZPAJ.css → index-Bvl_aGgf.css} +1 -1
- package/dist/client/assets/{index-DVDDMSbS.js → index-Dy3CADxQ.js} +35 -26
- package/dist/client/assets/{previewAssetResource-Bv_X-cMv.js → previewAssetResource-Ddabw4pq.js} +2 -2
- package/dist/client/assets/{renderFileChildren-Bvb0Nsfb.js → renderFileChildren-0pOyNfwk.js} +2 -2
- package/dist/client/assets/{toggle-group-BbVcSyCF.js → toggle-group-B--zwwJe.js} +2 -2
- package/dist/client/index.html +3 -3
- package/package.json +1 -1
package/dist/bin.mjs
CHANGED
|
@@ -263,7 +263,7 @@ const make$123 = () => {
|
|
|
263
263
|
const layer$124 = Layer.sync(NetService, make$123);
|
|
264
264
|
//#endregion
|
|
265
265
|
//#region package.json
|
|
266
|
-
var version$1 = "0.6.
|
|
266
|
+
var version$1 = "0.6.46";
|
|
267
267
|
//#endregion
|
|
268
268
|
//#region ../../packages/shared/src/serverInstance.ts
|
|
269
269
|
/**
|
|
@@ -3002,6 +3002,7 @@ const ExecutionEnvironmentCapabilities = Schema$1.Struct({
|
|
|
3002
3002
|
never send the commands under version skew. */
|
|
3003
3003
|
threadSettlement: Schema$1.optionalKey(Schema$1.Boolean),
|
|
3004
3004
|
threadArchiveCleanup: Schema$1.optionalKey(Schema$1.Boolean),
|
|
3005
|
+
threadArchiveForceWorktree: Schema$1.optionalKey(Schema$1.Boolean),
|
|
3005
3006
|
/** Server understands thread.snooze / thread.unsnooze commands. Same
|
|
3006
3007
|
version-skew contract as threadSettlement. */
|
|
3007
3008
|
threadSnooze: Schema$1.optionalKey(Schema$1.Boolean),
|
|
@@ -3456,6 +3457,7 @@ const OrchestrationTurnSummary = Schema$1.Struct({
|
|
|
3456
3457
|
});
|
|
3457
3458
|
const ThreadArchiveCleanup = Schema$1.Struct({
|
|
3458
3459
|
worktree: Schema$1.Boolean,
|
|
3460
|
+
forceWorktree: Schema$1.optional(Schema$1.Boolean),
|
|
3459
3461
|
localBranch: Schema$1.Boolean,
|
|
3460
3462
|
remoteBranch: Schema$1.Boolean,
|
|
3461
3463
|
assets: Schema$1.Boolean
|
|
@@ -48106,6 +48108,7 @@ const make$96 = Effect.gen(function* () {
|
|
|
48106
48108
|
pullRequestStackActions: true,
|
|
48107
48109
|
threadSettlement: false,
|
|
48108
48110
|
threadArchiveCleanup: true,
|
|
48111
|
+
threadArchiveForceWorktree: true,
|
|
48109
48112
|
threadLifecycleV2: false,
|
|
48110
48113
|
checkoutPreparation: true,
|
|
48111
48114
|
threadSnooze: true,
|
|
@@ -123900,6 +123903,39 @@ const make$36 = Effect.gen(function* () {
|
|
|
123900
123903
|
}))), { discard: true });
|
|
123901
123904
|
});
|
|
123902
123905
|
const record = (input) => recordRaw(input).pipe(mapLifecycleError);
|
|
123906
|
+
const removeConfirmedWorktree = Effect.fn("threadWorkspaceLifecycle.removeConfirmedWorktree")(function* (input) {
|
|
123907
|
+
yield* record({
|
|
123908
|
+
threadIds: input.threadIds,
|
|
123909
|
+
lifecycle: {
|
|
123910
|
+
status: "cleanup-pending",
|
|
123911
|
+
detail: "Confirmed worktree deletion is pending; branches will be kept.",
|
|
123912
|
+
cleanup: input.cleanup,
|
|
123913
|
+
pullRequestNumber: input.lifecycle?.pullRequestNumber ?? null,
|
|
123914
|
+
mergeCommitSha: input.lifecycle?.mergeCommitSha ?? null,
|
|
123915
|
+
updatedAt: DateTime.formatIso(yield* DateTime.now)
|
|
123916
|
+
}
|
|
123917
|
+
});
|
|
123918
|
+
yield* gitWorkflow.removeWorktree({
|
|
123919
|
+
cwd: input.project.workspaceRoot,
|
|
123920
|
+
path: input.worktreePath,
|
|
123921
|
+
force: true
|
|
123922
|
+
});
|
|
123923
|
+
const detail = `Worktree and all its files deleted as confirmed; branches kept. Branch cleanup skipped: ${input.reason.replace("Cleanup refused because ", "")}`;
|
|
123924
|
+
yield* record({
|
|
123925
|
+
threadIds: input.threadIds,
|
|
123926
|
+
lifecycle: {
|
|
123927
|
+
status: "cleaned",
|
|
123928
|
+
detail,
|
|
123929
|
+
pullRequestNumber: input.lifecycle?.pullRequestNumber ?? null,
|
|
123930
|
+
mergeCommitSha: input.lifecycle?.mergeCommitSha ?? null,
|
|
123931
|
+
updatedAt: DateTime.formatIso(yield* DateTime.now)
|
|
123932
|
+
}
|
|
123933
|
+
});
|
|
123934
|
+
return {
|
|
123935
|
+
outcome: "cleaned",
|
|
123936
|
+
detail
|
|
123937
|
+
};
|
|
123938
|
+
});
|
|
123903
123939
|
const cleanupDetachedWorktree = Effect.fn("threadWorkspaceLifecycle.cleanupDetached")(function* (input) {
|
|
123904
123940
|
const { threadIds, project, worktreePath, refusal, now } = input;
|
|
123905
123941
|
const defaultRef = (yield* gitWorkflow.listRefs({
|
|
@@ -123908,10 +123944,10 @@ const make$36 = Effect.gen(function* () {
|
|
|
123908
123944
|
refresh: true
|
|
123909
123945
|
})).refs.find((ref) => ref.isRemote === true && ref.isDefault);
|
|
123910
123946
|
if (defaultRef === void 0 || defaultRef.remoteName === void 0) return yield* refusal("Cleanup refused because the default remote branch could not be resolved.");
|
|
123911
|
-
yield* gitWorkflow.fetchRemote({
|
|
123947
|
+
if ((yield* gitWorkflow.fetchRemote({
|
|
123912
123948
|
cwd: project.workspaceRoot,
|
|
123913
123949
|
remoteName: defaultRef.remoteName
|
|
123914
|
-
});
|
|
123950
|
+
}).pipe(Effect.result))._tag === "Failure") return yield* refusal("Cleanup refused because the default remote branch could not be fetched.");
|
|
123915
123951
|
const ancestorResult = yield* git.execute({
|
|
123916
123952
|
operation: "ThreadWorkspaceLifecycle.detachedMergeBase",
|
|
123917
123953
|
cwd: worktreePath,
|
|
@@ -123985,7 +124021,8 @@ const make$36 = Effect.gen(function* () {
|
|
|
123985
124021
|
});
|
|
123986
124022
|
if (input.cleanup === void 0 || input.cleanup.worktree) yield* gitWorkflow.removeWorktree({
|
|
123987
124023
|
cwd: project.workspaceRoot,
|
|
123988
|
-
path: worktreePath
|
|
124024
|
+
path: worktreePath,
|
|
124025
|
+
...input.cleanup?.forceWorktree ? { force: true } : {}
|
|
123989
124026
|
});
|
|
123990
124027
|
const removedDetail = input.cleanup && !input.cleanup.worktree ? "Thread assets removed; workspace preserved." : "Detached worktree removed; thread context preserved.";
|
|
123991
124028
|
const detail = input.cleanup?.localBranch || input.cleanup?.remoteBranch ? `${removedDetail} No feature branch was checked out, so branch cleanup was skipped.` : removedDetail;
|
|
@@ -124085,6 +124122,15 @@ const make$36 = Effect.gen(function* () {
|
|
|
124085
124122
|
})).stdout.split("\0").flatMap((field) => field.startsWith("worktree ") ? [field.slice(9)] : []);
|
|
124086
124123
|
if (!(yield* Effect.forEach(registeredPaths, (registeredPath) => fs.realPath(registeredPath).pipe(Effect.orElseSucceed(() => null)), { concurrency: 8 })).includes(canonicalWorktree)) return yield* refusal("Cleanup refused because this is not a registered project worktree.");
|
|
124087
124124
|
if (cleanup?.localBranch && !cleanup.worktree) return yield* refusal("Select worktree removal before deleting its checked-out local branch.");
|
|
124125
|
+
const workspaceRefusal = (detail) => cleanup?.worktree && cleanup.forceWorktree ? removeConfirmedWorktree({
|
|
124126
|
+
threadIds,
|
|
124127
|
+
project,
|
|
124128
|
+
worktreePath,
|
|
124129
|
+
cleanup,
|
|
124130
|
+
reason: detail,
|
|
124131
|
+
lifecycle: requestedThread.workspaceLifecycle
|
|
124132
|
+
}).pipe(mapLifecycleError) : refusal(detail);
|
|
124133
|
+
if (cleanup?.worktree && cleanup.forceWorktree && !cleanup.localBranch && !cleanup.remoteBranch) return yield* workspaceRefusal("Branch deletion was not selected.");
|
|
124088
124134
|
const localStatus = yield* git.statusDetailsLocal(worktreePath).pipe(Effect.mapError((cause) => new ThreadWorkspaceLifecycleError({
|
|
124089
124135
|
detail: "Could not inspect thread worktree before cleanup.",
|
|
124090
124136
|
cause
|
|
@@ -124103,7 +124149,7 @@ const make$36 = Effect.gen(function* () {
|
|
|
124103
124149
|
hasUncommittedChanges: trackedStatus === null ? localStatus.hasWorkingTreeChanges : trackedStatus.stdout.trim().length > 0,
|
|
124104
124150
|
isMerged: true
|
|
124105
124151
|
});
|
|
124106
|
-
if (dirtyRefusal !== null) return yield*
|
|
124152
|
+
if (dirtyRefusal !== null) return yield* workspaceRefusal(dirtyRefusal);
|
|
124107
124153
|
const cleanGeneratedFiles = Effect.fn("ThreadWorkspaceLifecycle.cleanGeneratedFiles")(function* () {
|
|
124108
124154
|
if (!cleanup?.assets) return;
|
|
124109
124155
|
yield* git.execute({
|
|
@@ -124119,7 +124165,7 @@ const make$36 = Effect.gen(function* () {
|
|
|
124119
124165
|
threadIds,
|
|
124120
124166
|
project,
|
|
124121
124167
|
worktreePath,
|
|
124122
|
-
refusal,
|
|
124168
|
+
refusal: workspaceRefusal,
|
|
124123
124169
|
now,
|
|
124124
124170
|
...cleanup === void 0 ? {} : { cleanup }
|
|
124125
124171
|
});
|
|
@@ -124131,11 +124177,11 @@ const make$36 = Effect.gen(function* () {
|
|
|
124131
124177
|
});
|
|
124132
124178
|
const branchRef = refs.refs.find((ref) => ref.isRemote !== true && ref.name === branch);
|
|
124133
124179
|
const defaultRef = refs.refs.find((ref) => ref.isRemote === true && ref.isDefault);
|
|
124134
|
-
if (branchRef === void 0 || defaultRef === void 0 || defaultRef.remoteName === void 0) return yield*
|
|
124135
|
-
yield* gitWorkflow.fetchRemote({
|
|
124180
|
+
if (branchRef === void 0 || defaultRef === void 0 || defaultRef.remoteName === void 0) return yield* workspaceRefusal("Cleanup refused because branch or default remote branch could not be resolved.");
|
|
124181
|
+
if ((yield* gitWorkflow.fetchRemote({
|
|
124136
124182
|
cwd: project.workspaceRoot,
|
|
124137
124183
|
remoteName: defaultRef.remoteName
|
|
124138
|
-
});
|
|
124184
|
+
}).pipe(Effect.result))._tag === "Failure") return yield* workspaceRefusal("Cleanup refused because the default remote branch could not be fetched.");
|
|
124139
124185
|
yield* gitWorkflow.invalidateStatus(worktreePath);
|
|
124140
124186
|
const pullRequestSummary = (yield* gitWorkflow.status({ cwd: worktreePath })).pr;
|
|
124141
124187
|
const repository = repositoryIdentityOf(project);
|
|
@@ -124160,7 +124206,7 @@ const make$36 = Effect.gen(function* () {
|
|
|
124160
124206
|
],
|
|
124161
124207
|
allowNonZeroExit: true
|
|
124162
124208
|
});
|
|
124163
|
-
if (ancestorResult.exitCode !== 0 && ancestorResult.exitCode !== 1) return yield*
|
|
124209
|
+
if (ancestorResult.exitCode !== 0 && ancestorResult.exitCode !== 1) return yield* workspaceRefusal("Cleanup refused because branch ancestry could not be verified.");
|
|
124164
124210
|
const branchCommitResult = yield* git.execute({
|
|
124165
124211
|
operation: "ThreadWorkspaceLifecycle.branchCommit",
|
|
124166
124212
|
cwd: project.workspaceRoot,
|
|
@@ -124192,9 +124238,9 @@ const make$36 = Effect.gen(function* () {
|
|
|
124192
124238
|
hasUncommittedChanges: false,
|
|
124193
124239
|
isMerged: merged !== null
|
|
124194
124240
|
});
|
|
124195
|
-
if (mergeRefusal !== null || merged === null) return yield*
|
|
124241
|
+
if (mergeRefusal !== null || merged === null) return yield* workspaceRefusal(mergeRefusal ?? "Cleanup refused because branch merge status is unknown.");
|
|
124196
124242
|
if (cleanup?.remoteBranch) {
|
|
124197
|
-
const
|
|
124243
|
+
const upstream = yield* git.execute({
|
|
124198
124244
|
operation: "ThreadWorkspaceLifecycle.remoteUpstream",
|
|
124199
124245
|
cwd: project.workspaceRoot,
|
|
124200
124246
|
args: [
|
|
@@ -124202,12 +124248,14 @@ const make$36 = Effect.gen(function* () {
|
|
|
124202
124248
|
"--format=%(upstream:remotename)%00%(upstream:remoteref)",
|
|
124203
124249
|
`refs/heads/${branch}`
|
|
124204
124250
|
]
|
|
124205
|
-
})
|
|
124251
|
+
}).pipe(Effect.result);
|
|
124252
|
+
if (upstream._tag === "Failure") return yield* workspaceRefusal("Cleanup refused because the feature branch's remote upstream could not be verified.");
|
|
124253
|
+
const [configuredRemote, configuredRef] = upstream.success.stdout.trim().split("\0");
|
|
124206
124254
|
const missingUpstream = !configuredRemote && !configuredRef;
|
|
124207
124255
|
const remoteName = missingUpstream ? defaultRef.remoteName : configuredRemote;
|
|
124208
124256
|
const remoteRef = missingUpstream ? `refs/heads/${branch}` : configuredRef;
|
|
124209
|
-
if (!remoteName || remoteName === "." || remoteRef !== `refs/heads/${branch}`) return yield*
|
|
124210
|
-
const
|
|
124257
|
+
if (!remoteName || remoteName === "." || remoteRef !== `refs/heads/${branch}`) return yield* workspaceRefusal("Cleanup refused because the feature branch's remote upstream could not be verified.");
|
|
124258
|
+
const remoteTip = yield* git.execute({
|
|
124211
124259
|
operation: "ThreadWorkspaceLifecycle.remoteTip",
|
|
124212
124260
|
cwd: project.workspaceRoot,
|
|
124213
124261
|
args: [
|
|
@@ -124216,19 +124264,23 @@ const make$36 = Effect.gen(function* () {
|
|
|
124216
124264
|
remoteName,
|
|
124217
124265
|
remoteRef
|
|
124218
124266
|
]
|
|
124219
|
-
})
|
|
124220
|
-
if (
|
|
124221
|
-
|
|
124222
|
-
if (remoteSha) yield*
|
|
124223
|
-
|
|
124224
|
-
|
|
124225
|
-
|
|
124226
|
-
"
|
|
124227
|
-
|
|
124228
|
-
|
|
124229
|
-
|
|
124230
|
-
|
|
124231
|
-
|
|
124267
|
+
}).pipe(Effect.result);
|
|
124268
|
+
if (remoteTip._tag === "Failure") return yield* workspaceRefusal("Cleanup refused because the remote branch could not be verified.");
|
|
124269
|
+
const remoteSha = remoteTip.success.stdout.trim().split(/\s+/)[0];
|
|
124270
|
+
if (missingUpstream && remoteSha) return yield* workspaceRefusal("Cleanup refused because a remote branch exists without a verified upstream.");
|
|
124271
|
+
if (remoteSha && remoteSha !== branchCommitResult.stdout.trim()) return yield* workspaceRefusal("Cleanup refused because the remote branch differs from the verified merged branch.");
|
|
124272
|
+
if (remoteSha) {
|
|
124273
|
+
if ((yield* git.execute({
|
|
124274
|
+
operation: "ThreadWorkspaceLifecycle.deleteRemoteBranch",
|
|
124275
|
+
cwd: project.workspaceRoot,
|
|
124276
|
+
args: [
|
|
124277
|
+
"push",
|
|
124278
|
+
`--force-with-lease=refs/heads/${branch}:${remoteSha}`,
|
|
124279
|
+
remoteName,
|
|
124280
|
+
`:refs/heads/${branch}`
|
|
124281
|
+
]
|
|
124282
|
+
}).pipe(Effect.result))._tag === "Failure") return yield* workspaceRefusal("Cleanup refused because the remote branch could not be removed.");
|
|
124283
|
+
}
|
|
124232
124284
|
}
|
|
124233
124285
|
yield* record({
|
|
124234
124286
|
threadIds,
|
|
@@ -124244,7 +124296,8 @@ const make$36 = Effect.gen(function* () {
|
|
|
124244
124296
|
yield* cleanGeneratedFiles();
|
|
124245
124297
|
if (cleanup === void 0 || cleanup.worktree) yield* gitWorkflow.removeWorktree({
|
|
124246
124298
|
cwd: project.workspaceRoot,
|
|
124247
|
-
path: worktreePath
|
|
124299
|
+
path: worktreePath,
|
|
124300
|
+
...cleanup?.forceWorktree ? { force: true } : {}
|
|
124248
124301
|
});
|
|
124249
124302
|
if (cleanup === void 0 || cleanup.localBranch) yield* git.execute({
|
|
124250
124303
|
operation: "ThreadWorkspaceLifecycle.deleteBranch",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{n as t,r as n,t as r}from"./compiler-runtime-CLAvuQ-D.js";import{$a as i,Ia as a,Jr as o,Ku as s,Qa as c,Tn as l,Ua as u,Ur as d,Wa as ee,Xa as te,Ya as f,Za as p,_l as m,bn as ne,cu as h,ei as g,g as _,gl as re,hl as v,kt as y,ml as ie,nu as b,pu as x,ut as S,vt as C,x as w,xt as T,yt as E,yu as D,za as O,zl as ae}from"./previewAssetResource-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{n as t,r as n,t as r}from"./compiler-runtime-CLAvuQ-D.js";import{$a as i,Ia as a,Jr as o,Ku as s,Qa as c,Tn as l,Ua as u,Ur as d,Wa as ee,Xa as te,Ya as f,Za as p,_l as m,bn as ne,cu as h,ei as g,g as _,gl as re,hl as v,kt as y,ml as ie,nu as b,pu as x,ut as S,vt as C,x as w,xt as T,yt as E,yu as D,za as O,zl as ae}from"./previewAssetResource-Ddabw4pq.js";import{a as k,c as oe,i as A,n as j,o as M,r as N,s as se,t as ce}from"./toggle-group-B--zwwJe.js";import{F as P,Lr as le,M as ue,N as de,P as fe,Q as pe,Rr as me,Sr as he,Ur as ge,Vr as _e,Wr as ve,Z as ye,_r as be,b as xe,cr as Se,dr as Ce,dt as we,fi as Te,fr as Ee,ft as De,hr as Oe,ht as ke,lr as Ae,lt as je,mt as Me,or as Ne,pi as Pe,pr as Fe,pt as Ie,sr as Le,ur as Re,ut as ze,v as Be,zr as Ve}from"./index-Dy3CADxQ.js";import{a as He,n as Ue}from"./fileCommentAnnotations-C6DAPLaB.js";var We=m(`pilcrow`,[[`path`,{d:`M13 4v16`,key:`8vvj80`}],[`path`,{d:`M17 4v16`,key:`7dpous`}],[`path`,{d:`M19 4H9.5a4.5 4.5 0 0 0 0 9H13`,key:`sh4n9v`}]]),F=e(n(),1);function Ge({threadRef:e,filePath:t,activeCwd:n,openInEditor:r,openFileSurface:i}){if(e){if(i){i(t);return}S.getState().openFile(e,t);return}r(n?_(t,n):t)}var I=r();function Ke(e,t){let n=(0,I.c)(4),r=Oe(e,t),i;return n[0]!==r.data||n[1]!==r.error||n[2]!==r.isPending?(i={data:r.data,error:r.error,isPending:r.isPending},n[0]=r.data,n[1]=r.error,n[2]=r.isPending,n[3]=i):i=n[3],i}var L=t(),qe=[];function Je(e){return(e.endSide??e.side)===`deletions`?`deletions`:`additions`}function R(e,t,n){let r=Je(t),i=e.findIndex(e=>e.side===r&&e.lineNumber===t.end);return i<0?[...e,{side:r,lineNumber:t.end,metadata:{entries:[n]}}]:e.map((e,t)=>t===i?{...e,metadata:{entries:[...e.metadata.entries,n]}}:e)}function Ye(e){let t=(0,I.c)(50),{files:n,sectionId:r,sectionTitle:i,composerDraftTarget:a,options:s,viewerRef:c,className:l,renderHeaderPrefix:u}=e,ee=d(Qe),te=d(B),f;t[0]===a?f=t[1]:(f=e=>e.getComposerDraft(a)?.reviewComments??qe,t[0]=a,t[1]=f);let p=d(f),[m,ne]=(0,F.useState)(null),[h,_]=(0,F.useState)(null),re;t[2]===n?re=t[3]:(re=new Map(n.map(Ze)),t[2]=n,t[3]=re);let v=re,y;if(t[4]!==h||t[5]!==n||t[6]!==p||t[7]!==r){let e;t[9]!==h||t[10]!==p||t[11]!==r?(e=e=>{let{fileDiff:t,filePath:n,fileKey:i,collapsed:a}=e,o=p.filter(e=>e.sectionId===r&&e.filePath===n&&(e.fenceLanguage??`diff`)===`diff`).reduce((e,n)=>{let r=g(t,n);return r?R(e,r,{id:n.id,kind:`comment`,range:r,rangeLabel:n.rangeLabel,text:n.text}):e},[]),s=h?.fileKey===i?[...o,h.annotation]:o;return{id:i,type:`diff`,fileDiff:t,annotations:s,collapsed:a,version:ze(`${a?`1`:`0`}:${s.flatMap(z).join(`:`)}`)}},t[9]=h,t[10]=p,t[11]=r,t[12]=e):e=t[12],y=n.map(e),t[4]=h,t[5]=n,t[6]=p,t[7]=r,t[8]=y}else y=t[8];let ie=y,b;t[13]!==a||t[14]!==h?.annotation||t[15]!==te?(b=e=>{ne(null),h?.annotation.metadata.entries.some(t=>t.id===e)?_(null):te(a,e)},t[13]=a,t[14]=h?.annotation,t[15]=te,t[16]=b):b=t[16];let x=b,S;t[17]!==ee||t[18]!==a||t[19]!==h||t[20]!==v||t[21]!==r||t[22]!==i?(S=(e,t)=>{let n=h?.annotation.metadata.entries.find(t=>t.id===e),s=h?v.get(h.fileKey):void 0;if(!n||!s)return;let c=o({id:n.id,sectionId:r,sectionTitle:i,filePath:s.filePath,fileDiff:s.fileDiff,range:n.range,text:t});c&&ee(a,c),ne(null),_(null)},t[17]=ee,t[18]=a,t[19]=h,t[20]=v,t[21]=r,t[22]=i,t[23]=S):S=t[23];let C=S,w;t[24]!==v||t[25]!==r||t[26]!==i?(w=(e,t)=>{if(!e)return;let n=t.item;if(n.type!==`diff`)return;let a=v.get(n.id);if(!a)return;let s=Ue(),c=o({id:s,sectionId:r,sectionTitle:i,filePath:a.filePath,fileDiff:a.fileDiff,range:e,text:``});c&&_({fileKey:n.id,annotation:{side:Je(e),lineNumber:e.end,metadata:{entries:[{id:s,kind:`draft`,range:e,rangeLabel:c.rangeLabel,text:``}]}}})},t[24]=v,t[25]=r,t[26]=i,t[27]=w):w=t[27];let T=w,E=h!==null,D;t[28]===c?D=t[29]:(D=c?{ref:c}:{},t[28]=c,t[29]=D);let O;t[30]===l?O=t[31]:(O=l?{className:l}:{},t[30]=l,t[31]=O);let ae=!E,oe=!E,A;t[32]!==T||t[33]!==s||t[34]!==oe||t[35]!==ae?(A={...s,enableGutterUtility:ae,enableLineSelection:oe,onLineSelectionEnd:T},t[32]=T,t[33]=s,t[34]=oe,t[35]=ae,t[36]=A):A=t[36];let j;t[37]===u?j=t[38]:(j=e=>e.type===`diff`?u(e.fileDiff,e.id,e.collapsed===!0):null,t[37]=u,t[38]=j);let M;t[39]!==x||t[40]!==C?(M=e=>(0,L.jsx)(`div`,{className:`py-1`,children:e.metadata.entries.map(e=>(0,L.jsx)(He,{kind:e.kind,rangeLabel:e.rangeLabel,text:e.text,onCancel:()=>x(e.id),onComment:t=>C(e.id,t),onDelete:()=>x(e.id)},e.id))}),t[39]=x,t[40]=C,t[41]=M):M=t[41];let N;return t[42]!==ie||t[43]!==m||t[44]!==A||t[45]!==j||t[46]!==M||t[47]!==D||t[48]!==O?(N=(0,L.jsx)(k,{...D,...O,items:ie,selectedLines:m,onSelectedLinesChange:ne,options:A,renderHeaderPrefix:j,renderAnnotation:M}),t[42]=ie,t[43]=m,t[44]=A,t[45]=j,t[46]=M,t[47]=D,t[48]=O,t[49]=N):N=t[49],N}function z(e){return e.metadata.entries.map(Xe)}function Xe(e){return`${e.id}:${e.rangeLabel}:${e.text}`}function Ze(e){return[e.fileKey,e]}function B(e){return e.removeReviewComment}function Qe(e){return e.addReviewComment}function $e(e){return{diffPreview:b(e,{label:`environment-data:review:diff-preview`,tag:s.reviewGetDiffPreview,staleTimeMs:5e3})}}var et=$e(l);function V(e){return e.remoteName&&e.name.startsWith(`${e.remoteName}/`)?e.name.slice(e.remoteName.length+1):e.name}function tt(e,t){let n=new Set(t),r=e.map(e=>{let r=t.filter(t=>n.has(t)&&V(t)===e.name),i=r.find(e=>e.remoteName===`origin`)??r[0]??null;return i&&n.delete(i),{id:`local:${e.name}`,label:e.name,local:e,remote:i}}),i=t.filter(e=>n.has(e)).map(e=>({id:`remote:${e.name}`,label:e.name,local:null,remote:e}));return[...r,...i]}function nt(e,t){let n=t.trim().toLocaleLowerCase();return n.length===0?e:e.filter(e=>e.label.toLocaleLowerCase().includes(n)||e.local?.name.toLocaleLowerCase().includes(n)===!0||e.remote?.name.toLocaleLowerCase().includes(n)===!0)}var H=`__automatic_base_ref__`,rt=new Set,it=`
|
|
2
2
|
[data-diffs-header],
|
|
3
3
|
[data-diff],
|
|
4
4
|
[data-file],
|
|
@@ -95,4 +95,4 @@ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{n as t,r as n,t as r}f
|
|
|
95
95
|
text-decoration-color: currentColor;
|
|
96
96
|
}
|
|
97
97
|
`;function U({mode:e=`inline`,composerDraftTarget:t,initialGitScope:n,threadRef:r}){let{resolvedTheme:o}=w(),s=_e(),[l]=(0,F.useState)(n),[d,m]=(0,F.useState)(`stacked`),[g,_]=(0,F.useState)(s.wordWrap),[b,S]=(0,F.useState)(s.diffIgnoreWhitespace),[k,xe]=(0,F.useState)(``),[Oe,ze]=(0,F.useState)(()=>({scopeKey:null,fileKeys:rt})),He=(0,F.useRef)(null),Ue=r.threadId,I=Ve(r),qe=I?.projectId??null,Je=me(I&&qe?{environmentId:I.environmentId,projectId:qe}:null),R=I?.worktreePath??Je?.workspaceRoot,z=ae(ne.configValueAtom(I?.environmentId??null)),Xe=be(I?.environmentId??null,z?.availableEditors??[]),Ze=y(I!=null&&R!=null?le.status({environmentId:I.environmentId,input:{cwd:R}}):null),B=P(e=>fe(e.byThreadKey,r,l===`unstaged`)),Qe=Ze.data?.isRepo??!0,{turnDiffSummaries:$e,inferredCheckpointTurnCountByTurnId:V}=de(I),U=(0,F.useMemo)(()=>[...$e].toSorted((e,t)=>{let n=e.checkpointTurnCount??V[e.turnId]??0,r=t.checkpointTurnCount??V[t.turnId]??0;return n===r?t.completedAt.localeCompare(e.completedAt):r-n}),[V,$e]);(0,F.useEffect)(()=>{B.kind===`turn`&&P.getState().reconcileTurnSelection(r,U.map(e=>e.turnId))},[B,U,r]);let W=B.kind===`turn`?B.turnId:null,G=B.kind===`unstaged`?`unstaged`:`branch`,K=B.kind===`branch`?B.baseRef:null,at=B.kind===`turn`?B.filePath:null,ot=B.kind===`turn`?B.revealRequestId:0,q=W===null?void 0:U.find(e=>e.turnId===W)??U[0],J=q&&(q.checkpointTurnCount??V[q.turnId]),st=U[0],ct=W===null?G===`unstaged`?`Working tree`:`Branch changes`:q?.turnId===st?.turnId?`Latest turn`:`Turn ${J??`?`}`,lt=q?`turn:${q.turnId}`:G,Y=`${r.environmentId}:${r.threadId}:${lt}`,ut=Oe.scopeKey===Y?Oe.fileKeys:rt,dt=q?`Turn ${J??`?`}`:G===`unstaged`?`Working tree`:`Branch changes`,ft=(0,F.useMemo)(()=>typeof J==`number`?{fromTurnCount:Math.max(0,J-1),toTurnCount:J}:null,[J]),pt=Ke({environmentId:I?.environmentId??null,threadId:Ue,fromTurnCount:ft?.fromTurnCount??null,toTurnCount:ft?.toTurnCount??null,ignoreWhitespace:b,cacheScope:q?`turn:${q.turnId}`:null},{enabled:Qe&&q!==void 0}),mt=y(W===null&&I&&R?et.diffPreview({environmentId:I.environmentId,input:{cwd:R,...K?{baseRef:K}:{},ignoreWhitespace:b}}):null),ht=W===null&&mt.error?.includes(`configured workspace root`)===!0&&z?.cwd!==void 0&&z.cwd!==R,gt=y(ht&&I&&z?et.diffPreview({environmentId:I.environmentId,input:{cwd:z.cwd,...K?{baseRef:K}:{},ignoreWhitespace:b}}):null),X=ht?gt:mt,Z=X.data?.sources.find(e=>e.kind===(G===`unstaged`?`working-tree`:`branch-range`)),_t=y(W===null&&G===`branch`&&I&&X.data?.cwd?le.listRefs({environmentId:I.environmentId,input:{cwd:X.data.cwd,includeMatchingRemoteRefs:!0,refKind:`local`,...k.trim().length>0?{query:k.trim()}:{},limit:100}}):null),vt=y(W===null&&G===`branch`&&I&&X.data?.cwd?le.listRefs({environmentId:I.environmentId,input:{cwd:X.data.cwd,includeMatchingRemoteRefs:!0,refKind:`remote`,...k.trim().length>0?{query:k.trim()}:{},limit:100}}):null),yt=tt(_t.data?.refs.filter(e=>e.name!==Z?.headRef)??[],vt.data?.refs??[]),bt=nt(yt,k),xt=e=>K&&K===e.remote?.name?K:e.local?.name??e.remote?.name??e.id,St=[H,...yt.map(xt)],Ct=[...k.trim().length===0?[H]:[],...bt.map(xt)],wt=Z?.diff,Tt=q?pt.data?.diff:wt,Et=!q&&Z?.truncated===!0,Dt=q?pt.isPending:X.isPending,Ot=q?pt.error:X.error,kt=typeof Tt==`string`&&Tt.trim().length===0,Q=(0,F.useMemo)(()=>Ie(Tt,`diff-panel:${o}`,{compactPartialHunkOffsets:W===null}),[o,Tt,W]),At=(0,F.useMemo)(()=>!Q||Q.kind!==`files`?[]:Q.files.toSorted((e,t)=>ke(e).localeCompare(ke(t),void 0,{numeric:!0,sensitivity:`base`})),[Q]),$=(0,F.useMemo)(()=>At.map(e=>{let t=je(e);return{fileDiff:e,filePath:ke(e),fileKey:t,collapsed:ut.has(t)}}),[ut,At]),jt=(0,F.useMemo)(()=>$.map(e=>e.fileKey),[$]),Mt=N(jt,ut),Nt=(0,F.useMemo)(()=>De(At),[At]);(0,F.useEffect)(()=>{if(!at)return;let e=$.find(e=>e.filePath===at);e&&He.current?.scrollTo({type:`item`,id:e.fileKey,align:`start`})},[$,at,ot]);let Pt=ue({threadRef:r,workspaceRoot:R??null}),Ft=(0,F.useCallback)(e=>{Ge({threadRef:r,filePath:e,activeCwd:R,openFileSurface:Pt,openInEditor:e=>{(async()=>{let t=await Xe(e);t._tag===`Failure`&&!h(t)&&console.warn(`Failed to open diff file in editor.`,{operation:`open-diff-file`,environmentId:r.environmentId,threadId:r.threadId,...D(x(t))})})()}})},[R,Pt,Xe,r]),It=(0,F.useCallback)(e=>{ze(t=>{let n=new Set(t.scopeKey===Y?t.fileKeys:[]);return n.has(e)?n.delete(e):n.add(e),{scopeKey:Y,fileKeys:n}})},[Y]),Lt=(0,F.useCallback)(()=>{ze(e=>{let t=e.scopeKey===Y?e.fileKeys:rt;return{scopeKey:Y,fileKeys:A(jt,t)}})},[Y,jt]),Rt=e=>{P.getState().selectTurn(r,e)},zt=e=>{P.getState().selectGitScope(r,e)},Bt=e=>{P.getState().selectBranchBaseRef(r,e)};return(0,L.jsx)(pe,{mode:e,header:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-3 [-webkit-app-region:no-drag]`,children:[(0,L.jsxs)(O,{children:[(0,L.jsxs)(c,{className:`inline-flex h-6 max-w-full items-center gap-1 rounded-md bg-muted/70 px-2 text-xs font-medium text-foreground outline-none transition-colors hover:bg-muted focus-visible:ring-2 focus-visible:ring-ring`,"aria-label":`Diff scope: ${ct}`,children:[(0,L.jsx)(`span`,{className:`truncate`,children:ct}),(0,L.jsx)(v,{className:`size-3.5 shrink-0 text-muted-foreground`})]}),(0,L.jsxs)(ee,{align:`start`,className:`w-60`,children:[(0,L.jsx)(u,{className:W===null&&G===`unstaged`?`bg-foreground/[0.08]`:void 0,onClick:()=>zt(`unstaged`),children:(0,L.jsx)(`span`,{children:`Working tree`})}),(0,L.jsx)(u,{className:W===null&&G===`branch`?`bg-foreground/[0.08]`:void 0,onClick:()=>zt(`branch`),children:(0,L.jsx)(`span`,{children:`Branch changes`})}),(0,L.jsx)(u,{className:W!==null&&q?.turnId===st?.turnId?`bg-foreground/[0.08]`:void 0,onClick:()=>{st&&Rt(st.turnId)},children:(0,L.jsx)(`span`,{children:`Latest turn`})}),(0,L.jsxs)(f,{children:[(0,L.jsx)(p,{children:`Turn`}),(0,L.jsx)(te,{className:`w-64`,children:U.map(e=>{let t=e.checkpointTurnCount??V[e.turnId]??`?`;return(0,L.jsxs)(u,{className:e.turnId===q?.turnId?`bg-foreground/[0.08]`:void 0,onClick:()=>Rt(e.turnId),children:[(0,L.jsxs)(`span`,{children:[`Turn `,t]}),(0,L.jsx)(`span`,{className:`ml-auto text-xs tabular-nums text-muted-foreground`,children:he(e.completedAt,s.timestampFormat)})]},e.turnId)})})]})]})]}),W===null&&G===`branch`&&Z?.baseRef&&(0,L.jsxs)(`div`,{className:`flex min-w-0 max-w-full items-center gap-2 overflow-hidden text-xs text-muted-foreground`,title:`${Z.headRef??`HEAD`} → ${Z.baseRef}`,"aria-label":`Comparing ${Z.headRef??`HEAD`} against ${Z.baseRef}`,children:[(0,L.jsx)(`span`,{className:`min-w-0 max-w-48 truncate`,children:Z.headRef??`HEAD`}),(0,L.jsx)(Pe,{className:`size-3.5 shrink-0 opacity-70`}),(0,L.jsxs)(Ne,{items:St,filteredItems:Ct,value:K??H,onOpenChange:e=>{e||xe(``)},onValueChange:e=>{e&&Bt(e===H?null:e)},children:[(0,L.jsxs)(Ee,{className:`inline-flex min-w-0 max-w-48 items-center gap-1 overflow-hidden rounded-md px-1.5 py-1 outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,"aria-label":`Change comparison target. Currently ${Z.baseRef}`,children:[(0,L.jsx)(`span`,{className:`min-w-0 truncate`,children:Z.baseRef}),(0,L.jsx)(v,{className:`size-3.5 shrink-0 opacity-70`})]}),(0,L.jsxs)(Ce,{align:`start`,className:`w-72 min-w-0 max-w-[calc(100vw-1rem)] overflow-hidden [&>[data-slot=combobox-popup]]:min-w-0 [&>[data-slot=combobox-popup]]:overflow-hidden`,children:[(0,L.jsx)(`div`,{className:`min-w-0 shrink-0 px-3 pt-2.5`,children:(0,L.jsxs)(`div`,{className:`relative -translate-y-px border-b border-border/70 pb-1.5 transition-colors focus-within:border-ring`,children:[(0,L.jsx)(ve,{"aria-hidden":`true`,className:`pointer-events-none absolute top-1.5 left-0 size-4 shrink-0 text-muted-foreground/55`}),(0,L.jsx)(Se,{className:`[&_input]:h-6.5 [&_input]:ps-5 [&_input]:font-sans [&_input]:leading-6.5`,inputClassName:`rounded-none bg-transparent text-sm`,placeholder:`Search refs...`,showTrigger:!1,size:`sm`,unstyled:!0,value:k,onChange:e=>xe(e.target.value)})]})}),(0,L.jsxs)(`div`,{className:`grid shrink-0 grid-cols-[1rem_minmax(0,1fr)] items-center gap-2 border-b border-border/70 ps-3 pe-6.5 pt-2 pb-1.5 font-medium text-[10px] text-muted-foreground uppercase tracking-wide`,children:[(0,L.jsx)(`span`,{"aria-hidden":`true`}),(0,L.jsxs)(`div`,{className:`grid min-w-0 grid-cols-[minmax(0,1fr)_2rem] items-center`,children:[(0,L.jsx)(`span`,{children:`Branch`}),(0,L.jsx)(`span`,{className:`text-right`,children:`Remote`})]})]}),(0,L.jsx)(Le,{children:`No matching refs.`}),(0,L.jsxs)(Re,{className:`max-h-64 min-w-0 overflow-x-hidden`,children:[(0,L.jsx)(Ae,{className:`h-8 w-full min-w-0 grid-cols-[1rem_minmax(0,1fr)] py-0`,contentClassName:`w-full min-w-0 overflow-hidden`,value:H,children:(0,L.jsx)(`span`,{className:`block min-w-0 truncate`,children:`Automatic`})}),yt.map(e=>{let t=xt(e),n=e.local!==null&&e.remote!==null,r=e.remote?.name===t;return(0,L.jsx)(Ae,{className:`h-8 w-full min-w-0 grid-cols-[1rem_minmax(0,1fr)] py-0`,contentClassName:`w-full min-w-0 overflow-hidden`,value:t,children:(0,L.jsxs)(`div`,{className:`grid w-full min-w-0 grid-cols-[minmax(0,1fr)_2rem] items-center overflow-hidden`,children:[(0,L.jsx)(`span`,{className:`block min-w-0 truncate pe-2`,children:e.label}),n?(0,L.jsx)(`div`,{className:`flex justify-end`,onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:(0,L.jsx)(Fe,{"aria-label":`Use remote version of ${e.label}`,checked:r,className:`[--thumb-size:--spacing(3)]`,onCheckedChange:t=>{let n=t?e.remote?.name:e.local?.name;n&&Bt(n)}})}):e.remote?(0,L.jsx)(`span`,{className:`flex justify-end text-muted-foreground`,title:`Remote only`,children:(0,L.jsx)(re,{"aria-hidden":`true`,className:`size-3`})}):null]})},e.id)})]})]})]})]})]}),(0,L.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 [-webkit-app-region:no-drag]`,children:[$.length>0&&(0,L.jsx)(Be,{additions:Nt.additions,deletions:Nt.deletions,className:`mr-1 text-[11px]`,layout:`inline`}),$.length>0&&(0,L.jsxs)(C,{children:[(0,L.jsx)(T,{render:(0,L.jsx)(a,{type:`button`,size:`icon-xs`,variant:`outline`,"aria-label":Mt?`Expand all files`:`Collapse all files`,onClick:Lt}),children:Mt?(0,L.jsx)(Te,{className:`size-3`}):(0,L.jsx)(oe,{className:`size-3`})}),(0,L.jsx)(E,{side:`top`,children:Mt?`Expand all files`:`Collapse all files`})]}),(0,L.jsxs)(j,{className:`shrink-0`,variant:`outline`,size:`xs`,value:[d],onValueChange:e=>{let t=e[0];(t===`stacked`||t===`split`)&&m(t)},children:[(0,L.jsx)(ce,{"aria-label":`Stacked diff view`,value:`stacked`,children:(0,L.jsx)(M,{className:`size-3`})}),(0,L.jsx)(ce,{"aria-label":`Split diff view`,value:`split`,children:(0,L.jsx)(se,{className:`size-3`})})]}),(0,L.jsxs)(C,{children:[(0,L.jsx)(T,{render:(0,L.jsx)(ce,{"aria-label":g?`Disable diff line wrapping`:`Enable diff line wrapping`,variant:`outline`,size:`xs`,pressed:g,onPressedChange:e=>{_(!!e)}}),children:(0,L.jsx)(ge,{className:`size-3`})}),(0,L.jsx)(E,{side:`top`,children:g?`Disable line wrapping`:`Enable line wrapping`})]}),(0,L.jsxs)(C,{children:[(0,L.jsx)(T,{render:(0,L.jsx)(ce,{"aria-label":b?`Show whitespace changes`:`Hide whitespace changes`,variant:`outline`,size:`xs`,pressed:b,onPressedChange:e=>{S(!!e)}}),children:(0,L.jsx)(We,{className:`size-3`})}),(0,L.jsx)(E,{side:`top`,children:b?`Show whitespace changes`:`Hide whitespace changes`})]})]})]}),children:I?Qe?W!==null&&U.length===0?(0,L.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-5 text-center text-xs text-muted-foreground/70`,children:`No completed turns yet.`}):(0,L.jsx)(L.Fragment,{children:(0,L.jsxs)(`div`,{className:`diff-panel-viewport flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[Et&&(0,L.jsx)(`p`,{className:`shrink-0 border-b border-border/70 bg-muted/40 px-3 py-1.5 text-[11px] text-muted-foreground`,children:`This diff was truncated because it exceeded the preview limit. The changes shown are incomplete.`}),Ot&&!Q&&(0,L.jsx)(`div`,{className:`px-3`,children:(0,L.jsx)(`p`,{className:`mb-2 text-[11px] text-red-500/80`,children:Ot})}),Q?Q.kind===`files`?(0,L.jsx)(`div`,{className:`min-h-0 flex-1`,onClickCapture:e=>{let t=(e.nativeEvent.composedPath?.()??[]).find(e=>e instanceof HTMLElement&&e.hasAttribute(`data-title`))?.textContent?.trim();t&&Ft(t)},children:(0,L.jsx)(Ye,{viewerRef:He,className:`diff-render-surface h-full min-h-0 overflow-auto`,files:$,sectionId:lt,sectionTitle:dt,composerDraftTarget:t,renderHeaderPrefix:(e,t,n)=>{let r=ke(e);return(0,L.jsxs)(C,{children:[(0,L.jsx)(T,{render:(0,L.jsx)(`button`,{type:`button`,className:i(`inline-flex size-5 shrink-0 cursor-pointer items-center justify-center rounded-sm border-0 bg-transparent p-0 transition-colors hover:bg-foreground/10 focus-visible:outline-hidden`,we(e)),"aria-label":n?`Expand ${r}`:`Collapse ${r}`,"aria-expanded":!n,onClick:e=>{e.stopPropagation(),It(t)}}),children:n?(0,L.jsx)(ie,{className:`size-4`}):(0,L.jsx)(v,{className:`size-4`})}),(0,L.jsx)(E,{side:`top`,children:n?`Expand diff`:`Collapse diff`})]})},options:{diffStyle:d===`split`?`split`:`unified`,lineDiffType:`none`,overflow:g?`wrap`:`scroll`,theme:Me(o),themeType:o,unsafeCSS:it,stickyHeaders:!0,itemMetrics:{diffHeaderHeight:33},layout:{paddingTop:0,paddingBottom:8,gap:8}}},Y??lt)}):(0,L.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto p-2`,children:(0,L.jsxs)(`div`,{className:`space-y-2`,children:[(0,L.jsx)(`p`,{className:`text-[11px] text-muted-foreground/75`,children:Q.reason}),(0,L.jsx)(`pre`,{className:i(`max-h-[72vh] rounded-md border border-border/70 bg-background/70 p-3 font-mono text-[11px] leading-relaxed text-muted-foreground/90`,g?`overflow-auto whitespace-pre-wrap wrap-break-word`:`overflow-auto`),children:Q.text})]})}):Dt?(0,L.jsx)(ye,{label:q?`Loading checkpoint diff...`:G===`unstaged`?`Loading working tree diff...`:`Loading branch diff...`}):(0,L.jsx)(`div`,{className:`flex h-full items-center justify-center px-3 py-2 text-xs text-muted-foreground/70`,children:(0,L.jsx)(`p`,{children:kt?`No net changes in this selection.`:`No patch available for this selection.`})})]})}):(0,L.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-5 text-center text-xs text-muted-foreground/70`,children:`Turn diffs are unavailable because this project is not a git repository.`}):(0,L.jsx)(`div`,{className:`flex flex-1 items-center justify-center px-5 text-center text-xs text-muted-foreground/70`,children:`Select a thread to inspect turn diffs.`})})}export{xe as DiffWorkerPoolProvider,U as default};
|
|
98
|
-
//# sourceMappingURL=DiffPanel-
|
|
98
|
+
//# sourceMappingURL=DiffPanel-D82ZjYTf.js.map
|