@atproto/api 0.21.0 → 0.23.0

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 (47) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/client/index.d.ts +12 -0
  3. package/dist/client/index.d.ts.map +1 -1
  4. package/dist/client/index.js +22 -0
  5. package/dist/client/index.js.map +1 -1
  6. package/dist/client/lexicons.d.ts +1658 -22
  7. package/dist/client/lexicons.d.ts.map +1 -1
  8. package/dist/client/lexicons.js +890 -11
  9. package/dist/client/lexicons.js.map +1 -1
  10. package/dist/client/types/app/bsky/feed/defs.d.ts +4 -0
  11. package/dist/client/types/app/bsky/feed/defs.d.ts.map +1 -1
  12. package/dist/client/types/app/bsky/feed/defs.js.map +1 -1
  13. package/dist/client/types/app/bsky/feed/getListFeed.d.ts +4 -0
  14. package/dist/client/types/app/bsky/feed/getListFeed.d.ts.map +1 -1
  15. package/dist/client/types/app/bsky/feed/getListFeed.js.map +1 -1
  16. package/dist/client/types/app/bsky/feed/getQuotes.d.ts +2 -0
  17. package/dist/client/types/app/bsky/feed/getQuotes.d.ts.map +1 -1
  18. package/dist/client/types/app/bsky/feed/getQuotes.js.map +1 -1
  19. package/dist/client/types/app/bsky/feed/getTimeline.d.ts +4 -0
  20. package/dist/client/types/app/bsky/feed/getTimeline.d.ts.map +1 -1
  21. package/dist/client/types/app/bsky/feed/getTimeline.js.map +1 -1
  22. package/dist/client/types/app/bsky/notification/getGroupedNotifications.d.ts +234 -0
  23. package/dist/client/types/app/bsky/notification/getGroupedNotifications.d.ts.map +1 -0
  24. package/dist/client/types/app/bsky/notification/getGroupedNotifications.js +189 -0
  25. package/dist/client/types/app/bsky/notification/getGroupedNotifications.js.map +1 -0
  26. package/dist/client/types/tools/ozone/inbox/appealActionedSubject.d.ts +65 -0
  27. package/dist/client/types/tools/ozone/inbox/appealActionedSubject.d.ts.map +1 -0
  28. package/dist/client/types/tools/ozone/inbox/appealActionedSubject.js +65 -0
  29. package/dist/client/types/tools/ozone/inbox/appealActionedSubject.js.map +1 -0
  30. package/dist/client/types/tools/ozone/inbox/defs.d.ts +68 -0
  31. package/dist/client/types/tools/ozone/inbox/defs.d.ts.map +1 -0
  32. package/dist/client/types/tools/ozone/inbox/defs.js +38 -0
  33. package/dist/client/types/tools/ozone/inbox/defs.js.map +1 -0
  34. package/dist/client/types/tools/ozone/queue/createQueue.d.ts +2 -0
  35. package/dist/client/types/tools/ozone/queue/createQueue.d.ts.map +1 -1
  36. package/dist/client/types/tools/ozone/queue/createQueue.js.map +1 -1
  37. package/dist/client/types/tools/ozone/queue/defs.d.ts +2 -0
  38. package/dist/client/types/tools/ozone/queue/defs.d.ts.map +1 -1
  39. package/dist/client/types/tools/ozone/queue/defs.js.map +1 -1
  40. package/dist/client/types/tools/ozone/queue/updateQueue.d.ts +5 -0
  41. package/dist/client/types/tools/ozone/queue/updateQueue.d.ts.map +1 -1
  42. package/dist/client/types/tools/ozone/queue/updateQueue.js +7 -0
  43. package/dist/client/types/tools/ozone/queue/updateQueue.js.map +1 -1
  44. package/dist/client/types/tools/ozone/report/defs.d.ts +49 -9
  45. package/dist/client/types/tools/ozone/report/defs.d.ts.map +1 -1
  46. package/dist/client/types/tools/ozone/report/defs.js.map +1 -1
  47. package/package.json +7 -7
@@ -3354,6 +3354,14 @@ export declare const schemaDict: {
3354
3354
  readonly type: 'ref';
3355
3355
  readonly ref: 'lex:app.bsky.feed.defs#replyRef';
3356
3356
  };
3357
+ readonly opThreadPostIndex: {
3358
+ readonly type: 'integer';
3359
+ readonly description: 'The 1-indexed position of this post within the contiguous OP thread. Only present when this post is part of the OP thread.';
3360
+ };
3361
+ readonly opThreadPostCount: {
3362
+ readonly type: 'integer';
3363
+ readonly description: 'The total number of posts in the contiguous OP thread that this post belongs to. Only present when this post is part of the OP thread.';
3364
+ };
3357
3365
  readonly reason: {
3358
3366
  readonly type: 'union';
3359
3367
  readonly refs: ["lex:app.bsky.feed.defs#reasonRepost", "lex:app.bsky.feed.defs#reasonPin"];
@@ -4272,6 +4280,10 @@ export declare const schemaDict: {
4272
4280
  readonly cursor: {
4273
4281
  readonly type: 'string';
4274
4282
  };
4283
+ readonly since: {
4284
+ readonly type: 'string';
4285
+ readonly description: 'Return only items newer than the position identified by this cursor value, newest first. Use the startCursor from a previous response. The item at that position is not returned because the caller already holds it. When the bounded range is exhausted, the returned cursor equals this value so that pagination continues below the boundary.';
4286
+ };
4275
4287
  };
4276
4288
  };
