예제 #1
0
    def execute_post(self, state: State) -> Action:
        if state.result_code == "0" and state.action_suggested.suggested_command != ":":
            return create_message_list(
                self.agent_datasource.get_current_plugin_name(state.user_name),
                self.agent_datasource.all_plugins())

        return Action()
예제 #2
0
 def execute(self, state: State) -> Action:
     action_to_return = create_message_list(
         self.agent_datasource.get_current_plugin_name(state.user_name),
         self.agent_datasource.all_plugins(), self.__VERBOSE_MODE
         in state.command)
     action_to_return.origin_command = state.command
     return action_to_return
예제 #3
0
    def select_plugin(self, plugin_to_select, state):
        selected_plugin = self.agent_datasource.select_plugin(
            plugin_to_select, state.user_name)
        if selected_plugin:
            self.stats_tracker.log_activate_skills(state.user_name,
                                                   plugin_to_select)
            plugins_config = self.config_storage.read_config(state.user_name)
            if plugins_config.selected is None:
                plugins_config.selected = [selected_plugin.name]
            else:
                if selected_plugin.name not in plugins_config.selected:
                    plugins_config.selected.append(selected_plugin.name)
            self.config_storage.store_config(plugins_config, state.user_name)

        return create_message_list(
            self.agent_datasource.get_current_plugin_name(state.user_name),
            self.agent_datasource.all_plugins())
예제 #4
0
    def execute(self, state: State) -> Action:
        plugin_to_select = state.command.replace(f'{self.UNSELECT_DIRECTIVE}', '').strip()

        plugin_to_select = extract_quoted_agent_name(plugin_to_select)

        selected = self.agent_datasource.unselect_plugin(plugin_to_select, state.user_name)
        if selected:
            self.stats_tracker.log_deactivate_skills(state.user_name, plugin_to_select)
            plugins_config = self.config_storage.read_config(state.user_name)
            if plugins_config.selected is not None and selected.name in plugins_config.selected:
                plugins_config.selected.remove(selected.name)
            self.config_storage.store_config(plugins_config, state.user_name)

        action_to_return = create_message_list(
            self.agent_datasource.get_current_plugin_name(state.user_name),
            self.agent_datasource.all_plugins()
        )
        action_to_return.origin_command = state.command
        return action_to_return
예제 #5
0
    def execute_post(self, state: State) -> Action:
        plugin_to_select = state.command.replace(f'{self.SELECT_DIRECTIVE}',
                                                 '').strip()
        plugin_to_select = extract_quoted_agent_name(plugin_to_select)

        agent_descriptor = self.agent_datasource.get_agent_descriptor(
            plugin_to_select)

        if not agent_descriptor:
            return Action()

        if state.result_code == '0':
            self.agent_datasource.mark_plugins_as_installed(
                plugin_to_select, state.user_name)
            return self.select_plugin(plugin_to_select, state)

        return create_message_list(
            self.agent_datasource.get_current_plugin_name(state.user_name),
            self.agent_datasource.all_plugins())