@atproto/ozone 0.1.173 → 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.
- package/CHANGELOG.md +9 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +40 -0
- package/dist/api/index.js.map +1 -1
- package/dist/api/moderation/emitEvent.d.ts.map +1 -1
- package/dist/api/moderation/emitEvent.js +31 -0
- package/dist/api/moderation/emitEvent.js.map +1 -1
- package/dist/api/queue/assignModerator.d.ts +4 -0
- package/dist/api/queue/assignModerator.d.ts.map +1 -0
- package/dist/api/queue/assignModerator.js +28 -0
- package/dist/api/queue/assignModerator.js.map +1 -0
- package/dist/api/queue/createQueue.d.ts +4 -0
- package/dist/api/queue/createQueue.d.ts.map +1 -0
- package/dist/api/queue/createQueue.js +44 -0
- package/dist/api/queue/createQueue.js.map +1 -0
- package/dist/api/queue/deleteQueue.d.ts +4 -0
- package/dist/api/queue/deleteQueue.d.ts.map +1 -0
- package/dist/api/queue/deleteQueue.js +40 -0
- package/dist/api/queue/deleteQueue.js.map +1 -0
- package/dist/api/queue/getAssignments.d.ts +4 -0
- package/dist/api/queue/getAssignments.d.ts.map +1 -0
- package/dist/api/queue/getAssignments.js +19 -0
- package/dist/api/queue/getAssignments.js.map +1 -0
- package/dist/api/queue/listQueues.d.ts +4 -0
- package/dist/api/queue/listQueues.d.ts.map +1 -0
- package/dist/api/queue/listQueues.js +29 -0
- package/dist/api/queue/listQueues.js.map +1 -0
- package/dist/api/queue/routeReports.d.ts +4 -0
- package/dist/api/queue/routeReports.d.ts.map +1 -0
- package/dist/api/queue/routeReports.js +33 -0
- package/dist/api/queue/routeReports.js.map +1 -0
- package/dist/api/queue/unassignModerator.d.ts +4 -0
- package/dist/api/queue/unassignModerator.d.ts.map +1 -0
- package/dist/api/queue/unassignModerator.js +24 -0
- package/dist/api/queue/unassignModerator.js.map +1 -0
- package/dist/api/queue/updateQueue.d.ts +4 -0
- package/dist/api/queue/updateQueue.d.ts.map +1 -0
- package/dist/api/queue/updateQueue.js +39 -0
- package/dist/api/queue/updateQueue.js.map +1 -0
- package/dist/api/report/assignModerator.d.ts +4 -0
- package/dist/api/report/assignModerator.d.ts.map +1 -0
- package/dist/api/report/assignModerator.js +33 -0
- package/dist/api/report/assignModerator.js.map +1 -0
- package/dist/api/report/createActivity.d.ts +4 -0
- package/dist/api/report/createActivity.d.ts.map +1 -0
- package/dist/api/report/createActivity.js +44 -0
- package/dist/api/report/createActivity.js.map +1 -0
- package/dist/api/report/getAssignments.d.ts +4 -0
- package/dist/api/report/getAssignments.d.ts.map +1 -0
- package/dist/api/report/getAssignments.js +19 -0
- package/dist/api/report/getAssignments.js.map +1 -0
- package/dist/api/report/getHistoricalStats.d.ts +4 -0
- package/dist/api/report/getHistoricalStats.d.ts.map +1 -0
- package/dist/api/report/getHistoricalStats.js +32 -0
- package/dist/api/report/getHistoricalStats.js.map +1 -0
- package/dist/api/report/getLatestReport.d.ts +4 -0
- package/dist/api/report/getLatestReport.d.ts.map +1 -0
- package/dist/api/report/getLatestReport.js +31 -0
- package/dist/api/report/getLatestReport.js.map +1 -0
- package/dist/api/report/getLiveStats.d.ts +4 -0
- package/dist/api/report/getLiveStats.d.ts.map +1 -0
- package/dist/api/report/getLiveStats.js +25 -0
- package/dist/api/report/getLiveStats.js.map +1 -0
- package/dist/api/report/getReport.d.ts +4 -0
- package/dist/api/report/getReport.d.ts.map +1 -0
- package/dist/api/report/getReport.js +35 -0
- package/dist/api/report/getReport.js.map +1 -0
- package/dist/api/report/listActivities.d.ts +4 -0
- package/dist/api/report/listActivities.d.ts.map +1 -0
- package/dist/api/report/listActivities.js +25 -0
- package/dist/api/report/listActivities.js.map +1 -0
- package/dist/api/report/queryReports.d.ts +4 -0
- package/dist/api/report/queryReports.d.ts.map +1 -0
- package/dist/api/report/queryReports.js +29 -0
- package/dist/api/report/queryReports.js.map +1 -0
- package/dist/api/report/reassignQueue.d.ts +4 -0
- package/dist/api/report/reassignQueue.d.ts.map +1 -0
- package/dist/api/report/reassignQueue.js +45 -0
- package/dist/api/report/reassignQueue.js.map +1 -0
- package/dist/api/report/refreshStats.d.ts +4 -0
- package/dist/api/report/refreshStats.d.ts.map +1 -0
- package/dist/api/report/refreshStats.js +26 -0
- package/dist/api/report/refreshStats.js.map +1 -0
- package/dist/api/report/unassignModerator.d.ts +4 -0
- package/dist/api/report/unassignModerator.d.ts.map +1 -0
- package/dist/api/report/unassignModerator.js +21 -0
- package/dist/api/report/unassignModerator.js.map +1 -0
- package/dist/api/util.d.ts +2 -0
- package/dist/api/util.d.ts.map +1 -1
- package/dist/api/util.js +9 -1
- package/dist/api/util.js.map +1 -1
- package/dist/assignment/index.d.ts +89 -0
- package/dist/assignment/index.d.ts.map +1 -0
- package/dist/assignment/index.js +537 -0
- package/dist/assignment/index.js.map +1 -0
- package/dist/config/config.d.ts +14 -0
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +9 -0
- package/dist/config/config.js.map +1 -1
- package/dist/config/env.d.ts +3 -0
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +3 -0
- package/dist/config/env.js.map +1 -1
- package/dist/context.d.ts +9 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +31 -10
- package/dist/context.js.map +1 -1
- package/dist/daemon/context.d.ts +6 -0
- package/dist/daemon/context.d.ts.map +1 -1
- package/dist/daemon/context.js +28 -4
- package/dist/daemon/context.js.map +1 -1
- package/dist/daemon/job-cursor.d.ts +5 -0
- package/dist/daemon/job-cursor.d.ts.map +1 -0
- package/dist/daemon/job-cursor.js +28 -0
- package/dist/daemon/job-cursor.js.map +1 -0
- package/dist/daemon/queue-router.d.ts +17 -0
- package/dist/daemon/queue-router.d.ts.map +1 -0
- package/dist/daemon/queue-router.js +114 -0
- package/dist/daemon/queue-router.js.map +1 -0
- package/dist/daemon/stats-computer.d.ts +51 -0
- package/dist/daemon/stats-computer.d.ts.map +1 -0
- package/dist/daemon/stats-computer.js +117 -0
- package/dist/daemon/stats-computer.js.map +1 -0
- package/dist/daemon/strike-expiry-processor.d.ts.map +1 -1
- package/dist/daemon/strike-expiry-processor.js +4 -19
- package/dist/daemon/strike-expiry-processor.js.map +1 -1
- package/dist/db/migrations/20260219T164523000Z-create-report-table.d.ts +4 -0
- package/dist/db/migrations/20260219T164523000Z-create-report-table.d.ts.map +1 -0
- package/dist/db/migrations/20260219T164523000Z-create-report-table.js +126 -0
- package/dist/db/migrations/20260219T164523000Z-create-report-table.js.map +1 -0
- package/dist/db/migrations/20260219T165302248Z-moderator-assignment.d.ts +4 -0
- package/dist/db/migrations/20260219T165302248Z-moderator-assignment.d.ts.map +1 -0
- package/dist/db/migrations/20260219T165302248Z-moderator-assignment.js +35 -0
- package/dist/db/migrations/20260219T165302248Z-moderator-assignment.js.map +1 -0
- package/dist/db/migrations/20260225T000000000Z-add-report-queue-table.d.ts +4 -0
- package/dist/db/migrations/20260225T000000000Z-add-report-queue-table.d.ts.map +1 -0
- package/dist/db/migrations/20260225T000000000Z-add-report-queue-table.js +36 -0
- package/dist/db/migrations/20260225T000000000Z-add-report-queue-table.js.map +1 -0
- package/dist/db/migrations/20260313T000000000Z-add-report-activity-table.d.ts +4 -0
- package/dist/db/migrations/20260313T000000000Z-add-report-activity-table.d.ts.map +1 -0
- package/dist/db/migrations/20260313T000000000Z-add-report-activity-table.js +39 -0
- package/dist/db/migrations/20260313T000000000Z-add-report-activity-table.js.map +1 -0
- package/dist/db/migrations/20260318T152058935Z-add-report-stat.d.ts +4 -0
- package/dist/db/migrations/20260318T152058935Z-add-report-stat.d.ts.map +1 -0
- package/dist/db/migrations/20260318T152058935Z-add-report-stat.js +34 -0
- package/dist/db/migrations/20260318T152058935Z-add-report-stat.js.map +1 -0
- package/dist/db/migrations/index.d.ts +5 -0
- package/dist/db/migrations/index.d.ts.map +1 -1
- package/dist/db/migrations/index.js +6 -1
- package/dist/db/migrations/index.js.map +1 -1
- package/dist/db/pagination.d.ts +31 -0
- package/dist/db/pagination.d.ts.map +1 -1
- package/dist/db/pagination.js +74 -1
- package/dist/db/pagination.js.map +1 -1
- package/dist/db/schema/index.d.ts +6 -1
- package/dist/db/schema/index.d.ts.map +1 -1
- package/dist/db/schema/index.js.map +1 -1
- package/dist/db/schema/moderator_assignment.d.ts +14 -0
- package/dist/db/schema/moderator_assignment.d.ts.map +1 -0
- package/dist/db/schema/moderator_assignment.js +5 -0
- package/dist/db/schema/moderator_assignment.js.map +1 -0
- package/dist/db/schema/report.d.ts +25 -0
- package/dist/db/schema/report.d.ts.map +1 -0
- package/dist/db/schema/report.js +5 -0
- package/dist/db/schema/report.js.map +1 -0
- package/dist/db/schema/report_activity.d.ts +18 -0
- package/dist/db/schema/report_activity.d.ts.map +1 -0
- package/dist/db/schema/report_activity.js +5 -0
- package/dist/db/schema/report_activity.js.map +1 -0
- package/dist/db/schema/report_queue.d.ts +19 -0
- package/dist/db/schema/report_queue.d.ts.map +1 -0
- package/dist/db/schema/report_queue.js +5 -0
- package/dist/db/schema/report_queue.js.map +1 -0
- package/dist/db/schema/report_stat.d.ts +20 -0
- package/dist/db/schema/report_stat.d.ts.map +1 -0
- package/dist/db/schema/report_stat.js +5 -0
- package/dist/db/schema/report_stat.js.map +1 -0
- package/dist/lexicon/index.d.ts +50 -0
- package/dist/lexicon/index.d.ts.map +1 -1
- package/dist/lexicon/index.js +120 -2
- package/dist/lexicon/index.js.map +1 -1
- package/dist/lexicon/lexicons.d.ts +10535 -7389
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +1789 -122
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/external.d.ts +2 -0
- package/dist/lexicon/types/app/bsky/embed/external.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/external.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts +19 -0
- package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/emitEvent.js +9 -0
- package/dist/lexicon/types/tools/ozone/moderation/emitEvent.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/queue/assignModerator.d.ts +27 -0
- package/dist/lexicon/types/tools/ozone/queue/assignModerator.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/queue/assignModerator.js +7 -0
- package/dist/lexicon/types/tools/ozone/queue/assignModerator.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/queue/createQueue.d.ts +35 -0
- package/dist/lexicon/types/tools/ozone/queue/createQueue.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/queue/createQueue.js +7 -0
- package/dist/lexicon/types/tools/ozone/queue/createQueue.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/queue/defs.d.ts +62 -0
- package/dist/lexicon/types/tools/ozone/queue/defs.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/queue/defs.js +34 -0
- package/dist/lexicon/types/tools/ozone/queue/defs.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/queue/deleteQueue.d.ts +29 -0
- package/dist/lexicon/types/tools/ozone/queue/deleteQueue.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/queue/deleteQueue.js +7 -0
- package/dist/lexicon/types/tools/ozone/queue/deleteQueue.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/queue/getAssignments.d.ts +30 -0
- package/dist/lexicon/types/tools/ozone/queue/getAssignments.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/queue/getAssignments.js +7 -0
- package/dist/lexicon/types/tools/ozone/queue/getAssignments.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/queue/listQueues.d.ts +32 -0
- package/dist/lexicon/types/tools/ozone/queue/listQueues.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/queue/listQueues.js +7 -0
- package/dist/lexicon/types/tools/ozone/queue/listQueues.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/queue/routeReports.d.ts +31 -0
- package/dist/lexicon/types/tools/ozone/queue/routeReports.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/queue/routeReports.js +7 -0
- package/dist/lexicon/types/tools/ozone/queue/routeReports.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/queue/unassignModerator.d.ts +18 -0
- package/dist/lexicon/types/tools/ozone/queue/unassignModerator.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/queue/unassignModerator.js +7 -0
- package/dist/lexicon/types/tools/ozone/queue/unassignModerator.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/queue/updateQueue.d.ts +32 -0
- package/dist/lexicon/types/tools/ozone/queue/updateQueue.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/queue/updateQueue.js +7 -0
- package/dist/lexicon/types/tools/ozone/queue/updateQueue.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/assignModerator.d.ts +31 -0
- package/dist/lexicon/types/tools/ozone/report/assignModerator.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/assignModerator.js +7 -0
- package/dist/lexicon/types/tools/ozone/report/assignModerator.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/createActivity.d.ts +37 -0
- package/dist/lexicon/types/tools/ozone/report/createActivity.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/createActivity.js +7 -0
- package/dist/lexicon/types/tools/ozone/report/createActivity.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/defs.d.ts +185 -0
- package/dist/lexicon/types/tools/ozone/report/defs.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/report/defs.js +108 -0
- package/dist/lexicon/types/tools/ozone/report/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/report/getAssignments.d.ts +30 -0
- package/dist/lexicon/types/tools/ozone/report/getAssignments.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/getAssignments.js +7 -0
- package/dist/lexicon/types/tools/ozone/report/getAssignments.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/getHistoricalStats.d.ts +36 -0
- package/dist/lexicon/types/tools/ozone/report/getHistoricalStats.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/getHistoricalStats.js +7 -0
- package/dist/lexicon/types/tools/ozone/report/getHistoricalStats.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/getLatestReport.d.ts +21 -0
- package/dist/lexicon/types/tools/ozone/report/getLatestReport.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/getLatestReport.js +7 -0
- package/dist/lexicon/types/tools/ozone/report/getLatestReport.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/getLiveStats.d.ts +27 -0
- package/dist/lexicon/types/tools/ozone/report/getLiveStats.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/getLiveStats.js +7 -0
- package/dist/lexicon/types/tools/ozone/report/getLiveStats.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/getReport.d.ts +22 -0
- package/dist/lexicon/types/tools/ozone/report/getReport.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/getReport.js +7 -0
- package/dist/lexicon/types/tools/ozone/report/getReport.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/listActivities.d.ts +26 -0
- package/dist/lexicon/types/tools/ozone/report/listActivities.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/listActivities.js +7 -0
- package/dist/lexicon/types/tools/ozone/report/listActivities.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/queryReports.d.ts +48 -0
- package/dist/lexicon/types/tools/ozone/report/queryReports.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/queryReports.js +7 -0
- package/dist/lexicon/types/tools/ozone/report/queryReports.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/reassignQueue.d.ts +31 -0
- package/dist/lexicon/types/tools/ozone/report/reassignQueue.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/reassignQueue.js +7 -0
- package/dist/lexicon/types/tools/ozone/report/reassignQueue.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/refreshStats.d.ts +28 -0
- package/dist/lexicon/types/tools/ozone/report/refreshStats.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/refreshStats.js +7 -0
- package/dist/lexicon/types/tools/ozone/report/refreshStats.js.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/unassignModerator.d.ts +25 -0
- package/dist/lexicon/types/tools/ozone/report/unassignModerator.d.ts.map +1 -0
- package/dist/lexicon/types/tools/ozone/report/unassignModerator.js +7 -0
- package/dist/lexicon/types/tools/ozone/report/unassignModerator.js.map +1 -0
- package/dist/mod-service/index.d.ts +3 -1
- package/dist/mod-service/index.d.ts.map +1 -1
- package/dist/mod-service/index.js +39 -2
- package/dist/mod-service/index.js.map +1 -1
- package/dist/mod-service/report.d.ts +64 -0
- package/dist/mod-service/report.d.ts.map +1 -0
- package/dist/mod-service/report.js +282 -0
- package/dist/mod-service/report.js.map +1 -0
- package/dist/mod-service/status.d.ts +20 -0
- package/dist/mod-service/status.d.ts.map +1 -1
- package/dist/queue/service.d.ts +86 -0
- package/dist/queue/service.d.ts.map +1 -0
- package/dist/queue/service.js +430 -0
- package/dist/queue/service.js.map +1 -0
- package/dist/report/activity.d.ts +77 -0
- package/dist/report/activity.d.ts.map +1 -0
- package/dist/report/activity.js +141 -0
- package/dist/report/activity.js.map +1 -0
- package/dist/report/handle-report-update.d.ts +47 -0
- package/dist/report/handle-report-update.d.ts.map +1 -0
- package/dist/report/handle-report-update.js +178 -0
- package/dist/report/handle-report-update.js.map +1 -0
- package/dist/report/reassign.d.ts +10 -0
- package/dist/report/reassign.d.ts.map +1 -0
- package/dist/report/reassign.js +75 -0
- package/dist/report/reassign.js.map +1 -0
- package/dist/report/stats.d.ts +105 -0
- package/dist/report/stats.d.ts.map +1 -0
- package/dist/report/stats.js +619 -0
- package/dist/report/stats.js.map +1 -0
- package/dist/report/views.d.ts +111 -0
- package/dist/report/views.d.ts.map +1 -0
- package/dist/report/views.js +156 -0
- package/dist/report/views.js.map +1 -0
- package/dist/team/index.d.ts +1 -0
- package/dist/team/index.d.ts.map +1 -1
- package/dist/team/index.js +11 -0
- package/dist/team/index.js.map +1 -1
- package/package.json +3 -3
- package/src/api/index.ts +40 -0
- package/src/api/moderation/emitEvent.ts +38 -0
- package/src/api/queue/assignModerator.ts +31 -0
- package/src/api/queue/createQueue.ts +62 -0
- package/src/api/queue/deleteQueue.ts +56 -0
- package/src/api/queue/getAssignments.ts +19 -0
- package/src/api/queue/listQueues.ts +39 -0
- package/src/api/queue/routeReports.ts +44 -0
- package/src/api/queue/unassignModerator.ts +26 -0
- package/src/api/queue/updateQueue.ts +54 -0
- package/src/api/report/assignModerator.ts +36 -0
- package/src/api/report/createActivity.ts +57 -0
- package/src/api/report/getAssignments.ts +20 -0
- package/src/api/report/getHistoricalStats.ts +41 -0
- package/src/api/report/getLatestReport.ts +44 -0
- package/src/api/report/getLiveStats.ts +26 -0
- package/src/api/report/getReport.ts +55 -0
- package/src/api/report/listActivities.ts +34 -0
- package/src/api/report/queryReports.ts +44 -0
- package/src/api/report/reassignQueue.ts +68 -0
- package/src/api/report/refreshStats.ts +27 -0
- package/src/api/report/unassignModerator.ts +21 -0
- package/src/api/util.ts +12 -0
- package/src/assignment/index.ts +731 -0
- package/src/config/config.ts +27 -0
- package/src/config/env.ts +8 -0
- package/src/context.ts +31 -0
- package/src/daemon/context.ts +34 -0
- package/src/daemon/job-cursor.ts +33 -0
- package/src/daemon/queue-router.ts +101 -0
- package/src/daemon/stats-computer.ts +101 -0
- package/src/daemon/strike-expiry-processor.ts +4 -20
- package/src/db/migrations/20260219T164523000Z-create-report-table.ts +155 -0
- package/src/db/migrations/20260219T165302248Z-moderator-assignment.ts +42 -0
- package/src/db/migrations/20260225T000000000Z-add-report-queue-table.ts +41 -0
- package/src/db/migrations/20260313T000000000Z-add-report-activity-table.ts +48 -0
- package/src/db/migrations/20260318T152058935Z-add-report-stat.ts +35 -0
- package/src/db/migrations/index.ts +5 -0
- package/src/db/pagination.ts +85 -0
- package/src/db/schema/index.ts +10 -0
- package/src/db/schema/moderator_assignment.ts +16 -0
- package/src/db/schema/report.ts +27 -0
- package/src/db/schema/report_activity.ts +22 -0
- package/src/db/schema/report_queue.ts +21 -0
- package/src/db/schema/report_stat.ts +27 -0
- package/src/lexicon/index.ts +280 -0
- package/src/lexicon/lexicons.ts +1910 -160
- package/src/lexicon/types/app/bsky/embed/external.ts +2 -0
- package/src/lexicon/types/tools/ozone/moderation/emitEvent.ts +24 -0
- package/src/lexicon/types/tools/ozone/queue/assignModerator.ts +46 -0
- package/src/lexicon/types/tools/ozone/queue/createQueue.ts +54 -0
- package/src/lexicon/types/tools/ozone/queue/defs.ts +99 -0
- package/src/lexicon/types/tools/ozone/queue/deleteQueue.ts +48 -0
- package/src/lexicon/types/tools/ozone/queue/getAssignments.ts +48 -0
- package/src/lexicon/types/tools/ozone/queue/listQueues.ts +50 -0
- package/src/lexicon/types/tools/ozone/queue/routeReports.ts +50 -0
- package/src/lexicon/types/tools/ozone/queue/unassignModerator.ts +37 -0
- package/src/lexicon/types/tools/ozone/queue/updateQueue.ts +51 -0
- package/src/lexicon/types/tools/ozone/report/assignModerator.ts +50 -0
- package/src/lexicon/types/tools/ozone/report/createActivity.ts +60 -0
- package/src/lexicon/types/tools/ozone/report/defs.ts +327 -0
- package/src/lexicon/types/tools/ozone/report/getAssignments.ts +48 -0
- package/src/lexicon/types/tools/ozone/report/getHistoricalStats.ts +54 -0
- package/src/lexicon/types/tools/ozone/report/getLatestReport.ts +39 -0
- package/src/lexicon/types/tools/ozone/report/getLiveStats.ts +45 -0
- package/src/lexicon/types/tools/ozone/report/getReport.ts +38 -0
- package/src/lexicon/types/tools/ozone/report/listActivities.ts +44 -0
- package/src/lexicon/types/tools/ozone/report/queryReports.ts +72 -0
- package/src/lexicon/types/tools/ozone/report/reassignQueue.ts +55 -0
- package/src/lexicon/types/tools/ozone/report/refreshStats.ts +46 -0
- package/src/lexicon/types/tools/ozone/report/unassignModerator.ts +44 -0
- package/src/mod-service/index.ts +45 -3
- package/src/mod-service/report.ts +408 -0
- package/src/queue/service.ts +599 -0
- package/src/report/activity.ts +234 -0
- package/src/report/handle-report-update.ts +209 -0
- package/src/report/reassign.ts +109 -0
- package/src/report/stats.ts +850 -0
- package/src/report/views.ts +241 -0
- package/src/team/index.ts +11 -0
- package/tests/get-report.test.ts +136 -0
- package/tests/query-reports.test.ts +608 -0
- package/tests/queue-assignment.test.ts +428 -0
- package/tests/queue-router.test.ts +306 -0
- package/tests/queues.test.ts +690 -0
- package/tests/report-action.test.ts +308 -0
- package/tests/report-activity.test.ts +567 -0
- package/tests/report-assignment.test.ts +517 -0
- package/tests/report-reassign-queue.test.ts +340 -0
- package/tests/report-routing.test.ts +245 -0
- package/tests/report-stats.test.ts +545 -0
- package/tsconfig.build.tsbuildinfo +1 -1
package/src/lexicon/lexicons.ts
CHANGED
|
@@ -2710,6 +2710,12 @@ export const schemaDict = {
|
|
|
2710
2710
|
accept: ['image/*'],
|
|
2711
2711
|
maxSize: 1000000,
|
|
2712
2712
|
},
|
|
2713
|
+
associatedRecord: {
|
|
2714
|
+
type: 'string',
|
|
2715
|
+
format: 'at-uri',
|
|
2716
|
+
description:
|
|
2717
|
+
'The URI of the Atmosphere record representing this external content, if it exists. Example: a site.standard.document record.',
|
|
2718
|
+
},
|
|
2713
2719
|
},
|
|
2714
2720
|
},
|
|
2715
2721
|
view: {
|
|
@@ -19779,6 +19785,12 @@ export const schemaDict = {
|
|
|
19779
19785
|
description:
|
|
19780
19786
|
'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.',
|
|
19781
19787
|
},
|
|
19788
|
+
reportAction: {
|
|
19789
|
+
type: 'ref',
|
|
19790
|
+
ref: 'lex:tools.ozone.moderation.emitEvent#reportAction',
|
|
19791
|
+
description:
|
|
19792
|
+
'Optional report-level targeting. If provided, this event will be linked to specific reports and reporters may be notified.',
|
|
19793
|
+
},
|
|
19782
19794
|
},
|
|
19783
19795
|
},
|
|
19784
19796
|
},
|
|
@@ -19800,6 +19812,36 @@ export const schemaDict = {
|
|
|
19800
19812
|
},
|
|
19801
19813
|
],
|
|
19802
19814
|
},
|
|
19815
|
+
reportAction: {
|
|
19816
|
+
type: 'object',
|
|
19817
|
+
description: 'Target specific reports when emitting a moderation event',
|
|
19818
|
+
properties: {
|
|
19819
|
+
ids: {
|
|
19820
|
+
type: 'array',
|
|
19821
|
+
items: {
|
|
19822
|
+
type: 'integer',
|
|
19823
|
+
},
|
|
19824
|
+
description: 'Target specific report IDs',
|
|
19825
|
+
},
|
|
19826
|
+
types: {
|
|
19827
|
+
type: 'array',
|
|
19828
|
+
items: {
|
|
19829
|
+
type: 'string',
|
|
19830
|
+
},
|
|
19831
|
+
description:
|
|
19832
|
+
'Target reports matching these report types on the subject (fully qualified NSIDs)',
|
|
19833
|
+
},
|
|
19834
|
+
all: {
|
|
19835
|
+
type: 'boolean',
|
|
19836
|
+
description: 'Target ALL reports on the subject',
|
|
19837
|
+
},
|
|
19838
|
+
note: {
|
|
19839
|
+
type: 'string',
|
|
19840
|
+
description:
|
|
19841
|
+
'Note to send to reporter(s) when actioning their report',
|
|
19842
|
+
},
|
|
19843
|
+
},
|
|
19844
|
+
},
|
|
19803
19845
|
},
|
|
19804
19846
|
},
|
|
19805
19847
|
ToolsOzoneModerationGetAccountTimeline: {
|
|
@@ -20900,206 +20942,925 @@ export const schemaDict = {
|
|
|
20900
20942
|
},
|
|
20901
20943
|
},
|
|
20902
20944
|
},
|
|
20903
|
-
|
|
20945
|
+
ToolsOzoneQueueAssignModerator: {
|
|
20904
20946
|
lexicon: 1,
|
|
20905
|
-
id: 'tools.ozone.
|
|
20947
|
+
id: 'tools.ozone.queue.assignModerator',
|
|
20906
20948
|
defs: {
|
|
20907
|
-
|
|
20908
|
-
type: '
|
|
20909
|
-
|
|
20910
|
-
|
|
20911
|
-
'
|
|
20912
|
-
|
|
20913
|
-
|
|
20914
|
-
|
|
20915
|
-
|
|
20916
|
-
|
|
20917
|
-
|
|
20918
|
-
|
|
20919
|
-
|
|
20920
|
-
|
|
20921
|
-
|
|
20922
|
-
|
|
20923
|
-
|
|
20924
|
-
|
|
20925
|
-
|
|
20926
|
-
|
|
20927
|
-
|
|
20928
|
-
'
|
|
20929
|
-
|
|
20930
|
-
|
|
20931
|
-
|
|
20932
|
-
|
|
20933
|
-
|
|
20934
|
-
|
|
20935
|
-
|
|
20936
|
-
|
|
20937
|
-
|
|
20938
|
-
|
|
20939
|
-
|
|
20940
|
-
'tools.ozone.report.defs#reasonMisleadingOther',
|
|
20941
|
-
'tools.ozone.report.defs#reasonRuleSiteSecurity',
|
|
20942
|
-
'tools.ozone.report.defs#reasonRuleProhibitedSales',
|
|
20943
|
-
'tools.ozone.report.defs#reasonRuleBanEvasion',
|
|
20944
|
-
'tools.ozone.report.defs#reasonRuleOther',
|
|
20945
|
-
'tools.ozone.report.defs#reasonSelfHarmContent',
|
|
20946
|
-
'tools.ozone.report.defs#reasonSelfHarmED',
|
|
20947
|
-
'tools.ozone.report.defs#reasonSelfHarmStunts',
|
|
20948
|
-
'tools.ozone.report.defs#reasonSelfHarmSubstances',
|
|
20949
|
-
'tools.ozone.report.defs#reasonSelfHarmOther',
|
|
20949
|
+
main: {
|
|
20950
|
+
type: 'procedure',
|
|
20951
|
+
description: 'Assign a user to a queue.',
|
|
20952
|
+
input: {
|
|
20953
|
+
encoding: 'application/json',
|
|
20954
|
+
schema: {
|
|
20955
|
+
type: 'object',
|
|
20956
|
+
required: ['queueId', 'did'],
|
|
20957
|
+
properties: {
|
|
20958
|
+
queueId: {
|
|
20959
|
+
type: 'integer',
|
|
20960
|
+
description: 'The ID of the queue to assign the user to.',
|
|
20961
|
+
},
|
|
20962
|
+
did: {
|
|
20963
|
+
type: 'string',
|
|
20964
|
+
description: 'DID to be assigned.',
|
|
20965
|
+
},
|
|
20966
|
+
},
|
|
20967
|
+
},
|
|
20968
|
+
},
|
|
20969
|
+
output: {
|
|
20970
|
+
encoding: 'application/json',
|
|
20971
|
+
schema: {
|
|
20972
|
+
type: 'ref',
|
|
20973
|
+
ref: 'lex:tools.ozone.queue.defs#assignmentView',
|
|
20974
|
+
},
|
|
20975
|
+
},
|
|
20976
|
+
errors: [
|
|
20977
|
+
{
|
|
20978
|
+
name: 'InvalidAssignment',
|
|
20979
|
+
description:
|
|
20980
|
+
'The specified queue does not exist or is not enabled.',
|
|
20981
|
+
},
|
|
20950
20982
|
],
|
|
20951
20983
|
},
|
|
20952
|
-
|
|
20953
|
-
|
|
20954
|
-
|
|
20955
|
-
|
|
20956
|
-
|
|
20957
|
-
|
|
20958
|
-
|
|
20959
|
-
|
|
20960
|
-
reasonViolenceAnimal: {
|
|
20961
|
-
type: 'token',
|
|
20962
|
-
description: 'Animal welfare violations',
|
|
20963
|
-
},
|
|
20964
|
-
reasonViolenceThreats: {
|
|
20965
|
-
type: 'token',
|
|
20966
|
-
description: 'Threats or incitement',
|
|
20967
|
-
},
|
|
20968
|
-
reasonViolenceGraphicContent: {
|
|
20969
|
-
type: 'token',
|
|
20970
|
-
description: 'Graphic violent content',
|
|
20971
|
-
},
|
|
20972
|
-
reasonViolenceGlorification: {
|
|
20973
|
-
type: 'token',
|
|
20974
|
-
description: 'Glorification of violence',
|
|
20975
|
-
},
|
|
20976
|
-
reasonViolenceExtremistContent: {
|
|
20977
|
-
type: 'token',
|
|
20984
|
+
},
|
|
20985
|
+
},
|
|
20986
|
+
ToolsOzoneQueueCreateQueue: {
|
|
20987
|
+
lexicon: 1,
|
|
20988
|
+
id: 'tools.ozone.queue.createQueue',
|
|
20989
|
+
defs: {
|
|
20990
|
+
main: {
|
|
20991
|
+
type: 'procedure',
|
|
20978
20992
|
description:
|
|
20979
|
-
|
|
20980
|
-
|
|
20981
|
-
|
|
20982
|
-
|
|
20983
|
-
|
|
20984
|
-
|
|
20985
|
-
|
|
20986
|
-
|
|
20987
|
-
|
|
20988
|
-
|
|
20989
|
-
|
|
20990
|
-
|
|
20991
|
-
|
|
20993
|
+
'Create a new moderation queue. Will fail if the queue configuration conflicts with an existing queue.',
|
|
20994
|
+
input: {
|
|
20995
|
+
encoding: 'application/json',
|
|
20996
|
+
schema: {
|
|
20997
|
+
type: 'object',
|
|
20998
|
+
required: ['name', 'subjectTypes', 'reportTypes'],
|
|
20999
|
+
properties: {
|
|
21000
|
+
name: {
|
|
21001
|
+
type: 'string',
|
|
21002
|
+
description: 'Display name for the queue (must be unique)',
|
|
21003
|
+
},
|
|
21004
|
+
subjectTypes: {
|
|
21005
|
+
type: 'array',
|
|
21006
|
+
minLength: 1,
|
|
21007
|
+
items: {
|
|
21008
|
+
type: 'string',
|
|
21009
|
+
knownValues: ['account', 'record', 'message'],
|
|
21010
|
+
},
|
|
21011
|
+
description: 'Subject types this queue accepts',
|
|
21012
|
+
},
|
|
21013
|
+
collection: {
|
|
21014
|
+
type: 'string',
|
|
21015
|
+
format: 'nsid',
|
|
21016
|
+
description:
|
|
21017
|
+
"Collection name for record subjects. Required if subjectTypes includes 'record'.",
|
|
21018
|
+
},
|
|
21019
|
+
reportTypes: {
|
|
21020
|
+
type: 'array',
|
|
21021
|
+
items: {
|
|
21022
|
+
type: 'string',
|
|
21023
|
+
},
|
|
21024
|
+
minLength: 1,
|
|
21025
|
+
maxLength: 25,
|
|
21026
|
+
description: 'Report reason types (fully qualified NSIDs)',
|
|
21027
|
+
},
|
|
21028
|
+
description: {
|
|
21029
|
+
type: 'string',
|
|
21030
|
+
description: 'Optional description of the queue',
|
|
21031
|
+
},
|
|
21032
|
+
},
|
|
21033
|
+
},
|
|
21034
|
+
},
|
|
21035
|
+
output: {
|
|
21036
|
+
encoding: 'application/json',
|
|
21037
|
+
schema: {
|
|
21038
|
+
type: 'object',
|
|
21039
|
+
required: ['queue'],
|
|
21040
|
+
properties: {
|
|
21041
|
+
queue: {
|
|
21042
|
+
type: 'ref',
|
|
21043
|
+
ref: 'lex:tools.ozone.queue.defs#queueView',
|
|
21044
|
+
},
|
|
21045
|
+
},
|
|
21046
|
+
},
|
|
21047
|
+
},
|
|
21048
|
+
errors: [
|
|
21049
|
+
{
|
|
21050
|
+
name: 'ConflictingQueue',
|
|
21051
|
+
description:
|
|
21052
|
+
'The queue configuration conflicts with an existing queue',
|
|
21053
|
+
},
|
|
21054
|
+
],
|
|
20992
21055
|
},
|
|
20993
|
-
|
|
20994
|
-
|
|
20995
|
-
|
|
21056
|
+
},
|
|
21057
|
+
},
|
|
21058
|
+
ToolsOzoneQueueDefs: {
|
|
21059
|
+
lexicon: 1,
|
|
21060
|
+
id: 'tools.ozone.queue.defs',
|
|
21061
|
+
defs: {
|
|
21062
|
+
queueView: {
|
|
21063
|
+
type: 'object',
|
|
21064
|
+
required: [
|
|
21065
|
+
'id',
|
|
21066
|
+
'name',
|
|
21067
|
+
'subjectTypes',
|
|
21068
|
+
'reportTypes',
|
|
21069
|
+
'createdBy',
|
|
21070
|
+
'createdAt',
|
|
21071
|
+
'updatedAt',
|
|
21072
|
+
'enabled',
|
|
21073
|
+
'stats',
|
|
21074
|
+
],
|
|
21075
|
+
properties: {
|
|
21076
|
+
id: {
|
|
21077
|
+
type: 'integer',
|
|
21078
|
+
description: 'Queue ID',
|
|
21079
|
+
},
|
|
21080
|
+
name: {
|
|
21081
|
+
type: 'string',
|
|
21082
|
+
description: 'Display name of the queue',
|
|
21083
|
+
},
|
|
21084
|
+
subjectTypes: {
|
|
21085
|
+
type: 'array',
|
|
21086
|
+
minLength: 1,
|
|
21087
|
+
items: {
|
|
21088
|
+
type: 'string',
|
|
21089
|
+
knownValues: ['account', 'record', 'message'],
|
|
21090
|
+
},
|
|
21091
|
+
description: 'Subject types this queue accepts.',
|
|
21092
|
+
},
|
|
21093
|
+
collection: {
|
|
21094
|
+
type: 'string',
|
|
21095
|
+
format: 'nsid',
|
|
21096
|
+
description:
|
|
21097
|
+
"Collection name for record subjects (e.g., 'app.bsky.feed.post')",
|
|
21098
|
+
},
|
|
21099
|
+
reportTypes: {
|
|
21100
|
+
type: 'array',
|
|
21101
|
+
items: {
|
|
21102
|
+
type: 'string',
|
|
21103
|
+
},
|
|
21104
|
+
minLength: 1,
|
|
21105
|
+
description:
|
|
21106
|
+
'Report reason types this queue accepts (fully qualified NSIDs)',
|
|
21107
|
+
},
|
|
21108
|
+
description: {
|
|
21109
|
+
type: 'string',
|
|
21110
|
+
description: 'Optional description of the queue',
|
|
21111
|
+
},
|
|
21112
|
+
createdBy: {
|
|
21113
|
+
type: 'string',
|
|
21114
|
+
format: 'did',
|
|
21115
|
+
description: 'DID of moderator who created this queue',
|
|
21116
|
+
},
|
|
21117
|
+
createdAt: {
|
|
21118
|
+
type: 'string',
|
|
21119
|
+
format: 'datetime',
|
|
21120
|
+
},
|
|
21121
|
+
updatedAt: {
|
|
21122
|
+
type: 'string',
|
|
21123
|
+
format: 'datetime',
|
|
21124
|
+
},
|
|
21125
|
+
enabled: {
|
|
21126
|
+
type: 'boolean',
|
|
21127
|
+
description: 'Whether this queue is currently active',
|
|
21128
|
+
},
|
|
21129
|
+
deletedAt: {
|
|
21130
|
+
type: 'string',
|
|
21131
|
+
format: 'datetime',
|
|
21132
|
+
description: 'When the queue was deleted, if applicable',
|
|
21133
|
+
},
|
|
21134
|
+
stats: {
|
|
21135
|
+
type: 'ref',
|
|
21136
|
+
ref: 'lex:tools.ozone.queue.defs#queueStats',
|
|
21137
|
+
description: 'Statistics about this queue',
|
|
21138
|
+
},
|
|
21139
|
+
},
|
|
20996
21140
|
},
|
|
20997
|
-
|
|
20998
|
-
type: '
|
|
20999
|
-
|
|
21000
|
-
|
|
21001
|
-
|
|
21002
|
-
|
|
21003
|
-
|
|
21004
|
-
|
|
21005
|
-
|
|
21006
|
-
|
|
21007
|
-
|
|
21141
|
+
queueStats: {
|
|
21142
|
+
type: 'object',
|
|
21143
|
+
required: [],
|
|
21144
|
+
properties: {
|
|
21145
|
+
pendingCount: {
|
|
21146
|
+
type: 'integer',
|
|
21147
|
+
description: "Number of reports in 'open' status",
|
|
21148
|
+
},
|
|
21149
|
+
actionedCount: {
|
|
21150
|
+
type: 'integer',
|
|
21151
|
+
description: "Number of reports in 'closed' status",
|
|
21152
|
+
},
|
|
21153
|
+
escalatedCount: {
|
|
21154
|
+
type: 'integer',
|
|
21155
|
+
description: "Number of reports in 'escalated' status",
|
|
21156
|
+
},
|
|
21157
|
+
inboundCount: {
|
|
21158
|
+
type: 'integer',
|
|
21159
|
+
description: 'Reports received in this queue in the last 24 hours.',
|
|
21160
|
+
},
|
|
21161
|
+
actionRate: {
|
|
21162
|
+
type: 'integer',
|
|
21163
|
+
description:
|
|
21164
|
+
'Percentage of reports actioned (actionedCount / inboundCount * 100), rounded to nearest integer. Absent when inboundCount is 0.',
|
|
21165
|
+
},
|
|
21166
|
+
avgHandlingTimeSec: {
|
|
21167
|
+
type: 'integer',
|
|
21168
|
+
description:
|
|
21169
|
+
'Average time in seconds from report creation to close, for reports closed in this period.',
|
|
21170
|
+
},
|
|
21171
|
+
lastUpdated: {
|
|
21172
|
+
type: 'string',
|
|
21173
|
+
format: 'datetime',
|
|
21174
|
+
description: 'When these statistics were last computed',
|
|
21175
|
+
},
|
|
21176
|
+
},
|
|
21008
21177
|
},
|
|
21009
|
-
|
|
21010
|
-
type: '
|
|
21011
|
-
|
|
21178
|
+
assignmentView: {
|
|
21179
|
+
type: 'object',
|
|
21180
|
+
required: ['id', 'did', 'queue', 'startAt'],
|
|
21181
|
+
properties: {
|
|
21182
|
+
id: {
|
|
21183
|
+
type: 'integer',
|
|
21184
|
+
},
|
|
21185
|
+
did: {
|
|
21186
|
+
type: 'string',
|
|
21187
|
+
format: 'did',
|
|
21188
|
+
},
|
|
21189
|
+
moderator: {
|
|
21190
|
+
type: 'ref',
|
|
21191
|
+
ref: 'lex:tools.ozone.team.defs#member',
|
|
21192
|
+
description: 'The moderator assigned to this queue',
|
|
21193
|
+
},
|
|
21194
|
+
queue: {
|
|
21195
|
+
type: 'ref',
|
|
21196
|
+
ref: 'lex:tools.ozone.queue.defs#queueView',
|
|
21197
|
+
},
|
|
21198
|
+
startAt: {
|
|
21199
|
+
type: 'string',
|
|
21200
|
+
format: 'datetime',
|
|
21201
|
+
},
|
|
21202
|
+
endAt: {
|
|
21203
|
+
type: 'string',
|
|
21204
|
+
format: 'datetime',
|
|
21205
|
+
},
|
|
21206
|
+
},
|
|
21012
21207
|
},
|
|
21013
|
-
|
|
21014
|
-
|
|
21208
|
+
},
|
|
21209
|
+
},
|
|
21210
|
+
ToolsOzoneQueueDeleteQueue: {
|
|
21211
|
+
lexicon: 1,
|
|
21212
|
+
id: 'tools.ozone.queue.deleteQueue',
|
|
21213
|
+
defs: {
|
|
21214
|
+
main: {
|
|
21215
|
+
type: 'procedure',
|
|
21015
21216
|
description:
|
|
21016
|
-
|
|
21217
|
+
'Delete a moderation queue. Optionally migrate reports to another queue.',
|
|
21218
|
+
input: {
|
|
21219
|
+
encoding: 'application/json',
|
|
21220
|
+
schema: {
|
|
21221
|
+
type: 'object',
|
|
21222
|
+
required: ['queueId'],
|
|
21223
|
+
properties: {
|
|
21224
|
+
queueId: {
|
|
21225
|
+
type: 'integer',
|
|
21226
|
+
description: 'ID of the queue to delete',
|
|
21227
|
+
},
|
|
21228
|
+
migrateToQueueId: {
|
|
21229
|
+
type: 'integer',
|
|
21230
|
+
description:
|
|
21231
|
+
'Optional: migrate all reports to this queue. If not specified, reports will be set to unassigned (-1).',
|
|
21232
|
+
},
|
|
21233
|
+
},
|
|
21234
|
+
},
|
|
21235
|
+
},
|
|
21236
|
+
output: {
|
|
21237
|
+
encoding: 'application/json',
|
|
21238
|
+
schema: {
|
|
21239
|
+
type: 'object',
|
|
21240
|
+
required: ['deleted'],
|
|
21241
|
+
properties: {
|
|
21242
|
+
deleted: {
|
|
21243
|
+
type: 'boolean',
|
|
21244
|
+
},
|
|
21245
|
+
reportsMigrated: {
|
|
21246
|
+
type: 'integer',
|
|
21247
|
+
description:
|
|
21248
|
+
'Number of reports that were migrated (if migration occurred)',
|
|
21249
|
+
},
|
|
21250
|
+
},
|
|
21251
|
+
},
|
|
21252
|
+
},
|
|
21017
21253
|
},
|
|
21018
|
-
|
|
21019
|
-
|
|
21254
|
+
},
|
|
21255
|
+
},
|
|
21256
|
+
ToolsOzoneQueueGetAssignments: {
|
|
21257
|
+
lexicon: 1,
|
|
21258
|
+
id: 'tools.ozone.queue.getAssignments',
|
|
21259
|
+
defs: {
|
|
21260
|
+
main: {
|
|
21261
|
+
type: 'query',
|
|
21020
21262
|
description:
|
|
21021
|
-
|
|
21022
|
-
|
|
21023
|
-
|
|
21024
|
-
|
|
21025
|
-
|
|
21263
|
+
'Get moderator assignments, optionally filtered by active status, queue, or moderator.',
|
|
21264
|
+
parameters: {
|
|
21265
|
+
type: 'params',
|
|
21266
|
+
properties: {
|
|
21267
|
+
onlyActive: {
|
|
21268
|
+
type: 'boolean',
|
|
21269
|
+
default: true,
|
|
21270
|
+
description: 'When true, only returns active assignments.',
|
|
21271
|
+
},
|
|
21272
|
+
queueIds: {
|
|
21273
|
+
type: 'array',
|
|
21274
|
+
items: {
|
|
21275
|
+
type: 'integer',
|
|
21276
|
+
},
|
|
21277
|
+
description:
|
|
21278
|
+
'If specified, returns assignments for these queues only.',
|
|
21279
|
+
},
|
|
21280
|
+
dids: {
|
|
21281
|
+
type: 'array',
|
|
21282
|
+
items: {
|
|
21283
|
+
type: 'string',
|
|
21284
|
+
format: 'did',
|
|
21285
|
+
},
|
|
21286
|
+
description:
|
|
21287
|
+
'If specified, returns assignments for these moderators only.',
|
|
21288
|
+
},
|
|
21289
|
+
limit: {
|
|
21290
|
+
type: 'integer',
|
|
21291
|
+
minimum: 1,
|
|
21292
|
+
maximum: 100,
|
|
21293
|
+
default: 50,
|
|
21294
|
+
},
|
|
21295
|
+
cursor: {
|
|
21296
|
+
type: 'string',
|
|
21297
|
+
},
|
|
21298
|
+
},
|
|
21299
|
+
},
|
|
21300
|
+
output: {
|
|
21301
|
+
encoding: 'application/json',
|
|
21302
|
+
schema: {
|
|
21303
|
+
type: 'object',
|
|
21304
|
+
required: ['assignments'],
|
|
21305
|
+
properties: {
|
|
21306
|
+
cursor: {
|
|
21307
|
+
type: 'string',
|
|
21308
|
+
},
|
|
21309
|
+
assignments: {
|
|
21310
|
+
type: 'array',
|
|
21311
|
+
items: {
|
|
21312
|
+
type: 'ref',
|
|
21313
|
+
ref: 'lex:tools.ozone.queue.defs#assignmentView',
|
|
21314
|
+
},
|
|
21315
|
+
},
|
|
21316
|
+
},
|
|
21317
|
+
},
|
|
21318
|
+
},
|
|
21026
21319
|
},
|
|
21027
|
-
|
|
21028
|
-
|
|
21029
|
-
|
|
21320
|
+
},
|
|
21321
|
+
},
|
|
21322
|
+
ToolsOzoneQueueListQueues: {
|
|
21323
|
+
lexicon: 1,
|
|
21324
|
+
id: 'tools.ozone.queue.listQueues',
|
|
21325
|
+
defs: {
|
|
21326
|
+
main: {
|
|
21327
|
+
type: 'query',
|
|
21328
|
+
description: 'List all configured moderation queues with statistics.',
|
|
21329
|
+
parameters: {
|
|
21330
|
+
type: 'params',
|
|
21331
|
+
properties: {
|
|
21332
|
+
enabled: {
|
|
21333
|
+
type: 'boolean',
|
|
21334
|
+
description:
|
|
21335
|
+
'Filter by enabled status. If not specified, returns all queues.',
|
|
21336
|
+
},
|
|
21337
|
+
subjectType: {
|
|
21338
|
+
type: 'string',
|
|
21339
|
+
description:
|
|
21340
|
+
"Filter queues that handle this subject type ('account' or 'record').",
|
|
21341
|
+
},
|
|
21342
|
+
collection: {
|
|
21343
|
+
type: 'string',
|
|
21344
|
+
description:
|
|
21345
|
+
"Filter queues by collection name (e.g. 'app.bsky.feed.post').",
|
|
21346
|
+
},
|
|
21347
|
+
reportTypes: {
|
|
21348
|
+
type: 'array',
|
|
21349
|
+
items: {
|
|
21350
|
+
type: 'string',
|
|
21351
|
+
},
|
|
21352
|
+
maxLength: 10,
|
|
21353
|
+
description:
|
|
21354
|
+
'Filter queues that handle any of these report reason types.',
|
|
21355
|
+
},
|
|
21356
|
+
limit: {
|
|
21357
|
+
type: 'integer',
|
|
21358
|
+
minimum: 1,
|
|
21359
|
+
maximum: 100,
|
|
21360
|
+
default: 50,
|
|
21361
|
+
},
|
|
21362
|
+
cursor: {
|
|
21363
|
+
type: 'string',
|
|
21364
|
+
},
|
|
21365
|
+
},
|
|
21366
|
+
},
|
|
21367
|
+
output: {
|
|
21368
|
+
encoding: 'application/json',
|
|
21369
|
+
schema: {
|
|
21370
|
+
type: 'object',
|
|
21371
|
+
required: ['queues'],
|
|
21372
|
+
properties: {
|
|
21373
|
+
cursor: {
|
|
21374
|
+
type: 'string',
|
|
21375
|
+
},
|
|
21376
|
+
queues: {
|
|
21377
|
+
type: 'array',
|
|
21378
|
+
items: {
|
|
21379
|
+
type: 'ref',
|
|
21380
|
+
ref: 'lex:tools.ozone.queue.defs#queueView',
|
|
21381
|
+
},
|
|
21382
|
+
},
|
|
21383
|
+
},
|
|
21384
|
+
},
|
|
21385
|
+
},
|
|
21030
21386
|
},
|
|
21031
|
-
|
|
21032
|
-
|
|
21387
|
+
},
|
|
21388
|
+
},
|
|
21389
|
+
ToolsOzoneQueueRouteReports: {
|
|
21390
|
+
lexicon: 1,
|
|
21391
|
+
id: 'tools.ozone.queue.routeReports',
|
|
21392
|
+
defs: {
|
|
21393
|
+
main: {
|
|
21394
|
+
type: 'procedure',
|
|
21033
21395
|
description:
|
|
21034
|
-
|
|
21035
|
-
|
|
21036
|
-
|
|
21037
|
-
|
|
21038
|
-
|
|
21039
|
-
|
|
21040
|
-
|
|
21041
|
-
|
|
21042
|
-
|
|
21396
|
+
'Route reports within an ID range to matching queues based.',
|
|
21397
|
+
input: {
|
|
21398
|
+
encoding: 'application/json',
|
|
21399
|
+
schema: {
|
|
21400
|
+
type: 'object',
|
|
21401
|
+
required: ['startReportId', 'endReportId'],
|
|
21402
|
+
properties: {
|
|
21403
|
+
startReportId: {
|
|
21404
|
+
type: 'integer',
|
|
21405
|
+
description: 'Start of report ID range (inclusive).',
|
|
21406
|
+
},
|
|
21407
|
+
endReportId: {
|
|
21408
|
+
type: 'integer',
|
|
21409
|
+
description:
|
|
21410
|
+
'End of report ID range (inclusive). Difference between start and end must be less than 5,000.',
|
|
21411
|
+
},
|
|
21412
|
+
},
|
|
21413
|
+
},
|
|
21414
|
+
},
|
|
21415
|
+
output: {
|
|
21416
|
+
encoding: 'application/json',
|
|
21417
|
+
schema: {
|
|
21418
|
+
type: 'object',
|
|
21419
|
+
required: ['assigned', 'unmatched'],
|
|
21420
|
+
properties: {
|
|
21421
|
+
assigned: {
|
|
21422
|
+
type: 'integer',
|
|
21423
|
+
description: 'The number of reports assigned to a queue.',
|
|
21424
|
+
},
|
|
21425
|
+
unmatched: {
|
|
21426
|
+
type: 'integer',
|
|
21427
|
+
description: 'The number of reports with no matching queue.',
|
|
21428
|
+
},
|
|
21429
|
+
},
|
|
21430
|
+
},
|
|
21431
|
+
},
|
|
21432
|
+
errors: [
|
|
21433
|
+
{
|
|
21434
|
+
name: 'OutOfRange',
|
|
21435
|
+
description:
|
|
21436
|
+
'The request is invalid, such as missing required fields or invalid field values.',
|
|
21437
|
+
},
|
|
21438
|
+
],
|
|
21043
21439
|
},
|
|
21044
|
-
|
|
21045
|
-
|
|
21046
|
-
|
|
21440
|
+
},
|
|
21441
|
+
},
|
|
21442
|
+
ToolsOzoneQueueUnassignModerator: {
|
|
21443
|
+
lexicon: 1,
|
|
21444
|
+
id: 'tools.ozone.queue.unassignModerator',
|
|
21445
|
+
defs: {
|
|
21446
|
+
main: {
|
|
21447
|
+
type: 'procedure',
|
|
21448
|
+
description: "Remove a user's assignment from a queue.",
|
|
21449
|
+
input: {
|
|
21450
|
+
encoding: 'application/json',
|
|
21451
|
+
schema: {
|
|
21452
|
+
type: 'object',
|
|
21453
|
+
required: ['queueId', 'did'],
|
|
21454
|
+
properties: {
|
|
21455
|
+
queueId: {
|
|
21456
|
+
type: 'integer',
|
|
21457
|
+
description: 'The ID of the queue to unassign the user from.',
|
|
21458
|
+
},
|
|
21459
|
+
did: {
|
|
21460
|
+
type: 'string',
|
|
21461
|
+
format: 'did',
|
|
21462
|
+
description: 'DID to be unassigned.',
|
|
21463
|
+
},
|
|
21464
|
+
},
|
|
21465
|
+
},
|
|
21466
|
+
},
|
|
21467
|
+
errors: [
|
|
21468
|
+
{
|
|
21469
|
+
name: 'InvalidAssignment',
|
|
21470
|
+
description:
|
|
21471
|
+
'No active assignment exists for the given queue and user.',
|
|
21472
|
+
},
|
|
21473
|
+
],
|
|
21047
21474
|
},
|
|
21048
|
-
|
|
21049
|
-
|
|
21050
|
-
|
|
21475
|
+
},
|
|
21476
|
+
},
|
|
21477
|
+
ToolsOzoneQueueUpdateQueue: {
|
|
21478
|
+
lexicon: 1,
|
|
21479
|
+
id: 'tools.ozone.queue.updateQueue',
|
|
21480
|
+
defs: {
|
|
21481
|
+
main: {
|
|
21482
|
+
type: 'procedure',
|
|
21483
|
+
description:
|
|
21484
|
+
'Update queue properties. Currently only supports updating the name and enabled status to prevent configuration conflicts.',
|
|
21485
|
+
input: {
|
|
21486
|
+
encoding: 'application/json',
|
|
21487
|
+
schema: {
|
|
21488
|
+
type: 'object',
|
|
21489
|
+
required: ['queueId'],
|
|
21490
|
+
properties: {
|
|
21491
|
+
queueId: {
|
|
21492
|
+
type: 'integer',
|
|
21493
|
+
description: 'ID of the queue to update',
|
|
21494
|
+
},
|
|
21495
|
+
name: {
|
|
21496
|
+
type: 'string',
|
|
21497
|
+
description: 'New display name for the queue',
|
|
21498
|
+
},
|
|
21499
|
+
enabled: {
|
|
21500
|
+
type: 'boolean',
|
|
21501
|
+
description: 'Enable or disable the queue',
|
|
21502
|
+
},
|
|
21503
|
+
description: {
|
|
21504
|
+
type: 'string',
|
|
21505
|
+
description: 'Optional description of the queue',
|
|
21506
|
+
},
|
|
21507
|
+
},
|
|
21508
|
+
},
|
|
21509
|
+
},
|
|
21510
|
+
output: {
|
|
21511
|
+
encoding: 'application/json',
|
|
21512
|
+
schema: {
|
|
21513
|
+
type: 'object',
|
|
21514
|
+
required: ['queue'],
|
|
21515
|
+
properties: {
|
|
21516
|
+
queue: {
|
|
21517
|
+
type: 'ref',
|
|
21518
|
+
ref: 'lex:tools.ozone.queue.defs#queueView',
|
|
21519
|
+
},
|
|
21520
|
+
},
|
|
21521
|
+
},
|
|
21522
|
+
},
|
|
21051
21523
|
},
|
|
21052
|
-
|
|
21053
|
-
|
|
21054
|
-
|
|
21524
|
+
},
|
|
21525
|
+
},
|
|
21526
|
+
ToolsOzoneReportAssignModerator: {
|
|
21527
|
+
lexicon: 1,
|
|
21528
|
+
id: 'tools.ozone.report.assignModerator',
|
|
21529
|
+
defs: {
|
|
21530
|
+
main: {
|
|
21531
|
+
type: 'procedure',
|
|
21532
|
+
description:
|
|
21533
|
+
'Assign a report to a user. Defaults to the caller. Admins may assign to any moderator.',
|
|
21534
|
+
input: {
|
|
21535
|
+
encoding: 'application/json',
|
|
21536
|
+
schema: {
|
|
21537
|
+
type: 'object',
|
|
21538
|
+
required: ['reportId'],
|
|
21539
|
+
properties: {
|
|
21540
|
+
reportId: {
|
|
21541
|
+
type: 'integer',
|
|
21542
|
+
description: 'The ID of the report to assign.',
|
|
21543
|
+
},
|
|
21544
|
+
queueId: {
|
|
21545
|
+
type: 'integer',
|
|
21546
|
+
description:
|
|
21547
|
+
'Optional queue ID to associate the assignment with. If not provided and the report has been assigned on a queue before, it will stay on that queue.',
|
|
21548
|
+
},
|
|
21549
|
+
did: {
|
|
21550
|
+
type: 'string',
|
|
21551
|
+
format: 'did',
|
|
21552
|
+
description:
|
|
21553
|
+
"DID to be assigned. Defaults to the caller's DID. Admins may assign to any moderator.",
|
|
21554
|
+
},
|
|
21555
|
+
isPermanent: {
|
|
21556
|
+
type: 'boolean',
|
|
21557
|
+
description:
|
|
21558
|
+
'When true, the assignment has no expiry (endAt is null). Throws AlreadyAssigned if another user already has a permanent assignment on this report.',
|
|
21559
|
+
},
|
|
21560
|
+
},
|
|
21561
|
+
},
|
|
21562
|
+
},
|
|
21563
|
+
output: {
|
|
21564
|
+
encoding: 'application/json',
|
|
21565
|
+
schema: {
|
|
21566
|
+
type: 'ref',
|
|
21567
|
+
ref: 'lex:tools.ozone.report.defs#assignmentView',
|
|
21568
|
+
},
|
|
21569
|
+
},
|
|
21570
|
+
errors: [
|
|
21571
|
+
{
|
|
21572
|
+
name: 'AlreadyAssigned',
|
|
21573
|
+
description: 'The report is already assigned to another user.',
|
|
21574
|
+
},
|
|
21575
|
+
{
|
|
21576
|
+
name: 'InvalidAssignment',
|
|
21577
|
+
description: 'The report ID or queue ID is invalid.',
|
|
21578
|
+
},
|
|
21579
|
+
],
|
|
21055
21580
|
},
|
|
21056
|
-
|
|
21057
|
-
|
|
21058
|
-
|
|
21581
|
+
},
|
|
21582
|
+
},
|
|
21583
|
+
ToolsOzoneReportCreateActivity: {
|
|
21584
|
+
lexicon: 1,
|
|
21585
|
+
id: 'tools.ozone.report.createActivity',
|
|
21586
|
+
defs: {
|
|
21587
|
+
main: {
|
|
21588
|
+
type: 'procedure',
|
|
21589
|
+
description:
|
|
21590
|
+
'Register an activity on a report. For state-change activity types, validates the transition and updates report.status atomically.',
|
|
21591
|
+
input: {
|
|
21592
|
+
encoding: 'application/json',
|
|
21593
|
+
schema: {
|
|
21594
|
+
type: 'object',
|
|
21595
|
+
required: ['reportId', 'activity'],
|
|
21596
|
+
properties: {
|
|
21597
|
+
reportId: {
|
|
21598
|
+
type: 'integer',
|
|
21599
|
+
description: 'ID of the report to record activity on',
|
|
21600
|
+
},
|
|
21601
|
+
activity: {
|
|
21602
|
+
type: 'union',
|
|
21603
|
+
refs: [
|
|
21604
|
+
'lex:tools.ozone.report.defs#queueActivity',
|
|
21605
|
+
'lex:tools.ozone.report.defs#assignmentActivity',
|
|
21606
|
+
'lex:tools.ozone.report.defs#escalationActivity',
|
|
21607
|
+
'lex:tools.ozone.report.defs#closeActivity',
|
|
21608
|
+
'lex:tools.ozone.report.defs#reopenActivity',
|
|
21609
|
+
'lex:tools.ozone.report.defs#noteActivity',
|
|
21610
|
+
],
|
|
21611
|
+
description: 'The type of activity to record.',
|
|
21612
|
+
},
|
|
21613
|
+
internalNote: {
|
|
21614
|
+
type: 'string',
|
|
21615
|
+
description:
|
|
21616
|
+
'Optional moderator-only note. Not visible to reporters.',
|
|
21617
|
+
},
|
|
21618
|
+
publicNote: {
|
|
21619
|
+
type: 'string',
|
|
21620
|
+
description:
|
|
21621
|
+
'Optional public-facing note, potentially visible to the reporter.',
|
|
21622
|
+
},
|
|
21623
|
+
isAutomated: {
|
|
21624
|
+
type: 'boolean',
|
|
21625
|
+
description:
|
|
21626
|
+
'Set true when this activity is triggered by an automated process. Defaults to false.',
|
|
21627
|
+
default: false,
|
|
21628
|
+
},
|
|
21629
|
+
},
|
|
21630
|
+
},
|
|
21631
|
+
},
|
|
21632
|
+
output: {
|
|
21633
|
+
encoding: 'application/json',
|
|
21634
|
+
schema: {
|
|
21635
|
+
type: 'object',
|
|
21636
|
+
required: ['activity'],
|
|
21637
|
+
properties: {
|
|
21638
|
+
activity: {
|
|
21639
|
+
type: 'ref',
|
|
21640
|
+
ref: 'lex:tools.ozone.report.defs#reportActivityView',
|
|
21641
|
+
},
|
|
21642
|
+
},
|
|
21643
|
+
},
|
|
21644
|
+
},
|
|
21645
|
+
errors: [
|
|
21646
|
+
{
|
|
21647
|
+
name: 'ReportNotFound',
|
|
21648
|
+
description: 'No report exists with the given reportId',
|
|
21649
|
+
},
|
|
21650
|
+
{
|
|
21651
|
+
name: 'InvalidStateTransition',
|
|
21652
|
+
description:
|
|
21653
|
+
"The requested state transition is not permitted from the report's current status",
|
|
21654
|
+
},
|
|
21655
|
+
{
|
|
21656
|
+
name: 'AlreadyInTargetState',
|
|
21657
|
+
description:
|
|
21658
|
+
'The report is already in the status implied by this activity type',
|
|
21659
|
+
},
|
|
21660
|
+
],
|
|
21059
21661
|
},
|
|
21060
|
-
|
|
21061
|
-
|
|
21062
|
-
|
|
21662
|
+
},
|
|
21663
|
+
},
|
|
21664
|
+
ToolsOzoneReportDefs: {
|
|
21665
|
+
lexicon: 1,
|
|
21666
|
+
id: 'tools.ozone.report.defs',
|
|
21667
|
+
defs: {
|
|
21668
|
+
reasonType: {
|
|
21669
|
+
type: 'string',
|
|
21670
|
+
knownValues: [
|
|
21671
|
+
'tools.ozone.report.defs#reasonAppeal',
|
|
21672
|
+
'tools.ozone.report.defs#reasonOther',
|
|
21673
|
+
'tools.ozone.report.defs#reasonViolenceAnimal',
|
|
21674
|
+
'tools.ozone.report.defs#reasonViolenceThreats',
|
|
21675
|
+
'tools.ozone.report.defs#reasonViolenceGraphicContent',
|
|
21676
|
+
'tools.ozone.report.defs#reasonViolenceGlorification',
|
|
21677
|
+
'tools.ozone.report.defs#reasonViolenceExtremistContent',
|
|
21678
|
+
'tools.ozone.report.defs#reasonViolenceTrafficking',
|
|
21679
|
+
'tools.ozone.report.defs#reasonViolenceOther',
|
|
21680
|
+
'tools.ozone.report.defs#reasonSexualAbuseContent',
|
|
21681
|
+
'tools.ozone.report.defs#reasonSexualNCII',
|
|
21682
|
+
'tools.ozone.report.defs#reasonSexualDeepfake',
|
|
21683
|
+
'tools.ozone.report.defs#reasonSexualAnimal',
|
|
21684
|
+
'tools.ozone.report.defs#reasonSexualUnlabeled',
|
|
21685
|
+
'tools.ozone.report.defs#reasonSexualOther',
|
|
21686
|
+
'tools.ozone.report.defs#reasonChildSafetyCSAM',
|
|
21687
|
+
'tools.ozone.report.defs#reasonChildSafetyGroom',
|
|
21688
|
+
'tools.ozone.report.defs#reasonChildSafetyPrivacy',
|
|
21689
|
+
'tools.ozone.report.defs#reasonChildSafetyHarassment',
|
|
21690
|
+
'tools.ozone.report.defs#reasonChildSafetyOther',
|
|
21691
|
+
'tools.ozone.report.defs#reasonHarassmentTroll',
|
|
21692
|
+
'tools.ozone.report.defs#reasonHarassmentTargeted',
|
|
21693
|
+
'tools.ozone.report.defs#reasonHarassmentHateSpeech',
|
|
21694
|
+
'tools.ozone.report.defs#reasonHarassmentDoxxing',
|
|
21695
|
+
'tools.ozone.report.defs#reasonHarassmentOther',
|
|
21696
|
+
'tools.ozone.report.defs#reasonMisleadingBot',
|
|
21697
|
+
'tools.ozone.report.defs#reasonMisleadingImpersonation',
|
|
21698
|
+
'tools.ozone.report.defs#reasonMisleadingSpam',
|
|
21699
|
+
'tools.ozone.report.defs#reasonMisleadingScam',
|
|
21700
|
+
'tools.ozone.report.defs#reasonMisleadingElections',
|
|
21701
|
+
'tools.ozone.report.defs#reasonMisleadingOther',
|
|
21702
|
+
'tools.ozone.report.defs#reasonRuleSiteSecurity',
|
|
21703
|
+
'tools.ozone.report.defs#reasonRuleProhibitedSales',
|
|
21704
|
+
'tools.ozone.report.defs#reasonRuleBanEvasion',
|
|
21705
|
+
'tools.ozone.report.defs#reasonRuleOther',
|
|
21706
|
+
'tools.ozone.report.defs#reasonSelfHarmContent',
|
|
21707
|
+
'tools.ozone.report.defs#reasonSelfHarmED',
|
|
21708
|
+
'tools.ozone.report.defs#reasonSelfHarmStunts',
|
|
21709
|
+
'tools.ozone.report.defs#reasonSelfHarmSubstances',
|
|
21710
|
+
'tools.ozone.report.defs#reasonSelfHarmOther',
|
|
21711
|
+
],
|
|
21063
21712
|
},
|
|
21064
|
-
|
|
21713
|
+
reasonAppeal: {
|
|
21065
21714
|
type: 'token',
|
|
21066
|
-
description: '
|
|
21715
|
+
description: 'Appeal a previously taken moderation action',
|
|
21067
21716
|
},
|
|
21068
|
-
|
|
21717
|
+
reasonOther: {
|
|
21069
21718
|
type: 'token',
|
|
21070
|
-
description: '
|
|
21719
|
+
description: 'An issue not included in these options',
|
|
21071
21720
|
},
|
|
21072
|
-
|
|
21721
|
+
reasonViolenceAnimal: {
|
|
21073
21722
|
type: 'token',
|
|
21074
|
-
description: '
|
|
21723
|
+
description: 'Animal welfare violations',
|
|
21075
21724
|
},
|
|
21076
|
-
|
|
21725
|
+
reasonViolenceThreats: {
|
|
21077
21726
|
type: 'token',
|
|
21078
|
-
description: '
|
|
21727
|
+
description: 'Threats or incitement',
|
|
21079
21728
|
},
|
|
21080
|
-
|
|
21729
|
+
reasonViolenceGraphicContent: {
|
|
21081
21730
|
type: 'token',
|
|
21082
|
-
description: '
|
|
21731
|
+
description: 'Graphic violent content',
|
|
21083
21732
|
},
|
|
21084
|
-
|
|
21733
|
+
reasonViolenceGlorification: {
|
|
21085
21734
|
type: 'token',
|
|
21086
|
-
description: '
|
|
21735
|
+
description: 'Glorification of violence',
|
|
21087
21736
|
},
|
|
21088
|
-
|
|
21737
|
+
reasonViolenceExtremistContent: {
|
|
21089
21738
|
type: 'token',
|
|
21090
|
-
description:
|
|
21739
|
+
description:
|
|
21740
|
+
"Extremist content. These reports will be sent only be sent to the application's Moderation Authority.",
|
|
21091
21741
|
},
|
|
21092
|
-
|
|
21742
|
+
reasonViolenceTrafficking: {
|
|
21093
21743
|
type: 'token',
|
|
21094
|
-
description: '
|
|
21744
|
+
description: 'Human trafficking',
|
|
21095
21745
|
},
|
|
21096
|
-
|
|
21746
|
+
reasonViolenceOther: {
|
|
21097
21747
|
type: 'token',
|
|
21098
|
-
description: '
|
|
21748
|
+
description: 'Other violent content',
|
|
21099
21749
|
},
|
|
21100
|
-
|
|
21750
|
+
reasonSexualAbuseContent: {
|
|
21101
21751
|
type: 'token',
|
|
21102
|
-
description: '
|
|
21752
|
+
description: 'Adult sexual abuse content',
|
|
21753
|
+
},
|
|
21754
|
+
reasonSexualNCII: {
|
|
21755
|
+
type: 'token',
|
|
21756
|
+
description: 'Non-consensual intimate imagery',
|
|
21757
|
+
},
|
|
21758
|
+
reasonSexualDeepfake: {
|
|
21759
|
+
type: 'token',
|
|
21760
|
+
description: 'Deepfake adult content',
|
|
21761
|
+
},
|
|
21762
|
+
reasonSexualAnimal: {
|
|
21763
|
+
type: 'token',
|
|
21764
|
+
description: 'Animal sexual abuse',
|
|
21765
|
+
},
|
|
21766
|
+
reasonSexualUnlabeled: {
|
|
21767
|
+
type: 'token',
|
|
21768
|
+
description: 'Unlabelled adult content',
|
|
21769
|
+
},
|
|
21770
|
+
reasonSexualOther: {
|
|
21771
|
+
type: 'token',
|
|
21772
|
+
description: 'Other sexual violence content',
|
|
21773
|
+
},
|
|
21774
|
+
reasonChildSafetyCSAM: {
|
|
21775
|
+
type: 'token',
|
|
21776
|
+
description:
|
|
21777
|
+
"Child sexual abuse material (CSAM). These reports will be sent only be sent to the application's Moderation Authority.",
|
|
21778
|
+
},
|
|
21779
|
+
reasonChildSafetyGroom: {
|
|
21780
|
+
type: 'token',
|
|
21781
|
+
description:
|
|
21782
|
+
"Grooming or predatory behavior. These reports will be sent only be sent to the application's Moderation Authority.",
|
|
21783
|
+
},
|
|
21784
|
+
reasonChildSafetyPrivacy: {
|
|
21785
|
+
type: 'token',
|
|
21786
|
+
description: 'Privacy violation involving a minor',
|
|
21787
|
+
},
|
|
21788
|
+
reasonChildSafetyHarassment: {
|
|
21789
|
+
type: 'token',
|
|
21790
|
+
description: 'Harassment or bullying of minors',
|
|
21791
|
+
},
|
|
21792
|
+
reasonChildSafetyOther: {
|
|
21793
|
+
type: 'token',
|
|
21794
|
+
description:
|
|
21795
|
+
"Other child safety. These reports will be sent only be sent to the application's Moderation Authority.",
|
|
21796
|
+
},
|
|
21797
|
+
reasonHarassmentTroll: {
|
|
21798
|
+
type: 'token',
|
|
21799
|
+
description: 'Trolling',
|
|
21800
|
+
},
|
|
21801
|
+
reasonHarassmentTargeted: {
|
|
21802
|
+
type: 'token',
|
|
21803
|
+
description: 'Targeted harassment',
|
|
21804
|
+
},
|
|
21805
|
+
reasonHarassmentHateSpeech: {
|
|
21806
|
+
type: 'token',
|
|
21807
|
+
description: 'Hate speech',
|
|
21808
|
+
},
|
|
21809
|
+
reasonHarassmentDoxxing: {
|
|
21810
|
+
type: 'token',
|
|
21811
|
+
description: 'Doxxing',
|
|
21812
|
+
},
|
|
21813
|
+
reasonHarassmentOther: {
|
|
21814
|
+
type: 'token',
|
|
21815
|
+
description: 'Other harassing or hateful content',
|
|
21816
|
+
},
|
|
21817
|
+
reasonMisleadingBot: {
|
|
21818
|
+
type: 'token',
|
|
21819
|
+
description: 'Fake account or bot',
|
|
21820
|
+
},
|
|
21821
|
+
reasonMisleadingImpersonation: {
|
|
21822
|
+
type: 'token',
|
|
21823
|
+
description: 'Impersonation',
|
|
21824
|
+
},
|
|
21825
|
+
reasonMisleadingSpam: {
|
|
21826
|
+
type: 'token',
|
|
21827
|
+
description: 'Spam',
|
|
21828
|
+
},
|
|
21829
|
+
reasonMisleadingScam: {
|
|
21830
|
+
type: 'token',
|
|
21831
|
+
description: 'Scam',
|
|
21832
|
+
},
|
|
21833
|
+
reasonMisleadingElections: {
|
|
21834
|
+
type: 'token',
|
|
21835
|
+
description: 'False information about elections',
|
|
21836
|
+
},
|
|
21837
|
+
reasonMisleadingOther: {
|
|
21838
|
+
type: 'token',
|
|
21839
|
+
description: 'Other misleading content',
|
|
21840
|
+
},
|
|
21841
|
+
reasonRuleSiteSecurity: {
|
|
21842
|
+
type: 'token',
|
|
21843
|
+
description: 'Hacking or system attacks',
|
|
21844
|
+
},
|
|
21845
|
+
reasonRuleProhibitedSales: {
|
|
21846
|
+
type: 'token',
|
|
21847
|
+
description: 'Promoting or selling prohibited items or services',
|
|
21848
|
+
},
|
|
21849
|
+
reasonRuleBanEvasion: {
|
|
21850
|
+
type: 'token',
|
|
21851
|
+
description: 'Banned user returning',
|
|
21852
|
+
},
|
|
21853
|
+
reasonRuleOther: {
|
|
21854
|
+
type: 'token',
|
|
21855
|
+
description: 'Other',
|
|
21856
|
+
},
|
|
21857
|
+
reasonSelfHarmContent: {
|
|
21858
|
+
type: 'token',
|
|
21859
|
+
description: 'Content promoting or depicting self-harm',
|
|
21860
|
+
},
|
|
21861
|
+
reasonSelfHarmED: {
|
|
21862
|
+
type: 'token',
|
|
21863
|
+
description: 'Eating disorders',
|
|
21103
21864
|
},
|
|
21104
21865
|
reasonSelfHarmStunts: {
|
|
21105
21866
|
type: 'token',
|
|
@@ -21113,6 +21874,974 @@ export const schemaDict = {
|
|
|
21113
21874
|
type: 'token',
|
|
21114
21875
|
description: 'Other dangerous content',
|
|
21115
21876
|
},
|
|
21877
|
+
reportAssignment: {
|
|
21878
|
+
type: 'object',
|
|
21879
|
+
description:
|
|
21880
|
+
'Information about the moderator currently assigned to a report.',
|
|
21881
|
+
required: ['did', 'assignedAt'],
|
|
21882
|
+
properties: {
|
|
21883
|
+
did: {
|
|
21884
|
+
type: 'string',
|
|
21885
|
+
format: 'did',
|
|
21886
|
+
description: 'DID of the assigned moderator',
|
|
21887
|
+
},
|
|
21888
|
+
moderator: {
|
|
21889
|
+
type: 'ref',
|
|
21890
|
+
ref: 'lex:tools.ozone.team.defs#member',
|
|
21891
|
+
description: 'Full member record of the assigned moderator',
|
|
21892
|
+
},
|
|
21893
|
+
assignedAt: {
|
|
21894
|
+
type: 'string',
|
|
21895
|
+
format: 'datetime',
|
|
21896
|
+
description: 'When the report was assigned',
|
|
21897
|
+
},
|
|
21898
|
+
},
|
|
21899
|
+
},
|
|
21900
|
+
reportView: {
|
|
21901
|
+
type: 'object',
|
|
21902
|
+
required: [
|
|
21903
|
+
'id',
|
|
21904
|
+
'eventId',
|
|
21905
|
+
'status',
|
|
21906
|
+
'subject',
|
|
21907
|
+
'reportType',
|
|
21908
|
+
'reportedBy',
|
|
21909
|
+
'reporter',
|
|
21910
|
+
'createdAt',
|
|
21911
|
+
],
|
|
21912
|
+
properties: {
|
|
21913
|
+
id: {
|
|
21914
|
+
type: 'integer',
|
|
21915
|
+
description: 'Report ID',
|
|
21916
|
+
},
|
|
21917
|
+
eventId: {
|
|
21918
|
+
type: 'integer',
|
|
21919
|
+
description: 'ID of the moderation event that created this report',
|
|
21920
|
+
},
|
|
21921
|
+
status: {
|
|
21922
|
+
type: 'string',
|
|
21923
|
+
knownValues: ['open', 'closed', 'escalated', 'queued', 'assigned'],
|
|
21924
|
+
description: 'Current status of the report',
|
|
21925
|
+
},
|
|
21926
|
+
subject: {
|
|
21927
|
+
type: 'ref',
|
|
21928
|
+
ref: 'lex:tools.ozone.moderation.defs#subjectView',
|
|
21929
|
+
description: 'The subject that was reported with full details',
|
|
21930
|
+
},
|
|
21931
|
+
reportType: {
|
|
21932
|
+
type: 'ref',
|
|
21933
|
+
ref: 'lex:com.atproto.moderation.defs#reasonType',
|
|
21934
|
+
description: 'Type of report',
|
|
21935
|
+
},
|
|
21936
|
+
reportedBy: {
|
|
21937
|
+
type: 'string',
|
|
21938
|
+
format: 'did',
|
|
21939
|
+
description: 'DID of the user who made the report',
|
|
21940
|
+
},
|
|
21941
|
+
reporter: {
|
|
21942
|
+
type: 'ref',
|
|
21943
|
+
ref: 'lex:tools.ozone.moderation.defs#subjectView',
|
|
21944
|
+
description: 'Full subject view of the reporter account',
|
|
21945
|
+
},
|
|
21946
|
+
comment: {
|
|
21947
|
+
type: 'string',
|
|
21948
|
+
description: 'Comment provided by the reporter',
|
|
21949
|
+
},
|
|
21950
|
+
createdAt: {
|
|
21951
|
+
type: 'string',
|
|
21952
|
+
format: 'datetime',
|
|
21953
|
+
description: 'When the report was created',
|
|
21954
|
+
},
|
|
21955
|
+
updatedAt: {
|
|
21956
|
+
type: 'string',
|
|
21957
|
+
format: 'datetime',
|
|
21958
|
+
description: 'When the report was last updated',
|
|
21959
|
+
},
|
|
21960
|
+
queuedAt: {
|
|
21961
|
+
type: 'string',
|
|
21962
|
+
format: 'datetime',
|
|
21963
|
+
description: 'When the report was assigned to its current queue',
|
|
21964
|
+
},
|
|
21965
|
+
actionEventIds: {
|
|
21966
|
+
type: 'array',
|
|
21967
|
+
items: {
|
|
21968
|
+
type: 'integer',
|
|
21969
|
+
},
|
|
21970
|
+
description:
|
|
21971
|
+
'Array of moderation event IDs representing actions taken on this report (sorted DESC, most recent first)',
|
|
21972
|
+
},
|
|
21973
|
+
actions: {
|
|
21974
|
+
type: 'array',
|
|
21975
|
+
items: {
|
|
21976
|
+
type: 'ref',
|
|
21977
|
+
ref: 'lex:tools.ozone.moderation.defs#modEventView',
|
|
21978
|
+
},
|
|
21979
|
+
description: 'Optional: expanded action events',
|
|
21980
|
+
},
|
|
21981
|
+
actionNote: {
|
|
21982
|
+
type: 'string',
|
|
21983
|
+
description: 'Note sent to reporter when report was actioned',
|
|
21984
|
+
},
|
|
21985
|
+
subjectStatus: {
|
|
21986
|
+
type: 'ref',
|
|
21987
|
+
ref: 'lex:tools.ozone.moderation.defs#subjectStatusView',
|
|
21988
|
+
description: 'Current status of the reported subject',
|
|
21989
|
+
},
|
|
21990
|
+
relatedReportCount: {
|
|
21991
|
+
type: 'integer',
|
|
21992
|
+
description: 'Number of other pending reports on the same subject',
|
|
21993
|
+
},
|
|
21994
|
+
assignment: {
|
|
21995
|
+
type: 'ref',
|
|
21996
|
+
ref: 'lex:tools.ozone.report.defs#reportAssignment',
|
|
21997
|
+
description:
|
|
21998
|
+
'Information about moderator currently assigned to this report (if any)',
|
|
21999
|
+
},
|
|
22000
|
+
queue: {
|
|
22001
|
+
type: 'ref',
|
|
22002
|
+
ref: 'lex:tools.ozone.queue.defs#queueView',
|
|
22003
|
+
description: 'The queue this report is assigned to (if any)',
|
|
22004
|
+
},
|
|
22005
|
+
isMuted: {
|
|
22006
|
+
type: 'boolean',
|
|
22007
|
+
description:
|
|
22008
|
+
'Whether this report is muted. A report is muted if the reporter was muted or the subject was muted at the time the report was created.',
|
|
22009
|
+
},
|
|
22010
|
+
},
|
|
22011
|
+
},
|
|
22012
|
+
queueActivity: {
|
|
22013
|
+
type: 'object',
|
|
22014
|
+
description: 'Activity recording a report being routed to a queue.',
|
|
22015
|
+
properties: {
|
|
22016
|
+
previousStatus: {
|
|
22017
|
+
type: 'string',
|
|
22018
|
+
knownValues: ['open', 'closed', 'escalated', 'queued', 'assigned'],
|
|
22019
|
+
description:
|
|
22020
|
+
"The report's status before this activity. Populated automatically from the report row; not required in input.",
|
|
22021
|
+
},
|
|
22022
|
+
},
|
|
22023
|
+
},
|
|
22024
|
+
assignmentActivity: {
|
|
22025
|
+
type: 'object',
|
|
22026
|
+
description:
|
|
22027
|
+
'Activity recording a moderator being assigned to a report.',
|
|
22028
|
+
properties: {
|
|
22029
|
+
previousStatus: {
|
|
22030
|
+
type: 'string',
|
|
22031
|
+
knownValues: ['open', 'closed', 'escalated', 'queued', 'assigned'],
|
|
22032
|
+
description:
|
|
22033
|
+
"The report's status before this activity. Populated automatically from the report row; not required in input.",
|
|
22034
|
+
},
|
|
22035
|
+
},
|
|
22036
|
+
},
|
|
22037
|
+
escalationActivity: {
|
|
22038
|
+
type: 'object',
|
|
22039
|
+
description: 'Activity recording a report being escalated.',
|
|
22040
|
+
properties: {
|
|
22041
|
+
previousStatus: {
|
|
22042
|
+
type: 'string',
|
|
22043
|
+
knownValues: ['open', 'closed', 'escalated', 'queued', 'assigned'],
|
|
22044
|
+
description:
|
|
22045
|
+
"The report's status before this activity. Populated automatically from the report row; not required in input.",
|
|
22046
|
+
},
|
|
22047
|
+
},
|
|
22048
|
+
},
|
|
22049
|
+
closeActivity: {
|
|
22050
|
+
type: 'object',
|
|
22051
|
+
description: 'Activity recording a report being closed.',
|
|
22052
|
+
properties: {
|
|
22053
|
+
previousStatus: {
|
|
22054
|
+
type: 'string',
|
|
22055
|
+
knownValues: ['open', 'closed', 'escalated', 'queued', 'assigned'],
|
|
22056
|
+
description:
|
|
22057
|
+
"The report's status before this activity. Populated automatically from the report row; not required in input.",
|
|
22058
|
+
},
|
|
22059
|
+
},
|
|
22060
|
+
},
|
|
22061
|
+
reopenActivity: {
|
|
22062
|
+
type: 'object',
|
|
22063
|
+
description:
|
|
22064
|
+
"Activity recording a closed report being reopened. Only valid when the report is in 'closed' status.",
|
|
22065
|
+
properties: {
|
|
22066
|
+
previousStatus: {
|
|
22067
|
+
type: 'string',
|
|
22068
|
+
knownValues: ['open', 'closed', 'escalated', 'queued', 'assigned'],
|
|
22069
|
+
description:
|
|
22070
|
+
"The report's status before this activity. Populated automatically from the report row; not required in input.",
|
|
22071
|
+
},
|
|
22072
|
+
},
|
|
22073
|
+
},
|
|
22074
|
+
noteActivity: {
|
|
22075
|
+
type: 'object',
|
|
22076
|
+
description:
|
|
22077
|
+
'Activity recording a note on a report. Use internalNote for moderator-only notes or publicNote for reporter-visible notes (or both).',
|
|
22078
|
+
properties: {},
|
|
22079
|
+
},
|
|
22080
|
+
reportActivityView: {
|
|
22081
|
+
type: 'object',
|
|
22082
|
+
description: 'A single activity entry on a report.',
|
|
22083
|
+
required: [
|
|
22084
|
+
'id',
|
|
22085
|
+
'reportId',
|
|
22086
|
+
'activity',
|
|
22087
|
+
'isAutomated',
|
|
22088
|
+
'createdBy',
|
|
22089
|
+
'createdAt',
|
|
22090
|
+
],
|
|
22091
|
+
properties: {
|
|
22092
|
+
id: {
|
|
22093
|
+
type: 'integer',
|
|
22094
|
+
description: 'Activity ID',
|
|
22095
|
+
},
|
|
22096
|
+
reportId: {
|
|
22097
|
+
type: 'integer',
|
|
22098
|
+
description: 'ID of the report this activity belongs to',
|
|
22099
|
+
},
|
|
22100
|
+
activity: {
|
|
22101
|
+
type: 'union',
|
|
22102
|
+
refs: [
|
|
22103
|
+
'lex:tools.ozone.report.defs#queueActivity',
|
|
22104
|
+
'lex:tools.ozone.report.defs#assignmentActivity',
|
|
22105
|
+
'lex:tools.ozone.report.defs#escalationActivity',
|
|
22106
|
+
'lex:tools.ozone.report.defs#closeActivity',
|
|
22107
|
+
'lex:tools.ozone.report.defs#reopenActivity',
|
|
22108
|
+
'lex:tools.ozone.report.defs#noteActivity',
|
|
22109
|
+
],
|
|
22110
|
+
description: 'The typed activity object describing what occurred.',
|
|
22111
|
+
},
|
|
22112
|
+
internalNote: {
|
|
22113
|
+
type: 'string',
|
|
22114
|
+
description:
|
|
22115
|
+
'Optional moderator-only note. Not visible to reporters.',
|
|
22116
|
+
},
|
|
22117
|
+
publicNote: {
|
|
22118
|
+
type: 'string',
|
|
22119
|
+
description:
|
|
22120
|
+
'Optional public note, potentially visible to the reporter.',
|
|
22121
|
+
},
|
|
22122
|
+
meta: {
|
|
22123
|
+
type: 'unknown',
|
|
22124
|
+
description:
|
|
22125
|
+
'Extensible JSON payload for loose activity-specific metadata (e.g. assignmentId).',
|
|
22126
|
+
},
|
|
22127
|
+
isAutomated: {
|
|
22128
|
+
type: 'boolean',
|
|
22129
|
+
description:
|
|
22130
|
+
'True if this activity was created by an automated process (e.g. queue router) rather than a direct human action.',
|
|
22131
|
+
},
|
|
22132
|
+
createdBy: {
|
|
22133
|
+
type: 'string',
|
|
22134
|
+
format: 'did',
|
|
22135
|
+
description:
|
|
22136
|
+
'DID of the actor who created this activity, or the service DID for automated activities.',
|
|
22137
|
+
},
|
|
22138
|
+
moderator: {
|
|
22139
|
+
type: 'ref',
|
|
22140
|
+
ref: 'lex:tools.ozone.team.defs#member',
|
|
22141
|
+
description:
|
|
22142
|
+
'Full member record of the moderator who created this activity',
|
|
22143
|
+
},
|
|
22144
|
+
createdAt: {
|
|
22145
|
+
type: 'string',
|
|
22146
|
+
format: 'datetime',
|
|
22147
|
+
description: 'When this activity was created',
|
|
22148
|
+
},
|
|
22149
|
+
},
|
|
22150
|
+
},
|
|
22151
|
+
liveStats: {
|
|
22152
|
+
description:
|
|
22153
|
+
'Live statistics for reports for the current calendar day, filterable by queue, moderator, or report type.',
|
|
22154
|
+
type: 'object',
|
|
22155
|
+
properties: {
|
|
22156
|
+
pendingCount: {
|
|
22157
|
+
type: 'integer',
|
|
22158
|
+
description: 'Number of reports currently not closed.',
|
|
22159
|
+
},
|
|
22160
|
+
actionedCount: {
|
|
22161
|
+
type: 'integer',
|
|
22162
|
+
description: 'Number of reports closed today.',
|
|
22163
|
+
},
|
|
22164
|
+
escalatedCount: {
|
|
22165
|
+
type: 'integer',
|
|
22166
|
+
description: 'Number of reports escalated today.',
|
|
22167
|
+
},
|
|
22168
|
+
inboundCount: {
|
|
22169
|
+
type: 'integer',
|
|
22170
|
+
description: 'Reports received today.',
|
|
22171
|
+
},
|
|
22172
|
+
actionRate: {
|
|
22173
|
+
type: 'integer',
|
|
22174
|
+
description:
|
|
22175
|
+
'Percentage of reports actioned (actionedCount / inboundCount * 100), rounded to nearest integer.',
|
|
22176
|
+
},
|
|
22177
|
+
avgHandlingTimeSec: {
|
|
22178
|
+
type: 'integer',
|
|
22179
|
+
description:
|
|
22180
|
+
'Average time in seconds from report creation (or moderator assignment) to close.',
|
|
22181
|
+
},
|
|
22182
|
+
lastUpdated: {
|
|
22183
|
+
type: 'string',
|
|
22184
|
+
format: 'datetime',
|
|
22185
|
+
description: 'When these statistics were last computed.',
|
|
22186
|
+
},
|
|
22187
|
+
},
|
|
22188
|
+
},
|
|
22189
|
+
historicalStats: {
|
|
22190
|
+
description:
|
|
22191
|
+
'A single daily snapshot of report statistics for a calendar date.',
|
|
22192
|
+
type: 'object',
|
|
22193
|
+
required: ['date'],
|
|
22194
|
+
properties: {
|
|
22195
|
+
date: {
|
|
22196
|
+
type: 'string',
|
|
22197
|
+
description: 'The calendar date this snapshot covers (YYYY-MM-DD).',
|
|
22198
|
+
},
|
|
22199
|
+
computedAt: {
|
|
22200
|
+
type: 'string',
|
|
22201
|
+
format: 'datetime',
|
|
22202
|
+
description: 'When this snapshot was last computed.',
|
|
22203
|
+
},
|
|
22204
|
+
pendingCount: {
|
|
22205
|
+
type: 'integer',
|
|
22206
|
+
description: 'Number of reports not closed at time of computation.',
|
|
22207
|
+
},
|
|
22208
|
+
actionedCount: {
|
|
22209
|
+
type: 'integer',
|
|
22210
|
+
description: 'Number of reports closed during this day.',
|
|
22211
|
+
},
|
|
22212
|
+
escalatedCount: {
|
|
22213
|
+
type: 'integer',
|
|
22214
|
+
description: 'Number of reports escalated during this day.',
|
|
22215
|
+
},
|
|
22216
|
+
inboundCount: {
|
|
22217
|
+
type: 'integer',
|
|
22218
|
+
description: 'Reports received during this day.',
|
|
22219
|
+
},
|
|
22220
|
+
actionRate: {
|
|
22221
|
+
type: 'integer',
|
|
22222
|
+
description:
|
|
22223
|
+
'Percentage of reports actioned (actionedCount / inboundCount * 100), rounded to nearest integer.',
|
|
22224
|
+
},
|
|
22225
|
+
avgHandlingTimeSec: {
|
|
22226
|
+
type: 'integer',
|
|
22227
|
+
description:
|
|
22228
|
+
'Average time in seconds from report creation (or moderator assignment) to close.',
|
|
22229
|
+
},
|
|
22230
|
+
},
|
|
22231
|
+
},
|
|
22232
|
+
assignmentView: {
|
|
22233
|
+
type: 'object',
|
|
22234
|
+
required: ['id', 'did', 'reportId', 'startAt'],
|
|
22235
|
+
properties: {
|
|
22236
|
+
id: {
|
|
22237
|
+
type: 'integer',
|
|
22238
|
+
},
|
|
22239
|
+
did: {
|
|
22240
|
+
type: 'string',
|
|
22241
|
+
format: 'did',
|
|
22242
|
+
},
|
|
22243
|
+
moderator: {
|
|
22244
|
+
type: 'ref',
|
|
22245
|
+
ref: 'lex:tools.ozone.team.defs#member',
|
|
22246
|
+
description: 'The moderator assigned to this report',
|
|
22247
|
+
},
|
|
22248
|
+
queue: {
|
|
22249
|
+
type: 'ref',
|
|
22250
|
+
ref: 'lex:tools.ozone.queue.defs#queueView',
|
|
22251
|
+
},
|
|
22252
|
+
reportId: {
|
|
22253
|
+
type: 'integer',
|
|
22254
|
+
},
|
|
22255
|
+
startAt: {
|
|
22256
|
+
type: 'string',
|
|
22257
|
+
format: 'datetime',
|
|
22258
|
+
},
|
|
22259
|
+
endAt: {
|
|
22260
|
+
type: 'string',
|
|
22261
|
+
format: 'datetime',
|
|
22262
|
+
},
|
|
22263
|
+
},
|
|
22264
|
+
},
|
|
22265
|
+
},
|
|
22266
|
+
},
|
|
22267
|
+
ToolsOzoneReportGetAssignments: {
|
|
22268
|
+
lexicon: 1,
|
|
22269
|
+
id: 'tools.ozone.report.getAssignments',
|
|
22270
|
+
defs: {
|
|
22271
|
+
main: {
|
|
22272
|
+
type: 'query',
|
|
22273
|
+
description: 'Get assignments for reports.',
|
|
22274
|
+
parameters: {
|
|
22275
|
+
type: 'params',
|
|
22276
|
+
properties: {
|
|
22277
|
+
onlyActive: {
|
|
22278
|
+
type: 'boolean',
|
|
22279
|
+
default: true,
|
|
22280
|
+
description: 'When true, only returns active assignments.',
|
|
22281
|
+
},
|
|
22282
|
+
reportIds: {
|
|
22283
|
+
type: 'array',
|
|
22284
|
+
items: {
|
|
22285
|
+
type: 'integer',
|
|
22286
|
+
},
|
|
22287
|
+
maxLength: 50,
|
|
22288
|
+
description:
|
|
22289
|
+
'If specified, returns assignments for these reports only.',
|
|
22290
|
+
},
|
|
22291
|
+
dids: {
|
|
22292
|
+
type: 'array',
|
|
22293
|
+
items: {
|
|
22294
|
+
type: 'string',
|
|
22295
|
+
format: 'did',
|
|
22296
|
+
},
|
|
22297
|
+
maxLength: 50,
|
|
22298
|
+
description:
|
|
22299
|
+
'If specified, returns assignments for these moderators only.',
|
|
22300
|
+
},
|
|
22301
|
+
limit: {
|
|
22302
|
+
type: 'integer',
|
|
22303
|
+
minimum: 1,
|
|
22304
|
+
maximum: 100,
|
|
22305
|
+
default: 50,
|
|
22306
|
+
},
|
|
22307
|
+
cursor: {
|
|
22308
|
+
type: 'string',
|
|
22309
|
+
},
|
|
22310
|
+
},
|
|
22311
|
+
},
|
|
22312
|
+
output: {
|
|
22313
|
+
encoding: 'application/json',
|
|
22314
|
+
schema: {
|
|
22315
|
+
type: 'object',
|
|
22316
|
+
required: ['assignments'],
|
|
22317
|
+
properties: {
|
|
22318
|
+
cursor: {
|
|
22319
|
+
type: 'string',
|
|
22320
|
+
},
|
|
22321
|
+
assignments: {
|
|
22322
|
+
type: 'array',
|
|
22323
|
+
items: {
|
|
22324
|
+
type: 'ref',
|
|
22325
|
+
ref: 'lex:tools.ozone.report.defs#assignmentView',
|
|
22326
|
+
},
|
|
22327
|
+
},
|
|
22328
|
+
},
|
|
22329
|
+
},
|
|
22330
|
+
},
|
|
22331
|
+
},
|
|
22332
|
+
},
|
|
22333
|
+
},
|
|
22334
|
+
ToolsOzoneReportGetHistoricalStats: {
|
|
22335
|
+
lexicon: 1,
|
|
22336
|
+
id: 'tools.ozone.report.getHistoricalStats',
|
|
22337
|
+
defs: {
|
|
22338
|
+
main: {
|
|
22339
|
+
type: 'query',
|
|
22340
|
+
description:
|
|
22341
|
+
'Get historical daily report statistics. Returns a paginated list of daily stat snapshots, newest first. Filter by queue, moderator, or report type.',
|
|
22342
|
+
parameters: {
|
|
22343
|
+
type: 'params',
|
|
22344
|
+
properties: {
|
|
22345
|
+
queueId: {
|
|
22346
|
+
type: 'integer',
|
|
22347
|
+
description:
|
|
22348
|
+
'Filter stats by queue. Use -1 for unqueued reports.',
|
|
22349
|
+
},
|
|
22350
|
+
moderatorDid: {
|
|
22351
|
+
type: 'string',
|
|
22352
|
+
format: 'did',
|
|
22353
|
+
description: 'Filter stats by moderator DID.',
|
|
22354
|
+
},
|
|
22355
|
+
reportTypes: {
|
|
22356
|
+
type: 'array',
|
|
22357
|
+
items: {
|
|
22358
|
+
type: 'string',
|
|
22359
|
+
},
|
|
22360
|
+
description: 'Filter stats by report types.',
|
|
22361
|
+
},
|
|
22362
|
+
startDate: {
|
|
22363
|
+
type: 'string',
|
|
22364
|
+
format: 'datetime',
|
|
22365
|
+
description: 'Earliest date to include (inclusive).',
|
|
22366
|
+
},
|
|
22367
|
+
endDate: {
|
|
22368
|
+
type: 'string',
|
|
22369
|
+
format: 'datetime',
|
|
22370
|
+
description: 'Latest date to include (inclusive).',
|
|
22371
|
+
},
|
|
22372
|
+
limit: {
|
|
22373
|
+
type: 'integer',
|
|
22374
|
+
minimum: 1,
|
|
22375
|
+
maximum: 100,
|
|
22376
|
+
default: 30,
|
|
22377
|
+
description: 'Maximum number of entries to return.',
|
|
22378
|
+
},
|
|
22379
|
+
cursor: {
|
|
22380
|
+
type: 'string',
|
|
22381
|
+
description: 'Pagination cursor.',
|
|
22382
|
+
},
|
|
22383
|
+
},
|
|
22384
|
+
},
|
|
22385
|
+
output: {
|
|
22386
|
+
encoding: 'application/json',
|
|
22387
|
+
schema: {
|
|
22388
|
+
type: 'object',
|
|
22389
|
+
required: ['stats'],
|
|
22390
|
+
properties: {
|
|
22391
|
+
stats: {
|
|
22392
|
+
type: 'array',
|
|
22393
|
+
items: {
|
|
22394
|
+
type: 'ref',
|
|
22395
|
+
ref: 'lex:tools.ozone.report.defs#historicalStats',
|
|
22396
|
+
},
|
|
22397
|
+
},
|
|
22398
|
+
cursor: {
|
|
22399
|
+
type: 'string',
|
|
22400
|
+
},
|
|
22401
|
+
},
|
|
22402
|
+
},
|
|
22403
|
+
},
|
|
22404
|
+
},
|
|
22405
|
+
},
|
|
22406
|
+
},
|
|
22407
|
+
ToolsOzoneReportGetLatestReport: {
|
|
22408
|
+
lexicon: 1,
|
|
22409
|
+
id: 'tools.ozone.report.getLatestReport',
|
|
22410
|
+
defs: {
|
|
22411
|
+
main: {
|
|
22412
|
+
type: 'query',
|
|
22413
|
+
description: 'Get the most recent report.',
|
|
22414
|
+
parameters: {
|
|
22415
|
+
type: 'params',
|
|
22416
|
+
properties: {},
|
|
22417
|
+
},
|
|
22418
|
+
output: {
|
|
22419
|
+
encoding: 'application/json',
|
|
22420
|
+
schema: {
|
|
22421
|
+
type: 'object',
|
|
22422
|
+
required: ['report'],
|
|
22423
|
+
properties: {
|
|
22424
|
+
report: {
|
|
22425
|
+
type: 'ref',
|
|
22426
|
+
ref: 'lex:tools.ozone.report.defs#reportView',
|
|
22427
|
+
},
|
|
22428
|
+
},
|
|
22429
|
+
},
|
|
22430
|
+
},
|
|
22431
|
+
errors: [
|
|
22432
|
+
{
|
|
22433
|
+
name: 'NotFound',
|
|
22434
|
+
description: 'No report found.',
|
|
22435
|
+
},
|
|
22436
|
+
],
|
|
22437
|
+
},
|
|
22438
|
+
},
|
|
22439
|
+
},
|
|
22440
|
+
ToolsOzoneReportGetLiveStats: {
|
|
22441
|
+
lexicon: 1,
|
|
22442
|
+
id: 'tools.ozone.report.getLiveStats',
|
|
22443
|
+
defs: {
|
|
22444
|
+
main: {
|
|
22445
|
+
type: 'query',
|
|
22446
|
+
description:
|
|
22447
|
+
'Get live report statistics from the past 24 hours. Filter by queue, moderator, or report type. Omit all parameters for aggregate stats.',
|
|
22448
|
+
parameters: {
|
|
22449
|
+
type: 'params',
|
|
22450
|
+
properties: {
|
|
22451
|
+
queueId: {
|
|
22452
|
+
type: 'integer',
|
|
22453
|
+
description:
|
|
22454
|
+
'Filter stats by queue. Use -1 for unqueued reports.',
|
|
22455
|
+
},
|
|
22456
|
+
moderatorDid: {
|
|
22457
|
+
type: 'string',
|
|
22458
|
+
format: 'did',
|
|
22459
|
+
description: 'Filter stats by moderator DID.',
|
|
22460
|
+
},
|
|
22461
|
+
reportTypes: {
|
|
22462
|
+
type: 'array',
|
|
22463
|
+
items: {
|
|
22464
|
+
type: 'string',
|
|
22465
|
+
},
|
|
22466
|
+
description: 'Filter stats by report types.',
|
|
22467
|
+
},
|
|
22468
|
+
},
|
|
22469
|
+
},
|
|
22470
|
+
output: {
|
|
22471
|
+
encoding: 'application/json',
|
|
22472
|
+
schema: {
|
|
22473
|
+
type: 'object',
|
|
22474
|
+
required: ['stats'],
|
|
22475
|
+
properties: {
|
|
22476
|
+
stats: {
|
|
22477
|
+
type: 'ref',
|
|
22478
|
+
ref: 'lex:tools.ozone.report.defs#liveStats',
|
|
22479
|
+
description: 'Statistics for the requested filter.',
|
|
22480
|
+
},
|
|
22481
|
+
},
|
|
22482
|
+
},
|
|
22483
|
+
},
|
|
22484
|
+
},
|
|
22485
|
+
},
|
|
22486
|
+
},
|
|
22487
|
+
ToolsOzoneReportGetReport: {
|
|
22488
|
+
lexicon: 1,
|
|
22489
|
+
id: 'tools.ozone.report.getReport',
|
|
22490
|
+
defs: {
|
|
22491
|
+
main: {
|
|
22492
|
+
type: 'query',
|
|
22493
|
+
description: 'Get details about a single moderation report by ID.',
|
|
22494
|
+
parameters: {
|
|
22495
|
+
type: 'params',
|
|
22496
|
+
required: ['id'],
|
|
22497
|
+
properties: {
|
|
22498
|
+
id: {
|
|
22499
|
+
type: 'integer',
|
|
22500
|
+
description: 'The ID of the report to retrieve.',
|
|
22501
|
+
},
|
|
22502
|
+
},
|
|
22503
|
+
},
|
|
22504
|
+
output: {
|
|
22505
|
+
encoding: 'application/json',
|
|
22506
|
+
schema: {
|
|
22507
|
+
type: 'ref',
|
|
22508
|
+
ref: 'lex:tools.ozone.report.defs#reportView',
|
|
22509
|
+
},
|
|
22510
|
+
},
|
|
22511
|
+
errors: [
|
|
22512
|
+
{
|
|
22513
|
+
name: 'NotFound',
|
|
22514
|
+
description: 'No report found.',
|
|
22515
|
+
},
|
|
22516
|
+
],
|
|
22517
|
+
},
|
|
22518
|
+
},
|
|
22519
|
+
},
|
|
22520
|
+
ToolsOzoneReportListActivities: {
|
|
22521
|
+
lexicon: 1,
|
|
22522
|
+
id: 'tools.ozone.report.listActivities',
|
|
22523
|
+
defs: {
|
|
22524
|
+
main: {
|
|
22525
|
+
type: 'query',
|
|
22526
|
+
description:
|
|
22527
|
+
'List all activities for a report, sorted most-recent-first.',
|
|
22528
|
+
parameters: {
|
|
22529
|
+
type: 'params',
|
|
22530
|
+
required: ['reportId'],
|
|
22531
|
+
properties: {
|
|
22532
|
+
reportId: {
|
|
22533
|
+
type: 'integer',
|
|
22534
|
+
description: 'ID of the report whose activities to list',
|
|
22535
|
+
},
|
|
22536
|
+
limit: {
|
|
22537
|
+
type: 'integer',
|
|
22538
|
+
minimum: 1,
|
|
22539
|
+
maximum: 100,
|
|
22540
|
+
default: 50,
|
|
22541
|
+
},
|
|
22542
|
+
cursor: {
|
|
22543
|
+
type: 'string',
|
|
22544
|
+
},
|
|
22545
|
+
},
|
|
22546
|
+
},
|
|
22547
|
+
output: {
|
|
22548
|
+
encoding: 'application/json',
|
|
22549
|
+
schema: {
|
|
22550
|
+
type: 'object',
|
|
22551
|
+
required: ['activities'],
|
|
22552
|
+
properties: {
|
|
22553
|
+
activities: {
|
|
22554
|
+
type: 'array',
|
|
22555
|
+
items: {
|
|
22556
|
+
type: 'ref',
|
|
22557
|
+
ref: 'lex:tools.ozone.report.defs#reportActivityView',
|
|
22558
|
+
},
|
|
22559
|
+
},
|
|
22560
|
+
cursor: {
|
|
22561
|
+
type: 'string',
|
|
22562
|
+
},
|
|
22563
|
+
},
|
|
22564
|
+
},
|
|
22565
|
+
},
|
|
22566
|
+
},
|
|
22567
|
+
},
|
|
22568
|
+
},
|
|
22569
|
+
ToolsOzoneReportQueryReports: {
|
|
22570
|
+
lexicon: 1,
|
|
22571
|
+
id: 'tools.ozone.report.queryReports',
|
|
22572
|
+
defs: {
|
|
22573
|
+
main: {
|
|
22574
|
+
type: 'query',
|
|
22575
|
+
description:
|
|
22576
|
+
'View moderation reports. Reports are individual instances of content being reported, as opposed to subject statuses which aggregate reports at the subject level.',
|
|
22577
|
+
parameters: {
|
|
22578
|
+
type: 'params',
|
|
22579
|
+
required: ['status'],
|
|
22580
|
+
properties: {
|
|
22581
|
+
queueId: {
|
|
22582
|
+
type: 'integer',
|
|
22583
|
+
description: 'Filter by queue ID. Use -1 for unassigned reports.',
|
|
22584
|
+
},
|
|
22585
|
+
reportTypes: {
|
|
22586
|
+
type: 'array',
|
|
22587
|
+
items: {
|
|
22588
|
+
type: 'string',
|
|
22589
|
+
},
|
|
22590
|
+
description:
|
|
22591
|
+
'Filter by report types (fully qualified string in the format of com.atproto.moderation.defs#reason<name>).',
|
|
22592
|
+
},
|
|
22593
|
+
status: {
|
|
22594
|
+
type: 'string',
|
|
22595
|
+
knownValues: [
|
|
22596
|
+
'open',
|
|
22597
|
+
'closed',
|
|
22598
|
+
'escalated',
|
|
22599
|
+
'queued',
|
|
22600
|
+
'assigned',
|
|
22601
|
+
],
|
|
22602
|
+
description: 'Filter by report status.',
|
|
22603
|
+
},
|
|
22604
|
+
subject: {
|
|
22605
|
+
type: 'string',
|
|
22606
|
+
format: 'uri',
|
|
22607
|
+
description: 'Filter by subject DID or AT-URI.',
|
|
22608
|
+
},
|
|
22609
|
+
did: {
|
|
22610
|
+
type: 'string',
|
|
22611
|
+
format: 'did',
|
|
22612
|
+
description:
|
|
22613
|
+
'Filter to reports where the subject is this DID or any record owned by this DID. Unlike `subject` (which scopes to a specific account or record), this returns all reports tied to the DID across both account-level and record-level subjects.',
|
|
22614
|
+
},
|
|
22615
|
+
subjectType: {
|
|
22616
|
+
type: 'string',
|
|
22617
|
+
description:
|
|
22618
|
+
'If specified, reports of the given type (account or record) will be returned.',
|
|
22619
|
+
knownValues: ['account', 'record'],
|
|
22620
|
+
},
|
|
22621
|
+
collections: {
|
|
22622
|
+
type: 'array',
|
|
22623
|
+
maxLength: 20,
|
|
22624
|
+
description:
|
|
22625
|
+
"If specified, reports where the subject belongs to the given collections will be returned. When subjectType is set to 'account', this will be ignored.",
|
|
22626
|
+
items: {
|
|
22627
|
+
type: 'string',
|
|
22628
|
+
format: 'nsid',
|
|
22629
|
+
},
|
|
22630
|
+
},
|
|
22631
|
+
reportedAfter: {
|
|
22632
|
+
type: 'string',
|
|
22633
|
+
format: 'datetime',
|
|
22634
|
+
description: 'Retrieve reports created after a given timestamp',
|
|
22635
|
+
},
|
|
22636
|
+
reportedBefore: {
|
|
22637
|
+
type: 'string',
|
|
22638
|
+
format: 'datetime',
|
|
22639
|
+
description: 'Retrieve reports created before a given timestamp',
|
|
22640
|
+
},
|
|
22641
|
+
isMuted: {
|
|
22642
|
+
type: 'boolean',
|
|
22643
|
+
default: false,
|
|
22644
|
+
description:
|
|
22645
|
+
'Filter by muted status. true returns only muted reports, false returns only unmuted reports. Defaults to false.',
|
|
22646
|
+
},
|
|
22647
|
+
assignedTo: {
|
|
22648
|
+
type: 'string',
|
|
22649
|
+
format: 'did',
|
|
22650
|
+
description:
|
|
22651
|
+
'Filter by the DID of the moderator permanently assigned to the report.',
|
|
22652
|
+
},
|
|
22653
|
+
sortField: {
|
|
22654
|
+
type: 'string',
|
|
22655
|
+
default: 'createdAt',
|
|
22656
|
+
enum: ['createdAt', 'updatedAt'],
|
|
22657
|
+
},
|
|
22658
|
+
sortDirection: {
|
|
22659
|
+
type: 'string',
|
|
22660
|
+
default: 'desc',
|
|
22661
|
+
enum: ['asc', 'desc'],
|
|
22662
|
+
},
|
|
22663
|
+
limit: {
|
|
22664
|
+
type: 'integer',
|
|
22665
|
+
minimum: 1,
|
|
22666
|
+
maximum: 100,
|
|
22667
|
+
default: 50,
|
|
22668
|
+
},
|
|
22669
|
+
cursor: {
|
|
22670
|
+
type: 'string',
|
|
22671
|
+
},
|
|
22672
|
+
},
|
|
22673
|
+
},
|
|
22674
|
+
output: {
|
|
22675
|
+
encoding: 'application/json',
|
|
22676
|
+
schema: {
|
|
22677
|
+
type: 'object',
|
|
22678
|
+
required: ['reports'],
|
|
22679
|
+
properties: {
|
|
22680
|
+
cursor: {
|
|
22681
|
+
type: 'string',
|
|
22682
|
+
},
|
|
22683
|
+
reports: {
|
|
22684
|
+
type: 'array',
|
|
22685
|
+
items: {
|
|
22686
|
+
type: 'ref',
|
|
22687
|
+
ref: 'lex:tools.ozone.report.defs#reportView',
|
|
22688
|
+
},
|
|
22689
|
+
},
|
|
22690
|
+
},
|
|
22691
|
+
},
|
|
22692
|
+
},
|
|
22693
|
+
},
|
|
22694
|
+
},
|
|
22695
|
+
},
|
|
22696
|
+
ToolsOzoneReportReassignQueue: {
|
|
22697
|
+
lexicon: 1,
|
|
22698
|
+
id: 'tools.ozone.report.reassignQueue',
|
|
22699
|
+
defs: {
|
|
22700
|
+
main: {
|
|
22701
|
+
type: 'procedure',
|
|
22702
|
+
description:
|
|
22703
|
+
'Manually reassign a report to a different queue (or unassign it). Records a queueActivity entry on the report.',
|
|
22704
|
+
input: {
|
|
22705
|
+
encoding: 'application/json',
|
|
22706
|
+
schema: {
|
|
22707
|
+
type: 'object',
|
|
22708
|
+
required: ['reportId', 'queueId'],
|
|
22709
|
+
properties: {
|
|
22710
|
+
reportId: {
|
|
22711
|
+
type: 'integer',
|
|
22712
|
+
description: 'ID of the report to reassign',
|
|
22713
|
+
},
|
|
22714
|
+
queueId: {
|
|
22715
|
+
type: 'integer',
|
|
22716
|
+
description:
|
|
22717
|
+
'Target queue ID. Use -1 to unassign from any queue.',
|
|
22718
|
+
},
|
|
22719
|
+
comment: {
|
|
22720
|
+
type: 'string',
|
|
22721
|
+
description:
|
|
22722
|
+
'Optional moderator-only note recorded on the resulting queueActivity as internalNote.',
|
|
22723
|
+
},
|
|
22724
|
+
},
|
|
22725
|
+
},
|
|
22726
|
+
},
|
|
22727
|
+
output: {
|
|
22728
|
+
encoding: 'application/json',
|
|
22729
|
+
schema: {
|
|
22730
|
+
type: 'object',
|
|
22731
|
+
required: ['report'],
|
|
22732
|
+
properties: {
|
|
22733
|
+
report: {
|
|
22734
|
+
type: 'ref',
|
|
22735
|
+
ref: 'lex:tools.ozone.report.defs#reportView',
|
|
22736
|
+
},
|
|
22737
|
+
},
|
|
22738
|
+
},
|
|
22739
|
+
},
|
|
22740
|
+
errors: [
|
|
22741
|
+
{
|
|
22742
|
+
name: 'ReportNotFound',
|
|
22743
|
+
description: 'No report exists with the given reportId',
|
|
22744
|
+
},
|
|
22745
|
+
{
|
|
22746
|
+
name: 'ReportClosed',
|
|
22747
|
+
description: 'The report is closed and cannot be reassigned',
|
|
22748
|
+
},
|
|
22749
|
+
{
|
|
22750
|
+
name: 'AlreadyInTargetQueue',
|
|
22751
|
+
description: 'The report is already assigned to the target queue',
|
|
22752
|
+
},
|
|
22753
|
+
{
|
|
22754
|
+
name: 'QueueNotFound',
|
|
22755
|
+
description: 'No active queue exists with the given queueId',
|
|
22756
|
+
},
|
|
22757
|
+
{
|
|
22758
|
+
name: 'QueueDisabled',
|
|
22759
|
+
description:
|
|
22760
|
+
'The target queue is disabled and cannot receive new assignments',
|
|
22761
|
+
},
|
|
22762
|
+
],
|
|
22763
|
+
},
|
|
22764
|
+
},
|
|
22765
|
+
},
|
|
22766
|
+
ToolsOzoneReportRefreshStats: {
|
|
22767
|
+
lexicon: 1,
|
|
22768
|
+
id: 'tools.ozone.report.refreshStats',
|
|
22769
|
+
defs: {
|
|
22770
|
+
main: {
|
|
22771
|
+
type: 'procedure',
|
|
22772
|
+
description:
|
|
22773
|
+
'Recompute report statistics for a date range. Useful for backfilling after failures or data corrections.',
|
|
22774
|
+
input: {
|
|
22775
|
+
encoding: 'application/json',
|
|
22776
|
+
schema: {
|
|
22777
|
+
type: 'object',
|
|
22778
|
+
required: ['startDate', 'endDate'],
|
|
22779
|
+
properties: {
|
|
22780
|
+
startDate: {
|
|
22781
|
+
type: 'string',
|
|
22782
|
+
description:
|
|
22783
|
+
'Start date for recomputation, inclusive (YYYY-MM-DD).',
|
|
22784
|
+
},
|
|
22785
|
+
endDate: {
|
|
22786
|
+
type: 'string',
|
|
22787
|
+
description:
|
|
22788
|
+
'End date for recomputation, inclusive (YYYY-MM-DD).',
|
|
22789
|
+
},
|
|
22790
|
+
queueIds: {
|
|
22791
|
+
type: 'array',
|
|
22792
|
+
items: {
|
|
22793
|
+
type: 'integer',
|
|
22794
|
+
},
|
|
22795
|
+
description:
|
|
22796
|
+
'Optional list of queue IDs to recompute. Omit to recompute all groups.',
|
|
22797
|
+
},
|
|
22798
|
+
},
|
|
22799
|
+
},
|
|
22800
|
+
},
|
|
22801
|
+
output: {
|
|
22802
|
+
encoding: 'application/json',
|
|
22803
|
+
schema: {
|
|
22804
|
+
type: 'object',
|
|
22805
|
+
properties: {},
|
|
22806
|
+
},
|
|
22807
|
+
},
|
|
22808
|
+
},
|
|
22809
|
+
},
|
|
22810
|
+
},
|
|
22811
|
+
ToolsOzoneReportUnassignModerator: {
|
|
22812
|
+
lexicon: 1,
|
|
22813
|
+
id: 'tools.ozone.report.unassignModerator',
|
|
22814
|
+
defs: {
|
|
22815
|
+
main: {
|
|
22816
|
+
type: 'procedure',
|
|
22817
|
+
description: 'Remove report assignment.',
|
|
22818
|
+
input: {
|
|
22819
|
+
encoding: 'application/json',
|
|
22820
|
+
schema: {
|
|
22821
|
+
type: 'object',
|
|
22822
|
+
required: ['reportId'],
|
|
22823
|
+
properties: {
|
|
22824
|
+
reportId: {
|
|
22825
|
+
type: 'integer',
|
|
22826
|
+
description: 'The ID of the report to unassign.',
|
|
22827
|
+
},
|
|
22828
|
+
},
|
|
22829
|
+
},
|
|
22830
|
+
},
|
|
22831
|
+
output: {
|
|
22832
|
+
encoding: 'application/json',
|
|
22833
|
+
schema: {
|
|
22834
|
+
type: 'ref',
|
|
22835
|
+
ref: 'lex:tools.ozone.report.defs#assignmentView',
|
|
22836
|
+
},
|
|
22837
|
+
},
|
|
22838
|
+
errors: [
|
|
22839
|
+
{
|
|
22840
|
+
name: 'InvalidAssignment',
|
|
22841
|
+
description: 'The report ID is invalid.',
|
|
22842
|
+
},
|
|
22843
|
+
],
|
|
22844
|
+
},
|
|
21116
22845
|
},
|
|
21117
22846
|
},
|
|
21118
22847
|
ToolsOzoneSafelinkAddRule: {
|
|
@@ -23298,7 +25027,28 @@ export const ids = {
|
|
|
23298
25027
|
ToolsOzoneModerationQueryStatuses: 'tools.ozone.moderation.queryStatuses',
|
|
23299
25028
|
ToolsOzoneModerationScheduleAction: 'tools.ozone.moderation.scheduleAction',
|
|
23300
25029
|
ToolsOzoneModerationSearchRepos: 'tools.ozone.moderation.searchRepos',
|
|
25030
|
+
ToolsOzoneQueueAssignModerator: 'tools.ozone.queue.assignModerator',
|
|
25031
|
+
ToolsOzoneQueueCreateQueue: 'tools.ozone.queue.createQueue',
|
|
25032
|
+
ToolsOzoneQueueDefs: 'tools.ozone.queue.defs',
|
|
25033
|
+
ToolsOzoneQueueDeleteQueue: 'tools.ozone.queue.deleteQueue',
|
|
25034
|
+
ToolsOzoneQueueGetAssignments: 'tools.ozone.queue.getAssignments',
|
|
25035
|
+
ToolsOzoneQueueListQueues: 'tools.ozone.queue.listQueues',
|
|
25036
|
+
ToolsOzoneQueueRouteReports: 'tools.ozone.queue.routeReports',
|
|
25037
|
+
ToolsOzoneQueueUnassignModerator: 'tools.ozone.queue.unassignModerator',
|
|
25038
|
+
ToolsOzoneQueueUpdateQueue: 'tools.ozone.queue.updateQueue',
|
|
25039
|
+
ToolsOzoneReportAssignModerator: 'tools.ozone.report.assignModerator',
|
|
25040
|
+
ToolsOzoneReportCreateActivity: 'tools.ozone.report.createActivity',
|
|
23301
25041
|
ToolsOzoneReportDefs: 'tools.ozone.report.defs',
|
|
25042
|
+
ToolsOzoneReportGetAssignments: 'tools.ozone.report.getAssignments',
|
|
25043
|
+
ToolsOzoneReportGetHistoricalStats: 'tools.ozone.report.getHistoricalStats',
|
|
25044
|
+
ToolsOzoneReportGetLatestReport: 'tools.ozone.report.getLatestReport',
|
|
25045
|
+
ToolsOzoneReportGetLiveStats: 'tools.ozone.report.getLiveStats',
|
|
25046
|
+
ToolsOzoneReportGetReport: 'tools.ozone.report.getReport',
|
|
25047
|
+
ToolsOzoneReportListActivities: 'tools.ozone.report.listActivities',
|
|
25048
|
+
ToolsOzoneReportQueryReports: 'tools.ozone.report.queryReports',
|
|
25049
|
+
ToolsOzoneReportReassignQueue: 'tools.ozone.report.reassignQueue',
|
|
25050
|
+
ToolsOzoneReportRefreshStats: 'tools.ozone.report.refreshStats',
|
|
25051
|
+
ToolsOzoneReportUnassignModerator: 'tools.ozone.report.unassignModerator',
|
|
23302
25052
|
ToolsOzoneSafelinkAddRule: 'tools.ozone.safelink.addRule',
|
|
23303
25053
|
ToolsOzoneSafelinkDefs: 'tools.ozone.safelink.defs',
|
|
23304
25054
|
ToolsOzoneSafelinkQueryEvents: 'tools.ozone.safelink.queryEvents',
|