@atproto/ozone 0.1.172 → 0.1.174

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 (450) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/api/index.d.ts.map +1 -1
  3. package/dist/api/index.js +40 -0
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/api/moderation/emitEvent.d.ts.map +1 -1
  6. package/dist/api/moderation/emitEvent.js +31 -0
  7. package/dist/api/moderation/emitEvent.js.map +1 -1
  8. package/dist/api/queue/assignModerator.d.ts +4 -0
  9. package/dist/api/queue/assignModerator.d.ts.map +1 -0
  10. package/dist/api/queue/assignModerator.js +28 -0
  11. package/dist/api/queue/assignModerator.js.map +1 -0
  12. package/dist/api/queue/createQueue.d.ts +4 -0
  13. package/dist/api/queue/createQueue.d.ts.map +1 -0
  14. package/dist/api/queue/createQueue.js +44 -0
  15. package/dist/api/queue/createQueue.js.map +1 -0
  16. package/dist/api/queue/deleteQueue.d.ts +4 -0
  17. package/dist/api/queue/deleteQueue.d.ts.map +1 -0
  18. package/dist/api/queue/deleteQueue.js +40 -0
  19. package/dist/api/queue/deleteQueue.js.map +1 -0
  20. package/dist/api/queue/getAssignments.d.ts +4 -0
  21. package/dist/api/queue/getAssignments.d.ts.map +1 -0
  22. package/dist/api/queue/getAssignments.js +19 -0
  23. package/dist/api/queue/getAssignments.js.map +1 -0
  24. package/dist/api/queue/listQueues.d.ts +4 -0
  25. package/dist/api/queue/listQueues.d.ts.map +1 -0
  26. package/dist/api/queue/listQueues.js +29 -0
  27. package/dist/api/queue/listQueues.js.map +1 -0
  28. package/dist/api/queue/routeReports.d.ts +4 -0
  29. package/dist/api/queue/routeReports.d.ts.map +1 -0
  30. package/dist/api/queue/routeReports.js +33 -0
  31. package/dist/api/queue/routeReports.js.map +1 -0
  32. package/dist/api/queue/unassignModerator.d.ts +4 -0
  33. package/dist/api/queue/unassignModerator.d.ts.map +1 -0
  34. package/dist/api/queue/unassignModerator.js +24 -0
  35. package/dist/api/queue/unassignModerator.js.map +1 -0
  36. package/dist/api/queue/updateQueue.d.ts +4 -0
  37. package/dist/api/queue/updateQueue.d.ts.map +1 -0
  38. package/dist/api/queue/updateQueue.js +39 -0
  39. package/dist/api/queue/updateQueue.js.map +1 -0
  40. package/dist/api/report/assignModerator.d.ts +4 -0
  41. package/dist/api/report/assignModerator.d.ts.map +1 -0
  42. package/dist/api/report/assignModerator.js +33 -0
  43. package/dist/api/report/assignModerator.js.map +1 -0
  44. package/dist/api/report/createActivity.d.ts +4 -0
  45. package/dist/api/report/createActivity.d.ts.map +1 -0
  46. package/dist/api/report/createActivity.js +44 -0
  47. package/dist/api/report/createActivity.js.map +1 -0
  48. package/dist/api/report/getAssignments.d.ts +4 -0
  49. package/dist/api/report/getAssignments.d.ts.map +1 -0
  50. package/dist/api/report/getAssignments.js +19 -0
  51. package/dist/api/report/getAssignments.js.map +1 -0
  52. package/dist/api/report/getHistoricalStats.d.ts +4 -0
  53. package/dist/api/report/getHistoricalStats.d.ts.map +1 -0
  54. package/dist/api/report/getHistoricalStats.js +32 -0
  55. package/dist/api/report/getHistoricalStats.js.map +1 -0
  56. package/dist/api/report/getLatestReport.d.ts +4 -0
  57. package/dist/api/report/getLatestReport.d.ts.map +1 -0
  58. package/dist/api/report/getLatestReport.js +31 -0
  59. package/dist/api/report/getLatestReport.js.map +1 -0
  60. package/dist/api/report/getLiveStats.d.ts +4 -0
  61. package/dist/api/report/getLiveStats.d.ts.map +1 -0
  62. package/dist/api/report/getLiveStats.js +25 -0
  63. package/dist/api/report/getLiveStats.js.map +1 -0
  64. package/dist/api/report/getReport.d.ts +4 -0
  65. package/dist/api/report/getReport.d.ts.map +1 -0
  66. package/dist/api/report/getReport.js +35 -0
  67. package/dist/api/report/getReport.js.map +1 -0
  68. package/dist/api/report/listActivities.d.ts +4 -0
  69. package/dist/api/report/listActivities.d.ts.map +1 -0
  70. package/dist/api/report/listActivities.js +25 -0
  71. package/dist/api/report/listActivities.js.map +1 -0
  72. package/dist/api/report/queryReports.d.ts +4 -0
  73. package/dist/api/report/queryReports.d.ts.map +1 -0
  74. package/dist/api/report/queryReports.js +29 -0
  75. package/dist/api/report/queryReports.js.map +1 -0
  76. package/dist/api/report/reassignQueue.d.ts +4 -0
  77. package/dist/api/report/reassignQueue.d.ts.map +1 -0
  78. package/dist/api/report/reassignQueue.js +45 -0
  79. package/dist/api/report/reassignQueue.js.map +1 -0
  80. package/dist/api/report/refreshStats.d.ts +4 -0
  81. package/dist/api/report/refreshStats.d.ts.map +1 -0
  82. package/dist/api/report/refreshStats.js +26 -0
  83. package/dist/api/report/refreshStats.js.map +1 -0
  84. package/dist/api/report/unassignModerator.d.ts +4 -0
  85. package/dist/api/report/unassignModerator.d.ts.map +1 -0
  86. package/dist/api/report/unassignModerator.js +21 -0
  87. package/dist/api/report/unassignModerator.js.map +1 -0
  88. package/dist/api/util.d.ts +2 -0
  89. package/dist/api/util.d.ts.map +1 -1
  90. package/dist/api/util.js +9 -1
  91. package/dist/api/util.js.map +1 -1
  92. package/dist/assignment/index.d.ts +89 -0
  93. package/dist/assignment/index.d.ts.map +1 -0
  94. package/dist/assignment/index.js +537 -0
  95. package/dist/assignment/index.js.map +1 -0
  96. package/dist/config/config.d.ts +14 -0
  97. package/dist/config/config.d.ts.map +1 -1
  98. package/dist/config/config.js +9 -0
  99. package/dist/config/config.js.map +1 -1
  100. package/dist/config/env.d.ts +3 -0
  101. package/dist/config/env.d.ts.map +1 -1
  102. package/dist/config/env.js +3 -0
  103. package/dist/config/env.js.map +1 -1
  104. package/dist/context.d.ts +9 -0
  105. package/dist/context.d.ts.map +1 -1
  106. package/dist/context.js +31 -10
  107. package/dist/context.js.map +1 -1
  108. package/dist/daemon/context.d.ts +6 -0
  109. package/dist/daemon/context.d.ts.map +1 -1
  110. package/dist/daemon/context.js +28 -4
  111. package/dist/daemon/context.js.map +1 -1
  112. package/dist/daemon/event-reverser.d.ts +1 -0
  113. package/dist/daemon/event-reverser.d.ts.map +1 -1
  114. package/dist/daemon/event-reverser.js +42 -1
  115. package/dist/daemon/event-reverser.js.map +1 -1
  116. package/dist/daemon/job-cursor.d.ts +5 -0
  117. package/dist/daemon/job-cursor.d.ts.map +1 -0
  118. package/dist/daemon/job-cursor.js +28 -0
  119. package/dist/daemon/job-cursor.js.map +1 -0
  120. package/dist/daemon/queue-router.d.ts +17 -0
  121. package/dist/daemon/queue-router.d.ts.map +1 -0
  122. package/dist/daemon/queue-router.js +114 -0
  123. package/dist/daemon/queue-router.js.map +1 -0
  124. package/dist/daemon/stats-computer.d.ts +51 -0
  125. package/dist/daemon/stats-computer.d.ts.map +1 -0
  126. package/dist/daemon/stats-computer.js +117 -0
  127. package/dist/daemon/stats-computer.js.map +1 -0
  128. package/dist/daemon/strike-expiry-processor.d.ts.map +1 -1
  129. package/dist/daemon/strike-expiry-processor.js +4 -19
  130. package/dist/daemon/strike-expiry-processor.js.map +1 -1
  131. package/dist/db/migrations/20260219T164523000Z-create-report-table.d.ts +4 -0
  132. package/dist/db/migrations/20260219T164523000Z-create-report-table.d.ts.map +1 -0
  133. package/dist/db/migrations/20260219T164523000Z-create-report-table.js +126 -0
  134. package/dist/db/migrations/20260219T164523000Z-create-report-table.js.map +1 -0
  135. package/dist/db/migrations/20260219T165302248Z-moderator-assignment.d.ts +4 -0
  136. package/dist/db/migrations/20260219T165302248Z-moderator-assignment.d.ts.map +1 -0
  137. package/dist/db/migrations/20260219T165302248Z-moderator-assignment.js +35 -0
  138. package/dist/db/migrations/20260219T165302248Z-moderator-assignment.js.map +1 -0
  139. package/dist/db/migrations/20260225T000000000Z-add-report-queue-table.d.ts +4 -0
  140. package/dist/db/migrations/20260225T000000000Z-add-report-queue-table.d.ts.map +1 -0
  141. package/dist/db/migrations/20260225T000000000Z-add-report-queue-table.js +36 -0
  142. package/dist/db/migrations/20260225T000000000Z-add-report-queue-table.js.map +1 -0
  143. package/dist/db/migrations/20260313T000000000Z-add-report-activity-table.d.ts +4 -0
  144. package/dist/db/migrations/20260313T000000000Z-add-report-activity-table.d.ts.map +1 -0
  145. package/dist/db/migrations/20260313T000000000Z-add-report-activity-table.js +39 -0
  146. package/dist/db/migrations/20260313T000000000Z-add-report-activity-table.js.map +1 -0
  147. package/dist/db/migrations/20260318T152058935Z-add-report-stat.d.ts +4 -0
  148. package/dist/db/migrations/20260318T152058935Z-add-report-stat.d.ts.map +1 -0
  149. package/dist/db/migrations/20260318T152058935Z-add-report-stat.js +34 -0
  150. package/dist/db/migrations/20260318T152058935Z-add-report-stat.js.map +1 -0
  151. package/dist/db/migrations/20260428T000000000Z-add-expiring-tag-table.d.ts +4 -0
  152. package/dist/db/migrations/20260428T000000000Z-add-expiring-tag-table.d.ts.map +1 -0
  153. package/dist/db/migrations/20260428T000000000Z-add-expiring-tag-table.js +32 -0
  154. package/dist/db/migrations/20260428T000000000Z-add-expiring-tag-table.js.map +1 -0
  155. package/dist/db/migrations/index.d.ts +6 -0
  156. package/dist/db/migrations/index.d.ts.map +1 -1
  157. package/dist/db/migrations/index.js +7 -1
  158. package/dist/db/migrations/index.js.map +1 -1
  159. package/dist/db/pagination.d.ts +31 -0
  160. package/dist/db/pagination.d.ts.map +1 -1
  161. package/dist/db/pagination.js +74 -1
  162. package/dist/db/pagination.js.map +1 -1
  163. package/dist/db/schema/expiring_tag.d.ts +15 -0
  164. package/dist/db/schema/expiring_tag.d.ts.map +1 -0
  165. package/dist/db/schema/expiring_tag.js +5 -0
  166. package/dist/db/schema/expiring_tag.js.map +1 -0
  167. package/dist/db/schema/index.d.ts +7 -1
  168. package/dist/db/schema/index.d.ts.map +1 -1
  169. package/dist/db/schema/index.js.map +1 -1
  170. package/dist/db/schema/moderator_assignment.d.ts +14 -0
  171. package/dist/db/schema/moderator_assignment.d.ts.map +1 -0
  172. package/dist/db/schema/moderator_assignment.js +5 -0
  173. package/dist/db/schema/moderator_assignment.js.map +1 -0
  174. package/dist/db/schema/report.d.ts +25 -0
  175. package/dist/db/schema/report.d.ts.map +1 -0
  176. package/dist/db/schema/report.js +5 -0
  177. package/dist/db/schema/report.js.map +1 -0
  178. package/dist/db/schema/report_activity.d.ts +18 -0
  179. package/dist/db/schema/report_activity.d.ts.map +1 -0
  180. package/dist/db/schema/report_activity.js +5 -0
  181. package/dist/db/schema/report_activity.js.map +1 -0
  182. package/dist/db/schema/report_queue.d.ts +19 -0
  183. package/dist/db/schema/report_queue.d.ts.map +1 -0
  184. package/dist/db/schema/report_queue.js +5 -0
  185. package/dist/db/schema/report_queue.js.map +1 -0
  186. package/dist/db/schema/report_stat.d.ts +20 -0
  187. package/dist/db/schema/report_stat.d.ts.map +1 -0
  188. package/dist/db/schema/report_stat.js +5 -0
  189. package/dist/db/schema/report_stat.js.map +1 -0
  190. package/dist/lexicon/index.d.ts +50 -0
  191. package/dist/lexicon/index.d.ts.map +1 -1
  192. package/dist/lexicon/index.js +120 -2
  193. package/dist/lexicon/index.js.map +1 -1
  194. package/dist/lexicon/lexicons.d.ts +11255 -7885
  195. package/dist/lexicon/lexicons.d.ts.map +1 -1
  196. package/dist/lexicon/lexicons.js +1900 -120
  197. package/dist/lexicon/lexicons.js.map +1 -1
  198. package/dist/lexicon/types/app/bsky/embed/external.d.ts +2 -0
  199. package/dist/lexicon/types/app/bsky/embed/external.d.ts.map +1 -1
  200. package/dist/lexicon/types/app/bsky/embed/external.js.map +1 -1
  201. package/dist/lexicon/types/chat/bsky/actor/defs.d.ts +8 -2
  202. package/dist/lexicon/types/chat/bsky/actor/defs.d.ts.map +1 -1
  203. package/dist/lexicon/types/chat/bsky/actor/defs.js +9 -0
  204. package/dist/lexicon/types/chat/bsky/actor/defs.js.map +1 -1
  205. package/dist/lexicon/types/chat/bsky/convo/defs.d.ts +37 -10
  206. package/dist/lexicon/types/chat/bsky/convo/defs.d.ts.map +1 -1
  207. package/dist/lexicon/types/chat/bsky/convo/defs.js +9 -0
  208. package/dist/lexicon/types/chat/bsky/convo/defs.js.map +1 -1
  209. package/dist/lexicon/types/chat/bsky/convo/getMessages.d.ts +3 -0
  210. package/dist/lexicon/types/chat/bsky/convo/getMessages.d.ts.map +1 -1
  211. package/dist/lexicon/types/chat/bsky/convo/getMessages.js.map +1 -1
  212. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +2 -0
  213. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
  214. package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
  215. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts +19 -0
  216. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts.map +1 -1
  217. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.js +9 -0
  218. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.js.map +1 -1
  219. package/dist/lexicon/types/tools/ozone/queue/assignModerator.d.ts +27 -0
  220. package/dist/lexicon/types/tools/ozone/queue/assignModerator.d.ts.map +1 -0
  221. package/dist/lexicon/types/tools/ozone/queue/assignModerator.js +7 -0
  222. package/dist/lexicon/types/tools/ozone/queue/assignModerator.js.map +1 -0
  223. package/dist/lexicon/types/tools/ozone/queue/createQueue.d.ts +35 -0
  224. package/dist/lexicon/types/tools/ozone/queue/createQueue.d.ts.map +1 -0
  225. package/dist/lexicon/types/tools/ozone/queue/createQueue.js +7 -0
  226. package/dist/lexicon/types/tools/ozone/queue/createQueue.js.map +1 -0
  227. package/dist/lexicon/types/tools/ozone/queue/defs.d.ts +62 -0
  228. package/dist/lexicon/types/tools/ozone/queue/defs.d.ts.map +1 -0
  229. package/dist/lexicon/types/tools/ozone/queue/defs.js +34 -0
  230. package/dist/lexicon/types/tools/ozone/queue/defs.js.map +1 -0
  231. package/dist/lexicon/types/tools/ozone/queue/deleteQueue.d.ts +29 -0
  232. package/dist/lexicon/types/tools/ozone/queue/deleteQueue.d.ts.map +1 -0
  233. package/dist/lexicon/types/tools/ozone/queue/deleteQueue.js +7 -0
  234. package/dist/lexicon/types/tools/ozone/queue/deleteQueue.js.map +1 -0
  235. package/dist/lexicon/types/tools/ozone/queue/getAssignments.d.ts +30 -0
  236. package/dist/lexicon/types/tools/ozone/queue/getAssignments.d.ts.map +1 -0
  237. package/dist/lexicon/types/tools/ozone/queue/getAssignments.js +7 -0
  238. package/dist/lexicon/types/tools/ozone/queue/getAssignments.js.map +1 -0
  239. package/dist/lexicon/types/tools/ozone/queue/listQueues.d.ts +32 -0
  240. package/dist/lexicon/types/tools/ozone/queue/listQueues.d.ts.map +1 -0
  241. package/dist/lexicon/types/tools/ozone/queue/listQueues.js +7 -0
  242. package/dist/lexicon/types/tools/ozone/queue/listQueues.js.map +1 -0
  243. package/dist/lexicon/types/tools/ozone/queue/routeReports.d.ts +31 -0
  244. package/dist/lexicon/types/tools/ozone/queue/routeReports.d.ts.map +1 -0
  245. package/dist/lexicon/types/tools/ozone/queue/routeReports.js +7 -0
  246. package/dist/lexicon/types/tools/ozone/queue/routeReports.js.map +1 -0
  247. package/dist/lexicon/types/tools/ozone/queue/unassignModerator.d.ts +18 -0
  248. package/dist/lexicon/types/tools/ozone/queue/unassignModerator.d.ts.map +1 -0
  249. package/dist/lexicon/types/tools/ozone/queue/unassignModerator.js +7 -0
  250. package/dist/lexicon/types/tools/ozone/queue/unassignModerator.js.map +1 -0
  251. package/dist/lexicon/types/tools/ozone/queue/updateQueue.d.ts +32 -0
  252. package/dist/lexicon/types/tools/ozone/queue/updateQueue.d.ts.map +1 -0
  253. package/dist/lexicon/types/tools/ozone/queue/updateQueue.js +7 -0
  254. package/dist/lexicon/types/tools/ozone/queue/updateQueue.js.map +1 -0
  255. package/dist/lexicon/types/tools/ozone/report/assignModerator.d.ts +31 -0
  256. package/dist/lexicon/types/tools/ozone/report/assignModerator.d.ts.map +1 -0
  257. package/dist/lexicon/types/tools/ozone/report/assignModerator.js +7 -0
  258. package/dist/lexicon/types/tools/ozone/report/assignModerator.js.map +1 -0
  259. package/dist/lexicon/types/tools/ozone/report/createActivity.d.ts +37 -0
  260. package/dist/lexicon/types/tools/ozone/report/createActivity.d.ts.map +1 -0
  261. package/dist/lexicon/types/tools/ozone/report/createActivity.js +7 -0
  262. package/dist/lexicon/types/tools/ozone/report/createActivity.js.map +1 -0
  263. package/dist/lexicon/types/tools/ozone/report/defs.d.ts +185 -0
  264. package/dist/lexicon/types/tools/ozone/report/defs.d.ts.map +1 -1
  265. package/dist/lexicon/types/tools/ozone/report/defs.js +108 -0
  266. package/dist/lexicon/types/tools/ozone/report/defs.js.map +1 -1
  267. package/dist/lexicon/types/tools/ozone/report/getAssignments.d.ts +30 -0
  268. package/dist/lexicon/types/tools/ozone/report/getAssignments.d.ts.map +1 -0
  269. package/dist/lexicon/types/tools/ozone/report/getAssignments.js +7 -0
  270. package/dist/lexicon/types/tools/ozone/report/getAssignments.js.map +1 -0
  271. package/dist/lexicon/types/tools/ozone/report/getHistoricalStats.d.ts +36 -0
  272. package/dist/lexicon/types/tools/ozone/report/getHistoricalStats.d.ts.map +1 -0
  273. package/dist/lexicon/types/tools/ozone/report/getHistoricalStats.js +7 -0
  274. package/dist/lexicon/types/tools/ozone/report/getHistoricalStats.js.map +1 -0
  275. package/dist/lexicon/types/tools/ozone/report/getLatestReport.d.ts +21 -0
  276. package/dist/lexicon/types/tools/ozone/report/getLatestReport.d.ts.map +1 -0
  277. package/dist/lexicon/types/tools/ozone/report/getLatestReport.js +7 -0
  278. package/dist/lexicon/types/tools/ozone/report/getLatestReport.js.map +1 -0
  279. package/dist/lexicon/types/tools/ozone/report/getLiveStats.d.ts +27 -0
  280. package/dist/lexicon/types/tools/ozone/report/getLiveStats.d.ts.map +1 -0
  281. package/dist/lexicon/types/tools/ozone/report/getLiveStats.js +7 -0
  282. package/dist/lexicon/types/tools/ozone/report/getLiveStats.js.map +1 -0
  283. package/dist/lexicon/types/tools/ozone/report/getReport.d.ts +22 -0
  284. package/dist/lexicon/types/tools/ozone/report/getReport.d.ts.map +1 -0
  285. package/dist/lexicon/types/tools/ozone/report/getReport.js +7 -0
  286. package/dist/lexicon/types/tools/ozone/report/getReport.js.map +1 -0
  287. package/dist/lexicon/types/tools/ozone/report/listActivities.d.ts +26 -0
  288. package/dist/lexicon/types/tools/ozone/report/listActivities.d.ts.map +1 -0
  289. package/dist/lexicon/types/tools/ozone/report/listActivities.js +7 -0
  290. package/dist/lexicon/types/tools/ozone/report/listActivities.js.map +1 -0
  291. package/dist/lexicon/types/tools/ozone/report/queryReports.d.ts +48 -0
  292. package/dist/lexicon/types/tools/ozone/report/queryReports.d.ts.map +1 -0
  293. package/dist/lexicon/types/tools/ozone/report/queryReports.js +7 -0
  294. package/dist/lexicon/types/tools/ozone/report/queryReports.js.map +1 -0
  295. package/dist/lexicon/types/tools/ozone/report/reassignQueue.d.ts +31 -0
  296. package/dist/lexicon/types/tools/ozone/report/reassignQueue.d.ts.map +1 -0
  297. package/dist/lexicon/types/tools/ozone/report/reassignQueue.js +7 -0
  298. package/dist/lexicon/types/tools/ozone/report/reassignQueue.js.map +1 -0
  299. package/dist/lexicon/types/tools/ozone/report/refreshStats.d.ts +28 -0
  300. package/dist/lexicon/types/tools/ozone/report/refreshStats.d.ts.map +1 -0
  301. package/dist/lexicon/types/tools/ozone/report/refreshStats.js +7 -0
  302. package/dist/lexicon/types/tools/ozone/report/refreshStats.js.map +1 -0
  303. package/dist/lexicon/types/tools/ozone/report/unassignModerator.d.ts +25 -0
  304. package/dist/lexicon/types/tools/ozone/report/unassignModerator.d.ts.map +1 -0
  305. package/dist/lexicon/types/tools/ozone/report/unassignModerator.js +7 -0
  306. package/dist/lexicon/types/tools/ozone/report/unassignModerator.js.map +1 -0
  307. package/dist/mod-service/expiring-tags.d.ts +27 -0
  308. package/dist/mod-service/expiring-tags.d.ts.map +1 -0
  309. package/dist/mod-service/expiring-tags.js +62 -0
  310. package/dist/mod-service/expiring-tags.js.map +1 -0
  311. package/dist/mod-service/index.d.ts +3 -1
  312. package/dist/mod-service/index.d.ts.map +1 -1
  313. package/dist/mod-service/index.js +61 -2
  314. package/dist/mod-service/index.js.map +1 -1
  315. package/dist/mod-service/report.d.ts +64 -0
  316. package/dist/mod-service/report.d.ts.map +1 -0
  317. package/dist/mod-service/report.js +282 -0
  318. package/dist/mod-service/report.js.map +1 -0
  319. package/dist/mod-service/status.d.ts +24 -0
  320. package/dist/mod-service/status.d.ts.map +1 -1
  321. package/dist/queue/service.d.ts +86 -0
  322. package/dist/queue/service.d.ts.map +1 -0
  323. package/dist/queue/service.js +430 -0
  324. package/dist/queue/service.js.map +1 -0
  325. package/dist/report/activity.d.ts +77 -0
  326. package/dist/report/activity.d.ts.map +1 -0
  327. package/dist/report/activity.js +141 -0
  328. package/dist/report/activity.js.map +1 -0
  329. package/dist/report/handle-report-update.d.ts +47 -0
  330. package/dist/report/handle-report-update.d.ts.map +1 -0
  331. package/dist/report/handle-report-update.js +178 -0
  332. package/dist/report/handle-report-update.js.map +1 -0
  333. package/dist/report/reassign.d.ts +10 -0
  334. package/dist/report/reassign.d.ts.map +1 -0
  335. package/dist/report/reassign.js +75 -0
  336. package/dist/report/reassign.js.map +1 -0
  337. package/dist/report/stats.d.ts +105 -0
  338. package/dist/report/stats.d.ts.map +1 -0
  339. package/dist/report/stats.js +619 -0
  340. package/dist/report/stats.js.map +1 -0
  341. package/dist/report/views.d.ts +111 -0
  342. package/dist/report/views.d.ts.map +1 -0
  343. package/dist/report/views.js +156 -0
  344. package/dist/report/views.js.map +1 -0
  345. package/dist/team/index.d.ts +1 -0
  346. package/dist/team/index.d.ts.map +1 -1
  347. package/dist/team/index.js +11 -0
  348. package/dist/team/index.js.map +1 -1
  349. package/package.json +3 -3
  350. package/src/api/index.ts +40 -0
  351. package/src/api/moderation/emitEvent.ts +38 -0
  352. package/src/api/queue/assignModerator.ts +31 -0
  353. package/src/api/queue/createQueue.ts +62 -0
  354. package/src/api/queue/deleteQueue.ts +56 -0
  355. package/src/api/queue/getAssignments.ts +19 -0
  356. package/src/api/queue/listQueues.ts +39 -0
  357. package/src/api/queue/routeReports.ts +44 -0
  358. package/src/api/queue/unassignModerator.ts +26 -0
  359. package/src/api/queue/updateQueue.ts +54 -0
  360. package/src/api/report/assignModerator.ts +36 -0
  361. package/src/api/report/createActivity.ts +57 -0
  362. package/src/api/report/getAssignments.ts +20 -0
  363. package/src/api/report/getHistoricalStats.ts +41 -0
  364. package/src/api/report/getLatestReport.ts +44 -0
  365. package/src/api/report/getLiveStats.ts +26 -0
  366. package/src/api/report/getReport.ts +55 -0
  367. package/src/api/report/listActivities.ts +34 -0
  368. package/src/api/report/queryReports.ts +44 -0
  369. package/src/api/report/reassignQueue.ts +68 -0
  370. package/src/api/report/refreshStats.ts +27 -0
  371. package/src/api/report/unassignModerator.ts +21 -0
  372. package/src/api/util.ts +12 -0
  373. package/src/assignment/index.ts +731 -0
  374. package/src/config/config.ts +27 -0
  375. package/src/config/env.ts +8 -0
  376. package/src/context.ts +31 -0
  377. package/src/daemon/context.ts +34 -0
  378. package/src/daemon/event-reverser.ts +50 -1
  379. package/src/daemon/job-cursor.ts +33 -0
  380. package/src/daemon/queue-router.ts +101 -0
  381. package/src/daemon/stats-computer.ts +101 -0
  382. package/src/daemon/strike-expiry-processor.ts +4 -20
  383. package/src/db/migrations/20260219T164523000Z-create-report-table.ts +155 -0
  384. package/src/db/migrations/20260219T165302248Z-moderator-assignment.ts +42 -0
  385. package/src/db/migrations/20260225T000000000Z-add-report-queue-table.ts +41 -0
  386. package/src/db/migrations/20260313T000000000Z-add-report-activity-table.ts +48 -0
  387. package/src/db/migrations/20260318T152058935Z-add-report-stat.ts +35 -0
  388. package/src/db/migrations/20260428T000000000Z-add-expiring-tag-table.ts +32 -0
  389. package/src/db/migrations/index.ts +6 -0
  390. package/src/db/pagination.ts +85 -0
  391. package/src/db/schema/expiring_tag.ts +17 -0
  392. package/src/db/schema/index.ts +13 -1
  393. package/src/db/schema/moderator_assignment.ts +16 -0
  394. package/src/db/schema/report.ts +27 -0
  395. package/src/db/schema/report_activity.ts +22 -0
  396. package/src/db/schema/report_queue.ts +21 -0
  397. package/src/db/schema/report_stat.ts +27 -0
  398. package/src/lexicon/index.ts +280 -0
  399. package/src/lexicon/lexicons.ts +2083 -214
  400. package/src/lexicon/types/app/bsky/embed/external.ts +2 -0
  401. package/src/lexicon/types/chat/bsky/actor/defs.ts +17 -1
  402. package/src/lexicon/types/chat/bsky/convo/defs.ts +50 -10
  403. package/src/lexicon/types/chat/bsky/convo/getMessages.ts +3 -0
  404. package/src/lexicon/types/tools/ozone/moderation/defs.ts +2 -0
  405. package/src/lexicon/types/tools/ozone/moderation/emitEvent.ts +24 -0
  406. package/src/lexicon/types/tools/ozone/queue/assignModerator.ts +46 -0
  407. package/src/lexicon/types/tools/ozone/queue/createQueue.ts +54 -0
  408. package/src/lexicon/types/tools/ozone/queue/defs.ts +99 -0
  409. package/src/lexicon/types/tools/ozone/queue/deleteQueue.ts +48 -0
  410. package/src/lexicon/types/tools/ozone/queue/getAssignments.ts +48 -0
  411. package/src/lexicon/types/tools/ozone/queue/listQueues.ts +50 -0
  412. package/src/lexicon/types/tools/ozone/queue/routeReports.ts +50 -0
  413. package/src/lexicon/types/tools/ozone/queue/unassignModerator.ts +37 -0
  414. package/src/lexicon/types/tools/ozone/queue/updateQueue.ts +51 -0
  415. package/src/lexicon/types/tools/ozone/report/assignModerator.ts +50 -0
  416. package/src/lexicon/types/tools/ozone/report/createActivity.ts +60 -0
  417. package/src/lexicon/types/tools/ozone/report/defs.ts +327 -0
  418. package/src/lexicon/types/tools/ozone/report/getAssignments.ts +48 -0
  419. package/src/lexicon/types/tools/ozone/report/getHistoricalStats.ts +54 -0
  420. package/src/lexicon/types/tools/ozone/report/getLatestReport.ts +39 -0
  421. package/src/lexicon/types/tools/ozone/report/getLiveStats.ts +45 -0
  422. package/src/lexicon/types/tools/ozone/report/getReport.ts +38 -0
  423. package/src/lexicon/types/tools/ozone/report/listActivities.ts +44 -0
  424. package/src/lexicon/types/tools/ozone/report/queryReports.ts +72 -0
  425. package/src/lexicon/types/tools/ozone/report/reassignQueue.ts +55 -0
  426. package/src/lexicon/types/tools/ozone/report/refreshStats.ts +46 -0
  427. package/src/lexicon/types/tools/ozone/report/unassignModerator.ts +44 -0
  428. package/src/mod-service/expiring-tags.ts +98 -0
  429. package/src/mod-service/index.ts +71 -3
  430. package/src/mod-service/report.ts +408 -0
  431. package/src/queue/service.ts +599 -0
  432. package/src/report/activity.ts +234 -0
  433. package/src/report/handle-report-update.ts +209 -0
  434. package/src/report/reassign.ts +109 -0
  435. package/src/report/stats.ts +850 -0
  436. package/src/report/views.ts +241 -0
  437. package/src/team/index.ts +11 -0
  438. package/tests/expiring-tags.test.ts +231 -0
  439. package/tests/get-report.test.ts +136 -0
  440. package/tests/query-reports.test.ts +608 -0
  441. package/tests/queue-assignment.test.ts +428 -0
  442. package/tests/queue-router.test.ts +306 -0
  443. package/tests/queues.test.ts +690 -0
  444. package/tests/report-action.test.ts +308 -0
  445. package/tests/report-activity.test.ts +567 -0
  446. package/tests/report-assignment.test.ts +517 -0
  447. package/tests/report-reassign-queue.test.ts +340 -0
  448. package/tests/report-routing.test.ts +245 -0
  449. package/tests/report-stats.test.ts +545 -0
  450. package/tsconfig.build.tsbuildinfo +1 -1
