@atproto/api 0.31.0 → 0.31.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atproto/api
2
2
 
3
+ ## 0.31.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#5853](https://github.com/bluesky-social/atproto/pull/5853) [`57b7a37`](https://github.com/bluesky-social/atproto/commit/57b7a375f571bf7f42709f93f98d3f9bd000fb6d) Thanks [@blackmichael](https://github.com/blackmichael)! - Add optional hydrated viewBskyPost values alongside existing bskyPostRef fields on Atmosphere timeline activities and Explore articles and livestreams. Reuse post hydration and viewer visibility checks, preserving references and external content when posts are unavailable. Refresh consuming contract inputs.
8
+
9
+ Keep Explore and the Atmosphere timeline available when optional post hydration fails, omitting incomplete post views while retaining external content and references. Preserve request cancellation and failures for required timeline root posts.
10
+
11
+ - [#5871](https://github.com/bluesky-social/atproto/pull/5871) [`4ca55db`](https://github.com/bluesky-social/atproto/commit/4ca55dbc6d9e04d721fc14abffb73ce33158e002) Thanks [@blackmichael](https://github.com/blackmichael)! - Rework Atmosphere timeline groups: replace overflow with complete group item URIs and hydrate only the newest actor-group item. Keep subject groups to one collection and multiple actors, and return article creations as standalone items with collection-specific related activity references and actor profiles.
12
+
13
+ Require complete actor lists for subject groups and related-activity buckets, preserving the existing record fallbacks when profiles are unavailable.
14
+
3
15
  ## 0.31.0
4
16
 
5
17
  ### Minor Changes
@@ -9445,6 +9445,11 @@ export declare const schemaDict: {
9445
9445
  readonly ref: 'lex:com.atproto.repo.strongRef';
9446
9446
  readonly description: 'The Bluesky post associated with the article, as declared by its author. The referenced post may not be available.';
9447
9447
  };
9448
+ readonly viewBskyPost: {
9449
+ readonly type: 'ref';
9450
+ readonly ref: 'lex:app.bsky.feed.defs#postView';
9451
+ readonly description: 'The hydrated Bluesky post associated with the article, as declared by its author. Omitted when the post is unavailable to the viewer.';
9452
+ };
9448
9453
  readonly view: {
9449
9454
  readonly type: 'ref';
9450
9455
  readonly ref: 'lex:app.bsky.embed.external#viewArticle';
@@ -9492,6 +9497,11 @@ export declare const schemaDict: {
9492
9497
  readonly ref: 'lex:com.atproto.repo.strongRef';
9493
9498
  readonly description: 'The Bluesky post that announced the livestream, as declared by its author. The referenced post may not be available.';
9494
9499
  };
9500
+ readonly viewBskyPost: {
9501
+ readonly type: 'ref';
9502
+ readonly ref: 'lex:app.bsky.feed.defs#postView';
9503
+ readonly description: 'The hydrated Bluesky post that announced the livestream, as declared by its author. Omitted when the post is unavailable to the viewer.';
9504
+ };
9495
9505
  readonly view: {
9496
9506
  readonly type: 'ref';
9497
9507
  readonly ref: 'lex:app.bsky.embed.external#viewLivestream';
@@ -9594,7 +9604,7 @@ export declare const schemaDict: {
9594
9604
  readonly defs: {
9595
9605
  readonly main: {
9596
9606
  readonly type: 'query';
9597
- readonly description: "Get the authenticated viewer's Atmosphere activity timeline. Grouping and related activity are limited to the returned page.";
9607
+ readonly description: "Get the authenticated viewer's Atmosphere activity timeline. Groups contain visible activities from the returned page.";
9598
9608
  readonly parameters: {
9599
9609
  readonly type: 'params';
9600
9610
  readonly properties: {
@@ -9616,7 +9626,7 @@ export declare const schemaDict: {
9616
9626
  readonly type: 'array';
9617
9627
  readonly items: {
9618
9628
  readonly type: 'union';
9619
- readonly refs: ["lex:app.bsky.unspecced.getAtmosphereTimeline#activityItem", "lex:app.bsky.unspecced.getAtmosphereTimeline#activityItemOverflow", "lex:app.bsky.unspecced.getAtmosphereTimeline#activityGroup"];
9629
+ readonly refs: ["lex:app.bsky.unspecced.getAtmosphereTimeline#activityItem", "lex:app.bsky.unspecced.getAtmosphereTimeline#activityActorGroup", "lex:app.bsky.unspecced.getAtmosphereTimeline#activitySubjectGroup"];
9620
9630
  };
9621
9631
  };
9622
9632
  };
@@ -9666,40 +9676,131 @@ export declare const schemaDict: {
9666
9676
  readonly type: 'ref';
9667
9677
  readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#viewerState';
9668
9678
  };
9679
+ readonly relatedActivity: {
9680
+ readonly type: 'array';
9681
+ readonly description: "Collection-specific activity references targeting this item's record. Article creations with related activity remain standalone; only the parent item's view is hydrated.";
9682
+ readonly items: {
9683
+ readonly type: 'ref';
9684
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#activityRelatedGroup';
9685
+ };
9686
+ };
9669
9687
  readonly bskyPostRef: {
9670
9688
  readonly type: 'ref';
9671
9689
  readonly ref: 'lex:com.atproto.repo.strongRef';
9672
9690
  readonly description: 'The Bluesky post associated with the rendered article or livestream, as declared by its author. The referenced post may not be available.';
9673
9691
  };
9692
+ readonly viewBskyPost: {
9693
+ readonly type: 'ref';
9694
+ readonly ref: 'lex:app.bsky.feed.defs#postView';
9695
+ readonly description: 'The hydrated Bluesky post associated with the rendered article or livestream, as declared by its author. Omitted when the post is unavailable to the viewer.';
9696
+ };
9674
9697
  readonly view: {
9675
9698
  readonly type: 'union';
9676
9699
  readonly refs: ["lex:app.bsky.embed.external#viewArticle", "lex:app.bsky.embed.external#viewArticlePublication", "lex:app.bsky.embed.external#viewGallery", "lex:app.bsky.embed.external#viewLivestream", "lex:app.bsky.feed.defs#postView"];
9677
9700
  };
9678
- readonly relatedActivity: {
9701
+ };
9702
+ };
9703
+ readonly activityActorGroup: {
9704
+ readonly type: 'object';
9705
+ readonly description: 'Activities by one actor in one collection, positioned at the newest group item. Only the newest item is hydrated. Article creations with related activity remain standalone.';
9706
+ readonly required: ["id", "collection", "indexedAt", "actor", "item", "uris"];
9707
+ readonly properties: {
9708
+ readonly id: {
9709
+ readonly type: 'string';
9710
+ };
9711
+ readonly collection: {
9712
+ readonly type: 'string';
9713
+ readonly format: 'nsid';
9714
+ };
9715
+ readonly indexedAt: {
9716
+ readonly type: 'string';
9717
+ readonly format: 'datetime';
9718
+ };
9719
+ readonly actor: {
9720
+ readonly type: 'string';
9721
+ readonly format: 'did';
9722
+ };
9723
+ readonly item: {
9724
+ readonly type: 'ref';
9725
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#activityItem';
9726
+ };
9727
+ readonly uris: {
9679
9728
  readonly type: 'array';
9680
- readonly description: 'Recommendations and shares attached to this article. Attached activities do not themselves contain related activity.';
9729
+ readonly description: 'All visible group item URIs, including the hydrated item, in newest-first timeline order.';
9730
+ readonly minLength: 2;
9681
9731
  readonly items: {
9682
- readonly type: 'ref';
9683
- readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#activityItem';
9732
+ readonly type: 'string';
9733
+ readonly format: 'at-uri';
9684
9734
  };
9685
9735
  };
9686
9736
  };
9687
9737
  };
9688
- readonly activityItemOverflow: {
9738
+ readonly activitySubject: {
9689
9739
  readonly type: 'object';
9690
- readonly description: 'Distinct additional activities omitted from this page for an author and collection, without hydrating the omitted records.';
9691
- readonly required: ["count", "collection", "associatedProfiles"];
9740
+ readonly description: 'The shared target of grouped activities, not an activity itself.';
9741
+ readonly required: ["uri", "viewerState", "view"];
9692
9742
  readonly properties: {
9693
- readonly count: {
9694
- readonly type: 'integer';
9695
- readonly minimum: 1;
9743
+ readonly uri: {
9744
+ readonly type: 'string';
9745
+ readonly format: 'at-uri';
9746
+ };
9747
+ readonly viewerState: {
9748
+ readonly type: 'ref';
9749
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#viewerState';
9750
+ };
9751
+ readonly bskyPostRef: {
9752
+ readonly type: 'ref';
9753
+ readonly ref: 'lex:com.atproto.repo.strongRef';
9754
+ readonly description: "The author's declared Bluesky post for the target. The post may be unavailable.";
9755
+ };
9756
+ readonly viewBskyPost: {
9757
+ readonly type: 'ref';
9758
+ readonly ref: 'lex:app.bsky.feed.defs#postView';
9759
+ readonly description: "The hydrated Bluesky post declared by the target's author. Omitted when the post is unavailable to the viewer.";
9760
+ };
9761
+ readonly view: {
9762
+ readonly type: 'union';
9763
+ readonly refs: ["lex:app.bsky.embed.external#viewArticle", "lex:app.bsky.embed.external#viewArticlePublication", "lex:app.bsky.embed.external#viewGallery"];
9764
+ };
9765
+ };
9766
+ };
9767
+ readonly activityGroupItem: {
9768
+ readonly type: 'object';
9769
+ readonly description: 'An unhydrated group item. Its actor DID is the authority of its record URI.';
9770
+ readonly required: ["record", "collection"];
9771
+ readonly properties: {
9772
+ readonly record: {
9773
+ readonly type: 'ref';
9774
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#activityRecord';
9696
9775
  };
9697
9776
  readonly collection: {
9698
9777
  readonly type: 'string';
9699
9778
  readonly format: 'nsid';
9700
9779
  };
9701
- readonly associatedProfiles: {
9780
+ };
9781
+ };
9782
+ readonly activityRelatedGroup: {
9783
+ readonly type: 'object';
9784
+ readonly description: "Visible activities in one collection targeting the parent item's record, without a time window. Contains references and profiles only, not a shared subject or hydrated action views. Buckets follow newest-first first appearance.";
9785
+ readonly required: ["collection", "activities", "actors"];
9786
+ readonly properties: {
9787
+ readonly collection: {
9788
+ readonly type: 'string';
9789
+ readonly format: 'nsid';
9790
+ };
9791
+ readonly activities: {
9792
+ readonly type: 'array';
9793
+ readonly description: "Visible activity references in newest-first timeline order. Every activity has the bucket's collection.";
9794
+ readonly minLength: 1;
9795
+ readonly items: {
9796
+ readonly type: 'ref';
9797
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#activityGroupItem';
9798
+ };
9799
+ };
9800
+ readonly actors: {
9702
9801
  readonly type: 'array';
9802
+ readonly description: "Unique actors in first-appearance order among the bucket's activities.";
9803
+ readonly minLength: 1;
9703
9804
  readonly items: {
9704
9805
  readonly type: 'ref';
9705
9806
  readonly ref: 'lex:app.bsky.actor.defs#profileViewBasic';
@@ -9707,18 +9808,14 @@ export declare const schemaDict: {
9707
9808
  };
9708
9809
  };
9709
9810
  };
9710
- readonly activityGroup: {
9811
+ readonly activitySubjectGroup: {
9711
9812
  readonly type: 'object';
9712
- readonly description: "Two or more activities of the same collection, within a fixed window anchored at the newest member. The group occupies the newest member's position.";
9713
- readonly required: ["id", "groupBy", "collection", "indexedAt", "items"];
9813
+ readonly description: 'Activities in one collection sharing a target, by at least two distinct actors, positioned at the newest group item. Article recommendations and shares group separately across the returned page without a time window. Article creations are not subject-group items. Publication subscriptions and gallery favorites retain age-based grouping windows.';
9814
+ readonly required: ["id", "collection", "indexedAt", "subject", "activities", "actors"];
9714
9815
  readonly properties: {
9715
9816
  readonly id: {
9716
9817
  readonly type: 'string';
9717
9818
  };
9718
- readonly groupBy: {
9719
- readonly type: 'string';
9720
- readonly knownValues: ["subject", "actor"];
9721
- };
9722
9819
  readonly collection: {
9723
9820
  readonly type: 'string';
9724
9821
  readonly format: 'nsid';
@@ -9727,21 +9824,27 @@ export declare const schemaDict: {
9727
9824
  readonly type: 'string';
9728
9825
  readonly format: 'datetime';
9729
9826
  };
9730
- readonly items: {
9827
+ readonly subject: {
9828
+ readonly type: 'ref';
9829
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#activitySubject';
9830
+ };
9831
+ readonly activities: {
9731
9832
  readonly type: 'array';
9833
+ readonly description: "Visible group items in newest-first timeline order. Every activity has the group's collection.";
9732
9834
  readonly minLength: 2;
9733
9835
  readonly items: {
9734
9836
  readonly type: 'ref';
9735
- readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#activityItem';
9837
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#activityGroupItem';
9736
9838
  };
9737
9839
  };
9738
- readonly subject: {
9739
- readonly type: 'string';
9740
- readonly format: 'at-uri';
9741
- };
9742
- readonly actor: {
9743
- readonly type: 'string';
9744
- readonly format: 'did';
9840
+ readonly actors: {
9841
+ readonly type: 'array';
9842
+ readonly description: 'Unique actors in first-appearance order among group items. At least two distinct actors are required.';
9843
+ readonly minLength: 2;
9844
+ readonly items: {
9845
+ readonly type: 'ref';
9846
+ readonly ref: 'lex:app.bsky.actor.defs#profileViewBasic';
9847
+ };
9745
9848
  };
9746
9849
  };
9747
9850
  };
@@ -37619,6 +37722,11 @@ export declare const schemas: ({
37619
37722
  readonly ref: 'lex:com.atproto.repo.strongRef';
37620
37723
  readonly description: 'The Bluesky post associated with the article, as declared by its author. The referenced post may not be available.';
37621
37724
  };
37725
+ readonly viewBskyPost: {
37726
+ readonly type: 'ref';
37727
+ readonly ref: 'lex:app.bsky.feed.defs#postView';
37728
+ readonly description: 'The hydrated Bluesky post associated with the article, as declared by its author. Omitted when the post is unavailable to the viewer.';
37729
+ };
37622
37730
  readonly view: {
37623
37731
  readonly type: 'ref';
37624
37732
  readonly ref: 'lex:app.bsky.embed.external#viewArticle';
@@ -37666,6 +37774,11 @@ export declare const schemas: ({
37666
37774
  readonly ref: 'lex:com.atproto.repo.strongRef';
37667
37775
  readonly description: 'The Bluesky post that announced the livestream, as declared by its author. The referenced post may not be available.';
37668
37776
  };
37777
+ readonly viewBskyPost: {
37778
+ readonly type: 'ref';
37779
+ readonly ref: 'lex:app.bsky.feed.defs#postView';
37780
+ readonly description: 'The hydrated Bluesky post that announced the livestream, as declared by its author. Omitted when the post is unavailable to the viewer.';
37781
+ };
37669
37782
  readonly view: {
37670
37783
  readonly type: 'ref';
37671
37784
  readonly ref: 'lex:app.bsky.embed.external#viewLivestream';
@@ -37767,7 +37880,7 @@ export declare const schemas: ({
37767
37880
  readonly defs: {
37768
37881
  readonly main: {
37769
37882
  readonly type: 'query';
37770
- readonly description: "Get the authenticated viewer's Atmosphere activity timeline. Grouping and related activity are limited to the returned page.";
37883
+ readonly description: "Get the authenticated viewer's Atmosphere activity timeline. Groups contain visible activities from the returned page.";
37771
37884
  readonly parameters: {
37772
37885
  readonly type: 'params';
37773
37886
  readonly properties: {
@@ -37789,7 +37902,7 @@ export declare const schemas: ({
37789
37902
  readonly type: 'array';
37790
37903
  readonly items: {
37791
37904
  readonly type: 'union';
37792
- readonly refs: ["lex:app.bsky.unspecced.getAtmosphereTimeline#activityItem", "lex:app.bsky.unspecced.getAtmosphereTimeline#activityItemOverflow", "lex:app.bsky.unspecced.getAtmosphereTimeline#activityGroup"];
37905
+ readonly refs: ["lex:app.bsky.unspecced.getAtmosphereTimeline#activityItem", "lex:app.bsky.unspecced.getAtmosphereTimeline#activityActorGroup", "lex:app.bsky.unspecced.getAtmosphereTimeline#activitySubjectGroup"];
37793
37906
  };
37794
37907
  };
37795
37908
  };
@@ -37839,40 +37952,131 @@ export declare const schemas: ({
37839
37952
  readonly type: 'ref';
37840
37953
  readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#viewerState';
37841
37954
  };
37955
+ readonly relatedActivity: {
37956
+ readonly type: 'array';
37957
+ readonly description: "Collection-specific activity references targeting this item's record. Article creations with related activity remain standalone; only the parent item's view is hydrated.";
37958
+ readonly items: {
37959
+ readonly type: 'ref';
37960
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#activityRelatedGroup';
37961
+ };
37962
+ };
37842
37963
  readonly bskyPostRef: {
37843
37964
  readonly type: 'ref';
37844
37965
  readonly ref: 'lex:com.atproto.repo.strongRef';
37845
37966
  readonly description: 'The Bluesky post associated with the rendered article or livestream, as declared by its author. The referenced post may not be available.';
37846
37967
  };
37968
+ readonly viewBskyPost: {
37969
+ readonly type: 'ref';
37970
+ readonly ref: 'lex:app.bsky.feed.defs#postView';
37971
+ readonly description: 'The hydrated Bluesky post associated with the rendered article or livestream, as declared by its author. Omitted when the post is unavailable to the viewer.';
37972
+ };
37847
37973
  readonly view: {
37848
37974
  readonly type: 'union';
37849
37975
  readonly refs: ["lex:app.bsky.embed.external#viewArticle", "lex:app.bsky.embed.external#viewArticlePublication", "lex:app.bsky.embed.external#viewGallery", "lex:app.bsky.embed.external#viewLivestream", "lex:app.bsky.feed.defs#postView"];
37850
37976
  };
37851
- readonly relatedActivity: {
37977
+ };
37978
+ };
37979
+ readonly activityActorGroup: {
37980
+ readonly type: 'object';
37981
+ readonly description: 'Activities by one actor in one collection, positioned at the newest group item. Only the newest item is hydrated. Article creations with related activity remain standalone.';
37982
+ readonly required: ["id", "collection", "indexedAt", "actor", "item", "uris"];
37983
+ readonly properties: {
37984
+ readonly id: {
37985
+ readonly type: 'string';
37986
+ };
37987
+ readonly collection: {
37988
+ readonly type: 'string';
37989
+ readonly format: 'nsid';
37990
+ };
37991
+ readonly indexedAt: {
37992
+ readonly type: 'string';
37993
+ readonly format: 'datetime';
37994
+ };
37995
+ readonly actor: {
37996
+ readonly type: 'string';
37997
+ readonly format: 'did';
37998
+ };
37999
+ readonly item: {
38000
+ readonly type: 'ref';
38001
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#activityItem';
38002
+ };
38003
+ readonly uris: {
37852
38004
  readonly type: 'array';
37853
- readonly description: 'Recommendations and shares attached to this article. Attached activities do not themselves contain related activity.';
38005
+ readonly description: 'All visible group item URIs, including the hydrated item, in newest-first timeline order.';
38006
+ readonly minLength: 2;
37854
38007
  readonly items: {
37855
- readonly type: 'ref';
37856
- readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#activityItem';
38008
+ readonly type: 'string';
38009
+ readonly format: 'at-uri';
37857
38010
  };
37858
38011
  };
37859
38012
  };
37860
38013
  };
37861
- readonly activityItemOverflow: {
38014
+ readonly activitySubject: {
37862
38015
  readonly type: 'object';
37863
- readonly description: 'Distinct additional activities omitted from this page for an author and collection, without hydrating the omitted records.';
37864
- readonly required: ["count", "collection", "associatedProfiles"];
38016
+ readonly description: 'The shared target of grouped activities, not an activity itself.';
38017
+ readonly required: ["uri", "viewerState", "view"];
37865
38018
  readonly properties: {
37866
- readonly count: {
37867
- readonly type: 'integer';
37868
- readonly minimum: 1;
38019
+ readonly uri: {
38020
+ readonly type: 'string';
38021
+ readonly format: 'at-uri';
38022
+ };
38023
+ readonly viewerState: {
38024
+ readonly type: 'ref';
38025
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#viewerState';
38026
+ };
38027
+ readonly bskyPostRef: {
38028
+ readonly type: 'ref';
38029
+ readonly ref: 'lex:com.atproto.repo.strongRef';
38030
+ readonly description: "The author's declared Bluesky post for the target. The post may be unavailable.";
38031
+ };
38032
+ readonly viewBskyPost: {
38033
+ readonly type: 'ref';
38034
+ readonly ref: 'lex:app.bsky.feed.defs#postView';
38035
+ readonly description: "The hydrated Bluesky post declared by the target's author. Omitted when the post is unavailable to the viewer.";
38036
+ };
38037
+ readonly view: {
38038
+ readonly type: 'union';
38039
+ readonly refs: ["lex:app.bsky.embed.external#viewArticle", "lex:app.bsky.embed.external#viewArticlePublication", "lex:app.bsky.embed.external#viewGallery"];
38040
+ };
38041
+ };
38042
+ };
38043
+ readonly activityGroupItem: {
38044
+ readonly type: 'object';
38045
+ readonly description: 'An unhydrated group item. Its actor DID is the authority of its record URI.';
38046
+ readonly required: ["record", "collection"];
38047
+ readonly properties: {
38048
+ readonly record: {
38049
+ readonly type: 'ref';
38050
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#activityRecord';
37869
38051
  };
37870
38052
  readonly collection: {
37871
38053
  readonly type: 'string';
37872
38054
  readonly format: 'nsid';
37873
38055
  };
37874
- readonly associatedProfiles: {
38056
+ };
38057
+ };
38058
+ readonly activityRelatedGroup: {
38059
+ readonly type: 'object';
38060
+ readonly description: "Visible activities in one collection targeting the parent item's record, without a time window. Contains references and profiles only, not a shared subject or hydrated action views. Buckets follow newest-first first appearance.";
38061
+ readonly required: ["collection", "activities", "actors"];
38062
+ readonly properties: {
38063
+ readonly collection: {
38064
+ readonly type: 'string';
38065
+ readonly format: 'nsid';
38066
+ };
38067
+ readonly activities: {
38068
+ readonly type: 'array';
38069
+ readonly description: "Visible activity references in newest-first timeline order. Every activity has the bucket's collection.";
38070
+ readonly minLength: 1;
38071
+ readonly items: {
38072
+ readonly type: 'ref';
38073
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#activityGroupItem';
38074
+ };
38075
+ };
38076
+ readonly actors: {
37875
38077
  readonly type: 'array';
38078
+ readonly description: "Unique actors in first-appearance order among the bucket's activities.";
38079
+ readonly minLength: 1;
37876
38080
  readonly items: {
37877
38081
  readonly type: 'ref';
37878
38082
  readonly ref: 'lex:app.bsky.actor.defs#profileViewBasic';
@@ -37880,18 +38084,14 @@ export declare const schemas: ({
37880
38084
  };
37881
38085
  };
37882
38086
  };
37883
- readonly activityGroup: {
38087
+ readonly activitySubjectGroup: {
37884
38088
  readonly type: 'object';
37885
- readonly description: "Two or more activities of the same collection, within a fixed window anchored at the newest member. The group occupies the newest member's position.";
37886
- readonly required: ["id", "groupBy", "collection", "indexedAt", "items"];
38089
+ readonly description: 'Activities in one collection sharing a target, by at least two distinct actors, positioned at the newest group item. Article recommendations and shares group separately across the returned page without a time window. Article creations are not subject-group items. Publication subscriptions and gallery favorites retain age-based grouping windows.';
38090
+ readonly required: ["id", "collection", "indexedAt", "subject", "activities", "actors"];
37887
38091
  readonly properties: {
37888
38092
  readonly id: {
37889
38093
  readonly type: 'string';
37890
38094
  };
37891
- readonly groupBy: {
37892
- readonly type: 'string';
37893
- readonly knownValues: ["subject", "actor"];
37894
- };
37895
38095
  readonly collection: {
37896
38096
  readonly type: 'string';
37897
38097
  readonly format: 'nsid';
@@ -37900,21 +38100,27 @@ export declare const schemas: ({
37900
38100
  readonly type: 'string';
37901
38101
  readonly format: 'datetime';
37902
38102
  };
37903
- readonly items: {
38103
+ readonly subject: {
38104
+ readonly type: 'ref';
38105
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#activitySubject';
38106
+ };
38107
+ readonly activities: {
37904
38108
  readonly type: 'array';
38109
+ readonly description: "Visible group items in newest-first timeline order. Every activity has the group's collection.";
37905
38110
  readonly minLength: 2;
37906
38111
  readonly items: {
37907
38112
  readonly type: 'ref';
37908
- readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#activityItem';
38113
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereTimeline#activityGroupItem';
37909
38114
  };
37910
38115
  };
37911
- readonly subject: {
37912
- readonly type: 'string';
37913
- readonly format: 'at-uri';
37914
- };
37915
- readonly actor: {
37916
- readonly type: 'string';
37917
- readonly format: 'did';
38116
+ readonly actors: {
38117
+ readonly type: 'array';
38118
+ readonly description: 'Unique actors in first-appearance order among group items. At least two distinct actors are required.';
38119
+ readonly minLength: 2;
38120
+ readonly items: {
38121
+ readonly type: 'ref';
38122
+ readonly ref: 'lex:app.bsky.actor.defs#profileViewBasic';
38123
+ };
37918
38124
  };
37919
38125
  };
37920
38126
  };