A pure Dart package, no SDKs, one interface (LlmClient) over Anthropic's Messages API, OpenAI's chat completions, in each known host's dialect and the local servers' (D45), and OpenAI's Responses API, stateless (D46). A model's turn keeps what its provider wants back with the tools' results: Anthropic's thinking blocks, the Responses API's reasoning items and message phase, Gemini's thought signatures. Failures come by kind, the provider's words cut and without keys. Tested on replies written from the providers' documentation, replayed in pieces of 1, 7 and 4,096 bytes; tool/record_llm.dart records real ones with a key of one's own, which the tests then run on too (D36). FakeLlmClient for the code that uses it. BSD-3-Clause, as halkyon_oidc. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
22 lines
709 B
YAML
22 lines
709 B
YAML
name: halkyon_llm
|
|
description: >-
|
|
Language models' APIs in pure Dart, streamed, over plain HTTP: Anthropic's
|
|
Messages API, OpenAI's chat completions (and every service compatible with
|
|
them) and OpenAI's Responses API, behind one interface of what they share:
|
|
a system prompt and messages, text as it is written, images, and tool calls.
|
|
version: 0.1.0
|
|
# In the Halkyon repository; publishing it to pub.dev is asked first (ADR 0021, D15).
|
|
publish_to: none
|
|
resolution: workspace
|
|
|
|
environment:
|
|
sdk: ^3.13.0
|
|
|
|
dependencies:
|
|
# The requests, aborted when the listener cancels (AbortableRequest, 1.5.0 on).
|
|
http: ^1.6.0
|
|
|
|
dev_dependencies:
|
|
# The recording tool's options.
|
|
args: ^2.7.0
|
|
test: ^1.31.1
|