Tool tree
gradeNot graded
read_lab_stateAnswer
Read compact authoritative Stress Lab state without mutation. Reading one current RUN by objectId focuses and starts its visible committed replay; this changes presentation only.
View tool JSON
{
"name": "read_lab_state",
"kind": "answer",
"impl": "imperative",
"description": "Read compact authoritative Stress Lab state without mutation. Reading one current RUN by objectId focuses and starts its visible committed replay; this changes presentation only.",
"inputSchema": {
"type": "object",
"properties": {
"scope": {
"type": "string",
"description": "Optional bounded artifact view.",
"enum": [
"SUMMARY",
"SCENARIO",
"RUN",
"COMPARISON",
"FINDING"
]
},
"objectId": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
"description": "Optional artifact identifier."
}
},
"additionalProperties": false
},
"page": "/lab"
}configure_scenarioAction
Configure seed-07 Scenario A or B. For golden setup use mode REPLACE and exact labels: A "Twelve compact pods"; B "Ten higher-capacity pods"; never add suffixes. A is 12x8; B is 10x10. Shared: 70 kWh, 82% start, 20% reserve, 0.21 kWh/km, 30 s dwell; weights sandton 30, parkmore 15, illovo 20, rosebank 25, melrose-arch 10; wait 180 s, unserved 12, recovery 600 s, standing false; all five objectives. PATCH preserves an existing disruption. Never infer patch values from vague assent; ask first.
View tool JSON
{
"name": "configure_scenario",
"kind": "act",
"impl": "imperative",
"description": "Configure seed-07 Scenario A or B. For golden setup use mode REPLACE and exact labels: A \"Twelve compact pods\"; B \"Ten higher-capacity pods\"; never add suffixes. A is 12x8; B is 10x10. Shared: 70 kWh, 82% start, 20% reserve, 0.21 kWh/km, 30 s dwell; weights sandton 30, parkmore 15, illovo 20, rosebank 25, melrose-arch 10; wait 180 s, unserved 12, recovery 600 s, standing false; all five objectives. PATCH preserves an existing disruption. Never infer patch values from vague assent; ask first.",
"inputSchema": {
"oneOf": [
{
"type": "object",
"description": "Replace one scenario with a complete configuration.",
"properties": {
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
"description": "Retry-safe command identifier."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Current application revision."
},
"slot": {
"type": "string",
"description": "Scenario slot to configure.",
"enum": [
"A",
"B"
]
},
"mode": {
"const": "REPLACE",
"description": "Provide every configuration field."
},
"configuration": {
"type": "object",
"description": "Complete H0 configuration. A is 12 by 8; B is 10 by 10. Use the documented shared assumptions.",
"properties": {
"label": {
"type": "string",
"description": "For seed-07 use exactly Twelve compact pods for A or Ten higher-capacity pods for B; do not add slot suffixes.",
"examples": [
"Twelve compact pods",
"Ten higher-capacity pods"
],
"minLength": 1,
"maxLength": 48
},
"fleet": {
"type": "object",
"properties": {
"vehicleCount": {
"type": "integer",
"description": "H0 Scenario A uses 12; Scenario B uses 10.",
"examples": [
12,
10
],
"minimum": 0,
"maximum": 30
},
"seatsPerVehicle": {
"type": "integer",
"description": "H0 Scenario A uses 8; Scenario B uses 10.",
"examples": [
8,
10
],
"minimum": 1,
"maximum": 20
},
"batteryCapacityKWh": {
"type": "number",
"description": "H0 value is 70 kWh.",
"default": 70,
"exclusiveMinimum": 0,
"maximum": 1000000
},
"startingBatteryPercent": {
"type": "number",
"description": "H0 value is 82 percent.",
"default": 82,
"minimum": 0,
"maximum": 100
},
"minimumReservePercent": {
"type": "number",
"description": "H0 value is 20 and must equal the constraint reserve.",
"default": 20,
"minimum": 0,
"maximum": 100
},
"energyKWhPerKm": {
"type": "number",
"description": "H0 value is 0.21 kWh per kilometre.",
"default": 0.21,
"exclusiveMinimum": 0,
"maximum": 100
},
"dwellSeconds": {
"type": "integer",
"description": "H0 value is 30 seconds; must be a multiple of 30.",
"default": 30,
"minimum": 0,
"maximum": 86400,
"multipleOf": 30
},
"initialZoneWeights": {
"type": "object",
"description": "All five authored H0 zones are required; positive integer weights must total exactly 100.",
"properties": {
"sandton": {
"type": "integer",
"minimum": 1,
"maximum": 1000000,
"description": "H0 weight 30.",
"default": 30
},
"parkmore": {
"type": "integer",
"minimum": 1,
"maximum": 1000000,
"description": "H0 weight 15.",
"default": 15
},
"illovo": {
"type": "integer",
"minimum": 1,
"maximum": 1000000,
"description": "H0 weight 20.",
"default": 20
},
"rosebank": {
"type": "integer",
"minimum": 1,
"maximum": 1000000,
"description": "H0 weight 25.",
"default": 25
},
"melrose-arch": {
"type": "integer",
"minimum": 1,
"maximum": 1000000,
"description": "H0 weight 10.",
"default": 10
}
},
"required": [
"sandton",
"parkmore",
"illovo",
"rosebank",
"melrose-arch"
],
"additionalProperties": false
}
},
"required": [
"vehicleCount",
"seatsPerVehicle",
"batteryCapacityKWh",
"startingBatteryPercent",
"minimumReservePercent",
"energyKWhPerKm",
"dwellSeconds",
"initialZoneWeights"
],
"additionalProperties": false
},
"constraints": {
"type": "object",
"properties": {
"maximumWaitSeconds": {
"type": "integer",
"description": "H0 value is 180 seconds.",
"default": 180,
"minimum": 0,
"maximum": 86400
},
"maximumUnservedPassengers": {
"type": "integer",
"description": "H0 value is 12 passengers.",
"default": 12,
"minimum": 0,
"maximum": 1000000
},
"minimumBatteryReservePercent": {
"type": "number",
"description": "H0 value is 20 and must equal the fleet reserve.",
"default": 20,
"minimum": 0,
"maximum": 100
},
"maximumRecoverySeconds": {
"type": "integer",
"description": "H0 value is 600 seconds.",
"default": 600,
"minimum": 0,
"maximum": 86400
},
"standingAllowed": {
"const": false,
"description": "Standing is always prohibited in H0."
}
},
"required": [
"maximumWaitSeconds",
"maximumUnservedPassengers",
"minimumBatteryReservePercent",
"maximumRecoverySeconds",
"standingAllowed"
],
"additionalProperties": false
},
"objectives": {
"type": "array",
"description": "H0 uses all five listed objectives for both scenarios.",
"default": [
"LOWER_WAIT",
"LOWER_ENERGY_PER_PASSENGER_KM",
"HIGHER_UTILIZATION",
"FASTER_RECOVERY",
"LOWER_EMPTY_KM"
],
"minItems": 1,
"maxItems": 5,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"LOWER_WAIT",
"LOWER_ENERGY_PER_PASSENGER_KM",
"HIGHER_UTILIZATION",
"FASTER_RECOVERY",
"LOWER_EMPTY_KM"
]
}
}
},
"required": [
"label",
"fleet",
"constraints",
"objectives"
],
"additionalProperties": false
}
},
"required": [
"operationId",
"expectedRevision",
"slot",
"mode",
"configuration"
],
"additionalProperties": false
},
{
"type": "object",
"description": "Patch at least one supported mutable field on a configured scenario.",
"properties": {
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
"description": "Retry-safe command identifier."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Current application revision."
},
"slot": {
"type": "string",
"description": "Scenario slot to configure.",
"enum": [
"A",
"B"
]
},
"mode": {
"const": "PATCH",
"description": "Provide only fields that should change."
},
"configuration": {
"type": "object",
"description": "Patch mutable fields only. A supplied zone-weight map must contain all five authored zones.",
"minProperties": 1,
"properties": {
"label": {
"type": "string",
"description": "New label text; omit unless the user explicitly requested it.",
"minLength": 1,
"maxLength": 48
},
"fleet": {
"type": "object",
"minProperties": 1,
"properties": {
"vehicleCount": {
"type": "integer",
"description": "H0 Scenario A uses 12; Scenario B uses 10.",
"examples": [
12,
10
],
"minimum": 0,
"maximum": 30
},
"seatsPerVehicle": {
"type": "integer",
"description": "H0 Scenario A uses 8; Scenario B uses 10.",
"examples": [
8,
10
],
"minimum": 1,
"maximum": 20
},
"batteryCapacityKWh": {
"type": "number",
"description": "H0 value is 70 kWh.",
"default": 70,
"exclusiveMinimum": 0,
"maximum": 1000000
},
"startingBatteryPercent": {
"type": "number",
"description": "H0 value is 82 percent.",
"default": 82,
"minimum": 0,
"maximum": 100
},
"minimumReservePercent": {
"type": "number",
"description": "H0 value is 20 and must equal the constraint reserve.",
"default": 20,
"minimum": 0,
"maximum": 100
},
"energyKWhPerKm": {
"type": "number",
"description": "H0 value is 0.21 kWh per kilometre.",
"default": 0.21,
"exclusiveMinimum": 0,
"maximum": 100
},
"dwellSeconds": {
"type": "integer",
"description": "H0 value is 30 seconds; must be a multiple of 30.",
"default": 30,
"minimum": 0,
"maximum": 86400,
"multipleOf": 30
},
"initialZoneWeights": {
"type": "object",
"description": "All five authored H0 zones are required; positive integer weights must total exactly 100.",
"properties": {
"sandton": {
"type": "integer",
"minimum": 1,
"maximum": 1000000,
"description": "H0 weight 30.",
"default": 30
},
"parkmore": {
"type": "integer",
"minimum": 1,
"maximum": 1000000,
"description": "H0 weight 15.",
"default": 15
},
"illovo": {
"type": "integer",
"minimum": 1,
"maximum": 1000000,
"description": "H0 weight 20.",
"default": 20
},
"rosebank": {
"type": "integer",
"minimum": 1,
"maximum": 1000000,
"description": "H0 weight 25.",
"default": 25
},
"melrose-arch": {
"type": "integer",
"minimum": 1,
"maximum": 1000000,
"description": "H0 weight 10.",
"default": 10
}
},
"required": [
"sandton",
"parkmore",
"illovo",
"rosebank",
"melrose-arch"
],
"additionalProperties": false
}
},
"additionalProperties": false
},
"constraints": {
"type": "object",
"minProperties": 1,
"properties": {
"maximumWaitSeconds": {
"type": "integer",
"description": "H0 value is 180 seconds.",
"default": 180,
"minimum": 0,
"maximum": 86400
},
"maximumUnservedPassengers": {
"type": "integer",
"description": "H0 value is 12 passengers.",
"default": 12,
"minimum": 0,
"maximum": 1000000
},
"minimumBatteryReservePercent": {
"type": "number",
"description": "H0 value is 20 and must equal the fleet reserve.",
"default": 20,
"minimum": 0,
"maximum": 100
},
"maximumRecoverySeconds": {
"type": "integer",
"description": "H0 value is 600 seconds.",
"default": 600,
"minimum": 0,
"maximum": 86400
},
"standingAllowed": {
"const": false,
"description": "Standing is always prohibited in H0."
}
},
"additionalProperties": false
},
"objectives": {
"type": "array",
"description": "H0 uses all five listed objectives for both scenarios.",
"default": [
"LOWER_WAIT",
"LOWER_ENERGY_PER_PASSENGER_KM",
"HIGHER_UTILIZATION",
"FASTER_RECOVERY",
"LOWER_EMPTY_KM"
],
"minItems": 1,
"maxItems": 5,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"LOWER_WAIT",
"LOWER_ENERGY_PER_PASSENGER_KM",
"HIGHER_UTILIZATION",
"FASTER_RECOVERY",
"LOWER_EMPTY_KM"
]
}
}
},
"additionalProperties": false
}
},
"required": [
"operationId",
"expectedRevision",
"slot",
"mode",
"configuration"
],
"additionalProperties": false
}
]
},
"page": "/lab"
}run_scenarioAction
Run one current scenario through the deterministic engine and publish only a verified result.
View tool JSON
{
"name": "run_scenario",
"kind": "act",
"impl": "imperative",
"description": "Run one current scenario through the deterministic engine and publish only a verified result.",
"inputSchema": {
"type": "object",
"properties": {
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
"description": "Retry-safe command identifier."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Current application revision."
},
"scenarioRevisionId": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
"description": "Current scenario revision ID."
}
},
"required": [
"operationId",
"expectedRevision",
"scenarioRevisionId"
],
"additionalProperties": false
},
"page": "/lab"
}inject_disruptionAction
Mutate one explicit current scenario with the deterministic vehicle-failure rule. Copy the required constant type, target kind, and rule exactly; do not invent alternatives. atSecond is seconds after 08:30; use 720 for 08:42. If the user did not choose A or B, ask before calling. Both requires two sequential calls with distinct operation IDs and the latest revision.
View tool JSON
{
"name": "inject_disruption",
"kind": "act",
"impl": "imperative",
"description": "Mutate one explicit current scenario with the deterministic vehicle-failure rule. Copy the required constant type, target kind, and rule exactly; do not invent alternatives. atSecond is seconds after 08:30; use 720 for 08:42. If the user did not choose A or B, ask before calling. Both requires two sequential calls with distinct operation IDs and the latest revision.",
"inputSchema": {
"type": "object",
"properties": {
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
"description": "Retry-safe command identifier."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Current application revision."
},
"scenarioRevisionId": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^scenario-[AB]-r[1-9][0-9]*$",
"description": "Current Scenario A or B revision ID."
},
"disruption": {
"type": "object",
"properties": {
"type": {
"const": "VEHICLE_FAILURE"
},
"target": {
"type": "object",
"properties": {
"kind": {
"const": "DETERMINISTIC_RULE"
},
"rule": {
"const": "HIGHEST_OCCUPANCY_THEN_VEHICLE_ID"
}
},
"required": [
"kind",
"rule"
],
"additionalProperties": false
},
"atSecond": {
"type": "integer",
"description": "Seconds after 08:30; use 720 for 08:42. Must be a 30-second increment.",
"default": 720,
"minimum": 0,
"maximum": 1799,
"multipleOf": 30
}
},
"required": [
"type",
"target",
"atSecond"
],
"additionalProperties": false
}
},
"required": [
"operationId",
"expectedRevision",
"scenarioRevisionId",
"disruption"
],
"additionalProperties": false
},
"page": "/lab"
}compare_scenariosAction
Create one trusted neutral comparison from explicit current Scenario A and B run artifacts.
View tool JSON
{
"name": "compare_scenarios",
"kind": "act",
"impl": "imperative",
"description": "Create one trusted neutral comparison from explicit current Scenario A and B run artifacts.",
"inputSchema": {
"type": "object",
"properties": {
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
"description": "Retry-safe command identifier."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Current application revision."
},
"runAId": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
"description": "Current Scenario A run ID."
},
"runBId": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
"description": "Current Scenario B run ID."
}
},
"required": [
"operationId",
"expectedRevision",
"runAId",
"runBId"
],
"additionalProperties": false
},
"page": "/lab"
}stage_findingAction
Stage deterministic evidence from the current comparison for visible human review; never approve it. Use only an outcome and emphasis explicitly requested by the user; vague assent is not authority to choose either.
View tool JSON
{
"name": "stage_finding",
"kind": "act",
"impl": "imperative",
"description": "Stage deterministic evidence from the current comparison for visible human review; never approve it. Use only an outcome and emphasis explicitly requested by the user; vague assent is not authority to choose either.",
"inputSchema": {
"type": "object",
"properties": {
"operationId": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
"description": "Retry-safe command identifier."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Current application revision."
},
"comparisonId": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
"description": "Current trusted comparison ID."
},
"selectedOutcome": {
"type": "string",
"description": "Finding outcome explicitly requested by the user; never infer it from vague assent.",
"enum": [
"A",
"B",
"TRADE_OFF",
"INCONCLUSIVE"
]
},
"emphasis": {
"type": "string",
"description": "Finding emphasis explicitly requested by the user.",
"enum": [
"BALANCED",
"SERVICE",
"ENERGY",
"RESILIENCE"
]
}
},
"required": [
"operationId",
"expectedRevision",
"comparisonId",
"selectedOutcome",
"emphasis"
],
"additionalProperties": false
},
"page": "/lab"
}