lib.rsannotatedlib.rssource46 lines · 1.9 KB · raw
1//! The ports of Whiskers' backend, in Whiskers' own words. See README.md.
2//!
3//! Nothing here names a hosting product. Cloudflare, celld and the native binary are *adapters* of
4//! these traits, written elsewhere; the traits are owned by the core of Whiskers and a new host is
5//! a new implementation, never an edit here.
6//!
7//! Everything in this crate builds for `wasm32-unknown-unknown`: no files, no sockets, no threads and
8//! no system clock. Time is a [`Clock`] port and I/O is a port.
9
10#![forbid(unsafe_code)]
11
12mod allowance;
13mod capability;
14mod embed;
15mod error;
16mod exec;
17mod hub;
18mod journal;
19mod judge;
20mod pictures;
21mod secrets;
22mod think;
23mod time;
24mod timing;
25mod voice;
26
27pub use allowance::{
28    Allowance, ReserveError, Settlement, ThinkingLedger, ThinkingRoom, ThinkingUsage, Tokens, VoiceDay, VoiceReservation, VoiceSpend, tokens_in,
29};
30pub use capability::{
31    Backend, HasAllowance, HasChat, HasClock, HasEmbedder, HasHousehold, HasJournal, HasJudge, HasMemory, HasPictures, HasThinker, HasVoice,
32};
33pub use embed::{BatchError, EMBED_CHARS_MAX, EMBED_TEXTS_MAX, EmbedBatch, EmbedError, Embedder};
34pub use error::{Diagnostic, StoreError};
35pub use exec::run_ready;
36pub use hub::{ChatHub, Hub, HouseholdHub, MemoryHub, Merged};
37pub use journal::{
38    Appended, DEVICE_NAME_MAX, DeviceCursor, DeviceName, EntryLine, Journal, LogCursor, NotADeviceName, NotAnEntry, PULL_LIMIT, Page, StoredLine,
39};
40pub use judge::{Judge, JudgeError};
41pub use pictures::{PictureShelf, Put, SafePictureId, UnsafePictureId};
42pub use secrets::{Lookup, SecretName, SecretValue, Secrets};
43pub use think::{ModelName, NoModelNamed, REPLY_TOKENS_MAX, Reply, ThinkError, ThinkRefusal, ThinkRequest, Thinker};
44pub use time::{Clock, Day, ManualClock, Millis};
45pub use voice::{Audio, CreditsError, LineError, SPEECH_LINE_MAX, SpeakError, SpeechLine, Voice, VoiceCredits};
46pub use timing::{AudioMs, LineTiming, Span, TimedAudio, TimingError};