4277
4289
  readonly output: {
@@ -4283,6 +4295,10 @@ export declare const schemaDict: {
4283
4295
  readonly cursor: {
4284
4296
  readonly type: 'string';
4285
4297
  };
4298
+ readonly startCursor: {
4299
+ readonly type: 'string';
4300
+ readonly description: 'Cursor identifying the newest item in this page. Pass it as since on a later request to fetch only newer content.';
4301
+ };
4286
4302
  readonly feed: {
4287
4303
  readonly type: 'array';
4288
4304
  readonly items: {
@@ -4425,6 +4441,11 @@ export declare const schemaDict: {
4425
4441
  readonly cursor: {
4426
4442
  readonly type: 'string';
4427
4443
  };
4444
+ readonly sort: {
4445
+ readonly type: 'string';
4446
+ readonly knownValues: ["latest", "top"];
4447
+ readonly description: "Ordering of results. 'latest' (default when unset) is newest first; 'top' orders quotes by their like count.";
4448
+ };
4428
4449
  };
4429
4450
  };
4430
4451
  readonly output: {
@@ -4585,6 +4606,10 @@ export declare const schemaDict: {
4585
4606
  readonly cursor: {
4586
4607
  readonly type: 'string';
4587
4608
  };
4609
+ readonly since: {
4610
+ readonly type: 'string';
4611
+ readonly description: 'Return only items newer than the position identified by this cursor value, newest first. Use the startCursor from a previous response. The item at that position is not returned because the caller already holds it. When the bounded range is exhausted, the returned cursor equals this value so that pagination continues below the boundary.';
4612
+ };
4588
4613
  };
4589
4614
  };
4590
4615
  readonly output: {
@@ -4596,6 +4621,10 @@ export declare const schemaDict: {
4596
4621
  readonly cursor: {
4597
4622
  readonly type: 'string';
4598
4623
  };
4624
+ readonly startCursor: {
4625
+ readonly type: 'string';
4626
+ readonly description: 'Cursor identifying the newest item in this page. Pass it as since on a later request to fetch only newer content.';
4627
+ };
4599
4628
  readonly feed: {
4600
4629
  readonly type: 'array';
4601
4630
  readonly items: {
@@ -7344,6 +7373,454 @@ export declare const schemaDict: {
7344
7373
  };
7345
7374
  };
7346
7375
  };
7376
+ readonly AppBskyNotificationGetGroupedNotifications: {
7377
+ readonly lexicon: 1;
7378
+ readonly id: 'app.bsky.notification.getGroupedNotifications';
7379
+ readonly defs: {
7380
+ readonly main: {
7381
+ readonly type: 'query';
7382
+ readonly description: '[UNSTABLE - DO NOT USE THIS ENDPOINT WHILE THIS NOTE IS HERE] Enumerate notifications for the requesting account, pre-grouped for rendering. Supersedes listNotifications. Requires auth.';
7383
+ readonly parameters: {
7384
+ readonly type: 'params';
7385
+ readonly properties: {
7386
+ readonly feed: {
7387
+ readonly type: 'string';
7388
+ readonly description: "Which notification feed to return. Grouping behavior varies by feed: notifications about follows might be grouped in 'all' and ungrouped (or rather, in single-item groups) in 'followers'.";
7389
+ readonly maxLength: 32;
7390
+ readonly knownValues: ["all", "people-i-follow", "conversations", "followers", "activity"];
7391
+ readonly default: 'all';
7392
+ };
7393
+ readonly limit: {
7394
+ readonly type: 'integer';
7395
+ readonly description: 'Maximum number of groups to return.';
7396
+ readonly minimum: 1;
7397
+ readonly maximum: 50;
7398
+ readonly default: 30;
7399
+ };
7400
+ readonly cursor: {
7401
+ readonly type: 'string';
7402
+ readonly maxLength: 1024;
7403
+ };
7404
+ };
7405
+ };
7406
+ readonly output: {
7407
+ readonly encoding: 'application/json';
7408
+ readonly schema: {
7409
+ readonly type: 'object';
7410
+ readonly required: ["groups"];
7411
+ readonly properties: {
7412
+ readonly cursor: {
7413
+ readonly type: 'string';
7414
+ readonly maxLength: 1024;
7415
+ };
7416
+ readonly groups: {
7417
+ readonly type: 'array';
7418
+ readonly description: 'Notification groups or individual notifications, newest first. Clients should ignore kinds they do not recognize. Grouping behavior depends on the kind and selected feed.';
7419
+ readonly items: {
7420
+ readonly type: 'ref';
7421
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#group';
7422
+ };
7423
+ };
7424
+ readonly seenAt: {
7425
+ readonly type: 'string';
7426
+ readonly format: 'datetime';
7427
+ };
7428
+ readonly relatedViews: {
7429
+ readonly type: 'array';
7430
+ readonly description: 'Reusable views referenced by notifications. Views shared across notifications appear once to avoid duplication. Each group contributes only its first 10 of each related view to this array. Ex: for a group containing likes in a post, we might have a large number of likeItem (e.g., 50) in a group, but only the profile views for the newest 10 items will be included here.';
7431
+ readonly items: {
7432
+ readonly type: 'union';
7433
+ readonly refs: ["lex:app.bsky.actor.defs#profileViewDetailed", "lex:app.bsky.feed.defs#blockedPost", "lex:app.bsky.feed.defs#generatorView", "lex:app.bsky.feed.defs#notFoundPost", "lex:app.bsky.feed.defs#postView", "lex:app.bsky.graph.defs#starterPackView"];
7434
+ };
7435
+ };
7436
+ };
7437
+ };
7438
+ };
7439
+ };
7440
+ readonly group: {
7441
+ readonly type: 'object';
7442
+ readonly description: 'Contains common metadata and kind-specific data for a notification group or individual notification.';
7443
+ readonly required: ["id", "isRead", "indexedAt", "count", "kind"];
7444
+ readonly properties: {
7445
+ readonly id: {
7446
+ readonly type: 'string';
7447
+ readonly maxLength: 256;
7448
+ };
7449
+ readonly isRead: {
7450
+ readonly type: 'boolean';
7451
+ };
7452
+ readonly indexedAt: {
7453
+ readonly type: 'string';
7454
+ readonly format: 'datetime';
7455
+ };
7456
+ readonly count: {
7457
+ readonly type: 'integer';
7458
+ readonly minimum: 1;
7459
+ };
7460
+ readonly kind: {
7461
+ readonly type: 'union';
7462
+ readonly refs: ["lex:app.bsky.notification.getGroupedNotifications#likeGroup", "lex:app.bsky.notification.getGroupedNotifications#multiPostLikeGroup", "lex:app.bsky.notification.getGroupedNotifications#repostGroup", "lex:app.bsky.notification.getGroupedNotifications#likeViaRepostGroup", "lex:app.bsky.notification.getGroupedNotifications#repostViaRepostGroup", "lex:app.bsky.notification.getGroupedNotifications#followGroup", "lex:app.bsky.notification.getGroupedNotifications#subscribedPostGroup", "lex:app.bsky.notification.getGroupedNotifications#generatorLikeGroup", "lex:app.bsky.notification.getGroupedNotifications#replyNotification", "lex:app.bsky.notification.getGroupedNotifications#quoteNotification", "lex:app.bsky.notification.getGroupedNotifications#mentionNotification", "lex:app.bsky.notification.getGroupedNotifications#followBackNotification", "lex:app.bsky.notification.getGroupedNotifications#verifiedNotification", "lex:app.bsky.notification.getGroupedNotifications#unverifiedNotification", "lex:app.bsky.notification.getGroupedNotifications#starterPackJoinedNotification", "lex:app.bsky.notification.getGroupedNotifications#contactMatchNotification"];
7463
+ };
7464
+ };
7465
+ };
7466
+ readonly likeGroup: {
7467
+ readonly type: 'object';
7468
+ readonly description: 'Group of likes by different actors on the same post.';
7469
+ readonly required: ["post", "items"];
7470
+ readonly properties: {
7471
+ readonly post: {
7472
+ readonly type: 'string';
7473
+ readonly format: 'at-uri';
7474
+ };
7475
+ readonly items: {
7476
+ readonly type: 'array';
7477
+ readonly minLength: 1;
7478
+ readonly items: {
7479
+ readonly type: 'ref';
7480
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#likeItem';
7481
+ };
7482
+ };
7483
+ };
7484
+ };
7485
+ readonly likeItem: {
7486
+ readonly type: 'object';
7487
+ readonly description: "One actor who liked the group's post.";
7488
+ readonly required: ["actor"];
7489
+ readonly properties: {
7490
+ readonly actor: {
7491
+ readonly type: 'string';
7492
+ readonly format: 'did';
7493
+ };
7494
+ };
7495
+ };
7496
+ readonly multiPostLikeGroup: {
7497
+ readonly type: 'object';
7498
+ readonly description: 'Group of likes by the same actor on different posts.';
7499
+ readonly required: ["actor", "items"];
7500
+ readonly properties: {
7501
+ readonly actor: {
7502
+ readonly type: 'string';
7503
+ readonly format: 'did';
7504
+ };
7505
+ readonly items: {
7506
+ readonly type: 'array';
7507
+ readonly minLength: 2;
7508
+ readonly items: {
7509
+ readonly type: 'ref';
7510
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#multiPostLikeItem';
7511
+ };
7512
+ };
7513
+ };
7514
+ };
7515
+ readonly multiPostLikeItem: {
7516
+ readonly type: 'object';
7517
+ readonly description: "One post which was liked by the group's actor.";
7518
+ readonly required: ["post"];
7519
+ readonly properties: {
7520
+ readonly post: {
7521
+ readonly type: 'string';
7522
+ readonly format: 'at-uri';
7523
+ };
7524
+ };
7525
+ };
7526
+ readonly repostGroup: {
7527
+ readonly type: 'object';
7528
+ readonly description: 'Group of reposts by different actors of the same post.';
7529
+ readonly required: ["post", "items"];
7530
+ readonly properties: {
7531
+ readonly post: {
7532
+ readonly type: 'string';
7533
+ readonly format: 'at-uri';
7534
+ };
7535
+ readonly items: {
7536
+ readonly type: 'array';
7537
+ readonly minLength: 1;
7538
+ readonly items: {
7539
+ readonly type: 'ref';
7540
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#repostItem';
7541
+ };
7542
+ };
7543
+ };
7544
+ };
7545
+ readonly repostItem: {
7546
+ readonly type: 'object';
7547
+ readonly description: "One actor who reposted the group's post.";
7548
+ readonly required: ["actor"];
7549
+ readonly properties: {
7550
+ readonly actor: {
7551
+ readonly type: 'string';
7552
+ readonly format: 'did';
7553
+ };
7554
+ };
7555
+ };
7556
+ readonly likeViaRepostGroup: {
7557
+ readonly type: 'object';
7558
+ readonly description: "Group of likes by different actors on the same post via the requesting account's repost.";
7559
+ readonly required: ["post", "viaRepost", "items"];
7560
+ readonly properties: {
7561
+ readonly post: {
7562
+ readonly type: 'string';
7563
+ readonly format: 'at-uri';
7564
+ };
7565
+ readonly viaRepost: {
7566
+ readonly type: 'string';
7567
+ readonly format: 'at-uri';
7568
+ };
7569
+ readonly items: {
7570
+ readonly type: 'array';
7571
+ readonly minLength: 1;
7572
+ readonly items: {
7573
+ readonly type: 'ref';
7574
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#likeViaRepostItem';
7575
+ };
7576
+ };
7577
+ };
7578
+ };
7579
+ readonly likeViaRepostItem: {
7580
+ readonly type: 'object';
7581
+ readonly description: "One actor who liked the group's post via the requesting account's repost.";
7582
+ readonly required: ["actor"];
7583
+ readonly properties: {
7584
+ readonly actor: {
7585
+ readonly type: 'string';
7586
+ readonly format: 'did';
7587
+ };
7588
+ };
7589
+ };
7590
+ readonly repostViaRepostGroup: {
7591
+ readonly type: 'object';
7592
+ readonly description: "Group of reposts by different actors of the same post via the requesting account's repost.";
7593
+ readonly required: ["post", "viaRepost", "items"];
7594
+ readonly properties: {
7595
+ readonly post: {
7596
+ readonly type: 'string';
7597
+ readonly format: 'at-uri';
7598
+ };
7599
+ readonly viaRepost: {
7600
+ readonly type: 'string';
7601
+ readonly format: 'at-uri';
7602
+ };
7603
+ readonly items: {
7604
+ readonly type: 'array';
7605
+ readonly minLength: 1;
7606
+ readonly items: {
7607
+ readonly type: 'ref';
7608
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#repostViaRepostItem';
7609
+ };
7610
+ };
7611
+ };
7612
+ };
7613
+ readonly repostViaRepostItem: {
7614
+ readonly type: 'object';
7615
+ readonly description: "One actor who reposted the group's post via the requesting account's repost.";
7616
+ readonly required: ["actor"];
7617
+ readonly properties: {
7618
+ readonly actor: {
7619
+ readonly type: 'string';
7620
+ readonly format: 'did';
7621
+ };
7622
+ };
7623
+ };
7624
+ readonly followGroup: {
7625
+ readonly type: 'object';
7626
+ readonly description: 'Group of actors who followed the requesting account.';
7627
+ readonly required: ["items"];
7628
+ readonly properties: {
7629
+ readonly items: {
7630
+ readonly type: 'array';
7631
+ readonly minLength: 1;
7632
+ readonly items: {
7633
+ readonly type: 'ref';
7634
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#followItem';
7635
+ };
7636
+ };
7637
+ };
7638
+ };
7639
+ readonly followItem: {
7640
+ readonly type: 'object';
7641
+ readonly description: 'An actor who followed the requesting account, possibly via a starter pack.';
7642
+ readonly required: ["actor"];
7643
+ readonly properties: {
7644
+ readonly actor: {
7645
+ readonly type: 'string';
7646
+ readonly format: 'did';
7647
+ };
7648
+ readonly starterPack: {
7649
+ readonly type: 'string';
7650
+ readonly format: 'at-uri';
7651
+ };
7652
+ };
7653
+ };
7654
+ readonly subscribedPostGroup: {
7655
+ readonly type: 'object';
7656
+ readonly description: 'Group of new posts by actors the requesting account subscribes to.';
7657
+ readonly required: ["items"];
7658
+ readonly properties: {
7659
+ readonly items: {
7660
+ readonly type: 'array';
7661
+ readonly minLength: 1;
7662
+ readonly items: {
7663
+ readonly type: 'ref';
7664
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#subscribedPostItem';
7665
+ };
7666
+ };
7667
+ };
7668
+ };
7669
+ readonly subscribedPostItem: {
7670
+ readonly type: 'object';
7671
+ readonly description: 'One new post by an actor the requesting account subscribes to.';
7672
+ readonly required: ["actor", "post"];
7673
+ readonly properties: {
7674
+ readonly actor: {
7675
+ readonly type: 'string';
7676
+ readonly format: 'did';
7677
+ };
7678
+ readonly post: {
7679
+ readonly type: 'string';
7680
+ readonly format: 'at-uri';
7681
+ };
7682
+ };
7683
+ };
7684
+ readonly generatorLikeGroup: {
7685
+ readonly type: 'object';
7686
+ readonly description: 'Group of likes by different actors on the same feed generator.';
7687
+ readonly required: ["generator", "items"];
7688
+ readonly properties: {
7689
+ readonly generator: {
7690
+ readonly type: 'string';
7691
+ readonly format: 'at-uri';
7692
+ };
7693
+ readonly items: {
7694
+ readonly type: 'array';
7695
+ readonly minLength: 1;
7696
+ readonly items: {
7697
+ readonly type: 'ref';
7698
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#generatorLikeItem';
7699
+ };
7700
+ };
7701
+ };
7702
+ };
7703
+ readonly generatorLikeItem: {
7704
+ readonly type: 'object';
7705
+ readonly description: 'One actor who liked the feed generator in the group.';
7706
+ readonly required: ["actor"];
7707
+ readonly properties: {
7708
+ readonly actor: {
7709
+ readonly type: 'string';
7710
+ readonly format: 'did';
7711
+ };
7712
+ };
7713
+ };
7714
+ readonly replyNotification: {
7715
+ readonly type: 'object';
7716
+ readonly description: 'A reply to a post by the requesting account or to a thread they are participating in.';
7717
+ readonly required: ["post", "parent"];
7718
+ readonly properties: {
7719
+ readonly post: {
7720
+ readonly type: 'string';
7721
+ readonly format: 'at-uri';
7722
+ };
7723
+ readonly parent: {
7724
+ readonly type: 'string';
7725
+ readonly format: 'at-uri';
7726
+ };
7727
+ };
7728
+ };
7729
+ readonly quoteNotification: {
7730
+ readonly type: 'object';
7731
+ readonly description: 'A post quoting a post by the requesting account.';
7732
+ readonly required: ["post"];
7733
+ readonly properties: {
7734
+ readonly post: {
7735
+ readonly type: 'string';
7736
+ readonly format: 'at-uri';
7737
+ };
7738
+ readonly parent: {
7739
+ readonly type: 'string';
7740
+ readonly format: 'at-uri';
7741
+ };
7742
+ };
7743
+ };
7744
+ readonly mentionNotification: {
7745
+ readonly type: 'object';
7746
+ readonly description: 'A post mentioning the requesting account.';
7747
+ readonly required: ["post"];
7748
+ readonly properties: {
7749
+ readonly post: {
7750
+ readonly type: 'string';
7751
+ readonly format: 'at-uri';
7752
+ };
7753
+ readonly parent: {
7754
+ readonly type: 'string';
7755
+ readonly format: 'at-uri';
7756
+ };
7757
+ };
7758
+ };
7759
+ readonly followBackNotification: {
7760
+ readonly type: 'object';
7761
+ readonly description: 'An actor followed the requesting account back, possibly via a starter pack.';
7762
+ readonly required: ["actor"];
7763
+ readonly properties: {
7764
+ readonly actor: {
7765
+ readonly type: 'string';
7766
+ readonly format: 'did';
7767
+ };
7768
+ readonly starterPack: {
7769
+ readonly type: 'string';
7770
+ readonly format: 'at-uri';
7771
+ };
7772
+ };
7773
+ };
7774
+ readonly verifiedNotification: {
7775
+ readonly type: 'object';
7776
+ readonly description: 'An actor verified the requesting account.';
7777
+ readonly required: ["actor"];
7778
+ readonly properties: {
7779
+ readonly actor: {
7780
+ readonly type: 'string';
7781
+ readonly format: 'did';
7782
+ };
7783
+ };
7784
+ };
7785
+ readonly unverifiedNotification: {
7786
+ readonly type: 'object';
7787
+ readonly description: 'A verification of the requesting account was removed.';
7788
+ readonly required: ["actor"];
7789
+ readonly properties: {
7790
+ readonly actor: {
7791
+ readonly type: 'string';
7792
+ readonly format: 'did';
7793
+ };
7794
+ };
7795
+ };
7796
+ readonly starterPackJoinedNotification: {
7797
+ readonly type: 'object';
7798
+ readonly description: 'An actor joined Bluesky via a starter pack created by the requesting account.';
7799
+ readonly required: ["actor", "starterPack"];
7800
+ readonly properties: {
7801
+ readonly actor: {
7802
+ readonly type: 'string';
7803
+ readonly format: 'did';
7804
+ };
7805
+ readonly starterPack: {
7806
+ readonly type: 'string';
7807
+ readonly format: 'at-uri';
7808
+ };
7809
+ };
7810
+ };
7811
+ readonly contactMatchNotification: {
7812
+ readonly type: 'object';
7813
+ readonly description: 'A contact of the requesting account joined Bluesky.';
7814
+ readonly required: ["actor"];
7815
+ readonly properties: {
7816
+ readonly actor: {
7817
+ readonly type: 'string';
7818
+ readonly format: 'did';
7819
+ };
7820
+ };
7821
+ };
7822
+ };
7823
+ };
7347
7824
  readonly AppBskyNotificationGetPreferences: {
7348
7825
  readonly lexicon: 1;
7349
7826
  readonly id: 'app.bsky.notification.getPreferences';
@@ -18998,6 +19475,243 @@ export declare const schemaDict: {
18998
19475
  };
18999
19476
  };
19000
19477
  };
19478
+ readonly ToolsOzoneInboxAppealActionedSubject: {
19479
+ readonly lexicon: 1;
19480
+ readonly id: 'tools.ozone.inbox.appealActionedSubject';
19481
+ readonly defs: {
19482
+ readonly main: {
19483
+ readonly type: 'procedure';
19484
+ readonly description: "Appeal a moderation action affecting the user's account or content.";
19485
+ readonly input: {
19486
+ readonly encoding: 'application/json';
19487
+ readonly schema: {
19488
+ readonly type: 'object';
19489
+ readonly required: ["subject"];
19490
+ readonly properties: {
19491
+ readonly action: {
19492
+ readonly type: 'union';
19493
+ readonly refs: ["lex:tools.ozone.inbox.appealActionedSubject#actionRef", "lex:tools.ozone.inbox.appealActionedSubject#labelRef", "lex:tools.ozone.inbox.appealActionedSubject#takedownRef"];
19494
+ readonly closed: true;
19495
+ readonly description: 'Moderation action being appealed.';
19496
+ };
19497
+ readonly subject: {
19498
+ readonly type: 'union';
19499
+ readonly refs: ["lex:com.atproto.admin.defs#repoRef", "lex:com.atproto.repo.strongRef"];
19500
+ readonly description: 'Subject being appealed.';
19501
+ };
19502
+ readonly reason: {
19503
+ readonly type: 'string';
19504
+ readonly maxGraphemes: 2000;
19505
+ readonly maxLength: 20000;
19506
+ readonly description: 'Optional explanation supplied by the user.';
19507
+ };
19508
+ readonly modTool: {
19509
+ readonly type: 'ref';
19510
+ readonly ref: 'lex:com.atproto.moderation.createReport#modTool';
19511
+ };
19512
+ };
19513
+ };
19514
+ };
19515
+ readonly output: {
19516
+ readonly encoding: 'application/json';
19517
+ readonly schema: {
19518
+ readonly type: 'ref';
19519
+ readonly ref: 'lex:tools.ozone.inbox.defs#subjectView';
19520
+ };
19521
+ };
19522
+ readonly errors: [{
19523
+ readonly name: 'InvalidAppealSubject';
19524
+ readonly description: 'Invalid appeal subject input.';
19525
+ }, {
19526
+ readonly name: 'AlreadyAppealed';
19527
+ readonly description: 'An active appeal already exists for this action.';
19528
+ }, {
19529
+ readonly name: 'NotAppealable';
19530
+ readonly description: 'The subject cannot be appealed.';
19531
+ }, {
19532
+ readonly name: 'AppealWindowExpired';
19533
+ readonly description: 'The appeal window for this action has closed.';
19534
+ }];
19535
+ };
19536
+ readonly actionRef: {
19537
+ readonly type: 'object';
19538
+ readonly required: ["id"];
19539
+ readonly properties: {
19540
+ readonly id: {
19541
+ readonly type: 'integer';
19542
+ readonly minimum: 1;
19543
+ readonly description: 'ID of the moderation action being appealed, available via actions in mod inbox.';
19544
+ };
19545
+ };
19546
+ };
19547
+ readonly labelRef: {
19548
+ readonly type: 'object';
19549
+ readonly required: ["val"];
19550
+ readonly properties: {
19551
+ readonly val: {
19552
+ readonly type: 'string';
19553
+ readonly minLength: 1;
19554
+ readonly description: 'Label being appealed.';
19555
+ };
19556
+ };
19557
+ };
19558
+ readonly takedownRef: {
19559
+ readonly type: 'object';
19560
+ readonly properties: {};
19561
+ };
19562
+ };
19563
+ };
19564
+ readonly ToolsOzoneInboxDefs: {
19565
+ readonly lexicon: 1;
19566
+ readonly id: 'tools.ozone.inbox.defs';
19567
+ readonly defs: {
19568
+ readonly subjectView: {
19569
+ readonly type: 'object';
19570
+ readonly description: 'A subject belonging to the viewer that has moderation actions against it.';
19571
+ readonly required: ["src", "subject", "enforcement", "createdAt", "updatedAt"];
19572
+ readonly properties: {
19573
+ readonly src: {
19574
+ readonly type: 'string';
19575
+ readonly format: 'did';
19576
+ readonly description: 'DID of the moderation service that took the actions.';
19577
+ };
19578
+ readonly subject: {
19579
+ readonly type: 'union';
19580
+ readonly refs: ["lex:com.atproto.admin.defs#repoRef", "lex:com.atproto.repo.strongRef"];
19581
+ };
19582
+ readonly enforcement: {
19583
+ readonly type: 'ref';
19584
+ readonly ref: 'lex:tools.ozone.inbox.defs#enforcementView';
19585
+ };
19586
+ readonly appeal: {
19587
+ readonly type: 'ref';
19588
+ readonly ref: 'lex:tools.ozone.inbox.defs#appealView';
19589
+ };
19590
+ readonly availableActions: {
19591
+ readonly type: 'array';
19592
+ readonly items: {
19593
+ readonly type: 'string';
19594
+ readonly knownValues: ["appeal"];
19595
+ };
19596
+ };
19597
+ readonly latestAction: {
19598
+ readonly type: 'ref';
19599
+ readonly ref: 'lex:tools.ozone.inbox.defs#actionView';
19600
+ };
19601
+ readonly actionCount: {
19602
+ readonly type: 'integer';
19603
+ };
19604
+ readonly createdAt: {
19605
+ readonly type: 'string';
19606
+ readonly format: 'datetime';
19607
+ };
19608
+ readonly updatedAt: {
19609
+ readonly type: 'string';
19610
+ readonly format: 'datetime';
19611
+ };
19612
+ };
19613
+ };
19614
+ readonly enforcementView: {
19615
+ readonly type: 'object';
19616
+ readonly description: 'The current enforcement state of a subject.';
19617
+ readonly required: ["state"];
19618
+ readonly properties: {
19619
+ readonly state: {
19620
+ readonly type: 'string';
19621
+ readonly knownValues: ["none", "labeled", "removed", "suspended", "takendown"];
19622
+ };
19623
+ readonly scope: {
19624
+ readonly type: 'string';
19625
+ readonly knownValues: ["network", "app", "labelOnly"];
19626
+ };
19627
+ readonly expiresAt: {
19628
+ readonly type: 'string';
19629
+ readonly format: 'datetime';
19630
+ };
19631
+ readonly labels: {
19632
+ readonly type: 'array';
19633
+ readonly items: {
19634
+ readonly type: 'string';
19635
+ };
19636
+ readonly description: 'Active label values on the subject, excluding negated and expired labels.';
19637
+ };
19638
+ };
19639
+ };
19640
+ readonly appealView: {
19641
+ readonly type: 'object';
19642
+ readonly description: "The state of the viewer's appeal against the actions on a subject.";
19643
+ readonly required: ["state"];
19644
+ readonly properties: {
19645
+ readonly state: {
19646
+ readonly type: 'string';
19647
+ readonly knownValues: ["none", "pending", "resolved", "superseded", "expired"];
19648
+ };
19649
+ readonly appealedAt: {
19650
+ readonly type: 'string';
19651
+ readonly format: 'datetime';
19652
+ };
19653
+ readonly resolvedAt: {
19654
+ readonly type: 'string';
19655
+ readonly format: 'datetime';
19656
+ readonly description: "When the appeal's report was closed.";
19657
+ };
19658
+ readonly note: {
19659
+ readonly type: 'string';
19660
+ readonly description: 'Moderator explanation, from the publicNote on the closing activity. Absent if none was written.';
19661
+ };
19662
+ readonly appealableUntil: {
19663
+ readonly type: 'string';
19664
+ readonly format: 'datetime';
19665
+ };
19666
+ };
19667
+ };
19668
+ readonly actionView: {
19669
+ readonly type: 'object';
19670
+ readonly description: 'A single moderation action taken against a subject.';
19671
+ readonly required: ["id", "type", "createdAt"];
19672
+ readonly properties: {
19673
+ readonly id: {
19674
+ readonly type: 'integer';
19675
+ readonly description: 'Action ID (moderation event ID).';
19676
+ };
19677
+ readonly type: {
19678
+ readonly type: 'string';
19679
+ readonly description: 'Public action type.';
19680
+ };
19681
+ readonly scope: {
19682
+ readonly type: 'string';
19683
+ readonly knownValues: ["network", "app", "labelOnly"];
19684
+ };
19685
+ readonly createdAt: {
19686
+ readonly type: 'string';
19687
+ readonly format: 'datetime';
19688
+ };
19689
+ readonly reversedAt: {
19690
+ readonly type: 'string';
19691
+ readonly format: 'datetime';
19692
+ };
19693
+ readonly expiresAt: {
19694
+ readonly type: 'string';
19695
+ readonly format: 'datetime';
19696
+ };
19697
+ readonly labels: {
19698
+ readonly type: 'array';
19699
+ readonly items: {
19700
+ readonly type: 'string';
19701
+ };
19702
+ readonly description: 'Label values, for labelApplied/labelRemoved.';
19703
+ };
19704
+ readonly policies: {
19705
+ readonly type: 'array';
19706
+ readonly items: {
19707
+ readonly type: 'string';
19708
+ };
19709
+ readonly description: 'Policies that were applied in this action.';
19710
+ };
19711
+ };
19712
+ };
19713
+ };
19714
+ };
19001
19715
  readonly ToolsOzoneModerationCancelScheduledActions: {
19002
19716
  readonly lexicon: 1;
19003
19717
  readonly id: 'tools.ozone.moderation.cancelScheduledActions';
@@ -21608,6 +22322,13 @@ export declare const schemaDict: {
21608
22322
  };
21609
22323
  readonly description: 'Policy keys to recommend when actioning reports in this queue';
21610
22324
  };
22325
+ readonly recommendedLabels: {
22326
+ readonly type: 'array';
22327
+ readonly items: {
22328
+ readonly type: 'string';
22329
+ };
22330
+ readonly description: 'Labels to recommend for this queue and use as fallback appeal routing mappings';
22331
+ };
21611
22332
  };
21612
22333
  };
21613
22334
  };
@@ -21681,6 +22402,13 @@ export declare const schemaDict: {
21681
22402
  };
21682
22403
  readonly description: 'Policy keys recommended when actioning reports in this queue';
21683
22404
  };
