@@ -148,7 +148,7 @@ private final class CLISocketSentryTelemetry {
148148 for (key, value) in data {
149149 payload[key] = value
150150 }
151- let crumb = Breadcrumb(level: .info, category: "cmux .cli")
151+ let crumb = Breadcrumb(level: .info, category: "programa .cli")
152152 crumb.message = message
153153 crumb.data = payload
154154 SentrySDK.addBreadcrumb(crumb)
@@ -8051,10 +8051,10 @@ struct CMUXCLI {
80518051 return true
80528052 }
80538053
8054- private static let cmuxThemeOverrideBundleIdentifier = "com.darkroom.programa"
8055- private static let cmuxThemesBlockStart = "# cmux themes start"
8056- private static let cmuxThemesBlockEnd = "# cmux themes end"
8057- private static let cmuxThemesReloadNotificationName = "com.darkroom.programa.themes.reload-config"
8054+ private static let programaThemeOverrideBundleIdentifier = "com.darkroom.programa"
8055+ private static let programaThemesBlockStart = "# cmux themes start"
8056+ private static let programaThemesBlockEnd = "# cmux themes end"
8057+ private static let programaThemesReloadNotificationName = "com.darkroom.programa.themes.reload-config"
80588058
80598059 private struct ThemeSelection {
80608060 let rawValue: String?
@@ -8086,8 +8086,8 @@ struct CMUXCLI {
80868086
80878087 let selection = currentThemeSelection()
80888088 var environment = ProcessInfo.processInfo.environment
8089- environment["PROGRAMA_THEME_PICKER_CONFIG"] = try cmuxThemeOverrideConfigURL ().path
8090- environment["PROGRAMA_THEME_PICKER_BUNDLE_ID"] = currentProgramaAppBundleIdentifier() ?? Self.cmuxThemeOverrideBundleIdentifier
8089+ environment["PROGRAMA_THEME_PICKER_CONFIG"] = try programaThemeOverrideConfigURL ().path
8090+ environment["PROGRAMA_THEME_PICKER_BUNDLE_ID"] = currentProgramaAppBundleIdentifier() ?? Self.programaThemeOverrideBundleIdentifier
80918091 environment["PROGRAMA_THEME_PICKER_TARGET"] = defaultThemePickerTargetMode(current: selection).rawValue
80928092 environment["PROGRAMA_THEME_PICKER_COLOR_SCHEME"] = defaultAppearancePrefersDarkThemes() ? "dark" : "light"
80938093 if let light = selection.light {
@@ -8264,7 +8264,7 @@ struct CMUXCLI {
82648264 private func printThemesList(jsonOutput: Bool) throws {
82658265 let themes = availableThemeNames()
82668266 let current = currentThemeSelection()
8267- let configPath = try cmuxThemeOverrideConfigURL ().path
8267+ let configPath = try programaThemeOverrideConfigURL ().path
82688268
82698269 if jsonOutput {
82708270 let currentPayload: [String: Any] = [
@@ -8597,8 +8597,8 @@ struct CMUXCLI {
85978597 "~/.config/ghostty/config.ghostty",
85988598 "~/Library/Application Support/com.mitchellh.ghostty/config",
85998599 "~/Library/Application Support/com.mitchellh.ghostty/config.ghostty",
8600- "~/Library/Application Support/\(Self.cmuxThemeOverrideBundleIdentifier )/config",
8601- "~/Library/Application Support/\(Self.cmuxThemeOverrideBundleIdentifier )/config.ghostty",
8600+ "~/Library/Application Support/\(Self.programaThemeOverrideBundleIdentifier )/config",
8601+ "~/Library/Application Support/\(Self.programaThemeOverrideBundleIdentifier )/config.ghostty",
86028602 ]
86038603
86048604 return rawPaths.map {
@@ -8630,28 +8630,28 @@ struct CMUXCLI {
86308630 return lastValue
86318631 }
86328632
8633- private func cmuxThemeOverrideConfigURL () throws -> URL {
8633+ private func programaThemeOverrideConfigURL () throws -> URL {
86348634 guard let appSupport = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask).first else {
86358635 throw CLIError(message: "Unable to resolve Application Support directory")
86368636 }
86378637 return appSupport
8638- .appendingPathComponent(Self.cmuxThemeOverrideBundleIdentifier , isDirectory: true)
8638+ .appendingPathComponent(Self.programaThemeOverrideBundleIdentifier , isDirectory: true)
86398639 .appendingPathComponent("config.ghostty", isDirectory: false)
86408640 }
86418641
86428642 private func writeManagedThemeOverride(rawThemeValue: String) throws -> URL {
86438643 let fileManager = FileManager.default
8644- let configURL = try cmuxThemeOverrideConfigURL ()
8644+ let configURL = try programaThemeOverrideConfigURL ()
86458645 let directoryURL = configURL.deletingLastPathComponent()
86468646 try fileManager.createDirectory(at: directoryURL, withIntermediateDirectories: true, attributes: nil)
86478647
86488648 let existingContents = try readOptionalThemeOverrideContents(at: configURL) ?? ""
86498649 let strippedContents = removingManagedThemeOverride(from: existingContents)
86508650 .trimmingCharacters(in: .whitespacesAndNewlines)
86518651 let block = """
8652- \(Self.cmuxThemesBlockStart )
8652+ \(Self.programaThemesBlockStart )
86538653 theme = \(rawThemeValue)
8654- \(Self.cmuxThemesBlockEnd )
8654+ \(Self.programaThemesBlockEnd )
86558655 """
86568656
86578657 let nextContents = strippedContents.isEmpty ? "\(block)\n" : "\(strippedContents)\n\n\(block)\n"
@@ -8661,7 +8661,7 @@ struct CMUXCLI {
86618661
86628662 private func clearManagedThemeOverride() throws -> URL {
86638663 let fileManager = FileManager.default
8664- let configURL = try cmuxThemeOverrideConfigURL ()
8664+ let configURL = try programaThemeOverrideConfigURL ()
86658665 guard let existingContents = try readOptionalThemeOverrideContents(at: configURL) else {
86668666 return configURL
86678667 }
@@ -8717,9 +8717,9 @@ struct CMUXCLI {
87178717 }
87188718
87198719 private func reloadThemesIfPossible() -> ThemeReloadStatus {
8720- let bundleIdentifier = currentProgramaAppBundleIdentifier() ?? Self.cmuxThemeOverrideBundleIdentifier
8720+ let bundleIdentifier = currentProgramaAppBundleIdentifier() ?? Self.programaThemeOverrideBundleIdentifier
87218721 DistributedNotificationCenter.default().post(
8722- name: Notification.Name(Self.cmuxThemesReloadNotificationName ),
8722+ name: Notification.Name(Self.programaThemesReloadNotificationName ),
87238723 object: nil,
87248724 userInfo: ["bundleIdentifier": bundleIdentifier]
87258725 )
@@ -10297,7 +10297,7 @@ struct CMUXCLI {
1029710297 explicitPassword: String?,
1029810298 focusedContext: TmuxCompatFocusedContext?,
1029910299 tmuxPathPrefix: String,
10300- cmuxBinEnvVar : String,
10300+ programaBinEnvVar : String,
1030110301 termOverrideEnvVar: String,
1030210302 extraEnvVars: [(key: String, value: String)] = []
1030310303 ) {
@@ -10317,7 +10317,7 @@ struct CMUXCLI {
1031710317 ?? "%1"
1031810318 let fakeTerm = processEnvironment[termOverrideEnvVar] ?? "screen-256color"
1031910319
10320- setenv(cmuxBinEnvVar , executablePath, 1)
10320+ setenv(programaBinEnvVar , executablePath, 1)
1032110321 setenv("PATH", updatedPath, 1)
1032210322 setenv("TMUX", fakeTmuxValue, 1)
1032310323 setenv("TMUX_PANE", fakeTmuxPane, 1)
@@ -10367,7 +10367,7 @@ struct CMUXCLI {
1036710367 explicitPassword: explicitPassword,
1036810368 focusedContext: focusedContext,
1036910369 tmuxPathPrefix: "cmux-claude-teams",
10370- cmuxBinEnvVar : "PROGRAMA_CLAUDE_TEAMS_PROGRAMA_BIN",
10370+ programaBinEnvVar : "PROGRAMA_CLAUDE_TEAMS_PROGRAMA_BIN",
1037110371 termOverrideEnvVar: "PROGRAMA_CLAUDE_TEAMS_TERM",
1037210372 extraEnvVars: [
1037310373 (key: "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS", value: "1"),
@@ -10945,7 +10945,7 @@ struct CMUXCLI {
1094510945 explicitPassword: explicitPassword,
1094610946 focusedContext: focusedContext,
1094710947 tmuxPathPrefix: "cmux-omo",
10948- cmuxBinEnvVar : "PROGRAMA_OMO_PROGRAMA_BIN",
10948+ programaBinEnvVar : "PROGRAMA_OMO_PROGRAMA_BIN",
1094910949 termOverrideEnvVar: "PROGRAMA_OMO_TERM",
1095010950 extraEnvVars: [(key: "OPENCODE_PORT", value: openCodePort)]
1095110951 )
@@ -11067,7 +11067,7 @@ struct CMUXCLI {
1106711067 explicitPassword: explicitPassword,
1106811068 focusedContext: focusedContext,
1106911069 tmuxPathPrefix: "cmux-omx",
11070- cmuxBinEnvVar : "PROGRAMA_OMX_PROGRAMA_BIN",
11070+ programaBinEnvVar : "PROGRAMA_OMX_PROGRAMA_BIN",
1107111071 termOverrideEnvVar: "PROGRAMA_OMX_TERM"
1107211072 )
1107311073 }
@@ -11170,7 +11170,7 @@ struct CMUXCLI {
1117011170 explicitPassword: explicitPassword,
1117111171 focusedContext: focusedContext,
1117211172 tmuxPathPrefix: "cmux-omc",
11173- cmuxBinEnvVar : "PROGRAMA_OMC_PROGRAMA_BIN",
11173+ programaBinEnvVar : "PROGRAMA_OMC_PROGRAMA_BIN",
1117411174 termOverrideEnvVar: "PROGRAMA_OMC_TERM"
1117511175 )
1117611176 // omc wraps Claude Code, so it needs the same NODE_OPTIONS restore module
@@ -13406,17 +13406,17 @@ struct CMUXCLI {
1340613406 }
1340713407
1340813408 var hooks = existing["hooks"] as? [String: Any] ?? [:]
13409- let cmuxHooks = Self.codexHooksJSON["hooks"] as! [String: Any]
13410- for (eventName, cmuxGroups ) in cmuxHooks {
13411- guard let cmuxGroupArray = cmuxGroups as? [[String: Any]] else { continue }
13409+ let programaHooks = Self.codexHooksJSON["hooks"] as! [String: Any]
13410+ for (eventName, programaGroups ) in programaHooks {
13411+ guard let programaGroupArray = programaGroups as? [[String: Any]] else { continue }
1341213412 var eventGroups = hooks[eventName] as? [[String: Any]] ?? []
1341313413 eventGroups.removeAll { group in
1341413414 guard let groupHooks = group["hooks"] as? [[String: Any]] else { return false }
1341513415 return groupHooks.allSatisfy { hook in
1341613416 (hook["command"] as? String)?.contains(Self.codexHookCommandMarker) == true
1341713417 }
1341813418 }
13419- eventGroups.append(contentsOf: cmuxGroupArray )
13419+ eventGroups.append(contentsOf: programaGroupArray )
1342013420 hooks[eventName] = eventGroups
1342113421 }
1342213422 existing["hooks"] = hooks
0 commit comments