CxLLM-SDK/Package.swift
CxAI Agent 3b1a0631dd fix: rename CxAWS/CxGit umbrella targets to _Re to disambiguate
CxLLM-Drive already defines targets named CxAWS and CxGit; SPM requires
unique target names across the whole package graph. Suffix the umbrella
wrapper targets with _Re; products keep the clean CxAWS / CxGit names.
2026-05-16 14:25:40 -05:00

91 lines
4.7 KiB
Swift

// 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"),
]
)