52aa99ec8e
- Resolve Package.swift add/add: one manifest, single AIFabric target (Sources/AI compiled once; no duplicate-symbol risk) + DSKit/AppFeature/DSApp + AITests + DSKitTests, AIFabric library product kept. - import AI -> import AIFabric across AppFeature + RouterFallbackTests (S2 renamed module). - AppModel.askMeta qualified DSKit.AskResponse (AIFabric also defines an AskResponse for RemoteDS). swift build + swift test green (71 tests: S2 AITests + S3 DSKitTests). Frozen AIProvider interface intact. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
55 lines
1.8 KiB
Swift
55 lines
1.8 KiB
Swift
// swift-tools-version: 6.2
|
|
//
|
|
// DS multidevice app — unified package (S2 AIFabric + S3 app), one repo / one manifest.
|
|
//
|
|
// AIFabric (Sources/AI, S2-owned) is compiled exactly once as a single target here, so the
|
|
// "소비모델 b" duplicate-symbol concern (two packages each compiling Sources/AI) does not arise.
|
|
// It is also exposed as a library product so a future separate app package could depend on it.
|
|
//
|
|
// Ownership boundary unchanged: S2 owns Sources/AI/** + Tests/AITests/**; S3 owns DSKit / AppFeature
|
|
// / DSApp / Tests/DSKitTests. S3 consumes AIFabric read-only.
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "DSApp",
|
|
platforms: [
|
|
.macOS(.v26), // FoundationModels (OnDeviceProvider) + 3-column NavigationSplitView
|
|
],
|
|
products: [
|
|
.library(name: "AIFabric", targets: ["AIFabric"]),
|
|
],
|
|
targets: [
|
|
.target(
|
|
name: "AIFabric",
|
|
path: "Sources/AI",
|
|
swiftSettings: [.swiftLanguageMode(.v6)]
|
|
),
|
|
.target(
|
|
name: "DSKit",
|
|
resources: [.process("Resources")],
|
|
swiftSettings: [.swiftLanguageMode(.v6)]
|
|
),
|
|
.target(
|
|
name: "AppFeature",
|
|
dependencies: ["DSKit", "AIFabric"],
|
|
swiftSettings: [.swiftLanguageMode(.v6)]
|
|
),
|
|
.executableTarget(
|
|
name: "DSApp",
|
|
dependencies: ["AppFeature"],
|
|
swiftSettings: [.swiftLanguageMode(.v6)]
|
|
),
|
|
.testTarget(
|
|
name: "DSKitTests",
|
|
dependencies: ["DSKit", "AIFabric"],
|
|
swiftSettings: [.swiftLanguageMode(.v6)]
|
|
),
|
|
.testTarget(
|
|
name: "AITests",
|
|
dependencies: ["AIFabric"],
|
|
path: "Tests/AITests",
|
|
swiftSettings: [.swiftLanguageMode(.v6)]
|
|
),
|
|
]
|
|
)
|