chat_pilot_kit_dart 1.0.0-beta.6 copy "chat_pilot_kit_dart: ^1.0.0-beta.6" to clipboard
chat_pilot_kit_dart: ^1.0.0-beta.6 copied to clipboard

Headless chat SDK for AI-powered conversation apps. Pure Dart, no Flutter dependency. Supports streaming, plugins, and multiple transport layers.

chat_pilot_kit_dart #

Headless chat SDK for AI-powered conversation apps.

Pure Dart, no Flutter dependency. Supports streaming, plugins, and multiple transport layers.

1.0.0-beta.6 #

Fixed #

  • Fixed history re-push deduplication: when a WebSocket message arrives for a conversation already loaded from history, the controller now prioritizes data.queryId to look up an existing ConversationBean before creating a new one. Previously, only _currentQueryId (set during query()) was checked, causing re-pushed WS messages to create a duplicate conversation bubble instead of merging into the existing one.

1.0.0-beta.5 #

Fixed #

  • Fixed metadata propagation: nodeData passed to AgentMessageData now correctly propagates to ConversationNode.metadata in all message extensions (MarkdownExtension, TextExtension, ThinkingBlockExtension). Previously, extensions were only passing content but not metadata during node creation and replacement.

1.0.0-beta.4 #

Fixed #

  • Fixed queryId storage: ConversationBean now uses _currentQueryId as its id instead of generating a random UUID. This ensures conversation.id correctly reflects the query identifier, enabling proper query tracking and correlation.

1.0.0-beta.3 #

Fixed #

  • Fixed ChatPilotKitController.queryWithAttachments() to call _agentService.queryWithAttachments() directly instead of delegating through _runQuery(), ensuring AgentService overrides are properly invoked.

1.0.0-beta.2 #

Align with the TypeScript core SDK (@bdky/chat-pilot-kit).

Added #

  • BaseAgentService.queryWithAttachments() — convenience method for subclasses to override for specialized attachment handling. Delegates to query() by default.
  • AgentTargetNode type (byId / byMatcher) for precise node targeting.
  • AgentMessageData.targetNode field — controllers now route replace/remove/append to the matched node across all conversations, not just the latest of same type.
  • ConversationNode.emitInteraction(type, data) and sendCommand(type, args) — bidirectional node↔app communication.
  • NodeInteractionPayload and NodeCommandPayload payload classes.
  • NodeInteractionEvent — controller auto-forwards node interactions to the event bus.
  • ErrorSeverity enum (low/medium/high/critical) and ChatPilotKitError.severity / metadata fields.
  • ErrorCategory now includes timeout, validation, configuration, internal.
  • ErrorSource now includes upload, extension, controller, conversation.
  • MessageExtensionConfig.addOptions() — extension-scoped runtime options (MessageExtensionInstance.options).
  • MessageExtensionConfig.addNodeView() — platform-specific NodeView factory (used by upstream UI packages).
  • ConversationService.registerExtension() / unregisterExtension() — runtime extension mutation.
  • ChatPilotKitController.queryWithAttachments(text, attachments, {options}) — structured attachment input.
  • ChatPilotKitController.getOptions() — retrieve resolved runtime options.
  • AttachmentInput and QueryOptions structured types (replaces ad-hoc List<String>? fileUrls).
  • ChatPilotKitOptions.sessionTimeout, ChatPilotKitOptions.enableDebugMode.
  • Event payloads now carry bean / node references: ConversationAddEvent.bean, ConversationChangeEvent.bean+nodes, NodeAddEvent.node, NodeUpdateEvent.node.

Changed #

  • BaseAgentService.query signature: query(text, {attachments, options}). The old [List<String>? fileUrls] form is removed.
  • ChatPilotKitController.clearConversations() renamed to clear(). Old name is retained as a deprecated alias.
  • ConversationService.clearConversations() renamed to clear(). Old name is retained as a deprecated alias.
  • AgentMessageData migrated off freezed to support the runtime-only targetNode field (matcher functions are not JSON-serializable). Public construction / copyWith / toJson / fromJson remain compatible.
  • ConversationNodeSnapshot.fromJson now accepts dynamic content (fixes round-trip for String-content nodes like Text).
  • ChatPilotKitController.importConversations now supports position: 'replace' (clears before import).

Fixed #

  • Controller now subscribes to per-node onInteraction streams and forwards to the controller event bus; interaction listeners are properly cancelled on node removal / clear / dispose.
  • Session expiry via sessionTimeout correctly regenerates sessionId on the next query.

1.0.0-beta.1 #

  • Initial beta release.
0
likes
150
points
501
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Headless chat SDK for AI-powered conversation apps. Pure Dart, no Flutter dependency. Supports streaming, plugins, and multiple transport layers.

Homepage
Repository (GitHub)

Topics

#chat #ai #sdk #streaming

License

MIT (license)

Dependencies

freezed_annotation, json_annotation, meta, uuid

More

Packages that depend on chat_pilot_kit_dart