@mduan/paseo-cli 0.11.0-fork.39 → 0.11.0-fork.40

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 (48) hide show
  1. package/node_modules/@getpaseo/client/dist/daemon-client.d.ts +9 -0
  2. package/node_modules/@getpaseo/client/dist/daemon-client.js +13 -0
  3. package/node_modules/@getpaseo/client/package.json +3 -3
  4. package/node_modules/@getpaseo/highlight/package.json +1 -1
  5. package/node_modules/@getpaseo/plugin/package.json +3 -3
  6. package/node_modules/@getpaseo/protocol/dist/generated/validation/ws-outbound.aot.js +6863 -6631
  7. package/node_modules/@getpaseo/protocol/dist/messages.d.ts +259 -0
  8. package/node_modules/@getpaseo/protocol/dist/messages.js +20 -0
  9. package/node_modules/@getpaseo/protocol/dist/validation/ws-outbound-schema-metadata.d.ts +56 -0
  10. package/node_modules/@getpaseo/protocol/package.json +1 -1
  11. package/node_modules/@getpaseo/relay/package.json +1 -1
  12. package/node_modules/@getpaseo/server/dist/server/builtin-plugins/package.json +1 -1
  13. package/node_modules/@getpaseo/server/dist/server/server/authorization/operation-permissions.js +2 -0
  14. package/node_modules/@getpaseo/server/dist/server/server/session/checkout/checkout-session.d.ts +2 -1
  15. package/node_modules/@getpaseo/server/dist/server/server/session/checkout/checkout-session.js +40 -2
  16. package/node_modules/@getpaseo/server/dist/server/server/session.js +2 -0
  17. package/node_modules/@getpaseo/server/dist/server/server/websocket-server.js +2 -0
  18. package/node_modules/@getpaseo/server/dist/server/utils/checkout-git.d.ts +15 -3
  19. package/node_modules/@getpaseo/server/dist/server/utils/checkout-git.js +149 -46
  20. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-bridge-9f8115d584725a280c0334788152118e.js → desktop-attachment-bridge-033b357b5b3b822d4c1b8daa262768f7.js} +1 -1
  21. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-033b357b5b3b822d4c1b8daa262768f7.js.br +0 -0
  22. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-033b357b5b3b822d4c1b8daa262768f7.js.gz +0 -0
  23. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-store-97325a18e4df847b34f0f393227301fb.js → desktop-attachment-store-458d14dda83d8704346c02725cc150e4.js} +1 -1
  24. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/desktop-attachment-store-458d14dda83d8704346c02725cc150e4.js.br +0 -0
  25. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/desktop-attachment-store-458d14dda83d8704346c02725cc150e4.js.gz +0 -0
  26. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/{index-741733179ad64039fff446da9e5b6f11.js → index-6d882b7db3a7114b61c60c86271607c6.js} +580 -585
  27. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/index-6d882b7db3a7114b61c60c86271607c6.js.br +0 -0
  28. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/{index-741733179ad64039fff446da9e5b6f11.js.gz → index-6d882b7db3a7114b61c60c86271607c6.js.gz} +0 -0
  29. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/{indexeddb-attachment-store-a7e99fce0fb2b70e580ec405b0818b22.js → indexeddb-attachment-store-a49382dd48253a14305777a72b6c5032.js} +1 -1
  30. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-a49382dd48253a14305777a72b6c5032.js.br +0 -0
  31. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-a49382dd48253a14305777a72b6c5032.js.gz +0 -0
  32. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/{native-file-attachment-store-4490341794e4b3a3274b82a322c6baa6.js → native-file-attachment-store-5a3f6f1479b4732de3f0e0d0d2e3e783.js} +3 -3
  33. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-5a3f6f1479b4732de3f0e0d0d2e3e783.js.br +0 -0
  34. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-5a3f6f1479b4732de3f0e0d0d2e3e783.js.gz +0 -0
  35. package/node_modules/@getpaseo/server/dist/server/web-ui/index.html +1 -1
  36. package/node_modules/@getpaseo/server/dist/server/web-ui/index.html.br +0 -0
  37. package/node_modules/@getpaseo/server/dist/server/web-ui/index.html.gz +0 -0
  38. package/node_modules/@getpaseo/server/package.json +6 -6
  39. package/package.json +7 -7
  40. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-9f8115d584725a280c0334788152118e.js.br +0 -0
  41. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-9f8115d584725a280c0334788152118e.js.gz +0 -0
  42. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/desktop-attachment-store-97325a18e4df847b34f0f393227301fb.js.br +0 -0
  43. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/desktop-attachment-store-97325a18e4df847b34f0f393227301fb.js.gz +0 -0
  44. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/index-741733179ad64039fff446da9e5b6f11.js.br +0 -0
  45. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-a7e99fce0fb2b70e580ec405b0818b22.js.br +0 -0
  46. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-a7e99fce0fb2b70e580ec405b0818b22.js.gz +0 -0
  47. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-4490341794e4b3a3274b82a322c6baa6.js.br +0 -0
  48. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-4490341794e4b3a3274b82a322c6baa6.js.gz +0 -0
@@ -3424,6 +3424,14 @@ export declare const CheckoutDiffContextRequestSchema: z.ZodObject<{
3424
3424
  lineCount: z.ZodNumber;
3425
3425
  requestId: z.ZodString;
3426
3426
  }, z.core.$strip>;
