// swift-tools-version: 6.2 import PackageDescription let package = Package( name: "OpenClawKit", platforms: [ .iOS(.v18), .macOS(.v15), .watchOS(.v11), ], products: [ .library(name: "OpenClawProtocol", targets: ["OpenClawProtocol"]), .library(name: "OpenClawKit", targets: ["OpenClawKit"]), .library(name: "OpenClawChatUI", targets: ["OpenClawChatUI"]), ], traits: [ .trait(name: "Talk", description: "ElevenLabs cloud TTS / talk support"), .default(enabledTraits: ["Talk"]), ], dependencies: [ .package(url: "https://github.com/steipete/ElevenLabsKit", exact: "0.1.1"), .package(url: "https://github.com/mgriebling/SwiftMath", exact: "1.7.3"), .package(url: "https://github.com/swiftlang/swift-markdown", exact: "0.8.0"), ], targets: [ .target( name: "OpenClawProtocol", path: "Sources/OpenClawProtocol", swiftSettings: [ .enableUpcomingFeature("StrictConcurrency"), ]), .target( name: "OpenClawKit", dependencies: [ "OpenClawProtocol", .product( name: "ElevenLabsKit", package: "ElevenLabsKit", condition: .when(platforms: [.iOS, .macOS], traits: ["Talk"])), ], path: "Sources/OpenClawKit", resources: [ .process("Resources"), ], swiftSettings: [ .enableUpcomingFeature("StrictConcurrency"), ]), .target( name: "OpenClawChatUI", dependencies: [ "OpenClawKit", .product(name: "Markdown", package: "swift-markdown"), .product(name: "SwiftMath", package: "SwiftMath"), ], path: "Sources/OpenClawChatUI", swiftSettings: [ .enableUpcomingFeature("StrictConcurrency"), ]), .testTarget( name: "OpenClawKitTests", dependencies: ["OpenClawKit", "OpenClawChatUI"], path: "Tests/OpenClawKitTests", swiftSettings: [ .enableUpcomingFeature("StrictConcurrency"), .enableExperimentalFeature("SwiftTesting"), ]), ])