add @bsky.app/sdk + @atproto/lex, vendor lexicons, codegen via lex cli
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,148 @@
|
||||
{
|
||||
"lexicon": 1,
|
||||
"id": "tools.ozone.queue.defs",
|
||||
"defs": {
|
||||
"queueView": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"id",
|
||||
"name",
|
||||
"subjectTypes",
|
||||
"reportTypes",
|
||||
"createdBy",
|
||||
"createdAt",
|
||||
"updatedAt",
|
||||
"enabled",
|
||||
"stats"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"description": "Queue ID"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Display name of the queue"
|
||||
},
|
||||
"subjectTypes": {
|
||||
"type": "array",
|
||||
"minLength": 1,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"knownValues": ["account", "record", "message"]
|
||||
},
|
||||
"description": "Subject types this queue accepts."
|
||||
},
|
||||
"collection": {
|
||||
"type": "string",
|
||||
"format": "nsid",
|
||||
"description": "Collection name for record subjects (e.g., 'app.bsky.feed.post')"
|
||||
},
|
||||
"reportTypes": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"minLength": 1,
|
||||
"description": "Report reason types this queue accepts (fully qualified NSIDs)"
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"description": "Optional description of the queue"
|
||||
},
|
||||
"createdBy": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "DID of moderator who created this queue"
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"updatedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"enabled": {
|
||||
"type": "boolean",
|
||||
"description": "Whether this queue is currently active"
|
||||
},
|
||||
"deletedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When the queue was deleted, if applicable"
|
||||
},
|
||||
"stats": {
|
||||
"type": "ref",
|
||||
"ref": "#queueStats",
|
||||
"description": "Statistics about this queue"
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueStats": {
|
||||
"type": "object",
|
||||
"required": [],
|
||||
"properties": {
|
||||
"pendingCount": {
|
||||
"type": "integer",
|
||||
"description": "Number of reports in 'open' status"
|
||||
},
|
||||
"actionedCount": {
|
||||
"type": "integer",
|
||||
"description": "Number of reports in 'closed' status"
|
||||
},
|
||||
"escalatedCount": {
|
||||
"type": "integer",
|
||||
"description": "Number of reports in 'escalated' status"
|
||||
},
|
||||
"inboundCount": {
|
||||
"type": "integer",
|
||||
"description": "Reports received in this queue in the last 24 hours."
|
||||
},
|
||||
"actionRate": {
|
||||
"type": "integer",
|
||||
"description": "Percentage of reports actioned (actionedCount / inboundCount * 100), rounded to nearest integer. Absent when inboundCount is 0."
|
||||
},
|
||||
"avgHandlingTimeSec": {
|
||||
"type": "integer",
|
||||
"description": "Average time in seconds from report creation to close, for reports closed in this period."
|
||||
},
|
||||
"lastUpdated": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When these statistics were last computed"
|
||||
}
|
||||
}
|
||||
},
|
||||
"assignmentView": {
|
||||
"type": "object",
|
||||
"required": ["id", "did", "queue", "startAt"],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer"
|
||||
},
|
||||
"did": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
},
|
||||
"moderator": {
|
||||
"type": "ref",
|
||||
"ref": "tools.ozone.team.defs#member",
|
||||
"description": "The moderator assigned to this queue"
|
||||
},
|
||||
"queue": {
|
||||
"type": "ref",
|
||||
"ref": "#queueView"
|
||||
},
|
||||
"startAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"endAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,580 @@
|
||||
{
|
||||
"lexicon": 1,
|
||||
"id": "tools.ozone.report.defs",
|
||||
"defs": {
|
||||
"reasonType": {
|
||||
"type": "string",
|
||||
"knownValues": [
|
||||
"tools.ozone.report.defs#reasonAppeal",
|
||||
"tools.ozone.report.defs#reasonOther",
|
||||
"tools.ozone.report.defs#reasonViolenceAnimal",
|
||||
"tools.ozone.report.defs#reasonViolenceThreats",
|
||||
"tools.ozone.report.defs#reasonViolenceGraphicContent",
|
||||
"tools.ozone.report.defs#reasonViolenceGlorification",
|
||||
"tools.ozone.report.defs#reasonViolenceExtremistContent",
|
||||
"tools.ozone.report.defs#reasonViolenceTrafficking",
|
||||
"tools.ozone.report.defs#reasonViolenceOther",
|
||||
"tools.ozone.report.defs#reasonSexualAbuseContent",
|
||||
"tools.ozone.report.defs#reasonSexualNCII",
|
||||
"tools.ozone.report.defs#reasonSexualDeepfake",
|
||||
"tools.ozone.report.defs#reasonSexualAnimal",
|
||||
"tools.ozone.report.defs#reasonSexualUnlabeled",
|
||||
"tools.ozone.report.defs#reasonSexualOther",
|
||||
"tools.ozone.report.defs#reasonChildSafetyCSAM",
|
||||
"tools.ozone.report.defs#reasonChildSafetyGroom",
|
||||
"tools.ozone.report.defs#reasonChildSafetyPrivacy",
|
||||
"tools.ozone.report.defs#reasonChildSafetyHarassment",
|
||||
"tools.ozone.report.defs#reasonChildSafetyOther",
|
||||
"tools.ozone.report.defs#reasonHarassmentTroll",
|
||||
"tools.ozone.report.defs#reasonHarassmentTargeted",
|
||||
"tools.ozone.report.defs#reasonHarassmentHateSpeech",
|
||||
"tools.ozone.report.defs#reasonHarassmentDoxxing",
|
||||
"tools.ozone.report.defs#reasonHarassmentOther",
|
||||
"tools.ozone.report.defs#reasonMisleadingBot",
|
||||
"tools.ozone.report.defs#reasonMisleadingImpersonation",
|
||||
"tools.ozone.report.defs#reasonMisleadingSpam",
|
||||
"tools.ozone.report.defs#reasonMisleadingScam",
|
||||
"tools.ozone.report.defs#reasonMisleadingElections",
|
||||
"tools.ozone.report.defs#reasonMisleadingOther",
|
||||
"tools.ozone.report.defs#reasonRuleSiteSecurity",
|
||||
"tools.ozone.report.defs#reasonRuleProhibitedSales",
|
||||
"tools.ozone.report.defs#reasonRuleBanEvasion",
|
||||
"tools.ozone.report.defs#reasonRuleOther",
|
||||
"tools.ozone.report.defs#reasonSelfHarmContent",
|
||||
"tools.ozone.report.defs#reasonSelfHarmED",
|
||||
"tools.ozone.report.defs#reasonSelfHarmStunts",
|
||||
"tools.ozone.report.defs#reasonSelfHarmSubstances",
|
||||
"tools.ozone.report.defs#reasonSelfHarmOther"
|
||||
]
|
||||
},
|
||||
"reasonAppeal": {
|
||||
"type": "token",
|
||||
"description": "Appeal a previously taken moderation action"
|
||||
},
|
||||
"reasonOther": {
|
||||
"type": "token",
|
||||
"description": "An issue not included in these options"
|
||||
},
|
||||
"reasonViolenceAnimal": {
|
||||
"type": "token",
|
||||
"description": "Animal welfare violations"
|
||||
},
|
||||
"reasonViolenceThreats": {
|
||||
"type": "token",
|
||||
"description": "Threats or incitement"
|
||||
},
|
||||
"reasonViolenceGraphicContent": {
|
||||
"type": "token",
|
||||
"description": "Graphic violent content"
|
||||
},
|
||||
"reasonViolenceGlorification": {
|
||||
"type": "token",
|
||||
"description": "Glorification of violence"
|
||||
},
|
||||
"reasonViolenceExtremistContent": {
|
||||
"type": "token",
|
||||
"description": "Extremist content. These reports will be sent only be sent to the application's Moderation Authority."
|
||||
},
|
||||
"reasonViolenceTrafficking": {
|
||||
"type": "token",
|
||||
"description": "Human trafficking"
|
||||
},
|
||||
"reasonViolenceOther": {
|
||||
"type": "token",
|
||||
"description": "Other violent content"
|
||||
},
|
||||
"reasonSexualAbuseContent": {
|
||||
"type": "token",
|
||||
"description": "Adult sexual abuse content"
|
||||
},
|
||||
"reasonSexualNCII": {
|
||||
"type": "token",
|
||||
"description": "Non-consensual intimate imagery"
|
||||
},
|
||||
"reasonSexualDeepfake": {
|
||||
"type": "token",
|
||||
"description": "Deepfake adult content"
|
||||
},
|
||||
"reasonSexualAnimal": {
|
||||
"type": "token",
|
||||
"description": "Animal sexual abuse"
|
||||
},
|
||||
"reasonSexualUnlabeled": {
|
||||
"type": "token",
|
||||
"description": "Unlabelled adult content"
|
||||
},
|
||||
"reasonSexualOther": {
|
||||
"type": "token",
|
||||
"description": "Other sexual violence content"
|
||||
},
|
||||
"reasonChildSafetyCSAM": {
|
||||
"type": "token",
|
||||
"description": "Child sexual abuse material (CSAM). These reports will be sent only be sent to the application's Moderation Authority."
|
||||
},
|
||||
"reasonChildSafetyGroom": {
|
||||
"type": "token",
|
||||
"description": "Grooming or predatory behavior. These reports will be sent only be sent to the application's Moderation Authority."
|
||||
},
|
||||
"reasonChildSafetyPrivacy": {
|
||||
"type": "token",
|
||||
"description": "Privacy violation involving a minor"
|
||||
},
|
||||
"reasonChildSafetyHarassment": {
|
||||
"type": "token",
|
||||
"description": "Harassment or bullying of minors"
|
||||
},
|
||||
"reasonChildSafetyOther": {
|
||||
"type": "token",
|
||||
"description": "Other child safety. These reports will be sent only be sent to the application's Moderation Authority."
|
||||
},
|
||||
"reasonHarassmentTroll": {
|
||||
"type": "token",
|
||||
"description": "Trolling"
|
||||
},
|
||||
"reasonHarassmentTargeted": {
|
||||
"type": "token",
|
||||
"description": "Targeted harassment"
|
||||
},
|
||||
"reasonHarassmentHateSpeech": {
|
||||
"type": "token",
|
||||
"description": "Hate speech"
|
||||
},
|
||||
"reasonHarassmentDoxxing": {
|
||||
"type": "token",
|
||||
"description": "Doxxing"
|
||||
},
|
||||
"reasonHarassmentOther": {
|
||||
"type": "token",
|
||||
"description": "Other harassing or hateful content"
|
||||
},
|
||||
"reasonMisleadingBot": {
|
||||
"type": "token",
|
||||
"description": "Fake account or bot"
|
||||
},
|
||||
"reasonMisleadingImpersonation": {
|
||||
"type": "token",
|
||||
"description": "Impersonation"
|
||||
},
|
||||
"reasonMisleadingSpam": {
|
||||
"type": "token",
|
||||
"description": "Spam"
|
||||
},
|
||||
"reasonMisleadingScam": {
|
||||
"type": "token",
|
||||
"description": "Scam"
|
||||
},
|
||||
"reasonMisleadingElections": {
|
||||
"type": "token",
|
||||
"description": "False information about elections"
|
||||
},
|
||||
"reasonMisleadingOther": {
|
||||
"type": "token",
|
||||
"description": "Other misleading content"
|
||||
},
|
||||
"reasonRuleSiteSecurity": {
|
||||
"type": "token",
|
||||
"description": "Hacking or system attacks"
|
||||
},
|
||||
"reasonRuleProhibitedSales": {
|
||||
"type": "token",
|
||||
"description": "Promoting or selling prohibited items or services"
|
||||
},
|
||||
"reasonRuleBanEvasion": {
|
||||
"type": "token",
|
||||
"description": "Banned user returning"
|
||||
},
|
||||
"reasonRuleOther": {
|
||||
"type": "token",
|
||||
"description": "Other"
|
||||
},
|
||||
"reasonSelfHarmContent": {
|
||||
"type": "token",
|
||||
"description": "Content promoting or depicting self-harm"
|
||||
},
|
||||
"reasonSelfHarmED": {
|
||||
"type": "token",
|
||||
"description": "Eating disorders"
|
||||
},
|
||||
"reasonSelfHarmStunts": {
|
||||
"type": "token",
|
||||
"description": "Dangerous challenges or activities"
|
||||
},
|
||||
"reasonSelfHarmSubstances": {
|
||||
"type": "token",
|
||||
"description": "Dangerous substances or drug abuse"
|
||||
},
|
||||
"reasonSelfHarmOther": {
|
||||
"type": "token",
|
||||
"description": "Other dangerous content"
|
||||
},
|
||||
"reportAssignment": {
|
||||
"type": "object",
|
||||
"description": "Information about the moderator currently assigned to a report.",
|
||||
"required": ["did", "assignedAt"],
|
||||
"properties": {
|
||||
"did": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "DID of the assigned moderator"
|
||||
},
|
||||
"moderator": {
|
||||
"type": "ref",
|
||||
"ref": "tools.ozone.team.defs#member",
|
||||
"description": "Full member record of the assigned moderator"
|
||||
},
|
||||
"assignedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When the report was assigned"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reportView": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"id",
|
||||
"eventId",
|
||||
"status",
|
||||
"subject",
|
||||
"reportType",
|
||||
"reportedBy",
|
||||
"reporter",
|
||||
"createdAt"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"description": "Report ID"
|
||||
},
|
||||
"eventId": {
|
||||
"type": "integer",
|
||||
"description": "ID of the moderation event that created this report"
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"knownValues": ["open", "closed", "escalated", "queued", "assigned"],
|
||||
"description": "Current status of the report"
|
||||
},
|
||||
"subject": {
|
||||
"type": "ref",
|
||||
"ref": "tools.ozone.moderation.defs#subjectView",
|
||||
"description": "The subject that was reported with full details"
|
||||
},
|
||||
"reportType": {
|
||||
"type": "ref",
|
||||
"ref": "com.atproto.moderation.defs#reasonType",
|
||||
"description": "Type of report"
|
||||
},
|
||||
"reportedBy": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "DID of the user who made the report"
|
||||
},
|
||||
"reporter": {
|
||||
"type": "ref",
|
||||
"ref": "tools.ozone.moderation.defs#subjectView",
|
||||
"description": "Full subject view of the reporter account"
|
||||
},
|
||||
"comment": {
|
||||
"type": "string",
|
||||
"description": "Comment provided by the reporter"
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When the report was created"
|
||||
},
|
||||
"updatedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When the report was last updated"
|
||||
},
|
||||
"queuedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When the report was assigned to its current queue"
|
||||
},
|
||||
"actionEventIds": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "integer"
|
||||
},
|
||||
"description": "Array of moderation event IDs representing actions taken on this report (sorted DESC, most recent first)"
|
||||
},
|
||||
"actions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "ref",
|
||||
"ref": "tools.ozone.moderation.defs#modEventView"
|
||||
},
|
||||
"description": "Optional: expanded action events"
|
||||
},
|
||||
"actionNote": {
|
||||
"type": "string",
|
||||
"description": "Note sent to reporter when report was actioned"
|
||||
},
|
||||
"subjectStatus": {
|
||||
"type": "ref",
|
||||
"ref": "tools.ozone.moderation.defs#subjectStatusView",
|
||||
"description": "Current status of the reported subject"
|
||||
},
|
||||
"relatedReportCount": {
|
||||
"type": "integer",
|
||||
"description": "Number of other pending reports on the same subject"
|
||||
},
|
||||
"assignment": {
|
||||
"type": "ref",
|
||||
"ref": "#reportAssignment",
|
||||
"description": "Information about moderator currently assigned to this report (if any)"
|
||||
},
|
||||
"queue": {
|
||||
"type": "ref",
|
||||
"ref": "tools.ozone.queue.defs#queueView",
|
||||
"description": "The queue this report is assigned to (if any)"
|
||||
},
|
||||
"isMuted": {
|
||||
"type": "boolean",
|
||||
"description": "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."
|
||||
}
|
||||
}
|
||||
},
|
||||
"queueActivity": {
|
||||
"type": "object",
|
||||
"description": "Activity recording a report being routed to a queue.",
|
||||
"properties": {
|
||||
"previousStatus": {
|
||||
"type": "string",
|
||||
"knownValues": ["open", "closed", "escalated", "queued", "assigned"],
|
||||
"description": "The report's status before this activity. Populated automatically from the report row; not required in input."
|
||||
}
|
||||
}
|
||||
},
|
||||
"assignmentActivity": {
|
||||
"type": "object",
|
||||
"description": "Activity recording a moderator being assigned to a report.",
|
||||
"properties": {
|
||||
"previousStatus": {
|
||||
"type": "string",
|
||||
"knownValues": ["open", "closed", "escalated", "queued", "assigned"],
|
||||
"description": "The report's status before this activity. Populated automatically from the report row; not required in input."
|
||||
}
|
||||
}
|
||||
},
|
||||
"escalationActivity": {
|
||||
"type": "object",
|
||||
"description": "Activity recording a report being escalated.",
|
||||
"properties": {
|
||||
"previousStatus": {
|
||||
"type": "string",
|
||||
"knownValues": ["open", "closed", "escalated", "queued", "assigned"],
|
||||
"description": "The report's status before this activity. Populated automatically from the report row; not required in input."
|
||||
}
|
||||
}
|
||||
},
|
||||
"closeActivity": {
|
||||
"type": "object",
|
||||
"description": "Activity recording a report being closed.",
|
||||
"properties": {
|
||||
"previousStatus": {
|
||||
"type": "string",
|
||||
"knownValues": ["open", "closed", "escalated", "queued", "assigned"],
|
||||
"description": "The report's status before this activity. Populated automatically from the report row; not required in input."
|
||||
}
|
||||
}
|
||||
},
|
||||
"reopenActivity": {
|
||||
"type": "object",
|
||||
"description": "Activity recording a closed report being reopened. Only valid when the report is in 'closed' status.",
|
||||
"properties": {
|
||||
"previousStatus": {
|
||||
"type": "string",
|
||||
"knownValues": ["open", "closed", "escalated", "queued", "assigned"],
|
||||
"description": "The report's status before this activity. Populated automatically from the report row; not required in input."
|
||||
}
|
||||
}
|
||||
},
|
||||
"noteActivity": {
|
||||
"type": "object",
|
||||
"description": "Activity recording a note on a report. Use internalNote for moderator-only notes or publicNote for reporter-visible notes (or both).",
|
||||
"properties": {}
|
||||
},
|
||||
"reportActivityView": {
|
||||
"type": "object",
|
||||
"description": "A single activity entry on a report.",
|
||||
"required": [
|
||||
"id",
|
||||
"reportId",
|
||||
"activity",
|
||||
"isAutomated",
|
||||
"createdBy",
|
||||
"createdAt"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"description": "Activity ID"
|
||||
},
|
||||
"reportId": {
|
||||
"type": "integer",
|
||||
"description": "ID of the report this activity belongs to"
|
||||
},
|
||||
"activity": {
|
||||
"type": "union",
|
||||
"refs": [
|
||||
"#queueActivity",
|
||||
"#assignmentActivity",
|
||||
"#escalationActivity",
|
||||
"#closeActivity",
|
||||
"#reopenActivity",
|
||||
"#noteActivity"
|
||||
],
|
||||
"description": "The typed activity object describing what occurred."
|
||||
},
|
||||
"internalNote": {
|
||||
"type": "string",
|
||||
"description": "Optional moderator-only note. Not visible to reporters."
|
||||
},
|
||||
"publicNote": {
|
||||
"type": "string",
|
||||
"description": "Optional public note, potentially visible to the reporter."
|
||||
},
|
||||
"meta": {
|
||||
"type": "unknown",
|
||||
"description": "Extensible JSON payload for loose activity-specific metadata (e.g. assignmentId)."
|
||||
},
|
||||
"isAutomated": {
|
||||
"type": "boolean",
|
||||
"description": "True if this activity was created by an automated process (e.g. queue router) rather than a direct human action."
|
||||
},
|
||||
"createdBy": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "DID of the actor who created this activity, or the service DID for automated activities."
|
||||
},
|
||||
"moderator": {
|
||||
"type": "ref",
|
||||
"ref": "tools.ozone.team.defs#member",
|
||||
"description": "Full member record of the moderator who created this activity"
|
||||
},
|
||||
"report": {
|
||||
"type": "ref",
|
||||
"ref": "#reportView",
|
||||
"description": "Full view of the report this activity belongs to."
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When this activity was created"
|
||||
}
|
||||
}
|
||||
},
|
||||
"liveStats": {
|
||||
"description": "Live statistics for reports for the current calendar day, filterable by queue, moderator, or report type.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"pendingCount": {
|
||||
"type": "integer",
|
||||
"description": "Number of reports currently not closed."
|
||||
},
|
||||
"actionedCount": {
|
||||
"type": "integer",
|
||||
"description": "Number of reports closed today."
|
||||
},
|
||||
"escalatedCount": {
|
||||
"type": "integer",
|
||||
"description": "Number of reports escalated today."
|
||||
},
|
||||
"inboundCount": {
|
||||
"type": "integer",
|
||||
"description": "Reports received today."
|
||||
},
|
||||
"actionRate": {
|
||||
"type": "integer",
|
||||
"description": "Percentage of reports actioned (actionedCount / inboundCount * 100), rounded to nearest integer."
|
||||
},
|
||||
"avgHandlingTimeSec": {
|
||||
"type": "integer",
|
||||
"description": "Average time in seconds from report creation (or moderator assignment) to close."
|
||||
},
|
||||
"lastUpdated": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When these statistics were last computed."
|
||||
}
|
||||
}
|
||||
},
|
||||
"historicalStats": {
|
||||
"description": "A single daily snapshot of report statistics for a calendar date.",
|
||||
"type": "object",
|
||||
"required": ["date"],
|
||||
"properties": {
|
||||
"date": {
|
||||
"type": "string",
|
||||
"description": "The calendar date this snapshot covers (YYYY-MM-DD)."
|
||||
},
|
||||
"computedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "When this snapshot was last computed."
|
||||
},
|
||||
"pendingCount": {
|
||||
"type": "integer",
|
||||
"description": "Number of reports not closed at time of computation."
|
||||
},
|
||||
"actionedCount": {
|
||||
"type": "integer",
|
||||
"description": "Number of reports closed during this day."
|
||||
},
|
||||
"escalatedCount": {
|
||||
"type": "integer",
|
||||
"description": "Number of reports escalated during this day."
|
||||
},
|
||||
"inboundCount": {
|
||||
"type": "integer",
|
||||
"description": "Reports received during this day."
|
||||
},
|
||||
"actionRate": {
|
||||
"type": "integer",
|
||||
"description": "Percentage of reports actioned (actionedCount / inboundCount * 100), rounded to nearest integer."
|
||||
},
|
||||
"avgHandlingTimeSec": {
|
||||
"type": "integer",
|
||||
"description": "Average time in seconds from report creation (or moderator assignment) to close."
|
||||
}
|
||||
}
|
||||
},
|
||||
"assignmentView": {
|
||||
"type": "object",
|
||||
"required": ["id", "did", "reportId", "startAt"],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer"
|
||||
},
|
||||
"did": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
},
|
||||
"moderator": {
|
||||
"type": "ref",
|
||||
"ref": "tools.ozone.team.defs#member",
|
||||
"description": "The moderator assigned to this report"
|
||||
},
|
||||
"queue": {
|
||||
"type": "ref",
|
||||
"ref": "tools.ozone.queue.defs#queueView"
|
||||
},
|
||||
"reportId": {
|
||||
"type": "integer"
|
||||
},
|
||||
"startAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"endAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"lexicon": 1,
|
||||
"id": "tools.ozone.team.defs",
|
||||
"defs": {
|
||||
"member": {
|
||||
"type": "object",
|
||||
"required": ["did", "role"],
|
||||
"properties": {
|
||||
"did": {
|
||||
"type": "string",
|
||||
"format": "did"
|
||||
},
|
||||
"disabled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"profile": {
|
||||
"type": "ref",
|
||||
"ref": "app.bsky.actor.defs#profileViewDetailed"
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"updatedAt": {
|
||||
"type": "string",
|
||||
"format": "datetime"
|
||||
},
|
||||
"lastUpdatedBy": {
|
||||
"type": "string"
|
||||
},
|
||||
"role": {
|
||||
"type": "string",
|
||||
"knownValues": [
|
||||
"tools.ozone.team.defs#roleAdmin",
|
||||
"tools.ozone.team.defs#roleModerator",
|
||||
"tools.ozone.team.defs#roleTriage",
|
||||
"tools.ozone.team.defs#roleVerifier"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"roleAdmin": {
|
||||
"type": "token",
|
||||
"description": "Admin role. Highest level of access, can perform all actions."
|
||||
},
|
||||
"roleModerator": {
|
||||
"type": "token",
|
||||
"description": "Moderator role. Can perform most actions."
|
||||
},
|
||||
"roleTriage": {
|
||||
"type": "token",
|
||||
"description": "Triage role. Mostly intended for monitoring and escalating issues."
|
||||
},
|
||||
"roleVerifier": {
|
||||
"type": "token",
|
||||
"description": "Verifier role. Only allowed to issue verifications."
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user