@atproto/api 0.21.0 → 0.22.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 (37) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/client/index.d.ts +9 -0
  3. package/dist/client/index.d.ts.map +1 -1
  4. package/dist/client/index.js +17 -0
  5. package/dist/client/index.js.map +1 -1
  6. package/dist/client/lexicons.d.ts +730 -22
  7. package/dist/client/lexicons.d.ts.map +1 -1
  8. package/dist/client/lexicons.js +395 -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/getQuotes.d.ts +2 -0
  14. package/dist/client/types/app/bsky/feed/getQuotes.d.ts.map +1 -1
  15. package/dist/client/types/app/bsky/feed/getQuotes.js.map +1 -1
  16. package/dist/client/types/tools/ozone/inbox/appealActionedSubject.d.ts +65 -0
  17. package/dist/client/types/tools/ozone/inbox/appealActionedSubject.d.ts.map +1 -0
  18. package/dist/client/types/tools/ozone/inbox/appealActionedSubject.js +65 -0
  19. package/dist/client/types/tools/ozone/inbox/appealActionedSubject.js.map +1 -0
  20. package/dist/client/types/tools/ozone/inbox/defs.d.ts +68 -0
  21. package/dist/client/types/tools/ozone/inbox/defs.d.ts.map +1 -0
  22. package/dist/client/types/tools/ozone/inbox/defs.js +38 -0
  23. package/dist/client/types/tools/ozone/inbox/defs.js.map +1 -0
  24. package/dist/client/types/tools/ozone/queue/createQueue.d.ts +2 -0
  25. package/dist/client/types/tools/ozone/queue/createQueue.d.ts.map +1 -1
  26. package/dist/client/types/tools/ozone/queue/createQueue.js.map +1 -1
  27. package/dist/client/types/tools/ozone/queue/defs.d.ts +2 -0
  28. package/dist/client/types/tools/ozone/queue/defs.d.ts.map +1 -1
  29. package/dist/client/types/tools/ozone/queue/defs.js.map +1 -1
  30. package/dist/client/types/tools/ozone/queue/updateQueue.d.ts +5 -0
  31. package/dist/client/types/tools/ozone/queue/updateQueue.d.ts.map +1 -1
  32. package/dist/client/types/tools/ozone/queue/updateQueue.js +7 -0
  33. package/dist/client/types/tools/ozone/queue/updateQueue.js.map +1 -1
  34. package/dist/client/types/tools/ozone/report/defs.d.ts +49 -9
  35. package/dist/client/types/tools/ozone/report/defs.d.ts.map +1 -1
  36. package/dist/client/types/tools/ozone/report/defs.js.map +1 -1
  37. package/package.json +6 -6
@@ -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"];
@@ -4425,6 +4433,11 @@ export declare const schemaDict: {
4425
4433
  readonly cursor: {
4426
4434
  readonly type: 'string';
4427
4435
  };
4436
+ readonly sort: {
4437
+ readonly type: 'string';
4438
+ readonly knownValues: ["latest", "top"];
4439
+ readonly description: "Ordering of results. 'latest' (default when unset) is newest first; 'top' orders quotes by their like count.";
4440
+ };
4428
4441
  };
4429
4442
  };
4430
4443
  readonly output: {
@@ -18998,6 +19011,243 @@ export declare const schemaDict: {
18998
19011
  };
18999
19012
  };
19000
19013
  };
