codex-linux 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -19
- package/abyss-teal-design-system.html +1449 -0
- package/dist/renderer/assets/main-CU1lrRNa.css +1 -0
- package/dist/renderer/assets/main-DQIKNXUA.js +304 -0
- package/dist/renderer/index.html +2 -2
- package/package.json +2 -2
- package/src/renderer/App.tsx +45 -15
- package/src/renderer/components/AgentPanel.tsx +146 -130
- package/src/renderer/components/AutomationPanel.tsx +39 -34
- package/src/renderer/components/ChatInterface.tsx +81 -123
- package/src/renderer/components/Header.tsx +24 -38
- package/src/renderer/components/SettingsPanel.tsx +89 -96
- package/src/renderer/components/Sidebar.tsx +33 -51
- package/src/renderer/components/SkillsPanel.tsx +54 -56
- package/src/renderer/components/WelcomeChat.tsx +199 -0
- package/src/renderer/components/WorktreePanel.tsx +32 -27
- package/src/renderer/components/ui/Button.tsx +17 -19
- package/src/renderer/components/ui/Card.tsx +14 -15
- package/src/renderer/components/ui/Input.tsx +12 -13
- package/src/renderer/index.css +37 -59
- package/src/renderer/styles/abyss-teal.css +405 -0
- package/dist/renderer/assets/main-DJlZQBCA.js +0 -304
- package/dist/renderer/assets/main-N33ZXEr8.css +0 -1
package/dist/renderer/index.html
CHANGED
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
<meta name="apple-mobile-web-app-title" content="Codex" />
|
|
13
13
|
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' blob:; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; connect-src 'self' https://api.openai.com https://api.anthropic.com ws://localhost:*;">
|
|
14
14
|
<title>Codex Linux</title>
|
|
15
|
-
<script type="module" crossorigin src="./assets/main-
|
|
16
|
-
<link rel="stylesheet" crossorigin href="./assets/main-
|
|
15
|
+
<script type="module" crossorigin src="./assets/main-DQIKNXUA.js"></script>
|
|
16
|
+
<link rel="stylesheet" crossorigin href="./assets/main-CU1lrRNa.css">
|
|
17
17
|
</head>
|
|
18
18
|
<body>
|
|
19
19
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codex-linux",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "A Linux port of OpenAI Codex - Multi-agent AI coding command center",
|
|
5
5
|
"main": "dist/main/main.js",
|
|
6
6
|
"author": "Codex Linux Team",
|
|
@@ -178,4 +178,4 @@
|
|
|
178
178
|
]
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
|
-
}
|
|
181
|
+
}
|
package/src/renderer/App.tsx
CHANGED
|
@@ -9,9 +9,10 @@ import { AutomationPanel } from './components/AutomationPanel';
|
|
|
9
9
|
import { SettingsPanel } from './components/SettingsPanel';
|
|
10
10
|
import { CodeWorkspace } from './components/CodeWorkspace';
|
|
11
11
|
import { AuditTrailPanel } from './components/AuditTrailPanel';
|
|
12
|
+
import { WelcomeChat } from './components/WelcomeChat';
|
|
12
13
|
import { I18nProvider } from './i18n/I18nProvider';
|
|
13
14
|
import { Agent, Worktree, Skill, Automation, AIProvider, Settings } from '../shared/types';
|
|
14
|
-
import './styles/
|
|
15
|
+
import './styles/abyss-teal.css';
|
|
15
16
|
|
|
16
17
|
function App() {
|
|
17
18
|
const navigate = useNavigate();
|
|
@@ -29,7 +30,11 @@ function App() {
|
|
|
29
30
|
|
|
30
31
|
useEffect(() => {
|
|
31
32
|
const path = location.pathname;
|
|
32
|
-
if (path === '/'
|
|
33
|
+
if (path === '/') {
|
|
34
|
+
setActiveTab('chat');
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (path.startsWith('/agents')) {
|
|
33
38
|
setActiveTab('agents');
|
|
34
39
|
return;
|
|
35
40
|
}
|
|
@@ -53,15 +58,18 @@ function App() {
|
|
|
53
58
|
setActiveTab('settings');
|
|
54
59
|
return;
|
|
55
60
|
}
|
|
56
|
-
setActiveTab('
|
|
61
|
+
setActiveTab('chat');
|
|
57
62
|
}, [location.pathname]);
|
|
58
63
|
|
|
59
64
|
const handleTabChange = (tab: string) => {
|
|
60
65
|
setActiveTab(tab);
|
|
61
66
|
switch (tab) {
|
|
62
|
-
case '
|
|
67
|
+
case 'chat':
|
|
63
68
|
navigate('/');
|
|
64
69
|
break;
|
|
70
|
+
case 'agents':
|
|
71
|
+
navigate('/agents');
|
|
72
|
+
break;
|
|
65
73
|
case 'code':
|
|
66
74
|
navigate('/code');
|
|
67
75
|
break;
|
|
@@ -217,12 +225,15 @@ function App() {
|
|
|
217
225
|
|
|
218
226
|
if (isLoading) {
|
|
219
227
|
return (
|
|
220
|
-
<div
|
|
228
|
+
<div
|
|
229
|
+
className="flex items-center justify-center h-screen bg-[var(--bg-void)]"
|
|
230
|
+
data-testid="app-loading"
|
|
231
|
+
>
|
|
221
232
|
<div className="flex flex-col items-center gap-4">
|
|
222
233
|
<div className="relative">
|
|
223
|
-
<div className="w-12 h-12 rounded-full border-2 border-
|
|
234
|
+
<div className="w-12 h-12 rounded-full border-2 border-[var(--border-default)] border-t-[var(--teal-500)] animate-spin" />
|
|
224
235
|
</div>
|
|
225
|
-
<p className="text-sm text-
|
|
236
|
+
<p className="text-sm text-[var(--text-muted)] animate-pulse">Loading Codex...</p>
|
|
226
237
|
</div>
|
|
227
238
|
</div>
|
|
228
239
|
);
|
|
@@ -230,20 +241,39 @@ function App() {
|
|
|
230
241
|
|
|
231
242
|
return (
|
|
232
243
|
<I18nProvider>
|
|
233
|
-
<div
|
|
244
|
+
<div
|
|
245
|
+
className="flex h-screen bg-[var(--bg-primary)] text-[var(--text-primary)] overflow-hidden"
|
|
246
|
+
data-testid="app-container"
|
|
247
|
+
>
|
|
234
248
|
<Sidebar activeTab={activeTab} onTabChange={handleTabChange} />
|
|
235
249
|
|
|
236
250
|
<div className="flex-1 flex flex-col min-w-0">
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
251
|
+
{activeTab !== 'chat' && (
|
|
252
|
+
<Header
|
|
253
|
+
activeTab={activeTab}
|
|
254
|
+
agents={agents}
|
|
255
|
+
onSettingsClick={() => handleTabChange('settings')}
|
|
256
|
+
/>
|
|
257
|
+
)}
|
|
242
258
|
|
|
243
|
-
<main
|
|
259
|
+
<main
|
|
260
|
+
className={`flex-1 overflow-hidden animate-fadeIn ${activeTab === 'chat' ? '' : 'bg-[var(--bg-primary)]'}`}
|
|
261
|
+
data-testid="main-content"
|
|
262
|
+
>
|
|
244
263
|
<Routes>
|
|
245
264
|
<Route
|
|
246
265
|
path="/"
|
|
266
|
+
element={
|
|
267
|
+
<WelcomeChat
|
|
268
|
+
agents={agents}
|
|
269
|
+
providers={providers}
|
|
270
|
+
skills={skills}
|
|
271
|
+
onCreateAgent={handleCreateAgent}
|
|
272
|
+
/>
|
|
273
|
+
}
|
|
274
|
+
/>
|
|
275
|
+
<Route
|
|
276
|
+
path="/agents"
|
|
247
277
|
element={
|
|
248
278
|
<AgentPanel
|
|
249
279
|
agents={agents}
|
|
@@ -311,4 +341,4 @@ function App() {
|
|
|
311
341
|
);
|
|
312
342
|
}
|
|
313
343
|
|
|
314
|
-
export default App;
|
|
344
|
+
export default App;
|