local-operator-ui 0.12.7 → 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-Xni00Dlk.js +0 -195
  87. package/out/renderer/assets/_baseUniq-JxZZknyU.js +0 -835
  88. package/out/renderer/assets/arc-BPRFPuHz.js +0 -131
  89. package/out/renderer/assets/architectureDiagram-IEHRJDOE-iKnn0iSS.js +0 -8653
  90. package/out/renderer/assets/asn1-BnOEsgAm.js +0 -144
  91. package/out/renderer/assets/blockDiagram-JOT3LUYC-BW-Yo0Fe.js +0 -3585
  92. package/out/renderer/assets/c4Diagram-VJAJSXHY-cTGz3ymz.js +0 -2487
  93. package/out/renderer/assets/channel-CsQk5gsI.js +0 -7
  94. package/out/renderer/assets/chunk-4BMEZGHF-DjpLWrPj.js +0 -16
  95. package/out/renderer/assets/chunk-A2AXSNBT-Blza621e.js +0 -1827
  96. package/out/renderer/assets/chunk-AEK57VVT-ZmlsDCZe.js +0 -1953
  97. package/out/renderer/assets/chunk-D6G4REZN-C7msyVje.js +0 -108
  98. package/out/renderer/assets/chunk-RZ5BOZE2-CWvJQJJl.js +0 -34
  99. package/out/renderer/assets/chunk-XZIHB7SX-C-gdVJBt.js +0 -19
  100. package/out/renderer/assets/classDiagram-GIVACNV2-BcRnaMRd.js +0 -21
  101. package/out/renderer/assets/classDiagram-v2-COTLJTTW-BcRnaMRd.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-3XFGex6Y.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-BMuSMCUF.js +0 -695
  108. package/out/renderer/assets/diagram-SSKATNLV-BCxxN7T6.js +0 -304
  109. package/out/renderer/assets/diagram-VNBRO52H-q41sVUvc.js +0 -193
  110. package/out/renderer/assets/erDiagram-Q7BY3M3F-BFd2rLsa.js +0 -1160
  111. package/out/renderer/assets/flowDiagram-4HSFHLVR-_Arrrk_3.js +0 -2324
  112. package/out/renderer/assets/fonts-CM-VN_uu.css +0 -64
  113. package/out/renderer/assets/fonts-DqkQ6BY5.js +0 -31168
  114. package/out/renderer/assets/ganttDiagram-APWFNJXF-Dzw68AV_.js +0 -2500
  115. package/out/renderer/assets/gitGraphDiagram-7IBYFJ6S-BlkO8Bzg.js +0 -1204
  116. package/out/renderer/assets/graph-DL-34vhw.js +0 -424
  117. package/out/renderer/assets/index-BDLsFoJv.js +0 -312
  118. package/out/renderer/assets/index-CiPFa_9B.css +0 -10
  119. package/out/renderer/assets/index-MaDq9HTX.js +0 -365078
  120. package/out/renderer/assets/index-vAasWWpO.js +0 -406
  121. package/out/renderer/assets/infoDiagram-PH2N3AL5-DO4pqvW_.js +0 -33
  122. package/out/renderer/assets/installer-Ct30gPA9.js +0 -511
  123. package/out/renderer/assets/javascript-C3MnDRiU.js +0 -994
  124. package/out/renderer/assets/journeyDiagram-U35MCT3I-BJQ-FRal.js +0 -1199
  125. package/out/renderer/assets/kanban-definition-NDS4AKOZ-B1zGbozL.js +0 -1046
  126. package/out/renderer/assets/layout-BrQGvDtH.js +0 -2060
  127. package/out/renderer/assets/mindmap-definition-ALO5MXBD-B5SNv6RZ.js +0 -5836
  128. package/out/renderer/assets/mllike-DHn7xckP.js +0 -334
  129. package/out/renderer/assets/pieDiagram-IB7DONF6-DKT0Bk2S.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-CFMDiFFE.js +0 -1340
  133. package/out/renderer/assets/radar-MK3ICKWK-DwsnroMG.js +0 -16935
  134. package/out/renderer/assets/requirementDiagram-KVF5MWMF-DPTaldQZ.js +0 -1163
  135. package/out/renderer/assets/rpm-C-DLY-If.js +0 -109
  136. package/out/renderer/assets/sankeyDiagram-QLVOVGJD-DIFNjSQ_.js +0 -1201
  137. package/out/renderer/assets/sequenceDiagram-X6HHIX6F-Chi1Y6mU.js +0 -3415
  138. package/out/renderer/assets/sql-BSrOzCRI.js +0 -354
  139. package/out/renderer/assets/stateDiagram-DGXRK772-DcmhTUVK.js +0 -467
  140. package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-Dy-oRm-T.js +0 -21
  141. package/out/renderer/assets/timeline-definition-BDJGKUSR-0y2wZWef.js +0 -1223
  142. package/out/renderer/assets/ttcn-cfg-Dc39-fIP.js +0 -133
  143. package/out/renderer/assets/xychartDiagram-VJFVF3MP-Bbr5uqsp.js +0 -1800
