// swift-tools-version: 6.0 import PackageDescription /// `mana-swift-llm` — Swift-Package mit lokalen LLM-Backends für alle /// nativen mana-e.V.-Apps (FoundationModels + Gemma 4 via MLX). /// /// Zwei Library-Products: /// /// - **ManaLLM**: Backend-Abstraktion + Router. Apps importieren /// dieses Modul für `ManaLLM.summarize(...)` oder direkte Backend- /// Zugriffe. Bringt MLX-Swift-LM + swift-transformers als /// Dependencies mit. /// /// - **ManaLLMShared**: App-Group-Container-Helper für gemeinsamen /// HuggingFace-Cache (`group.ev.mana.models`). Apps nutzen das, /// um Modelle einmal zu laden und über alle teilnehmenden Apps /// hinweg per mmap zu lesen. Kein MLX-Dep — schmale Tool-Lib. /// /// SOT-Doku: `mana/docs/MANA_LLM.md`. Plattform-Kontext: /// `mana/docs/MANA_SWIFT.md`. Bewusst eigenes Repo (nicht in /// mana-swift-core), weil die MLX-Swift-Toolchain ~30 MB schwer ist /// und ManaCore lean bleiben soll (Architektur-Invariante). let package = Package( name: "mana-swift-llm", platforms: [ .iOS(.v18), .macOS(.v15), ], products: [ .library(name: "ManaLLM", targets: ["ManaLLM"]), .library(name: "ManaLLMShared", targets: ["ManaLLMShared"]), ], dependencies: [ .package(url: "https://github.com/ml-explore/mlx-swift-lm", branch: "main"), .package(url: "https://github.com/huggingface/swift-huggingface", from: "0.9.0"), .package(url: "https://github.com/huggingface/swift-transformers", from: "1.3.0"), ], targets: [ .target( name: "ManaLLM", dependencies: [ "ManaLLMShared", .product(name: "MLXLLM", package: "mlx-swift-lm"), .product(name: "MLXLMCommon", package: "mlx-swift-lm"), .product(name: "MLXHuggingFace", package: "mlx-swift-lm"), .product(name: "HuggingFace", package: "swift-huggingface"), .product(name: "Tokenizers", package: "swift-transformers"), ] ), .target( name: "ManaLLMShared", dependencies: [] ), .testTarget( name: "ManaLLMTests", dependencies: ["ManaLLM"] ), ] )