Tool tree
gradeNot graded
get_app_stateAnswer
Snapshot of the citizen's case workspace: current screen, language, case counts by status, which cases need attention today (SLA overdue / unrated / appeal-eligible), and which write actions are currently available. Start here. Returns JSON {ok, speakable, data:{view, lang, counts, attention:[{regId,subject,why}], can:{...}}, nextActions}. Read-only.
View tool JSON
{
"name": "get_app_state",
"kind": "answer",
"impl": "imperative",
"description": "Snapshot of the citizen's case workspace: current screen, language, case counts by status, which cases need attention today (SLA overdue / unrated / appeal-eligible), and which write actions are currently available. Start here. Returns JSON {ok, speakable, data:{view, lang, counts, attention:[{regId,subject,why}], can:{...}}, nextActions}. Read-only.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}list_grievance_categoriesAnswer
Categories this simulation accepts, routed to Central Ministries/Departments (Railways, EPFO, Health, Education, Power, Consumer Affairs) with a 21-day redressal target. Titles return in ONE locale (default en; pass lang:'hi' for Hindi). Use before filing so category ids are valid. Returns JSON {ok, speakable, data:{categories:[{id,title,ministry,needsEvidence}],redressalTargetDays}, nextActions}. Read-only.
View tool JSON
{
"name": "list_grievance_categories",
"kind": "answer",
"impl": "imperative",
"description": "Categories this simulation accepts, routed to Central Ministries/Departments (Railways, EPFO, Health, Education, Power, Consumer Affairs) with a 21-day redressal target. Titles return in ONE locale (default en; pass lang:'hi' for Hindi). Use before filing so category ids are valid. Returns JSON {ok, speakable, data:{categories:[{id,title,ministry,needsEvidence}],redressalTargetDays}, nextActions}. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"lang": {
"type": "string",
"enum": [
"en",
"hi"
],
"description": "Locale for category titles; default en."
}
},
"additionalProperties": false
}
}get_grievance_detailsAnswer
Full record of one grievance by registration ID (e.g. PG-26-03877): subject, description, relief requested, ministry, status, evidence list, interim reply, reminders, disposal, rating, appeal, and the movement timeline. Input: {grievanceId}. Returns JSON {ok, speakable, data:{grievance}, nextActions}. Read-only.
View tool JSON
{
"name": "get_grievance_details",
"kind": "answer",
"impl": "imperative",
"description": "Full record of one grievance by registration ID (e.g. PG-26-03877): subject, description, relief requested, ministry, status, evidence list, interim reply, reminders, disposal, rating, appeal, and the movement timeline. Input: {grievanceId}. Returns JSON {ok, speakable, data:{grievance}, nextActions}. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"grievanceId": {
"type": "string",
"description": "Registration ID (PG-26-XXXXX) or internal id."
}
},
"required": [
"grievanceId"
],
"additionalProperties": false
}
}get_sla_statusAnswer
SLA picture for one grievance (input {grievanceId}) or ALL of the citizen's cases (no input): days elapsed vs the 21-day target, whether an interim reply exists, and the honest next action (wait / remind / rate / appeal). This answers 'which grievance needs attention today?'. Returns JSON {ok, speakable, data:{cases:[{regId,subject,phase,daysElapsed,target,needsAttention,reason,eligibleActions}]}}. Read-only.
View tool JSON
{
"name": "get_sla_status",
"kind": "answer",
"impl": "imperative",
"description": "SLA picture for one grievance (input {grievanceId}) or ALL of the citizen's cases (no input): days elapsed vs the 21-day target, whether an interim reply exists, and the honest next action (wait / remind / rate / appeal). This answers 'which grievance needs attention today?'. Returns JSON {ok, speakable, data:{cases:[{regId,subject,phase,daysElapsed,target,needsAttention,reason,eligibleActions}]}}. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"grievanceId": {
"type": "string",
"description": "Optional: one registration ID; omit to survey all cases."
}
},
"additionalProperties": false
}
}get_kb_answerAnswer
Plain-language answers about grievance process rules in this simulation: the 21-day target, interim replies, reminders, rating & appeals, exclusions, and the simulation's honesty policy. Input {question}. Returns JSON {ok, speakable, data:{answer, topic}, nextActions}. Read-only.
View tool JSON
{
"name": "get_kb_answer",
"kind": "answer",
"impl": "imperative",
"description": "Plain-language answers about grievance process rules in this simulation: the 21-day target, interim replies, reminders, rating & appeals, exclusions, and the simulation's honesty policy. Input {question}. Returns JSON {ok, speakable, data:{answer, topic}, nextActions}. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"question": {
"type": "string",
"description": "The citizen's process question, 6–300 chars."
}
},
"required": [
"question"
],
"additionalProperties": false
}
}check_duplicate_grievancesAnswer
Before filing, check whether the citizen already has a similar open grievance (input {keywords, optional categoryId}). Avoids duplicate filings. Returns JSON {ok, speakable, data:{matches:[{regId,subject,status}]}}. Read-only.
View tool JSON
{
"name": "check_duplicate_grievances",
"kind": "answer",
"impl": "imperative",
"description": "Before filing, check whether the citizen already has a similar open grievance (input {keywords, optional categoryId}). Avoids duplicate filings. Returns JSON {ok, speakable, data:{matches:[{regId,subject,status}]}}. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"keywords": {
"type": "string",
"description": "Key terms of the new issue, e.g. 'EPF withdrawal stuck'."
},
"categoryId": {
"type": "string",
"description": "Optional category id from list_grievance_categories."
}
},
"required": [
"keywords"
],
"additionalProperties": false
}
}set_voice_modeAction
Turn the portal's voice narration on or off (input {enabled: boolean}). When on, the page SPEAKS key citizen moments aloud in their language — the registration ID after filing, approval prompts, reminders, ratings, appeals — alongside the screen-reader live announcements that stay active either way. Use for citizens who prefer listening. Reversible preference, no confirmation needed. Returns JSON {ok, speakable, data:{voiceMode}}.
View tool JSON
{
"name": "set_voice_mode",
"kind": "act",
"impl": "imperative",
"description": "Turn the portal's voice narration on or off (input {enabled: boolean}). When on, the page SPEAKS key citizen moments aloud in their language — the registration ID after filing, approval prompts, reminders, ratings, appeals — alongside the screen-reader live announcements that stay active either way. Use for citizens who prefer listening. Reversible preference, no confirmation needed. Returns JSON {ok, speakable, data:{voiceMode}}.",
"inputSchema": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "true to enable page narration, false to disable."
}
},
"required": [
"enabled"
],
"additionalProperties": false
}
}create_grievance_draftAction
Prepare a structured grievance draft for the citizen to review (no submission happens). Input {categoryId, subject (8-120), description (20-1200), reliefRequested (4-300)}. Get category ids from list_grievance_categories. The draft appears on the portal for the citizen to edit and confirm. Returns JSON {ok, speakable, data:{draft}, nextActions}. Reversible — no confirmation needed.
View tool JSON
{
"name": "create_grievance_draft",
"kind": "act",
"impl": "imperative",
"description": "Prepare a structured grievance draft for the citizen to review (no submission happens). Input {categoryId, subject (8-120), description (20-1200), reliefRequested (4-300)}. Get category ids from list_grievance_categories. The draft appears on the portal for the citizen to edit and confirm. Returns JSON {ok, speakable, data:{draft}, nextActions}. Reversible — no confirmation needed.",
"inputSchema": {
"type": "object",
"properties": {
"categoryId": {
"type": "string",
"description": "Category id from list_grievance_categories."
},
"subject": {
"type": "string",
"description": "Short headline, 8–120 chars."
},
"description": {
"type": "string",
"description": "Facts of the case, 20–1200 chars. No sensitive IDs or passwords."
},
"reliefRequested": {
"type": "string",
"description": "The specific outcome wanted, 4–300 chars."
}
},
"required": [
"categoryId",
"subject",
"description",
"reliefRequested"
],
"additionalProperties": false
}
}send_reminderSensitive Action
Send a Reminder on a pending grievance past its 21-day target (C5). CONSEQUENTIAL: the citizen confirms in the page first (first call returns CONFIRMATION_REQUIRED; retry identical arguments after approval). Input {grievanceId}. At most one reminder per 7 days per case. Returns JSON {ok, speakable, data:{regId,reminders}}.
View tool JSON
{
"name": "send_reminder",
"kind": "transact",
"impl": "imperative",
"description": "Send a Reminder on a pending grievance past its 21-day target (C5). CONSEQUENTIAL: the citizen confirms in the page first (first call returns CONFIRMATION_REQUIRED; retry identical arguments after approval). Input {grievanceId}. At most one reminder per 7 days per case. Returns JSON {ok, speakable, data:{regId,reminders}}.",
"inputSchema": {
"type": "object",
"properties": {
"grievanceId": {
"type": "string",
"description": "Registration ID (PG-26-XXXXX)."
}
},
"required": [
"grievanceId"
],
"additionalProperties": false
}
}rate_disposalAction
Record the citizen's feedback on a disposed grievance (C6). CONSEQUENTIAL: confirm with the citizen first (first call returns CONFIRMATION_REQUIRED; retry identical arguments after approval). Input {grievanceId, rating: Satisfactory|Average|Poor}. A Poor rating opens the 30-day appeal window — after which create_appeal_draft becomes available. Returns JSON {ok, speakable, data:{regId,rating}}.
View tool JSON
{
"name": "rate_disposal",
"kind": "act",
"impl": "imperative",
"description": "Record the citizen's feedback on a disposed grievance (C6). CONSEQUENTIAL: confirm with the citizen first (first call returns CONFIRMATION_REQUIRED; retry identical arguments after approval). Input {grievanceId, rating: Satisfactory|Average|Poor}. A Poor rating opens the 30-day appeal window — after which create_appeal_draft becomes available. Returns JSON {ok, speakable, data:{regId,rating}}.",
"inputSchema": {
"type": "object",
"properties": {
"grievanceId": {
"type": "string",
"description": "Registration ID (PG-26-XXXXX)."
},
"rating": {
"type": "string",
"enum": [
"Satisfactory",
"Average",
"Poor"
],
"description": "The citizen's satisfaction with the disposal."
}
},
"required": [
"grievanceId",
"rating"
],
"additionalProperties": false
}
}