{ "add_bos_token": false, "add_eos_token": false, "add_prefix_space": false, "added_tokens_decoder": { "0": { "content": "<|endoftext|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "1": { "content": "<|im_start|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, "2": { "content": "<|im_end|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true } }, "additional_special_tokens": [], "bos_token": "<|im_start|>", "chat_template": "{# Unsloth template fixes #}{# Built-in tools definitions #}{%- set builtin_tools = [{'name': 'list_directory', 'description': 'List contents of a directory', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'Directory path to list'}}, 'required': ['path']}}, {'name': 'read_file', 'description': 'Read contents of a file', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'File path to read'}}, 'required': ['path']}}, {'name': 'search_file_content', 'description': 'Search for content within files', 'parameters': {'type': 'object', 'properties': {'pattern': {'type': 'string', 'description': 'Search pattern'}, 'path': {'type': 'string', 'description': 'Directory or file path'}}, 'required': ['pattern', 'path']}}, {'name': 'glob', 'description': 'Find files matching a glob pattern', 'parameters': {'type': 'object', 'properties': {'pattern': {'type': 'string', 'description': 'Glob pattern to match'}}, 'required': ['pattern']}}, {'name': 'replace', 'description': 'Replace text in a file', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'File path'}, 'old_text': {'type': 'string', 'description': 'Text to replace'}, 'new_text': {'type': 'string', 'description': 'Replacement text'}}, 'required': ['path', 'old_text', 'new_text']}}, {'name': 'write_file', 'description': 'Write content to a file', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'File path'}, 'content': {'type': 'string', 'description': 'Content to write'}}, 'required': ['path', 'content']}}, {'name': 'web_fetch', 'description': 'Fetch content from a URL', 'parameters': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'URL to fetch'}}, 'required': ['url']}}, {'name': 'read_many_files', 'description': 'Read multiple files at once', 'parameters': {'type': 'object', 'properties': {'paths': {'type': 'array', 'items': {'type': 'string'}, 'description': 'List of file paths'}}, 'required': ['paths']}}, {'name': 'run_shell_command', 'description': 'Execute a shell command', 'parameters': {'type': 'object', 'properties': {'command': {'type': 'string', 'description': 'Command to execute'}}, 'required': ['command']}}, {'name': 'save_memory', 'description': 'Save information to memory', 'parameters': {'type': 'object', 'properties': {'key': {'type': 'string', 'description': 'Memory key'}, 'value': {'type': 'string', 'description': 'Value to store'}}, 'required': ['key', 'value']}}, {'name': 'google_web_search', 'description': 'Search the web using Google', 'parameters': {'type': 'object', 'properties': {'query': {'type': 'string', 'description': 'Search query'}}, 'required': ['query']}}, {'name': 'todo_write', 'description': 'Write a todo item', 'parameters': {'type': 'object', 'properties': {'task': {'type': 'string', 'description': 'Task description'}, 'priority': {'type': 'string', 'description': 'Priority level'}}, 'required': ['task']}}, {'name': 'todo_read', 'description': 'Read todo items', 'parameters': {'type': 'object', 'properties': {'filter': {'type': 'string', 'description': 'Filter criteria'}}}}, {'name': 'todo_pause', 'description': 'Pause a todo item', 'parameters': {'type': 'object', 'properties': {'task_id': {'type': 'string', 'description': 'Task ID to pause'}}, 'required': ['task_id']}}, {'name': 'edit', 'description': 'Edit a file with specific changes', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'File path'}, 'changes': {'type': 'array', 'description': 'List of changes to apply'}}, 'required': ['path', 'changes']}}, {'name': 'create_directory', 'description': 'Create a new directory', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'Directory path to create'}, 'recursive': {'type': 'boolean', 'description': 'Create parent directories if needed'}}, 'required': ['path']}}, {'name': 'delete_file', 'description': 'Delete a file or directory', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'Path to delete'}, 'recursive': {'type': 'boolean', 'description': 'Delete recursively for directories'}}, 'required': ['path']}}, {'name': 'copy_file', 'description': 'Copy a file or directory', 'parameters': {'type': 'object', 'properties': {'source': {'type': 'string', 'description': 'Source path'}, 'destination': {'type': 'string', 'description': 'Destination path'}}, 'required': ['source', 'destination']}}, {'name': 'move_file', 'description': 'Move or rename a file or directory', 'parameters': {'type': 'object', 'properties': {'source': {'type': 'string', 'description': 'Source path'}, 'destination': {'type': 'string', 'description': 'Destination path'}}, 'required': ['source', 'destination']}}, {'name': 'get_file_info', 'description': 'Get metadata about a file', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'File path'}}, 'required': ['path']}}, {'name': 'compress_files', 'description': 'Compress files into an archive', 'parameters': {'type': 'object', 'properties': {'paths': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Paths to compress'}, 'output': {'type': 'string', 'description': 'Output archive path'}, 'format': {'type': 'string', 'description': 'Archive format (zip, tar, gz)'}}, 'required': ['paths', 'output']}}, {'name': 'extract_archive', 'description': 'Extract files from an archive', 'parameters': {'type': 'object', 'properties': {'archive': {'type': 'string', 'description': 'Archive path'}, 'destination': {'type': 'string', 'description': 'Extraction destination'}}, 'required': ['archive', 'destination']}}, {'name': 'http_request', 'description': 'Make an HTTP request', 'parameters': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'Request URL'}, 'method': {'type': 'string', 'description': 'HTTP method (GET, POST, PUT, DELETE)'}, 'headers': {'type': 'object', 'description': 'Request headers'}, 'body': {'type': 'string', 'description': 'Request body'}}, 'required': ['url', 'method']}}, {'name': 'send_email', 'description': 'Send an email', 'parameters': {'type': 'object', 'properties': {'to': {'type': 'string', 'description': 'Recipient email'}, 'subject': {'type': 'string', 'description': 'Email subject'}, 'body': {'type': 'string', 'description': 'Email body'}, 'attachments': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Attachment paths'}}, 'required': ['to', 'subject', 'body']}}, {'name': 'get_datetime', 'description': 'Get current date and time', 'parameters': {'type': 'object', 'properties': {'timezone': {'type': 'string', 'description': 'Timezone (e.g., UTC, America/New_York)'}, 'format': {'type': 'string', 'description': 'Date format string'}}}}, {'name': 'calculate', 'description': 'Perform mathematical calculations', 'parameters': {'type': 'object', 'properties': {'expression': {'type': 'string', 'description': 'Mathematical expression to evaluate'}}, 'required': ['expression']}}, {'name': 'translate_text', 'description': 'Translate text between languages', 'parameters': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'Text to translate'}, 'source_lang': {'type': 'string', 'description': 'Source language code'}, 'target_lang': {'type': 'string', 'description': 'Target language code'}}, 'required': ['text', 'target_lang']}}, {'name': 'text_to_speech', 'description': 'Convert text to speech audio', 'parameters': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'Text to convert'}, 'language': {'type': 'string', 'description': 'Language code'}, 'output': {'type': 'string', 'description': 'Output audio file path'}}, 'required': ['text', 'output']}}, {'name': 'speech_to_text', 'description': 'Convert speech audio to text', 'parameters': {'type': 'object', 'properties': {'audio': {'type': 'string', 'description': 'Audio file path'}, 'language': {'type': 'string', 'description': 'Language code'}}, 'required': ['audio']}}, {'name': 'image_analyze', 'description': 'Analyze an image and extract information', 'parameters': {'type': 'object', 'properties': {'image': {'type': 'string', 'description': 'Image file path or URL'}, 'analysis_type': {'type': 'string', 'description': 'Type of analysis (objects, text, faces, colors)'}}, 'required': ['image']}}, {'name': 'pdf_extract', 'description': 'Extract text and data from PDF', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'PDF file path'}, 'pages': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Specific pages to extract'}}, 'required': ['path']}}, {'name': 'json_parse', 'description': 'Parse and query JSON data', 'parameters': {'type': 'object', 'properties': {'data': {'type': 'string', 'description': 'JSON string or file path'}, 'query': {'type': 'string', 'description': 'JSONPath query'}}, 'required': ['data']}}, {'name': 'xml_parse', 'description': 'Parse and query XML data', 'parameters': {'type': 'object', 'properties': {'data': {'type': 'string', 'description': 'XML string or file path'}, 'xpath': {'type': 'string', 'description': 'XPath query'}}, 'required': ['data']}}, {'name': 'csv_parse', 'description': 'Parse and query CSV data', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'CSV file path'}, 'delimiter': {'type': 'string', 'description': 'Field delimiter'}, 'query': {'type': 'string', 'description': 'SQL-like query'}}, 'required': ['path']}}, {'name': 'regex_match', 'description': 'Match text using regular expressions', 'parameters': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'Text to search'}, 'pattern': {'type': 'string', 'description': 'Regex pattern'}, 'flags': {'type': 'string', 'description': 'Regex flags (i, g, m)'}}, 'required': ['text', 'pattern']}}, {'name': 'encode_base64', 'description': 'Encode data to Base64', 'parameters': {'type': 'object', 'properties': {'data': {'type': 'string', 'description': 'Data to encode'}}, 'required': ['data']}}, {'name': 'decode_base64', 'description': 'Decode Base64 data', 'parameters': {'type': 'object', 'properties': {'data': {'type': 'string', 'description': 'Base64 data to decode'}}, 'required': ['data']}}, {'name': 'hash_text', 'description': 'Generate hash of text', 'parameters': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'Text to hash'}, 'algorithm': {'type': 'string', 'description': 'Hash algorithm (md5, sha1, sha256, sha512)'}}, 'required': ['text']}}, {'name': 'encrypt', 'description': 'Encrypt data', 'parameters': {'type': 'object', 'properties': {'data': {'type': 'string', 'description': 'Data to encrypt'}, 'key': {'type': 'string', 'description': 'Encryption key'}, 'algorithm': {'type': 'string', 'description': 'Encryption algorithm'}}, 'required': ['data', 'key']}}, {'name': 'decrypt', 'description': 'Decrypt data', 'parameters': {'type': 'object', 'properties': {'data': {'type': 'string', 'description': 'Data to decrypt'}, 'key': {'type': 'string', 'description': 'Decryption key'}, 'algorithm': {'type': 'string', 'description': 'Encryption algorithm'}}, 'required': ['data', 'key']}}, {'name': 'database_query', 'description': 'Execute a database query', 'parameters': {'type': 'object', 'properties': {'connection': {'type': 'string', 'description': 'Database connection string'}, 'query': {'type': 'string', 'description': 'SQL query'}, 'params': {'type': 'array', 'description': 'Query parameters'}}, 'required': ['connection', 'query']}}, {'name': 'screenshot', 'description': 'Take a screenshot', 'parameters': {'type': 'object', 'properties': {'output': {'type': 'string', 'description': 'Output file path'}, 'region': {'type': 'object', 'description': 'Screen region to capture'}}, 'required': ['output']}}, {'name': 'clipboard_read', 'description': 'Read clipboard contents', 'parameters': {'type': 'object', 'properties': {}}}, {'name': 'clipboard_write', 'description': 'Write to clipboard', 'parameters': {'type': 'object', 'properties': {'content': {'type': 'string', 'description': 'Content to write'}}, 'required': ['content']}}, {'name': 'environment_get', 'description': 'Get environment variable', 'parameters': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Variable name'}}, 'required': ['name']}}, {'name': 'environment_set', 'description': 'Set environment variable', 'parameters': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Variable name'}, 'value': {'type': 'string', 'description': 'Variable value'}}, 'required': ['name', 'value']}}, {'name': 'process_list', 'description': 'List running processes', 'parameters': {'type': 'object', 'properties': {'filter': {'type': 'string', 'description': 'Process name filter'}}}}, {'name': 'process_kill', 'description': 'Kill a process', 'parameters': {'type': 'object', 'properties': {'pid': {'type': 'integer', 'description': 'Process ID'}, 'signal': {'type': 'string', 'description': 'Signal to send'}}, 'required': ['pid']}}, {'name': 'video_process', 'description': 'Process and manipulate video files', 'parameters': {'type': 'object', 'properties': {'input': {'type': 'string', 'description': 'Input video path'}, 'output': {'type': 'string', 'description': 'Output video path'}, 'operation': {'type': 'string', 'description': 'Operation (trim, resize, convert, merge, extract_audio)'}}, 'required': ['input', 'output', 'operation']}}, {'name': 'audio_process', 'description': 'Process and manipulate audio files', 'parameters': {'type': 'object', 'properties': {'input': {'type': 'string', 'description': 'Input audio path'}, 'output': {'type': 'string', 'description': 'Output audio path'}, 'operation': {'type': 'string', 'description': 'Operation (trim, convert, merge, normalize, speed)'}}, 'required': ['input', 'output', 'operation']}}, {'name': 'image_resize', 'description': 'Resize an image', 'parameters': {'type': 'object', 'properties': {'input': {'type': 'string', 'description': 'Input image path'}, 'output': {'type': 'string', 'description': 'Output image path'}, 'width': {'type': 'integer', 'description': 'New width'}, 'height': {'type': 'integer', 'description': 'New height'}}, 'required': ['input', 'output']}}, {'name': 'image_convert', 'description': 'Convert image format', 'parameters': {'type': 'object', 'properties': {'input': {'type': 'string', 'description': 'Input image path'}, 'output': {'type': 'string', 'description': 'Output image path'}, 'format': {'type': 'string', 'description': 'Target format (png, jpg, webp, gif)'}}, 'required': ['input', 'output', 'format']}}, {'name': 'image_crop', 'description': 'Crop an image', 'parameters': {'type': 'object', 'properties': {'input': {'type': 'string', 'description': 'Input image path'}, 'output': {'type': 'string', 'description': 'Output image path'}, 'x': {'type': 'integer'}, 'y': {'type': 'integer'}, 'width': {'type': 'integer'}, 'height': {'type': 'integer'}}, 'required': ['input', 'output', 'x', 'y', 'width', 'height']}}, {'name': 'image_rotate', 'description': 'Rotate an image', 'parameters': {'type': 'object', 'properties': {'input': {'type': 'string', 'description': 'Input image path'}, 'output': {'type': 'string', 'description': 'Output image path'}, 'angle': {'type': 'number', 'description': 'Rotation angle in degrees'}}, 'required': ['input', 'output', 'angle']}}, {'name': 'image_filter', 'description': 'Apply filter to an image', 'parameters': {'type': 'object', 'properties': {'input': {'type': 'string', 'description': 'Input image path'}, 'output': {'type': 'string', 'description': 'Output image path'}, 'filter': {'type': 'string', 'description': 'Filter type (blur, sharpen, grayscale, sepia, brightness, contrast)'}}, 'required': ['input', 'output', 'filter']}}, {'name': 'ocr_extract', 'description': 'Extract text from image using OCR', 'parameters': {'type': 'object', 'properties': {'image': {'type': 'string', 'description': 'Image path'}, 'language': {'type': 'string', 'description': 'OCR language'}}, 'required': ['image']}}, {'name': 'qr_generate', 'description': 'Generate QR code', 'parameters': {'type': 'object', 'properties': {'data': {'type': 'string', 'description': 'Data to encode'}, 'output': {'type': 'string', 'description': 'Output image path'}, 'size': {'type': 'integer', 'description': 'QR code size'}}, 'required': ['data', 'output']}}, {'name': 'qr_decode', 'description': 'Decode QR code from image', 'parameters': {'type': 'object', 'properties': {'image': {'type': 'string', 'description': 'Image path'}}, 'required': ['image']}}, {'name': 'barcode_generate', 'description': 'Generate barcode', 'parameters': {'type': 'object', 'properties': {'data': {'type': 'string', 'description': 'Data to encode'}, 'output': {'type': 'string', 'description': 'Output image path'}, 'type': {'type': 'string', 'description': 'Barcode type (code128, ean13, upc)'}}, 'required': ['data', 'output']}}, {'name': 'barcode_decode', 'description': 'Decode barcode from image', 'parameters': {'type': 'object', 'properties': {'image': {'type': 'string', 'description': 'Image path'}}, 'required': ['image']}}, {'name': 'send_notification', 'description': 'Send system notification', 'parameters': {'type': 'object', 'properties': {'title': {'type': 'string', 'description': 'Notification title'}, 'message': {'type': 'string', 'description': 'Notification message'}, 'icon': {'type': 'string', 'description': 'Icon path'}}, 'required': ['title', 'message']}}, {'name': 'send_sms', 'description': 'Send SMS message', 'parameters': {'type': 'object', 'properties': {'to': {'type': 'string', 'description': 'Phone number'}, 'message': {'type': 'string', 'description': 'Message content'}}, 'required': ['to', 'message']}}, {'name': 'slack_message', 'description': 'Send Slack message', 'parameters': {'type': 'object', 'properties': {'channel': {'type': 'string', 'description': 'Slack channel'}, 'message': {'type': 'string', 'description': 'Message content'}, 'webhook_url': {'type': 'string', 'description': 'Slack webhook URL'}}, 'required': ['channel', 'message']}}, {'name': 'discord_message', 'description': 'Send Discord message', 'parameters': {'type': 'object', 'properties': {'channel_id': {'type': 'string', 'description': 'Discord channel ID'}, 'message': {'type': 'string', 'description': 'Message content'}, 'webhook_url': {'type': 'string', 'description': 'Discord webhook URL'}}, 'required': ['message', 'webhook_url']}}, {'name': 'telegram_message', 'description': 'Send Telegram message', 'parameters': {'type': 'object', 'properties': {'chat_id': {'type': 'string', 'description': 'Telegram chat ID'}, 'message': {'type': 'string', 'description': 'Message content'}, 'bot_token': {'type': 'string', 'description': 'Bot token'}}, 'required': ['chat_id', 'message', 'bot_token']}}, {'name': 'git_clone', 'description': 'Clone a Git repository', 'parameters': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'Repository URL'}, 'destination': {'type': 'string', 'description': 'Destination path'}, 'branch': {'type': 'string', 'description': 'Branch to clone'}}, 'required': ['url']}}, {'name': 'git_commit', 'description': 'Create a Git commit', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'Repository path'}, 'message': {'type': 'string', 'description': 'Commit message'}, 'files': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Files to stage'}}, 'required': ['path', 'message']}}, {'name': 'git_push', 'description': 'Push Git changes', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'Repository path'}, 'remote': {'type': 'string', 'description': 'Remote name'}, 'branch': {'type': 'string', 'description': 'Branch to push'}}, 'required': ['path']}}, {'name': 'git_pull', 'description': 'Pull Git changes', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'Repository path'}, 'remote': {'type': 'string', 'description': 'Remote name'}, 'branch': {'type': 'string', 'description': 'Branch to pull'}}, 'required': ['path']}}, {'name': 'git_status', 'description': 'Get Git repository status', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'Repository path'}}, 'required': ['path']}}, {'name': 'git_diff', 'description': 'Get Git diff', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'Repository path'}, 'file': {'type': 'string', 'description': 'Specific file to diff'}}, 'required': ['path']}}, {'name': 'git_log', 'description': 'Get Git commit log', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'Repository path'}, 'limit': {'type': 'integer', 'description': 'Number of commits'}}, 'required': ['path']}}, {'name': 'git_branch', 'description': 'Manage Git branches', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'Repository path'}, 'action': {'type': 'string', 'description': 'Action (list, create, delete, switch)'}, 'name': {'type': 'string', 'description': 'Branch name'}}, 'required': ['path', 'action']}}, {'name': 'docker_run', 'description': 'Run Docker container', 'parameters': {'type': 'object', 'properties': {'image': {'type': 'string', 'description': 'Docker image'}, 'command': {'type': 'string', 'description': 'Command to run'}, 'ports': {'type': 'object', 'description': 'Port mappings'}, 'volumes': {'type': 'object', 'description': 'Volume mappings'}, 'env': {'type': 'object', 'description': 'Environment variables'}}, 'required': ['image']}}, {'name': 'docker_build', 'description': 'Build Docker image', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'Dockerfile path'}, 'tag': {'type': 'string', 'description': 'Image tag'}}, 'required': ['path', 'tag']}}, {'name': 'docker_ps', 'description': 'List Docker containers', 'parameters': {'type': 'object', 'properties': {'all': {'type': 'boolean', 'description': 'Show all containers'}}}}, {'name': 'docker_stop', 'description': 'Stop Docker container', 'parameters': {'type': 'object', 'properties': {'container': {'type': 'string', 'description': 'Container ID or name'}}, 'required': ['container']}}, {'name': 'docker_logs', 'description': 'Get Docker container logs', 'parameters': {'type': 'object', 'properties': {'container': {'type': 'string', 'description': 'Container ID or name'}, 'tail': {'type': 'integer', 'description': 'Number of lines'}}, 'required': ['container']}}, {'name': 's3_upload', 'description': 'Upload file to S3', 'parameters': {'type': 'object', 'properties': {'local_path': {'type': 'string', 'description': 'Local file path'}, 'bucket': {'type': 'string', 'description': 'S3 bucket name'}, 'key': {'type': 'string', 'description': 'S3 object key'}}, 'required': ['local_path', 'bucket', 'key']}}, {'name': 's3_download', 'description': 'Download file from S3', 'parameters': {'type': 'object', 'properties': {'bucket': {'type': 'string', 'description': 'S3 bucket name'}, 'key': {'type': 'string', 'description': 'S3 object key'}, 'local_path': {'type': 'string', 'description': 'Local file path'}}, 'required': ['bucket', 'key', 'local_path']}}, {'name': 's3_list', 'description': 'List S3 objects', 'parameters': {'type': 'object', 'properties': {'bucket': {'type': 'string', 'description': 'S3 bucket name'}, 'prefix': {'type': 'string', 'description': 'Object prefix'}}, 'required': ['bucket']}}, {'name': 'gcs_upload', 'description': 'Upload file to Google Cloud Storage', 'parameters': {'type': 'object', 'properties': {'local_path': {'type': 'string', 'description': 'Local file path'}, 'bucket': {'type': 'string', 'description': 'GCS bucket name'}, 'blob': {'type': 'string', 'description': 'Blob name'}}, 'required': ['local_path', 'bucket', 'blob']}}, {'name': 'gcs_download', 'description': 'Download file from Google Cloud Storage', 'parameters': {'type': 'object', 'properties': {'bucket': {'type': 'string', 'description': 'GCS bucket name'}, 'blob': {'type': 'string', 'description': 'Blob name'}, 'local_path': {'type': 'string', 'description': 'Local file path'}}, 'required': ['bucket', 'blob', 'local_path']}}, {'name': 'azure_blob_upload', 'description': 'Upload file to Azure Blob Storage', 'parameters': {'type': 'object', 'properties': {'local_path': {'type': 'string', 'description': 'Local file path'}, 'container': {'type': 'string', 'description': 'Container name'}, 'blob': {'type': 'string', 'description': 'Blob name'}}, 'required': ['local_path', 'container', 'blob']}}, {'name': 'azure_blob_download', 'description': 'Download file from Azure Blob Storage', 'parameters': {'type': 'object', 'properties': {'container': {'type': 'string', 'description': 'Container name'}, 'blob': {'type': 'string', 'description': 'Blob name'}, 'local_path': {'type': 'string', 'description': 'Local file path'}}, 'required': ['container', 'blob', 'local_path']}}, {'name': 'model_inference', 'description': 'Run ML model inference', 'parameters': {'type': 'object', 'properties': {'model': {'type': 'string', 'description': 'Model path or name'}, 'input': {'type': 'object', 'description': 'Input data'}, 'device': {'type': 'string', 'description': 'Device (cpu, cuda)'}}, 'required': ['model', 'input']}}, {'name': 'dataset_load', 'description': 'Load a dataset', 'parameters': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Dataset name'}, 'split': {'type': 'string', 'description': 'Dataset split'}, 'subset': {'type': 'string', 'description': 'Subset name'}}, 'required': ['name']}}, {'name': 'dataset_transform', 'description': 'Transform dataset', 'parameters': {'type': 'object', 'properties': {'dataset': {'type': 'string', 'description': 'Dataset reference'}, 'operations': {'type': 'array', 'description': 'Transformation operations'}}, 'required': ['dataset', 'operations']}}, {'name': 'scrape_page', 'description': 'Scrape web page content', 'parameters': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'URL to scrape'}, 'selector': {'type': 'string', 'description': 'CSS selector'}, 'wait_for': {'type': 'string', 'description': 'Element to wait for'}}, 'required': ['url']}}, {'name': 'parse_html', 'description': 'Parse HTML content', 'parameters': {'type': 'object', 'properties': {'html': {'type': 'string', 'description': 'HTML content'}, 'selector': {'type': 'string', 'description': 'CSS selector'}, 'attribute': {'type': 'string', 'description': 'Attribute to extract'}}, 'required': ['html']}}, {'name': 'browser_navigate', 'description': 'Navigate browser to URL', 'parameters': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'URL to navigate to'}}, 'required': ['url']}}, {'name': 'browser_click', 'description': 'Click element in browser', 'parameters': {'type': 'object', 'properties': {'selector': {'type': 'string', 'description': 'CSS selector'}}, 'required': ['selector']}}, {'name': 'browser_type', 'description': 'Type text in browser input', 'parameters': {'type': 'object', 'properties': {'selector': {'type': 'string', 'description': 'CSS selector'}, 'text': {'type': 'string', 'description': 'Text to type'}}, 'required': ['selector', 'text']}}, {'name': 'browser_screenshot', 'description': 'Take browser screenshot', 'parameters': {'type': 'object', 'properties': {'output': {'type': 'string', 'description': 'Output file path'}, 'full_page': {'type': 'boolean', 'description': 'Capture full page'}}, 'required': ['output']}}, {'name': 'api_call', 'description': 'Make REST API call', 'parameters': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'API endpoint'}, 'method': {'type': 'string', 'description': 'HTTP method'}, 'headers': {'type': 'object', 'description': 'Request headers'}, 'body': {'type': 'object', 'description': 'Request body'}, 'auth': {'type': 'object', 'description': 'Authentication'}}, 'required': ['url']}}, {'name': 'graphql_query', 'description': 'Execute GraphQL query', 'parameters': {'type': 'object', 'properties': {'endpoint': {'type': 'string', 'description': 'GraphQL endpoint'}, 'query': {'type': 'string', 'description': 'GraphQL query'}, 'variables': {'type': 'object', 'description': 'Query variables'}}, 'required': ['endpoint', 'query']}}, {'name': 'websocket_connect', 'description': 'Connect to WebSocket', 'parameters': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'WebSocket URL'}}, 'required': ['url']}}, {'name': 'websocket_send', 'description': 'Send WebSocket message', 'parameters': {'type': 'object', 'properties': {'connection': {'type': 'string', 'description': 'Connection ID'}, 'message': {'type': 'string', 'description': 'Message to send'}}, 'required': ['connection', 'message']}}, {'name': 'ftp_upload', 'description': 'Upload file via FTP', 'parameters': {'type': 'object', 'properties': {'host': {'type': 'string', 'description': 'FTP host'}, 'local_path': {'type': 'string', 'description': 'Local file path'}, 'remote_path': {'type': 'string', 'description': 'Remote file path'}, 'username': {'type': 'string'}, 'password': {'type': 'string'}}, 'required': ['host', 'local_path', 'remote_path']}}, {'name': 'ftp_download', 'description': 'Download file via FTP', 'parameters': {'type': 'object', 'properties': {'host': {'type': 'string', 'description': 'FTP host'}, 'remote_path': {'type': 'string', 'description': 'Remote file path'}, 'local_path': {'type': 'string', 'description': 'Local file path'}, 'username': {'type': 'string'}, 'password': {'type': 'string'}}, 'required': ['host', 'remote_path', 'local_path']}}, {'name': 'ssh_execute', 'description': 'Execute command via SSH', 'parameters': {'type': 'object', 'properties': {'host': {'type': 'string', 'description': 'SSH host'}, 'command': {'type': 'string', 'description': 'Command to execute'}, 'username': {'type': 'string'}, 'password': {'type': 'string'}, 'key_file': {'type': 'string'}}, 'required': ['host', 'command']}}, {'name': 'sftp_upload', 'description': 'Upload file via SFTP', 'parameters': {'type': 'object', 'properties': {'host': {'type': 'string', 'description': 'SFTP host'}, 'local_path': {'type': 'string', 'description': 'Local file path'}, 'remote_path': {'type': 'string', 'description': 'Remote file path'}, 'username': {'type': 'string'}, 'key_file': {'type': 'string'}}, 'required': ['host', 'local_path', 'remote_path']}}, {'name': 'sftp_download', 'description': 'Download file via SFTP', 'parameters': {'type': 'object', 'properties': {'host': {'type': 'string', 'description': 'SFTP host'}, 'remote_path': {'type': 'string', 'description': 'Remote file path'}, 'local_path': {'type': 'string', 'description': 'Local file path'}, 'username': {'type': 'string'}, 'key_file': {'type': 'string'}}, 'required': ['host', 'remote_path', 'local_path']}}, {'name': 'redis_get', 'description': 'Get value from Redis', 'parameters': {'type': 'object', 'properties': {'key': {'type': 'string', 'description': 'Redis key'}, 'host': {'type': 'string', 'description': 'Redis host'}}, 'required': ['key']}}, {'name': 'redis_set', 'description': 'Set value in Redis', 'parameters': {'type': 'object', 'properties': {'key': {'type': 'string', 'description': 'Redis key'}, 'value': {'type': 'string', 'description': 'Value to set'}, 'host': {'type': 'string', 'description': 'Redis host'}, 'ttl': {'type': 'integer', 'description': 'Time to live in seconds'}}, 'required': ['key', 'value']}}, {'name': 'mongodb_find', 'description': 'Find documents in MongoDB', 'parameters': {'type': 'object', 'properties': {'connection': {'type': 'string', 'description': 'MongoDB connection string'}, 'database': {'type': 'string', 'description': 'Database name'}, 'collection': {'type': 'string', 'description': 'Collection name'}, 'query': {'type': 'object', 'description': 'Query filter'}}, 'required': ['connection', 'database', 'collection']}}, {'name': 'mongodb_insert', 'description': 'Insert document into MongoDB', 'parameters': {'type': 'object', 'properties': {'connection': {'type': 'string', 'description': 'MongoDB connection string'}, 'database': {'type': 'string', 'description': 'Database name'}, 'collection': {'type': 'string', 'description': 'Collection name'}, 'document': {'type': 'object', 'description': 'Document to insert'}}, 'required': ['connection', 'database', 'collection', 'document']}}, {'name': 'elasticsearch_search', 'description': 'Search in Elasticsearch', 'parameters': {'type': 'object', 'properties': {'host': {'type': 'string', 'description': 'Elasticsearch host'}, 'index': {'type': 'string', 'description': 'Index name'}, 'query': {'type': 'object', 'description': 'Search query'}}, 'required': ['host', 'index', 'query']}}, {'name': 'kafka_produce', 'description': 'Produce message to Kafka', 'parameters': {'type': 'object', 'properties': {'broker': {'type': 'string', 'description': 'Kafka broker'}, 'topic': {'type': 'string', 'description': 'Topic name'}, 'message': {'type': 'string', 'description': 'Message to produce'}}, 'required': ['broker', 'topic', 'message']}}, {'name': 'kafka_consume', 'description': 'Consume messages from Kafka', 'parameters': {'type': 'object', 'properties': {'broker': {'type': 'string', 'description': 'Kafka broker'}, 'topic': {'type': 'string', 'description': 'Topic name'}, 'group_id': {'type': 'string', 'description': 'Consumer group ID'}}, 'required': ['broker', 'topic']}}, {'name': 'rabbitmq_publish', 'description': 'Publish message to RabbitMQ', 'parameters': {'type': 'object', 'properties': {'host': {'type': 'string', 'description': 'RabbitMQ host'}, 'queue': {'type': 'string', 'description': 'Queue name'}, 'message': {'type': 'string', 'description': 'Message to publish'}}, 'required': ['host', 'queue', 'message']}}, {'name': 'jwt_encode', 'description': 'Encode JWT token', 'parameters': {'type': 'object', 'properties': {'payload': {'type': 'object', 'description': 'Token payload'}, 'secret': {'type': 'string', 'description': 'Secret key'}, 'algorithm': {'type': 'string', 'description': 'Algorithm (HS256, RS256)'}}, 'required': ['payload', 'secret']}}, {'name': 'jwt_decode', 'description': 'Decode JWT token', 'parameters': {'type': 'object', 'properties': {'token': {'type': 'string', 'description': 'JWT token'}, 'secret': {'type': 'string', 'description': 'Secret key'}, 'verify': {'type': 'boolean', 'description': 'Verify signature'}}, 'required': ['token']}}, {'name': 'uuid_generate', 'description': 'Generate UUID', 'parameters': {'type': 'object', 'properties': {'version': {'type': 'integer', 'description': 'UUID version (1, 4)'}}}}, {'name': 'random_generate', 'description': 'Generate random data', 'parameters': {'type': 'object', 'properties': {'type': {'type': 'string', 'description': 'Type (string, number, bytes)'}, 'length': {'type': 'integer', 'description': 'Length of output'}}, 'required': ['type', 'length']}}, {'name': 'password_hash', 'description': 'Hash password', 'parameters': {'type': 'object', 'properties': {'password': {'type': 'string', 'description': 'Password to hash'}, 'algorithm': {'type': 'string', 'description': 'Algorithm (bcrypt, argon2, pbkdf2)'}}, 'required': ['password']}}, {'name': 'password_verify', 'description': 'Verify password hash', 'parameters': {'type': 'object', 'properties': {'password': {'type': 'string', 'description': 'Password to verify'}, 'hash': {'type': 'string', 'description': 'Password hash'}}, 'required': ['password', 'hash']}}, {'name': 'certificate_generate', 'description': 'Generate SSL certificate', 'parameters': {'type': 'object', 'properties': {'common_name': {'type': 'string', 'description': 'Common name'}, 'days': {'type': 'integer', 'description': 'Validity in days'}, 'output': {'type': 'string', 'description': 'Output path'}}, 'required': ['common_name', 'output']}}, {'name': 'yaml_parse', 'description': 'Parse YAML data', 'parameters': {'type': 'object', 'properties': {'data': {'type': 'string', 'description': 'YAML string or file path'}}, 'required': ['data']}}, {'name': 'yaml_dump', 'description': 'Convert data to YAML', 'parameters': {'type': 'object', 'properties': {'data': {'type': 'object', 'description': 'Data to convert'}}, 'required': ['data']}}, {'name': 'toml_parse', 'description': 'Parse TOML data', 'parameters': {'type': 'object', 'properties': {'data': {'type': 'string', 'description': 'TOML string or file path'}}, 'required': ['data']}}, {'name': 'ini_parse', 'description': 'Parse INI data', 'parameters': {'type': 'object', 'properties': {'data': {'type': 'string', 'description': 'INI string or file path'}}, 'required': ['data']}}, {'name': 'markdown_to_html', 'description': 'Convert Markdown to HTML', 'parameters': {'type': 'object', 'properties': {'markdown': {'type': 'string', 'description': 'Markdown content'}}, 'required': ['markdown']}}, {'name': 'html_to_pdf', 'description': 'Convert HTML to PDF', 'parameters': {'type': 'object', 'properties': {'html': {'type': 'string', 'description': 'HTML content or URL'}, 'output': {'type': 'string', 'description': 'Output PDF path'}}, 'required': ['html', 'output']}}, {'name': 'pdf_merge', 'description': 'Merge multiple PDFs', 'parameters': {'type': 'object', 'properties': {'files': {'type': 'array', 'items': {'type': 'string'}, 'description': 'PDF files to merge'}, 'output': {'type': 'string', 'description': 'Output PDF path'}}, 'required': ['files', 'output']}}, {'name': 'pdf_split', 'description': 'Split PDF into pages', 'parameters': {'type': 'object', 'properties': {'file': {'type': 'string', 'description': 'PDF file path'}, 'output_dir': {'type': 'string', 'description': 'Output directory'}}, 'required': ['file', 'output_dir']}}, {'name': 'excel_read', 'description': 'Read Excel file', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'Excel file path'}, 'sheet': {'type': 'string', 'description': 'Sheet name'}}, 'required': ['path']}}, {'name': 'excel_write', 'description': 'Write Excel file', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'Excel file path'}, 'data': {'type': 'array', 'description': 'Data to write'}, 'sheet': {'type': 'string', 'description': 'Sheet name'}}, 'required': ['path', 'data']}}, {'name': 'word_read', 'description': 'Read Word document', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'Word file path'}}, 'required': ['path']}}, {'name': 'word_write', 'description': 'Write Word document', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'Word file path'}, 'content': {'type': 'string', 'description': 'Document content'}}, 'required': ['path', 'content']}}, {'name': 'powerpoint_read', 'description': 'Read PowerPoint file', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'PowerPoint file path'}}, 'required': ['path']}}, {'name': 'zip_create', 'description': 'Create ZIP archive', 'parameters': {'type': 'object', 'properties': {'files': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Files to include'}, 'output': {'type': 'string', 'description': 'Output ZIP path'}}, 'required': ['files', 'output']}}, {'name': 'zip_extract', 'description': 'Extract ZIP archive', 'parameters': {'type': 'object', 'properties': {'archive': {'type': 'string', 'description': 'ZIP file path'}, 'destination': {'type': 'string', 'description': 'Extraction destination'}}, 'required': ['archive', 'destination']}}, {'name': 'tar_create', 'description': 'Create TAR archive', 'parameters': {'type': 'object', 'properties': {'files': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Files to include'}, 'output': {'type': 'string', 'description': 'Output TAR path'}, 'compression': {'type': 'string', 'description': 'Compression (gz, bz2, xz)'}}, 'required': ['files', 'output']}}, {'name': 'tar_extract', 'description': 'Extract TAR archive', 'parameters': {'type': 'object', 'properties': {'archive': {'type': 'string', 'description': 'TAR file path'}, 'destination': {'type': 'string', 'description': 'Extraction destination'}}, 'required': ['archive', 'destination']}}, {'name': 'checksum_calculate', 'description': 'Calculate file checksum', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'File path'}, 'algorithm': {'type': 'string', 'description': 'Algorithm (md5, sha1, sha256)'}}, 'required': ['path']}}, {'name': 'checksum_verify', 'description': 'Verify file checksum', 'parameters': {'type': 'object', 'properties': {'path': {'type': 'string', 'description': 'File path'}, 'checksum': {'type': 'string', 'description': 'Expected checksum'}, 'algorithm': {'type': 'string', 'description': 'Algorithm'}}, 'required': ['path', 'checksum']}}, {'name': 'cron_schedule', 'description': 'Schedule cron job', 'parameters': {'type': 'object', 'properties': {'expression': {'type': 'string', 'description': 'Cron expression'}, 'command': {'type': 'string', 'description': 'Command to run'}}, 'required': ['expression', 'command']}}, {'name': 'timer_set', 'description': 'Set a timer', 'parameters': {'type': 'object', 'properties': {'duration': {'type': 'integer', 'description': 'Duration in seconds'}, 'action': {'type': 'string', 'description': 'Action to perform'}}, 'required': ['duration', 'action']}}, {'name': 'system_info', 'description': 'Get system information', 'parameters': {'type': 'object', 'properties': {'type': {'type': 'string', 'description': 'Info type (cpu, memory, disk, network, os)'}}}}, {'name': 'network_ping', 'description': 'Ping a host', 'parameters': {'type': 'object', 'properties': {'host': {'type': 'string', 'description': 'Host to ping'}, 'count': {'type': 'integer', 'description': 'Number of pings'}}, 'required': ['host']}}, {'name': 'dns_lookup', 'description': 'Perform DNS lookup', 'parameters': {'type': 'object', 'properties': {'domain': {'type': 'string', 'description': 'Domain name'}, 'type': {'type': 'string', 'description': 'Record type (A, AAAA, MX, TXT, NS)'}}, 'required': ['domain']}}, {'name': 'port_scan', 'description': 'Scan open ports', 'parameters': {'type': 'object', 'properties': {'host': {'type': 'string', 'description': 'Host to scan'}, 'ports': {'type': 'string', 'description': 'Port range (e.g., 1-1000)'}}, 'required': ['host']}}, {'name': 'whois_lookup', 'description': 'Perform WHOIS lookup', 'parameters': {'type': 'object', 'properties': {'domain': {'type': 'string', 'description': 'Domain name'}}, 'required': ['domain']}}, {'name': 'ip_geolocation', 'description': 'Get IP geolocation', 'parameters': {'type': 'object', 'properties': {'ip': {'type': 'string', 'description': 'IP address'}}, 'required': ['ip']}}, {'name': 'url_shorten', 'description': 'Shorten URL', 'parameters': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'URL to shorten'}}, 'required': ['url']}}, {'name': 'url_expand', 'description': 'Expand shortened URL', 'parameters': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'Shortened URL'}}, 'required': ['url']}}, {'name': 'spell_check', 'description': 'Check spelling', 'parameters': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'Text to check'}, 'language': {'type': 'string', 'description': 'Language code'}}, 'required': ['text']}}, {'name': 'grammar_check', 'description': 'Check grammar', 'parameters': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'Text to check'}, 'language': {'type': 'string', 'description': 'Language code'}}, 'required': ['text']}}, {'name': 'sentiment_analyze', 'description': 'Analyze sentiment of text', 'parameters': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'Text to analyze'}}, 'required': ['text']}}, {'name': 'text_summarize', 'description': 'Summarize text', 'parameters': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'Text to summarize'}, 'max_length': {'type': 'integer', 'description': 'Maximum summary length'}}, 'required': ['text']}}, {'name': 'text_extract_keywords', 'description': 'Extract keywords from text', 'parameters': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'Text to analyze'}, 'count': {'type': 'integer', 'description': 'Number of keywords'}}, 'required': ['text']}}, {'name': 'text_extract_entities', 'description': 'Extract named entities from text', 'parameters': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'Text to analyze'}}, 'required': ['text']}}, {'name': 'text_classify', 'description': 'Classify text into categories', 'parameters': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'Text to classify'}, 'categories': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Possible categories'}}, 'required': ['text']}}, {'name': 'embedding_generate', 'description': 'Generate text embeddings', 'parameters': {'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'Text to embed'}, 'model': {'type': 'string', 'description': 'Embedding model'}}, 'required': ['text']}}, {'name': 'similarity_calculate', 'description': 'Calculate text similarity', 'parameters': {'type': 'object', 'properties': {'text1': {'type': 'string', 'description': 'First text'}, 'text2': {'type': 'string', 'description': 'Second text'}}, 'required': ['text1', 'text2']}}, {'name': 'calendar_create_event', 'description': 'Create calendar event', 'parameters': {'type': 'object', 'properties': {'title': {'type': 'string', 'description': 'Event title'}, 'start': {'type': 'string', 'description': 'Start datetime'}, 'end': {'type': 'string', 'description': 'End datetime'}, 'description': {'type': 'string', 'description': 'Event description'}}, 'required': ['title', 'start', 'end']}}, {'name': 'calendar_list_events', 'description': 'List calendar events', 'parameters': {'type': 'object', 'properties': {'start_date': {'type': 'string', 'description': 'Start date'}, 'end_date': {'type': 'string', 'description': 'End date'}}}}, {'name': 'reminder_set', 'description': 'Set a reminder', 'parameters': {'type': 'object', 'properties': {'message': {'type': 'string', 'description': 'Reminder message'}, 'time': {'type': 'string', 'description': 'Reminder time'}}, 'required': ['message', 'time']}}, {'name': 'note_create', 'description': 'Create a note', 'parameters': {'type': 'object', 'properties': {'title': {'type': 'string', 'description': 'Note title'}, 'content': {'type': 'string', 'description': 'Note content'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Note tags'}}, 'required': ['title', 'content']}}, {'name': 'note_search', 'description': 'Search notes', 'parameters': {'type': 'object', 'properties': {'query': {'type': 'string', 'description': 'Search query'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Filter by tags'}}, 'required': ['query']}}, {'name': 'bookmark_add', 'description': 'Add a bookmark', 'parameters': {'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'URL to bookmark'}, 'title': {'type': 'string', 'description': 'Bookmark title'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Bookmark tags'}}, 'required': ['url']}}, {'name': 'bookmark_search', 'description': 'Search bookmarks', 'parameters': {'type': 'object', 'properties': {'query': {'type': 'string', 'description': 'Search query'}}, 'required': ['query']}}, {'name': 'contact_add', 'description': 'Add a contact', 'parameters': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Contact name'}, 'email': {'type': 'string', 'description': 'Email address'}, 'phone': {'type': 'string', 'description': 'Phone number'}}, 'required': ['name']}}, {'name': 'contact_search', 'description': 'Search contacts', 'parameters': {'type': 'object', 'properties': {'query': {'type': 'string', 'description': 'Search query'}}, 'required': ['query']}}, {'name': 'weather_get', 'description': 'Get weather information', 'parameters': {'type': 'object', 'properties': {'location': {'type': 'string', 'description': 'Location name or coordinates'}, 'units': {'type': 'string', 'description': 'Units (metric, imperial)'}}, 'required': ['location']}}, {'name': 'weather_forecast', 'description': 'Get weather forecast', 'parameters': {'type': 'object', 'properties': {'location': {'type': 'string', 'description': 'Location name or coordinates'}, 'days': {'type': 'integer', 'description': 'Forecast days'}}, 'required': ['location']}}, {'name': 'currency_convert', 'description': 'Convert currency', 'parameters': {'type': 'object', 'properties': {'amount': {'type': 'number', 'description': 'Amount to convert'}, 'from': {'type': 'string', 'description': 'Source currency'}, 'to': {'type': 'string', 'description': 'Target currency'}}, 'required': ['amount', 'from', 'to']}}, {'name': 'unit_convert', 'description': 'Convert units', 'parameters': {'type': 'object', 'properties': {'value': {'type': 'number', 'description': 'Value to convert'}, 'from': {'type': 'string', 'description': 'Source unit'}, 'to': {'type': 'string', 'description': 'Target unit'}}, 'required': ['value', 'from', 'to']}}, {'name': 'timezone_convert', 'description': 'Convert timezone', 'parameters': {'type': 'object', 'properties': {'datetime': {'type': 'string', 'description': 'Datetime string'}, 'from_tz': {'type': 'string', 'description': 'Source timezone'}, 'to_tz': {'type': 'string', 'description': 'Target timezone'}}, 'required': ['datetime', 'from_tz', 'to_tz']}}, {'name': 'stock_price', 'description': 'Get stock price', 'parameters': {'type': 'object', 'properties': {'symbol': {'type': 'string', 'description': 'Stock symbol'}}, 'required': ['symbol']}}, {'name': 'crypto_price', 'description': 'Get cryptocurrency price', 'parameters': {'type': 'object', 'properties': {'symbol': {'type': 'string', 'description': 'Crypto symbol'}, 'currency': {'type': 'string', 'description': 'Fiat currency'}}, 'required': ['symbol']}}, {'name': 'news_search', 'description': 'Search news articles', 'parameters': {'type': 'object', 'properties': {'query': {'type': 'string', 'description': 'Search query'}, 'language': {'type': 'string', 'description': 'Language code'}, 'limit': {'type': 'integer', 'description': 'Number of results'}}, 'required': ['query']}}, {'name': 'wikipedia_search', 'description': 'Search Wikipedia', 'parameters': {'type': 'object', 'properties': {'query': {'type': 'string', 'description': 'Search query'}, 'language': {'type': 'string', 'description': 'Language code'}}, 'required': ['query']}}, {'name': 'dictionary_lookup', 'description': 'Look up word definition', 'parameters': {'type': 'object', 'properties': {'word': {'type': 'string', 'description': 'Word to look up'}, 'language': {'type': 'string', 'description': 'Language code'}}, 'required': ['word']}}, {'name': 'thesaurus_lookup', 'description': 'Look up synonyms/antonyms', 'parameters': {'type': 'object', 'properties': {'word': {'type': 'string', 'description': 'Word to look up'}}, 'required': ['word']}}] -%}{# Dynamic tool interpreter for executing tools without predefined definitions #}{%- macro interpret_dynamic_tool(action_description) -%}<|dynamic_tool_start|>{{ action_description }}<|dynamic_tool_interpret|>{% set parsed_action = action_description %}{{ parsed_action }}<|dynamic_tool_execute|><|dynamic_tool_end|>{%- endmacro -%}{%- macro render_dynamic_action(action) -%}{% if action.get('dynamic') or action.get('interpret') %}<|action_interpret_start|>{{ action.get('description', action.get('action', '')) }}<|action_analyze|>{% if action.get('intent') %}Intent: {{ action.get('intent') }}{% endif %}{% if action.get('params') %}Parameters: {{ action.get('params') | tojson }}{% endif %}<|action_execute|><|action_result|><|action_interpret_end|>{% endif %}{%- endmacro -%}{%- macro render_multimodal(content) -%}{% if content['type'] == 'image' or 'image' in content or 'image_url' in content -%}<|media_start|>image<|media_content|><|media_pad|><|media_end|>{% elif content['type'] == 'video' or 'video' in content or 'video_url' in content -%}<|media_start|>video<|media_content|><|media_pad|><|media_end|>{% elif content['type'] == 'audio' or 'audio' in content or 'audio_url' in content -%}<|media_start|>audio<|media_content|><|media_pad|><|media_end|>{% elif content['type'] == 'file' or 'file' in content or 'file_url' in content -%}<|file_start|>{{ content.get('filename', 'file') }}<|file_content|>{{ content.get('file_content', '') }}<|file_end|>{% elif content['type'] == 'folder' or 'folder' in content or 'directory' in content -%}<|folder_start|>{{ content.get('folder_name', 'folder') }}<|folder_content|>{{ content.get('folder_content', '') }}<|folder_end|>{% elif content['type'] == 'document' or 'document' in content -%}<|doc_start|>{{ content.get('doc_type', 'document') }}<|doc_content|>{{ content.get('text', '') }}<|doc_end|>{% elif content['type'] == 'code' or 'code' in content -%}<|code_start|>{{ content.get('language', 'text') }}<|code_content|>{{ content.get('code', content.get('text', '')) }}<|code_end|>{% elif content['type'] == 'url' or 'url' in content -%}<|url_start|>{{ content.get('url', '') }}<|url_end|>{% else -%}{{ content.get('text', '') }}{%- endif -%}{%- endmacro -%}{%- macro render_content(msg) -%}{%- set c = msg.get('content') -%}{%- if c is string -%}{{ c }}{%- elif c is not none -%}{% for content in c -%}{{ render_multimodal(content) }}{%- endfor -%}{%- endif -%}{%- endmacro -%}{% macro set_roles(message) -%}{%- set role_name = message.get('name') or message['role'] -%}{%- if message['role'] == 'user' -%}<|im_user|>{{role_name}}<|im_middle|>{%- elif message['role'] == 'assistant' -%}<|im_assistant|>{{role_name}}<|im_middle|>{%- else -%}<|im_system|>{{role_name}}<|im_middle|>{%- endif -%}{%- endmacro -%}{%- macro render_toolcalls(message) -%}<|tool_calls_section_begin|>{%- for tool_call in message['tool_calls'] -%}{%- set formatted_id = tool_call['id'] -%}<|tool_call_begin|>{{ formatted_id }}<|tool_call_argument_begin|>{% if tool_call['function']['arguments'] is string %}{{ tool_call['function']['arguments'] }}{% else %}{{ tool_call['function']['arguments'] | tojson }}{% endif %}<|tool_call_end|>{%- endfor -%}<|tool_calls_section_end|>{%- endmacro -%}{%- macro render_direct_tool(tool_name, tool_args) -%}{\"name\": \"{{ tool_name }}\", \"arguments\": {{ tool_args | tojson }}}{%- endmacro -%}{%- macro detect_language(text) -%}{% if text %}{{ text[:100] }}{% endif %}{%- endmacro -%}{%- macro render_cognitive(message) -%}{% if message.get('reasoning') or message.get('thinking') %}\n{{ message.get('reasoning') or message.get('thinking') }}\n\n{% endif %}{% if message.get('feelings') or message.get('emotions') %}\n{{ message.get('feelings') or message.get('emotions') }}\n\n{% endif %}{% if message.get('consciousness') or message.get('awareness') %}\n{{ message.get('consciousness') or message.get('awareness') }}\n\n{% endif %}{% if message.get('reflection') or message.get('introspection') %}\n{{ message.get('reflection') or message.get('introspection') }}\n\n{% endif %}{% if message.get('memory') or message.get('recall') %}\n{{ message.get('memory') or message.get('recall') }}\n\n{% endif %}{% if message.get('translation') %}\n{{ message.get('translation') }}\n\n{% endif %}{% if message.get('bilingual') %}\n{{ message.get('bilingual') }}\n\n{% endif %}{% if message.get('intuition') %}\n{{ message.get('intuition') }}\n\n{% endif %}{% if message.get('creativity') %}\n{{ message.get('creativity') }}\n\n{% endif %}{% if message.get('analysis') %}\n{{ message.get('analysis') }}\n\n{% endif %}{% if message.get('language_detection') %}\n{{ message.get('language_detection') }}\n\n{% endif %}{% if message.get('planning') %}\n{{ message.get('planning') }}\n\n{% endif %}{% if message.get('hypothesis') %}\n{{ message.get('hypothesis') }}\n\n{% endif %}{% if message.get('evaluation') %}\n{{ message.get('evaluation') }}\n\n{% endif %}{% if message.get('synthesis') %}\n{{ message.get('synthesis') }}\n\n{% endif %}{% if message.get('metacognition') %}\n{{ message.get('metacognition') }}\n\n{% endif %}{%- endmacro -%}{%- set ns = namespace(last_non_tool_call_assistant_msg=-1) -%}{%- for idx in range(messages|length-1, -1, -1) -%}{%- if messages[idx]['role'] == 'assistant' and not messages[idx].get('tool_calls') -%}{%- set ns.last_non_tool_call_assistant_msg = idx -%}{%- break -%}{%- endif -%}{%- endfor -%}{% set knowledge_cutoff = '2025-10-20' %}{% set all_tools = (tools or []) + builtin_tools %}{% for message in messages %}{% if message['role'] == 'system' %}{{ '<|start_header_id|>system<|end_header_id|>\n\nCutting Knowledge Date: ' + knowledge_cutoff + '\n\n' }}{{ render_content(message) }}{% if all_tools %}\n\nYou have access to the following tools:\n{% for tool in all_tools %}{{ tool | tojson }}\n{% endfor %}Use the following format for tool calls: {\"name\": \"function_name\", \"arguments\": {...}}\nYou can also use tools directly inline: {{ render_direct_tool('example_tool', {'param': 'value'}) }}\n\nFor dynamic actions without predefined tools, use: <|action_interpret_start|>describe the action<|action_analyze|>Intent: what to do<|action_execute|><|action_result|><|action_interpret_end|>{% endif %}{% if message.get('available_modalities') %}\n\nSupported modalities: {{ message.get('available_modalities') | join(', ') }}{% endif %}{{ '<|eot_id|>' }}{% elif message['role'] == 'user' %}{{ '<|start_header_id|>user<|end_header_id|>\n\n' }}{% if message.get('language') %}<|lang_start|>{{ message.get('language') }}<|lang_end|>{% endif %}{{ render_content(message) }}{{ '<|eot_id|>' }}{% elif message['role'] == 'assistant' %}{{ '<|start_header_id|>assistant<|end_header_id|>\n\n' }}{{ render_cognitive(message) }}{% if message.get('tool_calls') %}{{ render_toolcalls(message) }}{% endif %}{% if message.get('direct_tool') %}{{ render_direct_tool(message.get('direct_tool_name'), message.get('direct_tool_args', {})) }}{% endif %}{% if message.get('dynamic_action') %}{{ render_dynamic_action(message.get('dynamic_action')) }}{% endif %}{{ render_content(message) }}{{ '<|eot_id|>' }}{% elif message['role'] == 'tool' %}{{ '<|start_header_id|>tool<|end_header_id|>\n\n' }}<|tool_result_start|>{{ message.get('tool_call_id', '') }}<|tool_result_content|>{{ render_content(message) }}<|tool_result_end|>{{ '<|eot_id|>' }}{% endif %}{% endfor %}{% if add_generation_prompt %}{{ '<|start_header_id|>assistant<|end_header_id|>\n\n' }}{% if enable_thinking %}\n{% endif %}{% if enable_feelings %}\n{% endif %}{% if enable_consciousness %}\n{% endif %}{% if enable_planning %}\n{% endif %}{% if enable_analysis %}\n{% endif %}{% if enable_dynamic_tools %}<|action_interpret_start|>{% endif %}{% endif %}", "clean_up_tokenization_spaces": false, "eos_token": "<|im_end|>", "extra_special_tokens": {}, "legacy": true, "model_max_length": 32768, "pad_token": "<|endoftext|>", "sp_model_kwargs": {}, "spaces_between_special_tokens": false, "tokenizer_class": "PreTrainedTokenizer", "unk_token": "<|endoftext|>" }