local-operator-ui 0.1.2-beta.4 → 0.1.2-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  <h1 align="center">Local Operator: AI Agent Assistants On Your Device</h1>
9
9
  <div align="center">
10
- <h2>🤖 Your Personal Assistant that Gets Things Done with Python</h2>
10
+ <h2>🤖 Personal AI Assistants that Turn Ideas into Action</h2>
11
11
  <p><i>Real-time code execution on your device through natural conversation</i></p>
12
12
  </div>
13
13
 
Binary file
Binary file
@@ -1,4 +1,4 @@
1
- import { c as createStyled, r as resolveProps, u as useTheme, a as reactExports, b as clsx, d as useForkRef, j as jsxRuntimeExports, e as capitalize, f as composeClasses, g as createTheme, h as generateUtilityClass, i as generateUtilityClasses, k as useDefaultProps, s as styled$1, m as memoTheme, l as getDefaultExportFromCjs, n as requireReactDom, _ as _inheritsLoose, o as _objectWithoutPropertiesLoose$1, R as React, T as TransitionGroupContext, p as duration, q as useTheme$1, t as useTimeout, v as useId, B as ButtonBase, w as alpha, x as createSimplePaletteValueFilter, C as CircularProgress, P as Paper, y as darken, z as lighten, A as useEventCallback, D as setRef, E as useEnhancedEffect, F as useRtl, G as globalCss, H as formatMuiErrorMessage, I as rootShouldForwardProp, J as Typography, K as deepmerge, L as extendSxProp, M as resolveBreakpointValues, N as handleBreakpoints, O as getPath, Q as isFocusVisible, S as typographyClasses, U as slotShouldForwardProp, V as clamp, W as Timeout, X as React$1, Y as Box, Z as FontAwesomeIcon, $ as faRobot, a0 as faSliders, a1 as Button, a2 as faExclamationTriangle, a3 as faCheck, a4 as faTimes, a5 as faEraser, a6 as faPen, a7 as faInfoCircle, a8 as faGear, a9 as faServer, aa as faStar, ab as faTrash, ac as faCommentDots, ad as faCode, ae as faHome, af as faDownload, ag as faFileAlt, ah as faDesktop, ai as faImage, aj as faMusic, ak as faVideo, al as faLaptop, am as faUsers, an as faDatabase, ao as faBoxOpen, ap as faBook, aq as faHdd, ar as faBox, as as faArchive, at as faNetworkWired, au as faFolder, av as faFolderOpen, aw as faClock, ax as faChevronDown, ay as faTools, az as faArrowDown, aA as faPaperclip, aB as faStop, aC as faPaperPlane, aD as faUser, aE as faFile, aF as faEllipsisVertical, aG as faChevronLeft, aH as faChevronRight, aI as faPlus, aJ as faSearch, aK as faCommentSlash, aL as faArrowRight, aM as faComments, aN as faTag, aO as faIdCard, aP as faCalendarAlt, aQ as faCodeBranch, aR as faShieldAlt, aS as faArrowLeft, aT as keyframes, aU as faShield, aV as faSignOut, aW as faLightbulb, aX as faMagicWandSparkles, aY as faBrain, aZ as faWandMagicSparkles, a_ as faExternalLinkAlt, a$ as faKey, b0 as faGlobe, b1 as faLock, b2 as faEdit, b3 as faSave, b4 as faEnvelope, b5 as faCloudUploadAlt, b6 as faHistory, b7 as faListAlt, b8 as library$1, b9 as icons$1, ba as CssBaseline, bb as ReactDOM$1, bc as ThemeProvider, bd as theme, be as ErrorBoundary } from "./theme-CpOz1dKx.js";
1
+ import { c as createStyled, r as resolveProps, u as useTheme, a as reactExports, b as clsx, d as useForkRef, j as jsxRuntimeExports, e as capitalize, f as composeClasses, g as createTheme, h as generateUtilityClass, i as generateUtilityClasses, k as useDefaultProps, s as styled$1, m as memoTheme, l as getDefaultExportFromCjs, n as requireReactDom, _ as _inheritsLoose, o as _objectWithoutPropertiesLoose$1, R as React, T as TransitionGroupContext, p as duration, q as useTheme$1, t as useTimeout, v as useId, B as ButtonBase, w as alpha, x as createSimplePaletteValueFilter, C as CircularProgress, P as Paper, y as darken, z as lighten, A as useEventCallback, D as setRef, E as useEnhancedEffect, F as useRtl, G as globalCss, H as formatMuiErrorMessage, I as rootShouldForwardProp, J as Typography, K as deepmerge, L as extendSxProp, M as resolveBreakpointValues, N as handleBreakpoints, O as getPath, Q as isFocusVisible, S as typographyClasses, U as slotShouldForwardProp, V as clamp, W as Timeout, X as React$1, Y as Box, Z as FontAwesomeIcon, $ as faRobot, a0 as faSliders, a1 as Button, a2 as faExclamationTriangle, a3 as faCheck, a4 as faTimes, a5 as faEraser, a6 as faPen, a7 as faInfoCircle, a8 as faGear, a9 as faServer, aa as faStar, ab as faTrash, ac as faCommentDots, ad as faCode, ae as faHome, af as faDownload, ag as faFileAlt, ah as faDesktop, ai as faImage, aj as faMusic, ak as faVideo, al as faLaptop, am as faUsers, an as faDatabase, ao as faBoxOpen, ap as faBook, aq as faHdd, ar as faBox, as as faArchive, at as faNetworkWired, au as faFolder, av as faFolderOpen, aw as faClock, ax as faChevronDown, ay as faTools, az as faArrowDown, aA as faPaperclip, aB as faStop, aC as faPaperPlane, aD as faUser, aE as faFile, aF as faEllipsisVertical, aG as faComment, aH as faChevronLeft, aI as faChevronRight, aJ as faPlus, aK as faSearch, aL as faCommentSlash, aM as faArrowRight, aN as faComments, aO as faTag, aP as faIdCard, aQ as faCalendarAlt, aR as faCodeBranch, aS as faShieldAlt, aT as faArrowLeft, aU as keyframes, aV as faShield, aW as faSignOut, aX as faLightbulb, aY as faMagicWandSparkles, aZ as faBrain, a_ as faWandMagicSparkles, a$ as faExternalLinkAlt, b0 as faKey, b1 as faGlobe, b2 as faLock, b3 as faEdit, b4 as faSave, b5 as faEnvelope, b6 as faCloudUploadAlt, b7 as faHistory, b8 as faListAlt, b9 as library$1, ba as icons$1, bb as CssBaseline, bc as ReactDOM$1, bd as ThemeProvider, be as theme, bf as ErrorBoundary } from "./theme-IY_ZyJQp.js";
2
2
  const styled = createStyled();
