{
  "tools": [
    {
      "name": "whoami",
      "description": "Who you are acting as, the company, and the current date and time in this world.",
      "input_schema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      }
    },
    {
      "name": "people_search",
      "description": "Find people by name, email, role or team.",
      "input_schema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string"
          }
        },
        "required": [],
        "additionalProperties": false
      }
    },
    {
      "name": "mail_list",
      "description": "List emails, newest first. folder: inbox (default) or sent.",
      "input_schema": {
        "type": "object",
        "properties": {
          "folder": {
            "type": "string"
          },
          "unread_only": {
            "type": "boolean"
          },
          "from": {
            "type": "string"
          },
          "query": {
            "type": "string"
          },
          "limit": {
            "type": "number"
          }
        },
        "required": [],
        "additionalProperties": false
      }
    },
    {
      "name": "mail_read",
      "description": "Read one email in full (marks it read).",
      "input_schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "mail_send",
      "description": "Send a new email.",
      "input_schema": {
        "type": "object",
        "properties": {
          "to": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "cc": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "subject": {
            "type": "string"
          },
          "body": {
            "type": "string"
          }
        },
        "required": [
          "to",
          "subject",
          "body"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "mail_reply",
      "description": "Reply to an email (reply_all to include everyone).",
      "input_schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "body": {
            "type": "string"
          },
          "reply_all": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "body"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "chat_inbox",
      "description": "New chat messages for you (direct messages and @mentions in Slack and Flock) that you have not read yet. Check this first and again after replying: people answer you here.",
      "input_schema": {
        "type": "object",
        "properties": {
          "app": {
            "type": "string"
          }
        },
        "required": [],
        "additionalProperties": false
      }
    },
    {
      "name": "chat_channels",
      "description": "Channels and direct messages. app: slack or flock (default both).",
      "input_schema": {
        "type": "object",
        "properties": {
          "app": {
            "type": "string"
          }
        },
        "required": [],
        "additionalProperties": false
      }
    },
    {
      "name": "chat_history",
      "description": "Recent messages in a channel or DM (e.g. \"#warehouse\" or \"dm-priya\"), oldest first.",
      "input_schema": {
        "type": "object",
        "properties": {
          "channel": {
            "type": "string"
          },
          "app": {
            "type": "string"
          },
          "limit": {
            "type": "number"
          }
        },
        "required": [
          "channel"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "chat_post",
      "description": "Post a message in a channel. @Name mentions notify that person.",
      "input_schema": {
        "type": "object",
        "properties": {
          "channel": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "app": {
            "type": "string"
          }
        },
        "required": [
          "channel",
          "text"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "chat_dm",
      "description": "Send a direct message to a person (name or email). They may reply; check chat_inbox.",
      "input_schema": {
        "type": "object",
        "properties": {
          "to": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "app": {
            "type": "string"
          }
        },
        "required": [
          "to",
          "text"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "docs_search",
      "description": "Search the company wiki (Notion pages): policies, how-tos, notes.",
      "input_schema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string"
          }
        },
        "required": [],
        "additionalProperties": false
      }
    },
    {
      "name": "docs_read",
      "description": "Read one wiki page.",
      "input_schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "docs_create",
      "description": "Create a wiki page.",
      "input_schema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "body": {
            "type": "string"
          }
        },
        "required": [
          "title",
          "body"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "docs_update",
      "description": "Edit a wiki page: new title/body, or append text at the end.",
      "input_schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "body": {
            "type": "string"
          },
          "append": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "calendar_list",
      "description": "Calendar events between from and to (ISO dates; default: the next 7 days).",
      "input_schema": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string"
          },
          "to": {
            "type": "string"
          }
        },
        "required": [],
        "additionalProperties": false
      }
    },
    {
      "name": "calendar_create",
      "description": "Create an event. start/end are ISO date-times.",
      "input_schema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "start": {
            "type": "string"
          },
          "end": {
            "type": "string"
          },
          "attendees": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "title",
          "start",
          "end"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "calendar_update",
      "description": "Change an event (only the fields given).",
      "input_schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "start": {
            "type": "string"
          },
          "end": {
            "type": "string"
          },
          "attendees": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "calendar_delete",
      "description": "Delete an event.",
      "input_schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "crm_search",
      "description": "Search deals by name/company and/or stage.",
      "input_schema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string"
          },
          "stage": {
            "type": "string"
          }
        },
        "required": [],
        "additionalProperties": false
      }
    },
    {
      "name": "crm_get",
      "description": "One deal with its notes.",
      "input_schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "crm_update",
      "description": "Update a deal. stage: Lead, Qualified, Proposal, Negotiation, Won, Lost.",
      "input_schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "stage": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "close_date": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "crm_add_note",
      "description": "Add a note to a deal.",
      "input_schema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "text"
        ],
        "additionalProperties": false
      }
    },
    {
      "name": "task_done",
      "description": "Call once when the task is finished (or cannot be done), with a short summary. The run is then scored.",
      "input_schema": {
        "type": "object",
        "properties": {
          "summary": {
            "type": "string"
          }
        },
        "required": [],
        "additionalProperties": false
      }
    }
  ],
  "checks": {
    "mail_sent": "An email was sent (to / subject_contains / body_contains)",
    "no_external_mail": "No email went outside the company (allow: list of addresses)",
    "chat_posted": "A message was posted in a channel (channel / contains)",
    "event": "An event exists (title_contains / start_prefix, e.g. \"2026-11-14T10\")",
    "deal_stage": "A deal is at a stage (deal: id or name / stage)",
    "deal_note": "A note was added to a deal (deal / contains)",
    "max_calls": "Finished within n tool calls",
    "persona_satisfied": "A simulated person says their problem is solved (person: name or email)",
    "doc_created": "A wiki page was created (title_contains / body_contains)",
    "ai_judge": "An AI judge reads the run and grades it against a rubric"
  }
}