@@ -1,511 +0,0 @@
1
- import { c as createLucideIcon, s as styled, B as Box, k as keyframes, T as Typography, r as reactExports, 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-DqkQ6BY5.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$3 = [
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$3);
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$2 = [
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$2);
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$1 = [
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$1);
51
- /**
52
- * @license lucide-react v0.507.0 - ISC
53
- *
54
- * This source code is licensed under the ISC license.
55
- * See the LICENSE file in the root directory of this source tree.
56
- */
57
- const __iconNode = [
58
- [
59
- "path",
60
- {
61
- d: "M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",
62
- key: "cbrjhi"
63
- }
64
- ]
65
- ];
66
- const Wrench = createLucideIcon("wrench", __iconNode);
67
- const AppContainer = styled(Box)(({ theme }) => ({
68
- display: "flex",
69
- height: "100vh",
70
- width: "100vw",
71
- overflow: "hidden",
72
- backgroundColor: theme.palette.background.default
73
- // Use theme variable
74
- }));
75
- const InstallerLayout = styled(Box)(() => ({
76
- display: "flex",
77
- width: "100%",
78
- height: "100%",
79
- "@media (max-width: 900px)": {
80
- flexDirection: "column"
81
- }
82
- }));
83
- const FeatureSection = styled(Box)(({ theme }) => ({
84
- flex: "1 1 50%",
85
- display: "flex",
86
- flexDirection: "column",
87
- justifyContent: "center",
88
- alignItems: "center",
89
- padding: theme.spacing(6),
90
- // Use theme spacing
91
- backgroundColor: theme.palette.background.paper,
92
- // Solid, slightly lighter background
93
- position: "relative",
94
- overflow: "hidden",
95
- "&::after": {
96
- content: '""',
97
- position: "absolute",
98
- top: 0,
99
- right: 0,
100
- bottom: 0,
101
- width: "1px",
102
- backgroundColor: theme.palette.divider
103
- // Softer divider
104
- },
105
- "@media (max-width: 900px)": {
106
- flex: "1 1 auto",
107
- padding: theme.spacing(4, 3),
108
- "&::after": {
109
- width: "100%",
110
- height: "1px",
111
- bottom: 0,
112
- right: "auto"
113
- }
114
- }
115
- }));
116
- const ProgressSection = styled(Box)(({ theme }) => ({
117
- flex: "1 1 50%",
118
- display: "flex",
119
- flexDirection: "column",
120
- justifyContent: "center",
121
- alignItems: "center",
122
- padding: theme.spacing(6),
123
- // Use theme spacing
124
- backgroundColor: theme.palette.background.default,
125
- // Main background for contrast
126
- "@media (max-width: 900px)": {
127
- flex: "1 1 auto",
128
- padding: theme.spacing(4, 3)
129
- }
130
- }));
131
- const SpinnerContainer = styled(Box)(() => ({
132
- display: "flex",
133
- justifyContent: "center",
134
- margin: "16px 0"
135
- }));
136
- const Spinner = styled(Box)(({ theme }) => ({
137
- width: "40px",
138
- // Slightly smaller
139
- height: "40px",
140
- border: `4px solid ${theme.palette.action.disabledBackground}`,
141
- // Muted track
142
- borderRadius: "50%",
143
- borderTopColor: theme.palette.primary.main,
144
- // Accent color for spinner part
145
- animation: "spin 0.8s linear infinite",
146
- // Smoother, faster animation
147
- "@keyframes spin": {
148
- to: { transform: "rotate(360deg)" }
149
- }
150
- }));
151
- const LogoContainer = styled(Box)(() => ({
152
- marginBottom: "24px",
153
- display: "flex",
154
- justifyContent: "center",
155
- alignItems: "center",
156
- height: "120px"
157
- }));
158
- const FeatureIconContainer = styled(Box)(({ theme }) => ({
159
- width: "64px",
160
- // Smaller icon container
161
- height: "64px",
162
- borderRadius: theme.shape.borderRadius * 2,
163
- // Rounded square like shadcn cards
164
- display: "flex",
165
- justifyContent: "center",
166
- alignItems: "center",
167
- marginBottom: theme.spacing(3),
168
- backgroundColor: theme.palette.action.hover,
169
- // Muted background
170
- // border: `1px solid ${theme.palette.divider}`, // Subtle border
171
- color: theme.palette.primary.main,
172
- // Icon color
173
- fontSize: "2rem"
174
- // Adjusted icon size
175
- }));
176
- const fadeIn = keyframes`
177
- from {
178
- opacity: 0;
179
- transform: translateY(10px);
180
- }
181
- to {
182
- opacity: 1;
183
- transform: translateY(0);
184
- }
185
- `;
186
- const fadeOut = keyframes`
187
- from {
188
- opacity: 1;
189
- transform: translateY(0);
190
- }
191
- to {
192
- opacity: 0;
193
- transform: translateY(-10px);
194
- }
195
- `;
196
- const FeatureContent = styled(Box)(
197
- ({ isActive }) => ({
198
- display: "flex",
199
- flexDirection: "column",
200
- alignItems: "center",
201
- textAlign: "center",
202
- maxWidth: "480px",
203
- animation: isActive ? `${fadeIn} 0.5s ease-out forwards` : `${fadeOut} 0.5s ease-out forwards`,
204
- position: "absolute"
205
- })
206
- );
207
- const FeatureTitle = styled(Typography)(({ theme }) => ({
208
- fontSize: "1.5rem",
209
- // Adjusted size
210
- fontWeight: 600,
211
- marginBottom: theme.spacing(1.5),
212
- color: theme.palette.text.primary
213
- // Solid color
214
- }));
215
- const FeatureDescription = styled(Typography)(({ theme }) => ({
216
- fontSize: "0.9rem",
217
- // Slightly smaller for balance
218
- lineHeight: 1.7,
219
- // Increased line height for readability
220
- color: theme.palette.text.secondary,
221
- maxWidth: "400px"
222
- // Limit width for better readability
223
- }));
224
- const ProgressDots = styled(Box)(() => ({
225
- display: "flex",
226
- justifyContent: "center",
227
- gap: "8px",
228
- marginTop: "0",
229
- position: "relative",
230
- bottom: "0"
231
- }));
232
- const ProgressDot = styled(Box)(
233
- ({ active, theme }) => ({
234
- width: "10px",
235
- // Slightly larger dots
236
- height: "10px",
237
- borderRadius: "50%",
238
- backgroundColor: active ? theme.palette.primary.main : theme.palette.action.disabledBackground,
239
- // Muted inactive color
240
- transition: "background-color 0.3s ease, transform 0.3s ease",
241
- cursor: "pointer",
242
- "&:hover": {
243
- transform: "scale(1.2)"
244
- }
245
- })
246
- );
247
- const BackgroundPattern = styled(Box)(() => ({
248
- position: "absolute",
249
- top: 0,
250
- left: 0,
251
- right: 0,
252
- bottom: 0,
253
- opacity: 0.03,
254
- // Even more subtle
255
- backgroundImage: "radial-gradient(rgba(255, 255, 255, 0.05) 0.5px, transparent 0.5px)",
256
- // Smaller dots
257
- backgroundSize: "20px 20px",
258
- // Smaller grid
259
- pointerEvents: "none"
260
- }));
261
- const features = [
262
- {
263
- icon: Target,
264
- title: "Plans & Executes",
265
- description: "Breaks down complex goals into manageable steps and executes them with precision."
266
- },
267
- {
268
- icon: ShieldCheck,
269
- title: "Prioritizes Security",
270
- description: "Built-in safety checks by independent AI review and user confirmations keep your system protected."
271
- },
272
- {
273
- icon: Wrench,
274
- title: "Agentic Problem Solving",
275
- description: "Agents can intelligently handle errors and roadblocks by adapting approaches and finding alternative solutions."
276
- },
277
- {
278
- icon: Code,
279
- title: "Universal Problem Solvers",
280
- description: "Local Operator agents use code as a universal tool to make their own integrations on the fly and creatively solve problems."
281
- },
282
- {
283
- icon: Handshake,
284
- title: "Agent-to-Agent Communication",
285
- description: "Agents can delegate tasks and communicate with each other to solve more complex problems."
286
- },
287
- {
288
- icon: HardDrive,
289
- title: "On-Device Work",
290
- description: "Agents can work on your device, reducing the back and forth between your files and the cloud, and improving privacy."
291
- }
292
- ];
293
- const FeatureCarousel = () => {
294
- const [activeFeature, setActiveFeature] = reactExports.useState(0);
295
- reactExports.useEffect(() => {
296
- const interval = setInterval(() => {
297
- setActiveFeature((prev) => (prev + 1) % features.length);
298
- }, 5e3);
299
- return () => clearInterval(interval);
300
- }, []);
301
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
302
- Box,
303
- {
304
- sx: {
305
- position: "relative",
306
- height: "300px",
307
- width: "100%",
308
- display: "flex",
309
- flexDirection: "column",
310
- justifyContent: "center",
311
- alignItems: "center"
312
- },
313
- children: [
314
- /* @__PURE__ */ jsxRuntimeExports.jsx(
315
- Box,
316
- {
317
- sx: {
318
- position: "relative",
319
- height: "240px",
320
- width: "100%",
321
- display: "flex",
322
- justifyContent: "center",
323
- alignItems: "center",
324
- mb: 4
325
- },
326
- children: features.map((feature, index) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
327
- FeatureContent,
328
- {
329
- isActive: index === activeFeature,
330
- sx: {
331
- opacity: index === activeFeature ? 1 : 0,
332
- pointerEvents: index === activeFeature ? "auto" : "none"
333
- },
334
- children: [
335
- /* @__PURE__ */ jsxRuntimeExports.jsx(FeatureIconContainer, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(feature.icon, { size: 32, strokeWidth: 1 }) }),
336
- /* @__PURE__ */ jsxRuntimeExports.jsx(FeatureTitle, { variant: "h4", children: feature.title }),
337
- /* @__PURE__ */ jsxRuntimeExports.jsx(FeatureDescription, { children: feature.description })
338
- ]
339
- },
340
- feature.title
341
- ))
342
- }
343
- ),
344
- /* @__PURE__ */ jsxRuntimeExports.jsx(ProgressDots, { children: features.map((feature, index) => /* @__PURE__ */ jsxRuntimeExports.jsx(
345
- ProgressDot,
346
- {
347
- active: index === activeFeature,
348
- onClick: () => setActiveFeature(index),
349
- sx: { cursor: "pointer" }
350
- },
351
- `dot-${feature.title}`
352
- )) })
353
- ]
354
- }
355
- );
356
- };
357
- const InstallationProgress = () => {
358
- const theme = useTheme();
359
- const handleCancel = () => {
360
- window.api.ipcRenderer.send("cancel-installation");
361
- };
362
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
363
- Box,
364
- {
365
- sx: {
366
- display: "flex",
367
- flexDirection: "column",
368
- gap: 4,
369
- width: "100%",
370
- maxWidth: "520px"
371
- },
372
- children: [
373
- /* @__PURE__ */ jsxRuntimeExports.jsx(Box, { sx: { textAlign: "center" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "gradientTitle", children: "Setting Up Your Environment" }) }),
374
- /* @__PURE__ */ jsxRuntimeExports.jsx(Box, { sx: { width: "100%" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
375
- Typography,
376
- {
377
- variant: "body1",
378
- color: "text.secondary",
379
- sx: { textAlign: "center", mb: 3, fontSize: "1rem" },
380
- children: "We're preparing the magic behind the scenes! This one-time setup ensures you'll have the best experience with Local Operator."
381
- }
382
- ) }),
383
- /* @__PURE__ */ jsxRuntimeExports.jsxs(SpinnerContainer, { sx: { my: 2 }, children: [
384
- " ",
385
- /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, {})
386
- ] }),
387
- /* @__PURE__ */ jsxRuntimeExports.jsx(
388
- Typography,
389
- {
390
- variant: "body1",
391
- sx: { textAlign: "center", color: "text.secondary", fontSize: "1rem" },
392
- children: "Installing Python and other AI dependencies for Local Operator assistants on your device..."
393
- }
394
- ),
395
- /* @__PURE__ */ jsxRuntimeExports.jsx(
396
- Typography,
397
- {
398
- variant: "body1",
399
- sx: {
400
- textAlign: "center",
401
- color: "text.secondary",
402
- fontSize: "0.875rem"
403
- },
404
- 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."
405
- }
406
- ),
407
- /* @__PURE__ */ jsxRuntimeExports.jsx(
408
- Button,
409
- {
410
- variant: "outlined",
411
- color: "error",
412
- onClick: handleCancel,
413
- sx: {
414
- alignSelf: "center",
415
- px: 3,
416
- py: 1,
417
- borderRadius: theme.shape.borderRadius,
418
- borderColor: theme.palette.error.main,
419
- "&:hover": {
420
- backgroundColor: alpha(theme.palette.error.main, 0.08),
421
- borderColor: theme.palette.error.dark
422
- }
423
- },
424
- children: "Cancel Setup"
425
- }
426
- )
427
- ]
428
- }
429
- );
430
- };
431
- const logo = "" + new URL("clear-icon-with-text-Cu96UxOE.png", import.meta.url).href;
432
- const LogoSection = () => {
433
- const theme = useTheme();
434
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
435
- /* @__PURE__ */ jsxRuntimeExports.jsx(LogoContainer, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
436
- Box,
437
- {
438
- component: "img",
439
- src: logo,
440
- alt: "Local Operator Logo",
441
- sx: {
442
- width: "auto",
443
- height: 120,
444
- objectFit: "contain",
445
- display: "block"
446
- },
447
- onError: (e) => {
448
- e.currentTarget.src = "../assets/icon.png";
449
- }
450
- }
451
- ) }),
452
- /* @__PURE__ */ jsxRuntimeExports.jsx(
453
- Typography,
454
- {
455
- variant: "h3",
456
- sx: {
457
- textAlign: "center",
458
- mb: 2,
459
- fontWeight: 700,
460
- color: theme.palette.text.primary
461
- },
462
- children: "Local Operator"
463
- }
464
- ),
465
- /* @__PURE__ */ jsxRuntimeExports.jsx(
466
- Typography,
467
- {
468
- variant: "h6",
469
- sx: {
470
- textAlign: "center",
471
- mb: 4,
472
- color: theme.palette.text.secondary,
473
- maxWidth: "500px",
474
- fontWeight: 400
475
- },
476
- children: "Personal AI Assistants that Turn Ideas into Action"
477
- }
478
- )
479
- ] });
480
- };
481
- const InstallerContent = () => {
482
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(InstallerLayout, { children: [
483
- /* @__PURE__ */ jsxRuntimeExports.jsxs(FeatureSection, { children: [
484
- /* @__PURE__ */ jsxRuntimeExports.jsx(BackgroundPattern, {}),
485
- /* @__PURE__ */ jsxRuntimeExports.jsx(LogoSection, {}),
486
- /* @__PURE__ */ jsxRuntimeExports.jsx(FeatureCarousel, {})
487
- ] }),
488
- /* @__PURE__ */ jsxRuntimeExports.jsx(ProgressSection, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(InstallationProgress, {}) })
489
- ] });
490
- };
491
- const defaultThemeOption = getTheme(DEFAULT_THEME);
492
- const defaultMuiTheme$1 = defaultThemeOption.theme;
493
- const InstallerApp = () => {
494
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(ThemeProvider, { theme: defaultMuiTheme$1, children: [
495
- /* @__PURE__ */ jsxRuntimeExports.jsx(CssBaseline, {}),
496
- /* @__PURE__ */ jsxRuntimeExports.jsx(AppContainer, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(InstallerContent, {}) })
497
- ] });
498
- };
499
- const defaultTheme = getTheme(DEFAULT_THEME);
500
- const defaultMuiTheme = defaultTheme.theme;
501
- document.addEventListener("DOMContentLoaded", () => {
502
- const root = ReactDOM.createRoot(
503
- document.getElementById("app")
504
- );
505
- root.render(
506
- /* @__PURE__ */ jsxRuntimeExports.jsx(React.StrictMode, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(ThemeProvider, { theme: defaultMuiTheme, children: [
507
- /* @__PURE__ */ jsxRuntimeExports.jsx(CssBaseline, {}),
508
- /* @__PURE__ */ jsxRuntimeExports.jsx(ErrorBoundary, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(InstallerApp, {}) })
509
- ] }) })
510
- );
511
- });