cendor-sdk 1.15.0
Phase-S follow-up — the parity items deferred from 1.14 land, both languages, on the same
cendor-core 1.10 / cendor-tokenguard 1.5 shelf (no new floor).
Added
- Streamed + team
conversation.id(S6):run.stream/run.astreamandrun_agents/run_agents_asyncnow stampResult.conversation_idfrom a keyed session and enter the conversation scope, so a monitor groups multi-turn streamed and multi-agent runs — previously single-agent-blocking only. - Streamed checkpoints (S13):
run.stream/run.astreamacceptcheckpoint=(a path orCheckpointer) — per-turn saves for a single agent, per-turn + per-segment for a team. A finished checkpoint replays a lone terminalRunComplete(no model call, no re-yielded deltas); an unfinished resume continues from the saved messages without re-emitting prior deltas. - Bedrock forced-
toolChoicestructured output (S14): a tool-less Bedrock agent withoutput_typenow forces a synthetic schema-shaped tool (toolConfig.toolChoice), and the provider unwraps its input into the final answer — stronger than the JSON nudge. Gated to tool-less agents (a forced choice can't coexist with real tools on Converse); with tools present it falls back to the nudge (documented).
Changed
- Streamed-run RAG attributed (S11): the four stream generators now prepare messages inside the run scope (collector +
trace+ per-agent budget), so an always-on retriever's embed call is attributed to the run rather than firing before it opened — parity with the blockingrun()(GLR-4). No API change.