bingocode 1.0.3 → 1.0.4

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.
Files changed (184) hide show
  1. package/package.json +1 -1
  2. package/desktop/README.md +0 -30
  3. package/desktop/bunfig.toml +0 -1
  4. package/desktop/index.html +0 -17
  5. package/desktop/package.json +0 -55
  6. package/desktop/pnpm-lock.yaml +0 -3832
  7. package/desktop/public/app-icon.jpg +0 -0
  8. package/desktop/public/fonts/inter-latin-ext.woff2 +0 -0
  9. package/desktop/public/fonts/inter-latin.woff2 +0 -0
  10. package/desktop/public/fonts/jetbrains-mono-latin-ext.woff2 +0 -0
  11. package/desktop/public/fonts/jetbrains-mono-latin.woff2 +0 -0
  12. package/desktop/public/fonts/manrope-latin-ext.woff2 +0 -0
  13. package/desktop/public/fonts/manrope-latin.woff2 +0 -0
  14. package/desktop/public/fonts/material-symbols-outlined.woff2 +0 -0
  15. package/desktop/public/icons/bilibili.svg +0 -1
  16. package/desktop/public/icons/douyin.svg +0 -1
  17. package/desktop/public/icons/github.svg +0 -3
  18. package/desktop/public/icons/xiaohongshu.svg +0 -1
  19. package/desktop/scripts/build-macos-arm64.sh +0 -270
  20. package/desktop/scripts/build-sidecars.ts +0 -183
  21. package/desktop/scripts/build-windows-x64.ps1 +0 -295
  22. package/desktop/scripts/scan-missing-imports.ts +0 -235
  23. package/desktop/sidecars/claude-sidecar.ts +0 -156
  24. package/desktop/src/App.tsx +0 -5
  25. package/desktop/src/__tests__/agentsSettings.test.tsx +0 -349
  26. package/desktop/src/__tests__/pages.test.tsx +0 -290
  27. package/desktop/src/__tests__/skillsSettings.test.tsx +0 -205
  28. package/desktop/src/api/adapters.ts +0 -12
  29. package/desktop/src/api/agents.ts +0 -36
  30. package/desktop/src/api/cliTasks.ts +0 -28
  31. package/desktop/src/api/client.ts +0 -63
  32. package/desktop/src/api/computerUse.ts +0 -76
  33. package/desktop/src/api/filesystem.ts +0 -30
  34. package/desktop/src/api/hahaOAuth.ts +0 -38
  35. package/desktop/src/api/models.ts +0 -28
  36. package/desktop/src/api/providers.ts +0 -63
  37. package/desktop/src/api/search.ts +0 -29
  38. package/desktop/src/api/sessions.ts +0 -56
  39. package/desktop/src/api/settings.ts +0 -20
  40. package/desktop/src/api/skills.ts +0 -19
  41. package/desktop/src/api/tasks.ts +0 -36
  42. package/desktop/src/api/teams.ts +0 -44
  43. package/desktop/src/api/websocket.ts +0 -164
  44. package/desktop/src/components/chat/AskUserQuestion.tsx +0 -268
  45. package/desktop/src/components/chat/AssistantMessage.tsx +0 -29
  46. package/desktop/src/components/chat/AttachmentGallery.tsx +0 -113
  47. package/desktop/src/components/chat/ChatInput.tsx +0 -622
  48. package/desktop/src/components/chat/CodeViewer.tsx +0 -161
  49. package/desktop/src/components/chat/ComputerUsePermissionModal.test.tsx +0 -174
  50. package/desktop/src/components/chat/ComputerUsePermissionModal.tsx +0 -311
  51. package/desktop/src/components/chat/DiffViewer.tsx +0 -157
  52. package/desktop/src/components/chat/FileSearchMenu.tsx +0 -198
  53. package/desktop/src/components/chat/ImageGalleryModal.tsx +0 -91
  54. package/desktop/src/components/chat/InlineImageGallery.tsx +0 -106
  55. package/desktop/src/components/chat/InlineTaskSummary.tsx +0 -60
  56. package/desktop/src/components/chat/MermaidRenderer.test.tsx +0 -98
  57. package/desktop/src/components/chat/MermaidRenderer.tsx +0 -361
  58. package/desktop/src/components/chat/MessageActionBar.tsx +0 -27
  59. package/desktop/src/components/chat/MessageList.test.tsx +0 -313
  60. package/desktop/src/components/chat/MessageList.tsx +0 -249
  61. package/desktop/src/components/chat/PermissionDialog.tsx +0 -262
  62. package/desktop/src/components/chat/SessionTaskBar.test.tsx +0 -99
  63. package/desktop/src/components/chat/SessionTaskBar.tsx +0 -159
  64. package/desktop/src/components/chat/StreamingIndicator.tsx +0 -41
  65. package/desktop/src/components/chat/TerminalChrome.tsx +0 -35
  66. package/desktop/src/components/chat/ThinkingBlock.tsx +0 -87
  67. package/desktop/src/components/chat/ToolCallBlock.tsx +0 -247
  68. package/desktop/src/components/chat/ToolCallGroup.tsx +0 -617
  69. package/desktop/src/components/chat/ToolResultBlock.tsx +0 -107
  70. package/desktop/src/components/chat/UserMessage.tsx +0 -38
  71. package/desktop/src/components/chat/chatBlocks.test.tsx +0 -136
  72. package/desktop/src/components/chat/clipboard.ts +0 -25
  73. package/desktop/src/components/chat/composerUtils.test.ts +0 -55
  74. package/desktop/src/components/chat/composerUtils.ts +0 -149
  75. package/desktop/src/components/controls/ModelSelector.tsx +0 -156
  76. package/desktop/src/components/controls/PermissionModeSelector.tsx +0 -229
  77. package/desktop/src/components/layout/AppShell.tsx +0 -107
  78. package/desktop/src/components/layout/ContentRouter.tsx +0 -27
  79. package/desktop/src/components/layout/ProjectFilter.tsx +0 -126
  80. package/desktop/src/components/layout/Sidebar.test.tsx +0 -158
  81. package/desktop/src/components/layout/Sidebar.tsx +0 -384
  82. package/desktop/src/components/layout/StatusBar.tsx +0 -31
  83. package/desktop/src/components/layout/TabBar.test.tsx +0 -136
  84. package/desktop/src/components/layout/TabBar.tsx +0 -318
  85. package/desktop/src/components/layout/TitleBar.tsx +0 -96
  86. package/desktop/src/components/layout/WindowControls.test.tsx +0 -69
  87. package/desktop/src/components/layout/WindowControls.tsx +0 -89
  88. package/desktop/src/components/markdown/MarkdownRenderer.test.tsx +0 -100
  89. package/desktop/src/components/markdown/MarkdownRenderer.tsx +0 -229
  90. package/desktop/src/components/settings/ClaudeOfficialLogin.tsx +0 -107
  91. package/desktop/src/components/shared/Button.tsx +0 -63
  92. package/desktop/src/components/shared/CopyButton.tsx +0 -58
  93. package/desktop/src/components/shared/DirectoryPicker.tsx +0 -316
  94. package/desktop/src/components/shared/Dropdown.tsx +0 -91
  95. package/desktop/src/components/shared/Input.tsx +0 -38
  96. package/desktop/src/components/shared/Modal.tsx +0 -65
  97. package/desktop/src/components/shared/ProjectContextChip.tsx +0 -30
  98. package/desktop/src/components/shared/Spinner.tsx +0 -30
  99. package/desktop/src/components/shared/Textarea.tsx +0 -38
  100. package/desktop/src/components/shared/Toast.tsx +0 -47
  101. package/desktop/src/components/shared/UpdateChecker.tsx +0 -90
  102. package/desktop/src/components/skills/SkillDetail.test.tsx +0 -89
  103. package/desktop/src/components/skills/SkillDetail.tsx +0 -403
  104. package/desktop/src/components/skills/SkillList.tsx +0 -254
  105. package/desktop/src/components/tasks/DayOfWeekPicker.tsx +0 -57
  106. package/desktop/src/components/tasks/NewTaskModal.tsx +0 -407
  107. package/desktop/src/components/tasks/PromptEditor.tsx +0 -74
  108. package/desktop/src/components/tasks/TaskEmptyState.tsx +0 -30
  109. package/desktop/src/components/tasks/TaskList.tsx +0 -46
  110. package/desktop/src/components/tasks/TaskRow.tsx +0 -253
  111. package/desktop/src/components/tasks/TaskRunsPanel.tsx +0 -195
  112. package/desktop/src/components/teams/TeamStatusBar.tsx +0 -147
  113. package/desktop/src/config/providerPresets.ts +0 -78
  114. package/desktop/src/config/spinnerVerbs.ts +0 -193
  115. package/desktop/src/hooks/useKeyboardShortcuts.ts +0 -60
  116. package/desktop/src/i18n/index.ts +0 -54
  117. package/desktop/src/i18n/locales/en.ts +0 -670
  118. package/desktop/src/i18n/locales/zh.ts +0 -670
  119. package/desktop/src/lib/__tests__/cronDescribe.test.ts +0 -93
  120. package/desktop/src/lib/cronDescribe.ts +0 -188
  121. package/desktop/src/lib/desktopRuntime.ts +0 -54
  122. package/desktop/src/lib/parseRunOutput.ts +0 -79
  123. package/desktop/src/main.tsx +0 -13
  124. package/desktop/src/mocks/data.ts +0 -202
  125. package/desktop/src/pages/ActiveSession.test.tsx +0 -181
  126. package/desktop/src/pages/ActiveSession.tsx +0 -219
  127. package/desktop/src/pages/AdapterSettings.tsx +0 -375
  128. package/desktop/src/pages/AgentTeams.tsx +0 -200
  129. package/desktop/src/pages/ComputerUseSettings.tsx +0 -420
  130. package/desktop/src/pages/EmptySession.tsx +0 -518
  131. package/desktop/src/pages/NewTaskModal.tsx +0 -346
  132. package/desktop/src/pages/ScheduledTasks.tsx +0 -66
  133. package/desktop/src/pages/ScheduledTasksEmpty.tsx +0 -152
  134. package/desktop/src/pages/ScheduledTasksList.tsx +0 -416
  135. package/desktop/src/pages/SessionControls.tsx +0 -460
  136. package/desktop/src/pages/Settings.tsx +0 -1448
  137. package/desktop/src/pages/ToolInspection.tsx +0 -235
  138. package/desktop/src/stores/adapterStore.ts +0 -106
  139. package/desktop/src/stores/agentStore.ts +0 -34
  140. package/desktop/src/stores/chatStore.test.ts +0 -505
  141. package/desktop/src/stores/chatStore.ts +0 -850
  142. package/desktop/src/stores/cliTaskStore.ts +0 -152
  143. package/desktop/src/stores/hahaOAuthStore.test.ts +0 -77
  144. package/desktop/src/stores/hahaOAuthStore.ts +0 -97
  145. package/desktop/src/stores/providerStore.ts +0 -101
  146. package/desktop/src/stores/sessionStore.test.ts +0 -63
  147. package/desktop/src/stores/sessionStore.ts +0 -102
  148. package/desktop/src/stores/settingsStore.ts +0 -120
  149. package/desktop/src/stores/skillStore.ts +0 -51
  150. package/desktop/src/stores/tabStore.ts +0 -169
  151. package/desktop/src/stores/taskStore.ts +0 -68
  152. package/desktop/src/stores/teamStore.ts +0 -344
  153. package/desktop/src/stores/uiStore.ts +0 -100
  154. package/desktop/src/stores/updateStore.test.ts +0 -71
  155. package/desktop/src/stores/updateStore.ts +0 -221
  156. package/desktop/src/theme/globals.css +0 -465
  157. package/desktop/src/types/adapter.ts +0 -33
  158. package/desktop/src/types/chat.ts +0 -152
  159. package/desktop/src/types/cliTask.ts +0 -24
  160. package/desktop/src/types/provider.ts +0 -62
  161. package/desktop/src/types/session.ts +0 -27
  162. package/desktop/src/types/settings.ts +0 -22
  163. package/desktop/src/types/skill.ts +0 -38
  164. package/desktop/src/types/task.ts +0 -56
  165. package/desktop/src/types/team.ts +0 -38
  166. package/desktop/src-tauri/Cargo.lock +0 -5549
  167. package/desktop/src-tauri/Cargo.toml +0 -20
  168. package/desktop/src-tauri/app-icon.svg +0 -13
  169. package/desktop/src-tauri/build.rs +0 -3
  170. package/desktop/src-tauri/capabilities/default.json +0 -106
  171. package/desktop/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml +0 -5
  172. package/desktop/src-tauri/icons/android/values/ic_launcher_background.xml +0 -4
  173. package/desktop/src-tauri/icons/icon.icns +0 -0
  174. package/desktop/src-tauri/icons/icon.ico +0 -0
  175. package/desktop/src-tauri/src/lib.rs +0 -408
  176. package/desktop/src-tauri/src/main.rs +0 -6
  177. package/desktop/src-tauri/tauri.conf.json +0 -78
  178. package/desktop/src-tauri/tauri.macos.conf.json +0 -18
  179. package/desktop/src-tauri/tauri.release-ci.json +0 -5
  180. package/desktop/src-tauri/tauri.windows.conf.json +0 -16
  181. package/desktop/src-tauri/windows-installer-hooks.nsh +0 -17
  182. package/desktop/tsconfig.json +0 -25
  183. package/desktop/vite.config.ts +0 -26
  184. 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} &bull; {mockStatusBar.username} &bull; {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
- }