local-operator-ui 0.12.8 → 0.13.0

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 (143) hide show
  1. package/out/main/index.jsc +0 -0
  2. package/out/preload/index.jsc +0 -0
  3. package/out/renderer/assets/_basePickBy-Dt8NA_1A.js +1 -0
  4. package/out/renderer/assets/_baseUniq-Dfn2rCfr.js +1 -0
  5. package/out/renderer/assets/agent-details-page-CJJgDqdX.js +6 -0
  6. package/out/renderer/assets/agent-hub-page-CznUZD2f.js +11 -0
  7. package/out/renderer/assets/agents-page-COdPTFYp.js +18 -0
  8. package/out/renderer/assets/arc-C1_J1TYO.js +1 -0
  9. package/out/renderer/assets/architectureDiagram-IEHRJDOE-p5UIRlv1.js +36 -0
  10. package/out/renderer/assets/asn1-EdZsLKOL.js +1 -0
  11. package/out/renderer/assets/band-CquvqAHh.js +1 -0
  12. package/out/renderer/assets/blockDiagram-JOT3LUYC-Dk6LFvtm.js +121 -0
  13. package/out/renderer/assets/c4Diagram-VJAJSXHY-C0Hp8OKf.js +10 -0
  14. package/out/renderer/assets/channel-BqUr4Qsu.js +1 -0
  15. package/out/renderer/assets/chunk-4BMEZGHF-CV1FNkGZ.js +1 -0
  16. package/out/renderer/assets/chunk-A2AXSNBT-Co_5OkmZ.js +164 -0
  17. package/out/renderer/assets/chunk-AEK57VVT-Bu3wjBen.js +220 -0
  18. package/out/renderer/assets/chunk-D6G4REZN-BvFphnUv.js +1 -0
  19. package/out/renderer/assets/chunk-RZ5BOZE2-DBIcRvVx.js +1 -0
  20. package/out/renderer/assets/chunk-XZIHB7SX-DjSBj758.js +1 -0
  21. package/out/renderer/assets/classDiagram-GIVACNV2-DyZfTBa4.js +1 -0
  22. package/out/renderer/assets/classDiagram-v2-COTLJTTW-DyZfTBa4.js +1 -0
  23. package/out/renderer/assets/clojure-BMjYHr_A.js +1 -0
  24. package/out/renderer/assets/clone-hR8g0-gq.js +1 -0
  25. package/out/renderer/assets/css-BnMrqG3P.js +1 -0
  26. package/out/renderer/assets/cytoscape.esm-DHvQc-Lm.js +331 -0
  27. package/out/renderer/assets/dagre-OKDRZEBW-DbOc711m.js +4 -0
  28. package/out/renderer/assets/diagram-SSKATNLV-YLnBMg9L.js +43 -0
  29. package/out/renderer/assets/diagram-VNBRO52H-DHzPX2Ws.js +24 -0
  30. package/out/renderer/assets/erDiagram-Q7BY3M3F-CxFuapOs.js +60 -0
  31. package/out/renderer/assets/flowDiagram-4HSFHLVR-D5vc3yns.js +161 -0
  32. package/out/renderer/assets/ganttDiagram-APWFNJXF-ejBZIm6I.js +257 -0
  33. package/out/renderer/assets/gitGraphDiagram-7IBYFJ6S-6m7tU_G2.js +65 -0
  34. package/out/renderer/assets/graph-DIHt6FPP.js +1 -0
  35. package/out/renderer/assets/icon-CTN1YQYZ.js +195 -0
  36. package/out/renderer/assets/icon-nCvgDdVX.css +1 -0
  37. package/out/renderer/assets/index-BpRBp6-j.js +7 -0
  38. package/out/renderer/assets/index-BweSWC55.js +1 -0
  39. package/out/renderer/assets/index-CLHdxmCS.js +1272 -0
  40. package/out/renderer/assets/index-DikLkf3S.css +1 -0
  41. package/out/renderer/assets/infoDiagram-PH2N3AL5-D1KBOewb.js +2 -0
  42. package/out/renderer/assets/init-Dmth1JHB.js +1 -0
  43. package/out/renderer/assets/installer-T4sGv29U.js +16 -0
  44. package/out/renderer/assets/javascript-qCveANmP.js +1 -0
  45. package/out/renderer/assets/journeyDiagram-U35MCT3I-DsqwRdF3.js +138 -0
  46. package/out/renderer/assets/kanban-definition-NDS4AKOZ-BQvBdP_9.js +88 -0
  47. package/out/renderer/assets/katex-BCx1q_2Y.css +1 -0
  48. package/out/renderer/assets/layout-C7qoUpVb.js +1 -0
  49. package/out/renderer/assets/linear-BfLTrHPc.js +1 -0
  50. package/out/renderer/assets/mermaid.core-CyfNZ-Rl.js +213 -0
  51. package/out/renderer/assets/mindmap-definition-ALO5MXBD-CTSdCgh1.js +95 -0
  52. package/out/renderer/assets/mllike-CXdrOF99.js +1 -0
  53. package/out/renderer/assets/ordinal-DILIJJjt.js +1 -0
  54. package/out/renderer/assets/page-header-CNXeqkJB.js +1 -0
  55. package/out/renderer/assets/parseISO-CyJpeshf.js +6 -0
  56. package/out/renderer/assets/pieDiagram-IB7DONF6-CeYuFnxD.js +30 -0
  57. package/out/renderer/assets/pug-DukmZTjD.js +1 -0
  58. package/out/renderer/assets/python-BuPzkPfP.js +1 -0
  59. package/out/renderer/assets/quadrantDiagram-7GDLP6J5-urCUNLvr.js +7 -0
  60. package/out/renderer/assets/radar-MK3ICKWK-D0m91kg2.js +128 -0
  61. package/out/renderer/assets/requirementDiagram-KVF5MWMF-7WDiFe7C.js +64 -0
  62. package/out/renderer/assets/rpm-CTu-6PCP.js +1 -0
  63. package/out/renderer/assets/sankeyDiagram-QLVOVGJD-BvCTETAk.js +10 -0
  64. package/out/renderer/assets/schedules-page-B2sb5H0L.js +115 -0
  65. package/out/renderer/assets/sequenceDiagram-X6HHIX6F-DGlKyLMu.js +122 -0
  66. package/out/renderer/assets/settings-page-DnOXVx9n.js +154 -0
  67. package/out/renderer/assets/settings-section-CBkMzMRA.js +6 -0
  68. package/out/renderer/assets/sql-D0XecflT.js +1 -0
  69. package/out/renderer/assets/square-pen-C9ah35lX.js +6 -0
  70. package/out/renderer/assets/stateDiagram-DGXRK772-BY_eMRWs.js +1 -0
  71. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-DecHc3j6.js +1 -0
  72. package/out/renderer/assets/step-DMJAOHzS.js +1 -0
  73. package/out/renderer/assets/time-BOTM2Tp0.js +1 -0
  74. package/out/renderer/assets/timeline-definition-BDJGKUSR-9Ezq9kKH.js +61 -0
  75. package/out/renderer/assets/ttcn-cfg-B9xdYoR4.js +1 -0
  76. package/out/renderer/assets/use-agent-like-mutation-BYo-fu7V.js +1 -0
  77. package/out/renderer/assets/xychartDiagram-VJFVF3MP-O2pD61nn.js +7 -0
  78. package/out/renderer/index.html +4 -4
  79. package/out/renderer/installer.html +3 -3
  80. package/package.json +50 -22
  81. package/out/renderer/assets/GeistMonoNerdFontMono-Black-CPyfXpD2.otf +0 -0
  82. package/out/renderer/assets/GeistMonoNerdFontMono-Light-CRgGhpeL.otf +0 -0
  83. package/out/renderer/assets/GeistMonoNerdFontMono-Medium-Dui3XGJy.otf +0 -0
  84. package/out/renderer/assets/GeistMonoNerdFontMono-Thin-D5jufbuH.otf +0 -0
  85. package/out/renderer/assets/GeistMonoNerdFontMono-UltraBlack-CChzVbOW.otf +0 -0
  86. package/out/renderer/assets/_basePickBy-r2aXAOsL.js +0 -195
  87. package/out/renderer/assets/_baseUniq-D1q05gkP.js +0 -835
  88. package/out/renderer/assets/arc-C8P5FVle.js +0 -131
  89. package/out/renderer/assets/architectureDiagram-IEHRJDOE-DPIg4Szb.js +0 -8653
  90. package/out/renderer/assets/asn1-BnOEsgAm.js +0 -144
  91. package/out/renderer/assets/blockDiagram-JOT3LUYC-CadESEyh.js +0 -3585
  92. package/out/renderer/assets/c4Diagram-VJAJSXHY-Bwm7qPZT.js +0 -2487
  93. package/out/renderer/assets/channel-CNkAajOl.js +0 -7
  94. package/out/renderer/assets/chunk-4BMEZGHF-Cd6Ugs_R.js +0 -16
  95. package/out/renderer/assets/chunk-A2AXSNBT-_IEK938Y.js +0 -1827
  96. package/out/renderer/assets/chunk-AEK57VVT-Bw6Q4Aho.js +0 -1953
  97. package/out/renderer/assets/chunk-D6G4REZN-Br1Eyqt6.js +0 -108
  98. package/out/renderer/assets/chunk-RZ5BOZE2-X6Sa-Q0M.js +0 -34
  99. package/out/renderer/assets/chunk-XZIHB7SX-RK0OPtA_.js +0 -19
  100. package/out/renderer/assets/classDiagram-GIVACNV2-YPshJTr5.js +0 -21
  101. package/out/renderer/assets/classDiagram-v2-COTLJTTW-YPshJTr5.js +0 -21
  102. package/out/renderer/assets/clear-icon-with-text-Cu96UxOE.png +0 -0
  103. package/out/renderer/assets/clojure-BhXMqnxz.js +0 -849
  104. package/out/renderer/assets/clone-X3ZviHzc.js +0 -8
  105. package/out/renderer/assets/css-c-jst79C.js +0 -1783
  106. package/out/renderer/assets/cytoscape.esm-C0AOj4uS.js +0 -30062
  107. package/out/renderer/assets/dagre-OKDRZEBW-5vG7a4GG.js +0 -695
  108. package/out/renderer/assets/diagram-SSKATNLV-BwrxRC8R.js +0 -304
  109. package/out/renderer/assets/diagram-VNBRO52H-CbLkfhK3.js +0 -193
  110. package/out/renderer/assets/erDiagram-Q7BY3M3F-HGka70AV.js +0 -1160
  111. package/out/renderer/assets/flowDiagram-4HSFHLVR-VC6ihGE5.js +0 -2324
  112. package/out/renderer/assets/fonts-CM-VN_uu.css +0 -64
  113. package/out/renderer/assets/fonts-C_Yt9Uwp.js +0 -31185
  114. package/out/renderer/assets/ganttDiagram-APWFNJXF-BwvtS1ZF.js +0 -2500
  115. package/out/renderer/assets/gitGraphDiagram-7IBYFJ6S-xkb8LAa8.js +0 -1204
  116. package/out/renderer/assets/graph-BJgnFmzX.js +0 -424
  117. package/out/renderer/assets/index-CKXTKikG.js +0 -406
  118. package/out/renderer/assets/index-CiPFa_9B.css +0 -10
  119. package/out/renderer/assets/index-CwYTFsgM.js +0 -365216
  120. package/out/renderer/assets/index-Dh3BvfiE.js +0 -312
  121. package/out/renderer/assets/infoDiagram-PH2N3AL5-KPNcVYCs.js +0 -33
  122. package/out/renderer/assets/installer-BVPNsAT_.js +0 -495
  123. package/out/renderer/assets/javascript-C3MnDRiU.js +0 -994
  124. package/out/renderer/assets/journeyDiagram-U35MCT3I-BA9LaOh7.js +0 -1199
  125. package/out/renderer/assets/kanban-definition-NDS4AKOZ-BpfW7V3F.js +0 -1046
  126. package/out/renderer/assets/layout-oWx16c9h.js +0 -2060
  127. package/out/renderer/assets/mindmap-definition-ALO5MXBD-CKSVFvob.js +0 -5836
  128. package/out/renderer/assets/mllike-DHn7xckP.js +0 -334
  129. package/out/renderer/assets/pieDiagram-IB7DONF6-C5a6ybEQ.js +0 -239
  130. package/out/renderer/assets/pug-By0kVCfm.js +0 -405
  131. package/out/renderer/assets/python-CvWbmiX4.js +0 -427
  132. package/out/renderer/assets/quadrantDiagram-7GDLP6J5-B2T8t-7u.js +0 -1340
  133. package/out/renderer/assets/radar-MK3ICKWK-BhEPuBKT.js +0 -16935
  134. package/out/renderer/assets/requirementDiagram-KVF5MWMF-Ca8iDSE_.js +0 -1163
  135. package/out/renderer/assets/rpm-C-DLY-If.js +0 -109
  136. package/out/renderer/assets/sankeyDiagram-QLVOVGJD-BrM2ucnA.js +0 -1201
  137. package/out/renderer/assets/sequenceDiagram-X6HHIX6F-C400GAYc.js +0 -3415
  138. package/out/renderer/assets/sql-BSrOzCRI.js +0 -354
  139. package/out/renderer/assets/stateDiagram-DGXRK772-BNTnHv0S.js +0 -467
  140. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-DdZmY8Y8.js +0 -21
  141. package/out/renderer/assets/timeline-definition-BDJGKUSR-DYJZs7IC.js +0 -1223
  142. package/out/renderer/assets/ttcn-cfg-Dc39-fIP.js +0 -133
  143. package/out/renderer/assets/xychartDiagram-VJFVF3MP-C8rPJ62-.js +0 -1800
