Skip to content

v0.104.0 — Batch 3: features

Choose a tag to compare

@wishborn wishborn released this 06 Jul 04:47

Nine upstream feature PRs absorbed (upstream prism-php/prism refs):

Anthropic

  • prism-php#998 adaptive thinking (thinking.type: adaptive) + output effort (output_config.effort)
  • prism-php#1003 pause_turn resume loop; refusal resolves gracefully with FinishReason::Refusal
  • prism-php#988 fine-grained tool streaming (eager_input_streaming)

Cross-provider

  • prism-php#1018 provider-agnostic withReasoning() toggle (Anthropic, Gemini, OpenAI, Ollama, OpenRouter, Perplexity)
  • prism-php#951 Batching + Files APIs for Anthropic and OpenAI (Prism::batch(), Prism::files()) — with a fork fix making the Anthropic payload-size guard config-overridable (prism.anthropic.batch.max_payload_bytes) so it is actually testable

New capabilities & providers

  • prism-php#1014 Mistral FIM (fill-in-the-middle) — Prism::fim()
  • prism-php#960 xAI image generation
  • prism-php#978 Google Vertex AI provider (text, structured, streaming, embeddings) — with a fork fix repairing the GOOGLE_APPLICATION_CREDENTIALS fallback (a no-op ternary meant the env path was never used)
  • prism-php#1026 Requesty provider — with fork fixes: removed the duplicate ToolMap parameters key (the prism-php#1004 bug pattern), graceful unknown finish reasons (prism-php#996 convention), and a backfilled test suite (the PR shipped none)

Deferred

  • prism-php#932 (client-executed tools + human-in-the-loop approval) — touches every provider's handlers and predates three batches of drift; needs a dedicated rebase. Tracked separately.

Suite: 1713 passing, PHPStan clean.