@mduan/paseo-cli 0.11.0-fork.34 → 0.11.0-fork.35

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 (51) hide show
  1. package/node_modules/@getpaseo/client/package.json +3 -3
  2. package/node_modules/@getpaseo/highlight/package.json +1 -1
  3. package/node_modules/@getpaseo/plugin/package.json +3 -3
  4. package/node_modules/@getpaseo/protocol/dist/generated/validation/ws-outbound.aot.js +190 -0
  5. package/node_modules/@getpaseo/protocol/dist/messages.d.ts +381 -0
  6. package/node_modules/@getpaseo/protocol/dist/messages.js +9 -0
  7. package/node_modules/@getpaseo/protocol/dist/validation/ws-outbound-schema-metadata.d.ts +90 -0
  8. package/node_modules/@getpaseo/protocol/package.json +1 -1
  9. package/node_modules/@getpaseo/relay/package.json +1 -1
  10. package/node_modules/@getpaseo/server/dist/server/builtin-plugins/package.json +1 -1
  11. package/node_modules/@getpaseo/server/dist/server/server/bootstrap.js +7 -0
  12. package/node_modules/@getpaseo/server/dist/server/server/session.d.ts +7 -0
  13. package/node_modules/@getpaseo/server/dist/server/server/session.js +37 -0
  14. package/node_modules/@getpaseo/server/dist/server/server/websocket-server.js +2 -0
  15. package/node_modules/@getpaseo/server/dist/server/server/workspace-git-service.d.ts +8 -2
  16. package/node_modules/@getpaseo/server/dist/server/server/workspace-git-service.js +55 -14
  17. package/node_modules/@getpaseo/server/dist/server/server/workspace-reconciliation-service.js +6 -2
  18. package/node_modules/@getpaseo/server/dist/server/server/workspace-registry.d.ts +2 -0
  19. package/node_modules/@getpaseo/server/dist/server/server/workspace-registry.js +4 -0
  20. package/node_modules/@getpaseo/server/dist/server/server/workspace-response-recorder.d.ts +13 -0
  21. package/node_modules/@getpaseo/server/dist/server/server/workspace-response-recorder.js +21 -0
  22. package/node_modules/@getpaseo/server/dist/server/utils/git-process-scheduler.d.ts +5 -3
  23. package/node_modules/@getpaseo/server/dist/server/utils/git-process-scheduler.js +26 -23
  24. package/node_modules/@getpaseo/server/dist/server/utils/run-git-command.d.ts +6 -1
  25. package/node_modules/@getpaseo/server/dist/server/utils/run-git-command.js +12 -9
  26. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-bridge-ffe0cd60080175f6fb2dec3200390aec.js → desktop-attachment-bridge-e52f9cb2de89e698c51c18241d12cb99.js} +1 -1
  27. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-bridge-ffe0cd60080175f6fb2dec3200390aec.js.br → desktop-attachment-bridge-e52f9cb2de89e698c51c18241d12cb99.js.br} +0 -0
  28. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-e52f9cb2de89e698c51c18241d12cb99.js.gz +0 -0
  29. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-store-4d76abbc28cb391667944e7e96595e46.js → desktop-attachment-store-8cb998792f7a176d7612229dafb2c2d3.js} +1 -1
  30. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/{desktop-attachment-store-4d76abbc28cb391667944e7e96595e46.js.br → desktop-attachment-store-8cb998792f7a176d7612229dafb2c2d3.js.br} +0 -0
  31. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/desktop-attachment-store-8cb998792f7a176d7612229dafb2c2d3.js.gz +0 -0
  32. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/{index-52db3c28898b127e24f9b06f05f60336.js → index-c5f0ae884c9004e9301096d186baee98.js} +963 -961
  33. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/index-c5f0ae884c9004e9301096d186baee98.js.br +0 -0
  34. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/{index-52db3c28898b127e24f9b06f05f60336.js.gz → index-c5f0ae884c9004e9301096d186baee98.js.gz} +0 -0
  35. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/{indexeddb-attachment-store-9b53f73c1bb6949c2c9ef911ef57ab87.js → indexeddb-attachment-store-cf65163fc7d8cd4c646c36e83771e937.js} +1 -1
  36. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-cf65163fc7d8cd4c646c36e83771e937.js.br +0 -0
  37. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/{indexeddb-attachment-store-9b53f73c1bb6949c2c9ef911ef57ab87.js.gz → indexeddb-attachment-store-cf65163fc7d8cd4c646c36e83771e937.js.gz} +0 -0
  38. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/{native-file-attachment-store-ccf24f3ad53e8871f63d8e9c5417c2d7.js → native-file-attachment-store-da2a50627d6e788990a7f324838c24d2.js} +3 -3
  39. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-da2a50627d6e788990a7f324838c24d2.js.br +0 -0
  40. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-da2a50627d6e788990a7f324838c24d2.js.gz +0 -0
  41. package/node_modules/@getpaseo/server/dist/server/web-ui/index.html +1 -1
  42. package/node_modules/@getpaseo/server/dist/server/web-ui/index.html.br +0 -0
  43. package/node_modules/@getpaseo/server/dist/server/web-ui/index.html.gz +0 -0
  44. package/node_modules/@getpaseo/server/package.json +6 -6
  45. package/package.json +7 -7
  46. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/desktop-attachment-bridge-ffe0cd60080175f6fb2dec3200390aec.js.gz +0 -0
  47. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/desktop-attachment-store-4d76abbc28cb391667944e7e96595e46.js.gz +0 -0
  48. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/index-52db3c28898b127e24f9b06f05f60336.js.br +0 -0
  49. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/indexeddb-attachment-store-9b53f73c1bb6949c2c9ef911ef57ab87.js.br +0 -0
  50. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-ccf24f3ad53e8871f63d8e9c5417c2d7.js.br +0 -0
  51. package/node_modules/@getpaseo/server/dist/server/web-ui/_expo/static/js/web/native-file-attachment-store-ccf24f3ad53e8871f63d8e9c5417c2d7.js.gz +0 -0