@@ -1,495 +0,0 @@
1
- import { c as createLucideIcon, s as styled, B as Box, k as keyframes, T as Typography, r as reactExports, W as Wrench, C as Code, H as HardDrive, j as jsxRuntimeExports, u as useTheme, a as Button, b as alpha, d as getTheme, D as DEFAULT_THEME, e as ThemeProvider, f as CssBaseline, R as ReactDOM, h as React, E as ErrorBoundary } from "./fonts-C_Yt9Uwp.js";
2
- /**
3
- * @license lucide-react v0.507.0 - ISC
4
- *
5
- * This source code is licensed under the ISC license.
6
- * See the LICENSE file in the root directory of this source tree.
7
- */
8
- const __iconNode$2 = [
9
- ["path", { d: "m11 17 2 2a1 1 0 1 0 3-3", key: "efffak" }],
10
- [
11
- "path",
12
- {
13
- d: "m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4",
14
- key: "9pr0kb"
15
- }
16
- ],
17
- ["path", { d: "m21 3 1 11h-2", key: "1tisrp" }],
18
- ["path", { d: "M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3", key: "1uvwmv" }],
19
- ["path", { d: "M3 4h8", key: "1ep09j" }]
20
- ];
21
- const Handshake = createLucideIcon("handshake", __iconNode$2);
22
- /**
23
- * @license lucide-react v0.507.0 - ISC
24
- *
25
- * This source code is licensed under the ISC license.
26
- * See the LICENSE file in the root directory of this source tree.
27
- */
28
- const __iconNode$1 = [
29
- [
30
- "path",
31
- {
32
- d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
33
- key: "oel41y"
34
- }
35
- ],
36
- ["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
37
- ];
38
- const ShieldCheck = createLucideIcon("shield-check", __iconNode$1);
39
- /**
40
- * @license lucide-react v0.507.0 - ISC
41
- *
42
- * This source code is licensed under the ISC license.
43
- * See the LICENSE file in the root directory of this source tree.
44
- */
45
- const __iconNode = [
46
- ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
47
- ["circle", { cx: "12", cy: "12", r: "6", key: "1vlfrh" }],
48
- ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }]
49
- ];
50
- const Target = createLucideIcon("target", __iconNode);
51
- const AppContainer = styled(Box)(({ theme }) => ({
52
- display: "flex",
53
- height: "100vh",
54
- width: "100vw",
55
- overflow: "hidden",
56
- backgroundColor: theme.palette.background.default
57
- // Use theme variable
58
- }));
59
- const InstallerLayout = styled(Box)(() => ({
60
- display: "flex",
61
- width: "100%",
62
- height: "100%",
63
- "@media (max-width: 900px)": {
64
- flexDirection: "column"
65
- }
66
- }));
67
- const FeatureSection = styled(Box)(({ theme }) => ({
68
- flex: "1 1 50%",
69
- display: "flex",
70
- flexDirection: "column",
71
- justifyContent: "center",
72
- alignItems: "center",
73
- padding: theme.spacing(6),
74
- // Use theme spacing
75
- backgroundColor: theme.palette.background.paper,
76
- // Solid, slightly lighter background
77
- position: "relative",
78
- overflow: "hidden",
79
- "&::after": {
80
- content: '""',
81
- position: "absolute",
82
- top: 0,
83
- right: 0,
84
- bottom: 0,
85
- width: "1px",
86
- backgroundColor: theme.palette.divider
87
- // Softer divider
88
- },
89
- "@media (max-width: 900px)": {
90
- flex: "1 1 auto",
91
- padding: theme.spacing(4, 3),
92
- "&::after": {
93
- width: "100%",
94
- height: "1px",
95
- bottom: 0,
96
- right: "auto"
97
- }
98
- }
99
- }));
100
- const ProgressSection = styled(Box)(({ theme }) => ({
101
- flex: "1 1 50%",
102
- display: "flex",
103
- flexDirection: "column",
104
- justifyContent: "center",
105
- alignItems: "center",
106
- padding: theme.spacing(6),
107
- // Use theme spacing
108
- backgroundColor: theme.palette.background.default,
109
- // Main background for contrast
110
- "@media (max-width: 900px)": {
111
- flex: "1 1 auto",
112
- padding: theme.spacing(4, 3)
113
- }
114
- }));
115
- const SpinnerContainer = styled(Box)(() => ({
116
- display: "flex",
117
- justifyContent: "center",
118
- margin: "16px 0"
119
- }));
120
- const Spinner = styled(Box)(({ theme }) => ({
121
- width: "40px",
122
- // Slightly smaller
123
- height: "40px",
124
- border: `4px solid ${theme.palette.action.disabledBackground}`,
125
- // Muted track
126
- borderRadius: "50%",
127
- borderTopColor: theme.palette.primary.main,
128
- // Accent color for spinner part
129
- animation: "spin 0.8s linear infinite",
130
- // Smoother, faster animation
131
- "@keyframes spin": {
132
- to: { transform: "rotate(360deg)" }
133
- }
134
- }));
135
- const LogoContainer = styled(Box)(() => ({
136
- marginBottom: "24px",
137
- display: "flex",
138
- justifyContent: "center",
139
- alignItems: "center",
140
- height: "120px"
141
- }));
142
- const FeatureIconContainer = styled(Box)(({ theme }) => ({
143
- width: "64px",
144
- // Smaller icon container
145
- height: "64px",
146
- borderRadius: theme.shape.borderRadius * 2,
147
- // Rounded square like shadcn cards
148
- display: "flex",
149
- justifyContent: "center",
150
- alignItems: "center",
151
- marginBottom: theme.spacing(3),
152
- backgroundColor: theme.palette.action.hover,
153
- // Muted background
154
- // border: `1px solid ${theme.palette.divider}`, // Subtle border
155
- color: theme.palette.primary.main,
156
- // Icon color
157
- fontSize: "2rem"
158
- // Adjusted icon size
159
- }));
160
- const fadeIn = keyframes`
161
- from {
162
- opacity: 0;
163
- transform: translateY(10px);
164
- }
165
- to {
166
- opacity: 1;
167
- transform: translateY(0);
168
- }
169
- `;
170
- const fadeOut = keyframes`
171
- from {
172
- opacity: 1;
173
- transform: translateY(0);
174
- }
175
- to {
176
- opacity: 0;
177
- transform: translateY(-10px);
178
- }
179
- `;
180
- const FeatureContent = styled(Box)(
181
- ({ isActive }) => ({
182
- display: "flex",
183
- flexDirection: "column",
184
- alignItems: "center",
185
- textAlign: "center",
186
- maxWidth: "480px",
187
- animation: isActive ? `${fadeIn} 0.5s ease-out forwards` : `${fadeOut} 0.5s ease-out forwards`,
188
- position: "absolute"
189
- })
190
- );
191
- const FeatureTitle = styled(Typography)(({ theme }) => ({
192
- fontSize: "1.5rem",
193
- // Adjusted size
194
- fontWeight: 600,
195
- marginBottom: theme.spacing(1.5),
196
- color: theme.palette.text.primary
197
- // Solid color
198
- }));
199
- const FeatureDescription = styled(Typography)(({ theme }) => ({
200
- fontSize: "0.9rem",
201
- // Slightly smaller for balance
202
- lineHeight: 1.7,
203
- // Increased line height for readability
204
- color: theme.palette.text.secondary,
205
- maxWidth: "400px"
206
- // Limit width for better readability
207
- }));
208
- const ProgressDots = styled(Box)(() => ({
209
- display: "flex",
210
- justifyContent: "center",
211
- gap: "8px",
212
- marginTop: "0",
213
- position: "relative",
214
- bottom: "0"
215
- }));
216
- const ProgressDot = styled(Box)(
217
- ({ active, theme }) => ({
218
- width: "10px",
219
- // Slightly larger dots
220
- height: "10px",
221
- borderRadius: "50%",
222
- backgroundColor: active ? theme.palette.primary.main : theme.palette.action.disabledBackground,
223
- // Muted inactive color
224
- transition: "background-color 0.3s ease, transform 0.3s ease",
225
- cursor: "pointer",
226
- "&:hover": {
227
- transform: "scale(1.2)"
228
- }
229
- })
230
- );
231
- const BackgroundPattern = styled(Box)(() => ({
232
- position: "absolute",
233
- top: 0,
234
- left: 0,
235
- right: 0,
236
- bottom: 0,
237
- opacity: 0.03,
238
- // Even more subtle
239
- backgroundImage: "radial-gradient(rgba(255, 255, 255, 0.05) 0.5px, transparent 0.5px)",
240
- // Smaller dots
241
- backgroundSize: "20px 20px",
242
- // Smaller grid
243
- pointerEvents: "none"
244
- }));
245
- const features = [
246
- {
247
- icon: Target,
248
- title: "Plans & Executes",
249
- description: "Breaks down complex goals into manageable steps and executes them with precision."
250
- },
251
- {
252
- icon: ShieldCheck,
253
- title: "Prioritizes Security",
254
- description: "Built-in safety checks by independent AI review and user confirmations keep your system protected."
255
- },
256
- {
257
- icon: Wrench,
258
- title: "Agentic Problem Solving",
259
- description: "Agents can intelligently handle errors and roadblocks by adapting approaches and finding alternative solutions."
260
- },
261
- {
262
- icon: Code,
263
- title: "Universal Problem Solvers",
264
- description: "Local Operator agents use code as a universal tool to make their own integrations on the fly and creatively solve problems."
265
- },
266
- {
267
- icon: Handshake,
268
- title: "Agent-to-Agent Communication",
269
- description: "Agents can delegate tasks and communicate with each other to solve more complex problems."
270
- },
271
- {
272
- icon: HardDrive,
273
- title: "On-Device Work",
274
- description: "Agents can work on your device, reducing the back and forth between your files and the cloud, and improving privacy."
275
- }
276
- ];
277
- const FeatureCarousel = () => {
278
- const [activeFeature, setActiveFeature] = reactExports.useState(0);
279
- reactExports.useEffect(() => {
280
- const interval = setInterval(() => {
281
- setActiveFeature((prev) => (prev + 1) % features.length);
282
- }, 5e3);
283
- return () => clearInterval(interval);
284
- }, []);
285
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
286
- Box,
287
- {
288
- sx: {
289
- position: "relative",
290
- height: "300px",
291
- width: "100%",
292
- display: "flex",
293
- flexDirection: "column",
294
- justifyContent: "center",
295
- alignItems: "center"
296
- },
297
- children: [
298
- /* @__PURE__ */ jsxRuntimeExports.jsx(
299
- Box,
300
- {
301
- sx: {
302
- position: "relative",
303
- height: "240px",
304
- width: "100%",
305
- display: "flex",
306
- justifyContent: "center",
307
- alignItems: "center",
308
- mb: 4
309
- },
310
- children: features.map((feature, index) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
311
- FeatureContent,
312
- {
313
- isActive: index === activeFeature,
314
- sx: {
315
- opacity: index === activeFeature ? 1 : 0,
316
- pointerEvents: index === activeFeature ? "auto" : "none"
317
- },
318
- children: [
319
- /* @__PURE__ */ jsxRuntimeExports.jsx(FeatureIconContainer, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(feature.icon, { size: 32, strokeWidth: 1 }) }),
320
- /* @__PURE__ */ jsxRuntimeExports.jsx(FeatureTitle, { variant: "h4", children: feature.title }),
321
- /* @__PURE__ */ jsxRuntimeExports.jsx(FeatureDescription, { children: feature.description })
322
- ]
323
- },
324
- feature.title
325
- ))
326
- }
327
- ),
328
- /* @__PURE__ */ jsxRuntimeExports.jsx(ProgressDots, { children: features.map((feature, index) => /* @__PURE__ */ jsxRuntimeExports.jsx(
329
- ProgressDot,
330
- {
331
- active: index === activeFeature,
332
- onClick: () => setActiveFeature(index),
333
- sx: { cursor: "pointer" }
334
- },
335
- `dot-${feature.title}`
336
- )) })
337
- ]
338
- }
339
- );
340
- };
341
- const InstallationProgress = () => {
342
- const theme = useTheme();
343
- const handleCancel = () => {
344
- window.api.ipcRenderer.send("cancel-installation");
345
- };
346
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
347
- Box,
348
- {
349
- sx: {
350
- display: "flex",
351
- flexDirection: "column",
352
- gap: 4,
353
- width: "100%",
354
- maxWidth: "520px"
355
- },
356
- children: [
357
- /* @__PURE__ */ jsxRuntimeExports.jsx(Box, { sx: { textAlign: "center" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "gradientTitle", children: "Setting Up Your Environment" }) }),
358
- /* @__PURE__ */ jsxRuntimeExports.jsx(Box, { sx: { width: "100%" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
359
- Typography,
360
- {
361
- variant: "body1",
362
- color: "text.secondary",
363
- sx: { textAlign: "center", mb: 3, fontSize: "1rem" },
364
- children: "We're preparing the magic behind the scenes! This one-time setup ensures you'll have the best experience with Local Operator."
365
- }
366
- ) }),
367
- /* @__PURE__ */ jsxRuntimeExports.jsxs(SpinnerContainer, { sx: { my: 2 }, children: [
368
- " ",
369
- /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, {})
370
- ] }),
371
- /* @__PURE__ */ jsxRuntimeExports.jsx(
372
- Typography,
373
- {
374
- variant: "body1",
375
- sx: { textAlign: "center", color: "text.secondary", fontSize: "1rem" },
376
- children: "Installing Python and other AI dependencies for Local Operator assistants on your device..."
377
- }
378
- ),
379
- /* @__PURE__ */ jsxRuntimeExports.jsx(
380
- Typography,
381
- {
382
- variant: "body1",
383
- sx: {
384
- textAlign: "center",
385
- color: "text.secondary",
386
- fontSize: "0.875rem"
387
- },
388
- children: "This will take a few minutes. You can minimize this window and continue using your computer in the meantime, you will get a notification when it's done."
389
- }
390
- ),
391
- /* @__PURE__ */ jsxRuntimeExports.jsx(
392
- Button,
393
- {
394
- variant: "outlined",
395
- color: "error",
396
- onClick: handleCancel,
397
- sx: {
398
- alignSelf: "center",
399
- px: 3,
400
- py: 1,
401
- borderRadius: theme.shape.borderRadius,
402
- borderColor: theme.palette.error.main,
403
- "&:hover": {
404
- backgroundColor: alpha(theme.palette.error.main, 0.08),
405
- borderColor: theme.palette.error.dark
406
- }
407
- },
408
- children: "Cancel Setup"
409
- }
410
- )
411
- ]
412
- }
413
- );
414
- };
415
- const logo = "" + new URL("clear-icon-with-text-Cu96UxOE.png", import.meta.url).href;
416
- const LogoSection = () => {
417
- const theme = useTheme();
418
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
419
- /* @__PURE__ */ jsxRuntimeExports.jsx(LogoContainer, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
420
- Box,
421
- {
422
- component: "img",
423
- src: logo,
424
- alt: "Local Operator Logo",
425
- sx: {
426
- width: "auto",
427
- height: 120,
428
- objectFit: "contain",
429
- display: "block"
430
- },
431
- onError: (e) => {
432
- e.currentTarget.src = "../assets/icon.png";
433
- }
434
- }
435
- ) }),
436
- /* @__PURE__ */ jsxRuntimeExports.jsx(
437
- Typography,
438
- {
439
- variant: "h3",
440
- sx: {
441
- textAlign: "center",
442
- mb: 2,
443
- fontWeight: 700,
444
- color: theme.palette.text.primary
445
- },
446
- children: "Local Operator"
447
- }
448
- ),
449
- /* @__PURE__ */ jsxRuntimeExports.jsx(
450
- Typography,
451
- {
452
- variant: "h6",
453
- sx: {
454
- textAlign: "center",
455
- mb: 4,
456
- color: theme.palette.text.secondary,
457
- maxWidth: "500px",
458
- fontWeight: 400
459
- },
460
- children: "Personal AI Assistants that Turn Ideas into Action"
461
- }
462
- )
463
- ] });
464
- };
465
- const InstallerContent = () => {
466
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(InstallerLayout, { children: [
467
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FeatureSection, { children: [
468
- /* @__PURE__ */ jsxRuntimeExports.jsx(BackgroundPattern, {}),
469
- /* @__PURE__ */ jsxRuntimeExports.jsx(LogoSection, {}),
470
- /* @__PURE__ */ jsxRuntimeExports.jsx(FeatureCarousel, {})
471
- ] }),
472
- /* @__PURE__ */ jsxRuntimeExports.jsx(ProgressSection, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(InstallationProgress, {}) })
473
- ] });
474
- };
475
- const defaultThemeOption = getTheme(DEFAULT_THEME);
476
- const defaultMuiTheme$1 = defaultThemeOption.theme;
477
- const InstallerApp = () => {
478
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(ThemeProvider, { theme: defaultMuiTheme$1, children: [
479
- /* @__PURE__ */ jsxRuntimeExports.jsx(CssBaseline, {}),
480
- /* @__PURE__ */ jsxRuntimeExports.jsx(AppContainer, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(InstallerContent, {}) })
481
- ] });
482
- };
483
- const defaultTheme = getTheme(DEFAULT_THEME);
484
- const defaultMuiTheme = defaultTheme.theme;
485
- document.addEventListener("DOMContentLoaded", () => {
486
- const root = ReactDOM.createRoot(
487
- document.getElementById("app")
488
- );
489
- root.render(
490
- /* @__PURE__ */ jsxRuntimeExports.jsx(React.StrictMode, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(ThemeProvider, { theme: defaultMuiTheme, children: [
491
- /* @__PURE__ */ jsxRuntimeExports.jsx(CssBaseline, {}),
492
- /* @__PURE__ */ jsxRuntimeExports.jsx(ErrorBoundary, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(InstallerApp, {}) })
493
- ] }) })
494
- );
495
- });