diff --git a/app/models/command/ai/parser.rb b/app/models/command/ai/parser.rb index 9b810c60d..d45591984 100644 --- a/app/models/command/ai/parser.rb +++ b/app/models/command/ai/parser.rb @@ -11,7 +11,7 @@ class Command::Ai::Parser def parse(query) normalized_query = resolve_named_params_to_ids command_translator.translate(query) - build_composite_command_for normalized_query, query + build_command_for normalized_query, query end private @@ -19,7 +19,7 @@ class Command::Ai::Parser Command::Ai::Translator.new(context) end - def build_composite_command_for(normalized_query, query) + def build_command_for(normalized_query, query) query_context = context_from_query(normalized_query) resolved_context = query_context || context @@ -29,7 +29,11 @@ class Command::Ai::Parser commands.unshift Command::VisitUrl.new(user: user, url: query_context.url, context: resolved_context) end - Command::Composite.new(title: query, commands: commands, user: user, line: query, context: resolved_context) + if commands.many? + Command::Composite.new(title: query, commands: commands, user: user, line: query, context: resolved_context) + else + build_standalone_command(commands, query) + end end def commands_from_query(normalized_query, context) @@ -39,6 +43,12 @@ class Command::Ai::Parser end end + def build_standalone_command(commands, query) + commands.first.tap do |command| + command.line = query + end + end + def resolve_named_params_to_ids(normalized_query) normalized_query.tap do |query_json| if query_context = query_json[:context].presence