19014
+ readonly ToolsOzoneInboxAppealActionedSubject: {
19015
+ readonly lexicon: 1;
19016
+ readonly id: 'tools.ozone.inbox.appealActionedSubject';
19017
+ readonly defs: {
19018
+ readonly main: {
19019
+ readonly type: 'procedure';
19020
+ readonly description: "Appeal a moderation action affecting the user's account or content.";
19021
+ readonly input: {
19022
+ readonly encoding: 'application/json';
19023
+ readonly schema: {
19024
+ readonly type: 'object';
19025
+ readonly required: ["subject"];
19026
+ readonly properties: {
19027
+ readonly action: {
19028
+ readonly type: 'union';
19029
+ readonly refs: ["lex:tools.ozone.inbox.appealActionedSubject#actionRef", "lex:tools.ozone.inbox.appealActionedSubject#labelRef", "lex:tools.ozone.inbox.appealActionedSubject#takedownRef"];
19030
+ readonly closed: true;
19031
+ readonly description: 'Moderation action being appealed.';
19032
+ };
19033
+ readonly subject: {
19034
+ readonly type: 'union';
19035
+ readonly refs: ["lex:com.atproto.admin.defs#repoRef", "lex:com.atproto.repo.strongRef"];
19036
+ readonly description: 'Subject being appealed.';
19037
+ };
19038
+ readonly reason: {
19039
+ readonly type: 'string';
19040
+ readonly maxGraphemes: 2000;
19041
+ readonly maxLength: 20000;
19042
+ readonly description: 'Optional explanation supplied by the user.';
19043
+ };
19044
+ readonly modTool: {
19045
+ readonly type: 'ref';
19046
+ readonly ref: 'lex:com.atproto.moderation.createReport#modTool';
19047
+ };
19048
+ };
19049
+ };
19050
+ };
19051
+ readonly output: {
19052
+ readonly encoding: 'application/json';
19053
+ readonly schema: {
19054
+ readonly type: 'ref';
19055
+ readonly ref: 'lex:tools.ozone.inbox.defs#subjectView';
19056
+ };
19057
+ };
19058
+ readonly errors: [{
19059
+ readonly name: 'InvalidAppealSubject';
19060
+ readonly description: 'Invalid appeal subject input.';
19061
+ }, {
19062
+ readonly name: 'AlreadyAppealed';
19063
+ readonly description: 'An active appeal already exists for this action.';
19064
+ }, {
19065
+ readonly name: 'NotAppealable';
19066
+ readonly description: 'The subject cannot be appealed.';
19067
+ }, {
19068
+ readonly name: 'AppealWindowExpired';
19069
+ readonly description: 'The appeal window for this action has closed.';
19070
+ }];
19071
+ };
19072
+ readonly actionRef: {
19073
+ readonly type: 'object';
19074
+ readonly required: ["id"];
19075
+ readonly properties: {
19076
+ readonly id: {
19077
+ readonly type: 'integer';
19078
+ readonly minimum: 1;
19079
+ readonly description: 'ID of the moderation action being appealed, available via actions in mod inbox.';
19080
+ };
19081
+ };
19082
+ };
19083
+ readonly labelRef: {
19084
+ readonly type: 'object';
19085
+ readonly required: ["val"];
19086
+ readonly properties: {
19087
+ readonly val: {
19088
+ readonly type: 'string';
19089
+ readonly minLength: 1;
19090
+ readonly description: 'Label being appealed.';
19091
+ };
19092
+ };
19093
+ };
19094
+ readonly takedownRef: {
19095
+ readonly type: 'object';
19096
+ readonly properties: {};
19097
+ };
19098
+ };
19099
+ };
19100
+ readonly ToolsOzoneInboxDefs: {
19101
+ readonly lexicon: 1;
19102
+ readonly id: 'tools.ozone.inbox.defs';
19103
+ readonly defs: {
19104
+ readonly subjectView: {
19105
+ readonly type: 'object';
19106
+ readonly description: 'A subject belonging to the viewer that has moderation actions against it.';
19107
+ readonly required: ["src", "subject", "enforcement", "createdAt", "updatedAt"];
19108
+ readonly properties: {
19109
+ readonly src: {
19110
+ readonly type: 'string';
19111
+ readonly format: 'did';
19112
+ readonly description: 'DID of the moderation service that took the actions.';
19113
+ };
19114
+ readonly subject: {
19115
+ readonly type: 'union';
19116
+ readonly refs: ["lex:com.atproto.admin.defs#repoRef", "lex:com.atproto.repo.strongRef"];
19117
+ };
19118
+ readonly enforcement: {
19119
+ readonly type: 'ref';
19120
+ readonly ref: 'lex:tools.ozone.inbox.defs#enforcementView';
19121
+ };
19122
+ readonly appeal: {
19123
+ readonly type: 'ref';
19124
+ readonly ref: 'lex:tools.ozone.inbox.defs#appealView';
19125
+ };
19126
+ readonly availableActions: {
19127
+ readonly type: 'array';
19128
+ readonly items: {
19129
+ readonly type: 'string';
19130
+ readonly knownValues: ["appeal"];
19131
+ };
19132
+ };
19133
+ readonly latestAction: {
19134
+ readonly type: 'ref';
19135
+ readonly ref: 'lex:tools.ozone.inbox.defs#actionView';
19136
+ };
19137
+ readonly actionCount: {
19138
+ readonly type: 'integer';
19139
+ };
19140
+ readonly createdAt: {
19141
+ readonly type: 'string';
19142
+ readonly format: 'datetime';
19143
+ };
19144
+ readonly updatedAt: {
19145
+ readonly type: 'string';
19146
+ readonly format: 'datetime';
19147
+ };
19148
+ };
19149
+ };
19150
+ readonly enforcementView: {
19151
+ readonly type: 'object';
19152
+ readonly description: 'The current enforcement state of a subject.';
19153
+ readonly required: ["state"];
19154
+ readonly properties: {
19155
+ readonly state: {
19156
+ readonly type: 'string';
19157
+ readonly knownValues: ["none", "labeled", "removed", "suspended", "takendown"];
19158
+ };
19159
+ readonly scope: {
19160
+ readonly type: 'string';
19161
+ readonly knownValues: ["network", "app", "labelOnly"];
19162
+ };
19163
+ readonly expiresAt: {
19164
+ readonly type: 'string';
19165
+ readonly format: 'datetime';
19166
+ };
19167
+ readonly labels: {
19168
+ readonly type: 'array';
19169
+ readonly items: {
19170
+ readonly type: 'string';
19171
+ };
19172
+ readonly description: 'Active label values on the subject, excluding negated and expired labels.';
19173
+ };
19174
+ };
19175
+ };
19176
+ readonly appealView: {
19177
+ readonly type: 'object';
19178
+ readonly description: "The state of the viewer's appeal against the actions on a subject.";
19179
+ readonly required: ["state"];
19180
+ readonly properties: {
19181
+ readonly state: {
19182
+ readonly type: 'string';
19183
+ readonly knownValues: ["none", "pending", "resolved", "superseded", "expired"];
19184
+ };
19185
+ readonly appealedAt: {
19186
+ readonly type: 'string';
19187
+ readonly format: 'datetime';
19188
+ };
19189
+ readonly resolvedAt: {
19190
+ readonly type: 'string';
19191
+ readonly format: 'datetime';
19192
+ readonly description: "When the appeal's report was closed.";
19193
+ };
19194
+ readonly note: {
19195
+ readonly type: 'string';
19196
+ readonly description: 'Moderator explanation, from the publicNote on the closing activity. Absent if none was written.';
19197
+ };
19198
+ readonly appealableUntil: {
19199
+ readonly type: 'string';
19200
+ readonly format: 'datetime';
19201
+ };
19202
+ };
19203
+ };
19204
+ readonly actionView: {
19205
+ readonly type: 'object';
19206
+ readonly description: 'A single moderation action taken against a subject.';
19207
+ readonly required: ["id", "type", "createdAt"];
19208
+ readonly properties: {
19209
+ readonly id: {
19210
+ readonly type: 'integer';
19211
+ readonly description: 'Action ID (moderation event ID).';
19212
+ };
19213
+ readonly type: {
19214
+ readonly type: 'string';
19215
+ readonly description: 'Public action type.';
19216
+ };
19217
+ readonly scope: {
19218
+ readonly type: 'string';
19219
+ readonly knownValues: ["network", "app", "labelOnly"];
19220
+ };
19221
+ readonly createdAt: {
19222
+ readonly type: 'string';
19223
+ readonly format: 'datetime';
19224
+ };
19225
+ readonly reversedAt: {
19226
+ readonly type: 'string';
19227
+ readonly format: 'datetime';
19228
+ };
19229
+ readonly expiresAt: {
19230
+ readonly type: 'string';
19231
+ readonly format: 'datetime';
19232
+ };
19233
+ readonly labels: {
19234
+ readonly type: 'array';
19235
+ readonly items: {
19236
+ readonly type: 'string';
19237
+ };
19238
+ readonly description: 'Label values, for labelApplied/labelRemoved.';
19239
+ };
19240
+ readonly policies: {
19241
+ readonly type: 'array';
19242
+ readonly items: {
19243
+ readonly type: 'string';
19244
+ };
19245
+ readonly description: 'Policies that were applied in this action.';
19246
+ };
19247
+ };
19248
+ };
19249
+ };
19250
+ };
19001
19251
  readonly ToolsOzoneModerationCancelScheduledActions: {
19002
19252
  readonly lexicon: 1;
19003
19253
  readonly id: 'tools.ozone.moderation.cancelScheduledActions';
@@ -21608,6 +21858,13 @@ export declare const schemaDict: {
21608
21858
  };
21609
21859
  readonly description: 'Policy keys to recommend when actioning reports in this queue';
21610
21860
  };
