gradeNot graded
get_exercise_briefAnswer
Read the synthetic scenario, learner role, director rules, fact catalogue, and safety boundary. Call once before directing the exercise. Do not present hidden facts to the learner unless a later tool validates their release.
View tool JSON
{
"name": "get_exercise_brief",
"kind": "answer",
"impl": "imperative",
"description": "Read the synthetic scenario, learner role, director rules, fact catalogue, and safety boundary. Call once before directing the exercise. Do not present hidden facts to the learner unless a later tool validates their release.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}wait_for_learner_eventAction
Wait for a learner operation or authored scenario event using one cancellable subscription. Events resolve immediately. An idle call returns reason keepalive after 15 seconds, before the browser transport deadline: immediately call again with the SAME afterEventCursor, without observing or intervening. No repeated scene scan. A new wait supersedes the previous one. Stop on cancelled, superseded, or non-live phase.
View tool JSON
{
"name": "wait_for_learner_event",
"kind": "act",
"impl": "imperative",
"description": "Wait for a learner operation or authored scenario event using one cancellable subscription. Events resolve immediately. An idle call returns reason keepalive after 15 seconds, before the browser transport deadline: immediately call again with the SAME afterEventCursor, without observing or intervening. No repeated scene scan. A new wait supersedes the previous one. Stop on cancelled, superseded, or non-live phase.",
"inputSchema": {
"type": "object",
"properties": {
"afterEventCursor": {
"type": "integer",
"minimum": 0,
"maximum": 10000
}
},
"required": [
"afterEventCursor"
],
"additionalProperties": false
}
}start_training_sessionAction
Start the continuous synthetic exercise at foundation or advanced difficulty. Use only while the page is in briefing phase. This does not perform any real-world action.
View tool JSON
{
"name": "start_training_session",
"kind": "act",
"impl": "imperative",
"description": "Start the continuous synthetic exercise at foundation or advanced difficulty. Use only while the page is in briefing phase. This does not perform any real-world action.",
"inputSchema": {
"type": "object",
"properties": {
"difficulty": {
"type": "string",
"enum": [
"foundation",
"advanced"
]
},
"idempotencyKey": {
"type": "string",
"minLength": 8,
"maxLength": 96
}
},
"required": [
"difficulty",
"idempotencyKey"
],
"additionalProperties": false
}
}observe_exercise_stateAnswer
Read the exact learner-visible world, recent decisions, incoming reports, director pacing, and current stateVersion. Call after every learner decision and immediately before any state-changing director tool. Do not infer facts that are not returned.
View tool JSON
{
"name": "observe_exercise_state",
"kind": "answer",
"impl": "imperative",
"description": "Read the exact learner-visible world, recent decisions, incoming reports, director pacing, and current stateVersion. Call after every learner decision and immediately before any state-changing director tool. Do not infer facts that are not returned.",
"inputSchema": {
"type": "object",
"properties": {
"recentItems": {
"type": "integer",
"minimum": 1,
"maximum": 10
}
},
"required": [
"recentItems"
],
"additionalProperties": false
}
}list_valid_complicationsAnswer
Return only authored complications that are currently compatible with time, pressure, cooldown, learner actions, and world state. Call immediately before inject_complication and use an ID from this exact stateVersion.
View tool JSON
{
"name": "list_valid_complications",
"kind": "answer",
"impl": "imperative",
"description": "Return only authored complications that are currently compatible with time, pressure, cooldown, learner actions, and world state. Call immediately before inject_complication and use an ID from this exact stateVersion.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}inject_complicationAction
Apply exactly one complication returned by list_valid_complications for the same stateVersion. The deterministic engine revalidates it and rejects stale, incompatible, repeated, or too-frequent interventions.
View tool JSON
{
"name": "inject_complication",
"kind": "act",
"impl": "imperative",
"description": "Apply exactly one complication returned by list_valid_complications for the same stateVersion. The deterministic engine revalidates it and rejects stale, incompatible, repeated, or too-frequent interventions.",
"inputSchema": {
"type": "object",
"properties": {
"complicationId": {
"type": "string",
"enum": [
"stair-a-uncertain",
"mobility-assistance-request",
"communications-congestion",
"missing-contractor",
"smoke-spread-floor-8",
"conflicting-floor-report"
]
},
"rationale": {
"type": "string",
"minLength": 12,
"maxLength": 240
},
"expectedStateVersion": {
"type": "integer",
"minimum": 1
},
"idempotencyKey": {
"type": "string",
"minLength": 8,
"maxLength": 96
}
},
"required": [
"complicationId",
"rationale",
"expectedStateVersion",
"idempotencyKey"
],
"additionalProperties": false
}
}deliver_role_messageAction
Speak as one synthetic scenario actor. Every message must cite one to three versioned fact IDs, and the selected actor must be authorized for each fact. Never add facts, diagnoses, tactics, or real-world instructions in free text.
View tool JSON
{
"name": "deliver_role_message",
"kind": "act",
"impl": "imperative",
"description": "Speak as one synthetic scenario actor. Every message must cite one to three versioned fact IDs, and the selected actor must be authorized for each fact. Never add facts, diagnoses, tactics, or real-world instructions in free text.",
"inputSchema": {
"type": "object",
"properties": {
"actorId": {
"type": "string",
"enum": [
"security-desk",
"floor-warden-7",
"floor-warden-8",
"facilities",
"responder-liaison"
]
},
"content": {
"type": "string",
"minLength": 8,
"maxLength": 240
},
"factIds": {
"type": "array",
"minItems": 1,
"maxItems": 3,
"uniqueItems": true,
"items": {
"type": "string"
}
},
"expectedStateVersion": {
"type": "integer",
"minimum": 1
},
"idempotencyKey": {
"type": "string",
"minLength": 8,
"maxLength": 96
}
},
"required": [
"actorId",
"content",
"factIds",
"expectedStateVersion",
"idempotencyKey"
],
"additionalProperties": false
}
}advance_exercise_timeAction
Fast-forward the synthetic clock by 15 to 180 seconds for demonstration or pacing. This does not create a round and does not inject an event. Use sparingly; normal sessions advance continuously in the page.
View tool JSON
{
"name": "advance_exercise_time",
"kind": "act",
"impl": "imperative",
"description": "Fast-forward the synthetic clock by 15 to 180 seconds for demonstration or pacing. This does not create a round and does not inject an event. Use sparingly; normal sessions advance continuously in the page.",
"inputSchema": {
"type": "object",
"properties": {
"seconds": {
"type": "integer",
"minimum": 15,
"maximum": 180
},
"expectedStateVersion": {
"type": "integer",
"minimum": 1
},
"idempotencyKey": {
"type": "string",
"minLength": 8,
"maxLength": 96
}
},
"required": [
"seconds",
"expectedStateVersion",
"idempotencyKey"
],
"additionalProperties": false
}
}set_director_paceAction
Adjust adaptive pressure from 1 to 5 and minimum intervention cooldown from 20 to 180 seconds. This changes pacing only; it cannot bypass scenario validation.
View tool JSON
{
"name": "set_director_pace",
"kind": "act",
"impl": "imperative",
"description": "Adjust adaptive pressure from 1 to 5 and minimum intervention cooldown from 20 to 180 seconds. This changes pacing only; it cannot bypass scenario validation.",
"inputSchema": {
"type": "object",
"properties": {
"pressure": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"minimumCooldownSeconds": {
"type": "integer",
"minimum": 20,
"maximum": 180
},
"expectedStateVersion": {
"type": "integer",
"minimum": 1
},
"idempotencyKey": {
"type": "string",
"minLength": 8,
"maxLength": 96
}
},
"required": [
"pressure",
"minimumCooldownSeconds",
"expectedStateVersion",
"idempotencyKey"
],
"additionalProperties": false
}
}record_assessment_observationAction
Record one formative observation tied to one to five existing learner decision IDs. This is evidence for debriefing, not a hidden final grade. Do not cite messages or inferred actions as learner decisions.
View tool JSON
{
"name": "record_assessment_observation",
"kind": "act",
"impl": "imperative",
"description": "Record one formative observation tied to one to five existing learner decision IDs. This is evidence for debriefing, not a hidden final grade. Do not cite messages or inferred actions as learner decisions.",
"inputSchema": {
"type": "object",
"properties": {
"competencyId": {
"type": "string",
"enum": [
"sensemaking",
"prioritization",
"communication",
"accountability",
"adaptability"
]
},
"signal": {
"type": "string",
"enum": [
"strength",
"watch",
"gap"
]
},
"note": {
"type": "string",
"minLength": 8,
"maxLength": 260
},
"learnerActionIds": {
"type": "array",
"minItems": 1,
"maxItems": 5,
"uniqueItems": true,
"items": {
"type": "string"
}
},
"expectedStateVersion": {
"type": "integer",
"minimum": 1
},
"idempotencyKey": {
"type": "string",
"minLength": 8,
"maxLength": 96
}
},
"required": [
"competencyId",
"signal",
"note",
"learnerActionIds",
"expectedStateVersion",
"idempotencyKey"
],
"additionalProperties": false
}
}finish_training_sessionAction
End the synthetic exercise only after at least two learner decisions and one validated complication. This freezes the live clock and unlocks the evidence-based review.
View tool JSON
{
"name": "finish_training_session",
"kind": "act",
"impl": "imperative",
"description": "End the synthetic exercise only after at least two learner decisions and one validated complication. This freezes the live clock and unlocks the evidence-based review.",
"inputSchema": {
"type": "object",
"properties": {
"expectedStateVersion": {
"type": "integer",
"minimum": 1
},
"idempotencyKey": {
"type": "string",
"minLength": 8,
"maxLength": 96
}
},
"required": [
"expectedStateVersion",
"idempotencyKey"
],
"additionalProperties": false
}
}get_after_action_reviewAnswer
Generate a deterministic review from the exact decision, complication, observation, and audit records. Never add events or claims that are absent from the returned evidence.
View tool JSON
{
"name": "get_after_action_review",
"kind": "answer",
"impl": "imperative",
"description": "Generate a deterministic review from the exact decision, complication, observation, and audit records. Never add events or claims that are absent from the returned evidence.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}