terminate action when CUA verification code is not received (#2196)
This commit is contained in:
@@ -4,7 +4,7 @@ import structlog
|
|||||||
from openai.types.responses.response import Response as OpenAIResponse
|
from openai.types.responses.response import Response as OpenAIResponse
|
||||||
from pydantic import ValidationError
|
from pydantic import ValidationError
|
||||||
|
|
||||||
from skyvern.exceptions import UnsupportedActionType
|
from skyvern.exceptions import NoTOTPVerificationCodeFound, UnsupportedActionType
|
||||||
from skyvern.forge import app
|
from skyvern.forge import app
|
||||||
from skyvern.forge.prompts import prompt_engine
|
from skyvern.forge.prompts import prompt_engine
|
||||||
from skyvern.forge.sdk.models import Step
|
from skyvern.forge.sdk.models import Step
|
||||||
@@ -412,19 +412,28 @@ async def parse_cua_actions(
|
|||||||
totp_verification_url=task.totp_verification_url,
|
totp_verification_url=task.totp_verification_url,
|
||||||
totp_identifier=task.totp_identifier,
|
totp_identifier=task.totp_identifier,
|
||||||
)
|
)
|
||||||
verification_code = await poll_verification_code(
|
try:
|
||||||
task.task_id,
|
verification_code = await poll_verification_code(
|
||||||
task.organization_id,
|
task.task_id,
|
||||||
workflow_run_id=task.workflow_run_id,
|
task.organization_id,
|
||||||
totp_verification_url=task.totp_verification_url,
|
workflow_run_id=task.workflow_run_id,
|
||||||
totp_identifier=task.totp_identifier,
|
totp_verification_url=task.totp_verification_url,
|
||||||
)
|
totp_identifier=task.totp_identifier,
|
||||||
reasoning = reasoning or f"Received verification code: {verification_code}"
|
)
|
||||||
action = VerificationCodeAction(
|
reasoning = reasoning or f"Received verification code: {verification_code}"
|
||||||
verification_code=verification_code,
|
action = VerificationCodeAction(
|
||||||
reasoning=reasoning,
|
verification_code=verification_code,
|
||||||
intention=reasoning,
|
reasoning=reasoning,
|
||||||
)
|
intention=reasoning,
|
||||||
|
)
|
||||||
|
except NoTOTPVerificationCodeFound:
|
||||||
|
reasoning_suffix = "No verification code found"
|
||||||
|
reasoning = f"{reasoning}. {reasoning_suffix}" if reasoning else reasoning_suffix
|
||||||
|
action = TerminateAction(
|
||||||
|
reasoning=reasoning,
|
||||||
|
intention=reasoning,
|
||||||
|
)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
action = TerminateAction(
|
action = TerminateAction(
|
||||||
reasoning=reasoning,
|
reasoning=reasoning,
|
||||||
|
|||||||
Reference in New Issue
Block a user