21861
+ readonly recommendedLabels: {
21862
+ readonly type: 'array';
21863
+ readonly items: {
21864
+ readonly type: 'string';
21865
+ };
21866
+ readonly description: 'Labels to recommend for this queue and use as fallback appeal routing mappings';
21867
+ };
21611
21868
  };
21612
21869
  };
21613
21870
  };
@@ -21681,6 +21938,13 @@ export declare const schemaDict: {
21681
21938
  };
21682
21939
  readonly description: 'Policy keys recommended when actioning reports in this queue';
21683
21940
  };
21941
+ readonly recommendedLabels: {
21942
+ readonly type: 'array';
21943
+ readonly items: {
21944
+ readonly type: 'string';
21945
+ };
21946
+ readonly description: 'Labels recommended for this queue and used as a fallback when routing label appeals';
21947
+ };
21684
21948
  readonly createdBy: {
21685
21949
  readonly type: 'string';
21686
21950
  readonly format: 'did';
@@ -22062,6 +22326,13 @@ export declare const schemaDict: {
22062
22326
  };
22063
22327
  readonly description: 'Policy keys to recommend when actioning reports in this queue';
22064
22328
  };
22329
+ readonly recommendedLabels: {
22330
+ readonly type: 'array';
22331
+ readonly items: {
22332
+ readonly type: 'string';
22333
+ };
22334
+ readonly description: 'Labels to recommend for this queue and use as fallback appeal routing mappings';
22335
+ };
22065
22336
  };
22066
22337
  };
22067
22338
  };
@@ -22081,6 +22352,9 @@ export declare const schemaDict: {
22081
22352
  readonly errors: [{
22082
22353
  readonly name: 'InvalidRecommendedPolicies';
22083
22354
  readonly description: 'One or more recommended policy keys do not exist in the configured policy list';
22355
+ }, {
22356
+ readonly name: 'ConflictingQueue';
22357
+ readonly description: 'The queue configuration conflicts with an existing queue';
22084
22358
  }];
22085
22359
  };
22086
22360
  };
@@ -22514,7 +22788,7 @@ export declare const schemaDict: {
22514
22788
  readonly items: {
22515
22789
  readonly type: 'integer';
22516
22790
  };
22517
- readonly description: 'Array of moderation event IDs representing actions taken on this report (sorted DESC, most recent first)';
22791
+ readonly description: 'Array of moderation event IDs representing actions taken on this report, in append order (most recently linked event last)';
22518
22792
  };
