Files
openclaw/apps/macos-mlx-tts/Package.swift
Vincent Koc 96b1be10f5 feat(macos): keep MLX TTS model resident (#104200)
* test(macos): cover MLX helper packaging

* feat(macos): define framed MLX TTS protocol

* feat(macos): keep MLX TTS model resident

* feat(macos): reuse MLX TTS helper transport

* fix(macos): preserve MLX TTS fallback lifecycle

* chore(swift): lint MLX TTS protocol sources

* fix(macos): keep MLX helper input nonblocking

* test(macos): cover forced MLX helper shutdown

* fix(macos): fall back after MLX memory eviction

* fix(macos): discard canceled MLX audio
2026-07-11 13:45:27 +08:00

48 lines
1.7 KiB
Swift

// swift-tools-version: 6.2
// Isolated MLX TTS helper package. Keep this out of apps/macos/Package.swift so
// normal macOS app tests do not compile the full MLX audio stack.
import PackageDescription
let package = Package(
name: "OpenClawMLXTTS",
platforms: [
.macOS(.v15),
],
products: [
.executable(name: "openclaw-mlx-tts", targets: ["OpenClawMLXTTSHelper"]),
],
dependencies: [
.package(url: "https://github.com/Blaizzy/mlx-audio-swift", revision: "fc4fe22dc41c053062e647a4e3db9142193670d2"),
.package(path: "../shared/OpenClawMLXTTSProtocol"),
],
targets: [
.target(
name: "OpenClawMLXTTSRuntime",
dependencies: [
.product(name: "MLXAudioTTS", package: "mlx-audio-swift"),
.product(name: "OpenClawMLXTTSProtocol", package: "OpenClawMLXTTSProtocol"),
],
swiftSettings: [
.enableUpcomingFeature("StrictConcurrency"),
]),
.executableTarget(
name: "OpenClawMLXTTSHelper",
dependencies: [
"OpenClawMLXTTSRuntime",
.product(name: "OpenClawMLXTTSProtocol", package: "OpenClawMLXTTSProtocol"),
],
swiftSettings: [
.enableUpcomingFeature("StrictConcurrency"),
]),
.testTarget(
name: "OpenClawMLXTTSRuntimeTests",
dependencies: [
"OpenClawMLXTTSRuntime",
.product(name: "OpenClawMLXTTSProtocol", package: "OpenClawMLXTTSProtocol"),
],
swiftSettings: [
.enableUpcomingFeature("StrictConcurrency"),
]),
])