22405
+ readonly recommendedLabels: {
22406
+ readonly type: 'array';
22407
+ readonly items: {
22408
+ readonly type: 'string';
22409
+ };
22410
+ readonly description: 'Labels recommended for this queue and used as a fallback when routing label appeals';
22411
+ };
21684
22412
  readonly createdBy: {
21685
22413
  readonly type: 'string';
21686
22414
  readonly format: 'did';
@@ -22062,6 +22790,13 @@ export declare const schemaDict: {
22062
22790
  };
22063
22791
  readonly description: 'Policy keys to recommend when actioning reports in this queue';
22064
22792
  };
22793
+ readonly recommendedLabels: {
22794
+ readonly type: 'array';
22795
+ readonly items: {
22796
+ readonly type: 'string';
22797
+ };
22798
+ readonly description: 'Labels to recommend for this queue and use as fallback appeal routing mappings';
22799
+ };
22065
22800
  };
22066
22801
  };
22067
22802
  };
@@ -22081,6 +22816,9 @@ export declare const schemaDict: {
22081
22816
  readonly errors: [{
22082
22817
  readonly name: 'InvalidRecommendedPolicies';
22083
22818
  readonly description: 'One or more recommended policy keys do not exist in the configured policy list';
22819
+ }, {
22820
+ readonly name: 'ConflictingQueue';
22821
+ readonly description: 'The queue configuration conflicts with an existing queue';
22084
22822
  }];
22085
22823
  };
