Prewire · case file · public copy of the record
FILE P385 PREWIRE receipts archive the live wire
CATCH #2085 DETECTED OCT 15, 2026 20:19 UTC
THE CATCHscore 10/10
EXHIBIT 2085 · FLASH
Oct 15, 2026 20:19 UTC pypi anthropic
Anthropic's 1.15.0 Python package includes references to new models, "claude-opus-4-8" and "claude-haiku-4-5", and introduces beta features for messages and environments.

READY TO POST:

anthropic's latest python package hints at two new models: 'claude-opus-4-8' and 'claude-haiku-4-5'. could opus 4.8 be a stronger successor, and haiku 4.5 a faster, lighter one?

looks like anthropic is rolling out new beta features in their python sdk, including beta messages streams and environment controls. new model ids 'claude-opus-4-8' and 'claude-haiku-4-5' also surfaced.

EVIDENCE — the receipts
anthropic 1.14.0 -> 1.15.0: +132 strings, -626 strings, 55 interesting

[model_id] (2)
  + py
    client = Anthropic(middleware=[BetaRefusalFallbackMiddleware([{"model": "claude-opus-4-8"}])])

    state = BetaFallbackState()
    with state:
        message = client.beta.messages.create(**params)
  + python
with client.messages.stream(
    model="claude-haiku-4-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello!"}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

[feature_flag] (3)
  + py
    client = Anthropic(middleware=[BetaRefusalFallbackMiddleware([{"model": "claude-opus-4-8"}])])

    state = BetaFallbackState()
    with state:
        message = client.beta.messages.create(**params)
  + py
    with client.beta.messages.stream(...) as stream:
        for chunk in stream:
            ...
  + py
client.beta.environments.work.worker(environment_id=..., environment_key=...)

[sentence] (55)
  + py
    client = Anthropic(middleware=[BetaRefusalFallbackMiddleware([{"model": "claude-opus-4-8"}])])

    state = BetaFallbackState()
    with state:
        message = client.beta.messages.create(**params)
  + python
with client.messages.stream(
    model="claude-haiku-4-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello!"}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
  + py
    with client.beta.messages.stream(...) as stream:
        for chunk in stream:
            ...
  + py
client.beta.environments.work.worker(environment_id=..., environment_key=...)
  + ) whose option is unset has the client's own, so it reads none of them either.
"""


class RequestOptions(TypedDict, total=False):
    headers: Headers
    max_retries: int
    timeout: float | Timeout | None
    params: Query
    extra_json: AnyMapping
    idempotency_key: str
    """Deprecated: th
  + , reads none of them, and what the option leaves out has its default. A copy of a clie

caught by the 20-minute sweep · the live wire · all receipts

THE WIRE RECEIPTS ACCESS @VEDOLOS TERMS PRIVACY break the story before it breaks