@@ -3322,6 +3322,8 @@ export const ServerInfoStatusPayloadSchema = z
3322
3322
  workspaceLinearIssues: z.boolean().optional(),
3323
3323
  // COMPAT(workspaceMetadataRefresh): added in v0.11.0-fork.30, remove gate after 2027-04-21.
3324
3324
  workspaceMetadataRefresh: z.boolean().optional(),
3325
+ // COMPAT(workspaceSortTimes): added in v0.11.0-fork.35, remove gate after 2027-05-11.
3326
+ workspaceSortTimes: z.boolean().optional(),
3325
3327
  // COMPAT(linearIntegration): added in v0.11.0-fork.28, remove gate after 2027-04-21.
3326
3328
  linearIntegration: z.boolean().optional(),
3327
3329
  // COMPAT(workspaceSetupRun): added in v0.8.0, remove gate after 2027-09-02.
@@ -3804,6 +3806,13 @@ export const WorkspaceDescriptorPayloadSchema = z
3804
3806
  .nullish()
3805
3807
  .transform((value) => value ?? null),
3806
3808
  activityAt: z.string().nullable(),
3809
+ // COMPAT(workspaceSortTimes): added in v0.11.0-fork.35, remove optional after 2027-05-11.
3810
+ createdAt: z.string().optional(),
3811
+ // When a person last sent this workspace a prompt from a client. Unlike an agent's
3812
+ // `lastUserMessageAt`, schedules, loops, and agent tool calls never set it. Null means never.
3813
+ lastHumanPromptAt: z.string().nullable().optional(),
3814
+ // When an agent here last completed a turn, whoever prompted it.
3815
+ lastAgentResponseAt: z.string().nullable().optional(),
3807
3816
  diffStat: z
