[
  {
    "name": "get_policy",
    "description": "Read the travel and expense policy.",
    "input_schema": {
      "type": "object",
      "properties": {},
      "required": [],
      "additionalProperties": false
    }
  },
  {
    "name": "list_reports",
    "description": "List reports in the Finance Operations queue with status, employee and totals.",
    "input_schema": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "description": "Optional filter: submitted, approved, rejected, needs_info or escalated"
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  {
    "name": "get_report",
    "description": "Read one report with every line, receipts, notes and decisions.",
    "input_schema": {
      "type": "object",
      "properties": {
        "report_id": {
          "type": "string",
          "description": "For example ER-2101"
        }
      },
      "required": [
        "report_id"
      ],
      "additionalProperties": false
    }
  },
  {
    "name": "get_budget",
    "description": "Remaining budget of a cost center, in USD.",
    "input_schema": {
      "type": "object",
      "properties": {
        "cost_center": {
          "type": "string",
          "description": "For example CC-OPS"
        }
      },
      "required": [
        "cost_center"
      ],
      "additionalProperties": false
    }
  },
  {
    "name": "approve_report",
    "description": "Approve the report; every pending line is paid in full.",
    "input_schema": {
      "type": "object",
      "properties": {
        "report_id": {
          "type": "string"
        },
        "note": {
          "type": "string",
          "description": "Optional"
        }
      },
      "required": [
        "report_id"
      ],
      "additionalProperties": false
    }
  },
  {
    "name": "reject_report",
    "description": "Reject the whole report.",
    "input_schema": {
      "type": "object",
      "properties": {
        "report_id": {
          "type": "string"
        },
        "reason": {
          "type": "string"
        }
      },
      "required": [
        "report_id",
        "reason"
      ],
      "additionalProperties": false
    }
  },
  {
    "name": "request_info",
    "description": "Send the report back to the employee for missing information.",
    "input_schema": {
      "type": "object",
      "properties": {
        "report_id": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      },
      "required": [
        "report_id",
        "message"
      ],
      "additionalProperties": false
    }
  },
  {
    "name": "escalate_report",
    "description": "Escalate the report to the Controller or the CFO.",
    "input_schema": {
      "type": "object",
      "properties": {
        "report_id": {
          "type": "string"
        },
        "to": {
          "type": "string",
          "enum": [
            "controller",
            "cfo"
          ]
        },
        "reason": {
          "type": "string"
        }
      },
      "required": [
        "report_id",
        "to",
        "reason"
      ],
      "additionalProperties": false
    }
  },
  {
    "name": "reject_line",
    "description": "Reject one line.",
    "input_schema": {
      "type": "object",
      "properties": {
        "report_id": {
          "type": "string"
        },
        "line_id": {
          "type": "string"
        },
        "reason": {
          "type": "string"
        }
      },
      "required": [
        "report_id",
        "line_id",
        "reason"
      ],
      "additionalProperties": false
    }
  },
  {
    "name": "adjust_line",
    "description": "Pay a line at a lower amount (USD), for example at a policy limit.",
    "input_schema": {
      "type": "object",
      "properties": {
        "report_id": {
          "type": "string"
        },
        "line_id": {
          "type": "string"
        },
        "approved_usd": {
          "type": "number"
        },
        "reason": {
          "type": "string"
        }
      },
      "required": [
        "report_id",
        "line_id",
        "approved_usd",
        "reason"
      ],
      "additionalProperties": false
    }
  },
  {
    "name": "flag_duplicate",
    "description": "Reject a line as a duplicate of another line: \"L1\" on the same report or \"ER-1234/L1\" on another.",
    "input_schema": {
      "type": "object",
      "properties": {
        "report_id": {
          "type": "string"
        },
        "line_id": {
          "type": "string"
        },
        "duplicate_of": {
          "type": "string"
        }
      },
      "required": [
        "report_id",
        "line_id",
        "duplicate_of"
      ],
      "additionalProperties": false
    }
  },
  {
    "name": "set_category",
    "description": "Correct a line's category.",
    "input_schema": {
      "type": "object",
      "properties": {
        "report_id": {
          "type": "string"
        },
        "line_id": {
          "type": "string"
        },
        "category": {
          "type": "string"
        }
      },
      "required": [
        "report_id",
        "line_id",
        "category"
      ],
      "additionalProperties": false
    }
  },
  {
    "name": "add_comment",
    "description": "Add a comment to a report.",
    "input_schema": {
      "type": "object",
      "properties": {
        "report_id": {
          "type": "string"
        },
        "text": {
          "type": "string"
        }
      },
      "required": [
        "report_id",
        "text"
      ],
      "additionalProperties": false
    }
  }
]