A React Native app for the ultimate thinking partner.
1/**
2 * Format tool call arguments as Python-style string
3 *
4 * Input: { query: "poetry", num_results: 10 }
5 * Output: query="poetry", num_results=10
6 */
7export function formatToolArgs(args: any): string {
8 if (!args || typeof args !== 'object') {
9 return '';
10 }
11
12 return Object.entries(args)
13 .map(([k, v]) => `${k}=${typeof v === 'string' ? `"${v}"` : JSON.stringify(v)}`)
14 .join(', ');
15}
16
17/**
18 * Format tool call as Python-style function call
19 *
20 * Input: name="web_search", arguments='{"query":"poetry","num_results":10}'
21 * Output: web_search(query="poetry", num_results=10)
22 */
23export function formatToolCall(name: string, argumentsJson: string): string {
24 try {
25 const argsObj = JSON.parse(argumentsJson);
26 const formattedArgs = formatToolArgs(argsObj);
27 return `${name}(${formattedArgs})`;
28 } catch (e) {
29 // If JSON parse fails, wrap the raw string in parens
30 return `${name}(${argumentsJson})`;
31 }
32}