New makepad-converse crate: SpeechOutput/Playback moved out of gamemaker (mix_into for custom audio callbacks, install_audio_output convenience); TranscriptFilter trait + PassthroughFilter + FilterWorker thread (filters built on the worker via factory since LlamaSession is not Send); ConversePipeline wiring filter -> makepad_ai agent backend -> speech with a ConverseAction stream, llm leg pluggable (claude-code / acp / openai-compatible base_url for local servers). QwenFilter behind the local-llm feature: chatml prompt, non-thinking prefill, greedy, SEND:/SKIP: line protocol, fail-open parse; filter-repl bin for interactive testing. Gamemaker's speech leg now uses the crate; its agent plumbing stays local. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
21 lines
697 B
TOML
21 lines
697 B
TOML
[package]
|
|
name = "makepad-converse"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "Conversational voice pipeline for Makepad apps: streamed agent replies spoken as they arrive, with a pluggable transcript filter between speech-to-text and the backend LLM."
|
|
license = "MIT OR Apache-2.0"
|
|
|
|
[features]
|
|
# The local filtering LLM (QwenFilter) on makepad-llama; heavy, so opt-in.
|
|
local-llm = ["dep:makepad-llama"]
|
|
|
|
[dependencies]
|
|
makepad-widgets = { path = "../../widgets" }
|
|
makepad-ai = { path = "../makepad_ai" }
|
|
makepad-tts = { path = "../tts" }
|
|
makepad-llama = { path = "../llama", optional = true }
|
|
|
|
[[bin]]
|
|
name = "filter-repl"
|
|
path = "src/bin/filter_repl.rs"
|
|
required-features = ["local-llm"]
|