From cdb0b244ff7bb68ded234936736f4c4070f45fb5 Mon Sep 17 00:00:00 2001 From: Arnav Brahmasandra Date: Thu, 7 May 2026 16:24:28 -0700 Subject: [PATCH] Support prompt messages in prompt input API --- examples/human_in_the_loop.py | 4 +++- packages/narada-core/src/narada_core/actions/models.py | 1 + packages/narada-pyodide/src/narada/window.py | 5 ++++- packages/narada/src/narada/window.py | 5 ++++- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/examples/human_in_the_loop.py b/examples/human_in_the_loop.py index 5575f30..96684cb 100644 --- a/examples/human_in_the_loop.py +++ b/examples/human_in_the_loop.py @@ -1,8 +1,9 @@ import asyncio -from narada import Agent, Narada, UserAbortedError from narada_core.actions.models import PromptForUserInputVariable +from narada import Agent, Narada, UserAbortedError + async def main() -> None: async with Narada() as narada: @@ -27,6 +28,7 @@ async def main() -> None: enum_values=["pricing", "customers", "recent news"], ), ], + prompt_message="Tell us which company to research and what to focus on.", ) company = values["company"] diff --git a/packages/narada-core/src/narada_core/actions/models.py b/packages/narada-core/src/narada_core/actions/models.py index 25b5cbc..89b72c6 100644 --- a/packages/narada-core/src/narada_core/actions/models.py +++ b/packages/narada-core/src/narada_core/actions/models.py @@ -401,6 +401,7 @@ class PromptForUserInputRequest(BaseModel): name: Literal["prompt_for_user_input"] = "prompt_for_user_input" step_id: str variables: list[PromptForUserInputVariable] + prompt_message: str | None = None class PromptForUserInputResponse(BaseModel): diff --git a/packages/narada-pyodide/src/narada/window.py b/packages/narada-pyodide/src/narada/window.py index 4c6809c..4ad5e42 100644 --- a/packages/narada-pyodide/src/narada/window.py +++ b/packages/narada-pyodide/src/narada/window.py @@ -799,11 +799,14 @@ async def prompt_for_user_input( *, step_id: str, variables: list[PromptForUserInputVariable], + prompt_message: str | None = None, timeout: int | None = None, ) -> dict[str, Any]: """Prompts the user for one or more input values in the extension UI.""" result = await self._run_extension_action( - PromptForUserInputRequest(step_id=step_id, variables=variables), + PromptForUserInputRequest( + step_id=step_id, prompt_message=prompt_message, variables=variables + ), PromptForUserInputResponse, timeout=timeout, ) diff --git a/packages/narada/src/narada/window.py b/packages/narada/src/narada/window.py index c577951..49d9465 100644 --- a/packages/narada/src/narada/window.py +++ b/packages/narada/src/narada/window.py @@ -769,11 +769,14 @@ async def prompt_for_user_input( *, step_id: str, variables: list[PromptForUserInputVariable], + prompt_message: str | None = None, timeout: int | None = None, ) -> dict[str, Any]: """Prompts the user for one or more input values in the extension UI.""" result = await self._run_extension_action( - PromptForUserInputRequest(step_id=step_id, variables=variables), + PromptForUserInputRequest( + step_id=step_id, prompt_message=prompt_message, variables=variables + ), PromptForUserInputResponse, timeout=timeout, )