@p4code/cli 0.3.17 → 0.3.19
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 +74 -26
- package/dist/client/assets/{DiffPanel-CIYbT0lg.js → DiffPanel-eMr7nU0h.js} +2 -2
- package/dist/client/assets/{FilePreviewPanel-RYHR9MeT.js → FilePreviewPanel-BUyHVDT_.js} +2 -2
- package/dist/client/assets/{PreviewPanel-BCMRNNs6.js → PreviewPanel-DUfTaxnl.js} +2 -2
- package/dist/client/assets/{PullRequestCodeTab-CpTu39fG.js → PullRequestCodeTab-CfjX9iSf.js} +2 -2
- package/dist/client/assets/{fileCommentAnnotations-Cf1t6wA_.js → fileCommentAnnotations-Ct9R8UiW.js} +2 -2
- package/dist/client/assets/index-BYo749v_.js +2641 -0
- package/dist/client/assets/{index-BnBSxG1R.css → index-D-rn8-OV.css} +1 -1
- package/dist/client/assets/{previewAssetResource-CfyJZLKk.js → previewAssetResource-Omzje4BF.js} +2 -2
- package/dist/client/assets/{renderFileChildren-C43fM7wm.js → renderFileChildren-BZziy9jq.js} +2 -2
- package/dist/client/assets/{toggle-group-C2OYSxiH.js → toggle-group-DGKZQRoh.js} +2 -2
- package/dist/client/index.html +3 -3
- package/package.json +1 -1
- package/dist/client/assets/index-fI8zbfpx.js +0 -2631
package/dist/bin.mjs
CHANGED
|
@@ -238,7 +238,7 @@ const make$91 = () => {
|
|
|
238
238
|
const layer$82 = Layer.sync(NetService, make$91);
|
|
239
239
|
//#endregion
|
|
240
240
|
//#region package.json
|
|
241
|
-
var version = "0.3.
|
|
241
|
+
var version = "0.3.19";
|
|
242
242
|
//#endregion
|
|
243
243
|
//#region src/config.ts
|
|
244
244
|
/**
|
|
@@ -5106,7 +5106,8 @@ const PREVIEW_AUTOMATION_V1_OPERATIONS = [
|
|
|
5106
5106
|
const PREVIEW_AUTOMATION_OPERATIONS = [
|
|
5107
5107
|
...PREVIEW_AUTOMATION_V1_OPERATIONS,
|
|
5108
5108
|
"resize",
|
|
5109
|
-
"setColorScheme"
|
|
5109
|
+
"setColorScheme",
|
|
5110
|
+
"saveScreenshot"
|
|
5110
5111
|
];
|
|
5111
5112
|
const PreviewAutomationOperation = Schema.Literals(PREVIEW_AUTOMATION_OPERATIONS);
|
|
5112
5113
|
const PreviewAutomationTabTargetFields = { tabId: Schema.optional(PreviewTabId.annotate({ description: "Exact collaborative browser tab to target. Omit to use this agent session's current tab." })).annotate({ description: "Exact collaborative browser tab to target. Omit to use this agent session's current tab." }) };
|
|
@@ -6023,7 +6024,7 @@ Schema$1.Struct({
|
|
|
6023
6024
|
sizeBytes: Schema$1.Int,
|
|
6024
6025
|
createdAt: Schema$1.String
|
|
6025
6026
|
});
|
|
6026
|
-
Schema$1.Struct({
|
|
6027
|
+
const DesktopPreviewScreenshotArtifactSchema = Schema$1.Struct({
|
|
6027
6028
|
id: Schema$1.String,
|
|
6028
6029
|
tabId: DesktopPreviewTabIdSchema,
|
|
6029
6030
|
path: Schema$1.String,
|
|
@@ -6031,6 +6032,23 @@ Schema$1.Struct({
|
|
|
6031
6032
|
sizeBytes: Schema$1.Int,
|
|
6032
6033
|
createdAt: Schema$1.String
|
|
6033
6034
|
});
|
|
6035
|
+
Schema$1.Struct({
|
|
6036
|
+
id: Schema$1.String,
|
|
6037
|
+
path: Schema$1.String,
|
|
6038
|
+
sizeBytes: Schema$1.Int,
|
|
6039
|
+
createdAt: Schema$1.String,
|
|
6040
|
+
width: Schema$1.Int,
|
|
6041
|
+
height: Schema$1.Int
|
|
6042
|
+
});
|
|
6043
|
+
Schema$1.Struct({
|
|
6044
|
+
path: Schema$1.String,
|
|
6045
|
+
thumbnail: Schema$1.Boolean
|
|
6046
|
+
});
|
|
6047
|
+
Schema$1.Struct({ paths: Schema$1.Array(Schema$1.String) });
|
|
6048
|
+
Schema$1.Struct({
|
|
6049
|
+
deletedCount: Schema$1.Int,
|
|
6050
|
+
freedBytes: Schema$1.Int
|
|
6051
|
+
});
|
|
6034
6052
|
const PickedElementStackFrameSchema = Schema$1.Struct({
|
|
6035
6053
|
functionName: Schema$1.NullOr(Schema$1.String),
|
|
6036
6054
|
fileName: Schema$1.NullOr(Schema$1.String),
|
|
@@ -68051,11 +68069,16 @@ function formatAskUserQuestionAnswers(answers) {
|
|
|
68051
68069
|
//#region src/provider/GuardrailPrompts.ts
|
|
68052
68070
|
/** Fresh-evidence gate adapted from superpowers' verification skill. */
|
|
68053
68071
|
const VERIFY_BEFORE_COMPLETION_PROMPT = "NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE. Before claiming complete, fixed, or passing: 1) identify proving command; 2) run it fresh and fully; 3) read full output, exit code, failure count; 4) confirm evidence matches claim; 5) state claim with evidence. Missing or failed proof: report actual status.";
|
|
68072
|
+
/** Visual-proof gate for user-visible frontend work. */
|
|
68073
|
+
const SCREENSHOTS_AFTER_UI_WORK_PROMPT = "AFTER USER-VISIBLE FRONTEND WORK, FRESH VISUAL PROOF IS MANDATORY. Before completing: 1) run the relevant real client; 2) inspect the full changed surface; 3) when P4Code preview is available, use preview_snapshot for inspection, then call preview_save_screenshot once after verification passes so P4Code saves the final state under Settings > Screenshots; 4) otherwise capture the verified final state with the relevant approved browser, simulator, or computer tool; 5) verify the screenshot shows the requested result without visible errors; 6) include it in the final response. Ask before launching browser or computer use when approval is required. Skip only work with no user-visible frontend change.";
|
|
68054
68074
|
/** Root-cause gate adapted from superpowers' systematic-debugging skill. */
|
|
68055
68075
|
const ROOT_CAUSE_BEFORE_FIX_PROMPT = "NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST. For bugs or unexpected behavior: 1) read errors, reproduce, inspect recent changes, trace data to source; 2) compare working patterns; 3) state one hypothesis and test smallest change; 4) add failing regression test, implement one fix, verify. After 3 failed fixes, question architecture.";
|
|
68056
68076
|
function guardrailPromptsFor(settings) {
|
|
68057
|
-
|
|
68058
|
-
|
|
68077
|
+
return [
|
|
68078
|
+
SCREENSHOTS_AFTER_UI_WORK_PROMPT,
|
|
68079
|
+
...settings?.enableVerificationBeforeCompletion ? [VERIFY_BEFORE_COMPLETION_PROMPT] : [],
|
|
68080
|
+
...settings?.enableRootCauseBeforeFix ? [ROOT_CAUSE_BEFORE_FIX_PROMPT] : []
|
|
68081
|
+
];
|
|
68059
68082
|
}
|
|
68060
68083
|
//#endregion
|
|
68061
68084
|
//#region src/provider/StructuredUserQuestions.ts
|
|
@@ -72252,7 +72275,8 @@ const ServerNotification__SpendControlLimitSnapshot = Schema$1.Struct({
|
|
|
72252
72275
|
const ServerNotification__SubAgentActivityKind = Schema$1.Literals([
|
|
72253
72276
|
"started",
|
|
72254
72277
|
"interacted",
|
|
72255
|
-
"interrupted"
|
|
72278
|
+
"interrupted",
|
|
72279
|
+
"completed"
|
|
72256
72280
|
]);
|
|
72257
72281
|
const ServerNotification__TerminalInteractionNotification = Schema$1.Struct({
|
|
72258
72282
|
itemId: Schema$1.String,
|
|
@@ -73139,7 +73163,8 @@ const V2ItemCompletedNotification__ReasoningEffort = Schema$1.String.annotate({
|
|
|
73139
73163
|
const V2ItemCompletedNotification__SubAgentActivityKind = Schema$1.Literals([
|
|
73140
73164
|
"started",
|
|
73141
73165
|
"interacted",
|
|
73142
|
-
"interrupted"
|
|
73166
|
+
"interrupted",
|
|
73167
|
+
"completed"
|
|
73143
73168
|
]);
|
|
73144
73169
|
const V2ItemCompletedNotification__TextElement = Schema$1.Struct({
|
|
73145
73170
|
byteRange: Schema$1.Struct({
|
|
@@ -73323,7 +73348,8 @@ const V2ItemStartedNotification__ReasoningEffort = Schema$1.String.annotate({ de
|
|
|
73323
73348
|
const V2ItemStartedNotification__SubAgentActivityKind = Schema$1.Literals([
|
|
73324
73349
|
"started",
|
|
73325
73350
|
"interacted",
|
|
73326
|
-
"interrupted"
|
|
73351
|
+
"interrupted",
|
|
73352
|
+
"completed"
|
|
73327
73353
|
]);
|
|
73328
73354
|
const V2ItemStartedNotification__TextElement = Schema$1.Struct({
|
|
73329
73355
|
byteRange: Schema$1.Struct({
|
|
@@ -73818,7 +73844,8 @@ const V2ReviewStartResponse__ReasoningEffort = Schema$1.String.annotate({ descri
|
|
|
73818
73844
|
const V2ReviewStartResponse__SubAgentActivityKind = Schema$1.Literals([
|
|
73819
73845
|
"started",
|
|
73820
73846
|
"interacted",
|
|
73821
|
-
"interrupted"
|
|
73847
|
+
"interrupted",
|
|
73848
|
+
"completed"
|
|
73822
73849
|
]);
|
|
73823
73850
|
const V2ReviewStartResponse__TextElement = Schema$1.Struct({
|
|
73824
73851
|
byteRange: Schema$1.Struct({
|
|
@@ -74003,7 +74030,8 @@ const V2ThreadForkResponse__ReasoningEffort = Schema$1.String.annotate({ descrip
|
|
|
74003
74030
|
const V2ThreadForkResponse__SubAgentActivityKind = Schema$1.Literals([
|
|
74004
74031
|
"started",
|
|
74005
74032
|
"interacted",
|
|
74006
|
-
"interrupted"
|
|
74033
|
+
"interrupted",
|
|
74034
|
+
"completed"
|
|
74007
74035
|
]);
|
|
74008
74036
|
const V2ThreadForkResponse__TextElement = Schema$1.Struct({
|
|
74009
74037
|
byteRange: Schema$1.Struct({
|
|
@@ -74185,7 +74213,8 @@ const V2ThreadListResponse__ReasoningEffort = Schema$1.String.annotate({ descrip
|
|
|
74185
74213
|
const V2ThreadListResponse__SubAgentActivityKind = Schema$1.Literals([
|
|
74186
74214
|
"started",
|
|
74187
74215
|
"interacted",
|
|
74188
|
-
"interrupted"
|
|
74216
|
+
"interrupted",
|
|
74217
|
+
"completed"
|
|
74189
74218
|
]);
|
|
74190
74219
|
const V2ThreadListResponse__TextElement = Schema$1.Struct({
|
|
74191
74220
|
byteRange: Schema$1.Struct({
|
|
@@ -74321,7 +74350,8 @@ const V2ThreadMetadataUpdateResponse__ReasoningEffort = Schema$1.String.annotate
|
|
|
74321
74350
|
const V2ThreadMetadataUpdateResponse__SubAgentActivityKind = Schema$1.Literals([
|
|
74322
74351
|
"started",
|
|
74323
74352
|
"interacted",
|
|
74324
|
-
"interrupted"
|
|
74353
|
+
"interrupted",
|
|
74354
|
+
"completed"
|
|
74325
74355
|
]);
|
|
74326
74356
|
const V2ThreadMetadataUpdateResponse__TextElement = Schema$1.Struct({
|
|
74327
74357
|
byteRange: Schema$1.Struct({
|
|
@@ -74452,7 +74482,8 @@ const V2ThreadReadResponse__ReasoningEffort = Schema$1.String.annotate({ descrip
|
|
|
74452
74482
|
const V2ThreadReadResponse__SubAgentActivityKind = Schema$1.Literals([
|
|
74453
74483
|
"started",
|
|
74454
74484
|
"interacted",
|
|
74455
|
-
"interrupted"
|
|
74485
|
+
"interrupted",
|
|
74486
|
+
"completed"
|
|
74456
74487
|
]);
|
|
74457
74488
|
const V2ThreadReadResponse__TextElement = Schema$1.Struct({
|
|
74458
74489
|
byteRange: Schema$1.Struct({
|
|
@@ -74694,7 +74725,8 @@ const V2ThreadResumeResponse__ReasoningEffort = Schema$1.String.annotate({ descr
|
|
|
74694
74725
|
const V2ThreadResumeResponse__SubAgentActivityKind = Schema$1.Literals([
|
|
74695
74726
|
"started",
|
|
74696
74727
|
"interacted",
|
|
74697
|
-
"interrupted"
|
|
74728
|
+
"interrupted",
|
|
74729
|
+
"completed"
|
|
74698
74730
|
]);
|
|
74699
74731
|
const V2ThreadResumeResponse__TextElement = Schema$1.Struct({
|
|
74700
74732
|
byteRange: Schema$1.Struct({
|
|
@@ -74825,7 +74857,8 @@ const V2ThreadRollbackResponse__ReasoningEffort = Schema$1.String.annotate({ des
|
|
|
74825
74857
|
const V2ThreadRollbackResponse__SubAgentActivityKind = Schema$1.Literals([
|
|
74826
74858
|
"started",
|
|
74827
74859
|
"interacted",
|
|
74828
|
-
"interrupted"
|
|
74860
|
+
"interrupted",
|
|
74861
|
+
"completed"
|
|
74829
74862
|
]);
|
|
74830
74863
|
const V2ThreadRollbackResponse__TextElement = Schema$1.Struct({
|
|
74831
74864
|
byteRange: Schema$1.Struct({
|
|
@@ -74989,7 +75022,8 @@ const V2ThreadStartedNotification__ReasoningEffort = Schema$1.String.annotate({
|
|
|
74989
75022
|
const V2ThreadStartedNotification__SubAgentActivityKind = Schema$1.Literals([
|
|
74990
75023
|
"started",
|
|
74991
75024
|
"interacted",
|
|
74992
|
-
"interrupted"
|
|
75025
|
+
"interrupted",
|
|
75026
|
+
"completed"
|
|
74993
75027
|
]);
|
|
74994
75028
|
const V2ThreadStartedNotification__TextElement = Schema$1.Struct({
|
|
74995
75029
|
byteRange: Schema$1.Struct({
|
|
@@ -75167,7 +75201,8 @@ const V2ThreadStartResponse__ReasoningEffort = Schema$1.String.annotate({ descri
|
|
|
75167
75201
|
const V2ThreadStartResponse__SubAgentActivityKind = Schema$1.Literals([
|
|
75168
75202
|
"started",
|
|
75169
75203
|
"interacted",
|
|
75170
|
-
"interrupted"
|
|
75204
|
+
"interrupted",
|
|
75205
|
+
"completed"
|
|
75171
75206
|
]);
|
|
75172
75207
|
const V2ThreadStartResponse__TextElement = Schema$1.Struct({
|
|
75173
75208
|
byteRange: Schema$1.Struct({
|
|
@@ -75310,7 +75345,8 @@ const V2ThreadUnarchiveResponse__ReasoningEffort = Schema$1.String.annotate({ de
|
|
|
75310
75345
|
const V2ThreadUnarchiveResponse__SubAgentActivityKind = Schema$1.Literals([
|
|
75311
75346
|
"started",
|
|
75312
75347
|
"interacted",
|
|
75313
|
-
"interrupted"
|
|
75348
|
+
"interrupted",
|
|
75349
|
+
"completed"
|
|
75314
75350
|
]);
|
|
75315
75351
|
const V2ThreadUnarchiveResponse__TextElement = Schema$1.Struct({
|
|
75316
75352
|
byteRange: Schema$1.Struct({
|
|
@@ -75440,7 +75476,8 @@ const V2TurnCompletedNotification__ReasoningEffort = Schema$1.String.annotate({
|
|
|
75440
75476
|
const V2TurnCompletedNotification__SubAgentActivityKind = Schema$1.Literals([
|
|
75441
75477
|
"started",
|
|
75442
75478
|
"interacted",
|
|
75443
|
-
"interrupted"
|
|
75479
|
+
"interrupted",
|
|
75480
|
+
"completed"
|
|
75444
75481
|
]);
|
|
75445
75482
|
const V2TurnCompletedNotification__TextElement = Schema$1.Struct({
|
|
75446
75483
|
byteRange: Schema$1.Struct({
|
|
@@ -75567,7 +75604,8 @@ const V2TurnStartedNotification__ReasoningEffort = Schema$1.String.annotate({ de
|
|
|
75567
75604
|
const V2TurnStartedNotification__SubAgentActivityKind = Schema$1.Literals([
|
|
75568
75605
|
"started",
|
|
75569
75606
|
"interacted",
|
|
75570
|
-
"interrupted"
|
|
75607
|
+
"interrupted",
|
|
75608
|
+
"completed"
|
|
75571
75609
|
]);
|
|
75572
75610
|
const V2TurnStartedNotification__TextElement = Schema$1.Struct({
|
|
75573
75611
|
byteRange: Schema$1.Struct({
|
|
@@ -75733,7 +75771,8 @@ const V2TurnStartResponse__ReasoningEffort = Schema$1.String.annotate({ descript
|
|
|
75733
75771
|
const V2TurnStartResponse__SubAgentActivityKind = Schema$1.Literals([
|
|
75734
75772
|
"started",
|
|
75735
75773
|
"interacted",
|
|
75736
|
-
"interrupted"
|
|
75774
|
+
"interrupted",
|
|
75775
|
+
"completed"
|
|
75737
75776
|
]);
|
|
75738
75777
|
const V2TurnStartResponse__TextElement = Schema$1.Struct({
|
|
75739
75778
|
byteRange: Schema$1.Struct({
|
|
@@ -91292,7 +91331,8 @@ const COLLAB_TOOL_TITLES = {
|
|
|
91292
91331
|
const SUB_AGENT_ACTIVITY_TITLES = {
|
|
91293
91332
|
started: "Agent started",
|
|
91294
91333
|
interacted: "Agent worked",
|
|
91295
|
-
interrupted: "Agent interrupted"
|
|
91334
|
+
interrupted: "Agent interrupted",
|
|
91335
|
+
completed: "Agent completed"
|
|
91296
91336
|
};
|
|
91297
91337
|
function agentNameFromPath(agentPath) {
|
|
91298
91338
|
return trimText$1(agentPath.split("/").pop()?.replace(/\.[^.]+$/, ""));
|
|
@@ -91326,12 +91366,12 @@ function collabTaskEvents(event, canonicalThreadId, item, defaults) {
|
|
|
91326
91366
|
} : {}
|
|
91327
91367
|
}
|
|
91328
91368
|
}];
|
|
91329
|
-
if (item.kind === "interrupted") return [{
|
|
91369
|
+
if (item.kind === "interrupted" || item.kind === "completed") return [{
|
|
91330
91370
|
...collabTaskEventBase(base, taskId, "completed"),
|
|
91331
91371
|
type: "task.completed",
|
|
91332
91372
|
payload: {
|
|
91333
91373
|
taskId,
|
|
91334
|
-
status: "stopped"
|
|
91374
|
+
status: item.kind === "completed" ? "completed" : "stopped"
|
|
91335
91375
|
}
|
|
91336
91376
|
}];
|
|
91337
91377
|
return [{
|
|
@@ -104338,6 +104378,13 @@ const PreviewSnapshotTool = readonlyBrowserTool(Tool.make("preview_snapshot", {
|
|
|
104338
104378
|
failure: PreviewAutomationError,
|
|
104339
104379
|
dependencies: dependencies$1
|
|
104340
104380
|
}).annotate(Tool.Title, "Inspect browser page"));
|
|
104381
|
+
const PreviewSaveScreenshotTool = safeBrowserTool(Tool.make("preview_save_screenshot", {
|
|
104382
|
+
description: "Save the final verified state of a collaborative browser tab to Settings > Screenshots. Use only after inspection is complete. Pass tabId to target a specific tab; omit it to use this agent session's current tab.",
|
|
104383
|
+
parameters: PreviewAutomationTabTargetInput,
|
|
104384
|
+
success: DesktopPreviewScreenshotArtifactSchema,
|
|
104385
|
+
failure: PreviewAutomationError,
|
|
104386
|
+
dependencies: dependencies$1
|
|
104387
|
+
}).annotate(Tool.Title, "Save verified browser screenshot"));
|
|
104341
104388
|
const PreviewClickTool = browserTool(Tool.make("preview_click", {
|
|
104342
104389
|
description: "Click exactly one target in the tab selected by tabId, or this agent session's current tab when omitted. Prefer a Playwright locator; selector accepts legacy CSS; x and y must be supplied together.",
|
|
104343
104390
|
parameters: PreviewAutomationClickInput,
|
|
@@ -104394,8 +104441,8 @@ const PreviewRecordingStopTool = safeBrowserTool(Tool.make("preview_recording_st
|
|
|
104394
104441
|
failure: PreviewAutomationError,
|
|
104395
104442
|
dependencies: dependencies$1
|
|
104396
104443
|
}).annotate(Tool.Title, "Stop browser recording"));
|
|
104397
|
-
const PreviewToolkit = Toolkit.make(PreviewStatusTool, PreviewOpenTool, PreviewNavigateTool, PreviewResizeTool, PreviewSetAppearanceTool, PreviewSnapshotTool, PreviewClickTool, PreviewTypeTool, PreviewPressTool, PreviewScrollTool, PreviewEvaluateTool, PreviewWaitForTool, PreviewRecordingStartTool, PreviewRecordingStopTool);
|
|
104398
|
-
const PreviewStandardToolkit = Toolkit.make(PreviewStatusTool, PreviewOpenTool, PreviewNavigateTool, PreviewResizeTool, PreviewSetAppearanceTool, PreviewClickTool, PreviewTypeTool, PreviewPressTool, PreviewScrollTool, PreviewEvaluateTool, PreviewWaitForTool, PreviewRecordingStartTool, PreviewRecordingStopTool);
|
|
104444
|
+
const PreviewToolkit = Toolkit.make(PreviewStatusTool, PreviewOpenTool, PreviewNavigateTool, PreviewResizeTool, PreviewSetAppearanceTool, PreviewSnapshotTool, PreviewSaveScreenshotTool, PreviewClickTool, PreviewTypeTool, PreviewPressTool, PreviewScrollTool, PreviewEvaluateTool, PreviewWaitForTool, PreviewRecordingStartTool, PreviewRecordingStopTool);
|
|
104445
|
+
const PreviewStandardToolkit = Toolkit.make(PreviewStatusTool, PreviewOpenTool, PreviewNavigateTool, PreviewResizeTool, PreviewSetAppearanceTool, PreviewSaveScreenshotTool, PreviewClickTool, PreviewTypeTool, PreviewPressTool, PreviewScrollTool, PreviewEvaluateTool, PreviewWaitForTool, PreviewRecordingStartTool, PreviewRecordingStopTool);
|
|
104399
104446
|
const PreviewSnapshotToolkit = Toolkit.make(PreviewSnapshotTool);
|
|
104400
104447
|
//#endregion
|
|
104401
104448
|
//#region src/mcp/toolkits/preview/handlers.ts
|
|
@@ -104429,6 +104476,7 @@ const handlers$4 = {
|
|
|
104429
104476
|
preview_resize: (input) => invokeTargeted("resize", input, input.timeoutMs),
|
|
104430
104477
|
preview_set_appearance: (input) => invokeTargeted("setColorScheme", input),
|
|
104431
104478
|
preview_snapshot: (input) => invokeTargeted("snapshot", input ?? {}),
|
|
104479
|
+
preview_save_screenshot: (input) => invokeTargeted("saveScreenshot", input ?? {}),
|
|
104432
104480
|
preview_click: (input) => invokeTargeted("click", input, input.timeoutMs).pipe(Effect.as(null)),
|
|
104433
104481
|
preview_type: (input) => invokeTargeted("type", input, input.timeoutMs).pipe(Effect.as(null)),
|
|
104434
104482
|
preview_press: (input) => invokeTargeted("press", input).pipe(Effect.as(null)),
|
|
@@ -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{$c as i,Ca as a,Cl as o,Da as s,Et as c,Fa as ee,Fr as te,Ia as l,La as u,Na as d,Oa as f,Pa as ne,Pl as re,Qc as p,_n as ie,ba as m,cu as h,el as g,gt as _,h as v,ht as y,kl as b,kr as ae,ot as x,tl as S,vl as oe,vt as C,wr as w,x as T,xn as E,zl as se}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{$c as i,Ca as a,Cl as o,Da as s,Et as c,Fa as ee,Fr as te,Ia as l,La as u,Na as d,Oa as f,Pa as ne,Pl as re,Qc as p,_n as ie,ba as m,cu as h,el as g,gt as _,h as v,ht as y,kl as b,kr as ae,ot as x,tl as S,vl as oe,vt as C,wr as w,x as T,xn as E,zl as se}from"./previewAssetResource-Omzje4BF.js";import{a as D,i as ce,n as O,o as k,r as A,s as j,t as M}from"./toggle-group-DGKZQRoh.js";import{F as le,Fr as ue,I as de,J as fe,L as pe,Lr as me,Mr as he,Nr as ge,R as N,Sr as _e,Y as ve,_ as ye,at as be,ci as xe,cr as Se,ct as Ce,dr as we,fr as Te,gr as Ee,h as De,it as Oe,jr as ke,lr as Ae,lt as P,mr as je,oi as Me,or as Ne,ot as Pe,pr as Fe,rt as Ie,si as Le,sr as Re,st as ze,ur as Be,zr as Ve}from"./index-BYo749v_.js";import{a as He,n as Ue}from"./fileCommentAnnotations-Ct9R8UiW.js";var We=S(`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}x.getState().openFile(e,t);return}r(n?v(t,n):t)}var I=r();function Ke(e,t){let n=(0,I.c)(4),r=Ee(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:o,viewerRef:s,className:c,renderHeaderPrefix:ee}=e,l=w(Qe),u=w(B),d;t[0]===a?d=t[1]:(d=e=>e.getComposerDraft(a)?.reviewComments??qe,t[0]=a,t[1]=d);let f=w(d),[ne,re]=(0,F.useState)(null),[p,ie]=(0,F.useState)(null),m;t[2]===n?m=t[3]:(m=new Map(n.map(Ze)),t[2]=n,t[3]=m);let h=m,g;if(t[4]!==p||t[5]!==n||t[6]!==f||t[7]!==r){let e;t[9]!==p||t[10]!==f||t[11]!==r?(e=e=>{let{fileDiff:t,filePath:n,fileKey:i,collapsed:a}=e,o=f.filter(e=>e.sectionId===r&&e.filePath===n&&(e.fenceLanguage??`diff`)===`diff`).reduce((e,n)=>{let r=te(t,n);return r?R(e,r,{id:n.id,kind:`comment`,range:r,rangeLabel:n.rangeLabel,text:n.text}):e},[]),s=p?.fileKey===i?[...o,p.annotation]:o;return{id:i,type:`diff`,fileDiff:t,annotations:s,collapsed:a,version:Oe(`${a?`1`:`0`}:${s.flatMap(z).join(`:`)}`)}},t[9]=p,t[10]=f,t[11]=r,t[12]=e):e=t[12],g=n.map(e),t[4]=p,t[5]=n,t[6]=f,t[7]=r,t[8]=g}else g=t[8];let _=g,v;t[13]!==a||t[14]!==p?.annotation||t[15]!==u?(v=e=>{re(null),p?.annotation.metadata.entries.some(t=>t.id===e)?ie(null):u(a,e)},t[13]=a,t[14]=p?.annotation,t[15]=u,t[16]=v):v=t[16];let y=v,b;t[17]!==l||t[18]!==a||t[19]!==p||t[20]!==h||t[21]!==r||t[22]!==i?(b=(e,t)=>{let n=p?.annotation.metadata.entries.find(t=>t.id===e),o=p?h.get(p.fileKey):void 0;if(!n||!o)return;let s=ae({id:n.id,sectionId:r,sectionTitle:i,filePath:o.filePath,fileDiff:o.fileDiff,range:n.range,text:t});s&&l(a,s),re(null),ie(null)},t[17]=l,t[18]=a,t[19]=p,t[20]=h,t[21]=r,t[22]=i,t[23]=b):b=t[23];let x=b,S;t[24]!==h||t[25]!==r||t[26]!==i?(S=(e,t)=>{if(!e)return;let n=t.item;if(n.type!==`diff`)return;let a=h.get(n.id);if(!a)return;let o=Ue(),s=ae({id:o,sectionId:r,sectionTitle:i,filePath:a.filePath,fileDiff:a.fileDiff,range:e,text:``});s&&ie({fileKey:n.id,annotation:{side:Je(e),lineNumber:e.end,metadata:{entries:[{id:o,kind:`draft`,range:e,rangeLabel:s.rangeLabel,text:``}]}}})},t[24]=h,t[25]=r,t[26]=i,t[27]=S):S=t[27];let oe=S,C=p!==null,T;t[28]===s?T=t[29]:(T=s?{ref:s}:{},t[28]=s,t[29]=T);let E;t[30]===c?E=t[31]:(E=c?{className:c}:{},t[30]=c,t[31]=E);let se=!C,ce=!C,O;t[32]!==oe||t[33]!==o||t[34]!==ce||t[35]!==se?(O={...o,enableGutterUtility:se,enableLineSelection:ce,onLineSelectionEnd:oe},t[32]=oe,t[33]=o,t[34]=ce,t[35]=se,t[36]=O):O=t[36];let k;t[37]===ee?k=t[38]:(k=e=>e.type===`diff`?ee(e.fileDiff,e.id,e.collapsed===!0):null,t[37]=ee,t[38]=k);let A;t[39]!==y||t[40]!==x?(A=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:()=>y(e.id),onComment:t=>x(e.id,t),onDelete:()=>y(e.id)},e.id))}),t[39]=y,t[40]=x,t[41]=A):A=t[41];let j;return t[42]!==_||t[43]!==ne||t[44]!==O||t[45]!==k||t[46]!==A||t[47]!==T||t[48]!==E?(j=(0,L.jsx)(D,{...T,...E,items:_,selectedLines:ne,onSelectedLinesChange:re,options:O,renderHeaderPrefix:k,renderAnnotation:A}),t[42]=_,t[43]=ne,t[44]=O,t[45]=k,t[46]=A,t[47]=T,t[48]=E,t[49]=j):j=t[49],j}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:o(e,{label:`environment-data:review:diff-preview`,tag:h.reviewGetDiffPreview,staleTimeMs:5e3})}}var et=$e(E);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}=T(),te=ue(),[h]=(0,F.useState)(n),[v,ae]=(0,F.useState)(`stacked`),[x,S]=(0,F.useState)(te.wordWrap),[w,E]=(0,F.useState)(te.diffIgnoreWhitespace),[D,ye]=(0,F.useState)(``),[Ee,Oe]=(0,F.useState)(()=>({scopeKey:null,fileKeys:rt})),He=(0,F.useRef)(null),Ue=r.threadId,I=ge(r),qe=I?.projectId??null,Je=he(I&&qe?{environmentId:I.environmentId,projectId:qe}:null),R=I?.worktreePath??Je?.workspaceRoot,z=oe(ie.configValueAtom(I?.environmentId??null)),Xe=je(I?.environmentId??null,z?.availableEditors??[]),Ze=c(I!=null&&R!=null?ke.status({environmentId:I.environmentId,input:{cwd:R}}):null),B=N(e=>pe(e.byThreadKey,r,h===`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`&&N.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=Ee.scopeKey===Y?Ee.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:w,cacheScope:q?`turn:${q.turnId}`:null},{enabled:Qe&&q!==void 0}),mt=c(W===null&&I&&R?et.diffPreview({environmentId:I.environmentId,input:{cwd:R,...K?{baseRef:K}:{},ignoreWhitespace:w}}):null),ht=W===null&&mt.error?.includes(`configured workspace root`)===!0&&z?.cwd!==void 0&&z.cwd!==R,gt=c(ht&&I&&z?et.diffPreview({environmentId:I.environmentId,input:{cwd:z.cwd,...K?{baseRef:K}:{},ignoreWhitespace:w}}):null),X=ht?gt:mt,Z=X.data?.sources.find(e=>e.kind===(G===`unstaged`?`working-tree`:`branch-range`)),_t=c(W===null&&G===`branch`&&I&&X.data?.cwd?ke.listRefs({environmentId:I.environmentId,input:{cwd:X.data.cwd,includeMatchingRemoteRefs:!0,refKind:`local`,...D.trim().length>0?{query:D.trim()}:{},limit:100}}):null),vt=c(W===null&&G===`branch`&&I&&X.data?.cwd?ke.listRefs({environmentId:I.environmentId,input:{cwd:X.data.cwd,includeMatchingRemoteRefs:!0,refKind:`remote`,...D.trim().length>0?{query:D.trim()}:{},limit:100}}):null),yt=tt(_t.data?.refs.filter(e=>e.name!==Z?.headRef)??[],vt.data?.refs??[]),bt=nt(yt,D),xt=e=>K&&K===e.remote?.name?K:e.local?.name??e.remote?.name??e.id,St=[H,...yt.map(xt)],Ct=[...D.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)(()=>ze(Tt,`diff-panel:${o}`,{compactPartialHunkOffsets:W===null}),[o,Tt,W]),At=(0,F.useMemo)(()=>!Q||Q.kind!==`files`?[]:Q.files.toSorted((e,t)=>P(e).localeCompare(P(t),void 0,{numeric:!0,sensitivity:`base`})),[Q]),$=(0,F.useMemo)(()=>At.map(e=>{let t=Ie(e);return{fileDiff:e,filePath:P(e),fileKey:t,collapsed:ut.has(t)}}),[ut,At]),jt=(0,F.useMemo)(()=>$.map(e=>e.fileKey),[$]),Mt=A(jt,ut),Nt=(0,F.useMemo)(()=>Pe(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=le({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`&&!b(t)&&console.warn(`Failed to open diff file in editor.`,{operation:`open-diff-file`,environmentId:r.environmentId,threadId:r.threadId,...se(re(t))})})()}})},[R,Pt,Xe,r]),It=(0,F.useCallback)(e=>{Oe(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)(()=>{Oe(e=>{let t=e.scopeKey===Y?e.fileKeys:rt;return{scopeKey:Y,fileKeys:ce(jt,t)}})},[Y,jt]),Rt=e=>{N.getState().selectTurn(r,e)},zt=e=>{N.getState().selectGitScope(r,e)},Bt=e=>{N.getState().selectBranchBaseRef(r,e)};return(0,L.jsx)(ve,{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)(a,{children:[(0,L.jsxs)(l,{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)(i,{className:`size-3.5 shrink-0 text-muted-foreground`})]}),(0,L.jsxs)(f,{align:`start`,className:`w-60`,children:[(0,L.jsx)(s,{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)(s,{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)(s,{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)(d,{children:[(0,L.jsx)(ee,{children:`Turn`}),(0,L.jsx)(ne,{className:`w-64`,children:U.map(e=>{let t=e.checkpointTurnCount??V[e.turnId]??`?`;return(0,L.jsxs)(s,{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:_e(e.completedAt,te.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)(xe,{className:`size-3.5 shrink-0 opacity-70`}),(0,L.jsxs)(Re,{items:St,filteredItems:Ct,value:K??H,onOpenChange:e=>{e||ye(``)},onValueChange:e=>{e&&Bt(e===H?null:e)},children:[(0,L.jsxs)(Fe,{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)(i,{className:`size-3.5 shrink-0 opacity-70`})]}),(0,L.jsxs)(Te,{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)(Ae,{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:D,onChange:e=>ye(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)(Se,{children:`No matching refs.`}),(0,L.jsxs)(we,{className:`max-h-64 min-w-0 overflow-x-hidden`,children:[(0,L.jsx)(Be,{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)(Be,{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)(Ne,{"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)(g,{"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)(De,{additions:Nt.additions,deletions:Nt.deletions,className:`mr-1 text-[11px]`,layout:`inline`}),$.length>0&&(0,L.jsxs)(y,{children:[(0,L.jsx)(C,{render:(0,L.jsx)(m,{type:`button`,size:`icon-xs`,variant:`outline`,"aria-label":Mt?`Expand all files`:`Collapse all files`,onClick:Lt}),children:Mt?(0,L.jsx)(Me,{className:`size-3`}):(0,L.jsx)(Le,{className:`size-3`})}),(0,L.jsx)(_,{side:`top`,children:Mt?`Expand all files`:`Collapse all files`})]}),(0,L.jsxs)(O,{className:`shrink-0`,variant:`outline`,size:`xs`,value:[v],onValueChange:e=>{let t=e[0];(t===`stacked`||t===`split`)&&ae(t)},children:[(0,L.jsx)(M,{"aria-label":`Stacked diff view`,value:`stacked`,children:(0,L.jsx)(k,{className:`size-3`})}),(0,L.jsx)(M,{"aria-label":`Split diff view`,value:`split`,children:(0,L.jsx)(j,{className:`size-3`})})]}),(0,L.jsxs)(y,{children:[(0,L.jsx)(C,{render:(0,L.jsx)(M,{"aria-label":x?`Disable diff line wrapping`:`Enable diff line wrapping`,variant:`outline`,size:`xs`,pressed:x,onPressedChange:e=>{S(!!e)}}),children:(0,L.jsx)(me,{className:`size-3`})}),(0,L.jsx)(_,{side:`top`,children:x?`Disable line wrapping`:`Enable line wrapping`})]}),(0,L.jsxs)(y,{children:[(0,L.jsx)(C,{render:(0,L.jsx)(M,{"aria-label":w?`Show whitespace changes`:`Hide whitespace changes`,variant:`outline`,size:`xs`,pressed:w,onPressedChange:e=>{E(!!e)}}),children:(0,L.jsx)(We,{className:`size-3`})}),(0,L.jsx)(_,{side:`top`,children:w?`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=P(e);return(0,L.jsxs)(y,{children:[(0,L.jsx)(C,{render:(0,L.jsx)(`button`,{type:`button`,className:u(`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`,be(e)),"aria-label":n?`Expand ${r}`:`Collapse ${r}`,"aria-expanded":!n,onClick:e=>{e.stopPropagation(),It(t)}}),children:n?(0,L.jsx)(p,{className:`size-4`}):(0,L.jsx)(i,{className:`size-4`})}),(0,L.jsx)(_,{side:`top`,children:n?`Expand diff`:`Collapse diff`})]})},options:{diffStyle:v===`split`?`split`:`unified`,lineDiffType:`none`,overflow:x?`wrap`:`scroll`,theme:Ce(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:u(`max-h-[72vh] rounded-md border border-border/70 bg-background/70 p-3 font-mono text-[11px] leading-relaxed text-muted-foreground/90`,x?`overflow-auto whitespace-pre-wrap wrap-break-word`:`overflow-auto`),children:Q.text})]})}):Dt?(0,L.jsx)(fe,{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{ye as DiffWorkerPoolProvider,U as default};
|
|
98
|
-
//# sourceMappingURL=DiffPanel-
|
|
98
|
+
//# sourceMappingURL=DiffPanel-eMr7nU0h.js.map
|