bingocode 1.0.3 → 1.0.5
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/package.json +3 -7
- package/desktop/README.md +0 -30
- package/desktop/bunfig.toml +0 -1
- package/desktop/index.html +0 -17
- package/desktop/package.json +0 -55
- package/desktop/pnpm-lock.yaml +0 -3832
- package/desktop/public/app-icon.jpg +0 -0
- package/desktop/public/fonts/inter-latin-ext.woff2 +0 -0
- package/desktop/public/fonts/inter-latin.woff2 +0 -0
- package/desktop/public/fonts/jetbrains-mono-latin-ext.woff2 +0 -0
- package/desktop/public/fonts/jetbrains-mono-latin.woff2 +0 -0
- package/desktop/public/fonts/manrope-latin-ext.woff2 +0 -0
- package/desktop/public/fonts/manrope-latin.woff2 +0 -0
- package/desktop/public/fonts/material-symbols-outlined.woff2 +0 -0
- package/desktop/public/icons/bilibili.svg +0 -1
- package/desktop/public/icons/douyin.svg +0 -1
- package/desktop/public/icons/github.svg +0 -3
- package/desktop/public/icons/xiaohongshu.svg +0 -1
- package/desktop/scripts/build-macos-arm64.sh +0 -270
- package/desktop/scripts/build-sidecars.ts +0 -183
- package/desktop/scripts/build-windows-x64.ps1 +0 -295
- package/desktop/scripts/scan-missing-imports.ts +0 -235
- package/desktop/sidecars/claude-sidecar.ts +0 -156
- package/desktop/src/App.tsx +0 -5
- package/desktop/src/__tests__/agentsSettings.test.tsx +0 -349
- package/desktop/src/__tests__/pages.test.tsx +0 -290
- package/desktop/src/__tests__/skillsSettings.test.tsx +0 -205
- package/desktop/src/api/adapters.ts +0 -12
- package/desktop/src/api/agents.ts +0 -36
- package/desktop/src/api/cliTasks.ts +0 -28
- package/desktop/src/api/client.ts +0 -63
- package/desktop/src/api/computerUse.ts +0 -76
- package/desktop/src/api/filesystem.ts +0 -30
- package/desktop/src/api/hahaOAuth.ts +0 -38
- package/desktop/src/api/models.ts +0 -28
- package/desktop/src/api/providers.ts +0 -63
- package/desktop/src/api/search.ts +0 -29
- package/desktop/src/api/sessions.ts +0 -56
- package/desktop/src/api/settings.ts +0 -20
- package/desktop/src/api/skills.ts +0 -19
- package/desktop/src/api/tasks.ts +0 -36
- package/desktop/src/api/teams.ts +0 -44
- package/desktop/src/api/websocket.ts +0 -164
- package/desktop/src/components/chat/AskUserQuestion.tsx +0 -268
- package/desktop/src/components/chat/AssistantMessage.tsx +0 -29
- package/desktop/src/components/chat/AttachmentGallery.tsx +0 -113
- package/desktop/src/components/chat/ChatInput.tsx +0 -622
- package/desktop/src/components/chat/CodeViewer.tsx +0 -161
- package/desktop/src/components/chat/ComputerUsePermissionModal.test.tsx +0 -174
- package/desktop/src/components/chat/ComputerUsePermissionModal.tsx +0 -311
- package/desktop/src/components/chat/DiffViewer.tsx +0 -157
- package/desktop/src/components/chat/FileSearchMenu.tsx +0 -198
- package/desktop/src/components/chat/ImageGalleryModal.tsx +0 -91
- package/desktop/src/components/chat/InlineImageGallery.tsx +0 -106
- package/desktop/src/components/chat/InlineTaskSummary.tsx +0 -60
- package/desktop/src/components/chat/MermaidRenderer.test.tsx +0 -98
- package/desktop/src/components/chat/MermaidRenderer.tsx +0 -361
- package/desktop/src/components/chat/MessageActionBar.tsx +0 -27
- package/desktop/src/components/chat/MessageList.test.tsx +0 -313
- package/desktop/src/components/chat/MessageList.tsx +0 -249
- package/desktop/src/components/chat/PermissionDialog.tsx +0 -262
- package/desktop/src/components/chat/SessionTaskBar.test.tsx +0 -99
- package/desktop/src/components/chat/SessionTaskBar.tsx +0 -159
- package/desktop/src/components/chat/StreamingIndicator.tsx +0 -41
- package/desktop/src/components/chat/TerminalChrome.tsx +0 -35
- package/desktop/src/components/chat/ThinkingBlock.tsx +0 -87
- package/desktop/src/components/chat/ToolCallBlock.tsx +0 -247
- package/desktop/src/components/chat/ToolCallGroup.tsx +0 -617
- package/desktop/src/components/chat/ToolResultBlock.tsx +0 -107
- package/desktop/src/components/chat/UserMessage.tsx +0 -38
- package/desktop/src/components/chat/chatBlocks.test.tsx +0 -136
- package/desktop/src/components/chat/clipboard.ts +0 -25
- package/desktop/src/components/chat/composerUtils.test.ts +0 -55
- package/desktop/src/components/chat/composerUtils.ts +0 -149
- package/desktop/src/components/controls/ModelSelector.tsx +0 -156
- package/desktop/src/components/controls/PermissionModeSelector.tsx +0 -229
- package/desktop/src/components/layout/AppShell.tsx +0 -107
- package/desktop/src/components/layout/ContentRouter.tsx +0 -27
- package/desktop/src/components/layout/ProjectFilter.tsx +0 -126
- package/desktop/src/components/layout/Sidebar.test.tsx +0 -158
- package/desktop/src/components/layout/Sidebar.tsx +0 -384
- package/desktop/src/components/layout/StatusBar.tsx +0 -31
- package/desktop/src/components/layout/TabBar.test.tsx +0 -136
- package/desktop/src/components/layout/TabBar.tsx +0 -318
- package/desktop/src/components/layout/TitleBar.tsx +0 -96
- package/desktop/src/components/layout/WindowControls.test.tsx +0 -69
- package/desktop/src/components/layout/WindowControls.tsx +0 -89
- package/desktop/src/components/markdown/MarkdownRenderer.test.tsx +0 -100
- package/desktop/src/components/markdown/MarkdownRenderer.tsx +0 -229
- package/desktop/src/components/settings/ClaudeOfficialLogin.tsx +0 -107
- package/desktop/src/components/shared/Button.tsx +0 -63
- package/desktop/src/components/shared/CopyButton.tsx +0 -58
- package/desktop/src/components/shared/DirectoryPicker.tsx +0 -316
- package/desktop/src/components/shared/Dropdown.tsx +0 -91
- package/desktop/src/components/shared/Input.tsx +0 -38
- package/desktop/src/components/shared/Modal.tsx +0 -65
- package/desktop/src/components/shared/ProjectContextChip.tsx +0 -30
- package/desktop/src/components/shared/Spinner.tsx +0 -30
- package/desktop/src/components/shared/Textarea.tsx +0 -38
- package/desktop/src/components/shared/Toast.tsx +0 -47
- package/desktop/src/components/shared/UpdateChecker.tsx +0 -90
- package/desktop/src/components/skills/SkillDetail.test.tsx +0 -89
- package/desktop/src/components/skills/SkillDetail.tsx +0 -403
- package/desktop/src/components/skills/SkillList.tsx +0 -254
- package/desktop/src/components/tasks/DayOfWeekPicker.tsx +0 -57
- package/desktop/src/components/tasks/NewTaskModal.tsx +0 -407
- package/desktop/src/components/tasks/PromptEditor.tsx +0 -74
- package/desktop/src/components/tasks/TaskEmptyState.tsx +0 -30
- package/desktop/src/components/tasks/TaskList.tsx +0 -46
- package/desktop/src/components/tasks/TaskRow.tsx +0 -253
- package/desktop/src/components/tasks/TaskRunsPanel.tsx +0 -195
- package/desktop/src/components/teams/TeamStatusBar.tsx +0 -147
- package/desktop/src/config/providerPresets.ts +0 -78
- package/desktop/src/config/spinnerVerbs.ts +0 -193
- package/desktop/src/hooks/useKeyboardShortcuts.ts +0 -60
- package/desktop/src/i18n/index.ts +0 -54
- package/desktop/src/i18n/locales/en.ts +0 -670
- package/desktop/src/i18n/locales/zh.ts +0 -670
- package/desktop/src/lib/__tests__/cronDescribe.test.ts +0 -93
- package/desktop/src/lib/cronDescribe.ts +0 -188
- package/desktop/src/lib/desktopRuntime.ts +0 -54
- package/desktop/src/lib/parseRunOutput.ts +0 -79
- package/desktop/src/main.tsx +0 -13
- package/desktop/src/mocks/data.ts +0 -202
- package/desktop/src/pages/ActiveSession.test.tsx +0 -181
- package/desktop/src/pages/ActiveSession.tsx +0 -219
- package/desktop/src/pages/AdapterSettings.tsx +0 -375
- package/desktop/src/pages/AgentTeams.tsx +0 -200
- package/desktop/src/pages/ComputerUseSettings.tsx +0 -420
- package/desktop/src/pages/EmptySession.tsx +0 -518
- package/desktop/src/pages/NewTaskModal.tsx +0 -346
- package/desktop/src/pages/ScheduledTasks.tsx +0 -66
- package/desktop/src/pages/ScheduledTasksEmpty.tsx +0 -152
- package/desktop/src/pages/ScheduledTasksList.tsx +0 -416
- package/desktop/src/pages/SessionControls.tsx +0 -460
- package/desktop/src/pages/Settings.tsx +0 -1448
- package/desktop/src/pages/ToolInspection.tsx +0 -235
- package/desktop/src/stores/adapterStore.ts +0 -106
- package/desktop/src/stores/agentStore.ts +0 -34
- package/desktop/src/stores/chatStore.test.ts +0 -505
- package/desktop/src/stores/chatStore.ts +0 -850
- package/desktop/src/stores/cliTaskStore.ts +0 -152
- package/desktop/src/stores/hahaOAuthStore.test.ts +0 -77
- package/desktop/src/stores/hahaOAuthStore.ts +0 -97
- package/desktop/src/stores/providerStore.ts +0 -101
- package/desktop/src/stores/sessionStore.test.ts +0 -63
- package/desktop/src/stores/sessionStore.ts +0 -102
- package/desktop/src/stores/settingsStore.ts +0 -120
- package/desktop/src/stores/skillStore.ts +0 -51
- package/desktop/src/stores/tabStore.ts +0 -169
- package/desktop/src/stores/taskStore.ts +0 -68
- package/desktop/src/stores/teamStore.ts +0 -344
- package/desktop/src/stores/uiStore.ts +0 -100
- package/desktop/src/stores/updateStore.test.ts +0 -71
- package/desktop/src/stores/updateStore.ts +0 -221
- package/desktop/src/theme/globals.css +0 -465
- package/desktop/src/types/adapter.ts +0 -33
- package/desktop/src/types/chat.ts +0 -152
- package/desktop/src/types/cliTask.ts +0 -24
- package/desktop/src/types/provider.ts +0 -62
- package/desktop/src/types/session.ts +0 -27
- package/desktop/src/types/settings.ts +0 -22
- package/desktop/src/types/skill.ts +0 -38
- package/desktop/src/types/task.ts +0 -56
- package/desktop/src/types/team.ts +0 -38
- package/desktop/src-tauri/Cargo.lock +0 -5549
- package/desktop/src-tauri/Cargo.toml +0 -20
- package/desktop/src-tauri/app-icon.svg +0 -13
- package/desktop/src-tauri/build.rs +0 -3
- package/desktop/src-tauri/capabilities/default.json +0 -106
- package/desktop/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml +0 -5
- package/desktop/src-tauri/icons/android/values/ic_launcher_background.xml +0 -4
- package/desktop/src-tauri/icons/icon.icns +0 -0
- package/desktop/src-tauri/icons/icon.ico +0 -0
- package/desktop/src-tauri/src/lib.rs +0 -408
- package/desktop/src-tauri/src/main.rs +0 -6
- package/desktop/src-tauri/tauri.conf.json +0 -78
- package/desktop/src-tauri/tauri.macos.conf.json +0 -18
- package/desktop/src-tauri/tauri.release-ci.json +0 -5
- package/desktop/src-tauri/tauri.windows.conf.json +0 -16
- package/desktop/src-tauri/windows-installer-hooks.nsh +0 -17
- package/desktop/tsconfig.json +0 -25
- package/desktop/vite.config.ts +0 -26
- package/desktop/vitest.config.ts +0 -18
|
@@ -1,416 +0,0 @@
|
|
|
1
|
-
import { useTranslation } from '../i18n'
|
|
2
|
-
import { mockScheduledTasks, mockStatusBar } from '../mocks/data'
|
|
3
|
-
|
|
4
|
-
export function ScheduledTasksList() {
|
|
5
|
-
const t = useTranslation()
|
|
6
|
-
const { stats, tasks } = mockScheduledTasks
|
|
7
|
-
const task0 = tasks[0]!
|
|
8
|
-
const task1 = tasks[1]!
|
|
9
|
-
const task2 = tasks[2]!
|
|
10
|
-
|
|
11
|
-
return (
|
|
12
|
-
<div className="bg-[#FAF9F5] text-[#1B1C1A] flex min-h-screen overflow-hidden font-[Inter,sans-serif]">
|
|
13
|
-
{/* SideNavBar */}
|
|
14
|
-
<aside className="fixed left-0 top-0 h-full w-[280px] bg-[#F4F4F0] flex flex-col p-4 gap-2 z-40">
|
|
15
|
-
<div className="mb-6 px-2 flex items-center gap-3">
|
|
16
|
-
<div className="w-8 h-8 rounded-lg bg-[#AD5F45] flex items-center justify-center">
|
|
17
|
-
<span
|
|
18
|
-
className="material-symbols-outlined text-white"
|
|
19
|
-
style={{ fontVariationSettings: "'FILL' 1" }}
|
|
20
|
-
>
|
|
21
|
-
folder_managed
|
|
22
|
-
</span>
|
|
23
|
-
</div>
|
|
24
|
-
<div>
|
|
25
|
-
<h2 className="font-[Manrope,sans-serif] text-sm font-bold text-[#1B1C1A] uppercase tracking-tighter">{t('sidebar.allProjects')}</h2>
|
|
26
|
-
<p className="text-xs text-[#87736D] font-medium">{t('scheduledPage.activeSession')}</p>
|
|
27
|
-
</div>
|
|
28
|
-
</div>
|
|
29
|
-
|
|
30
|
-
<button className="flex items-center gap-3 px-3 py-2 w-full text-[#87736D] hover:bg-[#EBEBE6] transition-all rounded-lg font-medium text-sm duration-200 ease-in-out">
|
|
31
|
-
<span className="material-symbols-outlined">add</span>
|
|
32
|
-
{t('sidebar.newSession')}
|
|
33
|
-
</button>
|
|
34
|
-
<button className="flex items-center gap-3 px-3 py-2 w-full bg-[#FAF9F5] text-[#1B1C1A] rounded-lg relative before:content-[''] before:absolute before:left-[-8px] before:w-1 before:h-4 before:bg-[#8F482F] before:rounded-full font-medium text-sm duration-200 ease-in-out">
|
|
35
|
-
<span
|
|
36
|
-
className="material-symbols-outlined"
|
|
37
|
-
style={{ fontVariationSettings: "'FILL' 1" }}
|
|
38
|
-
>
|
|
39
|
-
calendar_today
|
|
40
|
-
</span>
|
|
41
|
-
{t('sidebar.scheduled')}
|
|
42
|
-
</button>
|
|
43
|
-
<button className="flex items-center gap-3 px-3 py-2 w-full text-[#87736D] hover:bg-[#EBEBE6] transition-all rounded-lg font-medium text-sm duration-200 ease-in-out">
|
|
44
|
-
<span className="material-symbols-outlined">history</span>
|
|
45
|
-
{t('sidebar.timeGroup.today')}
|
|
46
|
-
</button>
|
|
47
|
-
<button className="flex items-center gap-3 px-3 py-2 w-full text-[#87736D] hover:bg-[#EBEBE6] transition-all rounded-lg font-medium text-sm duration-200 ease-in-out">
|
|
48
|
-
<span className="material-symbols-outlined">event_note</span>
|
|
49
|
-
{t('sidebar.timeGroup.last7days')}
|
|
50
|
-
</button>
|
|
51
|
-
<button className="flex items-center gap-3 px-3 py-2 w-full text-[#87736D] hover:bg-[#EBEBE6] transition-all rounded-lg font-medium text-sm duration-200 ease-in-out">
|
|
52
|
-
<span className="material-symbols-outlined">archive</span>
|
|
53
|
-
{t('sidebar.timeGroup.older')}
|
|
54
|
-
</button>
|
|
55
|
-
|
|
56
|
-
<div className="mt-auto pt-4 flex flex-col gap-2">
|
|
57
|
-
<div className="px-2 py-4">
|
|
58
|
-
<button className="w-full bg-[#E9E8E4] text-[#1B1C1A] font-[Manrope,sans-serif] text-xs font-bold py-2 rounded-lg flex items-center justify-center gap-2 hover:bg-[#E3E2DF] transition-colors">
|
|
59
|
-
<span className="material-symbols-outlined text-[1rem]">search</span>
|
|
60
|
-
{t('sidebar.searchPlaceholder')}
|
|
61
|
-
</button>
|
|
62
|
-
</div>
|
|
63
|
-
<div className="h-[1px] bg-[#DAC1BA]/20 mx-2 mb-2"></div>
|
|
64
|
-
<button className="flex items-center gap-3 px-3 py-2 w-full text-[#87736D] hover:bg-[#EBEBE6] transition-all rounded-lg font-medium text-sm duration-200 ease-in-out">
|
|
65
|
-
<span className="material-symbols-outlined">computer</span>
|
|
66
|
-
{t('scheduledPage.localMode')}
|
|
67
|
-
</button>
|
|
68
|
-
<button className="flex items-center gap-3 px-3 py-2 w-full text-[#87736D] hover:bg-[#EBEBE6] transition-all rounded-lg font-medium text-sm duration-200 ease-in-out">
|
|
69
|
-
<span className="material-symbols-outlined">cloud</span>
|
|
70
|
-
{t('scheduledPage.remoteMode')}
|
|
71
|
-
</button>
|
|
72
|
-
</div>
|
|
73
|
-
</aside>
|
|
74
|
-
|
|
75
|
-
{/* Main Content Area */}
|
|
76
|
-
<main className="flex-1 flex flex-col ml-[280px] min-w-0 h-screen">
|
|
77
|
-
{/* TopAppBar */}
|
|
78
|
-
<header className="bg-[#FAF9F5] h-12 w-full flex justify-between items-center px-6 z-30">
|
|
79
|
-
<div className="flex items-center gap-8">
|
|
80
|
-
<div className="font-[Manrope,sans-serif] font-bold text-[#1B1C1A] uppercase tracking-tighter text-sm">Claude Code Companion</div>
|
|
81
|
-
<nav className="flex items-center gap-6 font-[Manrope,sans-serif] font-semibold tracking-wide text-sm">
|
|
82
|
-
<a className="text-[#87736D] hover:text-[#8F482F] transition-colors" href="#">{t('titlebar.code')}</a>
|
|
83
|
-
<a className="text-[#87736D] hover:text-[#8F482F] transition-colors" href="#">{t('titlebar.terminal')}</a>
|
|
84
|
-
<a className="text-[#1B1C1A] border-b-2 border-[#8F482F] pb-1" href="#">{t('titlebar.history')}</a>
|
|
85
|
-
</nav>
|
|
86
|
-
</div>
|
|
87
|
-
<div className="flex items-center gap-4">
|
|
88
|
-
<div className="flex items-center gap-2">
|
|
89
|
-
<button className="p-1 text-[#87736D] hover:text-[#8F482F] transition-colors cursor-pointer active:opacity-70">
|
|
90
|
-
<span className="material-symbols-outlined text-[1rem]">arrow_back_ios</span>
|
|
91
|
-
</button>
|
|
92
|
-
<button className="p-1 text-[#87736D] hover:text-[#8F482F] transition-colors cursor-pointer active:opacity-70">
|
|
93
|
-
<span className="material-symbols-outlined text-[1rem]">arrow_forward_ios</span>
|
|
94
|
-
</button>
|
|
95
|
-
</div>
|
|
96
|
-
<button className="font-[Manrope,sans-serif] font-semibold tracking-wide text-sm text-[#87736D] hover:text-[#8F482F] transition-colors cursor-pointer active:opacity-70 flex items-center gap-1">
|
|
97
|
-
<span className="material-symbols-outlined text-[1.1rem]">settings</span>
|
|
98
|
-
{t('sidebar.settings')}
|
|
99
|
-
</button>
|
|
100
|
-
</div>
|
|
101
|
-
</header>
|
|
102
|
-
|
|
103
|
-
{/* Separation Line */}
|
|
104
|
-
<div className="bg-[#F4F4F0] h-[1px] w-full"></div>
|
|
105
|
-
|
|
106
|
-
{/* Scrollable Content */}
|
|
107
|
-
<section className="flex-1 overflow-y-auto p-12 bg-[#FAF9F5]">
|
|
108
|
-
<div className="max-w-5xl mx-auto">
|
|
109
|
-
{/* Page Header */}
|
|
110
|
-
<div className="flex justify-between items-end mb-12">
|
|
111
|
-
<div className="space-y-1">
|
|
112
|
-
<h1 className="font-[Manrope,sans-serif] text-3xl font-bold tracking-tight text-[#1B1C1A]">{t('scheduledPage.title')}</h1>
|
|
113
|
-
<p className="text-[#87736D] text-sm">{t('scheduledPage.subtitle')}</p>
|
|
114
|
-
</div>
|
|
115
|
-
<button className="bg-[#8F482F] hover:bg-[#AD5F45] text-white px-5 py-2.5 rounded-lg flex items-center gap-2 transition-all shadow-sm font-medium text-sm">
|
|
116
|
-
<span className="material-symbols-outlined text-[1.1rem]">add_task</span>
|
|
117
|
-
{t('tasks.createNew')}
|
|
118
|
-
</button>
|
|
119
|
-
</div>
|
|
120
|
-
|
|
121
|
-
{/* Bento-style Summary Cards */}
|
|
122
|
-
<div className="grid grid-cols-1 md:grid-cols-3 gap-6 mb-10">
|
|
123
|
-
{/* Total Tasks */}
|
|
124
|
-
<div className="bg-[#F4F4F0] p-6 rounded-xl border border-[#DAC1BA]/10">
|
|
125
|
-
<div className="flex items-center justify-between mb-4">
|
|
126
|
-
<span className="text-xs font-bold uppercase tracking-widest text-[#87736D]">{t('tasks.totalTasks')}</span>
|
|
127
|
-
<span className="material-symbols-outlined text-[#8F482F]">analytics</span>
|
|
128
|
-
</div>
|
|
129
|
-
<div className="text-4xl font-[Manrope,sans-serif] font-extrabold text-[#1B1C1A]">{stats.totalTasks}</div>
|
|
130
|
-
<div className="mt-2 flex items-center gap-1 text-[10px] text-[#4F6237] font-bold bg-[#677B4E]/20 px-2 py-0.5 rounded-full w-fit">
|
|
131
|
-
<span className="material-symbols-outlined text-[10px]">trending_up</span>
|
|
132
|
-
{t('scheduledPage.thisMonth', { count: '+2' })}
|
|
133
|
-
</div>
|
|
134
|
-
</div>
|
|
135
|
-
|
|
136
|
-
{/* Next Run */}
|
|
137
|
-
<div className="bg-[#F4F4F0] p-6 rounded-xl border border-[#DAC1BA]/10">
|
|
138
|
-
<div className="flex items-center justify-between mb-4">
|
|
139
|
-
<span className="text-xs font-bold uppercase tracking-widest text-[#87736D]">{t('scheduledPage.nextRun')}</span>
|
|
140
|
-
<span className="material-symbols-outlined text-[#2D628F]">schedule</span>
|
|
141
|
-
</div>
|
|
142
|
-
<div className="text-xl font-[Manrope,sans-serif] font-bold text-[#1B1C1A]">{stats.nextRun.name}</div>
|
|
143
|
-
<p className="text-sm font-[JetBrains_Mono,monospace] text-[#2D628F] mt-1">{stats.nextRun.time}</p>
|
|
144
|
-
</div>
|
|
145
|
-
|
|
146
|
-
{/* System Health */}
|
|
147
|
-
<div className="bg-[#F4F4F0] p-6 rounded-xl border border-[#DAC1BA]/10">
|
|
148
|
-
<div className="flex items-center justify-between mb-4">
|
|
149
|
-
<span className="text-xs font-bold uppercase tracking-widest text-[#87736D]">{t('scheduledPage.systemHealth')}</span>
|
|
150
|
-
<span className="material-symbols-outlined text-[#4F6237]">check_circle</span>
|
|
151
|
-
</div>
|
|
152
|
-
<div className="text-4xl font-[Manrope,sans-serif] font-extrabold text-[#1B1C1A]">{stats.systemHealth}%</div>
|
|
153
|
-
<p className="text-xs text-[#87736D] mt-2 font-medium">{stats.healthPeriod}</p>
|
|
154
|
-
</div>
|
|
155
|
-
</div>
|
|
156
|
-
|
|
157
|
-
{/* Operational Tasks Table */}
|
|
158
|
-
<div className="bg-white rounded-xl overflow-hidden border border-[#DAC1BA]/20 shadow-[0_4px_20px_rgba(27,28,26,0.04)]">
|
|
159
|
-
<table className="w-full text-left border-collapse">
|
|
160
|
-
<thead>
|
|
161
|
-
<tr className="bg-[#F4F4F0]/50">
|
|
162
|
-
<th className="px-6 py-4 text-xs font-bold uppercase tracking-widest text-[#DAC1BA] border-b border-[#DAC1BA]/10">{t('scheduledPage.colTaskName')}</th>
|
|
163
|
-
<th className="px-6 py-4 text-xs font-bold uppercase tracking-widest text-[#DAC1BA] border-b border-[#DAC1BA]/10">{t('scheduledPage.colFrequency')}</th>
|
|
164
|
-
<th className="px-6 py-4 text-xs font-bold uppercase tracking-widest text-[#DAC1BA] border-b border-[#DAC1BA]/10">{t('scheduledPage.colLastResult')}</th>
|
|
165
|
-
<th className="px-6 py-4 text-xs font-bold uppercase tracking-widest text-[#DAC1BA] border-b border-[#DAC1BA]/10">{t('scheduledPage.colNextExecution')}</th>
|
|
166
|
-
<th className="px-6 py-4 text-xs font-bold uppercase tracking-widest text-[#DAC1BA] border-b border-[#DAC1BA]/10 text-right">{t('scheduledPage.colActions')}</th>
|
|
167
|
-
</tr>
|
|
168
|
-
</thead>
|
|
169
|
-
<tbody className="divide-y divide-[#DAC1BA]/5">
|
|
170
|
-
{/* Task Row 1 - Nightly linting */}
|
|
171
|
-
<tr className="group hover:bg-[#F4F4F0]/30 transition-colors">
|
|
172
|
-
<td className="px-6 py-5">
|
|
173
|
-
<div className="flex items-center gap-3">
|
|
174
|
-
<div className="p-2 bg-[#FFDBD0] text-[#8F482F] rounded-lg">
|
|
175
|
-
<span className="material-symbols-outlined text-[1.2rem]">code_blocks</span>
|
|
176
|
-
</div>
|
|
177
|
-
<div>
|
|
178
|
-
<div className="font-[Manrope,sans-serif] font-bold text-[#1B1C1A] text-sm">{task0.name}</div>
|
|
179
|
-
<div className="text-xs text-[#87736D] font-medium">Root: /projects/companion/src</div>
|
|
180
|
-
</div>
|
|
181
|
-
</div>
|
|
182
|
-
</td>
|
|
183
|
-
<td className="px-6 py-5">
|
|
184
|
-
<span className="px-2.5 py-1 bg-[#E9E8E4] rounded-full text-xs font-semibold text-[#54433E]">{task0.frequency}</span>
|
|
185
|
-
</td>
|
|
186
|
-
<td className="px-6 py-5">
|
|
187
|
-
<div className="flex items-center gap-1.5 text-[#4F6237] text-xs font-bold">
|
|
188
|
-
<span
|
|
189
|
-
className="material-symbols-outlined text-[1rem]"
|
|
190
|
-
style={{ fontVariationSettings: "'FILL' 1" }}
|
|
191
|
-
>
|
|
192
|
-
check_circle
|
|
193
|
-
</span>
|
|
194
|
-
{task0.lastResult}
|
|
195
|
-
</div>
|
|
196
|
-
</td>
|
|
197
|
-
<td className="px-6 py-5">
|
|
198
|
-
<div className="font-[JetBrains_Mono,monospace] text-sm font-medium text-[#2D628F]">{task0.nextExecution}</div>
|
|
199
|
-
</td>
|
|
200
|
-
<td className="px-6 py-5 text-right">
|
|
201
|
-
<div className="flex items-center justify-end gap-1 opacity-0 group-hover:opacity-100 transition-opacity">
|
|
202
|
-
<button className="p-2 text-[#87736D] hover:text-[#8F482F] transition-colors">
|
|
203
|
-
<span className="material-symbols-outlined text-[1.1rem]">edit</span>
|
|
204
|
-
</button>
|
|
205
|
-
<button className="p-2 text-[#87736D] hover:text-[#BA1A1A] transition-colors">
|
|
206
|
-
<span className="material-symbols-outlined text-[1.1rem]">delete</span>
|
|
207
|
-
</button>
|
|
208
|
-
<button className="p-2 text-[#87736D] hover:text-[#1B1C1A] transition-colors">
|
|
209
|
-
<span className="material-symbols-outlined text-[1.1rem]">more_vert</span>
|
|
210
|
-
</button>
|
|
211
|
-
</div>
|
|
212
|
-
</td>
|
|
213
|
-
</tr>
|
|
214
|
-
|
|
215
|
-
{/* Task Row 2 - Clean up temp files */}
|
|
216
|
-
<tr className="group hover:bg-[#F4F4F0]/30 transition-colors">
|
|
217
|
-
<td className="px-6 py-5">
|
|
218
|
-
<div className="flex items-center gap-3">
|
|
219
|
-
<div className="p-2 bg-[#CFE5FF] text-[#094A76] rounded-lg">
|
|
220
|
-
<span className="material-symbols-outlined text-[1.2rem]">cleaning_services</span>
|
|
221
|
-
</div>
|
|
222
|
-
<div>
|
|
223
|
-
<div className="font-[Manrope,sans-serif] font-bold text-[#1B1C1A] text-sm">{task1.name}</div>
|
|
224
|
-
<div className="text-xs text-[#87736D] font-medium">{task1.description}</div>
|
|
225
|
-
</div>
|
|
226
|
-
</div>
|
|
227
|
-
</td>
|
|
228
|
-
<td className="px-6 py-5">
|
|
229
|
-
<span className="px-2.5 py-1 bg-[#E9E8E4] rounded-full text-xs font-semibold text-[#54433E]">{task1.frequency}</span>
|
|
230
|
-
</td>
|
|
231
|
-
<td className="px-6 py-5">
|
|
232
|
-
<div className="flex items-center gap-1.5 text-[#4F6237] text-xs font-bold">
|
|
233
|
-
<span
|
|
234
|
-
className="material-symbols-outlined text-[1rem]"
|
|
235
|
-
style={{ fontVariationSettings: "'FILL' 1" }}
|
|
236
|
-
>
|
|
237
|
-
check_circle
|
|
238
|
-
</span>
|
|
239
|
-
{task1.lastResult}
|
|
240
|
-
</div>
|
|
241
|
-
</td>
|
|
242
|
-
<td className="px-6 py-5">
|
|
243
|
-
<div className="font-[JetBrains_Mono,monospace] text-sm font-medium text-[#2D628F]">{task1.nextExecution}</div>
|
|
244
|
-
</td>
|
|
245
|
-
<td className="px-6 py-5 text-right">
|
|
246
|
-
<div className="flex items-center justify-end gap-1 opacity-0 group-hover:opacity-100 transition-opacity">
|
|
247
|
-
<button className="p-2 text-[#87736D] hover:text-[#8F482F] transition-colors">
|
|
248
|
-
<span className="material-symbols-outlined text-[1.1rem]">edit</span>
|
|
249
|
-
</button>
|
|
250
|
-
<button className="p-2 text-[#87736D] hover:text-[#BA1A1A] transition-colors">
|
|
251
|
-
<span className="material-symbols-outlined text-[1.1rem]">delete</span>
|
|
252
|
-
</button>
|
|
253
|
-
<button className="p-2 text-[#87736D] hover:text-[#1B1C1A] transition-colors">
|
|
254
|
-
<span className="material-symbols-outlined text-[1.1rem]">more_vert</span>
|
|
255
|
-
</button>
|
|
256
|
-
</div>
|
|
257
|
-
</td>
|
|
258
|
-
</tr>
|
|
259
|
-
|
|
260
|
-
{/* Task Row 3 - Database Vacuum */}
|
|
261
|
-
<tr className="group hover:bg-[#F4F4F0]/30 transition-colors">
|
|
262
|
-
<td className="px-6 py-5">
|
|
263
|
-
<div className="flex items-center gap-3">
|
|
264
|
-
<div className="p-2 bg-[#D4EAB4] text-[#3B4C24] rounded-lg">
|
|
265
|
-
<span className="material-symbols-outlined text-[1.2rem]">database</span>
|
|
266
|
-
</div>
|
|
267
|
-
<div>
|
|
268
|
-
<div className="font-[Manrope,sans-serif] font-bold text-[#1B1C1A] text-sm">{task2.name}</div>
|
|
269
|
-
<div className="text-xs text-[#87736D] font-medium">{task2.description}</div>
|
|
270
|
-
</div>
|
|
271
|
-
</div>
|
|
272
|
-
</td>
|
|
273
|
-
<td className="px-6 py-5">
|
|
274
|
-
<span className="px-2.5 py-1 bg-[#E9E8E4] rounded-full text-xs font-semibold text-[#54433E]">Monthly</span>
|
|
275
|
-
</td>
|
|
276
|
-
<td className="px-6 py-5">
|
|
277
|
-
<div className="flex items-center gap-1.5 text-[#BA1A1A] text-xs font-bold">
|
|
278
|
-
<span
|
|
279
|
-
className="material-symbols-outlined text-[1rem]"
|
|
280
|
-
style={{ fontVariationSettings: "'FILL' 1" }}
|
|
281
|
-
>
|
|
282
|
-
error
|
|
283
|
-
</span>
|
|
284
|
-
{task2.lastResult}
|
|
285
|
-
</div>
|
|
286
|
-
</td>
|
|
287
|
-
<td className="px-6 py-5">
|
|
288
|
-
<div className="font-[JetBrains_Mono,monospace] text-sm font-medium text-[#2D628F]">{task2.nextExecution}</div>
|
|
289
|
-
</td>
|
|
290
|
-
<td className="px-6 py-5 text-right">
|
|
291
|
-
<div className="flex items-center justify-end gap-1 opacity-0 group-hover:opacity-100 transition-opacity">
|
|
292
|
-
<button className="p-2 text-[#87736D] hover:text-[#8F482F] transition-colors">
|
|
293
|
-
<span className="material-symbols-outlined text-[1.1rem]">edit</span>
|
|
294
|
-
</button>
|
|
295
|
-
<button className="p-2 text-[#87736D] hover:text-[#BA1A1A] transition-colors">
|
|
296
|
-
<span className="material-symbols-outlined text-[1.1rem]">delete</span>
|
|
297
|
-
</button>
|
|
298
|
-
<button className="p-2 text-[#87736D] hover:text-[#1B1C1A] transition-colors">
|
|
299
|
-
<span className="material-symbols-outlined text-[1.1rem]">more_vert</span>
|
|
300
|
-
</button>
|
|
301
|
-
</div>
|
|
302
|
-
</td>
|
|
303
|
-
</tr>
|
|
304
|
-
</tbody>
|
|
305
|
-
</table>
|
|
306
|
-
|
|
307
|
-
{/* End of list placeholder */}
|
|
308
|
-
<div className="p-12 text-center border-t border-[#DAC1BA]/10">
|
|
309
|
-
<div className="inline-flex items-center justify-center w-12 h-12 rounded-full bg-[#F4F4F0] mb-4">
|
|
310
|
-
<span className="material-symbols-outlined text-[#87736D]">history_toggle_off</span>
|
|
311
|
-
</div>
|
|
312
|
-
<h3 className="font-[Manrope,sans-serif] font-bold text-[#1B1C1A] text-base">{t('scheduledPage.endOfList')}</h3>
|
|
313
|
-
<p className="text-sm text-[#87736D] max-w-xs mx-auto mt-1">{t('scheduledPage.pausedTasks')}</p>
|
|
314
|
-
</div>
|
|
315
|
-
</div>
|
|
316
|
-
|
|
317
|
-
{/* System Logs / Details Panel */}
|
|
318
|
-
<div className="mt-12 flex flex-col md:flex-row gap-8 items-start">
|
|
319
|
-
{/* Recent Output Logs */}
|
|
320
|
-
<div className="flex-1 space-y-6">
|
|
321
|
-
<h2 className="font-[Manrope,sans-serif] text-lg font-bold text-[#1B1C1A]">{t('scheduledPage.recentLogs')}</h2>
|
|
322
|
-
<div className="bg-[#DBDAD6] rounded-xl p-6 font-[JetBrains_Mono,monospace] text-[13px] leading-relaxed text-[#54433E] overflow-x-auto shadow-inner">
|
|
323
|
-
<div className="flex gap-4 opacity-50 mb-1">
|
|
324
|
-
<span className="w-32 shrink-0">2023-11-10 23:01</span>
|
|
325
|
-
<span className="text-[#4F6237]">[INFO]</span>
|
|
326
|
-
<span>Nightly linting started for repository: companion-main</span>
|
|
327
|
-
</div>
|
|
328
|
-
<div className="flex gap-4 mb-1">
|
|
329
|
-
<span className="w-32 shrink-0">2023-11-10 23:04</span>
|
|
330
|
-
<span className="text-[#4F6237]">[INFO]</span>
|
|
331
|
-
<span>Processed 1,422 files. No critical issues found.</span>
|
|
332
|
-
</div>
|
|
333
|
-
<div className="flex gap-4 mb-1">
|
|
334
|
-
<span className="w-32 shrink-0">2023-11-10 23:04</span>
|
|
335
|
-
<span className="text-[#094A76]">[WARN]</span>
|
|
336
|
-
<span className="italic">Found 12 deprecated calls in /legacy/utils.js</span>
|
|
337
|
-
</div>
|
|
338
|
-
<div className="flex gap-4 mb-1">
|
|
339
|
-
<span className="w-32 shrink-0">2023-11-10 23:05</span>
|
|
340
|
-
<span className="text-[#4F6237]">[INFO]</span>
|
|
341
|
-
<span>Task completed successfully in 242.4s.</span>
|
|
342
|
-
</div>
|
|
343
|
-
<div className="mt-4 pt-4 border-t border-[#DAC1BA]/20 flex items-center justify-between">
|
|
344
|
-
<span className="text-[11px] uppercase tracking-tighter opacity-50">Log stream: active</span>
|
|
345
|
-
<button className="text-[#8F482F] font-bold text-xs hover:underline">{t('scheduledPage.viewArtifacts')}</button>
|
|
346
|
-
</div>
|
|
347
|
-
</div>
|
|
348
|
-
</div>
|
|
349
|
-
|
|
350
|
-
{/* Resource Allocation Panel */}
|
|
351
|
-
<div className="w-full md:w-80 shrink-0">
|
|
352
|
-
<div className="bg-[#AD5F45]/10 p-6 rounded-xl border border-[#8F482F]/10">
|
|
353
|
-
<h3 className="font-[Manrope,sans-serif] font-bold text-[#8F482F] text-sm mb-3">{t('scheduledPage.resourceAllocation')}</h3>
|
|
354
|
-
<div className="space-y-4">
|
|
355
|
-
<div className="space-y-1">
|
|
356
|
-
<div className="flex justify-between text-[11px] font-bold text-[#87736D] uppercase tracking-wider">
|
|
357
|
-
<span>{t('scheduledPage.cpuCapacity')}</span>
|
|
358
|
-
<span>42%</span>
|
|
359
|
-
</div>
|
|
360
|
-
<div className="w-full h-1 bg-[#DAC1BA]/30 rounded-full overflow-hidden">
|
|
361
|
-
<div className="h-full bg-[#8F482F]" style={{ width: '42%' }}></div>
|
|
362
|
-
</div>
|
|
363
|
-
</div>
|
|
364
|
-
<div className="space-y-1">
|
|
365
|
-
<div className="flex justify-between text-[11px] font-bold text-[#87736D] uppercase tracking-wider">
|
|
366
|
-
<span>{t('scheduledPage.memoryLoad')}</span>
|
|
367
|
-
<span>68%</span>
|
|
368
|
-
</div>
|
|
369
|
-
<div className="w-full h-1 bg-[#DAC1BA]/30 rounded-full overflow-hidden">
|
|
370
|
-
<div className="h-full bg-[#2D628F]" style={{ width: '68%' }}></div>
|
|
371
|
-
</div>
|
|
372
|
-
</div>
|
|
373
|
-
</div>
|
|
374
|
-
<div className="mt-6">
|
|
375
|
-
<div className="w-full h-24 rounded-lg bg-gradient-to-br from-[#FFDBD0] via-[#FFB59D]/40 to-[#DAC1BA]/20"></div>
|
|
376
|
-
</div>
|
|
377
|
-
</div>
|
|
378
|
-
</div>
|
|
379
|
-
</div>
|
|
380
|
-
</div>
|
|
381
|
-
</section>
|
|
382
|
-
|
|
383
|
-
{/* Footer */}
|
|
384
|
-
<footer className="bg-[#FAF9F5] border-t border-[#87736D]/20 fixed bottom-0 left-0 w-full h-8 flex items-center justify-between px-4 z-50">
|
|
385
|
-
<div className="flex items-center gap-4">
|
|
386
|
-
<span className="font-[Inter,sans-serif] text-xs tracking-tight text-[#87736D]">{mockStatusBar.user} • {mockStatusBar.username} • {mockStatusBar.plan}</span>
|
|
387
|
-
<div className="h-3 w-[1px] bg-[#87736D]/30"></div>
|
|
388
|
-
<div className="flex items-center gap-2">
|
|
389
|
-
<span
|
|
390
|
-
className="material-symbols-outlined text-[10px] text-[#4F6237]"
|
|
391
|
-
style={{ fontVariationSettings: "'FILL' 1" }}
|
|
392
|
-
>
|
|
393
|
-
fiber_manual_record
|
|
394
|
-
</span>
|
|
395
|
-
<span className="font-[Inter,sans-serif] text-xs tracking-tight text-[#1B1C1A]">{t('scheduledPage.connectedLocal')}</span>
|
|
396
|
-
</div>
|
|
397
|
-
</div>
|
|
398
|
-
<div className="flex items-center gap-6">
|
|
399
|
-
<button className="font-[Inter,sans-serif] text-xs tracking-tight text-[#87736D] hover:bg-[#F4F4F0] px-2 py-0.5 rounded transition-colors flex items-center gap-1">
|
|
400
|
-
<span className="material-symbols-outlined text-[12px]">account_tree</span>
|
|
401
|
-
{mockStatusBar.branch}
|
|
402
|
-
</button>
|
|
403
|
-
<button className="font-[Inter,sans-serif] text-xs tracking-tight text-[#87736D] hover:bg-[#F4F4F0] px-2 py-0.5 rounded transition-colors flex items-center gap-1">
|
|
404
|
-
<span className="material-symbols-outlined text-[12px]">layers</span>
|
|
405
|
-
{mockStatusBar.worktreeToggle}
|
|
406
|
-
</button>
|
|
407
|
-
<button className="font-[Inter,sans-serif] text-xs tracking-tight text-[#8F482F] font-bold hover:bg-[#F4F4F0] px-2 py-0.5 rounded transition-colors flex items-center gap-1">
|
|
408
|
-
<span className="material-symbols-outlined text-[12px]">toggle_on</span>
|
|
409
|
-
{mockStatusBar.localSwitch}
|
|
410
|
-
</button>
|
|
411
|
-
</div>
|
|
412
|
-
</footer>
|
|
413
|
-
</main>
|
|
414
|
-
</div>
|
|
415
|
-
)
|
|
416
|
-
}
|