kletso_core 0.2.5
kletso_core: ^0.2.5 copied to clipboard
Kletso client for Dart and Flutter: sessions, realtime chat with typed surfaces, actions, context, triggers, voice and avatar state. Bring your own model key.
0.2.5 — 2026-10-14 #
- Frames sent right after
attach()/startConversation()are held until the server'sreadyfor that conversation; fixesnot attached to a conversationerrors and lost first messages.
0.2.4 — 2026-10-13 #
clockconstraint relaxed to^1.1.1.^1.1.3(released 2026-08-28) could not be solved on Flutter 3.38 and older, whoseflutter_testpinsclock 1.1.2, so any app withflutter_testfailed version solving. Onlyclock.now()is used. No code changes.
0.2.3 — 2026-10-09 #
KletsoMessage.pending: loaders for surfaces still streaming (ui.pending), replaced by the matchingui.render(same tool call, else same surface id, else the oldest) and cleared onmessage.completed.
0.2.2 — 2026-10-09 #
- A dropped socket no longer surfaces as a
KletsoNetworkException("connection lost …")error event; the loop reconnects and replays from the lastseqas before, and hosts seeKletsoConnectionChanged(reconnecting → open). Errors are still reported when the reconnect itself fails. (On Android, dart:io reports any socket-level failure, such as the OS aborting an idle socket after backgrounding, as close code 1002.) KletsoConnectionChanged.reasonandKletsoConnection.stateReasoncarry the close info or error behind a state change.
0.2.1 — 2026-10-07 #
- Shorter pubspec description (pub.dev conventions). No code changes.
0.2.0 — 2026-10-07 #
- Voice:
KletsoClient.voice(KletsoVoiceController: start/stop/commit, push-to-talk, state, captions, interruption),KletsoAudioIo(plug a microphone/speaker implementation such aspackage:kletso_voice), binary audio over the WebSocket transport and connection (supportsBinary,audiostream,sendAudio),KletsoVoiceInfoin the session bootstrap (voiceEnabled,pushToTalk). - Avatar: bootstrap
avatarblock parsed for the Flutter SDK (style, colours,imageUrl, per-moodimages, moods, rules, agent-picked moods);avatar.moodevents relayed. - Fake backend: voice turns (
onVoiceStart/onVoiceStop/onAudioIn/onVoiceCommit/onVoiceText), synthetic audio tones, moods,fakeAvatar. - Depends on
kletso_ui_schema ^0.2.0.
0.1.0 — 2026-09-29 #
- Proactive notifications:
KletsoClient.notifications,KletsoNotification,registerPushToken/unregisterPushToken(KletsoPushToken,KletsoApi+ HTTPPUT/DELETE /sessions/current/push-token),handlePushPayloadwith dedupe (D57, D59). - Fake:
notify(),sendPush(),pushTokens; trigger rulesgeofence_entered,payment_failed,order_shipped;_Reply.notification. - API review (D56): transports renamed
KletsoWebSocketTransport/KletsoSseTransport/KletsoAutoTransport;KletsoSseParser.retry/lastEventIdread-only. ui.patchreducer support; host-bound surfaces.- Initial client:
KletsoConfig,KletsoClient+Kletso.init()/instance, sessions (authenticate,identifyAnonymous, refresh,logout), conversations,send(KletsoOutbound), context, triggers, typed exceptions,KletsoValueListenableobservables and a broadcastStream<KletsoEvent>. KletsoConnection: first-frame auth via the transport, heartbeat, full-jitter backoff,seqreplay with id dedupe, bounded outbound queue, 4401/4403 handling, pause/resume.- Transports:
KletsoWebSocketTransport(package:web_socket),KletsoSseTransport(package:httpstreaming + REST upstream),KletsoAutoTransportfallback. KletsoConversationStatereducer (deltas, tool calls, surfaces, pending echo).package:kletso_core/fake.dart:KletsoFakeBackend+KletsoFakeScenario.KletsoConfig.allowServerCommands; fake replies withapp.commandfor "open trail runner";KletsoFakeBackend.contextOf.- Fake backend: trigger rules (cart_abandoned, checkout), session-level delivery for unattached sockets,
sampleMediascenario flag, media/trip replies. KletsoComponentSpec(custom component declaration for the sync manifest).