// swift-tools-version: 5.9 // CxLLM-SDK — umbrella package that re-exports the CxLLM-* siblings. // // Downstream apps (CxLLM-IOS, CxWebApp/swift-app, third parties) depend on // this single URL and import any combination of: CxCode, CxAWS, CxGit, // CxAgent, CxMCP, CxModels, CxChat, CxARA, CxSPARenderer, CxLangBridge, // CxInstrument. // // Each umbrella product is a thin target that does `@_exported import` of // the upstream sibling module(s). This lets us reshape the sibling layout // later without breaking downstream imports. import PackageDescription let package = Package( name: "CxLLM-SDK", platforms: [.macOS(.v13), .iOS(.v17)], products: [ .library(name: "CxCode", targets: ["CxCode"]), .library(name: "CxAWS", targets: ["CxAWS_Re"]), .library(name: "CxGit", targets: ["CxGit_Re"]), .library(name: "CxAgent", targets: ["CxAgent"]), .library(name: "CxMCP", targets: ["CxMCP"]), .library(name: "CxModels", targets: ["CxModels"]), .library(name: "CxChat", targets: ["CxChat"]), .library(name: "CxARA", targets: ["CxARA_Re"]), .library(name: "CxSPARenderer", targets: ["CxSPARenderer_Re"]), .library(name: "CxLangBridge", targets: ["CxLangBridge_Re"]), .library(name: "CxInstrument", targets: ["CxInstrument_Re"]), ], dependencies: [ .package(url: "https://cxai-studio.com/git/CxAI-Project/CxLLM-Kernel.git", branch: "main"), .package(url: "https://cxai-studio.com/git/CxAI-Project/CxLLM-LIB.git", branch: "main"), .package(url: "https://cxai-studio.com/git/CxAI-Project/CxLLM-PLG.git", branch: "main"), .package(url: "https://cxai-studio.com/git/CxAI-Project/CxLLM-Drive.git", branch: "main"), .package(url: "https://cxai-studio.com/git/CxAI-Project/CxLLM-ARA.git", branch: "main"), .package(url: "https://cxai-studio.com/git/CxAI-Project/CxLLM-SPA-RNDR.git", branch: "main"), .package(url: "https://cxai-studio.com/git/CxAI-Project/CxLLM-LB-SDK.git", branch: "main"), .package(url: "https://cxai-studio.com/git/CxAI-Project/CxLLM-INSTRUMENT-PCKG.git", branch: "main"), ], targets: [ // CxCode = Kernel + Lib + Plugin .target(name: "CxCode", dependencies: [ .product(name: "CxKernel", package: "CxLLM-Kernel"), .product(name: "CxLib", package: "CxLLM-LIB"), .product(name: "CxPlugin", package: "CxLLM-PLG"), ], path: "Sources/CxCode"), // CxAWS / CxGit umbrella products live in CxLLM-Drive; use _Re suffix // on the umbrella target to avoid colliding with Drive's target names. .target(name: "CxAWS_Re", dependencies: [ .product(name: "CxAWS", package: "CxLLM-Drive"), ], path: "Sources/CxAWS_Re"), .target(name: "CxGit_Re", dependencies: [ .product(name: "CxGit", package: "CxLLM-Drive"), ], path: "Sources/CxGit_Re"), // CxAgent / CxMCP / CxModels / CxChat are app-layer modules in CxLLM-IOS // today. Phase 3 will move them into their own sibling packages; for now // we expose seed targets here so downstream `import CxAgent` etc. compile. .target(name: "CxAgent", dependencies: [ .product(name: "CxLib", package: "CxLLM-LIB"), ], path: "Sources/CxAgent"), .target(name: "CxMCP", dependencies: [ .product(name: "CxLib", package: "CxLLM-LIB"), ], path: "Sources/CxMCP"), .target(name: "CxModels", dependencies: [ .product(name: "CxLib", package: "CxLLM-LIB"), ], path: "Sources/CxModels"), .target(name: "CxChat", dependencies: [ .product(name: "CxLib", package: "CxLLM-LIB"), .product(name: "CxKernel", package: "CxLLM-Kernel"), ], path: "Sources/CxChat"), // Pure re-export shims for siblings whose product name collides with // an umbrella target name. The "_Re" target re-exports the sibling. .target(name: "CxARA_Re", dependencies: [ .product(name: "CxARA", package: "CxLLM-ARA"), ], path: "Sources/CxARA_Re"), .target(name: "CxSPARenderer_Re", dependencies: [ .product(name: "CxSPARenderer", package: "CxLLM-SPA-RNDR"), ], path: "Sources/CxSPARenderer_Re"), .target(name: "CxLangBridge_Re", dependencies: [ .product(name: "CxLangBridge", package: "CxLLM-LB-SDK"), ], path: "Sources/CxLangBridge_Re"), .target(name: "CxInstrument_Re", dependencies: [ .product(name: "CxInstrument", package: "CxLLM-INSTRUMENT-PCKG"), ], path: "Sources/CxInstrument_Re"), ] )