prompt: {
  "messages": [
    {
      "role": "user",
      "content": "<context>\n```typescript|file:///c%3A/Users/PRAVEEN%20NAIK/Codespace/tool/src/types.ts\nexport interface IParam {\r\n  type: 'object';\r\n  properties: Record<string, { type: string; description: string }>;\r\n}\r\n\r\nexport interface ITools {\r\n  toOpenAI: (type?: string) => string | ITool[];\r\n}\r\n\r\n\r\n\r\n// https://openrouter.ai/docs/requests#:~:text=object%0A%7D%3B-,type%20Tool%20%3D%20%7B,-type%3A%20%22function\r\nexport interface ITool {\r\n  type: 'function';\r\n  function: IFunctionDescription;\r\n}\r\n\r\nexport interface IFunctionDescription {\r\n  description?: string;\r\n  name: string;\r\n  parameters: object; // JSON Schema object\r\n}\r\n```\n</context>\n\n\n QUERY: -> Add a fucntion to ITools called exec which executes the function\n-> Allow overloading of fucntion or options in params, iter ttake the tool call respose completely ie IToolCall or take func: string, params: object"
    }
  ]
}
context: file:///c%3A/Users/PRAVEEN%20NAIK/Codespace/tool/.cache/draftor/2025-01-16/1737041321-draftor-openai-gpt-4o-2024-11-20.md
=================================
**Draft changes**:

```bash
root/
├── src/
│   └── types.ts                | +18 -0
```

**Gist** : Key changes  
1. Added `exec` function in `ITools` interface with specified overloading capabilities.  
2. Enabled function or options in parameters (`IToolCall` or `func: string, params: object`).  

```typescript|file:///c%3A/Users/PRAVEEN%20NAIK/Codespace/tool/src/types.ts

// ... existing code ...

export interface IToolCall {
  tool: string;
  parameters: object; // JSON Schema object
}

export interface ITools {
  toOpenAI: (type?: string) => string | ITool[];
  
  /**
   * Executes a tool with given function and parameters or directly with a IToolCall.
   */
  exec: (call: IToolCall) => any;
  exec: (func: string, params: object) => any;
}

// ... existing code ...

```