v0.5.0
Major rework of the system prompt system, JSON hooks, multi-result tool support, and message origin tracking.
Breaking
chat.system(content)→chat.system().child('general').prompt('id').setContent(content)ChatJSON.systemMessage→ChatJSON.systemPromptChatMessage.originis now required (enum: User/Model/Hook/Tool/System)ChatInterface.addAll()removed (method still exists onChatclass)Chat.clear()now clears message hook listeners by default (was: hooks survived)ChunkStream.clear()now clears chunk listeners by default (was: listeners survived)Tool.execute()returnsToolResult[]ToolSuite.executeTool()returns arrays, never throws (returns error result)ToolPackageis abstract class (was interface);dispose()removedChatService.needsResend()removed; usesetNeedsResend(), send() loops automaticallyMessageQueue.system()and.addAll()removed
Features
- Composable system prompts via
PromptContainer/Prompttree ChatMessageOriginon every message;HookMessageWriterinterfaceResultBuilderfor multi-result tool chainsJsonHookRegistry: load.jsonhooks from a directory (chat/stream/tool targets)ToolPackage.tutorial()auto-populates the system promptChatService.init()(eager loading),.clear()(full reset),.resetTutorials()ChunkStream.summary()/.clearSummaries()clear(retainHooks?)on Chat, ChunkStream, ToolSuitesystemPromptDirwith auto-created default.mdfiles on first accessLLM_CHAT_HOOKS_DIRandLLM_CHAT_SYSTEM_PROMPT_DIRenv varsenvOptionalString()helper for optional env var config- Coverage thresholds raised to 100%
Full Changelog: v0.4.0...v0.5.0