@@ -36,6 +36,8 @@ export interface External {
36
36
  title: string
37
37
  description: string
38
38
  thumb?: BlobRef
39
+ /** The URI of the Atmosphere record representing this external content, if it exists. Example: a site.standard.document record. */
40
+ associatedRecord?: string
39
41
  }
40
42
 
41
43
  const hashExternal = 'external'
@@ -34,6 +34,7 @@ export interface ProfileViewBasic {
34
34
  kind?:
35
35
  | $Typed<DirectConvoMember>
36
36
  | $Typed<GroupConvoMember>
37
+ | $Typed<PastGroupConvoMember>
37
38
  | { $type: string }
38
39
  }
39
40
 
@@ -62,7 +63,7 @@ export function validateDirectConvoMember<V>(v: V) {
62
63
  return validate<DirectConvoMember & V>(v, id, hashDirectConvoMember)
63
64
  }
64
65
 
65
- /** [NOTE: This is under active development and should be considered unstable while this note is here]. */
66
+ /** [NOTE: This is under active development and should be considered unstable while this note is here]. A current group convo member. */
66
67
  export interface GroupConvoMember {
67
68
  $type?: 'chat.bsky.actor.defs#groupConvoMember'
68
69
  addedBy?: ProfileViewBasic
@@ -78,3 +79,18 @@ export function isGroupConvoMember<V>(v: V) {
78
79
  export function validateGroupConvoMember<V>(v: V) {
79
80
  return validate<GroupConvoMember & V>(v, id, hashGroupConvoMember)
80
81
  }
82
+
83
+ /** [NOTE: This is under active development and should be considered unstable while this note is here]. A past group convo member. */
84
+ export interface PastGroupConvoMember {
85
+ $type?: 'chat.bsky.actor.defs#pastGroupConvoMember'
86
+ }
87
+
88
+ const hashPastGroupConvoMember = 'pastGroupConvoMember'
89
+
90
+ export function isPastGroupConvoMember<V>(v: V) {
91
+ return is$typed(v, id, hashPastGroupConvoMember)
92
+ }
93
+
94
+ export function validatePastGroupConvoMember<V>(v: V) {
95
+ return validate<PastGroupConvoMember & V>(v, id, hashPastGroupConvoMember)
96
+ }
@@ -85,6 +85,25 @@ export function validateMessageView<V>(v: V) {
85
85
  return validate<MessageView & V>(v, id, hashMessageView)
86
86
  }
87
87
 
88
+ export interface SystemMessageReferredUser {
89
+ $type?: 'chat.bsky.convo.defs#systemMessageReferredUser'
90
+ did: string
91
+ }
92
+
93
+ const hashSystemMessageReferredUser = 'systemMessageReferredUser'
94
+
95
+ export function isSystemMessageReferredUser<V>(v: V) {
96
+ return is$typed(v, id, hashSystemMessageReferredUser)
97
+ }
98
+
99
+ export function validateSystemMessageReferredUser<V>(v: V) {
100
+ return validate<SystemMessageReferredUser & V>(
101
+ v,
102
+ id,
103
+ hashSystemMessageReferredUser,
104
+ )
105
+ }
106
+
88
107
  /** [NOTE: This is under active development and should be considered unstable while this note is here]. */
89
108
  export interface SystemMessageView {
90
109
  $type?: 'chat.bsky.convo.defs#systemMessageView'
@@ -120,9 +139,9 @@ export function validateSystemMessageView<V>(v: V) {
120
139
  /** [NOTE: This is under active development and should be considered unstable while this note is here]. System message indicating a user was added to the group convo. */
121
140
  export interface SystemMessageDataAddMember {
122
141
  $type?: 'chat.bsky.convo.defs#systemMessageDataAddMember'
123
- member: ChatBskyActorDefs.ProfileViewBasic
142
+ member: SystemMessageReferredUser
124
143
  role: ChatBskyActorDefs.MemberRole
125
- addedBy: ChatBskyActorDefs.ProfileViewBasic
144
+ addedBy: SystemMessageReferredUser
126
145
  }
127
146
 
128
147
  const hashSystemMessageDataAddMember = 'systemMessageDataAddMember'
@@ -142,8 +161,8 @@ export function validateSystemMessageDataAddMember<V>(v: V) {
142
161
  /** [NOTE: This is under active development and should be considered unstable while this note is here]. System message indicating a user was removed from the group convo. */
143
162
  export interface SystemMessageDataRemoveMember {
144
163
  $type?: 'chat.bsky.convo.defs#systemMessageDataRemoveMember'
145
- member: ChatBskyActorDefs.ProfileViewBasic
146
- removedBy: ChatBskyActorDefs.ProfileViewBasic
164
+ member: SystemMessageReferredUser
165
+ removedBy: SystemMessageReferredUser
147
166
  }
148
167
 
149
168
  const hashSystemMessageDataRemoveMember = 'systemMessageDataRemoveMember'
@@ -163,9 +182,9 @@ export function validateSystemMessageDataRemoveMember<V>(v: V) {
163
182
  /** [NOTE: This is under active development and should be considered unstable while this note is here]. System message indicating a user joined the group convo via join link. */
164
183
  export interface SystemMessageDataMemberJoin {
165
184
  $type?: 'chat.bsky.convo.defs#systemMessageDataMemberJoin'
166
- member: ChatBskyActorDefs.ProfileViewBasic
185
+ member: SystemMessageReferredUser
167
186
  role: ChatBskyActorDefs.MemberRole
168
- approvedBy?: ChatBskyActorDefs.ProfileViewBasic
187
+ approvedBy?: SystemMessageReferredUser
169
188
  }
170
189
 
171
190
  const hashSystemMessageDataMemberJoin = 'systemMessageDataMemberJoin'
@@ -185,7 +204,7 @@ export function validateSystemMessageDataMemberJoin<V>(v: V) {
185
204
  /** [NOTE: This is under active development and should be considered unstable while this note is here]. System message indicating a user voluntarily left the group convo. */
186
205
  export interface SystemMessageDataMemberLeave {
187
206
  $type?: 'chat.bsky.convo.defs#systemMessageDataMemberLeave'
188
- member: ChatBskyActorDefs.ProfileViewBasic
207
+ member: SystemMessageReferredUser
189
208
  }
190
209
 
191
210
  const hashSystemMessageDataMemberLeave = 'systemMessageDataMemberLeave'
@@ -205,7 +224,7 @@ export function validateSystemMessageDataMemberLeave<V>(v: V) {
205
224
  /** [NOTE: This is under active development and should be considered unstable while this note is here]. System message indicating the group convo was locked. */
206
225
  export interface SystemMessageDataLockConvo {
207
226
  $type?: 'chat.bsky.convo.defs#systemMessageDataLockConvo'
208
- lockedBy: ChatBskyActorDefs.ProfileViewBasic
227
+ lockedBy: SystemMessageReferredUser
209
228
  }
210
229
 
211
230
  const hashSystemMessageDataLockConvo = 'systemMessageDataLockConvo'
@@ -225,7 +244,7 @@ export function validateSystemMessageDataLockConvo<V>(v: V) {
225
244
  /** [NOTE: This is under active development and should be considered unstable while this note is here]. System message indicating the group convo was unlocked. */
226
245
  export interface SystemMessageDataUnlockConvo {
227
246
  $type?: 'chat.bsky.convo.defs#systemMessageDataUnlockConvo'
228
- unlockedBy: ChatBskyActorDefs.ProfileViewBasic
247
+ unlockedBy: SystemMessageReferredUser
229
248
  }
230
249
 
231
250
  const hashSystemMessageDataUnlockConvo = 'systemMessageDataUnlockConvo'
@@ -245,7 +264,7 @@ export function validateSystemMessageDataUnlockConvo<V>(v: V) {
245
264
  /** [NOTE: This is under active development and should be considered unstable while this note is here]. System message indicating the group convo was locked permanently. */
246
265
  export interface SystemMessageDataLockConvoPermanently {
247
266
  $type?: 'chat.bsky.convo.defs#systemMessageDataLockConvoPermanently'
248
- lockedBy: ChatBskyActorDefs.ProfileViewBasic
267
+ lockedBy: SystemMessageReferredUser
249
268
  }
250
269
 
251
270
  const hashSystemMessageDataLockConvoPermanently =
@@ -493,6 +512,7 @@ export interface GroupConvo {
493
512
  name: string
494
513
  /** The total number of members in the group conversation. */
495
514
  memberCount: number
515
+ createdAt: string
496
516
  joinLink?: ChatBskyGroupDefs.JoinLinkView
497
517
  lockStatus: ConvoLockStatus
498
518
  }
@@ -598,6 +618,8 @@ export interface LogCreateMessage {
598
618
  rev: string
599
619
  convoId: string
600
620
  message: $Typed<MessageView> | $Typed<DeletedMessageView> | { $type: string }
621
+ /** Profiles referred to in the message view. This isn't required for compatibility, because it was added later, but should generally be present. */
622
+ relatedProfiles?: ChatBskyActorDefs.ProfileViewBasic[]
601
623
  }
602
624
 
603
625
  const hashLogCreateMessage = 'logCreateMessage'
@@ -657,6 +679,8 @@ export interface LogAddReaction {
657
679
  convoId: string
658
680
  message: $Typed<MessageView> | $Typed<DeletedMessageView> | { $type: string }
659
681
  reaction: ReactionView
682
+ /** Profiles referred in the message and reaction views. This isn't required for compatibility, because it was added later, but should generally be present. */
683
+ relatedProfiles?: ChatBskyActorDefs.ProfileViewBasic[]
660
684
  }
661
685
 
662
686
  const hashLogAddReaction = 'logAddReaction'
@@ -676,6 +700,8 @@ export interface LogRemoveReaction {
676
700
  convoId: string
677
701
  message: $Typed<MessageView> | $Typed<DeletedMessageView> | { $type: string }
678
702
  reaction: ReactionView
703
+ /** Profiles referred in the message and reaction views. This isn't required for compatibility, because it was added later, but should generally be present. */
704
+ relatedProfiles?: ChatBskyActorDefs.ProfileViewBasic[]
679
705
  }
680
706
 
681
707
  const hashLogRemoveReaction = 'logRemoveReaction'
@@ -716,6 +742,8 @@ export interface LogAddMember {
716
742
  rev: string
717
743
  convoId: string
718
744
  message: SystemMessageView
745
+ /** Profiles referred in the system message. */
746
+ relatedProfiles: ChatBskyActorDefs.ProfileViewBasic[]
719
747
  }
720
748
 
721
749
  const hashLogAddMember = 'logAddMember'
@@ -734,6 +762,8 @@ export interface LogRemoveMember {
734
762
  rev: string
735
763
  convoId: string
736
764
  message: SystemMessageView
765
+ /** Profiles referred in the system message. */
766
+ relatedProfiles: ChatBskyActorDefs.ProfileViewBasic[]
737
767
  }
738
768
 
739
769
  const hashLogRemoveMember = 'logRemoveMember'
@@ -752,6 +782,8 @@ export interface LogMemberJoin {
752
782
  rev: string
753
783
  convoId: string
754
784
  message: SystemMessageView
785
+ /** Profiles referred in the system message. */
786
+ relatedProfiles: ChatBskyActorDefs.ProfileViewBasic[]
755
787
  }
756
788
 
757
789
  const hashLogMemberJoin = 'logMemberJoin'
@@ -770,6 +802,8 @@ export interface LogMemberLeave {
770
802
  rev: string
771
803
  convoId: string
772
804
  message: SystemMessageView
805
+ /** Profiles referred in the system message. */
806
+ relatedProfiles: ChatBskyActorDefs.ProfileViewBasic[]
773
807
  }
774
808
 
775
809
  const hashLogMemberLeave = 'logMemberLeave'
@@ -788,6 +822,8 @@ export interface LogLockConvo {
788
822
  rev: string
789
823
  convoId: string
790
824
  message: SystemMessageView
825
+ /** Profiles referred in the system message. */
826
+ relatedProfiles: ChatBskyActorDefs.ProfileViewBasic[]
791
827
  }
792
828
 
793
829
  const hashLogLockConvo = 'logLockConvo'
@@ -806,6 +842,8 @@ export interface LogUnlockConvo {
806
842
  rev: string
807
843
  convoId: string
808
844
  message: SystemMessageView
845
+ /** Profiles referred in the system message. */
846
+ relatedProfiles: ChatBskyActorDefs.ProfileViewBasic[]
809
847
  }
810
848
 
811
849
  const hashLogUnlockConvo = 'logUnlockConvo'
@@ -824,6 +862,8 @@ export interface LogLockConvoPermanently {
824
862
  rev: string
825
863
  convoId: string
826
864
  message: SystemMessageView
865
+ /** Profiles referred in the system message. */
866
+ relatedProfiles: ChatBskyActorDefs.ProfileViewBasic[]
827
867
  }
828
868
 
829
869
  const hashLogLockConvoPermanently = 'logLockConvoPermanently'
@@ -10,6 +10,7 @@ import {
10
10
  type OmitKey,
11
11
  } from '../../../../util'
12
12
  import type * as ChatBskyConvoDefs from './defs.js'
13
+ import type * as ChatBskyActorDefs from '../actor/defs.js'
13
14
 
14
15
  const is$typed = _is$typed,
15
16
  validate = _validate
@@ -30,6 +31,8 @@ export interface OutputSchema {
30
31
  | $Typed<ChatBskyConvoDefs.SystemMessageView>
31
32
  | { $type: string }
32
33
  )[]
34
+ /** Set of all members who authored or reacted to the returned messages. Members referred to by system messages are also included. */
35
+ relatedProfiles?: ChatBskyActorDefs.ProfileViewBasic[]
33
36
  }
34
37
 
35
38
  export type HandlerInput = void
@@ -701,6 +701,8 @@ export interface ModEventTag {
701
701
  remove: string[]
702
702
  /** Additional comment about added/removed tags. */
703
703
  comment?: string
704
+ /** Indicates how long the tags being added should remain before automatically being removed. Only applies to tags being added. */
705
+ durationInHours?: number
704
706
  }
705
707
 
706
708
  const hashModEventTag = 'modEventTag'
@@ -56,6 +56,7 @@ export interface InputSchema {
56
56
  modTool?: ToolsOzoneModerationDefs.ModTool
57
57
  /** An optional external ID for the event, used to deduplicate events from external systems. Fails when an event of same type with the same external ID exists for the same subject. */
58
58
  externalId?: string
59
+ reportAction?: ReportAction
59
60
  }
60
61
 
61
62
  export type OutputSchema = ToolsOzoneModerationDefs.ModEventView
@@ -78,3 +79,26 @@ export interface HandlerError {
78
79
  }
79
80
 
80
81
  export type HandlerOutput = HandlerError | HandlerSuccess
82
+
83
+ /** Target specific reports when emitting a moderation event */
84
+ export interface ReportAction {
85
+ $type?: 'tools.ozone.moderation.emitEvent#reportAction'
86
+ /** Target specific report IDs */
87
+ ids?: number[]
88
+ /** Target reports matching these report types on the subject (fully qualified NSIDs) */
89
+ types?: string[]
90
+ /** Target ALL reports on the subject */
91
+ all?: boolean
92
+ /** Note to send to reporter(s) when actioning their report */
93
+ note?: string
94
+ }
95
+
96
+ const hashReportAction = 'reportAction'
97
+
98
+ export function isReportAction<V>(v: V) {
99
+ return is$typed(v, id, hashReportAction)
100
+ }
101
+
102
+ export function validateReportAction<V>(v: V) {
103
+ return validate<ReportAction & V>(v, id, hashReportAction)
104
+ }
@@ -0,0 +1,46 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import { type ValidationResult, BlobRef } from '@atproto/lexicon'
5
+ import { CID } from 'multiformats/cid'
6
+ import { validate as _validate } from '../../../../lexicons'
7
+ import {
8
+ type $Typed,
9
+ is$typed as _is$typed,
10
+ type OmitKey,
11
+ } from '../../../../util'
12
+ import type * as ToolsOzoneQueueDefs from './defs.js'
13
+
14
+ const is$typed = _is$typed,
15
+ validate = _validate
16
+ const id = 'tools.ozone.queue.assignModerator'
17
+
18
+ export type QueryParams = {}
19
+
20
+ export interface InputSchema {
21
+ /** The ID of the queue to assign the user to. */
22
+ queueId: number
23
+ /** DID to be assigned. */
24
+ did: string
25
+ }
26
+
27
+ export type OutputSchema = ToolsOzoneQueueDefs.AssignmentView
28
+
29
+ export interface HandlerInput {
30
+ encoding: 'application/json'
31
+ body: InputSchema
32
+ }
33
+
34
+ export interface HandlerSuccess {
35
+ encoding: 'application/json'
36
+ body: OutputSchema
37
+ headers?: { [key: string]: string }
38
+ }
39
+
40
+ export interface HandlerError {
41
+ status: number
42
+ message?: string
43
+ error?: 'InvalidAssignment'
44
+ }
45
+
46
+ export type HandlerOutput = HandlerError | HandlerSuccess
@@ -0,0 +1,54 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import { type ValidationResult, BlobRef } from '@atproto/lexicon'
5
+ import { CID } from 'multiformats/cid'
6
+ import { validate as _validate } from '../../../../lexicons'
7
+ import {
8
+ type $Typed,
9
+ is$typed as _is$typed,
10
+ type OmitKey,
11
+ } from '../../../../util'
12
+ import type * as ToolsOzoneQueueDefs from './defs.js'
13
+
14
+ const is$typed = _is$typed,
15
+ validate = _validate
16
+ const id = 'tools.ozone.queue.createQueue'
17
+
18
+ export type QueryParams = {}
19
+
20
+ export interface InputSchema {
21
+ /** Display name for the queue (must be unique) */
22
+ name: string
23
+ /** Subject types this queue accepts */
24
+ subjectTypes: ('account' | 'record' | 'message' | (string & {}))[]
25
+ /** Collection name for record subjects. Required if subjectTypes includes 'record'. */
26
+ collection?: string
27
+ /** Report reason types (fully qualified NSIDs) */
28
+ reportTypes: string[]
29
+ /** Optional description of the queue */
30
+ description?: string
31
+ }
32
+
33
+ export interface OutputSchema {
34
+ queue: ToolsOzoneQueueDefs.QueueView
35
+ }
36
+
37
+ export interface HandlerInput {
38
+ encoding: 'application/json'
39
+ body: InputSchema
40
+ }
41
+
42
+ export interface HandlerSuccess {
43
+ encoding: 'application/json'
44
+ body: OutputSchema
45
+ headers?: { [key: string]: string }
46
+ }
47
+
48
+ export interface HandlerError {
49
+ status: number
50
+ message?: string
51
+ error?: 'ConflictingQueue'
52
+ }
53
+
54
+ export type HandlerOutput = HandlerError | HandlerSuccess
@@ -0,0 +1,99 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import { type ValidationResult, BlobRef } from '@atproto/lexicon'
5
+ import { CID } from 'multiformats/cid'
6
+ import { validate as _validate } from '../../../../lexicons'
7
+ import {
8
+ type $Typed,
9
+ is$typed as _is$typed,
10
+ type OmitKey,
11
+ } from '../../../../util'
12
+ import type * as ToolsOzoneTeamDefs from '../team/defs.js'
13
+
14
+ const is$typed = _is$typed,
15
+ validate = _validate
16
+ const id = 'tools.ozone.queue.defs'
17
+
18
+ export interface QueueView {
19
+ $type?: 'tools.ozone.queue.defs#queueView'
20
+ /** Queue ID */
21
+ id: number
22
+ /** Display name of the queue */
23
+ name: string
24
+ /** Subject types this queue accepts. */
25
+ subjectTypes: ('account' | 'record' | 'message' | (string & {}))[]
26
+ /** Collection name for record subjects (e.g., 'app.bsky.feed.post') */
27
+ collection?: string
28
+ /** Report reason types this queue accepts (fully qualified NSIDs) */
29
+ reportTypes: string[]
30
+ /** Optional description of the queue */
31
+ description?: string
32
+ /** DID of moderator who created this queue */
33
+ createdBy: string
34
+ createdAt: string
35
+ updatedAt: string
36
+ /** Whether this queue is currently active */
37
+ enabled: boolean
38
+ /** When the queue was deleted, if applicable */
39
+ deletedAt?: string
40
+ stats: QueueStats
41
+ }
42
+
43
+ const hashQueueView = 'queueView'
44
+
45
+ export function isQueueView<V>(v: V) {
46
+ return is$typed(v, id, hashQueueView)
47
+ }
48
+
49
+ export function validateQueueView<V>(v: V) {
50
+ return validate<QueueView & V>(v, id, hashQueueView)
51
+ }
52
+
53
+ export interface QueueStats {
54
+ $type?: 'tools.ozone.queue.defs#queueStats'
55
+ /** Number of reports in 'open' status */
56
+ pendingCount?: number
57
+ /** Number of reports in 'closed' status */
58
+ actionedCount?: number
59
+ /** Number of reports in 'escalated' status */
60
+ escalatedCount?: number
61
+ /** Reports received in this queue in the last 24 hours. */
62
+ inboundCount?: number
63
+ /** Percentage of reports actioned (actionedCount / inboundCount * 100), rounded to nearest integer. Absent when inboundCount is 0. */
64
+ actionRate?: number
65
+ /** Average time in seconds from report creation to close, for reports closed in this period. */
66
+ avgHandlingTimeSec?: number
67
+ /** When these statistics were last computed */
68
+ lastUpdated?: string
69
+ }
70
+
71
+ const hashQueueStats = 'queueStats'
72
+
73
+ export function isQueueStats<V>(v: V) {
74
+ return is$typed(v, id, hashQueueStats)
75
+ }
76
+
77
+ export function validateQueueStats<V>(v: V) {
78
+ return validate<QueueStats & V>(v, id, hashQueueStats)
79
+ }
80
+
81
+ export interface AssignmentView {
82
+ $type?: 'tools.ozone.queue.defs#assignmentView'
83
+ id: number
84
+ did: string
85
+ moderator?: ToolsOzoneTeamDefs.Member
86
+ queue: QueueView
87
+ startAt: string
88
+ endAt?: string
89
+ }
90
+
91
+ const hashAssignmentView = 'assignmentView'
92
+
93
+ export function isAssignmentView<V>(v: V) {
94
+ return is$typed(v, id, hashAssignmentView)
95
+ }
96
+
97
+ export function validateAssignmentView<V>(v: V) {
98
+ return validate<AssignmentView & V>(v, id, hashAssignmentView)
99
+ }
@@ -0,0 +1,48 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import { type ValidationResult, BlobRef } from '@atproto/lexicon'
5
+ import { CID } from 'multiformats/cid'
6
+ import { validate as _validate } from '../../../../lexicons'
7
+ import {
8
+ type $Typed,
9
+ is$typed as _is$typed,
10
+ type OmitKey,
11
+ } from '../../../../util'
12
+
13
+ const is$typed = _is$typed,
14
+ validate = _validate
15
+ const id = 'tools.ozone.queue.deleteQueue'
16
+
17
+ export type QueryParams = {}
18
+
19
+ export interface InputSchema {
20
+ /** ID of the queue to delete */
21
+ queueId: number
22
+ /** Optional: migrate all reports to this queue. If not specified, reports will be set to unassigned (-1). */
23
+ migrateToQueueId?: number
24
+ }
25
+
26
+ export interface OutputSchema {
27
+ deleted: boolean
28
+ /** Number of reports that were migrated (if migration occurred) */
29
+ reportsMigrated?: number
30
+ }
31
+
32
+ export interface HandlerInput {
33
+ encoding: 'application/json'
34
+ body: InputSchema
35
+ }
36
+
37
+ export interface HandlerSuccess {
38
+ encoding: 'application/json'
39
+ body: OutputSchema
40
+ headers?: { [key: string]: string }
41
+ }
42
+
43
+ export interface HandlerError {
44
+ status: number
45
+ message?: string
46
+ }
47
+
48
+ export type HandlerOutput = HandlerError | HandlerSuccess
@@ -0,0 +1,48 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import { type ValidationResult, BlobRef } from '@atproto/lexicon'
5
+ import { CID } from 'multiformats/cid'
6
+ import { validate as _validate } from '../../../../lexicons'
7
+ import {
8
+ type $Typed,
9
+ is$typed as _is$typed,
10
+ type OmitKey,
11
+ } from '../../../../util'
12
+ import type * as ToolsOzoneQueueDefs from './defs.js'
13
+
14
+ const is$typed = _is$typed,
15
+ validate = _validate
16
+ const id = 'tools.ozone.queue.getAssignments'
17
+
18
+ export type QueryParams = {
19
+ /** When true, only returns active assignments. */
20
+ onlyActive: boolean
21
+ /** If specified, returns assignments for these queues only. */
22
+ queueIds?: number[]
23
+ /** If specified, returns assignments for these moderators only. */
24
+ dids?: string[]
25
+ limit: number
26
+ cursor?: string
27
+ }
28
+ export type InputSchema = undefined
29
+
30
+ export interface OutputSchema {
31
+ cursor?: string
32
+ assignments: ToolsOzoneQueueDefs.AssignmentView[]
33
+ }
34
+
35
+ export type HandlerInput = void
36
+
37
+ export interface HandlerSuccess {
38
+ encoding: 'application/json'
39
+ body: OutputSchema
40
+ headers?: { [key: string]: string }
41
+ }
42
+
43
+ export interface HandlerError {
44
+ status: number
45
+ message?: string
46
+ }
47
+
48
+ export type HandlerOutput = HandlerError | HandlerSuccess
@@ -0,0 +1,50 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import { type ValidationResult, BlobRef } from '@atproto/lexicon'
5
+ import { CID } from 'multiformats/cid'
6
+ import { validate as _validate } from '../../../../lexicons'
7
+ import {
8
+ type $Typed,
9
+ is$typed as _is$typed,
10
+ type OmitKey,
11
+ } from '../../../../util'
12
+ import type * as ToolsOzoneQueueDefs from './defs.js'
13
+
14
+ const is$typed = _is$typed,
15
+ validate = _validate
16
+ const id = 'tools.ozone.queue.listQueues'
17
+
18
+ export type QueryParams = {
19
+ /** Filter by enabled status. If not specified, returns all queues. */
20
+ enabled?: boolean
21
+ /** Filter queues that handle this subject type ('account' or 'record'). */
22
+ subjectType?: string
23
+ /** Filter queues by collection name (e.g. 'app.bsky.feed.post'). */
24
+ collection?: string
25
+ /** Filter queues that handle any of these report reason types. */
26
+ reportTypes?: string[]
27
+ limit: number
28
+ cursor?: string
29
+ }
30
+ export type InputSchema = undefined
31
+
32
+ export interface OutputSchema {
33
+ cursor?: string
34
+ queues: ToolsOzoneQueueDefs.QueueView[]
35
+ }
36
+
37
+ export type HandlerInput = void
38
+
39
+ export interface HandlerSuccess {
40
+ encoding: 'application/json'
41
+ body: OutputSchema
42
+ headers?: { [key: string]: string }
43
+ }
44
+
45
+ export interface HandlerError {
46
+ status: number
47
+ message?: string
48
+ }
49
+
50
+ export type HandlerOutput = HandlerError | HandlerSuccess