Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
"""Reasoning summary-part boundary repair (agent/reasoning_summaries.py)."""
|
||||
|
||||
from agent.reasoning_summaries import separate_glued_reasoning_blocks
|
||||
|
||||
|
||||
def _stream(deltas):
|
||||
"""Accumulate *deltas* the way the chat-completions stream loop does."""
|
||||
parts: list[str] = []
|
||||
for delta in deltas:
|
||||
parts.append(
|
||||
separate_glued_reasoning_blocks(parts[-1] if parts else "", delta)
|
||||
)
|
||||
return "".join(parts)
|
||||
|
||||
|
||||
def test_heading_only_parts_do_not_glue_into_one_run():
|
||||
# The shape observed live on Nous Portal's openai/gpt-5.6-sol: each delta
|
||||
# is a bare heading, so consecutive parts produce a `****` run.
|
||||
text = _stream(
|
||||
[
|
||||
"**Investigating likely culprit PRs**",
|
||||
"**Inspecting message schema and tool_calls content**",
|
||||
"**Analyzing interrupted tool call impact**",
|
||||
]
|
||||
)
|
||||
|
||||
assert "****" not in text
|
||||
assert text.splitlines() == [
|
||||
"**Investigating likely culprit PRs**",
|
||||
"",
|
||||
"**Inspecting message schema and tool_calls content**",
|
||||
"",
|
||||
"**Analyzing interrupted tool call impact**",
|
||||
]
|
||||
|
||||
|
||||
def test_prose_body_does_not_glue_onto_the_next_heading():
|
||||
# vercel/ai#6742's repro: a part ends in prose and the next heading butts
|
||||
# straight onto it, with no `****` run to key off.
|
||||
text = _stream(
|
||||
[
|
||||
"**Simulating a greeting stream**\n\nIt feels like a streaming interaction!",
|
||||
"**Simulating a greeting stream**\n\nI want to meet the request.",
|
||||
]
|
||||
)
|
||||
|
||||
assert "interaction!**" not in text
|
||||
assert "interaction!\n\n**Simulating" in text
|
||||
|
||||
|
||||
def test_token_streamed_reasoning_is_untouched():
|
||||
deltas = ["Looking at", " the session", " logs, I see", " one bold word."]
|
||||
|
||||
assert _stream(deltas) == "".join(deltas)
|
||||
|
||||
|
||||
def test_bold_word_mid_sentence_is_not_a_boundary():
|
||||
# Emphasis inside token-streamed prose arrives after a space.
|
||||
assert separate_glued_reasoning_blocks("I see the ", "**signature**") == "**signature**"
|
||||
|
||||
|
||||
def test_unclosed_emphasis_fragment_is_not_a_boundary():
|
||||
# A token stream splitting emphasis across deltas opens but never closes.
|
||||
assert separate_glued_reasoning_blocks("weighing", "**") == "**"
|
||||
|
||||
|
||||
def test_boundary_needs_a_bold_opener():
|
||||
assert separate_glued_reasoning_blocks("**Closing**", "plain head") == "plain head"
|
||||
|
||||
|
||||
def test_empty_operands_pass_through():
|
||||
assert separate_glued_reasoning_blocks("", "**first**") == "**first**"
|
||||
assert separate_glued_reasoning_blocks("**first**", "") == ""
|
||||
Reference in New Issue
Block a user