summaryrefslogtreecommitdiff
path: root/server/continuedev/plugins/policies/headless.py
blob: 9fa0f3f26213a7ed0a6197540be816e65b6848ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from ...core.config import ContinueConfig
from ...core.main import History, Policy, Step
from ...core.observation import TextObservation
from ...core.steps import ShellCommandsStep
from ...plugins.steps.on_traceback import DefaultOnTracebackStep


class HeadlessPolicy(Policy):
    command: str

    def next(self, config: ContinueConfig, history: History) -> Step:
        if history.get_current() is None:
            return ShellCommandsStep(cmds=[self.command])
        observation = history.get_current().observation
        if isinstance(observation, TextObservation):
            return DefaultOnTracebackStep(output=observation.text)

        return None