feat(injects,conversations): configurable inject header, urgent inject marks the turn it cut
This commit is contained in:
@@ -274,10 +274,25 @@ async def test_urgent_interrupts_and_goes_first(world: World) -> None:
|
||||
]
|
||||
assert client.prompts[0] == "first"
|
||||
assert client.prompts[1].startswith("[инжект: крон")
|
||||
assert "прервал предыдущий тёрн" in client.prompts[1]
|
||||
assert client.prompts[1].endswith("ALERT")
|
||||
assert client.prompts[2] == "second"
|
||||
|
||||
|
||||
async def test_inject_header_is_configurable(world: World) -> None:
|
||||
from beaver_gateway.core.conversations import ConversationTexts
|
||||
|
||||
world.conversations._texts = ConversationTexts( # noqa: SLF001
|
||||
inject_header=lambda ctx: (
|
||||
f"[от {ctx.origin}, {ctx.priority}, cut={ctx.interrupted_turn}]"
|
||||
)
|
||||
)
|
||||
conv = await world.conversations.create(kind="master", agent="a", origin="test")
|
||||
await world.conversations.inject(conv, "hi", urgency="urgent", origin="panel")
|
||||
await world.settle(conv, 1)
|
||||
assert ScriptedClient.instances[0].prompts[0] == "[от panel, urgent, cut=False]\nhi"
|
||||
|
||||
|
||||
async def test_normal_injects_ride_with_the_next_user_message(world: World) -> None:
|
||||
conv = await world.conversations.create(kind="master", agent="a", origin="test")
|
||||
await world.conversations.inject(
|
||||
|
||||
Reference in New Issue
Block a user