22519
22793
  readonly actions: {
22520
22794
  readonly type: 'array';
@@ -22682,25 +22956,65 @@ export declare const schemaDict: {
22682
22956
  readonly type: 'integer';
22683
22957
  readonly description: 'Number of reports currently not closed.';
22684
22958
  };
22959
+ readonly closedCount: {
22960
+ readonly type: 'integer';
22961
+ readonly description: 'Number of close transitions.';
22962
+ };
22685
22963
  readonly actionedCount: {
22686
22964
  readonly type: 'integer';
22687
- readonly description: 'Number of reports closed today.';
22965
+ readonly description: 'Number of closures whose last report action is label, tag, or takedown.';
22966
+ };
22967
+ readonly acknowledgedCount: {
22968
+ readonly type: 'integer';
22969
+ readonly description: 'Number of closures whose last report action is not label, tag, or takedown.';
22688
22970
  };
22689
22971
  readonly escalatedCount: {
22690
22972
  readonly type: 'integer';
22691
- readonly description: 'Number of reports escalated today.';
22973
+ readonly description: 'Number of reports escalated.';
22692
22974
  };
22693
22975
  readonly inboundCount: {
22694
22976
  readonly type: 'integer';
22695
- readonly description: 'Reports received today.';
22977
+ readonly description: 'Reports received.';
22978
+ };
22979
+ readonly labelActionCount: {
22980
+ readonly type: 'integer';
22981
+ readonly description: 'Closures whose last report action is a label event.';
22982
+ };
22983
+ readonly tagActionCount: {
22984
+ readonly type: 'integer';
22985
+ readonly description: 'Closures whose last report action is a tag event.';
22986
+ };
22987
+ readonly takedownActionCount: {
22988
+ readonly type: 'integer';
22989
+ readonly description: 'Closures whose last report action is a takedown event.';
22990
+ };
22991
+ readonly ahtDurationSec: {
22992
+ readonly type: 'integer';
22993
+ readonly description: 'Sum of report assignment-to-close seconds.';
22994
+ };
22995
+ readonly ahtSampleCount: {
22996
+ readonly type: 'integer';
22997
+ readonly description: 'Number of assigned closed-report samples in ahtDurationSec.';
22998
+ };
22999
+ readonly resolutionDurationSec: {
23000
+ readonly type: 'integer';
23001
+ readonly description: 'Sum of report creation-to-close seconds.';
23002
+ };
23003
+ readonly resolutionSampleCount: {
23004
+ readonly type: 'integer';
23005
+ readonly description: 'Number of closed-report samples in resolutionDurationSec.';
22696
23006
  };
22697
23007
  readonly actionRate: {
22698
23008
  readonly type: 'integer';
22699
- readonly description: 'Percentage of reports actioned (actionedCount / inboundCount * 100), rounded to nearest integer.';
23009
+ readonly description: 'Percentage of closures actioned (actionedCount / closedCount * 100), rounded to nearest integer.';
22700
23010
  };
22701
23011
  readonly avgHandlingTimeSec: {
22702
23012
  readonly type: 'integer';
22703
- readonly description: 'Average time in seconds from report creation (or moderator assignment) to close.';
23013
+ readonly description: 'Average handling time in seconds from report assignment to close.';
23014
+ };
23015
+ readonly avgResolutionTimeSec: {
23016
+ readonly type: 'integer';
23017
+ readonly description: 'Average resolution time in seconds from report creation to close.';
22704
23018
  };
22705
23019
  readonly lastUpdated: {
22706
23020
  readonly type: 'string';
@@ -22727,9 +23041,17 @@ export declare const schemaDict: {
22727
23041
  readonly type: 'integer';
22728
23042
  readonly description: 'Number of reports not closed at time of computation.';
22729
23043
  };
23044
+ readonly closedCount: {
23045
+ readonly type: 'integer';
23046
+ readonly description: 'Number of close transitions during this day.';
23047
+ };
22730
23048
  readonly actionedCount: {
22731
23049
  readonly type: 'integer';
22732
- readonly description: 'Number of reports closed during this day.';
23050
+ readonly description: 'Number of closures whose last report action is label, tag, or takedown during this day.';
23051
+ };
23052
+ readonly acknowledgedCount: {
23053
+ readonly type: 'integer';
23054
+ readonly description: 'Number of closures whose last report action is not label, tag, or takedown during this day.';
22733
23055
  };
22734
23056
  readonly escalatedCount: {
22735
23057
  readonly type: 'integer';
@@ -22739,13 +23061,45 @@ export declare const schemaDict: {
22739
23061
  readonly type: 'integer';
22740
23062
  readonly description: 'Reports received during this day.';
22741
23063
  };
23064
+ readonly labelActionCount: {
23065
+ readonly type: 'integer';
23066
+ readonly description: 'Closures whose last report action is a label event during this day.';
23067
+ };
23068
+ readonly tagActionCount: {
23069
+ readonly type: 'integer';
23070
+ readonly description: 'Closures whose last report action is a tag event during this day.';
23071
+ };
23072
+ readonly takedownActionCount: {
23073
+ readonly type: 'integer';
23074
+ readonly description: 'Closures whose last report action is a takedown event during this day.';
23075
+ };
23076
+ readonly ahtDurationSec: {
23077
+ readonly type: 'integer';
23078
+ readonly description: "Sum of report assignment-to-close seconds for this day's samples.";
23079
+ };
23080
+ readonly ahtSampleCount: {
23081
+ readonly type: 'integer';
23082
+ readonly description: 'Number of assigned closed-report samples in ahtDurationSec.';
23083
+ };
23084
+ readonly resolutionDurationSec: {
23085
+ readonly type: 'integer';
23086
+ readonly description: "Sum of report creation-to-close seconds for this day's samples.";
23087
+ };
23088
+ readonly resolutionSampleCount: {
23089
+ readonly type: 'integer';
23090
+ readonly description: 'Number of closed-report samples in resolutionDurationSec.';
23091
+ };
22742
23092
  readonly actionRate: {
22743
23093
  readonly type: 'integer';
22744
- readonly description: 'Percentage of reports actioned (actionedCount / inboundCount * 100), rounded to nearest integer.';
23094
+ readonly description: 'Percentage of closures actioned (actionedCount / closedCount * 100), rounded to nearest integer.';
22745
23095
  };
22746
23096
  readonly avgHandlingTimeSec: {
22747
23097
  readonly type: 'integer';
22748
- readonly description: 'Average time in seconds from report creation (or moderator assignment) to close.';
23098
+ readonly description: 'Average handling time in seconds from report assignment to close.';
23099
+ };
23100
+ readonly avgResolutionTimeSec: {
23101
+ readonly type: 'integer';
23102
+ readonly description: 'Average resolution time in seconds from report creation to close.';
22749
23103
  };
22750
23104
  };
22751
23105
  };
@@ -22957,7 +23311,7 @@ export declare const schemaDict: {
22957
23311
  readonly defs: {
22958
23312
  readonly main: {
22959
23313
  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.';
23314
+ 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
23315
  readonly parameters: {
22962
23316
  readonly type: 'params';
22963
23317
  readonly properties: {
@@ -23321,7 +23675,7 @@ export declare const schemaDict: {
23321
23675
  readonly defs: {
23322
23676
  readonly main: {
23323
23677
  readonly type: 'procedure';
23324
- readonly description: 'Recompute report statistics for a date range. Useful for backfilling after failures or data corrections.';
23678
+ readonly description: 'Recompute report statistics for a date range.';
23325
23679
  readonly input: {
23326
23680
  readonly encoding: 'application/json';
23327
23681
  readonly schema: {
@@ -28378,6 +28732,14 @@ export declare const schemas: ({
28378
28732
  readonly type: 'ref';
28379
28733
  readonly ref: 'lex:app.bsky.feed.defs#replyRef';
28380
28734
  };
28735
+ readonly opThreadPostIndex: {
28736
+ readonly type: 'integer';
28737
+ 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.';
28738
+ };
28739
+ readonly opThreadPostCount: {
28740
+ readonly type: 'integer';
28741
+ 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.';
28742
+ };
28381
28743
  readonly reason: {
28382
28744
  readonly type: 'union';
28383
28745
  readonly refs: ["lex:app.bsky.feed.defs#reasonRepost", "lex:app.bsky.feed.defs#reasonPin"];
@@ -29435,6 +29797,11 @@ export declare const schemas: ({
29435
29797
  readonly cursor: {
29436
29798
  readonly type: 'string';
29437
29799
  };
29800
+ readonly sort: {
29801
+ readonly type: 'string';
29802
+ readonly knownValues: ["latest", "top"];
29803
+ readonly description: "Ordering of results. 'latest' (default when unset) is newest first; 'top' orders quotes by their like count.";
29804
+ };
29438
29805
  };
29439
29806
  };
29440
29807
  readonly output: {
@@ -43748,6 +44115,241 @@ export declare const schemas: ({
43748
44115
  };
43749
44116
  };
43750
44117
  };
44118
+ } | {
44119
+ readonly lexicon: 1;
44120
+ readonly id: 'tools.ozone.inbox.appealActionedSubject';
44121
+ readonly defs: {
44122
+ readonly main: {
44123
+ readonly type: 'procedure';
44124
+ readonly description: "Appeal a moderation action affecting the user's account or content.";
44125
+ readonly input: {
44126
+ readonly encoding: 'application/json';
44127
+ readonly schema: {
44128
+ readonly type: 'object';
44129
+ readonly required: ["subject"];
44130
+ readonly properties: {
44131
+ readonly action: {
44132
+ readonly type: 'union';
44133
+ readonly refs: ["lex:tools.ozone.inbox.appealActionedSubject#actionRef", "lex:tools.ozone.inbox.appealActionedSubject#labelRef", "lex:tools.ozone.inbox.appealActionedSubject#takedownRef"];
44134
+ readonly closed: true;
44135
+ readonly description: 'Moderation action being appealed.';
44136
+ };
44137
+ readonly subject: {
44138
+ readonly type: 'union';
44139
+ readonly refs: ["lex:com.atproto.admin.defs#repoRef", "lex:com.atproto.repo.strongRef"];
44140
+ readonly description: 'Subject being appealed.';
44141
+ };
44142
+ readonly reason: {
44143
+ readonly type: 'string';
44144
+ readonly maxGraphemes: 2000;
44145
+ readonly maxLength: 20000;
44146
+ readonly description: 'Optional explanation supplied by the user.';
44147
+ };
44148
+ readonly modTool: {
44149
+ readonly type: 'ref';
44150
+ readonly ref: 'lex:com.atproto.moderation.createReport#modTool';
44151
+ };
44152
+ };
44153
+ };
44154
+ };
44155
+ readonly output: {
44156
+ readonly encoding: 'application/json';
44157
+ readonly schema: {
44158
+ readonly type: 'ref';
44159
+ readonly ref: 'lex:tools.ozone.inbox.defs#subjectView';
44160
+ };
44161
+ };
44162
+ readonly errors: [{
44163
+ readonly name: 'InvalidAppealSubject';
44164
+ readonly description: 'Invalid appeal subject input.';
44165
+ }, {
44166
+ readonly name: 'AlreadyAppealed';
44167
+ readonly description: 'An active appeal already exists for this action.';
44168
+ }, {
44169
+ readonly name: 'NotAppealable';
44170
+ readonly description: 'The subject cannot be appealed.';
44171
+ }, {
44172
+ readonly name: 'AppealWindowExpired';
44173
+ readonly description: 'The appeal window for this action has closed.';
44174
+ }];
44175
+ };
44176
+ readonly actionRef: {
44177
+ readonly type: 'object';
44178
+ readonly required: ["id"];
44179
+ readonly properties: {
44180
+ readonly id: {
44181
+ readonly type: 'integer';
44182
+ readonly minimum: 1;
44183
+ readonly description: 'ID of the moderation action being appealed, available via actions in mod inbox.';
44184
+ };
44185
+ };
44186
+ };
44187
+ readonly labelRef: {
44188
+ readonly type: 'object';
44189
+ readonly required: ["val"];
44190
+ readonly properties: {
44191
+ readonly val: {
44192
+ readonly type: 'string';
44193
+ readonly minLength: 1;
44194
+ readonly description: 'Label being appealed.';
44195
+ };
44196
+ };
44197
+ };
44198
+ readonly takedownRef: {
44199
+ readonly type: 'object';
44200
+ readonly properties: {};
44201
+ };
44202
+ };
44203
+ } | {
44204
+ readonly lexicon: 1;
44205
+ readonly id: 'tools.ozone.inbox.defs';
44206
+ readonly defs: {
44207
+ readonly subjectView: {
44208
+ readonly type: 'object';
44209
+ readonly description: 'A subject belonging to the viewer that has moderation actions against it.';
44210
+ readonly required: ["src", "subject", "enforcement", "createdAt", "updatedAt"];
44211
+ readonly properties: {
44212
+ readonly src: {
44213
+ readonly type: 'string';
44214
+ readonly format: 'did';
44215
+ readonly description: 'DID of the moderation service that took the actions.';
44216
+ };
44217
+ readonly subject: {
44218
+ readonly type: 'union';
44219
+ readonly refs: ["lex:com.atproto.admin.defs#repoRef", "lex:com.atproto.repo.strongRef"];
44220
+ };
44221
+ readonly enforcement: {
44222
+ readonly type: 'ref';
44223
+ readonly ref: 'lex:tools.ozone.inbox.defs#enforcementView';
44224
+ };
44225
+ readonly appeal: {
44226
+ readonly type: 'ref';
44227
+ readonly ref: 'lex:tools.ozone.inbox.defs#appealView';
44228
+ };
44229
+ readonly availableActions: {
44230
+ readonly type: 'array';
44231
+ readonly items: {
44232
+ readonly type: 'string';
44233
+ readonly knownValues: ["appeal"];
44234
+ };
44235
+ };
44236
+ readonly latestAction: {
44237
+ readonly type: 'ref';
44238
+ readonly ref: 'lex:tools.ozone.inbox.defs#actionView';
44239
+ };
44240
+ readonly actionCount: {
44241
+ readonly type: 'integer';
44242
+ };
44243
+ readonly createdAt: {
44244
+ readonly type: 'string';
44245
+ readonly format: 'datetime';
44246
+ };
44247
+ readonly updatedAt: {
44248
+ readonly type: 'string';
44249
+ readonly format: 'datetime';
44250
+ };
44251
+ };
44252
+ };
44253
+ readonly enforcementView: {
44254
+ readonly type: 'object';
44255
+ readonly description: 'The current enforcement state of a subject.';
44256
+ readonly required: ["state"];
44257
+ readonly properties: {
44258
+ readonly state: {
44259
+ readonly type: 'string';
44260
+ readonly knownValues: ["none", "labeled", "removed", "suspended", "takendown"];
44261
+ };
44262
+ readonly scope: {
44263
+ readonly type: 'string';
44264
+ readonly knownValues: ["network", "app", "labelOnly"];
44265
+ };
44266
+ readonly expiresAt: {
44267
+ readonly type: 'string';
44268
+ readonly format: 'datetime';
44269
+ };
44270
+ readonly labels: {
44271
+ readonly type: 'array';
44272
+ readonly items: {
44273
+ readonly type: 'string';
44274
+ };
44275
+ readonly description: 'Active label values on the subject, excluding negated and expired labels.';
44276
+ };
44277
+ };
44278
+ };
44279
+ readonly appealView: {
44280
+ readonly type: 'object';
44281
+ readonly description: "The state of the viewer's appeal against the actions on a subject.";
44282
+ readonly required: ["state"];
44283
+ readonly properties: {
44284
+ readonly state: {
44285
+ readonly type: 'string';
44286
+ readonly knownValues: ["none", "pending", "resolved", "superseded", "expired"];
44287
+ };
44288
+ readonly appealedAt: {
44289
+ readonly type: 'string';
44290
+ readonly format: 'datetime';
44291
+ };
44292
+ readonly resolvedAt: {
44293
+ readonly type: 'string';
44294
+ readonly format: 'datetime';
44295
+ readonly description: "When the appeal's report was closed.";
44296
+ };
44297
+ readonly note: {
44298
+ readonly type: 'string';
44299
+ readonly description: 'Moderator explanation, from the publicNote on the closing activity. Absent if none was written.';
44300
+ };
44301
+ readonly appealableUntil: {
44302
+ readonly type: 'string';
44303
+ readonly format: 'datetime';
44304
+ };
44305
+ };
44306
+ };
44307
+ readonly actionView: {
44308
+ readonly type: 'object';
44309
+ readonly description: 'A single moderation action taken against a subject.';
44310
+ readonly required: ["id", "type", "createdAt"];
44311
+ readonly properties: {
44312
+ readonly id: {
44313
+ readonly type: 'integer';
44314
+ readonly description: 'Action ID (moderation event ID).';
44315
+ };
44316
+ readonly type: {
44317
+ readonly type: 'string';
44318
+ readonly description: 'Public action type.';
44319
+ };
44320
+ readonly scope: {
44321
+ readonly type: 'string';
44322
+ readonly knownValues: ["network", "app", "labelOnly"];
44323
+ };
44324
+ readonly createdAt: {
44325
+ readonly type: 'string';
44326
+ readonly format: 'datetime';
44327
+ };
44328
+ readonly reversedAt: {
44329
+ readonly type: 'string';
44330
+ readonly format: 'datetime';
44331
+ };
44332
+ readonly expiresAt: {
44333
+ readonly type: 'string';
44334
+ readonly format: 'datetime';
44335
+ };
44336
+ readonly labels: {
44337
+ readonly type: 'array';
44338
+ readonly items: {
44339
+ readonly type: 'string';
44340
+ };
44341
+ readonly description: 'Label values, for labelApplied/labelRemoved.';
44342
+ };
44343
+ readonly policies: {
44344
+ readonly type: 'array';
44345
+ readonly items: {
44346
+ readonly type: 'string';
44347
+ };
44348
+ readonly description: 'Policies that were applied in this action.';
44349
+ };
44350
+ };
44351
+ };
44352
+ };
43751
44353
  } | {
43752
44354
  readonly lexicon: 1;
43753
44355
  readonly id: 'tools.ozone.moderation.cancelScheduledActions';
@@ -46340,6 +46942,13 @@ export declare const schemas: ({
46340
46942
  };
46341
46943
  readonly description: 'Policy keys to recommend when actioning reports in this queue';
46342
46944
  };
46945
+ readonly recommendedLabels: {
46946
+ readonly type: 'array';
46947
+ readonly items: {
46948
+ readonly type: 'string';
46949
+ };
46950
+ readonly description: 'Labels to recommend for this queue and use as fallback appeal routing mappings';
46951
+ };
46343
46952
  };
46344
46953
  };
46345
46954
  };
@@ -46412,6 +47021,13 @@ export declare const schemas: ({
46412
47021
  };
46413
47022
  readonly description: 'Policy keys recommended when actioning reports in this queue';
46414
47023
  };
47024
+ readonly recommendedLabels: {
47025
+ readonly type: 'array';
47026
+ readonly items: {
47027
+ readonly type: 'string';
47028
+ };
47029
+ readonly description: 'Labels recommended for this queue and used as a fallback when routing label appeals';
47030
+ };
46415
47031
  readonly createdBy: {
46416
47032
  readonly type: 'string';
46417
47033
  readonly format: 'did';
@@ -46787,6 +47403,13 @@ export declare const schemas: ({
46787
47403
  };
46788
47404
  readonly description: 'Policy keys to recommend when actioning reports in this queue';
46789
47405
  };
47406
+ readonly recommendedLabels: {
47407
+ readonly type: 'array';
47408
+ readonly items: {
47409
+ readonly type: 'string';
47410
+ };
47411
+ readonly description: 'Labels to recommend for this queue and use as fallback appeal routing mappings';
47412
+ };
46790
47413
  };
46791
47414
  };
46792
47415
  };
@@ -46806,6 +47429,9 @@ export declare const schemas: ({
46806
47429
  readonly errors: [{
46807
47430
  readonly name: 'InvalidRecommendedPolicies';
46808
47431
  readonly description: 'One or more recommended policy keys do not exist in the configured policy list';
47432
+ }, {
47433
+ readonly name: 'ConflictingQueue';
47434
+ readonly description: 'The queue configuration conflicts with an existing queue';
46809
47435
  }];
46810
47436
  };
46811
47437
  };
@@ -47235,7 +47861,7 @@ export declare const schemas: ({
47235
47861
  readonly items: {
47236
47862
  readonly type: 'integer';
47237
47863
  };
47238
- readonly description: 'Array of moderation event IDs representing actions taken on this report (sorted DESC, most recent first)';
47864
+ readonly description: 'Array of moderation event IDs representing actions taken on this report, in append order (most recently linked event last)';
47239
47865
  };
47240
47866
  readonly actions: {
47241
47867
  readonly type: 'array';
@@ -47403,25 +48029,65 @@ export declare const schemas: ({
47403
48029
  readonly type: 'integer';
47404
48030
  readonly description: 'Number of reports currently not closed.';
47405
48031
  };
48032
+ readonly closedCount: {
48033
+ readonly type: 'integer';
48034
+ readonly description: 'Number of close transitions.';
48035
+ };
47406
48036
  readonly actionedCount: {
47407
48037
  readonly type: 'integer';
47408
- readonly description: 'Number of reports closed today.';
48038
+ readonly description: 'Number of closures whose last report action is label, tag, or takedown.';
48039
+ };
48040
+ readonly acknowledgedCount: {
48041
+ readonly type: 'integer';
48042
+ readonly description: 'Number of closures whose last report action is not label, tag, or takedown.';
47409
48043
  };
47410
48044
  readonly escalatedCount: {
47411
48045
  readonly type: 'integer';
47412
- readonly description: 'Number of reports escalated today.';
48046
+ readonly description: 'Number of reports escalated.';
47413
48047
  };
47414
48048
  readonly inboundCount: {
47415
48049
  readonly type: 'integer';
47416
- readonly description: 'Reports received today.';
48050
+ readonly description: 'Reports received.';
48051
+ };
48052
+ readonly labelActionCount: {
48053
+ readonly type: 'integer';
48054
+ readonly description: 'Closures whose last report action is a label event.';
48055
+ };
48056
+ readonly tagActionCount: {
48057
+ readonly type: 'integer';
48058
+ readonly description: 'Closures whose last report action is a tag event.';
48059
+ };
48060
+ readonly takedownActionCount: {
48061
+ readonly type: 'integer';
48062
+ readonly description: 'Closures whose last report action is a takedown event.';
48063
+ };
48064
+ readonly ahtDurationSec: {
48065
+ readonly type: 'integer';
48066
+ readonly description: 'Sum of report assignment-to-close seconds.';
48067
+ };
48068
+ readonly ahtSampleCount: {
48069
+ readonly type: 'integer';
48070
+ readonly description: 'Number of assigned closed-report samples in ahtDurationSec.';
48071
+ };
48072
+ readonly resolutionDurationSec: {
48073
+ readonly type: 'integer';
48074
+ readonly description: 'Sum of report creation-to-close seconds.';
48075
+ };
48076
+ readonly resolutionSampleCount: {
48077
+ readonly type: 'integer';
48078
+ readonly description: 'Number of closed-report samples in resolutionDurationSec.';
47417
48079
  };
47418
48080
  readonly actionRate: {
47419
48081
  readonly type: 'integer';
47420
- readonly description: 'Percentage of reports actioned (actionedCount / inboundCount * 100), rounded to nearest integer.';
48082
+ readonly description: 'Percentage of closures actioned (actionedCount / closedCount * 100), rounded to nearest integer.';
47421
48083
  };
47422
48084
  readonly avgHandlingTimeSec: {
47423
48085
  readonly type: 'integer';
47424
- readonly description: 'Average time in seconds from report creation (or moderator assignment) to close.';
48086
+ readonly description: 'Average handling time in seconds from report assignment to close.';
48087
+ };
48088
+ readonly avgResolutionTimeSec: {
48089
+ readonly type: 'integer';
48090
+ readonly description: 'Average resolution time in seconds from report creation to close.';
47425
48091
  };
47426
48092
  readonly lastUpdated: {
47427
48093
  readonly type: 'string';
@@ -47448,9 +48114,17 @@ export declare const schemas: ({
47448
48114
  readonly type: 'integer';
47449
48115
  readonly description: 'Number of reports not closed at time of computation.';
47450
48116
  };
48117
+ readonly closedCount: {
48118
+ readonly type: 'integer';
48119
+ readonly description: 'Number of close transitions during this day.';
48120
+ };
47451
48121
  readonly actionedCount: {
47452
48122
  readonly type: 'integer';
47453
- readonly description: 'Number of reports closed during this day.';
48123
+ readonly description: 'Number of closures whose last report action is label, tag, or takedown during this day.';
48124
+ };
48125
+ readonly acknowledgedCount: {
48126
+ readonly type: 'integer';
48127
+ readonly description: 'Number of closures whose last report action is not label, tag, or takedown during this day.';
47454
48128
  };
47455
48129
  readonly escalatedCount: {
47456
48130
  readonly type: 'integer';
@@ -47460,13 +48134,45 @@ export declare const schemas: ({
47460
48134
  readonly type: 'integer';
47461
48135
  readonly description: 'Reports received during this day.';
47462
48136
  };
48137
+ readonly labelActionCount: {
48138
+ readonly type: 'integer';
48139
+ readonly description: 'Closures whose last report action is a label event during this day.';
48140
+ };
48141
+ readonly tagActionCount: {
48142
+ readonly type: 'integer';
48143
+ readonly description: 'Closures whose last report action is a tag event during this day.';
48144
+ };
48145
+ readonly takedownActionCount: {
48146
+ readonly type: 'integer';
48147
+ readonly description: 'Closures whose last report action is a takedown event during this day.';
48148
+ };
48149
+ readonly ahtDurationSec: {
48150
+ readonly type: 'integer';
48151
+ readonly description: "Sum of report assignment-to-close seconds for this day's samples.";
48152
+ };
48153
+ readonly ahtSampleCount: {
48154
+ readonly type: 'integer';
48155
+ readonly description: 'Number of assigned closed-report samples in ahtDurationSec.';
48156
+ };
48157
+ readonly resolutionDurationSec: {
48158
+ readonly type: 'integer';
48159
+ readonly description: "Sum of report creation-to-close seconds for this day's samples.";
48160
+ };
48161
+ readonly resolutionSampleCount: {
48162
+ readonly type: 'integer';
48163
+ readonly description: 'Number of closed-report samples in resolutionDurationSec.';
48164
+ };
47463
48165
  readonly actionRate: {
47464
48166
  readonly type: 'integer';
47465
- readonly description: 'Percentage of reports actioned (actionedCount / inboundCount * 100), rounded to nearest integer.';
48167
+ readonly description: 'Percentage of closures actioned (actionedCount / closedCount * 100), rounded to nearest integer.';
47466
48168
  };
47467
48169
  readonly avgHandlingTimeSec: {
47468
48170
  readonly type: 'integer';
47469
- readonly description: 'Average time in seconds from report creation (or moderator assignment) to close.';
48171
+ readonly description: 'Average handling time in seconds from report assignment to close.';
48172
+ };
48173
+ readonly avgResolutionTimeSec: {
48174
+ readonly type: 'integer';
48175
+ readonly description: 'Average resolution time in seconds from report creation to close.';
47470
48176
  };
47471
48177
  };
47472
48178
  };
@@ -47674,7 +48380,7 @@ export declare const schemas: ({
47674
48380
  readonly defs: {
47675
48381
  readonly main: {
47676
48382
  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.';
48383
+ 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
48384
  readonly parameters: {
47679
48385
  readonly type: 'params';
47680
48386
  readonly properties: {
@@ -48032,7 +48738,7 @@ export declare const schemas: ({
48032
48738
  readonly defs: {
48033
48739
  readonly main: {
48034
48740
  readonly type: 'procedure';
48035
- readonly description: 'Recompute report statistics for a date range. Useful for backfilling after failures or data corrections.';
48741
+ readonly description: 'Recompute report statistics for a date range.';
48036
48742
  readonly input: {
48037
48743
  readonly encoding: 'application/json';
48038
48744
  readonly schema: {
@@ -50069,6 +50775,8 @@ export declare const ids: {
50069
50775
  readonly ToolsOzoneCommunicationListTemplates: 'tools.ozone.communication.listTemplates';
50070
50776
  readonly ToolsOzoneCommunicationUpdateTemplate: 'tools.ozone.communication.updateTemplate';
50071
50777
  readonly ToolsOzoneHostingGetAccountHistory: 'tools.ozone.hosting.getAccountHistory';
50778
+ readonly ToolsOzoneInboxAppealActionedSubject: 'tools.ozone.inbox.appealActionedSubject';
50779
+ readonly ToolsOzoneInboxDefs: 'tools.ozone.inbox.defs';
50072
50780
  readonly ToolsOzoneModerationCancelScheduledActions: 'tools.ozone.moderation.cancelScheduledActions';
50073
50781
  readonly ToolsOzoneModerationDefs: 'tools.ozone.moderation.defs';
50074
50782
  readonly ToolsOzoneModerationEmitEvent: 'tools.ozone.moderation.emitEvent';