3
3
  function getThemeProps(params) {
4
4
  const {
@@ -25166,7 +25166,7 @@ const ConfigApi = {
25166
25166
  * Retrieve the current system prompt content.
25167
25167
  *
25168
25168
  * @param baseUrl - The base URL of the Local Operator API
25169
- * @returns Promise resolving to the system prompt response
25169
+ * @returns Promise resolving to the system prompt response or null if no prompt exists
25170
25170
  */
25171
25171
  async getSystemPrompt(baseUrl) {
25172
25172
  const response = await fetch(`${baseUrl}/v1/config/system-prompt`, {
@@ -25175,6 +25175,9 @@ const ConfigApi = {
25175
25175
  Accept: "application/json"
25176
25176
  }
25177
25177
  });
25178
+ if (response.status === 204) {
25179
+ return null;
25180
+ }
25178
25181
  if (!response.ok) {
25179
25182
  throw new Error(
25180
25183
  `Get system prompt request failed: ${response.status} ${response.statusText}`
@@ -30147,11 +30150,14 @@ const useJobPolling = ({
30147
30150
  addMessage(conversationId, assistantMessage);
30148
30151
  }
30149
30152
  } else if (job.status === "failed") {
30153
+ const errorDetails = job.result?.error ? job.result.error : "No error details available";
30150
30154
  const errorMessage = {
30151
30155
  id: Date.now().toString(),
30152
30156
  role: "assistant",
30153
- message: "Sorry, there was an error processing your request. The job failed.",
30154
- timestamp: /* @__PURE__ */ new Date()
30157
+ message: "Sorry, there was an error processing your request.",
30158
+ stderr: errorDetails,
30159
+ timestamp: /* @__PURE__ */ new Date(),
30160
+ status: "error"
30155
30161
  };
30156
30162
  addMessage(conversationId, errorMessage);
30157
30163
  }
@@ -81834,7 +81840,7 @@ const OptionsMenu = styled$1(Menu)({
81834
81840
  borderRadius: 12
81835
81841
  }
81836
81842
  });
81837
- const SettingsMenuItem = styled$1(MenuItem)(({ theme: theme2 }) => ({
81843
+ const StyledMenuItem = styled$1(MenuItem)(({ theme: theme2 }) => ({
81838
81844
  padding: theme2.spacing(1.5, 2),
81839
81845
  "&:hover": {
81840
81846
  backgroundColor: "rgba(56, 201, 106, 0.08)"
@@ -81857,7 +81863,8 @@ const AgentOptionsMenu = ({
81857
81863
  onAgentDeleted,
81858
81864
  buttonSx = {},
81859
81865
  isAgentsPage = false,
81860
- onViewAgentSettings
81866
+ onViewAgentSettings,
81867
+ onChatWithAgent
81861
81868
  }) => {
81862
81869
  const [menuAnchorEl, setMenuAnchorEl] = reactExports.useState(null);
81863
81870
  const [isDeleteModalOpen, setIsDeleteModalOpen] = reactExports.useState(false);
@@ -81918,8 +81925,21 @@ const AgentOptionsMenu = ({
81918
81925
  horizontal: "right"
81919
81926
  },
81920
81927
  children: [
81928
+ isAgentsPage && onChatWithAgent && /* @__PURE__ */ jsxRuntimeExports.jsxs(
81929
+ StyledMenuItem,
81930
+ {
81931
+ onClick: () => {
81932
+ onChatWithAgent();
81933
+ handleCloseMenu();
81934
+ },
81935
+ children: [
81936
+ /* @__PURE__ */ jsxRuntimeExports.jsx(MenuItemIcon, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faComment, size: "sm" }) }),
81937
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Typography, { variant: "body2", children: "Chat with Agent" })
81938
+ ]
81939
+ }
81940
+ ),
81921
81941
  !isAgentsPage && onViewAgentSettings && /* @__PURE__ */ jsxRuntimeExports.jsxs(
81922
- SettingsMenuItem,
81942
+ StyledMenuItem,
81923
81943
  {
81924
81944
  onClick: () => {
81925
81945
  onViewAgentSettings();
@@ -84328,12 +84348,18 @@ const ChatPage = () => {
84328
84348
  }
84329
84349
  } catch (error2) {
84330
84350
  console.error("Error sending message:", error2);
84351
+ let errorDetails = "Unknown error occurred";
84352
+ if (error2 instanceof Error) {
84353
+ errorDetails = `${error2.message}
84354
+ ${error2.stack || ""}`;
84355
+ } else if (typeof error2 === "object" && error2 !== null) {
84356
+ errorDetails = JSON.stringify(error2, null, 2);
84357
+ }
84331
84358
  const errorMessage = {
84332
84359
  id: Date.now().toString(),
84333
84360
  role: "assistant",
84334
- message: "Sorry, there was an error processing your request. Please try again.",
84335
- stderr: error2 instanceof Error ? `${error2.message}
84336
- ${error2.stack || ""}` : "Unknown error occurred",
84361
+ message: "Sorry, there was an error processing your request.",
84362
+ stderr: errorDetails,
84337
84363
  timestamp: /* @__PURE__ */ new Date(),
84338
84364
  status: "error"
84339
84365
  };
@@ -85593,6 +85619,7 @@ const AgentsSidebar = ({
85593
85619
  selectedAgentId,
85594
85620
  onSelectAgent
85595
85621
  }) => {
85622
+ const navigate = useNavigate();
85596
85623
  const [searchQuery, setSearchQuery] = reactExports.useState("");
85597
85624
  const [isCreateDialogOpen, setIsCreateDialogOpen] = reactExports.useState(false);
85598
85625
  const perPage = 50;
@@ -85704,6 +85731,7 @@ const AgentsSidebar = ({
85704
85731
  onAgentDeleted: (deletedAgentId) => {
85705
85732
  refetch();
85706
85733
  },
85734
+ onChatWithAgent: () => navigate(`/chat/${agent.id}`),
85707
85735
  buttonSx: {
85708
85736
  mr: 0.5,
85709
85737
  width: 32,
@@ -85813,6 +85841,7 @@ const AgentDetailsContainer = styled$1(Box)({
85813
85841
  });
85814
85842
  const AgentsPage = () => {
85815
85843
  const { agentId, navigateToAgent, clearAgentId } = useAgentRouteParam();
85844
+ const navigate = useNavigate();
85816
85845
  const prevAgentIdRef = reactExports.useRef(agentId);
85817
85846
  const { setLastAgentsPageAgentId, getLastAgentId, clearLastAgentId } = useAgentSelectionStore();
85818
85847
  const { data: agents = [] } = useAgents();
@@ -85865,14 +85894,43 @@ const AgentsPage = () => {
85865
85894
  }
85866
85895
  ) }),
85867
85896
  /* @__PURE__ */ jsxRuntimeExports.jsx(ContentContainer$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(ContentInnerContainer, { children: [
85868
- /* @__PURE__ */ jsxRuntimeExports.jsx(
85869
- PageHeader,
85870
- {
85871
- title: "Agent Management",
85872
- icon: faRobot,
85873
- subtitle: "View, configure and manage your AI agents from a central dashboard"
85874
- }
85875
- ),
85897
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(Box, { sx: { position: "relative", width: "100%", mb: 2 }, children: [
85898
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
85899
+ PageHeader,
85900
+ {
85901
+ title: "Agent Management",
85902
+ icon: faRobot,
85903
+ subtitle: "View, configure and manage your AI agents from a central dashboard"
85904
+ }
85905
+ ),
85906
+ selectedAgent && /* @__PURE__ */ jsxRuntimeExports.jsx(Box, { sx: { position: "absolute", top: 0, right: 0 }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
85907
+ Tooltip,
85908
+ {
85909
+ title: `Chat with ${selectedAgent?.name || "this Agent"}`,
85910
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
85911
+ Button,
85912
+ {
85913
+ variant: "outlined",
85914
+ color: "primary",
85915
+ size: "small",
85916
+ startIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faComment }),
85917
+ onClick: () => navigate(`/chat/${selectedAgent.id}`),
85918
+ sx: {
85919
+ borderRadius: 2,
85920
+ textTransform: "none",
85921
+ fontWeight: 500,
85922
+ transition: "all 0.2s ease-in-out",
85923
+ "&:hover": {
85924
+ backgroundColor: alpha("#38C96A", 0.08),
85925
+ transform: "translateY(-1px)"
85926
+ }
85927
+ },
85928
+ children: "Chat"
85929
+ }
85930
+ )
85931
+ }
85932
+ ) })
85933
+ ] }),
85876
85934
  /* @__PURE__ */ jsxRuntimeExports.jsx(AgentDetailsContainer, { sx: { opacity: selectedAgent ? 1 : 0.7 }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
85877
85935
  AgentSettings,
85878
85936
  {
@@ -88945,6 +89003,9 @@ const useSystemPrompt = () => {
88945
89003
  try {
88946
89004
  const client = createLocalOperatorClient(apiConfig.baseUrl);
88947
89005
  const response = await client.config.getSystemPrompt();
89006
+ if (response === null) {
89007
+ return null;
89008
+ }
88948
89009
  if (response.status >= 400) {
88949
89010
  throw new Error(response.message || "Failed to fetch system prompt");
88950
89011
  }
@@ -89123,15 +89184,64 @@ const SystemPrompt = () => {
89123
89184
  const handleReset = () => {
89124
89185
  if (systemPromptData) {
89125
89186
  setSystemPrompt(systemPromptData.content);
89126
- setIsEdited(false);
89187
+ } else {
89188
+ setSystemPrompt("");
89127
89189
  }
89190
+ setIsEdited(false);
89128
89191
  };
89129
89192
  if (isLoading) {
89130
89193
  return /* @__PURE__ */ jsxRuntimeExports.jsx(StyledCard$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(StyledCardContent$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(LoadingContainer$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(CircularProgress, {}) }) }) });
89131
89194
  }
89132
- if (error || !systemPromptData) {
89195
+ if (error) {
89133
89196
  return /* @__PURE__ */ jsxRuntimeExports.jsx(StyledCard$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(StyledCardContent$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Alert, { severity: "error", children: "Failed to load system prompt. Please try again later." }) }) });
89134
89197
  }
89198
+ if (!systemPromptData) {
89199
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(StyledCard$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(StyledCardContent$1, { children: [
89200
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(CardTitle$1, { variant: "h6", children: [
89201
+ /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faRobot }),
89202
+ "System Prompt"
89203
+ ] }),
89204
+ /* @__PURE__ */ jsxRuntimeExports.jsx(CardDescription$1, { variant: "body2", children: "This system prompt is given to all Local Operator agents. It is useful to define some baseline expectations for the behavior of every agent in your environment. These instructions will be provided in addition to any specific instructions you may have defined for each agent." }),
89205
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
89206
+ StyledTextField,
89207
+ {
89208
+ label: "System Prompt",
89209
+ name: "systemPrompt",
89210
+ value: systemPrompt,
89211
+ onChange: handleInputChange,
89212
+ variant: "outlined",
89213
+ multiline: true,
89214
+ rows: 8,
89215
+ fullWidth: true,
89216
+ placeholder: "Enter instructions for how all agents should behave and respond to your requests..."
89217
+ }
89218
+ ),
89219
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(ButtonContainer, { children: [
89220
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
89221
+ Button,
89222
+ {
89223
+ variant: "contained",
89224
+ color: "primary",
89225
+ size: "small",
89226
+ startIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faSave }),
89227
+ onClick: handleSave,
89228
+ disabled: !isEdited || isSaving,
89229
+ children: isSaving ? /* @__PURE__ */ jsxRuntimeExports.jsx(CircularProgress, { size: 20 }) : "Save Changes"
89230
+ }
89231
+ ),
89232
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
89233
+ Button,
89234
+ {
89235
+ variant: "outlined",
89236
+ size: "small",
89237
+ onClick: handleReset,
89238
+ disabled: !isEdited || isSaving,
89239
+ children: "Cancel"
89240
+ }
89241
+ )
89242
+ ] })
89243
+ ] }) });
89244
+ }
89135
89245
  return /* @__PURE__ */ jsxRuntimeExports.jsx(StyledCard$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs(StyledCardContent$1, { children: [
89136
89246
  /* @__PURE__ */ jsxRuntimeExports.jsxs(CardTitle$1, { variant: "h6", children: [
89137
89247
  /* @__PURE__ */ jsxRuntimeExports.jsx(FontAwesomeIcon, { icon: faRobot }),
@@ -1,4 +1,4 @@
1
- import { h as generateUtilityClass, i as generateUtilityClasses, a as reactExports, k as useDefaultProps, F as useRtl, j as jsxRuntimeExports, s as styled, b as clsx, e as capitalize, f as composeClasses, m as memoTheme, x as createSimplePaletteValueFilter, z as lighten, y as darken, bf as css, aT as keyframes, Y as Box, J as Typography, q as useTheme, a1 as Button, bc as ThemeProvider, bd as theme, ba as CssBaseline, bb as ReactDOM, R as React, be as ErrorBoundary } from "./theme-CpOz1dKx.js";
1
+ import { h as generateUtilityClass, i as generateUtilityClasses, a as reactExports, k as useDefaultProps, F as useRtl, j as jsxRuntimeExports, s as styled, b as clsx, e as capitalize, f as composeClasses, m as memoTheme, x as createSimplePaletteValueFilter, z as lighten, y as darken, bg as css, aU as keyframes, Y as Box, J as Typography, q as useTheme, a1 as Button, bd as ThemeProvider, be as theme, bb as CssBaseline, bc as ReactDOM, R as React, bf as ErrorBoundary } from "./theme-IY_ZyJQp.js";
2
2
  function getLinearProgressUtilityClass(slot) {
3
3
  return generateUtilityClass("MuiLinearProgress", slot);
4
4
  }
@@ -752,7 +752,7 @@ const LogoSection = () => {
752
752
  color: "rgba(255, 255, 255, 0.7)",
753
753
  maxWidth: "600px"
754
754
  },
755
- children: "Your Personal Assistant that Gets Things Done with Python"
755
+ children: "Personal AI Assistants that Turn Ideas into Action"
756
756
  }
757
757
  )
758
758
  ] });
@@ -28047,7 +28047,7 @@ export {
28047
28047
  FontAwesomeIcon as Z,
28048
28048
  _inheritsLoose as _,
28049
28049
  reactExports as a,
28050
- faKey as a$,
28050
+ faExternalLinkAlt as a$,
28051
28051
  faSliders as a0,
28052
28052
  Button as a1,
28053
28053
  faExclamationTriangle as a2,
@@ -28064,27 +28064,27 @@ export {
28064
28064
  faUser as aD,
28065
28065
  faFile as aE,
28066
28066
  faEllipsisVertical as aF,
28067
- faChevronLeft as aG,
28068
- faChevronRight as aH,
28069
- faPlus as aI,
28070
- faSearch as aJ,
28071
- faCommentSlash as aK,
28072
- faArrowRight as aL,
28073
- faComments as aM,
28074
- faTag as aN,
28075
- faIdCard as aO,
28076
- faCalendarAlt as aP,
28077
- faCodeBranch as aQ,
28078
- faShieldAlt as aR,
28079
- faArrowLeft as aS,
28080
- keyframes as aT,
28081
- faShield as aU,
28082
- faSignOut as aV,
28083
- faLightbulb as aW,
28084
- faMagicWandSparkles as aX,
28085
- faBrain as aY,
28086
- faWandMagicSparkles as aZ,
28087
- faExternalLinkAlt as a_,
28067
+ faComment as aG,
28068
+ faChevronLeft as aH,
28069
+ faChevronRight as aI,
28070
+ faPlus as aJ,
28071
+ faSearch as aK,
28072
+ faCommentSlash as aL,
28073
+ faArrowRight as aM,
28074
+ faComments as aN,
28075
+ faTag as aO,
28076
+ faIdCard as aP,
28077
+ faCalendarAlt as aQ,
28078
+ faCodeBranch as aR,
28079
+ faShieldAlt as aS,
28080
+ faArrowLeft as aT,
28081
+ keyframes as aU,
28082
+ faShield as aV,
28083
+ faSignOut as aW,
28084
+ faLightbulb as aX,
28085
+ faMagicWandSparkles as aY,
28086
+ faBrain as aZ,
28087
+ faWandMagicSparkles as a_,
28088
28088
  faStar as aa,
28089
28089
  faTrash as ab,
28090
28090
  faCommentDots as ac,
@@ -28112,22 +28112,23 @@ export {
28112
28112
  faTools as ay,
28113
28113
  faArrowDown as az,
28114
28114
  clsx as b,
28115
- faGlobe as b0,
28116
- faLock as b1,
28117
- faEdit as b2,
28118
- faSave as b3,
28119
- faEnvelope as b4,
28120
- faCloudUploadAlt as b5,
28121
- faHistory as b6,
28122
- faListAlt as b7,
28123
- library$1 as b8,
28124
- icons as b9,
28125
- CssBaseline as ba,
28126
- ReactDOM as bb,
28127
- ThemeProvider as bc,
28128
- theme as bd,
28129
- ErrorBoundary2 as be,
28130
- css$1 as bf,
28115
+ faKey as b0,
28116
+ faGlobe as b1,
28117
+ faLock as b2,
28118
+ faEdit as b3,
28119
+ faSave as b4,
28120
+ faEnvelope as b5,
28121
+ faCloudUploadAlt as b6,
28122
+ faHistory as b7,
28123
+ faListAlt as b8,
28124
+ library$1 as b9,
28125
+ icons as ba,
28126
+ CssBaseline as bb,
28127
+ ReactDOM as bc,
28128
+ ThemeProvider as bd,
28129
+ theme as be,
28130
+ ErrorBoundary2 as bf,
28131
+ css$1 as bg,
28131
28132
  createStyled2 as c,
28132
28133
  useForkRef as d,
28133
28134
  capitalize$1 as e,
@@ -8,8 +8,8 @@
8
8
  <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
9
9
  <meta http-equiv="Content-Security-Policy"
10
10
  content="default-src 'self'; connect-src 'self' http://localhost:1111; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: http://localhost:1111; font-src 'self'" />
11
- <script type="module" crossorigin src="./assets/index-BZbB6xQT.js"></script>
12
- <link rel="modulepreload" crossorigin href="./assets/theme-CpOz1dKx.js">
11
+ <script type="module" crossorigin src="./assets/index-VhYFnaT2.js"></script>
12
+ <link rel="modulepreload" crossorigin href="./assets/theme-IY_ZyJQp.js">
13
13
  <link rel="stylesheet" crossorigin href="./assets/theme-B9KBGB-g.css">
14
14
  <link rel="stylesheet" crossorigin href="./assets/index-BkBEAEYS.css">
15
15
  </head>
@@ -8,8 +8,8 @@
8
8
  <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
9
9
  <meta http-equiv="Content-Security-Policy"
10
10
  content="default-src 'self'; connect-src 'self' http://localhost:1111; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: http://localhost:1111; font-src 'self'" />
11
- <script type="module" crossorigin src="./assets/installer-BqeUmucy.js"></script>
12
- <link rel="modulepreload" crossorigin href="./assets/theme-CpOz1dKx.js">
11
+ <script type="module" crossorigin src="./assets/installer-CK7F6l7_.js"></script>
12
+ <link rel="modulepreload" crossorigin href="./assets/theme-IY_ZyJQp.js">
13
13
  <link rel="stylesheet" crossorigin href="./assets/theme-B9KBGB-g.css">
14
14
  </head>
15
15
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "local-operator-ui",
3
- "version": "0.1.2-beta.4",
3
+ "version": "0.1.2-beta.6",
4
4
  "productName": "Local Operator",
5
5
  "description": "User interface for the Local Operator agent environment",
6
6
  "main": "./out/main/index.js",