Prewire · case file · public copy of the record
FILE P367 PREWIRE receipts archive the live wire
CATCH #2267 DETECTED OCT 23, 2026 13:21 UTC
THE CATCHscore 10/10
EXHIBIT 2267 · FLASH
Oct 23, 2026 13:21 UTC pypi anthropic
Anthropic's latest SDK v2.2.0 hints at new 'claude-opus-4-8' and 'claude-haiku-4-5' model IDs, alongside 'beta.messages.thread()' and 'beta.messages.tool_runner()' features, and new analytics endpoints.

READY TO POST:

anthropic just dropped v2.2.0 of their python sdk and it's got some juicy hints: new model ids like 'claude-opus-4-8' and 'claude-haiku-4-5' surfaced. maybe some new models are on the way?

looks like anthropic is gearing up for new messaging features with 'beta.messages.thread()' and 'beta.messages.tool_runner()' showing up in their latest sdk. also, new analytics endpoints are in there too!

EVIDENCE — the receipts
anthropic 2.1.0 -> 2.2.0: +406 strings, -691 strings, 145 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] (14)
  + py
    client = Anthropic(middleware=[BetaRefusalFallbackMiddleware([{"model": "claude-opus-4-8"}])])

    state = BetaFallbackState()
    with state:
        message = client.beta.messages.create(**params)
  + /v1/organizations/analytics/cost?beta=true
  + /v1/organizations/analytics/usage?beta=true
  + Message threads are not available on this client; use `client.beta.messages.create()` with the full `messages` instead
  + Start a thread on `client` with the arguments of `client.beta.messages.thread()`. Sends nothing.
  + The arguments of a `client.beta.messages.thread()` call for the whole conversation, in a new dict.
  + beta.messages.thread()
  + beta.messages.tool_runner()
  + client.beta.messages.thread()
  + client.beta.messages.thread(...)
  + client.beta.messages.tool_runner()
  + py
    with client.beta.messages.stream(...) as stream:
        for chunk in stream:
            ...
  + py
client.beta.environments.work.worker(environment_id=..., environment_key=...)
  + with the threads beta appended to a caller-set

[endpoint] (6)
  + /v1/organizations/analytics/cost?beta=true
  + /v1/organizations/analytics/usage?beta=true
  + /v1/organizations/analytics/cost
  + /v1/organizations/analytics/usage
  + GET /v1/organizations/analytics/cost
  + GET /v1/organizations/analytics/usage

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

    state =

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

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