22086
22824
  };
@@ -22514,7 +23252,7 @@ export declare const schemaDict: {
22514
23252
  readonly items: {
22515
23253
  readonly type: 'integer';
22516
23254
  };
22517
- readonly description: 'Array of moderation event IDs representing actions taken on this report (sorted DESC, most recent first)';
23255
+ readonly description: 'Array of moderation event IDs representing actions taken on this report, in append order (most recently linked event last)';
22518
23256
  };
22519
23257
  readonly actions: {
22520
23258
  readonly type: 'array';
@@ -22682,25 +23420,65 @@ export declare const schemaDict: {
22682
23420
  readonly type: 'integer';
22683
23421
  readonly description: 'Number of reports currently not closed.';
22684
23422
  };
23423
+ readonly closedCount: {
23424
+ readonly type: 'integer';
23425
+ readonly description: 'Number of close transitions.';
23426
+ };
22685
23427
  readonly actionedCount: {
22686
23428
  readonly type: 'integer';
22687
- readonly description: 'Number of reports closed today.';
23429
+ readonly description: 'Number of closures whose last report action is label, tag, or takedown.';
23430
+ };
23431
+ readonly acknowledgedCount: {
23432
+ readonly type: 'integer';
23433
+ readonly description: 'Number of closures whose last report action is not label, tag, or takedown.';
22688
23434
  };
22689
23435
  readonly escalatedCount: {
22690
23436
  readonly type: 'integer';
22691
- readonly description: 'Number of reports escalated today.';
23437
+ readonly description: 'Number of reports escalated.';
22692
23438
  };
22693
23439
  readonly inboundCount: {
22694
23440
  readonly type: 'integer';
22695
- readonly description: 'Reports received today.';
23441
+ readonly description: 'Reports received.';
23442
+ };
23443
+ readonly labelActionCount: {
23444
+ readonly type: 'integer';
23445
+ readonly description: 'Closures whose last report action is a label event.';
23446
+ };
23447
+ readonly tagActionCount: {
23448
+ readonly type: 'integer';
23449
+ readonly description: 'Closures whose last report action is a tag event.';
23450
+ };
23451
+ readonly takedownActionCount: {
23452
+ readonly type: 'integer';
23453
+ readonly description: 'Closures whose last report action is a takedown event.';
23454
+ };
23455
+ readonly ahtDurationSec: {
23456
+ readonly type: 'integer';
23457
+ readonly description: 'Sum of report assignment-to-close seconds.';
23458
+ };
23459
+ readonly ahtSampleCount: {
23460
+ readonly type: 'integer';
23461
+ readonly description: 'Number of assigned closed-report samples in ahtDurationSec.';
23462
+ };
23463
+ readonly resolutionDurationSec: {
23464
+ readonly type: 'integer';
23465
+ readonly description: 'Sum of report creation-to-close seconds.';
23466
+ };
23467
+ readonly resolutionSampleCount: {
23468
+ readonly type: 'integer';
23469
+ readonly description: 'Number of closed-report samples in resolutionDurationSec.';
22696
23470
  };
22697
23471
  readonly actionRate: {
22698
23472
  readonly type: 'integer';
22699
- readonly description: 'Percentage of reports actioned (actionedCount / inboundCount * 100), rounded to nearest integer.';
23473
+ readonly description: 'Percentage of closures actioned (actionedCount / closedCount * 100), rounded to nearest integer.';
22700
23474
  };
22701
23475
  readonly avgHandlingTimeSec: {
22702
23476
  readonly type: 'integer';
22703
- readonly description: 'Average time in seconds from report creation (or moderator assignment) to close.';
23477
+ readonly description: 'Average handling time in seconds from report assignment to close.';
23478
+ };
23479
+ readonly avgResolutionTimeSec: {
23480
+ readonly type: 'integer';
23481
+ readonly description: 'Average resolution time in seconds from report creation to close.';
22704
23482
  };
22705
23483
  readonly lastUpdated: {
22706
23484
  readonly type: 'string';
@@ -22727,9 +23505,17 @@ export declare const schemaDict: {
22727
23505
  readonly type: 'integer';
22728
23506
  readonly description: 'Number of reports not closed at time of computation.';
22729
23507
  };
23508
+ readonly closedCount: {
23509
+ readonly type: 'integer';
23510
+ readonly description: 'Number of close transitions during this day.';
23511
+ };
22730
23512
  readonly actionedCount: {
22731
23513
  readonly type: 'integer';
22732
- readonly description: 'Number of reports closed during this day.';
23514
+ readonly description: 'Number of closures whose last report action is label, tag, or takedown during this day.';
23515
+ };
23516
+ readonly acknowledgedCount: {
23517
+ readonly type: 'integer';
23518
+ readonly description: 'Number of closures whose last report action is not label, tag, or takedown during this day.';
22733
23519
  };
22734
23520
  readonly escalatedCount: {
22735
23521
  readonly type: 'integer';
@@ -22739,13 +23525,45 @@ export declare const schemaDict: {
22739
23525
  readonly type: 'integer';
22740
23526
  readonly description: 'Reports received during this day.';
22741
23527
  };
23528
+ readonly labelActionCount: {
23529
+ readonly type: 'integer';
23530
+ readonly description: 'Closures whose last report action is a label event during this day.';
23531
+ };
23532
+ readonly tagActionCount: {
23533
+ readonly type: 'integer';
23534
+ readonly description: 'Closures whose last report action is a tag event during this day.';
23535
+ };
23536
+ readonly takedownActionCount: {
23537
+ readonly type: 'integer';
23538
+ readonly description: 'Closures whose last report action is a takedown event during this day.';
23539
+ };
23540
+ readonly ahtDurationSec: {
23541
+ readonly type: 'integer';
23542
+ readonly description: "Sum of report assignment-to-close seconds for this day's samples.";
23543
+ };
23544
+ readonly ahtSampleCount: {
23545
+ readonly type: 'integer';
23546
+ readonly description: 'Number of assigned closed-report samples in ahtDurationSec.';
23547
+ };
23548
+ readonly resolutionDurationSec: {
23549
+ readonly type: 'integer';
23550
+ readonly description: "Sum of report creation-to-close seconds for this day's samples.";
23551
+ };
23552
+ readonly resolutionSampleCount: {
23553
+ readonly type: 'integer';
23554
+ readonly description: 'Number of closed-report samples in resolutionDurationSec.';
23555
+ };
22742
23556
  readonly actionRate: {
22743
23557
  readonly type: 'integer';
22744
- readonly description: 'Percentage of reports actioned (actionedCount / inboundCount * 100), rounded to nearest integer.';
23558
+ readonly description: 'Percentage of closures actioned (actionedCount / closedCount * 100), rounded to nearest integer.';
22745
23559
  };
22746
23560
  readonly avgHandlingTimeSec: {
22747
23561
  readonly type: 'integer';
22748
- readonly description: 'Average time in seconds from report creation (or moderator assignment) to close.';
23562
+ readonly description: 'Average handling time in seconds from report assignment to close.';
23563
+ };
23564
+ readonly avgResolutionTimeSec: {
23565
+ readonly type: 'integer';
23566
+ readonly description: 'Average resolution time in seconds from report creation to close.';
22749
23567
  };
22750
23568
  };
22751
23569
  };
@@ -22957,7 +23775,7 @@ export declare const schemaDict: {
22957
23775
  readonly defs: {
22958
23776
  readonly main: {
22959
23777
  readonly type: 'query';
22960
- readonly description: 'Get live report statistics from the past 24 hours. Filter by queue, moderator, or report type. Omit all parameters for aggregate stats.';
23778
+ readonly description: 'Get live report statistics for the current UTC calendar day. Filter by queue, moderator, or report type. Omit all parameters for aggregate stats.';
22961
23779
  readonly parameters: {
22962
23780
  readonly type: 'params';
22963
23781
  readonly properties: {
@@ -23321,7 +24139,7 @@ export declare const schemaDict: {
23321
24139
  readonly defs: {
23322
24140
  readonly main: {
23323
24141
  readonly type: 'procedure';
23324
- readonly description: 'Recompute report statistics for a date range. Useful for backfilling after failures or data corrections.';
24142
+ readonly description: 'Recompute report statistics for a date range.';
23325
24143
  readonly input: {
23326
24144
  readonly encoding: 'application/json';
23327
24145
  readonly schema: {
@@ -28378,6 +29196,14 @@ export declare const schemas: ({
28378
29196
  readonly type: 'ref';
28379
29197
  readonly ref: 'lex:app.bsky.feed.defs#replyRef';
28380
29198
  };
29199
+ readonly opThreadPostIndex: {
29200
+ readonly type: 'integer';
29201
+ readonly description: 'The 1-indexed position of this post within the contiguous OP thread. Only present when this post is part of the OP thread.';
29202
+ };
29203
+ readonly opThreadPostCount: {
29204
+ readonly type: 'integer';
29205
+ readonly description: 'The total number of posts in the contiguous OP thread that this post belongs to. Only present when this post is part of the OP thread.';
29206
+ };
28381
29207
  readonly reason: {
28382
29208
  readonly type: 'union';
28383
29209
  readonly refs: ["lex:app.bsky.feed.defs#reasonRepost", "lex:app.bsky.feed.defs#reasonPin"];
@@ -29285,6 +30111,10 @@ export declare const schemas: ({
29285
30111
  readonly cursor: {
29286
30112
  readonly type: 'string';
29287
30113
  };
30114
+ readonly since: {
30115
+ readonly type: 'string';
30116
+ readonly description: 'Return only items newer than the position identified by this cursor value, newest first. Use the startCursor from a previous response. The item at that position is not returned because the caller already holds it. When the bounded range is exhausted, the returned cursor equals this value so that pagination continues below the boundary.';
30117
+ };
29288
30118
  };
29289
30119
  };
29290
30120
  readonly output: {
@@ -29296,6 +30126,10 @@ export declare const schemas: ({
29296
30126
  readonly cursor: {
29297
30127
  readonly type: 'string';
29298
30128
  };
30129
+ readonly startCursor: {
30130
+ readonly type: 'string';
30131
+ readonly description: 'Cursor identifying the newest item in this page. Pass it as since on a later request to fetch only newer content.';
30132
+ };
29299
30133
  readonly feed: {
29300
30134
  readonly type: 'array';
29301
30135
  readonly items: {
@@ -29435,6 +30269,11 @@ export declare const schemas: ({
29435
30269
  readonly cursor: {
29436
30270
  readonly type: 'string';
29437
30271
  };
30272
+ readonly sort: {
30273
+ readonly type: 'string';
30274
+ readonly knownValues: ["latest", "top"];
30275
+ readonly description: "Ordering of results. 'latest' (default when unset) is newest first; 'top' orders quotes by their like count.";
30276
+ };
29438
30277
  };
29439
30278
  };
29440
30279
  readonly output: {
@@ -29592,6 +30431,10 @@ export declare const schemas: ({
29592
30431
  readonly cursor: {
29593
30432
  readonly type: 'string';
29594
30433
  };
30434
+ readonly since: {
30435
+ readonly type: 'string';
30436
+ readonly description: 'Return only items newer than the position identified by this cursor value, newest first. Use the startCursor from a previous response. The item at that position is not returned because the caller already holds it. When the bounded range is exhausted, the returned cursor equals this value so that pagination continues below the boundary.';
30437
+ };
29595
30438
  };
29596
30439
  };
29597
30440
  readonly output: {
@@ -29603,6 +30446,10 @@ export declare const schemas: ({
29603
30446
  readonly cursor: {
29604
30447
  readonly type: 'string';
29605
30448
  };
30449
+ readonly startCursor: {
30450
+ readonly type: 'string';
30451
+ readonly description: 'Cursor identifying the newest item in this page. Pass it as since on a later request to fetch only newer content.';
30452
+ };
29606
30453
  readonly feed: {
29607
30454
  readonly type: 'array';
29608
30455
  readonly items: {
@@ -32304,6 +33151,453 @@ export declare const schemas: ({
32304
33151
  };
32305
33152
  };
32306
33153
  };
33154
+ } | {
33155
+ readonly lexicon: 1;
33156
+ readonly id: 'app.bsky.notification.getGroupedNotifications';
33157
+ readonly defs: {
33158
+ readonly main: {
33159
+ readonly type: 'query';
33160
+ readonly description: '[UNSTABLE - DO NOT USE THIS ENDPOINT WHILE THIS NOTE IS HERE] Enumerate notifications for the requesting account, pre-grouped for rendering. Supersedes listNotifications. Requires auth.';
33161
+ readonly parameters: {
33162
+ readonly type: 'params';
33163
+ readonly properties: {
33164
+ readonly feed: {
33165
+ readonly type: 'string';
33166
+ readonly description: "Which notification feed to return. Grouping behavior varies by feed: notifications about follows might be grouped in 'all' and ungrouped (or rather, in single-item groups) in 'followers'.";
33167
+ readonly maxLength: 32;
33168
+ readonly knownValues: ["all", "people-i-follow", "conversations", "followers", "activity"];
33169
+ readonly default: 'all';
33170
+ };
33171
+ readonly limit: {
33172
+ readonly type: 'integer';
33173
+ readonly description: 'Maximum number of groups to return.';
33174
+ readonly minimum: 1;
33175
+ readonly maximum: 50;
33176
+ readonly default: 30;
33177
+ };
33178
+ readonly cursor: {
33179
+ readonly type: 'string';
33180
+ readonly maxLength: 1024;
33181
+ };
33182
+ };
33183
+ };
33184
+ readonly output: {
33185
+ readonly encoding: 'application/json';
33186
+ readonly schema: {
33187
+ readonly type: 'object';
33188
+ readonly required: ["groups"];
33189
+ readonly properties: {
33190
+ readonly cursor: {
33191
+ readonly type: 'string';
33192
+ readonly maxLength: 1024;
33193
+ };
33194
+ readonly groups: {
33195
+ readonly type: 'array';
33196
+ readonly description: 'Notification groups or individual notifications, newest first. Clients should ignore kinds they do not recognize. Grouping behavior depends on the kind and selected feed.';
33197
+ readonly items: {
33198
+ readonly type: 'ref';
33199
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#group';
33200
+ };
33201
+ };
33202
+ readonly seenAt: {
33203
+ readonly type: 'string';
33204
+ readonly format: 'datetime';
33205
+ };
33206
+ readonly relatedViews: {
33207
+ readonly type: 'array';
33208
+ readonly description: 'Reusable views referenced by notifications. Views shared across notifications appear once to avoid duplication. Each group contributes only its first 10 of each related view to this array. Ex: for a group containing likes in a post, we might have a large number of likeItem (e.g., 50) in a group, but only the profile views for the newest 10 items will be included here.';
33209
+ readonly items: {
33210
+ readonly type: 'union';
33211
+ readonly refs: ["lex:app.bsky.actor.defs#profileViewDetailed", "lex:app.bsky.feed.defs#blockedPost", "lex:app.bsky.feed.defs#generatorView", "lex:app.bsky.feed.defs#notFoundPost", "lex:app.bsky.feed.defs#postView", "lex:app.bsky.graph.defs#starterPackView"];
33212
+ };
33213
+ };
33214
+ };
33215
+ };
33216
+ };
33217
+ };
33218
+ readonly group: {
33219
+ readonly type: 'object';
33220
+ readonly description: 'Contains common metadata and kind-specific data for a notification group or individual notification.';
33221
+ readonly required: ["id", "isRead", "indexedAt", "count", "kind"];
33222
+ readonly properties: {
33223
+ readonly id: {
33224
+ readonly type: 'string';
33225
+ readonly maxLength: 256;
33226
+ };
33227
+ readonly isRead: {
33228
+ readonly type: 'boolean';
33229
+ };
33230
+ readonly indexedAt: {
33231
+ readonly type: 'string';
33232
+ readonly format: 'datetime';
33233
+ };
33234
+ readonly count: {
33235
+ readonly type: 'integer';
33236
+ readonly minimum: 1;
33237
+ };
33238
+ readonly kind: {
33239
+ readonly type: 'union';
33240
+ readonly refs: ["lex:app.bsky.notification.getGroupedNotifications#likeGroup", "lex:app.bsky.notification.getGroupedNotifications#multiPostLikeGroup", "lex:app.bsky.notification.getGroupedNotifications#repostGroup", "lex:app.bsky.notification.getGroupedNotifications#likeViaRepostGroup", "lex:app.bsky.notification.getGroupedNotifications#repostViaRepostGroup", "lex:app.bsky.notification.getGroupedNotifications#followGroup", "lex:app.bsky.notification.getGroupedNotifications#subscribedPostGroup", "lex:app.bsky.notification.getGroupedNotifications#generatorLikeGroup", "lex:app.bsky.notification.getGroupedNotifications#replyNotification", "lex:app.bsky.notification.getGroupedNotifications#quoteNotification", "lex:app.bsky.notification.getGroupedNotifications#mentionNotification", "lex:app.bsky.notification.getGroupedNotifications#followBackNotification", "lex:app.bsky.notification.getGroupedNotifications#verifiedNotification", "lex:app.bsky.notification.getGroupedNotifications#unverifiedNotification", "lex:app.bsky.notification.getGroupedNotifications#starterPackJoinedNotification", "lex:app.bsky.notification.getGroupedNotifications#contactMatchNotification"];
33241
+ };
33242
+ };
33243
+ };
33244
+ readonly likeGroup: {
33245
+ readonly type: 'object';
33246
+ readonly description: 'Group of likes by different actors on the same post.';
33247
+ readonly required: ["post", "items"];
33248
+ readonly properties: {
33249
+ readonly post: {
33250
+ readonly type: 'string';
33251
+ readonly format: 'at-uri';
33252
+ };
33253
+ readonly items: {
33254
+ readonly type: 'array';
33255
+ readonly minLength: 1;
33256
+ readonly items: {
33257
+ readonly type: 'ref';
33258
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#likeItem';
33259
+ };
33260
+ };
33261
+ };
33262
+ };
33263
+ readonly likeItem: {
33264
+ readonly type: 'object';
33265
+ readonly description: "One actor who liked the group's post.";
33266
+ readonly required: ["actor"];
33267
+ readonly properties: {
33268
+ readonly actor: {
33269
+ readonly type: 'string';
33270
+ readonly format: 'did';
33271
+ };
33272
+ };
33273
+ };
33274
+ readonly multiPostLikeGroup: {
33275
+ readonly type: 'object';
33276
+ readonly description: 'Group of likes by the same actor on different posts.';
33277
+ readonly required: ["actor", "items"];
33278
+ readonly properties: {
33279
+ readonly actor: {
33280
+ readonly type: 'string';
33281
+ readonly format: 'did';
33282
+ };
33283
+ readonly items: {
33284
+ readonly type: 'array';
33285
+ readonly minLength: 2;
33286
+ readonly items: {
33287
+ readonly type: 'ref';
33288
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#multiPostLikeItem';
33289
+ };
33290
+ };
33291
+ };
33292
+ };
33293
+ readonly multiPostLikeItem: {
33294
+ readonly type: 'object';
33295
+ readonly description: "One post which was liked by the group's actor.";
33296
+ readonly required: ["post"];
33297
+ readonly properties: {
33298
+ readonly post: {
33299
+ readonly type: 'string';
33300
+ readonly format: 'at-uri';
33301
+ };
33302
+ };
33303
+ };
33304
+ readonly repostGroup: {
33305
+ readonly type: 'object';
33306
+ readonly description: 'Group of reposts by different actors of the same post.';
33307
+ readonly required: ["post", "items"];
33308
+ readonly properties: {
33309
+ readonly post: {
33310
+ readonly type: 'string';
33311
+ readonly format: 'at-uri';
33312
+ };
33313
+ readonly items: {
33314
+ readonly type: 'array';
33315
+ readonly minLength: 1;
33316
+ readonly items: {
33317
+ readonly type: 'ref';
33318
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#repostItem';
33319
+ };
33320
+ };
33321
+ };
33322
+ };
33323
+ readonly repostItem: {
33324
+ readonly type: 'object';
33325
+ readonly description: "One actor who reposted the group's post.";
33326
+ readonly required: ["actor"];
33327
+ readonly properties: {
33328
+ readonly actor: {
33329
+ readonly type: 'string';
33330
+ readonly format: 'did';
33331
+ };
33332
+ };
33333
+ };
33334
+ readonly likeViaRepostGroup: {
33335
+ readonly type: 'object';
33336
+ readonly description: "Group of likes by different actors on the same post via the requesting account's repost.";
33337
+ readonly required: ["post", "viaRepost", "items"];
33338
+ readonly properties: {
33339
+ readonly post: {
33340
+ readonly type: 'string';
33341
+ readonly format: 'at-uri';
33342
+ };
33343
+ readonly viaRepost: {
33344
+ readonly type: 'string';
33345
+ readonly format: 'at-uri';
33346
+ };
33347
+ readonly items: {
33348
+ readonly type: 'array';
33349
+ readonly minLength: 1;
33350
+ readonly items: {
33351
+ readonly type: 'ref';
33352
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#likeViaRepostItem';
33353
+ };
33354
+ };
33355
+ };
33356
+ };
33357
+ readonly likeViaRepostItem: {
33358
+ readonly type: 'object';
33359
+ readonly description: "One actor who liked the group's post via the requesting account's repost.";
33360
+ readonly required: ["actor"];
33361
+ readonly properties: {
33362
+ readonly actor: {
33363
+ readonly type: 'string';
33364
+ readonly format: 'did';
33365
+ };
33366
+ };
33367
+ };
33368
+ readonly repostViaRepostGroup: {
33369
+ readonly type: 'object';
33370
+ readonly description: "Group of reposts by different actors of the same post via the requesting account's repost.";
33371
+ readonly required: ["post", "viaRepost", "items"];
33372
+ readonly properties: {
33373
+ readonly post: {
33374
+ readonly type: 'string';
33375
+ readonly format: 'at-uri';
33376
+ };
33377
+ readonly viaRepost: {
33378
+ readonly type: 'string';
33379
+ readonly format: 'at-uri';
33380
+ };
33381
+ readonly items: {
33382
+ readonly type: 'array';
33383
+ readonly minLength: 1;
33384
+ readonly items: {
33385
+ readonly type: 'ref';
33386
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#repostViaRepostItem';
33387
+ };
33388
+ };
33389
+ };
33390
+ };
33391
+ readonly repostViaRepostItem: {
33392
+ readonly type: 'object';
33393
+ readonly description: "One actor who reposted the group's post via the requesting account's repost.";
33394
+ readonly required: ["actor"];
33395
+ readonly properties: {
33396
+ readonly actor: {
33397
+ readonly type: 'string';
33398
+ readonly format: 'did';
33399
+ };
33400
+ };
33401
+ };
33402
+ readonly followGroup: {
33403
+ readonly type: 'object';
33404
+ readonly description: 'Group of actors who followed the requesting account.';
33405
+ readonly required: ["items"];
33406
+ readonly properties: {
33407
+ readonly items: {
33408
+ readonly type: 'array';
33409
+ readonly minLength: 1;
33410
+ readonly items: {
33411
+ readonly type: 'ref';
33412
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#followItem';
33413
+ };
33414
+ };
33415
+ };
33416
+ };
33417
+ readonly followItem: {
33418
+ readonly type: 'object';
33419
+ readonly description: 'An actor who followed the requesting account, possibly via a starter pack.';
33420
+ readonly required: ["actor"];
33421
+ readonly properties: {
33422
+ readonly actor: {
33423
+ readonly type: 'string';
33424
+ readonly format: 'did';
33425
+ };
33426
+ readonly starterPack: {
33427
+ readonly type: 'string';
33428
+ readonly format: 'at-uri';
33429
+ };
33430
+ };
33431
+ };
33432
+ readonly subscribedPostGroup: {
33433
+ readonly type: 'object';
33434
+ readonly description: 'Group of new posts by actors the requesting account subscribes to.';
33435
+ readonly required: ["items"];
33436
+ readonly properties: {
33437
+ readonly items: {
33438
+ readonly type: 'array';
33439
+ readonly minLength: 1;
33440
+ readonly items: {
33441
+ readonly type: 'ref';
33442
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#subscribedPostItem';
33443
+ };
33444
+ };
33445
+ };
33446
+ };
33447
+ readonly subscribedPostItem: {
33448
+ readonly type: 'object';
33449
+ readonly description: 'One new post by an actor the requesting account subscribes to.';
33450
+ readonly required: ["actor", "post"];
33451
+ readonly properties: {
33452
+ readonly actor: {
33453
+ readonly type: 'string';
33454
+ readonly format: 'did';
33455
+ };
33456
+ readonly post: {
33457
+ readonly type: 'string';
33458
+ readonly format: 'at-uri';
33459
+ };
33460
+ };
33461
+ };
33462
+ readonly generatorLikeGroup: {
33463
+ readonly type: 'object';
33464
+ readonly description: 'Group of likes by different actors on the same feed generator.';
33465
+ readonly required: ["generator", "items"];
33466
+ readonly properties: {
33467
+ readonly generator: {
33468
+ readonly type: 'string';
33469
+ readonly format: 'at-uri';
33470
+ };
33471
+ readonly items: {
33472
+ readonly type: 'array';
33473
+ readonly minLength: 1;
33474
+ readonly items: {
33475
+ readonly type: 'ref';
33476
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#generatorLikeItem';
33477
+ };
33478
+ };
33479
+ };
33480
+ };
33481
+ readonly generatorLikeItem: {
33482
+ readonly type: 'object';
33483
+ readonly description: 'One actor who liked the feed generator in the group.';
33484
+ readonly required: ["actor"];
33485
+ readonly properties: {
33486
+ readonly actor: {
33487
+ readonly type: 'string';
33488
+ readonly format: 'did';
33489
+ };
33490
+ };
33491
+ };
33492
+ readonly replyNotification: {
33493
+ readonly type: 'object';
33494
+ readonly description: 'A reply to a post by the requesting account or to a thread they are participating in.';
33495
+ readonly required: ["post", "parent"];
33496
+ readonly properties: {
33497
+ readonly post: {
33498
+ readonly type: 'string';
33499
+ readonly format: 'at-uri';
33500
+ };
33501
+ readonly parent: {
33502
+ readonly type: 'string';
33503
+ readonly format: 'at-uri';
33504
+ };
33505
+ };
33506
+ };
33507
+ readonly quoteNotification: {
33508
+ readonly type: 'object';
33509
+ readonly description: 'A post quoting a post by the requesting account.';
33510
+ readonly required: ["post"];
33511
+ readonly properties: {
33512
+ readonly post: {
33513
+ readonly type: 'string';
33514
+ readonly format: 'at-uri';
33515
+ };
33516
+ readonly parent: {
33517
+ readonly type: 'string';
33518
+ readonly format: 'at-uri';
33519
+ };
33520
+ };
33521
+ };
33522
+ readonly mentionNotification: {
33523
+ readonly type: 'object';
33524
+ readonly description: 'A post mentioning the requesting account.';
33525
+ readonly required: ["post"];
33526
+ readonly properties: {
33527
+ readonly post: {
33528
+ readonly type: 'string';
33529
+ readonly format: 'at-uri';
33530
+ };
33531
+ readonly parent: {
33532
+ readonly type: 'string';
33533
+ readonly format: 'at-uri';
33534
+ };
33535
+ };
33536
+ };
33537
+ readonly followBackNotification: {
33538
+ readonly type: 'object';
33539
+ readonly description: 'An actor followed the requesting account back, possibly via a starter pack.';
33540
+ readonly required: ["actor"];
33541
+ readonly properties: {
33542
+ readonly actor: {
33543
+ readonly type: 'string';
33544
+ readonly format: 'did';
33545
+ };
33546
+ readonly starterPack: {
33547
+ readonly type: 'string';
33548
+ readonly format: 'at-uri';
33549
+ };
33550
+ };
33551
+ };
33552
+ readonly verifiedNotification: {
33553
+ readonly type: 'object';
33554
+ readonly description: 'An actor verified the requesting account.';
33555
+ readonly required: ["actor"];
33556
+ readonly properties: {
33557
+ readonly actor: {
33558
+ readonly type: 'string';
33559
+ readonly format: 'did';
33560
+ };
33561
+ };
33562
+ };
33563
+ readonly unverifiedNotification: {
33564
+ readonly type: 'object';
33565
+ readonly description: 'A verification of the requesting account was removed.';
33566
+ readonly required: ["actor"];
33567
+ readonly properties: {
33568
+ readonly actor: {
33569
+ readonly type: 'string';
33570
+ readonly format: 'did';
33571
+ };
33572
+ };
33573
+ };
33574
+ readonly starterPackJoinedNotification: {
33575
+ readonly type: 'object';
33576
+ readonly description: 'An actor joined Bluesky via a starter pack created by the requesting account.';
33577
+ readonly required: ["actor", "starterPack"];
33578
+ readonly properties: {
33579
+ readonly actor: {
33580
+ readonly type: 'string';
33581
+ readonly format: 'did';
33582
+ };
33583
+ readonly starterPack: {
33584
+ readonly type: 'string';
33585
+ readonly format: 'at-uri';
33586
+ };
33587
+ };
33588
+ };
33589
+ readonly contactMatchNotification: {
33590
+ readonly type: 'object';
33591
+ readonly description: 'A contact of the requesting account joined Bluesky.';
33592
+ readonly required: ["actor"];
33593
+ readonly properties: {
33594
+ readonly actor: {
33595
+ readonly type: 'string';
33596
+ readonly format: 'did';
33597
+ };
33598
+ };
33599
+ };
33600
+ };
32307
33601
  } | {
32308
33602
  readonly lexicon: 1;
32309
33603
  readonly id: 'app.bsky.notification.getPreferences';
@@ -43748,6 +45042,241 @@ export declare const schemas: ({
43748
45042
  };
43749
45043
  };
43750
45044
  };
45045
+ } | {
45046
+ readonly lexicon: 1;
45047
+ readonly id: 'tools.ozone.inbox.appealActionedSubject';
45048
+ readonly defs: {
45049
+ readonly main: {
45050
+ readonly type: 'procedure';
45051
+ readonly description: "Appeal a moderation action affecting the user's account or content.";
45052
+ readonly input: {
45053
+ readonly encoding: 'application/json';
45054
+ readonly schema: {
45055
+ readonly type: 'object';
45056
+ readonly required: ["subject"];
45057
+ readonly properties: {
45058
+ readonly action: {
45059
+ readonly type: 'union';
45060
+ readonly refs: ["lex:tools.ozone.inbox.appealActionedSubject#actionRef", "lex:tools.ozone.inbox.appealActionedSubject#labelRef", "lex:tools.ozone.inbox.appealActionedSubject#takedownRef"];
45061
+ readonly closed: true;
45062
+ readonly description: 'Moderation action being appealed.';
45063
+ };
45064
+ readonly subject: {
45065
+ readonly type: 'union';
45066
+ readonly refs: ["lex:com.atproto.admin.defs#repoRef", "lex:com.atproto.repo.strongRef"];
45067
+ readonly description: 'Subject being appealed.';
45068
+ };
45069
+ readonly reason: {
45070
+ readonly type: 'string';
45071
+ readonly maxGraphemes: 2000;
45072
+ readonly maxLength: 20000;
45073
+ readonly description: 'Optional explanation supplied by the user.';
45074
+ };
45075
+ readonly modTool: {
45076
+ readonly type: 'ref';
45077
+ readonly ref: 'lex:com.atproto.moderation.createReport#modTool';
45078
+ };
45079
+ };
45080
+ };
45081
+ };
45082
+ readonly output: {
45083
+ readonly encoding: 'application/json';
45084
+ readonly schema: {
45085
+ readonly type: 'ref';
45086
+ readonly ref: 'lex:tools.ozone.inbox.defs#subjectView';
45087
+ };
45088
+ };
45089
+ readonly errors: [{
45090
+ readonly name: 'InvalidAppealSubject';
45091
+ readonly description: 'Invalid appeal subject input.';
45092
+ }, {
45093
+ readonly name: 'AlreadyAppealed';
45094
+ readonly description: 'An active appeal already exists for this action.';
45095
+ }, {
45096
+ readonly name: 'NotAppealable';
45097
+ readonly description: 'The subject cannot be appealed.';
45098
+ }, {
45099
+ readonly name: 'AppealWindowExpired';
45100
+ readonly description: 'The appeal window for this action has closed.';
45101
+ }];
45102
+ };
45103
+ readonly actionRef: {
45104
+ readonly type: 'object';
45105
+ readonly required: ["id"];
45106
+ readonly properties: {
45107
+ readonly id: {
45108
+ readonly type: 'integer';
45109
+ readonly minimum: 1;
45110
+ readonly description: 'ID of the moderation action being appealed, available via actions in mod inbox.';
45111
+ };
45112
+ };
45113
+ };
45114
+ readonly labelRef: {
45115
+ readonly type: 'object';
45116
+ readonly required: ["val"];
45117
+ readonly properties: {
45118
+ readonly val: {
45119
+ readonly type: 'string';
45120
+ readonly minLength: 1;
45121
+ readonly description: 'Label being appealed.';
45122
+ };
45123
+ };
45124
+ };
45125
+ readonly takedownRef: {
45126
+ readonly type: 'object';
45127
+ readonly properties: {};
45128
+ };
45129
+ };
45130
+ } | {
45131
+ readonly lexicon: 1;
45132
+ readonly id: 'tools.ozone.inbox.defs';
45133
+ readonly defs: {
45134
+ readonly subjectView: {
45135
+ readonly type: 'object';
45136
+ readonly description: 'A subject belonging to the viewer that has moderation actions against it.';
45137
+ readonly required: ["src", "subject", "enforcement", "createdAt", "updatedAt"];
45138
+ readonly properties: {
45139
+ readonly src: {
45140
+ readonly type: 'string';
45141
+ readonly format: 'did';
45142
+ readonly description: 'DID of the moderation service that took the actions.';
45143
+ };
45144
+ readonly subject: {
45145
+ readonly type: 'union';
45146
+ readonly refs: ["lex:com.atproto.admin.defs#repoRef", "lex:com.atproto.repo.strongRef"];
45147
+ };
45148
+ readonly enforcement: {
45149
+ readonly type: 'ref';
45150
+ readonly ref: 'lex:tools.ozone.inbox.defs#enforcementView';
45151
+ };
45152
+ readonly appeal: {
45153
+ readonly type: 'ref';
45154
+ readonly ref: 'lex:tools.ozone.inbox.defs#appealView';
45155
+ };
45156
+ readonly availableActions: {
45157
+ readonly type: 'array';
45158
+ readonly items: {
45159
+ readonly type: 'string';
45160
+ readonly knownValues: ["appeal"];
45161
+ };
45162
+ };
45163
+ readonly latestAction: {
45164
+ readonly type: 'ref';
45165
+ readonly ref: 'lex:tools.ozone.inbox.defs#actionView';
45166
+ };
45167
+ readonly actionCount: {
45168
+ readonly type: 'integer';
45169
+ };
45170
+ readonly createdAt: {
45171
+ readonly type: 'string';
45172
+ readonly format: 'datetime';
45173
+ };
45174
+ readonly updatedAt: {
45175
+ readonly type: 'string';
45176
+ readonly format: 'datetime';
45177
+ };
45178
+ };
45179
+ };
45180
+ readonly enforcementView: {
45181
+ readonly type: 'object';
45182
+ readonly description: 'The current enforcement state of a subject.';
45183
+ readonly required: ["state"];
45184
+ readonly properties: {
45185
+ readonly state: {
45186
+ readonly type: 'string';
45187
+ readonly knownValues: ["none", "labeled", "removed", "suspended", "takendown"];
45188
+ };
45189
+ readonly scope: {
45190
+ readonly type: 'string';
45191
+ readonly knownValues: ["network", "app", "labelOnly"];
45192
+ };
45193
+ readonly expiresAt: {
45194
+ readonly type: 'string';
45195
+ readonly format: 'datetime';
45196
+ };
45197
+ readonly labels: {
45198
+ readonly type: 'array';
45199
+ readonly items: {
45200
+ readonly type: 'string';
45201
+ };
45202
+ readonly description: 'Active label values on the subject, excluding negated and expired labels.';
45203
+ };
45204
+ };
45205
+ };
45206
+ readonly appealView: {
45207
+ readonly type: 'object';
45208
+ readonly description: "The state of the viewer's appeal against the actions on a subject.";
45209
+ readonly required: ["state"];
45210
+ readonly properties: {
45211
+ readonly state: {
45212
+ readonly type: 'string';
45213
+ readonly knownValues: ["none", "pending", "resolved", "superseded", "expired"];
45214
+ };
45215
+ readonly appealedAt: {
45216
+ readonly type: 'string';
45217
+ readonly format: 'datetime';
45218
+ };
45219
+ readonly resolvedAt: {
45220
+ readonly type: 'string';
45221
+ readonly format: 'datetime';
45222
+ readonly description: "When the appeal's report was closed.";
45223
+ };
45224
+ readonly note: {
45225
+ readonly type: 'string';
45226
+ readonly description: 'Moderator explanation, from the publicNote on the closing activity. Absent if none was written.';
45227
+ };
45228
+ readonly appealableUntil: {
45229
+ readonly type: 'string';
45230
+ readonly format: 'datetime';
45231
+ };
45232
+ };
45233
+ };
45234
+ readonly actionView: {
45235
+ readonly type: 'object';
45236
+ readonly description: 'A single moderation action taken against a subject.';
45237
+ readonly required: ["id", "type", "createdAt"];
45238
+ readonly properties: {
45239
+ readonly id: {
45240
+ readonly type: 'integer';
45241
+ readonly description: 'Action ID (moderation event ID).';
45242
+ };
45243
+ readonly type: {
45244
+ readonly type: 'string';
45245
+ readonly description: 'Public action type.';
45246
+ };
45247
+ readonly scope: {
45248
+ readonly type: 'string';
45249
+ readonly knownValues: ["network", "app", "labelOnly"];
45250
+ };
45251
+ readonly createdAt: {
45252
+ readonly type: 'string';
45253
+ readonly format: 'datetime';
45254
+ };
45255
+ readonly reversedAt: {
45256
+ readonly type: 'string';
45257
+ readonly format: 'datetime';
45258
+ };
45259
+ readonly expiresAt: {
45260
+ readonly type: 'string';
45261
+ readonly format: 'datetime';
45262
+ };
45263
+ readonly labels: {
45264
+ readonly type: 'array';
45265
+ readonly items: {
45266
+ readonly type: 'string';
45267
+ };
45268
+ readonly description: 'Label values, for labelApplied/labelRemoved.';
45269
+ };
45270
+ readonly policies: {
45271
+ readonly type: 'array';
45272
+ readonly items: {
45273
+ readonly type: 'string';
45274
+ };
45275
+ readonly description: 'Policies that were applied in this action.';
45276
+ };
45277
+ };
45278
+ };
45279
+ };
43751
45280
  } | {
43752
45281
  readonly lexicon: 1;
43753
45282
  readonly id: 'tools.ozone.moderation.cancelScheduledActions';
@@ -46340,6 +47869,13 @@ export declare const schemas: ({
46340
47869
  };
46341
47870
  readonly description: 'Policy keys to recommend when actioning reports in this queue';
46342
47871
  };
47872
+ readonly recommendedLabels: {
47873
+ readonly type: 'array';
47874
+ readonly items: {
47875
+ readonly type: 'string';
47876
+ };
47877
+ readonly description: 'Labels to recommend for this queue and use as fallback appeal routing mappings';
47878
+ };
46343
47879
  };
46344
47880
  };
46345
47881
  };
@@ -46412,6 +47948,13 @@ export declare const schemas: ({
46412
47948
  };
46413
47949
  readonly description: 'Policy keys recommended when actioning reports in this queue';
46414
47950
  };
47951
+ readonly recommendedLabels: {
47952
+ readonly type: 'array';
47953
+ readonly items: {
47954
+ readonly type: 'string';
47955
+ };
47956
+ readonly description: 'Labels recommended for this queue and used as a fallback when routing label appeals';
47957
+ };
46415
47958
  readonly createdBy: {
46416
47959
  readonly type: 'string';
46417
47960
  readonly format: 'did';
@@ -46787,6 +48330,13 @@ export declare const schemas: ({
46787
48330
  };
46788
48331
  readonly description: 'Policy keys to recommend when actioning reports in this queue';
46789
48332
  };
48333
+ readonly recommendedLabels: {
48334
+ readonly type: 'array';
48335
+ readonly items: {
48336
+ readonly type: 'string';
48337
+ };
48338
+ readonly description: 'Labels to recommend for this queue and use as fallback appeal routing mappings';
48339
+ };
46790
48340
  };
46791
48341
  };
46792
48342
  };
@@ -46806,6 +48356,9 @@ export declare const schemas: ({
46806
48356
  readonly errors: [{
46807
48357
  readonly name: 'InvalidRecommendedPolicies';
46808
48358
  readonly description: 'One or more recommended policy keys do not exist in the configured policy list';
48359
+ }, {
48360
+ readonly name: 'ConflictingQueue';
48361
+ readonly description: 'The queue configuration conflicts with an existing queue';
46809
48362
  }];
46810
48363
  };
46811
48364
  };
@@ -47235,7 +48788,7 @@ export declare const schemas: ({
47235
48788
  readonly items: {
47236
48789
  readonly type: 'integer';
47237
48790
  };
47238
- readonly description: 'Array of moderation event IDs representing actions taken on this report (sorted DESC, most recent first)';
48791
+ readonly description: 'Array of moderation event IDs representing actions taken on this report, in append order (most recently linked event last)';
47239
48792
  };
47240
48793
  readonly actions: {
47241
48794
  readonly type: 'array';
@@ -47403,25 +48956,65 @@ export declare const schemas: ({
47403
48956
  readonly type: 'integer';
47404
48957
  readonly description: 'Number of reports currently not closed.';
47405
48958
  };
48959
+ readonly closedCount: {
48960
+ readonly type: 'integer';
48961
+ readonly description: 'Number of close transitions.';
48962
+ };
47406
48963
  readonly actionedCount: {
47407
48964
  readonly type: 'integer';
47408
- readonly description: 'Number of reports closed today.';
48965
+ readonly description: 'Number of closures whose last report action is label, tag, or takedown.';
48966
+ };
48967
+ readonly acknowledgedCount: {
48968
+ readonly type: 'integer';
48969
+ readonly description: 'Number of closures whose last report action is not label, tag, or takedown.';
47409
48970
  };
47410
48971
  readonly escalatedCount: {
47411
48972
  readonly type: 'integer';
47412
- readonly description: 'Number of reports escalated today.';
48973
+ readonly description: 'Number of reports escalated.';
47413
48974
  };
47414
48975
  readonly inboundCount: {
47415
48976
  readonly type: 'integer';
47416
- readonly description: 'Reports received today.';
48977
+ readonly description: 'Reports received.';
48978
+ };
48979
+ readonly labelActionCount: {
48980
+ readonly type: 'integer';
48981
+ readonly description: 'Closures whose last report action is a label event.';
48982
+ };
48983
+ readonly tagActionCount: {
48984
+ readonly type: 'integer';
48985
+ readonly description: 'Closures whose last report action is a tag event.';
48986
+ };
48987
+ readonly takedownActionCount: {
48988
+ readonly type: 'integer';
48989
+ readonly description: 'Closures whose last report action is a takedown event.';
48990
+ };
48991
+ readonly ahtDurationSec: {
48992
+ readonly type: 'integer';
48993
+ readonly description: 'Sum of report assignment-to-close seconds.';
48994
+ };
48995
+ readonly ahtSampleCount: {
48996
+ readonly type: 'integer';
48997
+ readonly description: 'Number of assigned closed-report samples in ahtDurationSec.';
48998
+ };
48999
+ readonly resolutionDurationSec: {
49000
+ readonly type: 'integer';
49001
+ readonly description: 'Sum of report creation-to-close seconds.';
49002
+ };
49003
+ readonly resolutionSampleCount: {
49004
+ readonly type: 'integer';
49005
+ readonly description: 'Number of closed-report samples in resolutionDurationSec.';
47417
49006
  };
47418
49007
  readonly actionRate: {
47419
49008
  readonly type: 'integer';
47420
- readonly description: 'Percentage of reports actioned (actionedCount / inboundCount * 100), rounded to nearest integer.';
49009
+ readonly description: 'Percentage of closures actioned (actionedCount / closedCount * 100), rounded to nearest integer.';
47421
49010
  };
47422
49011
  readonly avgHandlingTimeSec: {
47423
49012
  readonly type: 'integer';
47424
- readonly description: 'Average time in seconds from report creation (or moderator assignment) to close.';
49013
+ readonly description: 'Average handling time in seconds from report assignment to close.';
49014
+ };
49015
+ readonly avgResolutionTimeSec: {
49016
+ readonly type: 'integer';
49017
+ readonly description: 'Average resolution time in seconds from report creation to close.';
47425
49018
  };
47426
49019
  readonly lastUpdated: {
47427
49020
  readonly type: 'string';
@@ -47448,9 +49041,17 @@ export declare const schemas: ({
47448
49041
  readonly type: 'integer';
47449
49042
  readonly description: 'Number of reports not closed at time of computation.';
47450
49043
  };
49044
+ readonly closedCount: {
49045
+ readonly type: 'integer';
49046
+ readonly description: 'Number of close transitions during this day.';
49047
+ };
47451
49048
  readonly actionedCount: {
47452
49049
  readonly type: 'integer';
47453
- readonly description: 'Number of reports closed during this day.';
49050
+ readonly description: 'Number of closures whose last report action is label, tag, or takedown during this day.';
49051
+ };
49052
+ readonly acknowledgedCount: {
49053
+ readonly type: 'integer';
49054
+ readonly description: 'Number of closures whose last report action is not label, tag, or takedown during this day.';
47454
49055
  };
47455
49056
  readonly escalatedCount: {
47456
49057
  readonly type: 'integer';
@@ -47460,13 +49061,45 @@ export declare const schemas: ({
47460
49061
  readonly type: 'integer';
47461
49062
  readonly description: 'Reports received during this day.';
47462
49063
  };
49064
+ readonly labelActionCount: {
49065
+ readonly type: 'integer';
49066
+ readonly description: 'Closures whose last report action is a label event during this day.';
49067
+ };
49068
+ readonly tagActionCount: {
49069
+ readonly type: 'integer';
49070
+ readonly description: 'Closures whose last report action is a tag event during this day.';
49071
+ };
49072
+ readonly takedownActionCount: {
49073
+ readonly type: 'integer';
49074
+ readonly description: 'Closures whose last report action is a takedown event during this day.';
49075
+ };
49076
+ readonly ahtDurationSec: {
49077
+ readonly type: 'integer';
49078
+ readonly description: "Sum of report assignment-to-close seconds for this day's samples.";
49079
+ };
49080
+ readonly ahtSampleCount: {
49081
+ readonly type: 'integer';
49082
+ readonly description: 'Number of assigned closed-report samples in ahtDurationSec.';
49083
+ };
49084
+ readonly resolutionDurationSec: {
49085
+ readonly type: 'integer';
49086
+ readonly description: "Sum of report creation-to-close seconds for this day's samples.";
49087
+ };
49088
+ readonly resolutionSampleCount: {
49089
+ readonly type: 'integer';
49090
+ readonly description: 'Number of closed-report samples in resolutionDurationSec.';
49091
+ };
47463
49092
  readonly actionRate: {
47464
49093
  readonly type: 'integer';
47465
- readonly description: 'Percentage of reports actioned (actionedCount / inboundCount * 100), rounded to nearest integer.';
49094
+ readonly description: 'Percentage of closures actioned (actionedCount / closedCount * 100), rounded to nearest integer.';
47466
49095
  };
47467
49096
  readonly avgHandlingTimeSec: {
47468
49097
  readonly type: 'integer';
47469
- readonly description: 'Average time in seconds from report creation (or moderator assignment) to close.';
49098
+ readonly description: 'Average handling time in seconds from report assignment to close.';
49099
+ };
49100
+ readonly avgResolutionTimeSec: {
49101
+ readonly type: 'integer';
49102
+ readonly description: 'Average resolution time in seconds from report creation to close.';
47470
49103
  };
47471
49104
  };
47472
49105
  };
@@ -47674,7 +49307,7 @@ export declare const schemas: ({
47674
49307
  readonly defs: {
47675
49308
  readonly main: {
47676
49309
  readonly type: 'query';
47677
- readonly description: 'Get live report statistics from the past 24 hours. Filter by queue, moderator, or report type. Omit all parameters for aggregate stats.';
49310
+ readonly description: 'Get live report statistics for the current UTC calendar day. Filter by queue, moderator, or report type. Omit all parameters for aggregate stats.';
47678
49311
  readonly parameters: {
47679
49312
  readonly type: 'params';
47680
49313
  readonly properties: {
@@ -48032,7 +49665,7 @@ export declare const schemas: ({
48032
49665
  readonly defs: {
48033
49666
  readonly main: {
48034
49667
  readonly type: 'procedure';
48035
- readonly description: 'Recompute report statistics for a date range. Useful for backfilling after failures or data corrections.';
49668
+ readonly description: 'Recompute report statistics for a date range.';
48036
49669
  readonly input: {
48037
49670
  readonly encoding: 'application/json';
48038
49671
  readonly schema: {
@@ -49859,6 +51492,7 @@ export declare const ids: {
49859
51492
  readonly AppBskyLabelerService: 'app.bsky.labeler.service';
49860
51493
  readonly AppBskyNotificationDeclaration: 'app.bsky.notification.declaration';
49861
51494
  readonly AppBskyNotificationDefs: 'app.bsky.notification.defs';
51495
+ readonly AppBskyNotificationGetGroupedNotifications: 'app.bsky.notification.getGroupedNotifications';
49862
51496
  readonly AppBskyNotificationGetPreferences: 'app.bsky.notification.getPreferences';
49863
51497
  readonly AppBskyNotificationGetUnreadCount: 'app.bsky.notification.getUnreadCount';
49864
51498
  readonly AppBskyNotificationListActivitySubscriptions: 'app.bsky.notification.listActivitySubscriptions';
@@ -50069,6 +51703,8 @@ export declare const ids: {
50069
51703
  readonly ToolsOzoneCommunicationListTemplates: 'tools.ozone.communication.listTemplates';
50070
51704
  readonly ToolsOzoneCommunicationUpdateTemplate: 'tools.ozone.communication.updateTemplate';
50071
51705
  readonly ToolsOzoneHostingGetAccountHistory: 'tools.ozone.hosting.getAccountHistory';
51706
+ readonly ToolsOzoneInboxAppealActionedSubject: 'tools.ozone.inbox.appealActionedSubject';
51707
+ readonly ToolsOzoneInboxDefs: 'tools.ozone.inbox.defs';
50072
51708
  readonly ToolsOzoneModerationCancelScheduledActions: 'tools.ozone.moderation.cancelScheduledActions';
50073
51709
  readonly ToolsOzoneModerationDefs: 'tools.ozone.moderation.defs';
50074
51710
  readonly ToolsOzoneModerationEmitEvent: 'tools.ozone.moderation.emitEvent';