svir 0.1.6

A small, composable SDK for talking to large language models
Documentation
{
  "description": "Different text under reasoning_content and reasoning in one delta is two carriers, each kept under its own source (P5, D43).",
  "chunks": [
    "data: {\"id\":\"c\",\"model\":\"m\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"reasoning_content\":\"a\",\"reasoning\":\"b\"},\"finish_reason\":null}]}\n\n",
    "data: {\"id\":\"c\",\"model\":\"m\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"answer\"},\"finish_reason\":null}]}\n\n",
    "data: {\"id\":\"c\",\"model\":\"m\",\"choices\":[{\"index\":0,\"delta\":{},\"finish_reason\":\"stop\"}]}\n\n",
    "data: [DONE]\n\n"
  ],
  "strides": [1, 3, 8192],
  "expect": {
    "strict": {
      "completion": {
        "finish": "stop",
        "text": "answer",
        "reasoning": [
          {"source": "reasoning_content", "text": "a"},
          {"source": "reasoning", "text": "b"}
        ]
      }
    },
    "lenient": "same"
  }
}