summaryrefslogtreecommitdiff
path: root/server/continuedev/plugins/recipes/TemplateRecipe/main.py
blob: 01ae364d67e7b9e111a082d14b95d98d760558cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from typing import Coroutine

from ....core.main import Observation, Step
from ....core.sdk import ContinueSDK, Models


class TemplateRecipe(Step):
    """
    A simple recipe that appends a print statement to the currently open file.
    Use this as a template to create your own!
    """

    # Parameters for the recipe
    name: str

    # A title for the recipe, to be displayed in the GUI
    title = "Template Recipe"

    # A description of what the recipe accomplished, to be displayed in the GUI
    async def describe(self, models: Models) -> Coroutine[str, None, None]:
        return f"Appended a statement to print `Hello, {self.name}!` at the end of the file."

    # The code executed when the recipe is run
    async def run(self, sdk: ContinueSDK) -> Coroutine[Observation, None, None]:
        visible_files = await sdk.ide.getVisibleFiles()
        await sdk.edit_file(
            filename=visible_files[0],
            prompt=f"Append a statement to print `Hello, {self.name}!` at the end of the file.",
        )