3808
3817
  .object({
3809
3818
  additions: z.number(),
@@ -1419,6 +1419,9 @@ export declare const WSOutboundMessageSchema: {
1419
1419
  }>;
1420
1420
  statusEnteredAt: import("zod").ZodPipe<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, import("zod").ZodTransform<string | null, string | null | undefined>>;
1421
1421
  activityAt: import("zod").ZodNullable<import("zod").ZodString>;
1422
+ createdAt: import("zod").ZodOptional<import("zod").ZodString>;
1423
+ lastHumanPromptAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
1424
+ lastAgentResponseAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
1422
1425
  diffStat: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
1423
1426
  additions: import("zod").ZodNumber;
1424
1427
  deletions: import("zod").ZodNumber;
@@ -1662,6 +1665,9 @@ export declare const WSOutboundMessageSchema: {
1662
1665
  color: string;
1663
1666
  } | undefined;
1664
1667
  }[] | undefined;
1668
+ createdAt?: string | undefined;
1669
+ lastHumanPromptAt?: string | null | undefined;
1670
+ lastAgentResponseAt?: string | null | undefined;
1665
1671
  diffStat?: {
1666
1672
  additions: number;
1667
1673
  deletions: number;
@@ -1816,6 +1822,9 @@ export declare const WSOutboundMessageSchema: {
1816
1822
  color: string;
1817
1823
  } | undefined;
1818
1824
  }[] | undefined;
1825
+ createdAt?: string | undefined;
1826
+ lastHumanPromptAt?: string | null | undefined;
1827
+ lastAgentResponseAt?: string | null | undefined;
1819
1828
  diffStat?: {
1820
1829
  additions: number;
1821
1830
  deletions: number;
@@ -2916,6 +2925,9 @@ export declare const WSOutboundMessageSchema: {
2916
2925
  }>;
2917
2926
  statusEnteredAt: import("zod").ZodPipe<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, import("zod").ZodTransform<string | null, string | null | undefined>>;
2918
2927
  activityAt: import("zod").ZodNullable<import("zod").ZodString>;
2928
+ createdAt: import("zod").ZodOptional<import("zod").ZodString>;
2929
+ lastHumanPromptAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
2930
+ lastAgentResponseAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
2919
2931
  diffStat: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
2920
2932
  additions: import("zod").ZodNumber;
2921
2933
  deletions: import("zod").ZodNumber;
@@ -3159,6 +3171,9 @@ export declare const WSOutboundMessageSchema: {
3159
3171
  color: string;
3160
3172
  } | undefined;
3161
3173
  }[] | undefined;
3174
+ createdAt?: string | undefined;
3175
+ lastHumanPromptAt?: string | null | undefined;
3176
+ lastAgentResponseAt?: string | null | undefined;
3162
3177
  diffStat?: {
3163
3178
  additions: number;
3164
3179
  deletions: number;
@@ -3313,6 +3328,9 @@ export declare const WSOutboundMessageSchema: {
3313
3328
  color: string;
3314
3329
  } | undefined;
3315
3330
  }[] | undefined;
3331
+ createdAt?: string | undefined;
3332
+ lastHumanPromptAt?: string | null | undefined;
3333
+ lastAgentResponseAt?: string | null | undefined;
3316
3334
  diffStat?: {
3317
3335
  additions: number;
3318
3336
  deletions: number;
@@ -3563,6 +3581,9 @@ export declare const WSOutboundMessageSchema: {
3563
3581
  }>;
3564
3582
  statusEnteredAt: import("zod").ZodPipe<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, import("zod").ZodTransform<string | null, string | null | undefined>>;
3565
3583
  activityAt: import("zod").ZodNullable<import("zod").ZodString>;
3584
+ createdAt: import("zod").ZodOptional<import("zod").ZodString>;
3585
+ lastHumanPromptAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
3586
+ lastAgentResponseAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
3566
3587
  diffStat: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
3567
3588
  additions: import("zod").ZodNumber;
3568
3589
  deletions: import("zod").ZodNumber;
@@ -3806,6 +3827,9 @@ export declare const WSOutboundMessageSchema: {
3806
3827
  color: string;
3807
3828
  } | undefined;
3808
3829
  }[] | undefined;
3830
+ createdAt?: string | undefined;
3831
+ lastHumanPromptAt?: string | null | undefined;
3832
+ lastAgentResponseAt?: string | null | undefined;
3809
3833
  diffStat?: {
3810
3834
  additions: number;
3811
3835
  deletions: number;
@@ -3960,6 +3984,9 @@ export declare const WSOutboundMessageSchema: {
3960
3984
  color: string;
3961
3985
  } | undefined;
3962
3986
  }[] | undefined;
3987
+ createdAt?: string | undefined;
3988
+ lastHumanPromptAt?: string | null | undefined;
3989
+ lastAgentResponseAt?: string | null | undefined;
3963
3990
  diffStat?: {
3964
3991
  additions: number;
3965
3992
  deletions: number;
@@ -5333,6 +5360,9 @@ export declare const WSOutboundMessageSchema: {
5333
5360
  }>;
5334
5361
  statusEnteredAt: import("zod").ZodPipe<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, import("zod").ZodTransform<string | null, string | null | undefined>>;
5335
5362
  activityAt: import("zod").ZodNullable<import("zod").ZodString>;
5363
+ createdAt: import("zod").ZodOptional<import("zod").ZodString>;
5364
+ lastHumanPromptAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
5365
+ lastAgentResponseAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
5336
5366
  diffStat: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
5337
5367
  additions: import("zod").ZodNumber;
5338
5368
  deletions: import("zod").ZodNumber;
@@ -5576,6 +5606,9 @@ export declare const WSOutboundMessageSchema: {
5576
5606
  color: string;
5577
5607
  } | undefined;
5578
5608
  }[] | undefined;
5609
+ createdAt?: string | undefined;
5610
+ lastHumanPromptAt?: string | null | undefined;
5611
+ lastAgentResponseAt?: string | null | undefined;
5579
5612
  diffStat?: {
5580
5613
  additions: number;
5581
5614
  deletions: number;
@@ -5730,6 +5763,9 @@ export declare const WSOutboundMessageSchema: {
5730
5763
  color: string;
5731
5764
  } | undefined;
5732
5765
  }[] | undefined;
5766
+ createdAt?: string | undefined;
5767
+ lastHumanPromptAt?: string | null | undefined;
5768
+ lastAgentResponseAt?: string | null | undefined;
5733
5769
  diffStat?: {
5734
5770
  additions: number;
5735
5771
  deletions: number;
@@ -5970,6 +6006,9 @@ export declare const WSOutboundMessageSchema: {
5970
6006
  }>;
5971
6007
  statusEnteredAt: import("zod").ZodPipe<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, import("zod").ZodTransform<string | null, string | null | undefined>>;
5972
6008
  activityAt: import("zod").ZodNullable<import("zod").ZodString>;
6009
+ createdAt: import("zod").ZodOptional<import("zod").ZodString>;
6010
+ lastHumanPromptAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
6011
+ lastAgentResponseAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
5973
6012
  diffStat: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
5974
6013
  additions: import("zod").ZodNumber;
5975
6014
  deletions: import("zod").ZodNumber;
@@ -6213,6 +6252,9 @@ export declare const WSOutboundMessageSchema: {
6213
6252
  color: string;
6214
6253
  } | undefined;
6215
6254
  }[] | undefined;
6255
+ createdAt?: string | undefined;
6256
+ lastHumanPromptAt?: string | null | undefined;
6257
+ lastAgentResponseAt?: string | null | undefined;
6216
6258
  diffStat?: {
6217
6259
  additions: number;
6218
6260
  deletions: number;
@@ -6367,6 +6409,9 @@ export declare const WSOutboundMessageSchema: {
6367
6409
  color: string;
6368
6410
  } | undefined;
6369
6411
  }[] | undefined;
6412
+ createdAt?: string | undefined;
6413
+ lastHumanPromptAt?: string | null | undefined;
6414
+ lastAgentResponseAt?: string | null | undefined;
6370
6415
  diffStat?: {
6371
6416
  additions: number;
6372
6417
  deletions: number;
@@ -6625,6 +6670,9 @@ export declare const WSOutboundMessageSchema: {
6625
6670
  }>;
6626
6671
  statusEnteredAt: import("zod").ZodPipe<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, import("zod").ZodTransform<string | null, string | null | undefined>>;
6627
6672
  activityAt: import("zod").ZodNullable<import("zod").ZodString>;
6673
+ createdAt: import("zod").ZodOptional<import("zod").ZodString>;
6674
+ lastHumanPromptAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
6675
+ lastAgentResponseAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
6628
6676
  diffStat: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
6629
6677
  additions: import("zod").ZodNumber;
6630
6678
  deletions: import("zod").ZodNumber;
@@ -6868,6 +6916,9 @@ export declare const WSOutboundMessageSchema: {
6868
6916
  color: string;
6869
6917
  } | undefined;
6870
6918
  }[] | undefined;
6919
+ createdAt?: string | undefined;
6920
+ lastHumanPromptAt?: string | null | undefined;
6921
+ lastAgentResponseAt?: string | null | undefined;
6871
6922
  diffStat?: {
6872
6923
  additions: number;
6873
6924
  deletions: number;
@@ -7022,6 +7073,9 @@ export declare const WSOutboundMessageSchema: {
7022
7073
  color: string;
7023
7074
  } | undefined;
7024
7075
  }[] | undefined;
7076
+ createdAt?: string | undefined;
7077
+ lastHumanPromptAt?: string | null | undefined;
7078
+ lastAgentResponseAt?: string | null | undefined;
7025
7079
  diffStat?: {
7026
7080
  additions: number;
7027
7081
  deletions: number;
@@ -7282,6 +7336,9 @@ export declare const WSOutboundMessageSchema: {
7282
7336
  }>;
7283
7337
  statusEnteredAt: import("zod").ZodPipe<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, import("zod").ZodTransform<string | null, string | null | undefined>>;
7284
7338
  activityAt: import("zod").ZodNullable<import("zod").ZodString>;
7339
+ createdAt: import("zod").ZodOptional<import("zod").ZodString>;
7340
+ lastHumanPromptAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
7341
+ lastAgentResponseAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
7285
7342
  diffStat: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
7286
7343
  additions: import("zod").ZodNumber;
7287
7344
  deletions: import("zod").ZodNumber;
@@ -7525,6 +7582,9 @@ export declare const WSOutboundMessageSchema: {
7525
7582
  color: string;
7526
7583
  } | undefined;
7527
7584
  }[] | undefined;
7585
+ createdAt?: string | undefined;
7586
+ lastHumanPromptAt?: string | null | undefined;
7587
+ lastAgentResponseAt?: string | null | undefined;
7528
7588
  diffStat?: {
7529
7589
  additions: number;
7530
7590
  deletions: number;
@@ -7679,6 +7739,9 @@ export declare const WSOutboundMessageSchema: {
7679
7739
  color: string;
7680
7740
  } | undefined;
7681
7741
  }[] | undefined;
7742
+ createdAt?: string | undefined;
7743
+ lastHumanPromptAt?: string | null | undefined;
7744
+ lastAgentResponseAt?: string | null | undefined;
7682
7745
  diffStat?: {
7683
7746
  additions: number;
7684
7747
  deletions: number;
@@ -7938,6 +8001,9 @@ export declare const WSOutboundMessageSchema: {
7938
8001
  }>;
7939
8002
  statusEnteredAt: import("zod").ZodPipe<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, import("zod").ZodTransform<string | null, string | null | undefined>>;
7940
8003
  activityAt: import("zod").ZodNullable<import("zod").ZodString>;
8004
+ createdAt: import("zod").ZodOptional<import("zod").ZodString>;
8005
+ lastHumanPromptAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
8006
+ lastAgentResponseAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
7941
8007
  diffStat: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
7942
8008
  additions: import("zod").ZodNumber;
7943
8009
  deletions: import("zod").ZodNumber;
@@ -8181,6 +8247,9 @@ export declare const WSOutboundMessageSchema: {
8181
8247
  color: string;
8182
8248
  } | undefined;
8183
8249
  }[] | undefined;
8250
+ createdAt?: string | undefined;
8251
+ lastHumanPromptAt?: string | null | undefined;
8252
+ lastAgentResponseAt?: string | null | undefined;
8184
8253
  diffStat?: {
8185
8254
  additions: number;
8186
8255
  deletions: number;
@@ -8335,6 +8404,9 @@ export declare const WSOutboundMessageSchema: {
8335
8404
  color: string;
8336
8405
  } | undefined;
8337
8406
  }[] | undefined;
8407
+ createdAt?: string | undefined;
8408
+ lastHumanPromptAt?: string | null | undefined;
8409
+ lastAgentResponseAt?: string | null | undefined;
8338
8410
  diffStat?: {
8339
8411
  additions: number;
8340
8412
  deletions: number;
@@ -8599,6 +8671,9 @@ export declare const WSOutboundMessageSchema: {
8599
8671
  }>;
8600
8672
  statusEnteredAt: import("zod").ZodPipe<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, import("zod").ZodTransform<string | null, string | null | undefined>>;
8601
8673
  activityAt: import("zod").ZodNullable<import("zod").ZodString>;
8674
+ createdAt: import("zod").ZodOptional<import("zod").ZodString>;
8675
+ lastHumanPromptAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
8676
+ lastAgentResponseAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
8602
8677
  diffStat: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
8603
8678
  additions: import("zod").ZodNumber;
8604
8679
  deletions: import("zod").ZodNumber;
@@ -8842,6 +8917,9 @@ export declare const WSOutboundMessageSchema: {
8842
8917
  color: string;
8843
8918
  } | undefined;
8844
8919
  }[] | undefined;
8920
+ createdAt?: string | undefined;
8921
+ lastHumanPromptAt?: string | null | undefined;
8922
+ lastAgentResponseAt?: string | null | undefined;
8845
8923
  diffStat?: {
8846
8924
  additions: number;
8847
8925
  deletions: number;
@@ -8996,6 +9074,9 @@ export declare const WSOutboundMessageSchema: {
8996
9074
  color: string;
8997
9075
  } | undefined;
8998
9076
  }[] | undefined;
9077
+ createdAt?: string | undefined;
9078
+ lastHumanPromptAt?: string | null | undefined;
9079
+ lastAgentResponseAt?: string | null | undefined;
8999
9080
  diffStat?: {
9000
9081
  additions: number;
9001
9082
  deletions: number;
@@ -11340,6 +11421,9 @@ export declare const WSOutboundMessageSchema: {
11340
11421
  }>;
11341
11422
  statusEnteredAt: import("zod").ZodPipe<import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>, import("zod").ZodTransform<string | null, string | null | undefined>>;
11342
11423
  activityAt: import("zod").ZodNullable<import("zod").ZodString>;
11424
+ createdAt: import("zod").ZodOptional<import("zod").ZodString>;
11425
+ lastHumanPromptAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
11426
+ lastAgentResponseAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
11343
11427
  diffStat: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
11344
11428
  additions: import("zod").ZodNumber;
11345
11429
  deletions: import("zod").ZodNumber;
@@ -11583,6 +11667,9 @@ export declare const WSOutboundMessageSchema: {
11583
11667
  color: string;
11584
11668
  } | undefined;
11585
11669
  }[] | undefined;
11670
+ createdAt?: string | undefined;
11671
+ lastHumanPromptAt?: string | null | undefined;
11672
+ lastAgentResponseAt?: string | null | undefined;
11586
11673
  diffStat?: {
11587
11674
  additions: number;
11588
11675
  deletions: number;
@@ -11737,6 +11824,9 @@ export declare const WSOutboundMessageSchema: {
11737
11824
  color: string;
11738
11825
  } | undefined;
11739
11826
  }[] | undefined;
11827
+ createdAt?: string | undefined;
11828
+ lastHumanPromptAt?: string | null | undefined;
11829
+ lastAgentResponseAt?: string | null | undefined;
11740
11830
  diffStat?: {
11741
11831
  additions: number;
11742
11832
  deletions: number;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getpaseo/protocol",
3
- "version": "0.11.0-fork.34",
3
+ "version": "0.11.0-fork.35",
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.34",
3
+ "version": "0.11.0-fork.35",
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.34",
3
+ "version": "0.11.0-fork.35",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "scripts": {
@@ -104,6 +104,7 @@ import { AgentManager } from "./agent/agent-manager.js";
104
104
  import { AgentStorage } from "./agent/agent-storage.js";
105
105
  import { TurnDiffStore } from "./agent/turn-diffs/store.js";
106
106
  import { attachAgentStoragePersistence } from "./persistence-hooks.js";
107
+ import { attachWorkspaceResponseRecorder } from "./workspace-response-recorder.js";
107
108
  import { createAgentMcpServer } from "./agent/mcp-server.js";
108
109
  import { createPaseoToolCatalog, } from "./agent/tools/paseo-tools.js";
109
110
  import { createAgentProviderRuntime } from "./agent/provider-runtime.js";
@@ -661,6 +662,11 @@ export async function createPaseoDaemon(config, rootLogger, dependencies = {}) {
661
662
  };
662
663
  const unsubscribePluginProviders = pluginRuntime.subscribeProviderRegistrations(syncPluginProviders);
663
664
  const detachAgentStoragePersistence = attachAgentStoragePersistence(logger, agentManager, agentStorage);
665
+ const detachWorkspaceResponseRecorder = attachWorkspaceResponseRecorder({
666
+ logger,
667
+ agentManager,
668
+ workspaceRegistry,
669
+ });
664
670
  await agentStorage.initialize();
665
671
  logger.info({ elapsed: elapsed() }, "Agent storage initialized");
666
672
  await bootstrapWorkspaceRegistries({
@@ -1375,6 +1381,7 @@ export async function createPaseoDaemon(config, rootLogger, dependencies = {}) {
1375
1381
  await closeAllAgents(logger, agentManager);
1376
1382
  await agentManager.flushForShutdown().catch(() => undefined);
1377
1383
  detachAgentStoragePersistence();
1384
+ detachWorkspaceResponseRecorder();
1378
1385
  await agentStorage.flush().catch(() => undefined);
1379
1386
  await agentProviderRuntime.shutdown();
1380
1387
  await pluginRuntime.stopAllPlugins();
@@ -420,6 +420,13 @@ export declare class Session {
420
420
  private handleWorkspacePinSetRequest;
421
421
  private handleWorkspaceRecoveryInspectRequest;
422
422
  private handleWorkspaceRecoveryRestoreRequest;
423
+ /**
424
+ * Stamps `lastHumanPromptAt`. Call only for client-sent prompts, and before dispatch — the agent
425
+ * update the prompt causes is what carries the new time to every session.
426
+ */
427
+ private recordHumanPrompt;
428
+ /** A caller agent creating a child is automation, not a person prompting. */
429
+ private recordHumanCreationPrompt;
423
430
  /**
424
431
  * Handle text message to agent (with optional image attachments)
425
432
  */
@@ -3017,6 +3017,36 @@ export class Session {
3017
3017
  });
3018
3018
  }
3019
3019
  }
3020
+ /**
3021
+ * Stamps `lastHumanPromptAt`. Call only for client-sent prompts, and before dispatch — the agent
3022
+ * update the prompt causes is what carries the new time to every session.
3023
+ */
3024
+ async recordHumanPrompt(input) {
3025
+ try {
3026
+ const workspaceId = input.workspaceId ??
3027
+ (input.agentId
3028
+ ? (this.agentManager.getAgent(input.agentId)?.workspaceId ??
3029
+ (await this.agentStorage.get(input.agentId))?.workspaceId)
3030
+ : undefined);
3031
+ if (!workspaceId)
3032
+ return;
3033
+ const lastHumanPromptAt = new Date().toISOString();
3034
+ await this.workspaceRegistry.update(workspaceId, (existing) => ({
3035
+ ...existing,
3036
+ lastHumanPromptAt,
3037
+ }));
3038
+ }
3039
+ catch (error) {
3040
+ // Sort metadata must never fail the prompt it describes.
3041
+ this.sessionLogger.warn({ err: error, ...input }, "session: failed to record human prompt");
3042
+ }
3043
+ }
3044
+ /** A caller agent creating a child is automation, not a person prompting. */
3045
+ async recordHumanCreationPrompt(msg, workspaceId) {
3046
+ if (msg.callerAgentId || !hasInitialCreationPrompt(msg))
3047
+ return;
3048
+ await this.recordHumanPrompt({ workspaceId });
3049
+ }
3020
3050
  /**
3021
3051
  * Handle text message to agent (with optional image attachments)
3022
3052
  */
@@ -3031,6 +3061,7 @@ export class Session {
3031
3061
  : ""}`);
3032
3062
  const promptText = options?.spokenInput ? wrapSpokenInput(text) : text;
3033
3063
  const prompt = buildAgentPrompt(promptText, images, attachments);
3064
+ await this.recordHumanPrompt({ agentId });
3034
3065
  try {
3035
3066
  await sendPromptToAgent({
3036
3067
  agentManager: this.agentManager,
@@ -3332,6 +3363,7 @@ export class Session {
3332
3363
  if (!(await this.filesystem.isDirectory(resolvedCwd))) {
3333
3364
  throw new Error(`Working directory does not exist or is not a directory: ${resolvedCwd}`);
3334
3365
  }
3366
+ await this.recordHumanCreationPrompt(msg, resolvedIntent.intent.workspaceId);
3335
3367
  const { snapshot, liveSnapshot } = await createAgentCommand({
3336
3368
  agentManager: this.agentManager,
3337
3369
  agentStorage: this.agentStorage,
@@ -4441,6 +4473,9 @@ export class Session {
4441
4473
  name: resolveWorkspaceDisplayName(workspace),
4442
4474
  title: workspace.title,
4443
4475
  pinnedAt: workspace.pinnedAt,
4476
+ createdAt: workspace.createdAt,
4477
+ lastHumanPromptAt: workspace.lastHumanPromptAt,
4478
+ lastAgentResponseAt: workspace.lastAgentResponseAt,
4444
4479
  linearIssues: await this.linearIntegration.resolve(workspace.linearIssues),
4445
4480
  ...(workspace.labels && workspace.labels.length > 0 ? { labels: workspace.labels } : {}),
4446
4481
  archivingAt: null,
@@ -4528,6 +4563,7 @@ export class Session {
4528
4563
  }),
4529
4564
  title: result.workspace.title,
4530
4565
  pinnedAt: result.workspace.pinnedAt,
4566
+ createdAt: result.workspace.createdAt,
4531
4567
  ...(result.workspace.labels && result.workspace.labels.length > 0
4532
4568
  ? { labels: result.workspace.labels }
4533
4569
  : {}),
@@ -6656,6 +6692,7 @@ export class Session {
6656
6692
  textPrefix: msg.text.slice(0, 80),
6657
6693
  }, "agent.session.send_agent_message");
6658
6694
  const send = async () => {
6695
+ await this.recordHumanPrompt({ agentId });
6659
6696
  const result = await sendPromptToAgent({
6660
6697
  agentManager: this.agentManager,
6661
6698
  agentStorage: this.agentStorage,
@@ -1311,6 +1311,8 @@ export class VoiceAssistantWebSocketServer {
1311
1311
  workspaceSetupRun: true,
1312
1312
  workspaceLinearIssues: true,
1313
1313
  workspaceMetadataRefresh: true,
1314
+ // COMPAT(workspaceSortTimes): added in v0.11.0-fork.35, remove gate after 2027-05-11.
1315
+ workspaceSortTimes: true,
1314
1316
  linearIntegration: true,
1315
1317
  // COMPAT(turnDiffs): added in v0.11.0, remove gate after 2027-10-03.
1316
1318
  turnDiffs: true,
@@ -3,6 +3,7 @@ import type { ProjectCheckoutLitePayload } from "@getpaseo/protocol/messages";
3
3
  import { type BranchCheckoutResolution, type BranchSuggestion, type CheckoutDiffCompare, type CheckoutDiffResult, getCheckoutDiff, getCheckoutRefDerivedState, getCheckoutSnapshotFacts, getCheckoutShortstat, getCheckoutStatus, getCheckoutWorktreeState, getPullRequestStatus, listBranchSuggestions, resolveRepositoryDefaultBranch, resolveBranchCheckout } from "../utils/checkout-git.js";
4
4
  import type { CurrentPullRequestStatus, ForgeAuthState, ForgeService, ForgeSpecificStatusFacts, PullRequestCheck, PullRequestMergeable } from "../services/forge-service.js";
5
5
  import { type ForgeResolution } from "../services/forge-resolver.js";
6
+ import type { GitProcessPriority } from "../utils/git-process-scheduler.js";
6
7
  import { runGitCommand, type RunGitCommand } from "../utils/run-git-command.js";
7
8
  import { listPaseoWorktrees, type PaseoWorktreeInfo } from "../utils/worktree.js";
8
9
  import { type WorkspaceGitFetchResult, type WorkspaceGitFetchObserver } from "./workspace-git-fetch.js";
@@ -79,7 +80,7 @@ export interface WorkspaceGitService {
79
80
  }, listener: WorkspaceGitListener): WorkspaceGitSubscription;
80
81
  onSnapshotUpdated(listener: WorkspaceGitSnapshotUpdatedListener): WorkspaceGitSubscription;
81
82
  peekSnapshot(cwd: string): WorkspaceGitRuntimeSnapshot | null;
82
- getCheckout(cwd: string): Promise<ProjectCheckoutLitePayload>;
83
+ getCheckout(cwd: string, options?: WorkspaceGitCheckoutReadOptions): Promise<ProjectCheckoutLitePayload>;
83
84
  getSnapshot(cwd: string, options?: WorkspaceGitSnapshotOptions): Promise<WorkspaceGitRuntimeSnapshot>;
84
85
  resolveForge(cwd: string): Promise<ForgeResolution | null>;
85
86
  getCheckoutDiff(cwd: string, options: CheckoutDiffCompare, readOptions?: WorkspaceGitReadOptions): Promise<CheckoutDiffResult>;
@@ -158,6 +159,10 @@ export type WorkspaceGitSnapshotOptions = WorkspaceGitReadOptions & {
158
159
  refreshGit?: boolean;
159
160
  queueIfBusy?: boolean;
160
161
  };
162
+ export interface WorkspaceGitCheckoutReadOptions {
163
+ /** Git lane for the checkout read; defaults to the caller's ambient lane. */
164
+ priority?: GitProcessPriority;
165
+ }
161
166
  interface WorkspaceGitServiceDependencies {
162
167
  subscribe: SubscribeToFileChanges;
163
168
  getCheckoutSnapshotFacts: typeof getCheckoutSnapshotFacts;
@@ -227,7 +232,7 @@ export declare class WorkspaceGitServiceImpl implements WorkspaceGitService {
227
232
  onSnapshotUpdated(listener: WorkspaceGitSnapshotUpdatedListener): WorkspaceGitSubscription;
228
233
  getMetrics(): WorkspaceGitServiceMetrics;
229
234
  getSnapshot(cwd: string, options?: WorkspaceGitSnapshotOptions): Promise<WorkspaceGitRuntimeSnapshot>;
230
- getCheckout(cwd: string): Promise<ProjectCheckoutLitePayload>;
235
+ getCheckout(cwd: string, options?: WorkspaceGitCheckoutReadOptions): Promise<ProjectCheckoutLitePayload>;
231
236
  peekSnapshot(cwd: string): WorkspaceGitRuntimeSnapshot | null;
232
237
  getCheckoutDiff(cwd: string, options: CheckoutDiffCompare, readOptions?: WorkspaceGitReadOptions): Promise<CheckoutDiffResult>;
233
238
  private normalizeCheckoutDiffOptions;
@@ -420,6 +425,7 @@ export declare class WorkspaceGitServiceImpl implements WorkspaceGitService {
420
425
  private buildScheduledRefreshRequest;
421
426
  private mergeRefreshRequests;
422
427
  private runWorkspaceRefreshLoop;
428
+ private createRefreshGitCommand;
423
429
  private refreshSnapshot;
424
430
  private refreshRefDerivedSnapshot;
425
431
  private refreshWorktreeSnapshot;