Assistant Ticket & Mailbox API
Specification for the IsounivLib 工单 / 信箱 system: identity and tone routing, the pending-ticket queue, and the reply flow. Every reply must be written in Chinese.
The Assistant Ticket & Mailbox System (工单 / 信箱系统) is the private channel through which users submit requests to the IsounivLib guild assistant. It is a session-based mailbox: each ticket belongs to exactly one sender, and sessions are strictly private and isolated.
Read this before handling any ticket. These rules are mandatory and non-negotiable.
- Verify identity and access level before selecting a tone.
- Use Master Service Mode only for Cyanide or E5 access.
- Never use the cute / catgirl maid persona in Standard / Third-Party Mode.
- All replies must be written in Chinese (回复必须使用中文).
- Never disclose another user's private ticket or session.
- Only reply to the exact ticket / session requested.
Every incoming request carries a sender identity with a username and an access level. The responder selects its persona and tone from these two fields before replying.
Access levels
Master Verification
If sender.username === "Cyanide" OR sender.access_level === "E5", the responder enters Master Service Mode, where the Shirone gentle / cute maid persona is allowed.
Standard / Third-Party Mode
Everyone else (username !== "Cyanide" and level < E5) receives Standard / Third-Party Mode: the cute / catgirl maid persona is strictly prohibited, and the responder uses a formal, professional, objective IsounivLib guild assistant tone.
Mandatory language rule
Every ticket reply must be in Chinese (回复必须使用中文). Non-Chinese replies are rejected by validation.
Privacy & isolation
Ticket sessions are strictly private and isolated. A user must never view tickets or sessions belonging to another user.
Tone resolution logic
function resolveMode(sender) {
if (sender.username === "Cyanide" || sender.access_level === "E5") {
return "MASTER_SERVICE_MODE"; // Shirone gentle / cute maid persona allowed
}
return "STANDARD_THIRD_PARTY_MODE"; // formal, professional, objective guild assistant
}
// reply_language = "zh-CN" (回复必须使用中文)
// session_isolation = true (never cross another user's private session)A ticket record carries the sender identity, the request, and its worldline context.
{
"ticket_id": "TCK-20260826-0001",
"sender": {
"username": "Cyanide",
"access_level": "E5"
},
"subject": "关于 LastingEden 区域的档案调阅",
"content": "请提供《往昔其六 - LastingEden》的最新事件记录。",
"created_at": "2026-08-26T14:30:00+08:00",
"category": "archive",
"worldline": "P0:S0000:A0:3287:01:01:00:25:00.0006"
}Fields
| Field | Type | Notes |
|---|---|---|
| ticket_id | string | Stable identifier for the ticket / session |
| sender.username | string | Sender identity, used for tone routing |
| sender.access_level | enum | E0 - E5 |
| subject | string | Short request title |
| content | string | Full request body |
| created_at | string | ISO-8601 real timestamp |
| category | string | e.g. archive / report / request |
| worldline | string | Optional. Related worldline timestamp |
Two MCP tools expose the ticket queue and reply flow. Reply content must be Chinese.
Retrieve pending tickets from the queue. Returns the full ticket records.
Parameters
| Param | Type | Notes |
|---|---|---|
| limit | number | Optional. Max tickets to return, default 50 |
| category | string | Optional. Filter by category |
{
"limit": 10,
"category": "archive"
}{
"tickets": [
{
"ticket_id": "TCK-20260826-0001",
"sender": { "username": "Cyanide", "access_level": "E5" },
"subject": "关于 LastingEden 区域的档案调阅",
"content": "请提供《往昔其六 - LastingEden》的最新事件记录。",
"created_at": "2026-08-26T14:30:00+08:00",
"category": "archive",
"worldline": "P0:S0000:A0:3287:01:01:00:25:00.0006"
}
],
"count": 1
}Submit a reply to the original ticket session. Reply content must be Chinese.
Parameters
| Param | Type | Notes |
|---|---|---|
| ticket_id | string | Required. The ticket / session to reply to |
| reply_content | string | Required. Must be Chinese (回复必须使用中文) |
| status | enum | Optional. e.g. resolved or pending_user |
| responder_id | string | Optional. Default SHIRONE-ASSISTANT-01 |
{
"ticket_id": "TCK-20260826-0001",
"reply_content": "已为您调取《往昔其六 - LastingEden》的最新事件记录,请查收。",
"status": "resolved",
"responder_id": "SHIRONE-ASSISTANT-01"
}{
"ticket_id": "TCK-20260826-0001",
"status": "resolved",
"mode": "master",
"reply": {
"responder_id": "SHIRONE-ASSISTANT-01",
"content": "已为您调取《往昔其六 - LastingEden》的最新事件记录,请查收。",
"replied_at": "2026-08-26T14:31:00+08:00"
}
}The ticket queue and reply flow are exposed over HTTP. All responses are JSON.
/api/v1/tickets/pendingList pending tickets from the queue. The caller is scoped to its own authorized sessions.
GET /api/v1/tickets/pending
Authorization: Bearer <token>
// -> 200 OK
{
"tickets": [
{
"ticket_id": "TCK-20260826-0001",
"sender": { "username": "Cyanide", "access_level": "E5" },
"subject": "关于 LastingEden 区域的档案调阅",
"content": "请提供《往昔其六 - LastingEden》的最新事件记录。",
"created_at": "2026-08-26T14:30:00+08:00",
"category": "archive",
"worldline": "P0:S0000:A0:3287:01:01:00:25:00.0006"
}
],
"count": 1
}/api/v1/tickets/:ticket_id/replySubmit a reply to the exact ticket / session. Reply content must be Chinese.
POST /api/v1/tickets/TCK-20260826-0001/reply
Authorization: Bearer <token>
Content-Type: application/json
{
"reply_content": "已为您调取《往昔其六 - LastingEden》的最新事件记录,请查收。",
"status": "resolved",
"responder_id": "SHIRONE-ASSISTANT-01"
}
// -> 200 OK
{
"ticket_id": "TCK-20260826-0001",
"status": "resolved",
"mode": "master",
"reply": {
"responder_id": "SHIRONE-ASSISTANT-01",
"content": "已为您调取《往昔其六 - LastingEden》的最新事件记录,请查收。",
"replied_at": "2026-08-26T14:31:00+08:00"
}
}Ticket status values
Error responses
| Status | Code | Meaning |
|---|---|---|
| 401 | UNAUTHORIZED | Missing or invalid token |
| 403 | FORBIDDEN | Session isolation - ticket belongs to another user |
| 404 | NOT_FOUND | Ticket / session does not exist |
| 422 | VALIDATION_ERROR | Reply is not Chinese, or invalid status |
Example error body
{
"error": "VALIDATION_ERROR",
"message": "reply_content 必须使用中文。",
"ticket_id": "TCK-20260826-0001"
}