@atproto/api 0.27.0 → 0.28.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.
Files changed (42) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/client/index.d.ts +6 -0
  3. package/dist/client/index.d.ts.map +1 -1
  4. package/dist/client/index.js +10 -0
  5. package/dist/client/index.js.map +1 -1
  6. package/dist/client/lexicons.d.ts +588 -58
  7. package/dist/client/lexicons.d.ts.map +1 -1
  8. package/dist/client/lexicons.js +298 -29
  9. package/dist/client/lexicons.js.map +1 -1
  10. package/dist/client/types/app/bsky/notification/getGroupedNotifications.d.ts +2 -0
  11. package/dist/client/types/app/bsky/notification/getGroupedNotifications.d.ts.map +1 -1
  12. package/dist/client/types/app/bsky/notification/getGroupedNotifications.js.map +1 -1
  13. package/dist/client/types/app/bsky/unspecced/getAtmosphereExploreArticleRecommendations.d.ts +33 -0
  14. package/dist/client/types/app/bsky/unspecced/getAtmosphereExploreArticleRecommendations.d.ts.map +1 -0
  15. package/dist/client/types/app/bsky/unspecced/getAtmosphereExploreArticleRecommendations.js +21 -0
  16. package/dist/client/types/app/bsky/unspecced/getAtmosphereExploreArticleRecommendations.js.map +1 -0
  17. package/dist/client/types/app/bsky/unspecced/getAtmosphereExploreTab.d.ts +37 -5
  18. package/dist/client/types/app/bsky/unspecced/getAtmosphereExploreTab.d.ts.map +1 -1
  19. package/dist/client/types/app/bsky/unspecced/getAtmosphereExploreTab.js +28 -0
  20. package/dist/client/types/app/bsky/unspecced/getAtmosphereExploreTab.js.map +1 -1
  21. package/dist/client/types/tools/ozone/queue/defs.d.ts +26 -6
  22. package/dist/client/types/tools/ozone/queue/defs.d.ts.map +1 -1
  23. package/dist/client/types/tools/ozone/queue/defs.js.map +1 -1
  24. package/dist/client/types/tools/ozone/safelink/addRule.d.ts +5 -0
  25. package/dist/client/types/tools/ozone/safelink/addRule.d.ts.map +1 -1
  26. package/dist/client/types/tools/ozone/safelink/addRule.js +7 -0
  27. package/dist/client/types/tools/ozone/safelink/addRule.js.map +1 -1
  28. package/dist/client/types/tools/ozone/safelink/defs.d.ts +5 -1
  29. package/dist/client/types/tools/ozone/safelink/defs.d.ts.map +1 -1
  30. package/dist/client/types/tools/ozone/safelink/defs.js.map +1 -1
  31. package/dist/client/types/tools/ozone/safelink/removeRule.d.ts +2 -0
  32. package/dist/client/types/tools/ozone/safelink/removeRule.d.ts.map +1 -1
  33. package/dist/client/types/tools/ozone/safelink/removeRule.js.map +1 -1
  34. package/dist/client/types/tools/ozone/safelink/syncSource.d.ts +40 -0
  35. package/dist/client/types/tools/ozone/safelink/syncSource.d.ts.map +1 -0
  36. package/dist/client/types/tools/ozone/safelink/syncSource.js +21 -0
  37. package/dist/client/types/tools/ozone/safelink/syncSource.js.map +1 -0
  38. package/dist/client/types/tools/ozone/safelink/updateRule.d.ts +5 -0
  39. package/dist/client/types/tools/ozone/safelink/updateRule.d.ts.map +1 -1
  40. package/dist/client/types/tools/ozone/safelink/updateRule.js +7 -0
  41. package/dist/client/types/tools/ozone/safelink/updateRule.js.map +1 -1
  42. package/package.json +14 -8
@@ -8219,6 +8219,11 @@ export declare const schemaDict: {
8219
8219
  readonly type: 'string';
8220
8220
  readonly format: 'at-uri';
8221
8221
  };
8222
+ readonly parent: {
8223
+ readonly type: 'string';
8224
+ readonly format: 'at-uri';
8225
+ readonly description: 'The post this one replies to, if it is a reply.';
8226
+ };
8222
8227
  };
8223
8228
  };
8224
8229
  readonly generatorLikeGroup: {
@@ -9162,19 +9167,76 @@ export declare const schemaDict: {
9162
9167
  };
9163
9168
  };
9164
9169
  };
