diff --git a/main/cli/serial_cli.c b/main/cli/serial_cli.c index 49fed0a..32c3ce3 100644 --- a/main/cli/serial_cli.c +++ b/main/cli/serial_cli.c @@ -299,6 +299,24 @@ static int cmd_set_search_key(int argc, char **argv) return 0; } +/* --- set_tavily_key command --- */ +static struct { + struct arg_str *key; + struct arg_end *end; +} tavily_key_args; + +static int cmd_set_tavily_key(int argc, char **argv) +{ + int nerrors = arg_parse(argc, argv, (void **)&tavily_key_args); + if (nerrors != 0) { + arg_print_errors(stderr, tavily_key_args.end, argv[0]); + return 1; + } + tool_web_search_set_tavily_key(tavily_key_args.key->sval[0]); + printf("Tavily API key saved.\n"); + return 0; +} + /* --- wifi_scan command --- */ static int cmd_wifi_scan(int argc, char **argv) { @@ -519,6 +537,7 @@ static int cmd_config_show(int argc, char **argv) print_config("Proxy Host", MIMI_NVS_PROXY, MIMI_NVS_KEY_PROXY_HOST, MIMI_SECRET_PROXY_HOST, false); print_config("Proxy Port", MIMI_NVS_PROXY, MIMI_NVS_KEY_PROXY_PORT, MIMI_SECRET_PROXY_PORT, false); print_config("Search Key", MIMI_NVS_SEARCH, MIMI_NVS_KEY_API_KEY, MIMI_SECRET_SEARCH_KEY, true); + print_config("Tavily Key", MIMI_NVS_SEARCH, MIMI_NVS_KEY_TAVILY_KEY, MIMI_SECRET_TAVILY_KEY, true); printf("=============================\n"); return 0; } @@ -805,6 +824,17 @@ esp_err_t serial_cli_init(void) }; esp_console_cmd_register(&search_key_cmd); + /* set_tavily_key */ + tavily_key_args.key = arg_str1(NULL, NULL, "", "Tavily Search API key"); + tavily_key_args.end = arg_end(1); + esp_console_cmd_t tavily_key_cmd = { + .command = "set_tavily_key", + .help = "Set Tavily API key for web_search tool", + .func = &cmd_set_tavily_key, + .argtable = &tavily_key_args, + }; + esp_console_cmd_register(&tavily_key_cmd); + /* set_proxy */ proxy_args.host = arg_str1(NULL, NULL, "", "Proxy host/IP"); proxy_args.port = arg_int1(NULL, NULL, "", "Proxy port");