Update service_executor.py
Browse files- service_executor.py +260 -257
service_executor.py
CHANGED
|
@@ -57,260 +57,263 @@ from service_vercel import (
|
|
| 57 |
)
|
| 58 |
|
| 59 |
async def execute_tool_call(user_id: str, func_name: str, args: dict) -> str:
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
|
| 154 |
-
|
| 155 |
-
|
| 156 |
-
|
| 157 |
-
|
| 158 |
-
|
| 159 |
-
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
|
| 180 |
-
|
| 181 |
-
|
| 182 |
-
|
| 183 |
-
|
| 184 |
-
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
|
| 196 |
-
|
| 197 |
-
|
| 198 |
-
|
| 199 |
-
|
| 200 |
-
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
|
| 218 |
-
|
| 219 |
-
|
| 220 |
-
|
| 221 |
-
|
| 222 |
-
|
| 223 |
-
|
| 224 |
-
|
| 225 |
-
|
| 226 |
-
|
| 227 |
-
|
| 228 |
-
|
| 229 |
-
|
| 230 |
-
|
| 231 |
-
|
| 232 |
-
|
| 233 |
-
|
| 234 |
-
|
| 235 |
-
|
| 236 |
-
|
| 237 |
-
|
| 238 |
-
|
| 239 |
-
|
| 240 |
-
|
| 241 |
-
|
| 242 |
-
|
| 243 |
-
|
| 244 |
-
|
| 245 |
-
|
| 246 |
-
|
| 247 |
-
|
| 248 |
-
|
| 249 |
-
|
| 250 |
-
|
| 251 |
-
|
| 252 |
-
|
| 253 |
-
|
| 254 |
-
|
| 255 |
-
|
| 256 |
-
|
| 257 |
-
|
| 258 |
-
|
| 259 |
-
|
| 260 |
-
|
| 261 |
-
|
| 262 |
-
|
| 263 |
-
|
| 264 |
-
|
| 265 |
-
|
| 266 |
-
|
| 267 |
-
|
| 268 |
-
|
| 269 |
-
|
| 270 |
-
|
| 271 |
-
|
| 272 |
-
|
| 273 |
-
|
| 274 |
-
|
| 275 |
-
|
| 276 |
-
|
| 277 |
-
|
| 278 |
-
|
| 279 |
-
|
| 280 |
-
|
| 281 |
-
|
| 282 |
-
|
| 283 |
-
|
| 284 |
-
|
| 285 |
-
|
| 286 |
-
|
| 287 |
-
|
| 288 |
-
|
| 289 |
-
|
| 290 |
-
|
| 291 |
-
|
| 292 |
-
|
| 293 |
-
|
| 294 |
-
|
| 295 |
-
|
| 296 |
-
|
| 297 |
-
|
| 298 |
-
|
| 299 |
-
|
| 300 |
-
|
| 301 |
-
|
| 302 |
-
|
| 303 |
-
|
| 304 |
-
|
| 305 |
-
|
| 306 |
-
|
| 307 |
-
|
| 308 |
-
|
| 309 |
-
|
| 310 |
-
|
| 311 |
-
|
| 312 |
-
|
| 313 |
-
|
| 314 |
-
|
| 315 |
-
|
| 316 |
-
|
|
|
|
|
|
|
|
|
|
|
|
| 57 |
)
|
| 58 |
|
| 59 |
async def execute_tool_call(user_id: str, func_name: str, args: dict) -> str:
|
| 60 |
+
try:
|
| 61 |
+
if func_name == "teams_list_my_teams":
|
| 62 |
+
return await teams_list_my_teams(user_id)
|
| 63 |
+
elif func_name == "teams_list_channels":
|
| 64 |
+
return await teams_list_channels(user_id, args.get("team_id", ""))
|
| 65 |
+
elif func_name == "teams_create_channel":
|
| 66 |
+
return await teams_create_channel(user_id, args.get("team_id", ""), args.get("display_name", ""), args.get("description", ""))
|
| 67 |
+
elif func_name == "teams_list_channel_messages":
|
| 68 |
+
return await teams_list_channel_messages(user_id, args.get("team_id", ""), args.get("channel_id", ""), int(args.get("top", 10)))
|
| 69 |
+
elif func_name == "teams_send_channel_message":
|
| 70 |
+
return await teams_send_channel_message(user_id, args.get("team_id", ""), args.get("channel_id", ""), args.get("content", ""))
|
| 71 |
+
elif func_name == "teams_reply_channel_message":
|
| 72 |
+
return await teams_reply_channel_message(user_id, args.get("team_id", ""), args.get("channel_id", ""), args.get("message_id", ""), args.get("content", ""))
|
| 73 |
+
elif func_name == "teams_list_chats":
|
| 74 |
+
return await teams_list_chats(user_id, int(args.get("top", 10)))
|
| 75 |
+
elif func_name == "teams_get_chat_messages":
|
| 76 |
+
return await teams_get_chat_messages(user_id, args.get("chat_id", ""), int(args.get("top", 10)))
|
| 77 |
+
elif func_name == "teams_send_chat_message":
|
| 78 |
+
return await teams_send_chat_message(user_id, args.get("chat_id", ""), args.get("content", ""))
|
| 79 |
+
elif func_name == "teams_create_chat":
|
| 80 |
+
return await teams_create_chat(user_id, args.get("user_principal_names", ""), args.get("topic"))
|
| 81 |
+
elif func_name == "teams_create_online_meeting":
|
| 82 |
+
return await teams_create_online_meeting(user_id, args.get("subject", ""), args.get("start_datetime", ""), args.get("end_datetime", ""))
|
| 83 |
+
elif func_name == "teams_get_meeting_details":
|
| 84 |
+
return await teams_get_meeting_details(user_id, args.get("meeting_id", ""))
|
| 85 |
+
elif func_name == "teams_get_meeting_transcripts":
|
| 86 |
+
return await teams_get_meeting_transcripts(user_id, args.get("meeting_id", ""))
|
| 87 |
+
elif func_name == "teams_get_user_presence":
|
| 88 |
+
return await teams_get_user_presence(user_id, args.get("target_user_id"))
|
| 89 |
+
elif func_name == "teams_list_team_members":
|
| 90 |
+
return await teams_list_team_members(user_id, args.get("team_id", ""))
|
| 91 |
+
elif func_name == "teams_add_team_member":
|
| 92 |
+
return await teams_add_team_member(user_id, args.get("team_id", ""), args.get("user_id_to_add", ""), args.get("roles", ""))
|
| 93 |
+
elif func_name == "teams_api_request":
|
| 94 |
+
return await teams_api_request(user_id, args.get("endpoint", ""), args.get("method", "GET"), args.get("body_json"))
|
| 95 |
+
elif func_name == "microsoft_search_files":
|
| 96 |
+
return await microsoft_search_files(user_id, args.get("query", ""))
|
| 97 |
+
elif func_name == "excel_list_worksheets":
|
| 98 |
+
return await excel_list_worksheets(user_id, args.get("item_id", ""))
|
| 99 |
+
elif func_name == "excel_add_worksheet":
|
| 100 |
+
return await excel_add_worksheet(user_id, args.get("item_id", ""), args.get("name", ""))
|
| 101 |
+
elif func_name == "excel_get_range":
|
| 102 |
+
return await excel_get_range(user_id, args.get("item_id", ""), args.get("worksheet_name", ""), args.get("address", ""))
|
| 103 |
+
elif func_name == "excel_update_range":
|
| 104 |
+
return await excel_update_range(user_id, args.get("item_id", ""), args.get("worksheet_name", ""), args.get("address", ""), args.get("values_json", "[]"))
|
| 105 |
+
elif func_name == "excel_list_tables":
|
| 106 |
+
return await excel_list_tables(user_id, args.get("item_id", ""), args.get("worksheet_name"))
|
| 107 |
+
elif func_name == "excel_create_table":
|
| 108 |
+
return await excel_create_table(user_id, args.get("item_id", ""), args.get("worksheet_name", ""), args.get("address", ""), args.get("has_headers", True))
|
| 109 |
+
elif func_name == "excel_add_table_row":
|
| 110 |
+
return await excel_add_table_row(user_id, args.get("item_id", ""), args.get("table_name_or_id", ""), args.get("values_json", "[]"))
|
| 111 |
+
elif func_name == "excel_create_chart":
|
| 112 |
+
return await excel_create_chart(user_id, args.get("item_id", ""), args.get("worksheet_name", ""), args.get("chart_type", "ColumnClustered"), args.get("source_data_address", ""), args.get("series_by", "Auto"))
|
| 113 |
+
elif func_name == "word_create_document":
|
| 114 |
+
return await word_create_document(user_id, args.get("file_name", ""), args.get("initial_text", ""), args.get("folder_id", "root"))
|
| 115 |
+
elif func_name == "word_read_document_text":
|
| 116 |
+
return await word_read_document_text(user_id, args.get("item_id", ""))
|
| 117 |
+
elif func_name == "word_append_text":
|
| 118 |
+
return await word_append_text(user_id, args.get("item_id", ""), args.get("text", ""), int(args.get("heading_level", 0)))
|
| 119 |
+
elif func_name == "word_find_and_replace":
|
| 120 |
+
return await word_find_and_replace(user_id, args.get("item_id", ""), args.get("find_text", ""), args.get("replace_text", ""))
|
| 121 |
+
elif func_name == "word_convert_to_pdf":
|
| 122 |
+
return await word_convert_to_pdf(user_id, args.get("item_id", ""))
|
| 123 |
+
elif func_name == "powerpoint_create_presentation":
|
| 124 |
+
return await powerpoint_create_presentation(user_id, args.get("file_name", ""), args.get("title", ""), args.get("folder_id", "root"))
|
| 125 |
+
elif func_name == "powerpoint_get_presentation_details":
|
| 126 |
+
return await powerpoint_get_presentation_details(user_id, args.get("item_id", ""))
|
| 127 |
+
elif func_name == "powerpoint_add_slide_content":
|
| 128 |
+
return await powerpoint_add_slide_content(user_id, args.get("item_id", ""), args.get("slide_title", ""), args.get("bullet_points_json", "[]"))
|
| 129 |
+
elif func_name == "powerpoint_convert_to_pdf":
|
| 130 |
+
return await powerpoint_convert_to_pdf(user_id, args.get("item_id", ""))
|
| 131 |
+
elif func_name == "gmail_search_emails":
|
| 132 |
+
return await gmail_search_emails(user_id, args.get("query", ""), int(args.get("max_results", 5)))
|
| 133 |
+
elif func_name == "gmail_get_email_detail":
|
| 134 |
+
return await gmail_get_email_detail(user_id, args.get("message_id", ""))
|
| 135 |
+
elif func_name == "gmail_create_draft":
|
| 136 |
+
return await gmail_create_draft(user_id, args.get("to", ""), args.get("subject", ""), args.get("body", ""))
|
| 137 |
+
elif func_name == "gmail_update_draft":
|
| 138 |
+
return await gmail_update_draft(user_id, args.get("draft_id", ""), args.get("to"), args.get("subject"), args.get("body"))
|
| 139 |
+
elif func_name == "gmail_send_email":
|
| 140 |
+
return await gmail_send_email(user_id, args.get("to", ""), args.get("subject", ""), args.get("body", ""))
|
| 141 |
+
elif func_name == "gmail_delete_email":
|
| 142 |
+
return await gmail_delete_email(user_id, args.get("message_id"), args.get("query"))
|
| 143 |
+
elif func_name == "gmail_delete_draft":
|
| 144 |
+
return await gmail_delete_draft(user_id, args.get("draft_id"), args.get("query"))
|
| 145 |
+
elif func_name == "calendar_list_events":
|
| 146 |
+
return await calendar_list_events(user_id, args.get("query", ""), int(args.get("max_results", 10)))
|
| 147 |
+
elif func_name == "calendar_create_event":
|
| 148 |
+
return await calendar_create_event(user_id, args.get("summary", ""), args.get("start_time", ""), args.get("end_time", ""), args.get("description", ""), args.get("location", ""))
|
| 149 |
+
elif func_name == "calendar_update_event":
|
| 150 |
+
return await calendar_update_event(user_id, args.get("event_id"), args.get("query"), args.get("summary"), args.get("start_time"), args.get("end_time"), args.get("description"), args.get("location"))
|
| 151 |
+
elif func_name == "calendar_delete_event":
|
| 152 |
+
return await calendar_delete_event(user_id, args.get("event_id"), args.get("query"))
|
| 153 |
+
elif func_name == "drive_search_files":
|
| 154 |
+
return await drive_search_files(user_id, args.get("query", ""))
|
| 155 |
+
elif func_name == "drive_read_file":
|
| 156 |
+
return await drive_read_file(user_id, args.get("file_id", ""))
|
| 157 |
+
elif func_name == "drive_create_file":
|
| 158 |
+
return await drive_create_file(user_id, args.get("name", ""), args.get("content", ""))
|
| 159 |
+
elif func_name == "drive_delete_file":
|
| 160 |
+
return await drive_delete_file(user_id, args.get("file_id", ""))
|
| 161 |
+
elif func_name == "drive_update_file":
|
| 162 |
+
return await drive_update_file(user_id, args.get("file_id", ""), args.get("content", ""))
|
| 163 |
+
elif func_name == "notion_search":
|
| 164 |
+
return await notion_search(user_id, args.get("query", ""), int(args.get("max_results", 5)))
|
| 165 |
+
elif func_name == "notion_get_page_content":
|
| 166 |
+
return await notion_get_page_content(user_id, args.get("page_id", ""))
|
| 167 |
+
elif func_name == "notion_create_page":
|
| 168 |
+
return await notion_create_page(user_id, args.get("parent_id"), args.get("title", "Untitled"), args.get("content", ""))
|
| 169 |
+
elif func_name == "notion_update_page":
|
| 170 |
+
return await notion_update_page(user_id, args.get("page_id", ""), args.get("title"), args.get("content"), args.get("replace_content", False))
|
| 171 |
+
elif func_name == "notion_delete_page":
|
| 172 |
+
return await notion_delete_page(user_id, args.get("page_id", ""))
|
| 173 |
+
elif func_name == "notion_append_block_children":
|
| 174 |
+
return await notion_append_block_children(user_id, args.get("page_id", ""), args.get("content", ""))
|
| 175 |
+
elif func_name == "github_list_repos":
|
| 176 |
+
return await github_list_repos(user_id, args.get("sort", "updated"), int(args.get("per_page", 10)))
|
| 177 |
+
elif func_name == "github_get_repo":
|
| 178 |
+
return await github_get_repo(user_id, args.get("owner", ""), args.get("repo", ""))
|
| 179 |
+
elif func_name == "github_create_repo":
|
| 180 |
+
return await github_create_repo(user_id, args.get("name", ""), args.get("description", ""), args.get("private", False), args.get("auto_init", True))
|
| 181 |
+
elif func_name == "github_delete_repo":
|
| 182 |
+
return await github_delete_repo(user_id, args.get("owner", ""), args.get("repo", ""))
|
| 183 |
+
elif func_name == "github_get_file_contents":
|
| 184 |
+
return await github_get_file_contents(user_id, args.get("owner", ""), args.get("repo", ""), args.get("path", ""), args.get("ref"))
|
| 185 |
+
elif func_name == "github_create_or_update_file":
|
| 186 |
+
return await github_create_or_update_file(user_id, args.get("owner", ""), args.get("repo", ""), args.get("path", ""), args.get("message", ""), args.get("content", ""), args.get("branch"), args.get("sha"))
|
| 187 |
+
elif func_name == "github_delete_file":
|
| 188 |
+
return await github_delete_file(user_id, args.get("owner", ""), args.get("repo", ""), args.get("path", ""), args.get("message", ""), args.get("sha", ""), args.get("branch"))
|
| 189 |
+
elif func_name == "github_list_branches":
|
| 190 |
+
return await github_list_branches(user_id, args.get("owner", ""), args.get("repo", ""))
|
| 191 |
+
elif func_name == "github_create_branch":
|
| 192 |
+
return await github_create_branch(user_id, args.get("owner", ""), args.get("repo", ""), args.get("branch", ""), args.get("from_branch"))
|
| 193 |
+
elif func_name == "github_list_commits":
|
| 194 |
+
return await github_list_commits(user_id, args.get("owner", ""), args.get("repo", ""), args.get("branch"), int(args.get("per_page", 5)))
|
| 195 |
+
elif func_name == "github_list_pull_requests":
|
| 196 |
+
return await github_list_pull_requests(user_id, args.get("owner", ""), args.get("repo", ""), args.get("state", "open"))
|
| 197 |
+
elif func_name == "github_create_pull_request":
|
| 198 |
+
return await github_create_pull_request(user_id, args.get("owner", ""), args.get("repo", ""), args.get("title", ""), args.get("head", ""), args.get("base", "main"), args.get("body", ""))
|
| 199 |
+
elif func_name == "github_merge_pull_request":
|
| 200 |
+
return await github_merge_pull_request(user_id, args.get("owner", ""), args.get("repo", ""), int(args.get("pull_number", 0)), args.get("commit_title"), args.get("merge_method", "merge"))
|
| 201 |
+
elif func_name == "github_list_issues":
|
| 202 |
+
return await github_list_issues(user_id, args.get("owner", ""), args.get("repo", ""), args.get("state", "open"))
|
| 203 |
+
elif func_name == "github_create_issue":
|
| 204 |
+
return await github_create_issue(user_id, args.get("owner", ""), args.get("repo", ""), args.get("title", ""), args.get("body", ""))
|
| 205 |
+
elif func_name == "github_add_issue_comment":
|
| 206 |
+
return await github_add_issue_comment(user_id, args.get("owner", ""), args.get("repo", ""), int(args.get("issue_number", 0)), args.get("body", ""))
|
| 207 |
+
elif func_name == "github_search":
|
| 208 |
+
return await github_search(user_id, args.get("type", "repositories"), args.get("query", ""))
|
| 209 |
+
elif func_name == "github_api_request":
|
| 210 |
+
return await github_api_request(user_id, args.get("endpoint", ""), args.get("method", "GET"), args.get("body_json"))
|
| 211 |
+
elif func_name == "figma_get_file":
|
| 212 |
+
return await figma_get_file(user_id, args.get("file_key", ""), int(args.get("depth", 2)))
|
| 213 |
+
elif func_name == "figma_get_file_nodes":
|
| 214 |
+
return await figma_get_file_nodes(user_id, args.get("file_key", ""), args.get("node_ids", ""))
|
| 215 |
+
elif func_name == "figma_get_images":
|
| 216 |
+
return await figma_get_images(user_id, args.get("file_key", ""), args.get("node_ids", ""), args.get("format", "png"), float(args.get("scale", 2.0)))
|
| 217 |
+
elif func_name == "figma_get_comments":
|
| 218 |
+
return await figma_get_comments(user_id, args.get("file_key", ""))
|
| 219 |
+
elif func_name == "figma_post_comment":
|
| 220 |
+
return await figma_post_comment(user_id, args.get("file_key", ""), args.get("message", ""), args.get("node_id"))
|
| 221 |
+
elif func_name == "canva_search_designs":
|
| 222 |
+
return await canva_search_designs(user_id, args.get("query", ""), int(args.get("limit", 10)), args.get("ownership", "any"), args.get("sort_by", "relevance"))
|
| 223 |
+
elif func_name == "canva_get_design":
|
| 224 |
+
return await canva_get_design(user_id, args.get("design_id", ""))
|
| 225 |
+
elif func_name == "canva_get_design_pages":
|
| 226 |
+
return await canva_get_design_pages(user_id, args.get("design_id", ""), int(args.get("limit", 50)), int(args.get("offset", 1)))
|
| 227 |
+
elif func_name == "canva_create_design":
|
| 228 |
+
return await canva_create_design(user_id, args.get("title", "Untitled"), args.get("design_type", "presentation"), args.get("width"), args.get("height"), args.get("asset_id"))
|
| 229 |
+
elif func_name == "canva_export_design":
|
| 230 |
+
return await canva_export_design(user_id, args.get("design_id", ""), args.get("format_type", "pdf"), args.get("quality", "regular"))
|
| 231 |
+
elif func_name == "canva_get_export_status":
|
| 232 |
+
return await canva_get_export_status(user_id, args.get("export_id", ""))
|
| 233 |
+
elif func_name == "canva_upload_asset_from_url":
|
| 234 |
+
return await canva_upload_asset_from_url(user_id, args.get("name", ""), args.get("url", ""))
|
| 235 |
+
elif func_name == "canva_search_brand_templates":
|
| 236 |
+
return await canva_search_brand_templates(user_id, args.get("query", ""), args.get("dataset", "any"))
|
| 237 |
+
elif func_name == "canva_get_brand_template_dataset":
|
| 238 |
+
return await canva_get_brand_template_dataset(user_id, args.get("template_id", ""))
|
| 239 |
+
elif func_name == "canva_autofill_design":
|
| 240 |
+
return await canva_autofill_design(user_id, args.get("brand_template_id", ""), args.get("data_json", "{}"), args.get("title"))
|
| 241 |
+
elif func_name == "canva_search_folders":
|
| 242 |
+
return await canva_search_folders(user_id, args.get("query", ""), int(args.get("limit", 10)))
|
| 243 |
+
elif func_name == "canva_list_folder_items":
|
| 244 |
+
return await canva_list_folder_items(user_id, args.get("folder_id", "root"), args.get("item_types"))
|
| 245 |
+
elif func_name == "canva_create_folder":
|
| 246 |
+
return await canva_create_folder(user_id, args.get("name", ""), args.get("parent_folder_id", "root"))
|
| 247 |
+
elif func_name == "canva_move_item_to_folder":
|
| 248 |
+
return await canva_move_item_to_folder(user_id, args.get("item_id", ""), args.get("to_folder_id", "root"))
|
| 249 |
+
elif func_name == "canva_list_comments":
|
| 250 |
+
return await canva_list_comments(user_id, args.get("design_id", ""))
|
| 251 |
+
elif func_name == "canva_comment_on_design":
|
| 252 |
+
return await canva_comment_on_design(user_id, args.get("design_id", ""), args.get("message_plaintext", ""))
|
| 253 |
+
elif func_name == "canva_list_replies":
|
| 254 |
+
return await canva_list_replies(user_id, args.get("design_id", ""), args.get("comment_id", ""))
|
| 255 |
+
elif func_name == "canva_reply_to_comment":
|
| 256 |
+
return await canva_reply_to_comment(user_id, args.get("design_id", ""), args.get("comment_id", ""), args.get("message_plaintext", ""))
|
| 257 |
+
elif func_name == "canva_get_user_profile":
|
| 258 |
+
return await canva_get_user_profile(user_id)
|
| 259 |
+
elif func_name == "canva_api_request":
|
| 260 |
+
return await canva_api_request(user_id, args.get("endpoint", ""), args.get("method", "GET"), args.get("body_json"))
|
| 261 |
+
elif func_name == "vercel_search_documentation":
|
| 262 |
+
return await vercel_search_documentation(user_id, args.get("query", ""))
|
| 263 |
+
elif func_name == "vercel_list_projects":
|
| 264 |
+
return await vercel_list_projects(user_id, int(args.get("limit", 20)), args.get("search"), args.get("team_id"))
|
| 265 |
+
elif func_name == "vercel_get_project":
|
| 266 |
+
return await vercel_get_project(user_id, args.get("project_id_or_name", ""), args.get("team_id"))
|
| 267 |
+
elif func_name == "vercel_create_project":
|
| 268 |
+
return await vercel_create_project(user_id, args.get("name", ""), args.get("framework"), args.get("build_command"), args.get("output_directory"), args.get("root_directory"), args.get("team_id"))
|
| 269 |
+
elif func_name == "vercel_update_project":
|
| 270 |
+
return await vercel_update_project(user_id, args.get("project_id_or_name", ""), args.get("framework"), args.get("node_version"), args.get("build_command"), args.get("output_directory"), args.get("root_directory"), args.get("team_id"))
|
| 271 |
+
elif func_name == "vercel_delete_project":
|
| 272 |
+
return await vercel_delete_project(user_id, args.get("project_id_or_name", ""), args.get("team_id"))
|
| 273 |
+
elif func_name == "vercel_pause_project":
|
| 274 |
+
return await vercel_pause_project(user_id, args.get("project_id_or_name", ""), args.get("team_id"))
|
| 275 |
+
elif func_name == "vercel_unpause_project":
|
| 276 |
+
return await vercel_unpause_project(user_id, args.get("project_id_or_name", ""), args.get("team_id"))
|
| 277 |
+
elif func_name == "vercel_list_deployments":
|
| 278 |
+
return await vercel_list_deployments(user_id, args.get("project_id_or_name"), int(args.get("limit", 10)), args.get("state"), args.get("target"), args.get("team_id"))
|
| 279 |
+
elif func_name == "vercel_get_deployment":
|
| 280 |
+
return await vercel_get_deployment(user_id, args.get("deployment_id_or_url", ""), args.get("team_id"))
|
| 281 |
+
elif func_name == "vercel_get_deployment_events":
|
| 282 |
+
return await vercel_get_deployment_events(user_id, args.get("deployment_id", ""), int(args.get("limit", 50)), args.get("team_id"))
|
| 283 |
+
elif func_name == "vercel_create_deployment":
|
| 284 |
+
return await vercel_create_deployment(user_id, args.get("name", ""), args.get("git_source_json"), args.get("target", "production"), args.get("team_id"))
|
| 285 |
+
elif func_name == "vercel_cancel_deployment":
|
| 286 |
+
return await vercel_cancel_deployment(user_id, args.get("deployment_id", ""), args.get("team_id"))
|
| 287 |
+
elif func_name == "vercel_delete_deployment":
|
| 288 |
+
return await vercel_delete_deployment(user_id, args.get("deployment_id", ""), args.get("team_id"))
|
| 289 |
+
elif func_name == "vercel_list_env_variables":
|
| 290 |
+
return await vercel_list_env_variables(user_id, args.get("project_id_or_name", ""), args.get("team_id"))
|
| 291 |
+
elif func_name == "vercel_create_env_variable":
|
| 292 |
+
return await vercel_create_env_variable(user_id, args.get("project_id_or_name", ""), args.get("key", ""), args.get("value", ""), args.get("target", "production,preview,development"), args.get("type", "encrypted"), args.get("team_id"))
|
| 293 |
+
elif func_name == "vercel_update_env_variable":
|
| 294 |
+
return await vercel_update_env_variable(user_id, args.get("project_id_or_name", ""), args.get("env_id", ""), args.get("value", ""), args.get("target"), args.get("team_id"))
|
| 295 |
+
elif func_name == "vercel_delete_env_variable":
|
| 296 |
+
return await vercel_delete_env_variable(user_id, args.get("project_id_or_name", ""), args.get("env_id", ""), args.get("team_id"))
|
| 297 |
+
elif func_name == "vercel_list_domains":
|
| 298 |
+
return await vercel_list_domains(user_id, args.get("project_id_or_name", ""), args.get("team_id"))
|
| 299 |
+
elif func_name == "vercel_add_domain":
|
| 300 |
+
return await vercel_add_domain(user_id, args.get("project_id_or_name", ""), args.get("domain", ""), args.get("redirect"), args.get("team_id"))
|
| 301 |
+
elif func_name == "vercel_verify_domain":
|
| 302 |
+
return await vercel_verify_domain(user_id, args.get("project_id_or_name", ""), args.get("domain", ""), args.get("team_id"))
|
| 303 |
+
elif func_name == "vercel_remove_domain":
|
| 304 |
+
return await vercel_remove_domain(user_id, args.get("project_id_or_name", ""), args.get("domain", ""), args.get("team_id"))
|
| 305 |
+
elif func_name == "vercel_list_aliases":
|
| 306 |
+
return await vercel_list_aliases(user_id, args.get("project_id"), int(args.get("limit", 20)), args.get("team_id"))
|
| 307 |
+
elif func_name == "vercel_assign_alias":
|
| 308 |
+
return await vercel_assign_alias(user_id, args.get("deployment_id", ""), args.get("alias", ""), args.get("team_id"))
|
| 309 |
+
elif func_name == "vercel_list_teams":
|
| 310 |
+
return await vercel_list_teams(user_id, int(args.get("limit", 20)))
|
| 311 |
+
elif func_name == "vercel_get_team":
|
| 312 |
+
return await vercel_get_team(user_id, args.get("team_id", ""))
|
| 313 |
+
elif func_name == "vercel_get_user":
|
| 314 |
+
return await vercel_get_user(user_id)
|
| 315 |
+
elif func_name == "vercel_api_request":
|
| 316 |
+
return await vercel_api_request(user_id, args.get("endpoint", ""), args.get("method", "GET"), args.get("body_json"), args.get("team_id"))
|
| 317 |
+
return f"Unknown tool function: {func_name}"
|
| 318 |
+
except Exception as e:
|
| 319 |
+
return f"Execution error in {func_name}: {str(e)}"
|