- NSPanel-backed DevOverlayWindow (.floating + .nonactivating) hidden by default - SwiftUI DevOverlayView renders OBS-01 surface: state/turn, provider/model, token counts, cache creation/read + hit %, latency, last-5 tool calls - @Observable @MainActor DevOverlayViewModel — single write path via apply() - DevOverlayBridge pumps BoundedAsyncChannel<DevSnapshot> → ViewModel - DevSnapshot + ToolCallRow live in AgentOrchestrator target (Rule 3 deviation from plan's files_modified: DevSnapshotEmitter consumes both OrchestratorEvent and DevSnapshot, so parking both in AgentOrchestrator avoids the circular AgentOrchestrator→DevOverlay→AgentOrchestrator dep) - Additive OrchestratorEvent.usage(turnId:usage:) — surfaces TurnUsage to DevOverlay without reading replay; no nonce (SEC-06 preserved) - AgentOrchestrator now emits .usage on LLMEvent.usage alongside replay write - 14 DevOverlay tests pass; 114 AgentCore tests pass (no regression)
38 lines
1.2 KiB
Swift
38 lines
1.2 KiB
Swift
// swift-tools-version:6.0
|
|
import PackageDescription
|
|
|
|
// macOS 14 floor: @Observable (Observation framework) is macOS 14+. The rest
|
|
// of Phase 1 stays at macOS 13; DevOverlay is a developer-facing optional
|
|
// surface so raising its floor is acceptable.
|
|
let package = Package(
|
|
name: "DevOverlay",
|
|
platforms: [.macOS(.v14)],
|
|
products: [
|
|
.library(name: "DevOverlay", targets: ["DevOverlay"]),
|
|
],
|
|
dependencies: [
|
|
.package(path: "../AgentCore"),
|
|
.package(path: "../Logging"),
|
|
],
|
|
targets: [
|
|
.target(
|
|
name: "DevOverlay",
|
|
dependencies: [
|
|
.product(name: "AgentCore", package: "AgentCore"),
|
|
.product(name: "AgentOrchestrator", package: "AgentCore"),
|
|
.product(name: "JarvisLogging", package: "Logging"),
|
|
],
|
|
swiftSettings: [.swiftLanguageMode(.v6)]
|
|
),
|
|
.testTarget(
|
|
name: "DevOverlayTests",
|
|
dependencies: [
|
|
"DevOverlay",
|
|
.product(name: "AgentCore", package: "AgentCore"),
|
|
.product(name: "AgentOrchestrator", package: "AgentCore"),
|
|
],
|
|
swiftSettings: [.swiftLanguageMode(.v6)]
|
|
),
|
|
]
|
|
)
|