3427
+ export declare const CheckoutCommitRangeDiffRequestSchema: z.ZodObject<{
3428
+ type: z.ZodLiteral<"checkout.commits.range_diff.request">;
3429
+ cwd: z.ZodString;
3430
+ fromSha: z.ZodString;
3431
+ toSha: z.ZodString;
3432
+ ignoreWhitespace: z.ZodOptional<z.ZodBoolean>;
3433
+ requestId: z.ZodString;
3434
+ }, z.core.$strip>;
3427
3435
  export declare const CheckoutCommitFileDiffRequestSchema: z.ZodObject<{
3428
3436
  type: z.ZodLiteral<"checkout.commits.file_diff.request">;
3429
3437
  cwd: z.ZodString;
@@ -6497,6 +6505,13 @@ export declare const SessionInboundMessageSchema: z.ZodDiscriminatedUnion<[z.Zod
6497
6505
  sha: z.ZodString;
6498
6506
  path: z.ZodString;
6499
6507
  requestId: z.ZodString;
6508
+ }, z.core.$strip>, z.ZodObject<{
6509
+ type: z.ZodLiteral<"checkout.commits.range_diff.request">;
6510
+ cwd: z.ZodString;
6511
+ fromSha: z.ZodString;
6512
+ toSha: z.ZodString;
6513
+ ignoreWhitespace: z.ZodOptional<z.ZodBoolean>;
6514
+ requestId: z.ZodString;
6500
6515
  }, z.core.$strip>, z.ZodObject<{
6501
6516
  type: z.ZodLiteral<"checkout.diff.context.request">;
6502
6517
  cwd: z.ZodString;
@@ -8067,6 +8082,7 @@ export declare const ServerInfoStatusPayloadSchema: z.ZodPipe<z.ZodObject<{
8067
8082
  projectList: z.ZodOptional<z.ZodBoolean>;
8068
8083
  commitsList: z.ZodOptional<z.ZodBoolean>;
8069
8084
  commitBaseClassification: z.ZodOptional<z.ZodBoolean>;
8085
+ commitRangeDiff: z.ZodOptional<z.ZodBoolean>;
8070
8086
  providerRemoval: z.ZodOptional<z.ZodBoolean>;
8071
8087
  importSessionWorkspaceTarget: z.ZodOptional<z.ZodBoolean>;
8072
8088
  importSessionSearch: z.ZodOptional<z.ZodBoolean>;
@@ -8191,6 +8207,7 @@ export declare const ServerInfoStatusPayloadSchema: z.ZodPipe<z.ZodObject<{
8191
8207
  projectList?: boolean | undefined;
8192
8208
  commitsList?: boolean | undefined;
8193
8209
  commitBaseClassification?: boolean | undefined;
8210
+ commitRangeDiff?: boolean | undefined;
8194
8211
  providerRemoval?: boolean | undefined;
8195
8212
  importSessionWorkspaceTarget?: boolean | undefined;
8196
8213
  importSessionSearch?: boolean | undefined;
@@ -8316,6 +8333,7 @@ export declare const ServerInfoStatusPayloadSchema: z.ZodPipe<z.ZodObject<{
8316
8333
  projectList?: boolean | undefined;
8317
8334
  commitsList?: boolean | undefined;
8318
8335
  commitBaseClassification?: boolean | undefined;
8336
+ commitRangeDiff?: boolean | undefined;
8319
8337
  providerRemoval?: boolean | undefined;
8320
8338
  importSessionWorkspaceTarget?: boolean | undefined;
8321
8339
  importSessionSearch?: boolean | undefined;
@@ -20355,6 +20373,63 @@ export declare const CheckoutDiffContextResponseSchema: z.ZodObject<{
20355
20373
  requestId: z.ZodString;
20356
20374
  }, z.core.$strip>;
20357
20375
  }, z.core.$strip>;
20376
+ export declare const CheckoutCommitRangeDiffResponseSchema: z.ZodObject<{
20377
+ type: z.ZodLiteral<"checkout.commits.range_diff.response">;
20378
+ payload: z.ZodObject<{
20379
+ error: z.ZodNullable<z.ZodObject<{
20380
+ code: z.ZodEnum<{
20381
+ NOT_GIT_REPO: "NOT_GIT_REPO";
20382
+ NOT_ALLOWED: "NOT_ALLOWED";
20383
+ MERGE_CONFLICT: "MERGE_CONFLICT";
20384
+ UNKNOWN: "UNKNOWN";
20385
+ }>;
20386
+ message: z.ZodString;
20387
+ }, z.core.$strip>>;
20388
+ cwd: z.ZodString;
20389
+ files: z.ZodArray<z.ZodObject<{
20390
+ path: z.ZodString;
20391
+ oldPath: z.ZodOptional<z.ZodString>;
20392
+ isNew: z.ZodBoolean;
20393
+ isDeleted: z.ZodBoolean;
20394
+ additions: z.ZodNumber;
20395
+ deletions: z.ZodNumber;
20396
+ hunks: z.ZodArray<z.ZodObject<{
20397
+ oldStart: z.ZodNumber;
20398
+ oldCount: z.ZodNumber;
20399
+ newStart: z.ZodNumber;
20400
+ newCount: z.ZodNumber;
20401
+ lines: z.ZodArray<z.ZodObject<{
20402
+ type: z.ZodEnum<{
20403
+ context: "context";
20404
+ add: "add";
20405
+ remove: "remove";
20406
+ header: "header";
20407
+ }>;
20408
+ content: z.ZodString;
20409
+ tokens: z.ZodOptional<z.ZodArray<z.ZodObject<{
20410
+ text: z.ZodString;
20411
+ style: z.ZodNullable<z.ZodString>;
20412
+ }, z.core.$strip>>>;
20413
+ }, z.core.$strip>>;
20414
+ }, z.core.$strip>>;
20415
+ status: z.ZodOptional<z.ZodEnum<{
20416
+ ok: "ok";
20417
+ too_large: "too_large";
20418
+ binary: "binary";
20419
+ }>>;
20420
+ targetRef: z.ZodOptional<z.ZodString>;
20421
+ lineCount: z.ZodOptional<z.ZodNumber>;
20422
+ }, z.core.$strip>>;
20423
+ historyStatus: z.ZodOptional<z.ZodEnum<typeof CheckoutDiffHistoryStatus>>;
20424
+ diffTooLarge: z.ZodOptional<z.ZodBoolean>;
20425
+ requestId: z.ZodString;
20426
+ snapshot: z.ZodOptional<z.ZodObject<{
20427
+ cwd: z.ZodString;
20428
+ fromTree: z.ZodString;
20429
+ toTree: z.ZodString;
20430
+ }, z.core.$strip>>;
20431
+ }, z.core.$strip>;
20432
+ }, z.core.$strip>;
20358
20433
  export declare const CheckoutCommitFileDiffResponseSchema: z.ZodObject<{
20359
20434
  type: z.ZodLiteral<"checkout.commits.file_diff.response">;
20360
20435
  payload: z.ZodObject<{
@@ -35192,6 +35267,62 @@ export declare const SessionOutboundMessageSchema: z.ZodDiscriminatedUnion<[z.Zo
35192
35267
  }, z.core.$strip>>;
35193
35268
  requestId: z.ZodString;
35194
35269
  }, z.core.$strip>;
35270
+ }, z.core.$strip>, z.ZodObject<{
35271
+ type: z.ZodLiteral<"checkout.commits.range_diff.response">;
35272
+ payload: z.ZodObject<{
35273
+ error: z.ZodNullable<z.ZodObject<{
35274
+ code: z.ZodEnum<{
35275
+ NOT_GIT_REPO: "NOT_GIT_REPO";
35276
+ NOT_ALLOWED: "NOT_ALLOWED";
35277
+ MERGE_CONFLICT: "MERGE_CONFLICT";
35278
+ UNKNOWN: "UNKNOWN";
35279
+ }>;
35280
+ message: z.ZodString;
35281
+ }, z.core.$strip>>;
35282
+ cwd: z.ZodString;
35283
+ files: z.ZodArray<z.ZodObject<{
35284
+ path: z.ZodString;
35285
+ oldPath: z.ZodOptional<z.ZodString>;
35286
+ isNew: z.ZodBoolean;
35287
+ isDeleted: z.ZodBoolean;
35288
+ additions: z.ZodNumber;
35289
+ deletions: z.ZodNumber;
35290
+ hunks: z.ZodArray<z.ZodObject<{
35291
+ oldStart: z.ZodNumber;
35292
+ oldCount: z.ZodNumber;
35293
+ newStart: z.ZodNumber;
35294
+ newCount: z.ZodNumber;
35295
+ lines: z.ZodArray<z.ZodObject<{
35296
+ type: z.ZodEnum<{
35297
+ context: "context";
35298
+ add: "add";
35299
+ remove: "remove";
35300
+ header: "header";
35301
+ }>;
35302
+ content: z.ZodString;
35303
+ tokens: z.ZodOptional<z.ZodArray<z.ZodObject<{
35304
+ text: z.ZodString;
35305
+ style: z.ZodNullable<z.ZodString>;
35306
+ }, z.core.$strip>>>;
35307
+ }, z.core.$strip>>;
35308
+ }, z.core.$strip>>;
35309
+ status: z.ZodOptional<z.ZodEnum<{
35310
+ ok: "ok";
35311
+ too_large: "too_large";
35312
+ binary: "binary";
35313
+ }>>;
35314
+ targetRef: z.ZodOptional<z.ZodString>;
35315
+ lineCount: z.ZodOptional<z.ZodNumber>;
35316
+ }, z.core.$strip>>;
35317
+ historyStatus: z.ZodOptional<z.ZodEnum<typeof CheckoutDiffHistoryStatus>>;
35318
+ diffTooLarge: z.ZodOptional<z.ZodBoolean>;
35319
+ requestId: z.ZodString;
35320
+ snapshot: z.ZodOptional<z.ZodObject<{
35321
+ cwd: z.ZodString;
35322
+ fromTree: z.ZodString;
35323
+ toTree: z.ZodString;
35324
+ }, z.core.$strip>>;
35325
+ }, z.core.$strip>;
35195
35326
  }, z.core.$strip>, z.ZodObject<{
35196
35327
  type: z.ZodLiteral<"checkout.diff.context.response">;
35197
35328
  payload: z.ZodObject<{
@@ -38263,6 +38394,8 @@ export type CheckoutCommitsListRequest = z.infer<typeof CheckoutCommitsListReque
38263
38394
  export type CheckoutCommitsListResponse = z.infer<typeof CheckoutCommitsListResponseSchema>;
38264
38395
  export type CheckoutCommitFileDiffRequest = z.infer<typeof CheckoutCommitFileDiffRequestSchema>;
38265
38396
  export type CheckoutCommitFileDiffResponse = z.infer<typeof CheckoutCommitFileDiffResponseSchema>;
38397
+ export type CheckoutCommitRangeDiffRequest = z.infer<typeof CheckoutCommitRangeDiffRequestSchema>;
38398
+ export type CheckoutCommitRangeDiffResponse = z.infer<typeof CheckoutCommitRangeDiffResponseSchema>;
38266
38399
  export type CheckoutDiffContextRequest = z.infer<typeof CheckoutDiffContextRequestSchema>;
38267
38400
  export type CheckoutDiffContextResponse = z.infer<typeof CheckoutDiffContextResponseSchema>;
38268
38401
  export type ParsedDiffFile = z.infer<typeof ParsedDiffFileSchema>;
@@ -40091,6 +40224,13 @@ export declare const WSSessionInboundSchema: z.ZodObject<{
40091
40224
  sha: z.ZodString;
40092
40225
  path: z.ZodString;
40093
40226
  requestId: z.ZodString;
40227
+ }, z.core.$strip>, z.ZodObject<{
40228
+ type: z.ZodLiteral<"checkout.commits.range_diff.request">;
40229
+ cwd: z.ZodString;
40230
+ fromSha: z.ZodString;
40231
+ toSha: z.ZodString;
40232
+ ignoreWhitespace: z.ZodOptional<z.ZodBoolean>;
40233
+ requestId: z.ZodString;
40094
40234
  }, z.core.$strip>, z.ZodObject<{
40095
40235
  type: z.ZodLiteral<"checkout.diff.context.request">;
40096
40236
  cwd: z.ZodString;
@@ -52268,6 +52408,62 @@ export declare const WSSessionOutboundSchema: z.ZodObject<{
52268
52408
  }, z.core.$strip>>;
52269
52409
  requestId: z.ZodString;
52270
52410
  }, z.core.$strip>;
52411
+ }, z.core.$strip>, z.ZodObject<{
52412
+ type: z.ZodLiteral<"checkout.commits.range_diff.response">;
52413
+ payload: z.ZodObject<{
52414
+ error: z.ZodNullable<z.ZodObject<{
52415
+ code: z.ZodEnum<{
52416
+ NOT_GIT_REPO: "NOT_GIT_REPO";
52417
+ NOT_ALLOWED: "NOT_ALLOWED";
52418
+ MERGE_CONFLICT: "MERGE_CONFLICT";
52419
+ UNKNOWN: "UNKNOWN";
52420
+ }>;
52421
+ message: z.ZodString;
52422
+ }, z.core.$strip>>;
52423
+ cwd: z.ZodString;
52424
+ files: z.ZodArray<z.ZodObject<{
52425
+ path: z.ZodString;
52426
+ oldPath: z.ZodOptional<z.ZodString>;
52427
+ isNew: z.ZodBoolean;
52428
+ isDeleted: z.ZodBoolean;
52429
+ additions: z.ZodNumber;
52430
+ deletions: z.ZodNumber;
52431
+ hunks: z.ZodArray<z.ZodObject<{
52432
+ oldStart: z.ZodNumber;
52433
+ oldCount: z.ZodNumber;
52434
+ newStart: z.ZodNumber;
52435
+ newCount: z.ZodNumber;
52436
+ lines: z.ZodArray<z.ZodObject<{
52437
+ type: z.ZodEnum<{
52438
+ context: "context";
52439
+ add: "add";
52440
+ remove: "remove";
52441
+ header: "header";
52442
+ }>;
52443
+ content: z.ZodString;
52444
+ tokens: z.ZodOptional<z.ZodArray<z.ZodObject<{
52445
+ text: z.ZodString;
52446
+ style: z.ZodNullable<z.ZodString>;
52447
+ }, z.core.$strip>>>;
52448
+ }, z.core.$strip>>;
52449
+ }, z.core.$strip>>;
52450
+ status: z.ZodOptional<z.ZodEnum<{
52451
+ ok: "ok";
52452
+ too_large: "too_large";
52453
+ binary: "binary";
52454
+ }>>;
52455
+ targetRef: z.ZodOptional<z.ZodString>;
52456
+ lineCount: z.ZodOptional<z.ZodNumber>;
52457
+ }, z.core.$strip>>;
52458
+ historyStatus: z.ZodOptional<z.ZodEnum<typeof CheckoutDiffHistoryStatus>>;
52459
+ diffTooLarge: z.ZodOptional<z.ZodBoolean>;
52460
+ requestId: z.ZodString;
52461
+ snapshot: z.ZodOptional<z.ZodObject<{
52462
+ cwd: z.ZodString;
52463
+ fromTree: z.ZodString;
52464
+ toTree: z.ZodString;
52465
+ }, z.core.$strip>>;
52466
+ }, z.core.$strip>;
52271
52467
  }, z.core.$strip>, z.ZodObject<{
52272
52468
  type: z.ZodLiteral<"checkout.diff.context.response">;
52273
52469
  payload: z.ZodObject<{
@@ -56806,6 +57002,13 @@ export declare const WSInboundMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
56806
57002
  sha: z.ZodString;
56807
57003
  path: z.ZodString;
56808
57004
  requestId: z.ZodString;
57005
+ }, z.core.$strip>, z.ZodObject<{
57006
+ type: z.ZodLiteral<"checkout.commits.range_diff.request">;
57007
+ cwd: z.ZodString;
57008
+ fromSha: z.ZodString;
57009
+ toSha: z.ZodString;
57010
+ ignoreWhitespace: z.ZodOptional<z.ZodBoolean>;
57011
+ requestId: z.ZodString;
56809
57012
  }, z.core.$strip>, z.ZodObject<{
56810
57013
  type: z.ZodLiteral<"checkout.diff.context.request">;
56811
57014
  cwd: z.ZodString;
@@ -68985,6 +69188,62 @@ export declare const WSOutboundMessageSchema: z.ZodDiscriminatedUnion<[z.ZodObje
68985
69188
  }, z.core.$strip>>;
68986
69189
  requestId: z.ZodString;
68987
69190
  }, z.core.$strip>;
69191
+ }, z.core.$strip>, z.ZodObject<{
69192
+ type: z.ZodLiteral<"checkout.commits.range_diff.response">;
69193
+ payload: z.ZodObject<{
69194
+ error: z.ZodNullable<z.ZodObject<{
69195
+ code: z.ZodEnum<{
69196
+ NOT_GIT_REPO: "NOT_GIT_REPO";
69197
+ NOT_ALLOWED: "NOT_ALLOWED";
69198
+ MERGE_CONFLICT: "MERGE_CONFLICT";
69199
+ UNKNOWN: "UNKNOWN";
69200
+ }>;
69201
+ message: z.ZodString;
69202
+ }, z.core.$strip>>;
69203
+ cwd: z.ZodString;
69204
+ files: z.ZodArray<z.ZodObject<{
69205
+ path: z.ZodString;
69206
+ oldPath: z.ZodOptional<z.ZodString>;
69207
+ isNew: z.ZodBoolean;
69208
+ isDeleted: z.ZodBoolean;
69209
+ additions: z.ZodNumber;
69210
+ deletions: z.ZodNumber;
69211
+ hunks: z.ZodArray<z.ZodObject<{
69212
+ oldStart: z.ZodNumber;
69213
+ oldCount: z.ZodNumber;
69214
+ newStart: z.ZodNumber;
69215
+ newCount: z.ZodNumber;
69216
+ lines: z.ZodArray<z.ZodObject<{
69217
+ type: z.ZodEnum<{
69218
+ context: "context";
69219
+ add: "add";
69220
+ remove: "remove";
69221
+ header: "header";
69222
+ }>;
69223
+ content: z.ZodString;
69224
+ tokens: z.ZodOptional<z.ZodArray<z.ZodObject<{
69225
+ text: z.ZodString;
69226
+ style: z.ZodNullable<z.ZodString>;
69227
+ }, z.core.$strip>>>;
69228
+ }, z.core.$strip>>;
69229
+ }, z.core.$strip>>;
69230
+ status: z.ZodOptional<z.ZodEnum<{
69231
+ ok: "ok";
69232
+ too_large: "too_large";
69233
+ binary: "binary";
69234
+ }>>;
69235
+ targetRef: z.ZodOptional<z.ZodString>;
69236
+ lineCount: z.ZodOptional<z.ZodNumber>;
69237
+ }, z.core.$strip>>;
69238
+ historyStatus: z.ZodOptional<z.ZodEnum<typeof CheckoutDiffHistoryStatus>>;
69239
+ diffTooLarge: z.ZodOptional<z.ZodBoolean>;
69240
+ requestId: z.ZodString;
69241
+ snapshot: z.ZodOptional<z.ZodObject<{
69242
+ cwd: z.ZodString;
69243
+ fromTree: z.ZodString;
69244
+ toTree: z.ZodString;
69245
+ }, z.core.$strip>>;
69246
+ }, z.core.$strip>;
68988
69247
  }, z.core.$strip>, z.ZodObject<{
68989
69248
  type: z.ZodLiteral<"checkout.diff.context.response">;
68990
69249
  payload: z.ZodObject<{
@@ -2139,6 +2139,15 @@ export const CheckoutDiffContextRequestSchema = z.object({
2139
2139
  lineCount: z.number().int().positive(),
2140
2140
  requestId: z.string(),
2141
2141
  });
2142
+ export const CheckoutCommitRangeDiffRequestSchema = z.object({
2143
+ type: z.literal("checkout.commits.range_diff.request"),
2144
+ cwd: z.string(),
2145
+ // Oldest and newest commit of the range; the diff includes both.
2146
+ fromSha: z.string(),
2147
+ toSha: z.string(),
2148
+ ignoreWhitespace: z.boolean().optional(),
2149
+ requestId: z.string(),
2150
+ });
2142
2151
  export const CheckoutCommitFileDiffRequestSchema = z.object({
2143
2152
  type: z.literal("checkout.commits.file_diff.request"),
2144
2153
  cwd: z.string(),
@@ -3069,6 +3078,7 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
3069
3078
  CheckoutGithubSetAutoMergeRequestSchema,
3070
3079
  CheckoutCommitsListRequestSchema,
3071
3080
  CheckoutCommitFileDiffRequestSchema,
3081
+ CheckoutCommitRangeDiffRequestSchema,
3072
3082
  CheckoutDiffContextRequestSchema,
3073
3083
  CheckoutForgeGetCheckDetailsRequestSchema,
3074
3084
  CheckoutGithubGetCheckDetailsRequestSchema,
@@ -3470,6 +3480,8 @@ export const ServerInfoStatusPayloadSchema = z
3470
3480
  commitsList: z.boolean().optional(),
3471
3481
  // COMPAT(commitBaseClassification): added in v0.2.0, remove gate after 2027-01-23.
3472
3482
  commitBaseClassification: z.boolean().optional(),
3483
+ // COMPAT(commitRangeDiff): added in v0.11.0-fork.40, remove gate after 2027-05-13.
3484
+ commitRangeDiff: z.boolean().optional(),
3473
3485
  // COMPAT(providerRemoval): added in v0.1.105, drop the gate when floor >= v0.1.105.
3474
3486
  providerRemoval: z.boolean().optional(),
3475
3487
  // COMPAT(importSessionWorkspaceTarget): added in v0.1.110, remove gate after 2027-01-16.
@@ -5271,6 +5283,13 @@ export const CheckoutDiffContextResponseSchema = z.object({
5271
5283
  requestId: z.string(),
5272
5284
  }),
5273
5285
  });
5286
+ export const CheckoutCommitRangeDiffResponseSchema = z.object({
5287
+ type: z.literal("checkout.commits.range_diff.response"),
5288
+ payload: CheckoutDiffSubscriptionPayloadSchema.omit({ subscriptionId: true }).extend({
5289
+ requestId: z.string(),
5290
+ snapshot: ReviewCommentSnapshotSchema.optional(),
5291
+ }),
5292
+ });
5274
5293
  export const CheckoutCommitFileDiffResponseSchema = z.object({
5275
5294
  type: z.literal("checkout.commits.file_diff.response"),
5276
5295
  payload: z.object({
@@ -6546,6 +6565,7 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
6546
6565
  CheckoutGithubSetAutoMergeResponseSchema,
6547
6566
  CheckoutCommitsListResponseSchema,
6548
6567
  CheckoutCommitFileDiffResponseSchema,
6568
+ CheckoutCommitRangeDiffResponseSchema,
6549
6569
  CheckoutDiffContextResponseSchema,
6550
6570
  CheckoutForgeGetCheckDetailsResponseSchema,
6551
6571
  CheckoutGithubGetCheckDetailsResponseSchema,
@@ -10859,6 +10859,62 @@ export declare const WSOutboundMessageSchema: {
10859
10859
  }, import("zod/v4/core").$strip>>;
10860
10860
  requestId: import("zod").ZodString;
10861
10861
  }, import("zod/v4/core").$strip>;
10862
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
10863
+ type: import("zod").ZodLiteral<"checkout.commits.range_diff.response">;
10864
+ payload: import("zod").ZodObject<{
10865
+ error: import("zod").ZodNullable<import("zod").ZodObject<{
10866
+ code: import("zod").ZodEnum<{
10867
+ NOT_GIT_REPO: "NOT_GIT_REPO";
10868
+ NOT_ALLOWED: "NOT_ALLOWED";
10869
+ MERGE_CONFLICT: "MERGE_CONFLICT";
10870
+ UNKNOWN: "UNKNOWN";
10871
+ }>;
10872
+ message: import("zod").ZodString;
10873
+ }, import("zod/v4/core").$strip>>;
10874
+ cwd: import("zod").ZodString;
10875
+ files: import("zod").ZodArray<import("zod").ZodObject<{
10876
+ path: import("zod").ZodString;
10877
+ oldPath: import("zod").ZodOptional<import("zod").ZodString>;
10878
+ isNew: import("zod").ZodBoolean;
10879
+ isDeleted: import("zod").ZodBoolean;
10880
+ additions: import("zod").ZodNumber;
10881
+ deletions: import("zod").ZodNumber;
10882
+ hunks: import("zod").ZodArray<import("zod").ZodObject<{
10883
+ oldStart: import("zod").ZodNumber;
10884
+ oldCount: import("zod").ZodNumber;
10885
+ newStart: import("zod").ZodNumber;
10886
+ newCount: import("zod").ZodNumber;
10887
+ lines: import("zod").ZodArray<import("zod").ZodObject<{
10888
+ type: import("zod").ZodEnum<{
10889
+ context: "context";
10890
+ add: "add";
10891
+ remove: "remove";
10892
+ header: "header";
10893
+ }>;
10894
+ content: import("zod").ZodString;
10895
+ tokens: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
10896
+ text: import("zod").ZodString;
10897
+ style: import("zod").ZodNullable<import("zod").ZodString>;
10898
+ }, import("zod/v4/core").$strip>>>;
10899
+ }, import("zod/v4/core").$strip>>;
10900
+ }, import("zod/v4/core").$strip>>;
10901
+ status: import("zod").ZodOptional<import("zod").ZodEnum<{
10902
+ ok: "ok";
10903
+ too_large: "too_large";
10904
+ binary: "binary";
10905
+ }>>;
10906
+ targetRef: import("zod").ZodOptional<import("zod").ZodString>;
10907
+ lineCount: import("zod").ZodOptional<import("zod").ZodNumber>;
10908
+ }, import("zod/v4/core").$strip>>;
10909
+ historyStatus: import("zod").ZodOptional<import("zod").ZodEnum<typeof import("../messages.js").CheckoutDiffHistoryStatus>>;
10910
+ diffTooLarge: import("zod").ZodOptional<import("zod").ZodBoolean>;
10911
+ requestId: import("zod").ZodString;
10912
+ snapshot: import("zod").ZodOptional<import("zod").ZodObject<{
10913
+ cwd: import("zod").ZodString;
10914
+ fromTree: import("zod").ZodString;
10915
+ toTree: import("zod").ZodString;
10916
+ }, import("zod/v4/core").$strip>>;
10917
+ }, import("zod/v4/core").$strip>;
10862
10918
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
10863
10919
  type: import("zod").ZodLiteral<"checkout.diff.context.response">;
10864
10920
  payload: import("zod").ZodObject<{
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getpaseo/protocol",
3
- "version": "0.11.0-fork.39",
3
+ "version": "0.11.0-fork.40",
4
4
  "description": "Paseo shared protocol schemas and wire types",
5
5
  "files": [
6
6
  "dist",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getpaseo/relay",
3
- "version": "0.11.0-fork.39",
3
+ "version": "0.11.0-fork.40",
4
4
  "description": "Paseo relay for bridging daemon and client connections",
5
5
  "files": [
6
6
  "dist",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getpaseo/builtin-plugins",
3
- "version": "0.11.0-fork.39",
3
+ "version": "0.11.0-fork.40",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "scripts": {
@@ -39,6 +39,7 @@ const INBOUND_PERMISSION = {
39
39
  "chat/wait": "workspace.read",
40
40
  "checkout.commits.file_diff.request": "workspace.read",
41
41
  "checkout.commits.list.request": "workspace.read",
42
+ "checkout.commits.range_diff.request": "workspace.read",
42
43
  "checkout.diff.context.request": "workspace.read",
43
44
  "checkout.discard_changes.request": "workspace.write",
44
45
  "checkout.forge.get_check_details.request": "workspace.read",
@@ -277,6 +278,7 @@ const OUTBOUND_PERMISSION = {
277
278
  "chat/wait/response": "workspace.read",
278
279
  "checkout.commits.file_diff.response": "workspace.read",
279
280
  "checkout.commits.list.response": "workspace.read",
281
+ "checkout.commits.range_diff.response": "workspace.read",
280
282
  "checkout.diff.context.response": "workspace.read",
281
283
  "checkout.discard_changes.response": "workspace.write",
282
284
  "checkout.forge.get_check_details.response": "workspace.read",
@@ -1,6 +1,6 @@
1
1
  import type pino from "pino";
2
2
  import type { SessionDelivery } from "../owned-subscriptions/index.js";
3
- import type { BranchSuggestionsRequest, CheckoutCommitsListRequest, CheckoutCommitFileDiffRequest, CheckoutDiffContextRequest, CheckoutRefreshRequest, CheckoutRenameBranchRequest, CheckoutSetBaseRefRequest, CheckoutStatusRequest, SessionInboundMessage, SessionOutboundMessage, SubscribeCheckoutDiffRequest, UnsubscribeCheckoutDiffRequest, ValidateBranchRequest } from "../../messages.js";
3
+ import type { BranchSuggestionsRequest, CheckoutCommitsListRequest, CheckoutCommitFileDiffRequest, CheckoutCommitRangeDiffRequest, CheckoutDiffContextRequest, CheckoutRefreshRequest, CheckoutRenameBranchRequest, CheckoutSetBaseRefRequest, CheckoutStatusRequest, SessionInboundMessage, SessionOutboundMessage, SubscribeCheckoutDiffRequest, UnsubscribeCheckoutDiffRequest, ValidateBranchRequest } from "../../messages.js";
4
4
  import type { CheckoutDiffSnapshotPayload, CheckoutDiffSubscription, CheckoutDiffSubscriptionRequest } from "../../checkout-diff-manager.js";
5
5
  import type { WorkspaceGitRuntimeSnapshot, WorkspaceGitService } from "../../workspace-git-service.js";
6
6
  import type { GitMutationService } from "../git-mutation/git-mutation-service.js";
@@ -85,6 +85,7 @@ export declare class CheckoutSession {
85
85
  handleStatusRequest(msg: CheckoutStatusRequest): Promise<void>;
86
86
  handleCommitsListRequest(msg: CheckoutCommitsListRequest): Promise<void>;
87
87
  handleCommitFileDiffRequest(msg: CheckoutCommitFileDiffRequest): Promise<void>;
88
+ handleCommitRangeDiffRequest(msg: CheckoutCommitRangeDiffRequest): Promise<void>;
88
89
  handleDiffContextRequest(msg: CheckoutDiffContextRequest): Promise<void>;
89
90
  handleValidateBranchRequest(msg: ValidateBranchRequest): Promise<void>;
90
91
  handleBranchSuggestionsRequest(msg: BranchSuggestionsRequest): Promise<void>;
@@ -5,7 +5,7 @@ import { validateBranchSlug } from "@getpaseo/protocol/branch-slug";
5
5
  import { toCheckoutError } from "../../checkout-git-utils.js";
6
6
  import { buildCheckoutPrStatusPayloadFromSnapshot, buildCheckoutStatusPayloadFromSnapshot, } from "../../checkout/status-projection.js";
7
7
  import { assertSafeGitRef } from "../../worktree-session.js";
8
- import { BranchCheckoutKind, commitChanges, createPullRequest, discardChanges, forgeAuthStateFromError, isForgeAuthError, mergeFromBase, mergeToBase, pullCurrentBranch, pushCurrentBranch, listCheckoutCommits, getCommitFileDiff, readDiffContextLines, setCurrentBranchBaseRef, } from "../../../utils/checkout-git.js";
8
+ import { BranchCheckoutKind, commitChanges, createPullRequest, discardChanges, forgeAuthStateFromError, isForgeAuthError, mergeFromBase, mergeToBase, pullCurrentBranch, pushCurrentBranch, listCheckoutCommits, getCommitFileDiff, getCommitRangeDiff, readDiffContextLines, setCurrentBranchBaseRef, } from "../../../utils/checkout-git.js";
9
9
  import { runGitCommand } from "../../../utils/run-git-command.js";
10
10
  import { expandTilde } from "../../../utils/path.js";
11
11
  function assertSafeRelativePath(path) {
@@ -165,7 +165,12 @@ export class CheckoutSession {
165
165
  try {
166
166
  assertSafeGitRef(sha, "commit");
167
167
  assertSafeRelativePath(path);
168
- const file = await getCommitFileDiff({ cwd: expandTilde(cwd), sha, path });
168
+ const file = await getCommitFileDiff({
169
+ cwd: expandTilde(cwd),
170
+ sha,
171
+ path,
172
+ context: { paseoHome: this.paseoHome, worktreesRoot: this.worktreesRoot },
173
+ });
169
174
  this.host.emit({
170
175
  type: "checkout.commits.file_diff.response",
171
176
  payload: { cwd, sha, path, file, error: null, requestId },
@@ -178,6 +183,39 @@ export class CheckoutSession {
178
183
  });
179
184
  }
180
185
  }
186
+ async handleCommitRangeDiffRequest(msg) {
187
+ const { cwd, fromSha, toSha, ignoreWhitespace, requestId } = msg;
188
+ try {
189
+ assertSafeGitRef(fromSha, "commit");
190
+ assertSafeGitRef(toSha, "commit");
191
+ const result = await getCommitRangeDiff({
192
+ cwd: expandTilde(cwd),
193
+ fromSha,
194
+ toSha,
195
+ ignoreWhitespace,
196
+ context: { paseoHome: this.paseoHome, worktreesRoot: this.worktreesRoot },
197
+ });
198
+ this.host.emit({
199
+ type: "checkout.commits.range_diff.response",
200
+ payload: {
201
+ cwd,
202
+ files: result.structured ?? [],
203
+ snapshot: { cwd, fromTree: result.baseRef, toTree: result.targetRef },
204
+ error: result.diffTooLarge
205
+ ? toCheckoutError(new Error("Diff too large to display"))
206
+ : null,
207
+ ...(result.diffTooLarge ? { diffTooLarge: true } : {}),
208
+ requestId,
209
+ },
210
+ });
211
+ }
212
+ catch (error) {
213
+ this.host.emit({
214
+ type: "checkout.commits.range_diff.response",
215
+ payload: { cwd, files: [], error: toCheckoutError(error), requestId },
216
+ });
217
+ }
218
+ }
181
219
  async handleDiffContextRequest(msg) {
182
220
  const { cwd, path, ref, startLine, lineCount, requestId } = msg;
183
221
  try {
@@ -1978,6 +1978,8 @@ export class Session {
1978
1978
  return this.checkoutSession.handleCommitsListRequest(msg);
1979
1979
  case "checkout.commits.file_diff.request":
1980
1980
  return this.checkoutSession.handleCommitFileDiffRequest(msg);
1981
+ case "checkout.commits.range_diff.request":
1982
+ return this.checkoutSession.handleCommitRangeDiffRequest(msg);
1981
1983
  case "checkout.diff.context.request":
1982
1984
  return this.checkoutSession.handleDiffContextRequest(msg);
1983
1985
  case "validate_branch_request":
@@ -1446,6 +1446,8 @@ export class VoiceAssistantWebSocketServer {
1446
1446
  commitsList: true,
1447
1447
  // COMPAT(commitBaseClassification): added in v0.2.0, remove gate after 2027-01-23.
1448
1448
  commitBaseClassification: true,
1449
+ // COMPAT(commitRangeDiff): added in v0.11.0-fork.40, remove gate after 2027-05-13.
1450
+ commitRangeDiff: true,
1449
1451
  // COMPAT(providerRemoval): added in v0.1.105, drop the gate when floor >= v0.1.105.
1450
1452
  providerRemoval: true,
1451
1453
  // COMPAT(importSessionWorkspaceTarget): added in v0.1.110, remove gate after 2027-01-16.
@@ -250,22 +250,34 @@ export declare function listCheckoutCommits({ cwd, context, }: {
250
250
  cwd: string;
251
251
  context?: CheckoutContext;
252
252
  }): Promise<CheckoutCommitsResult>;
253
+ /** The combined diff of the commits from `fromSha` through `toSha`, both included. */
254
+ export declare function getCommitRangeDiff(input: {
255
+ cwd: string;
256
+ fromSha: string;
257
+ toSha: string;
258
+ ignoreWhitespace?: boolean;
259
+ context?: CheckoutContext;
260
+ }): Promise<CheckoutDiffResult & {
261
+ baseRef: string;
262
+ targetRef: string;
263
+ }>;
253
264
  /**
254
265
  * Fetches the unified diff of a single file as introduced by one commit and
255
266
  * parses it into the same {@link ParsedDiffFile} shape the diff subscription
256
267
  * emits (so the client can reuse its existing renderer).
257
268
  *
258
- * Compares merge commits to their first parent, matching the linear history shown
259
- * in the explorer. The text is parsed and highlighted by
269
+ * Compares a merge commit to its first parent plus the base branch changes it merged in, so
270
+ * only the merge's own changes show. The text is parsed and highlighted by
260
271
  * {@link parseAndHighlightDiff} — the exact parser the diff subscription uses.
261
272
  * Returns `null` when the file is absent from the commit or the change is
262
273
  * binary-only (no textual hunks). Throws on git failure (e.g. an unknown sha),
263
274
  * which the caller maps to a typed checkout error.
264
275
  */
265
- export declare function getCommitFileDiff({ cwd, sha, path, }: {
276
+ export declare function getCommitFileDiff({ cwd, sha, path, context, }: {
266
277
  cwd: string;
267
278
  sha: string;
268
279
  path: string;
280
+ context?: CheckoutContext;
269
281
  }): Promise<ParsedDiffFile | null>;
270
282
  export interface CheckoutShortstat {
271
283
  additions: number;