• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

dg / ai-access
93%
master: 93%

Build:
Build:
LAST BUILD BRANCH: v1.0.1
DEFAULT BRANCH: master
Repo Added 04 Aug 2026 08:29AM UTC
Files 68
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH v1.0.1
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • master
  • v1.0.0
  • v1.0.1

10 Aug 2026 11:18PM UTC coverage: 93.155%. First build
31492428784

push

github

dg
images: a batch of pictures is an ordinary batch

An image request became an object, one final class per provider, holding the
prompt, the references and the provider's own options. The live call and the
batched one build the very same payload from it, which is the whole reason it
exists; `generateImage()` remains the only way to ask for a picture now and takes
every option the provider has as a named argument, so there is no second, wordier
route to the same thing.

Queueing one is `addImageRequest()` on `OpenAI\Batch` and `Gemini\Batch`. Not
`addImage()`: `Media` is what this library calls input, pictures go into a
conversation that way, so a method of that name will one day mean attaching one,
and the two would read as opposites. And not on the shared `Batch\Batch`
interface either, because Claude cannot draw and should not have to say it can;
extra capability belongs on the concrete class, the same door Claude's own
per-request models would use.

The result needs no new type. `Media` was already a chat part, so a drawn answer
is a `Message` of `Role::Model` whose parts are the pictures, `getResults()` keeps
working untouched, and asking for several is simply several parts in one message.
`Message::getMedia()` is the counterpart of `getText()`.

What may share a job is the provider's rule and only OpenAI has one: it declares a
single endpoint for the whole job, so pictures cannot ride with chats and
generating cannot ride with editing, which `submit()` enforces as one rule over
the urls the requests map to. One model per job holds for both providers, and is
measured rather than read: a mixed-model batch is accepted, then killed whole
during validation with `mismatched_model`, so the second model is refused where it
is added. Gemini has no endpoint rule at all, and a job carrying a text request
and an image request answered both, so the library allows it.

References travel as base64 data URLs in a JSON body rather than as multipart,
which a JSONL l... (continued)

170 of 173 new or added lines in 12 files covered. (98.27%)

2164 of 2323 relevant lines covered (93.16%)

0.93 hits per line

Relevant lines Covered
Build:
Build:
2323 RELEVANT LINES 2164 COVERED LINES
0.93 HITS PER LINE
Source Files on master
  • Tree
  • List 68
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
31492428784 v1.0.1 images: a batch of pictures is an ordinary batch An image request became an object, one final class per provider, holding the prompt, the references and the provider's own options. The live call and the batched one build the very same payload fro... push 11 Aug 2026 12:41PM UTC dg github
93.16
31492215055 v1.0.0 images: a batch of pictures is an ordinary batch An image request became an object, one final class per provider, holding the prompt, the references and the provider's own options. The live call and the batched one build the very same payload fro... push 11 Aug 2026 12:38PM UTC dg github
93.16
31491926354 master images: a batch of pictures is an ordinary batch An image request became an object, one final class per provider, holding the prompt, the references and the provider's own options. The live call and the batched one build the very same payload fro... push 11 Aug 2026 12:35PM UTC dg github
93.16
31435588554 master images: a batch of pictures is an ordinary batch An image request is now an object, exactly as a chat is: createImageRequest() builds it, setOptions() configures it in the provider's own vocabulary, and generateImage() stays as sugar over it. Tha... push 10 Aug 2026 09:49PM UTC dg github
92.74
31430808519 master images: a batch of pictures is an ordinary batch An image request is now an object, exactly as a chat is: createImageRequest() builds it, setOptions() configures it in the provider's own vocabulary, and generateImage() stays as sugar over it. Tha... push 10 Aug 2026 08:48PM UTC dg github
92.77
31355232649 master chat: a stream can be cancelled from the loop, not just from a callback Returning false from the onStream callback already stopped the generation, but a foreach had no way to say the same thing. Breaking out only pauses: the Fiber lives on the Te... push 10 Aug 2026 04:21AM UTC dg github
92.06
31351356924 master readme: the capability matrix covers the generic client, and every row leads somewhere The generic OpenAI-compatible client gets a column of its own. It used to be a sentence underneath, which undersold it, but the mark cannot mean quite the same... push 10 Aug 2026 03:00AM UTC dg github
92.03
31351320745 master readme: the capability matrix covers the generic client, and every row leads somewhere The generic OpenAI-compatible client gets a column of its own. It used to be a sentence underneath, which undersold it, but the mark cannot mean quite the same... push 10 Aug 2026 03:00AM UTC dg github
92.03
31350440048 master x push 10 Aug 2026 02:41AM UTC dg github
92.03
31350383638 master x push 10 Aug 2026 02:39AM UTC dg github
92.03
See All Builds (20)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc