gradeNot graded
search_restaurantsAnswer
Find demo restaurants that match city, date, party size, cuisine, rating, price, and current remaining table capacity. Use before selecting dinner. Returns IDs and available slots; never books.
View tool JSON
{
"name": "search_restaurants",
"kind": "answer",
"impl": "imperative",
"description": "Find demo restaurants that match city, date, party size, cuisine, rating, price, and current remaining table capacity. Use before selecting dinner. Returns IDs and available slots; never books.",
"inputSchema": {
"type": "object",
"properties": {
"city": {
"type": "string",
"enum": [
"Dhaka"
]
},
"date": {
"type": "string",
"format": "date",
"enum": [
"2026-10-28",
"2026-10-29",
"2026-10-30",
"2026-10-31",
"2026-11-01",
"2026-11-02",
"2026-11-03",
"2026-11-04",
"2026-11-05",
"2026-11-06",
"2026-11-07",
"2026-11-08",
"2026-11-09",
"2026-11-10"
],
"description": "Supported demo inventory window: 2026-10-28 through 2026-11-10. The window rolls forward with the current date."
},
"people": {
"type": "integer",
"minimum": 1,
"maximum": 12
},
"cuisine": {
"type": "string",
"minLength": 2,
"maxLength": 40
},
"minRating": {
"type": "number",
"minimum": 1,
"maximum": 5
},
"maxPricePerPerson": {
"type": "integer",
"minimum": 100,
"maximum": 10000
}
},
"required": [
"city",
"date",
"people"
],
"additionalProperties": false
}
}get_restaurant_detailsAnswer
Read one restaurant’s location, pricing, hours, party limits, and current provider-style availability inventory by ID.
View tool JSON
{
"name": "get_restaurant_details",
"kind": "answer",
"impl": "imperative",
"description": "Read one restaurant’s location, pricing, hours, party limits, and current provider-style availability inventory by ID.",
"inputSchema": {
"type": "object",
"properties": {
"restaurantId": {
"type": "string",
"minLength": 1
}
},
"required": [
"restaurantId"
],
"additionalProperties": false
}
}check_restaurant_availabilityAnswer
Check current remaining table capacity for a known restaurant, supported date, and party size. Use immediately before plan creation or replacement.
View tool JSON
{
"name": "check_restaurant_availability",
"kind": "answer",
"impl": "imperative",
"description": "Check current remaining table capacity for a known restaurant, supported date, and party size. Use immediately before plan creation or replacement.",
"inputSchema": {
"type": "object",
"properties": {
"restaurantId": {
"type": "string",
"minLength": 1
},
"date": {
"type": "string",
"format": "date",
"enum": [
"2026-10-28",
"2026-10-29",
"2026-10-30",
"2026-10-31",
"2026-11-01",
"2026-11-02",
"2026-11-03",
"2026-11-04",
"2026-11-05",
"2026-11-06",
"2026-11-07",
"2026-11-08",
"2026-11-09",
"2026-11-10"
],
"description": "Supported demo inventory window: 2026-10-28 through 2026-11-10. The window rolls forward with the current date."
},
"people": {
"type": "integer",
"minimum": 1,
"maximum": 12
}
},
"required": [
"restaurantId",
"date",
"people"
],
"additionalProperties": false
}
}find_showtimesAnswer
Find movie showtimes in the plan city on an exact supported date with enough current seats. Returns atomic movieId/showtimeId pairs, cinema location, duration, and price.
View tool JSON
{
"name": "find_showtimes",
"kind": "answer",
"impl": "imperative",
"description": "Find movie showtimes in the plan city on an exact supported date with enough current seats. Returns atomic movieId/showtimeId pairs, cinema location, duration, and price.",
"inputSchema": {
"type": "object",
"properties": {
"city": {
"type": "string",
"enum": [
"Dhaka"
]
},
"date": {
"type": "string",
"format": "date",
"enum": [
"2026-10-28",
"2026-10-29",
"2026-10-30",
"2026-10-31",
"2026-11-01",
"2026-11-02",
"2026-11-03",
"2026-11-04",
"2026-11-05",
"2026-11-06",
"2026-11-07",
"2026-11-08",
"2026-11-09",
"2026-11-10"
],
"description": "Supported demo inventory window: 2026-10-28 through 2026-11-10. The window rolls forward with the current date."
},
"people": {
"type": "integer",
"minimum": 1,
"maximum": 12
},
"genre": {
"type": "string",
"minLength": 2,
"maxLength": 40
}
},
"required": [
"city",
"date",
"people"
],
"additionalProperties": false
}
}estimate_transportAnswer
Return route-specific distance, duration, and fare options between known PlanOnIt location IDs. Unknown or unsupported routes return ROUTE_NOT_FOUND; no fares are invented.
View tool JSON
{
"name": "estimate_transport",
"kind": "answer",
"impl": "imperative",
"description": "Return route-specific distance, duration, and fare options between known PlanOnIt location IDs. Unknown or unsupported routes return ROUTE_NOT_FOUND; no fares are invented.",
"inputSchema": {
"type": "object",
"properties": {
"fromLocationId": {
"type": "string",
"minLength": 1
},
"toLocationId": {
"type": "string",
"minLength": 1
}
},
"required": [
"fromLocationId",
"toLocationId"
],
"additionalProperties": false
}
}create_evening_planAction
Evaluate restaurant slots × showtimes × venue routes × transport options, reject invalid combinations, rank valid ones using structured preferences, and atomically replace the shared draft. It never approves or reserves.
View tool JSON
{
"name": "create_evening_plan",
"kind": "act",
"impl": "imperative",
"description": "Evaluate restaurant slots × showtimes × venue routes × transport options, reject invalid combinations, rank valid ones using structured preferences, and atomically replace the shared draft. It never approves or reserves.",
"inputSchema": {
"type": "object",
"properties": {
"city": {
"type": "string",
"enum": [
"Dhaka"
]
},
"date": {
"type": "string",
"format": "date",
"enum": [
"2026-10-28",
"2026-10-29",
"2026-10-30",
"2026-10-31",
"2026-11-01",
"2026-11-02",
"2026-11-03",
"2026-11-04",
"2026-11-05",
"2026-11-06",
"2026-11-07",
"2026-11-08",
"2026-11-09",
"2026-11-10"
],
"description": "Supported demo inventory window: 2026-10-28 through 2026-11-10. The window rolls forward with the current date."
},
"people": {
"type": "integer",
"minimum": 1,
"maximum": 12
},
"budget": {
"type": "integer",
"minimum": 500,
"maximum": 100000
},
"preferences": {
"type": "object",
"description": "Structured ranking preferences that materially affect candidate scoring.",
"properties": {
"cuisine": {
"type": "string",
"minLength": 2,
"maxLength": 40
},
"movieGenre": {
"type": "string",
"minLength": 2,
"maxLength": 40
},
"minRestaurantRating": {
"type": "number",
"minimum": 1,
"maximum": 5
},
"transport": {
"type": "string",
"enum": [
"lowest_cost",
"comfortable",
"fastest"
],
"default": "lowest_cost"
},
"priority": {
"type": "string",
"enum": [
"balanced",
"lowest_cost",
"highest_rated"
],
"default": "balanced"
},
"timing": {
"type": "string",
"enum": [
"relaxed",
"compact"
],
"default": "relaxed"
}
},
"additionalProperties": false
},
"dinnerDurationMinutes": {
"type": "integer",
"minimum": 45,
"maximum": 150,
"default": 75
},
"bufferMinutes": {
"type": "integer",
"minimum": 5,
"maximum": 45,
"default": 15
}
},
"required": [
"city",
"date",
"people",
"budget",
"preferences"
],
"additionalProperties": false
}
}get_current_planAnswer
Read the current persisted shared draft, version, selections, current provider entities, timeline, cost breakdown, approval state, and full feasibility evidence.
View tool JSON
{
"name": "get_current_plan",
"kind": "answer",
"impl": "imperative",
"description": "Read the current persisted shared draft, version, selections, current provider entities, timeline, cost breakdown, approval state, and full feasibility evidence.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}validate_planAction
Recompute every blocking constraint against the current mutable provider revision: completeness, ownership, city, capacity, showtime integrity, route, chronology, and budget. Does not mutate.
View tool JSON
{
"name": "validate_plan",
"kind": "act",
"impl": "imperative",
"description": "Recompute every blocking constraint against the current mutable provider revision: completeness, ownership, city, capacity, showtime integrity, route, chronology, and budget. Does not mutate.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}update_planAction
Apply a version-checked atomic change. Restaurant requires restaurantId+restaurantSlot; movie requires movieId+showtimeId. Invalid IDs, mismatches, wrong dates, routes, empty changes, and stale versions are rejected. Identical input is a no-op and does not increment the version.
View tool JSON
{
"name": "update_plan",
"kind": "act",
"impl": "imperative",
"description": "Apply a version-checked atomic change. Restaurant requires restaurantId+restaurantSlot; movie requires movieId+showtimeId. Invalid IDs, mismatches, wrong dates, routes, empty changes, and stale versions are rejected. Identical input is a no-op and does not increment the version.",
"inputSchema": {
"type": "object",
"properties": {
"expectedVersion": {
"type": "integer",
"minimum": 1,
"description": "Current positive plan version from get_current_plan. Mutations reject stale versions."
},
"restaurantId": {
"type": "string",
"minLength": 1
},
"restaurantSlot": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
},
"movieId": {
"type": "string",
"minLength": 1
},
"showtimeId": {
"type": "string",
"minLength": 1
},
"transportOptionId": {
"type": "string",
"minLength": 1
},
"budget": {
"type": "integer",
"minimum": 500,
"maximum": 100000
},
"people": {
"type": "integer",
"minimum": 1,
"maximum": 12
},
"preferences": {
"type": "object",
"description": "Structured ranking preferences that materially affect candidate scoring.",
"properties": {
"cuisine": {
"type": "string",
"minLength": 2,
"maxLength": 40
},
"movieGenre": {
"type": "string",
"minLength": 2,
"maxLength": 40
},
"minRestaurantRating": {
"type": "number",
"minimum": 1,
"maximum": 5
},
"transport": {
"type": "string",
"enum": [
"lowest_cost",
"comfortable",
"fastest"
],
"default": "lowest_cost"
},
"priority": {
"type": "string",
"enum": [
"balanced",
"lowest_cost",
"highest_rated"
],
"default": "balanced"
},
"timing": {
"type": "string",
"enum": [
"relaxed",
"compact"
],
"default": "relaxed"
}
},
"additionalProperties": false
}
},
"required": [
"expectedVersion"
],
"additionalProperties": false,
"minProperties": 2,
"dependentRequired": {
"restaurantId": [
"restaurantSlot"
],
"restaurantSlot": [
"restaurantId"
],
"movieId": [
"showtimeId"
],
"showtimeId": [
"movieId"
]
}
}
}repair_planAction
Signature collaboration tool: inspect the current invalid human-edited draft, preserve the requested restaurant and/or movie, search dependent alternatives, and atomically replace it with the highest-ranked feasible version. Requires the current version.
View tool JSON
{
"name": "repair_plan",
"kind": "act",
"impl": "imperative",
"description": "Signature collaboration tool: inspect the current invalid human-edited draft, preserve the requested restaurant and/or movie, search dependent alternatives, and atomically replace it with the highest-ranked feasible version. Requires the current version.",
"inputSchema": {
"type": "object",
"properties": {
"expectedVersion": {
"type": "integer",
"minimum": 1,
"description": "Current positive plan version from get_current_plan. Mutations reject stale versions."
},
"preserveRestaurant": {
"type": "boolean",
"default": true
},
"preserveMovie": {
"type": "boolean",
"default": false
}
},
"required": [
"expectedVersion"
],
"additionalProperties": false
}
}calculate_total_costAction
Return per-person-scaled dinner and ticket costs plus route-specific transport fare. Invalid or incomplete references return null components and failed feasibility evidence, never a misleading zero-cost success.
View tool JSON
{
"name": "calculate_total_cost",
"kind": "act",
"impl": "imperative",
"description": "Return per-person-scaled dinner and ticket costs plus route-specific transport fare. Invalid or incomplete references return null components and failed feasibility evidence, never a misleading zero-cost success.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}reserve_planSensitive Action
Consequential sandbox action. Commits mutable in-app table and seat inventory only for the exact current version and provider revision after human approval. Stale, invalid, unapproved, conflicted, and failed attempts consume nothing; retries are idempotent. No real provider or payment is contacted.
View tool JSON
{
"name": "reserve_plan",
"kind": "transact",
"impl": "imperative",
"description": "Consequential sandbox action. Commits mutable in-app table and seat inventory only for the exact current version and provider revision after human approval. Stale, invalid, unapproved, conflicted, and failed attempts consume nothing; retries are idempotent. No real provider or payment is contacted.",
"inputSchema": {
"type": "object",
"properties": {
"expectedVersion": {
"type": "integer",
"minimum": 1,
"description": "Current positive plan version from get_current_plan. Mutations reject stale versions."
},
"confirmation": {
"type": "string",
"enum": [
"CONFIRM_SIMULATED_RESERVATION"
],
"description": "Backward-compatible exact acknowledgement that this is a controlled sandbox reservation."
}
},
"required": [
"expectedVersion",
"confirmation"
],
"additionalProperties": false
}
}start_new_planAction
Explicitly begin a new plan after a reservation was confirmed. The previous reservation is never cancelled, detached, or hidden: its committed inventory stays with its own plan version and remains readable through get_current_plan’s reservationLedger. Required before create_evening_plan can run on a workspace that holds an active reservation.
View tool JSON
{
"name": "start_new_plan",
"kind": "act",
"impl": "imperative",
"description": "Explicitly begin a new plan after a reservation was confirmed. The previous reservation is never cancelled, detached, or hidden: its committed inventory stays with its own plan version and remains readable through get_current_plan’s reservationLedger. Required before create_evening_plan can run on a workspace that holds an active reservation.",
"inputSchema": {
"type": "object",
"properties": {
"expectedVersion": {
"type": "integer",
"minimum": 1,
"description": "Current positive plan version from get_current_plan. Mutations reject stale versions."
},
"acknowledgeExistingReservation": {
"type": "boolean",
"default": true,
"description": "Acknowledges that any active reservation stays committed and visible in the ledger."
}
},
"required": [
"expectedVersion"
],
"additionalProperties": false
}
}