|
4 | 4 | import { localSettingStore } from "$lib/local-setting/store"; |
5 | 5 | import { getSelectedWorkspace, getWorkspacePath, slugify } from "$lib/local-setting/workspaces"; |
6 | 6 |
|
7 | | - type AgentProvider = "opencode" | "claudecode"; |
| 7 | + type AgentProvider = "opencode" | "claudecode" | "codex"; |
8 | 8 |
|
9 | 9 | const providerLabels: Record<AgentProvider, string> = { |
10 | 10 | opencode: "OpenCode", |
11 | 11 | claudecode: "Claude Code", |
| 12 | + codex: "Codex", |
12 | 13 | }; |
13 | 14 |
|
14 | 15 | let isCanonicalizingWorkspaceRoute = false; |
15 | 16 |
|
16 | 17 | $: selectedWorkspace = getSelectedWorkspace($page.params.workspaceName ?? "", $localSettingStore.config.workspaces); |
17 | 18 | $: enabledProviders = (Object.keys(providerLabels) as AgentProvider[]).filter((provider) => { |
18 | 19 | if (provider === "opencode") return $localSettingStore.config.agents.opencode.enabled; |
19 | | - return $localSettingStore.config.agents.claudecode.enabled; |
| 20 | + if (provider === "claudecode") return $localSettingStore.config.agents.claudecode.enabled; |
| 21 | + return $localSettingStore.config.agents.codex.enabled; |
20 | 22 | }); |
21 | 23 | $: maybeCanonicalizeWorkspaceRoute(); |
22 | 24 |
|
|
35 | 37 |
|
36 | 38 | function getChannelProvider(channel: { agentProvider?: string }): AgentProvider { |
37 | 39 | if (channel.agentProvider === "claudecode") return "claudecode"; |
| 40 | + if (channel.agentProvider === "codex") return "codex"; |
38 | 41 | return "opencode"; |
39 | 42 | } |
40 | 43 |
|
|
59 | 62 | } |
60 | 63 |
|
61 | 64 | function onChannelProviderChange(workspaceId: string, channelId: string, event: Event): void { |
62 | | - const provider = (event.currentTarget as HTMLSelectElement).value === "claudecode" ? "claudecode" : "opencode"; |
| 65 | + const selected = (event.currentTarget as HTMLSelectElement).value; |
| 66 | + const provider = selected === "claudecode" |
| 67 | + ? "claudecode" |
| 68 | + : selected === "codex" |
| 69 | + ? "codex" |
| 70 | + : "opencode"; |
63 | 71 | localSettingStore.updateWorkspace(workspaceId, (workspace) => ({ |
64 | 72 | ...workspace, |
65 | 73 | channelDetails: workspace.channelDetails.map((channel) => { |
|
0 commit comments