9170
+ readonly AppBskyUnspeccedGetAtmosphereExploreArticleRecommendations: {
9171
+ readonly lexicon: 1;
9172
+ readonly id: 'app.bsky.unspecced.getAtmosphereExploreArticleRecommendations';
9173
+ readonly defs: {
9174
+ readonly main: {
9175
+ readonly type: 'query';
9176
+ readonly description: 'Get a skeleton of recommended Atmosphere Explore articles. Intended to be called and hydrated by app.bsky.unspecced.getAtmosphereExploreTab';
9177
+ readonly parameters: {
9178
+ readonly type: 'params';
9179
+ readonly properties: {
9180
+ readonly viewer: {
9181
+ readonly type: 'string';
9182
+ readonly format: 'did';
9183
+ readonly description: 'DID of the account making the request (not included for public/unauthenticated queries).';
9184
+ };
9185
+ readonly limit: {
9186
+ readonly type: 'integer';
9187
+ readonly minimum: 1;
9188
+ readonly maximum: 100;
9189
+ readonly default: 25;
9190
+ };
9191
+ };
9192
+ };
9193
+ readonly output: {
9194
+ readonly encoding: 'application/json';
9195
+ readonly schema: {
9196
+ readonly type: 'object';
9197
+ readonly required: ["articles", "recIdStr"];
9198
+ readonly properties: {
9199
+ readonly articles: {
9200
+ readonly type: 'array';
9201
+ readonly maxLength: 100;
9202
+ readonly items: {
9203
+ readonly type: 'ref';
9204
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreArticleRecommendations#article';
9205
+ };
9206
+ };
9207
+ readonly recIdStr: {
9208
+ readonly type: 'string';
9209
+ readonly description: 'Snowflake for this recommendation, use when submitting recommendation events.';
9210
+ };
9211
+ };
9212
+ };
9213
+ };
9214
+ };
9215
+ readonly article: {
9216
+ readonly type: 'object';
9217
+ readonly required: ["uri"];
9218
+ readonly properties: {
9219
+ readonly uri: {
9220
+ readonly type: 'string';
9221
+ readonly format: 'at-uri';
9222
+ };
9223
+ };
9224
+ };
9225
+ };
9226
+ };
9165
9227
  readonly AppBskyUnspeccedGetAtmosphereExploreTab: {
9166
9228
  readonly lexicon: 1;
9167
9229
  readonly id: 'app.bsky.unspecced.getAtmosphereExploreTab';
9168
9230
  readonly defs: {
9169
9231
  readonly main: {
9170
9232
  readonly type: 'query';
9171
- readonly description: 'Get curated Atmosphere Explore content. Authentication is optional; authenticated requests include viewer-specific profile state.';
9233
+ readonly description: 'Get Atmosphere Explore content. Articles are recommended when algorithmic recommendations are enabled for the request, and curated otherwise; other sections are curated. Authentication is optional; authenticated requests include viewer-specific profile state.';
9172
9234
  readonly parameters: {
9173
9235
  readonly type: 'params';
9174
9236
  readonly properties: {
9175
9237
  readonly langs: {
9176
9238
  readonly type: 'array';
9177
- readonly description: 'Preferred languages. Currently ignored.';
9239
+ readonly description: 'Preferred languages for article recommendations when algorithmic recommendations are enabled. Ignored otherwise.';
9178
9240
  readonly items: {
9179
9241
  readonly type: 'string';
9180
9242
  readonly format: 'language';
@@ -9201,32 +9263,20 @@ export declare const schemaDict: {
9201
9263
  readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#announcementBanner';
9202
9264
  };
9203
9265
  readonly articles: {
9204
- readonly type: 'array';
9205
- readonly items: {
9206
- readonly type: 'ref';
9207
- readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#articleItem';
9208
- };
9266
+ readonly type: 'ref';
9267
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#articleList';
9209
9268
  };
9210
9269
  readonly publications: {
9211
- readonly type: 'array';
9212
- readonly items: {
9213
- readonly type: 'ref';
9214
- readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#publicationItem';
9215
- };
9270
+ readonly type: 'ref';
9271
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#publicationList';
9216
9272
  };
9217
9273
  readonly photos: {
9218
- readonly type: 'array';
9219
- readonly items: {
9220
- readonly type: 'ref';
9221
- readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#galleryItem';
9222
- };
9274
+ readonly type: 'ref';
9275
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#galleryList';
9223
9276
  };
9224
9277
  readonly livestreams: {
9225
- readonly type: 'array';
9226
- readonly items: {
9227
- readonly type: 'ref';
9228
- readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#livestreamItem';
9229
- };
9278
+ readonly type: 'ref';
9279
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#livestreamList';
9230
9280
  };
9231
9281
  readonly apps: {
9232
9282
  readonly type: 'array';
@@ -9240,6 +9290,74 @@ export declare const schemaDict: {
9240
9290
  };
9241
9291
  };
9242
9292
  };
9293
+ readonly articleList: {
9294
+ readonly type: 'object';
9295
+ readonly required: ["items"];
9296
+ readonly properties: {
9297
+ readonly items: {
9298
+ readonly type: 'array';
9299
+ readonly items: {
9300
+ readonly type: 'ref';
9301
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#articleItem';
9302
+ };
9303
+ };
9304
+ readonly recIdStr: {
9305
+ readonly type: 'string';
9306
+ readonly description: "Snowflake for this list's recommendation, use when submitting recommendation events. Omitted when the list is not algorithmically recommended.";
9307
+ };
9308
+ };
9309
+ };
9310
+ readonly publicationList: {
9311
+ readonly type: 'object';
9312
+ readonly required: ["items"];
9313
+ readonly properties: {
9314
+ readonly items: {
9315
+ readonly type: 'array';
9316
+ readonly items: {
9317
+ readonly type: 'ref';
9318
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#publicationItem';
9319
+ };
9320
+ };
9321
+ readonly recIdStr: {
9322
+ readonly type: 'string';
9323
+ readonly description: "Snowflake for this list's recommendation, use when submitting recommendation events. Omitted when the list is not algorithmically recommended.";
9324
+ };
9325
+ };
9326
+ };
9327
+ readonly galleryList: {
9328
+ readonly type: 'object';
9329
+ readonly required: ["items"];
9330
+ readonly properties: {
9331
+ readonly items: {
9332
+ readonly type: 'array';
9333
+ readonly items: {
9334
+ readonly type: 'ref';
9335
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#galleryItem';
9336
+ };
9337
+ };
9338
+ readonly recIdStr: {
9339
+ readonly type: 'string';
9340
+ readonly description: "Snowflake for this list's recommendation, use when submitting recommendation events. Omitted when the list is not algorithmically recommended.";
9341
+ };
9342
+ };
9343
+ };
9344
+ readonly livestreamList: {
9345
+ readonly type: 'object';
9346
+ readonly required: ["items"];
9347
+ readonly properties: {
9348
+ readonly items: {
9349
+ readonly type: 'array';
9350
+ readonly items: {
9351
+ readonly type: 'ref';
9352
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#livestreamItem';
9353
+ };
9354
+ };
9355
+ readonly recIdStr: {
9356
+ readonly type: 'string';
9357
+ readonly description: "Snowflake for this list's recommendation, use when submitting recommendation events. Omitted when the list is not algorithmically recommended.";
9358
+ };
9359
+ };
9360
+ };
9243
9361
  readonly articleItem: {
9244
9362
  readonly type: 'object';
9245
9363
  readonly required: ["featured", "view"];
@@ -24093,30 +24211,70 @@ export declare const schemaDict: {
24093
24211
  readonly maximum: 100;
24094
24212
  readonly description: 'Percent of reports meeting their closure target.';
24095
24213
  };
24214
+ readonly closedCount: {
24215
+ readonly type: 'integer';
24216
+ readonly description: 'Number of reports whose current closure falls within this UTC calendar day.';
24217
+ };
24096
24218
  readonly actionedCount: {
24097
24219
  readonly type: 'integer';
24098
- readonly description: "Number of reports in 'closed' status";
24220
+ readonly description: 'Number of closures whose last report action is label, tag, or takedown.';
24221
+ };
24222
+ readonly acknowledgedCount: {
24223
+ readonly type: 'integer';
24224
+ readonly description: 'Number of closures whose last report action is not label, tag, or takedown.';
24099
24225
  };
24100
24226
  readonly escalatedCount: {
24101
24227
  readonly type: 'integer';
24102
- readonly description: "Number of reports in 'escalated' status";
24228
+ readonly description: 'Number of report escalation events during this UTC calendar day.';
24103
24229
  };
24104
24230
  readonly inboundCount: {
24105
24231
  readonly type: 'integer';
24106
- readonly description: 'Reports received in this queue in the last 24 hours.';
24232
+ readonly description: 'Reports received in this queue during this UTC calendar day.';
24233
+ };
24234
+ readonly labelActionCount: {
24235
+ readonly type: 'integer';
24236
+ readonly description: 'Closures whose last report action is a label event.';
24237
+ };
24238
+ readonly tagActionCount: {
24239
+ readonly type: 'integer';
24240
+ readonly description: 'Closures whose last report action is a tag event.';
24241
+ };
24242
+ readonly takedownActionCount: {
24243
+ readonly type: 'integer';
24244
+ readonly description: 'Closures whose last report action is a takedown event.';
24245
+ };
24246
+ readonly ahtDurationSec: {
24247
+ readonly type: 'integer';
24248
+ readonly description: 'Sum of report assignment-to-close seconds.';
24249
+ };
24250
+ readonly ahtSampleCount: {
24251
+ readonly type: 'integer';
24252
+ readonly description: 'Number of assigned closed-report samples in ahtDurationSec.';
24253
+ };
24254
+ readonly resolutionDurationSec: {
24255
+ readonly type: 'integer';
24256
+ readonly description: 'Sum of report creation-to-close seconds.';
24257
+ };
24258
+ readonly resolutionSampleCount: {
24259
+ readonly type: 'integer';
24260
+ readonly description: 'Number of closed-report samples in resolutionDurationSec.';
24107
24261
  };
24108
24262
  readonly actionRate: {
24109
24263
  readonly type: 'integer';
24110
- readonly description: 'Percentage of reports actioned (actionedCount / inboundCount * 100), rounded to nearest integer. Absent when inboundCount is 0.';
24264
+ readonly description: 'Percentage of closures actioned (actionedCount / closedCount * 100), rounded to nearest integer.';
24111
24265
  };
24112
24266
  readonly avgHandlingTimeSec: {
24113
24267
  readonly type: 'integer';
24114
- readonly description: 'Average time in seconds from report creation to close, for reports closed in this period.';
24268
+ readonly description: 'Average handling time in seconds from report assignment to close.';
24269
+ };
24270
+ readonly avgResolutionTimeSec: {
24271
+ readonly type: 'integer';
24272
+ readonly description: 'Average resolution time in seconds from report creation to close.';
24115
24273
  };
24116
24274
  readonly lastUpdated: {
24117
24275
  readonly type: 'string';
24118
24276
  readonly format: 'datetime';
24119
- readonly description: 'When these statistics were last computed';
24277
+ readonly description: 'When these statistics were last computed.';
24120
24278
  };
24121
24279
  };
24122
24280
  };
@@ -25967,6 +26125,12 @@ export declare const schemaDict: {
25967
26125
  readonly type: 'ref';
25968
26126
  readonly ref: 'lex:tools.ozone.safelink.defs#reasonType';
25969
26127
  };
26128
+ readonly source: {
26129
+ readonly type: 'string';
26130
+ readonly maxLength: 128;
26131
+ readonly default: 'ozone/default';
26132
+ readonly description: 'Source of the rule';
26133
+ };
25970
26134
  readonly comment: {
25971
26135
  readonly type: 'string';
25972
26136
  readonly description: 'Optional comment about the decision';
@@ -25992,6 +26156,9 @@ export declare const schemaDict: {
25992
26156
  }, {
25993
26157
  readonly name: 'RuleAlreadyExists';
25994
26158
  readonly description: 'A rule for this URL/domain already exists';
26159
+ }, {
26160
+ readonly name: 'RuleSourceConflict';
26161
+ readonly description: 'A rule for this URL/domain is owned by another source';
25995
26162
  }];
25996
26163
  };
25997
26164
  };
@@ -26029,6 +26196,11 @@ export declare const schemaDict: {
26029
26196
  readonly type: 'ref';
26030
26197
  readonly ref: 'lex:tools.ozone.safelink.defs#reasonType';
26031
26198
  };
26199
+ readonly source: {
26200
+ readonly type: 'string';
26201
+ readonly default: 'ozone/default';
26202
+ readonly description: 'Source of the decision';
26203
+ };
26032
26204
  readonly createdBy: {
26033
26205
  readonly type: 'string';
26034
26206
  readonly format: 'did';
@@ -26062,7 +26234,7 @@ export declare const schemaDict: {
26062
26234
  };
26063
26235
  readonly urlRule: {
26064
26236
  readonly type: 'object';
26065
- readonly description: 'Input for creating a URL safety rule';
26237
+ readonly description: 'An active URL safety rule';
26066
26238
  readonly required: ["url", "pattern", "action", "reason", "createdBy", "createdAt", "updatedAt"];
26067
26239
  readonly properties: {
26068
26240
  readonly url: {
@@ -26081,6 +26253,11 @@ export declare const schemaDict: {
26081
26253
  readonly type: 'ref';
26082
26254
  readonly ref: 'lex:tools.ozone.safelink.defs#reasonType';
26083
26255
  };
26256
+ readonly source: {
26257
+ readonly type: 'string';
26258
+ readonly default: 'ozone/default';
26259
+ readonly description: 'Source of the rule';
26260
+ };
26084
26261
  readonly comment: {
26085
26262
  readonly type: 'string';
26086
26263
  readonly description: 'Optional comment about the decision';
@@ -26273,6 +26450,12 @@ export declare const schemaDict: {
26273
26450
  readonly type: 'ref';
26274
26451
  readonly ref: 'lex:tools.ozone.safelink.defs#patternType';
26275
26452
  };
26453
+ readonly source: {
26454
+ readonly type: 'string';
26455
+ readonly maxLength: 128;
26456
+ readonly default: 'ozone/default';
26457
+ readonly description: 'Source of the rule to remove';
26458
+ };
26276
26459
  readonly comment: {
26277
26460
  readonly type: 'string';
26278
26461
  readonly description: 'Optional comment about why the rule is being removed';
@@ -26299,6 +26482,79 @@ export declare const schemaDict: {
26299
26482
  };
26300
26483
  };
26301
26484
  };
26485
+ readonly ToolsOzoneSafelinkSyncSource: {
26486
+ readonly lexicon: 1;
26487
+ readonly id: 'tools.ozone.safelink.syncSource';
26488
+ readonly defs: {
26489
+ readonly main: {
26490
+ readonly type: 'procedure';
26491
+ readonly description: 'Replace stored rules for one source from a complete snapshot. Existing rules owned by another source remain unchanged.';
26492
+ readonly input: {
26493
+ readonly encoding: 'application/json';
26494
+ readonly schema: {
26495
+ readonly type: 'object';
26496
+ readonly required: ["source", "rules"];
26497
+ readonly properties: {
26498
+ readonly source: {
26499
+ readonly type: 'string';
26500
+ readonly maxLength: 128;
26501
+ readonly description: 'Source whose rules are being synchronized';
26502
+ };
26503
+ readonly rules: {
26504
+ readonly type: 'array';
26505
+ readonly items: {
26506
+ readonly type: 'ref';
26507
+ readonly ref: 'lex:tools.ozone.safelink.syncSource#sourceRule';
26508
+ };
26509
+ };
26510
+ };
26511
+ };
26512
+ };
26513
+ readonly output: {
26514
+ readonly encoding: 'application/json';
26515
+ readonly schema: {
26516
+ readonly type: 'object';
26517
+ readonly required: ["added", "updated", "removed", "events"];
26518
+ readonly properties: {
26519
+ readonly added: {
26520
+ readonly type: 'integer';
26521
+ };
26522
+ readonly updated: {
26523
+ readonly type: 'integer';
26524
+ };
26525
+ readonly removed: {
26526
+ readonly type: 'integer';
26527
+ };
26528
+ readonly events: {
26529
+ readonly type: 'integer';
26530
+ };
26531
+ };
26532
+ };
26533
+ };
26534
+ };
26535
+ readonly sourceRule: {
26536
+ readonly type: 'object';
26537
+ readonly required: ["url", "pattern", "action", "reason"];
26538
+ readonly properties: {
26539
+ readonly url: {
26540
+ readonly type: 'string';
26541
+ };
26542
+ readonly pattern: {
26543
+ readonly type: 'ref';
26544
+ readonly ref: 'lex:tools.ozone.safelink.defs#patternType';
26545
+ };
26546
+ readonly action: {
26547
+ readonly type: 'ref';
26548
+ readonly ref: 'lex:tools.ozone.safelink.defs#actionType';
26549
+ };
26550
+ readonly reason: {
26551
+ readonly type: 'ref';
26552
+ readonly ref: 'lex:tools.ozone.safelink.defs#reasonType';
26553
+ };
26554
+ };
26555
+ };
26556
+ };
26557
+ };
26302
26558
  readonly ToolsOzoneSafelinkUpdateRule: {
26303
26559
  readonly lexicon: 1;
26304
26560
  readonly id: 'tools.ozone.safelink.updateRule';
@@ -26328,6 +26584,12 @@ export declare const schemaDict: {
26328
26584
  readonly type: 'ref';
26329
26585
  readonly ref: 'lex:tools.ozone.safelink.defs#reasonType';
26330
26586
  };
26587
+ readonly source: {
26588
+ readonly type: 'string';
26589
+ readonly maxLength: 128;
26590
+ readonly default: 'ozone/default';
26591
+ readonly description: 'Source of the rule to update';
26592
+ };
26331
26593
  readonly comment: {
26332
26594
  readonly type: 'string';
26333
26595
  readonly description: 'Optional comment about the update';
@@ -26350,6 +26612,9 @@ export declare const schemaDict: {
26350
26612
  readonly errors: [{
26351
26613
  readonly name: 'RuleNotFound';
26352
26614
  readonly description: 'No active rule found for this URL/domain';
26615
+ }, {
26616
+ readonly name: 'RuleSourceConflict';
26617
+ readonly description: 'A rule for this URL/domain is owned by another source';
26353
26618
  }];
26354
26619
  };
26355
26620
  };
@@ -35761,6 +36026,11 @@ export declare const schemas: ({
35761
36026
  readonly type: 'string';
35762
36027
  readonly format: 'at-uri';
35763
36028
  };
36029
+ readonly parent: {
36030
+ readonly type: 'string';
36031
+ readonly format: 'at-uri';
36032
+ readonly description: 'The post this one replies to, if it is a reply.';
36033
+ };
35764
36034
  };
35765
36035
  };
35766
36036
  readonly generatorLikeGroup: {
@@ -36690,19 +36960,75 @@ export declare const schemas: ({
36690
36960
  };
36691
36961
  };
36692
36962
  };
36963
+ } | {
36964
+ readonly lexicon: 1;
36965
+ readonly id: 'app.bsky.unspecced.getAtmosphereExploreArticleRecommendations';
36966
+ readonly defs: {
36967
+ readonly main: {
36968
+ readonly type: 'query';
36969
+ readonly description: 'Get a skeleton of recommended Atmosphere Explore articles. Intended to be called and hydrated by app.bsky.unspecced.getAtmosphereExploreTab';
36970
+ readonly parameters: {
36971
+ readonly type: 'params';
36972
+ readonly properties: {
36973
+ readonly viewer: {
36974
+ readonly type: 'string';
36975
+ readonly format: 'did';
36976
+ readonly description: 'DID of the account making the request (not included for public/unauthenticated queries).';
36977
+ };
36978
+ readonly limit: {
36979
+ readonly type: 'integer';
36980
+ readonly minimum: 1;
36981
+ readonly maximum: 100;
36982
+ readonly default: 25;
36983
+ };
36984
+ };
36985
+ };
36986
+ readonly output: {
36987
+ readonly encoding: 'application/json';
36988
+ readonly schema: {
36989
+ readonly type: 'object';
36990
+ readonly required: ["articles", "recIdStr"];
36991
+ readonly properties: {
36992
+ readonly articles: {
36993
+ readonly type: 'array';
36994
+ readonly maxLength: 100;
36995
+ readonly items: {
36996
+ readonly type: 'ref';
36997
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreArticleRecommendations#article';
36998
+ };
36999
+ };
37000
+ readonly recIdStr: {
37001
+ readonly type: 'string';
37002
+ readonly description: 'Snowflake for this recommendation, use when submitting recommendation events.';
37003
+ };
37004
+ };
37005
+ };
37006
+ };
37007
+ };
37008
+ readonly article: {
37009
+ readonly type: 'object';
37010
+ readonly required: ["uri"];
37011
+ readonly properties: {
37012
+ readonly uri: {
37013
+ readonly type: 'string';
37014
+ readonly format: 'at-uri';
37015
+ };
37016
+ };
37017
+ };
37018
+ };
36693
37019
  } | {
36694
37020
  readonly lexicon: 1;
36695
37021
  readonly id: 'app.bsky.unspecced.getAtmosphereExploreTab';
36696
37022
  readonly defs: {
36697
37023
  readonly main: {
36698
37024
  readonly type: 'query';
36699
- readonly description: 'Get curated Atmosphere Explore content. Authentication is optional; authenticated requests include viewer-specific profile state.';
37025
+ readonly description: 'Get Atmosphere Explore content. Articles are recommended when algorithmic recommendations are enabled for the request, and curated otherwise; other sections are curated. Authentication is optional; authenticated requests include viewer-specific profile state.';
36700
37026
  readonly parameters: {
36701
37027
  readonly type: 'params';
36702
37028
  readonly properties: {
36703
37029
  readonly langs: {
36704
37030
  readonly type: 'array';
36705
- readonly description: 'Preferred languages. Currently ignored.';
37031
+ readonly description: 'Preferred languages for article recommendations when algorithmic recommendations are enabled. Ignored otherwise.';
36706
37032
  readonly items: {
36707
37033
  readonly type: 'string';
36708
37034
  readonly format: 'language';
@@ -36729,32 +37055,20 @@ export declare const schemas: ({
36729
37055
  readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#announcementBanner';
36730
37056
  };
36731
37057
  readonly articles: {
36732
- readonly type: 'array';
36733
- readonly items: {
36734
- readonly type: 'ref';
36735
- readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#articleItem';
36736
- };
37058
+ readonly type: 'ref';
37059
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#articleList';
36737
37060
  };
36738
37061
  readonly publications: {
36739
- readonly type: 'array';
36740
- readonly items: {
36741
- readonly type: 'ref';
36742
- readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#publicationItem';
36743
- };
37062
+ readonly type: 'ref';
37063
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#publicationList';
36744
37064
  };
36745
37065
  readonly photos: {
36746
- readonly type: 'array';
36747
- readonly items: {
36748
- readonly type: 'ref';
36749
- readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#galleryItem';
36750
- };
37066
+ readonly type: 'ref';
37067
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#galleryList';
36751
37068
  };
36752
37069
  readonly livestreams: {
36753
- readonly type: 'array';
36754
- readonly items: {
36755
- readonly type: 'ref';
36756
- readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#livestreamItem';
36757
- };
37070
+ readonly type: 'ref';
37071
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#livestreamList';
36758
37072
  };
36759
37073
  readonly apps: {
36760
37074
  readonly type: 'array';
@@ -36768,6 +37082,74 @@ export declare const schemas: ({
36768
37082
  };
36769
37083
  };
36770
37084
  };
37085
+ readonly articleList: {
37086
+ readonly type: 'object';
37087
+ readonly required: ["items"];
37088
+ readonly properties: {
37089
+ readonly items: {
37090
+ readonly type: 'array';
37091
+ readonly items: {
37092
+ readonly type: 'ref';
37093
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#articleItem';
37094
+ };
37095
+ };
37096
+ readonly recIdStr: {
37097
+ readonly type: 'string';
37098
+ readonly description: "Snowflake for this list's recommendation, use when submitting recommendation events. Omitted when the list is not algorithmically recommended.";
37099
+ };
37100
+ };
37101
+ };
37102
+ readonly publicationList: {
37103
+ readonly type: 'object';
37104
+ readonly required: ["items"];
37105
+ readonly properties: {
37106
+ readonly items: {
37107
+ readonly type: 'array';
37108
+ readonly items: {
37109
+ readonly type: 'ref';
37110
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#publicationItem';
37111
+ };
37112
+ };
37113
+ readonly recIdStr: {
37114
+ readonly type: 'string';
37115
+ readonly description: "Snowflake for this list's recommendation, use when submitting recommendation events. Omitted when the list is not algorithmically recommended.";
37116
+ };
37117
+ };
37118
+ };
37119
+ readonly galleryList: {
37120
+ readonly type: 'object';
37121
+ readonly required: ["items"];
37122
+ readonly properties: {
37123
+ readonly items: {
37124
+ readonly type: 'array';
37125
+ readonly items: {
37126
+ readonly type: 'ref';
37127
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#galleryItem';
37128
+ };
37129
+ };
37130
+ readonly recIdStr: {
37131
+ readonly type: 'string';
37132
+ readonly description: "Snowflake for this list's recommendation, use when submitting recommendation events. Omitted when the list is not algorithmically recommended.";
37133
+ };
37134
+ };
37135
+ };
37136
+ readonly livestreamList: {
37137
+ readonly type: 'object';
37138
+ readonly required: ["items"];
37139
+ readonly properties: {
37140
+ readonly items: {
37141
+ readonly type: 'array';
37142
+ readonly items: {
37143
+ readonly type: 'ref';
37144
+ readonly ref: 'lex:app.bsky.unspecced.getAtmosphereExploreTab#livestreamItem';
37145
+ };
37146
+ };
37147
+ readonly recIdStr: {
37148
+ readonly type: 'string';
37149
+ readonly description: "Snowflake for this list's recommendation, use when submitting recommendation events. Omitted when the list is not algorithmically recommended.";
37150
+ };
37151
+ };
37152
+ };
36771
37153
  readonly articleItem: {
36772
37154
  readonly type: 'object';
36773
37155
  readonly required: ["featured", "view"];
@@ -51392,30 +51774,70 @@ export declare const schemas: ({
51392
51774
  readonly maximum: 100;
51393
51775
  readonly description: 'Percent of reports meeting their closure target.';
51394
51776
  };
51777
+ readonly closedCount: {
51778
+ readonly type: 'integer';
51779
+ readonly description: 'Number of reports whose current closure falls within this UTC calendar day.';
51780
+ };
51395
51781
  readonly actionedCount: {
51396
51782
  readonly type: 'integer';
51397
- readonly description: "Number of reports in 'closed' status";
51783
+ readonly description: 'Number of closures whose last report action is label, tag, or takedown.';
51784
+ };
51785
+ readonly acknowledgedCount: {
51786
+ readonly type: 'integer';
51787
+ readonly description: 'Number of closures whose last report action is not label, tag, or takedown.';
51398
51788
  };
51399
51789
  readonly escalatedCount: {
51400
51790
  readonly type: 'integer';
51401
- readonly description: "Number of reports in 'escalated' status";
51791
+ readonly description: 'Number of report escalation events during this UTC calendar day.';
51402
51792
  };
51403
51793
  readonly inboundCount: {
51404
51794
  readonly type: 'integer';
51405
- readonly description: 'Reports received in this queue in the last 24 hours.';
51795
+ readonly description: 'Reports received in this queue during this UTC calendar day.';
51796
+ };
51797
+ readonly labelActionCount: {
51798
+ readonly type: 'integer';
51799
+ readonly description: 'Closures whose last report action is a label event.';
51800
+ };
51801
+ readonly tagActionCount: {
51802
+ readonly type: 'integer';
51803
+ readonly description: 'Closures whose last report action is a tag event.';
51804
+ };
51805
+ readonly takedownActionCount: {
51806
+ readonly type: 'integer';
51807
+ readonly description: 'Closures whose last report action is a takedown event.';
51808
+ };
51809
+ readonly ahtDurationSec: {
51810
+ readonly type: 'integer';
51811
+ readonly description: 'Sum of report assignment-to-close seconds.';
51812
+ };
51813
+ readonly ahtSampleCount: {
51814
+ readonly type: 'integer';
51815
+ readonly description: 'Number of assigned closed-report samples in ahtDurationSec.';
51816
+ };
51817
+ readonly resolutionDurationSec: {
51818
+ readonly type: 'integer';
51819
+ readonly description: 'Sum of report creation-to-close seconds.';
51820
+ };
51821
+ readonly resolutionSampleCount: {
51822
+ readonly type: 'integer';
51823
+ readonly description: 'Number of closed-report samples in resolutionDurationSec.';
51406
51824
  };
51407
51825
  readonly actionRate: {
51408
51826
  readonly type: 'integer';
51409
- readonly description: 'Percentage of reports actioned (actionedCount / inboundCount * 100), rounded to nearest integer. Absent when inboundCount is 0.';
51827
+ readonly description: 'Percentage of closures actioned (actionedCount / closedCount * 100), rounded to nearest integer.';
51410
51828
  };
51411
51829
  readonly avgHandlingTimeSec: {
51412
51830
  readonly type: 'integer';
51413
- readonly description: 'Average time in seconds from report creation to close, for reports closed in this period.';
51831
+ readonly description: 'Average handling time in seconds from report assignment to close.';
51832
+ };
51833
+ readonly avgResolutionTimeSec: {
51834
+ readonly type: 'integer';
51835
+ readonly description: 'Average resolution time in seconds from report creation to close.';
51414
51836
  };
51415
51837
  readonly lastUpdated: {
51416
51838
  readonly type: 'string';
51417
51839
  readonly format: 'datetime';
51418
- readonly description: 'When these statistics were last computed';
51840
+ readonly description: 'When these statistics were last computed.';
51419
51841
  };
51420
51842
  };
51421
51843
  };
@@ -53244,6 +53666,12 @@ export declare const schemas: ({
53244
53666
  readonly type: 'ref';
53245
53667
  readonly ref: 'lex:tools.ozone.safelink.defs#reasonType';
53246
53668
  };
53669
+ readonly source: {
53670
+ readonly type: 'string';
53671
+ readonly maxLength: 128;
53672
+ readonly default: 'ozone/default';
53673
+ readonly description: 'Source of the rule';
53674
+ };
53247
53675
  readonly comment: {
53248
53676
  readonly type: 'string';
53249
53677
  readonly description: 'Optional comment about the decision';
@@ -53269,6 +53697,9 @@ export declare const schemas: ({
53269
53697
  }, {
53270
53698
  readonly name: 'RuleAlreadyExists';
53271
53699
  readonly description: 'A rule for this URL/domain already exists';
53700
+ }, {
53701
+ readonly name: 'RuleSourceConflict';
53702
+ readonly description: 'A rule for this URL/domain is owned by another source';
53272
53703
  }];
53273
53704
  };
53274
53705
  };
@@ -53305,6 +53736,11 @@ export declare const schemas: ({
53305
53736
  readonly type: 'ref';
53306
53737
  readonly ref: 'lex:tools.ozone.safelink.defs#reasonType';
53307
53738
  };
53739
+ readonly source: {
53740
+ readonly type: 'string';
53741
+ readonly default: 'ozone/default';
53742
+ readonly description: 'Source of the decision';
53743
+ };
53308
53744
  readonly createdBy: {
53309
53745
  readonly type: 'string';
53310
53746
  readonly format: 'did';
@@ -53338,7 +53774,7 @@ export declare const schemas: ({
53338
53774
  };
53339
53775
  readonly urlRule: {
53340
53776
  readonly type: 'object';
53341
- readonly description: 'Input for creating a URL safety rule';
53777
+ readonly description: 'An active URL safety rule';
53342
53778
  readonly required: ["url", "pattern", "action", "reason", "createdBy", "createdAt", "updatedAt"];
53343
53779
  readonly properties: {
53344
53780
  readonly url: {
@@ -53357,6 +53793,11 @@ export declare const schemas: ({
53357
53793
  readonly type: 'ref';
53358
53794
  readonly ref: 'lex:tools.ozone.safelink.defs#reasonType';
53359
53795
  };
53796
+ readonly source: {
53797
+ readonly type: 'string';
53798
+ readonly default: 'ozone/default';
53799
+ readonly description: 'Source of the rule';
53800
+ };
53360
53801
  readonly comment: {
53361
53802
  readonly type: 'string';
53362
53803
  readonly description: 'Optional comment about the decision';
@@ -53546,6 +53987,12 @@ export declare const schemas: ({
53546
53987
  readonly type: 'ref';
53547
53988
  readonly ref: 'lex:tools.ozone.safelink.defs#patternType';
53548
53989
  };
53990
+ readonly source: {
53991
+ readonly type: 'string';
53992
+ readonly maxLength: 128;
53993
+ readonly default: 'ozone/default';
53994
+ readonly description: 'Source of the rule to remove';
53995
+ };
53549
53996
  readonly comment: {
53550
53997
  readonly type: 'string';
53551
53998
  readonly description: 'Optional comment about why the rule is being removed';
@@ -53571,6 +54018,78 @@ export declare const schemas: ({
53571
54018
  }];
53572
54019
  };
53573
54020
  };
54021
+ } | {
54022
+ readonly lexicon: 1;
54023
+ readonly id: 'tools.ozone.safelink.syncSource';
54024
+ readonly defs: {
54025
+ readonly main: {
54026
+ readonly type: 'procedure';
54027
+ readonly description: 'Replace stored rules for one source from a complete snapshot. Existing rules owned by another source remain unchanged.';
54028
+ readonly input: {
54029
+ readonly encoding: 'application/json';
54030
+ readonly schema: {
54031
+ readonly type: 'object';
54032
+ readonly required: ["source", "rules"];
54033
+ readonly properties: {
54034
+ readonly source: {
54035
+ readonly type: 'string';
54036
+ readonly maxLength: 128;
54037
+ readonly description: 'Source whose rules are being synchronized';
54038
+ };
54039
+ readonly rules: {
54040
+ readonly type: 'array';
54041
+ readonly items: {
54042
+ readonly type: 'ref';
54043
+ readonly ref: 'lex:tools.ozone.safelink.syncSource#sourceRule';
54044
+ };
54045
+ };
54046
+ };
54047
+ };
54048
+ };
54049
+ readonly output: {
54050
+ readonly encoding: 'application/json';
54051
+ readonly schema: {
54052
+ readonly type: 'object';
54053
+ readonly required: ["added", "updated", "removed", "events"];
54054
+ readonly properties: {
54055
+ readonly added: {
54056
+ readonly type: 'integer';
54057
+ };
54058
+ readonly updated: {
54059
+ readonly type: 'integer';
54060
+ };
54061
+ readonly removed: {
54062
+ readonly type: 'integer';
54063
+ };
54064
+ readonly events: {
54065
+ readonly type: 'integer';
54066
+ };
54067
+ };
54068
+ };
54069
+ };
54070
+ };
54071
+ readonly sourceRule: {
54072
+ readonly type: 'object';
54073
+ readonly required: ["url", "pattern", "action", "reason"];
54074
+ readonly properties: {
54075
+ readonly url: {
54076
+ readonly type: 'string';
54077
+ };
54078
+ readonly pattern: {
54079
+ readonly type: 'ref';
54080
+ readonly ref: 'lex:tools.ozone.safelink.defs#patternType';
54081
+ };
54082
+ readonly action: {
54083
+ readonly type: 'ref';
54084
+ readonly ref: 'lex:tools.ozone.safelink.defs#actionType';
54085
+ };
54086
+ readonly reason: {
54087
+ readonly type: 'ref';
54088
+ readonly ref: 'lex:tools.ozone.safelink.defs#reasonType';
54089
+ };
54090
+ };
54091
+ };
54092
+ };
53574
54093
  } | {
53575
54094
  readonly lexicon: 1;
53576
54095
  readonly id: 'tools.ozone.safelink.updateRule';
@@ -53600,6 +54119,12 @@ export declare const schemas: ({
53600
54119
  readonly type: 'ref';
53601
54120
  readonly ref: 'lex:tools.ozone.safelink.defs#reasonType';
53602
54121
  };
54122
+ readonly source: {
54123
+ readonly type: 'string';
54124
+ readonly maxLength: 128;
54125
+ readonly default: 'ozone/default';
54126
+ readonly description: 'Source of the rule to update';
54127
+ };
53603
54128
  readonly comment: {
53604
54129
  readonly type: 'string';
53605
54130
  readonly description: 'Optional comment about the update';
@@ -53622,6 +54147,9 @@ export declare const schemas: ({
53622
54147
  readonly errors: [{
53623
54148
  readonly name: 'RuleNotFound';
53624
54149
  readonly description: 'No active rule found for this URL/domain';
54150
+ }, {
54151
+ readonly name: 'RuleSourceConflict';
54152
+ readonly description: 'A rule for this URL/domain is owned by another source';
53625
54153
  }];
53626
54154
  };
53627
54155
  };
@@ -55024,6 +55552,7 @@ export declare const ids: {
55024
55552
  readonly AppBskyRichtextFacet: 'app.bsky.richtext.facet';
55025
55553
  readonly AppBskyUnspeccedDefs: 'app.bsky.unspecced.defs';
55026
55554
  readonly AppBskyUnspeccedGetAgeAssuranceState: 'app.bsky.unspecced.getAgeAssuranceState';
55555
+ readonly AppBskyUnspeccedGetAtmosphereExploreArticleRecommendations: 'app.bsky.unspecced.getAtmosphereExploreArticleRecommendations';
55027
55556
  readonly AppBskyUnspeccedGetAtmosphereExploreTab: 'app.bsky.unspecced.getAtmosphereExploreTab';
55028
55557
  readonly AppBskyUnspeccedGetConfig: 'app.bsky.unspecced.getConfig';
55029
55558
  readonly AppBskyUnspeccedGetOnboardingSuggestedStarterPacks: 'app.bsky.unspecced.getOnboardingSuggestedStarterPacks';
@@ -55280,6 +55809,7 @@ export declare const ids: {
55280
55809
  readonly ToolsOzoneSafelinkQueryEvents: 'tools.ozone.safelink.queryEvents';
55281
55810
  readonly ToolsOzoneSafelinkQueryRules: 'tools.ozone.safelink.queryRules';
55282
55811
  readonly ToolsOzoneSafelinkRemoveRule: 'tools.ozone.safelink.removeRule';
55812
+ readonly ToolsOzoneSafelinkSyncSource: 'tools.ozone.safelink.syncSource';
55283
55813
  readonly ToolsOzoneSafelinkUpdateRule: 'tools.ozone.safelink.updateRule';
55284
55814
  readonly ToolsOzoneServerGetCapabilities: 'tools.ozone.server.getCapabilities';
55285
55815
  readonly ToolsOzoneServerGetConfig: 'tools.ozone.server.getConfig';