diff --git a/packages/desktop/src/app.tsx b/packages/desktop/src/app.tsx
index 8d43899..a9b14d8 100644
--- a/packages/desktop/src/app.tsx
+++ b/packages/desktop/src/app.tsx
@@ -1,15 +1,14 @@
-import { ThemeProvider } from '@mui/material';
import * as React from 'react';
-import ReactDOM from 'react-dom/client';
-import { TerminalProvider } from './components/Terminal';
-
-import { SnackbarProvider } from 'notistack';
-import { NirvanaTheme } from './mui/NirvanaTheme';
-import { ElectronProvider } from './providers/ElectronProvider';
import { AuthProvider } from './providers/AuthProvider';
-
+import { ElectronProvider } from './providers/ElectronProvider';
import ErrorParent from './providers/ErrorBoundary';
+import { NirvanaTheme } from './mui/NirvanaTheme';
+import ReactDOM from 'react-dom/client';
+import { SnackbarProvider } from 'notistack';
+import { TerminalProvider } from './components/Terminal';
+import { ThemeProvider } from '@mui/material';
+import { ZenProvider } from './providers/ZenProvider';
import { connectCore } from '@nirvana/core/src/index';
connectCore();
@@ -27,9 +26,11 @@ root.render(
-
- <>>
-
+
+
+ <>>
+
+
diff --git a/packages/desktop/src/providers/CommunicationsProvider.tsx b/packages/desktop/src/providers/CommunicationsProvider.tsx
new file mode 100644
index 0000000..d1ac213
--- /dev/null
+++ b/packages/desktop/src/providers/CommunicationsProvider.tsx
@@ -0,0 +1,3 @@
+interface CommunicationsProvider {
+ userLocalStream?: MediaStream;
+}
diff --git a/packages/desktop/src/providers/ConversationProvider.tsx b/packages/desktop/src/providers/ConversationProvider.tsx
new file mode 100644
index 0000000..a6bffe2
--- /dev/null
+++ b/packages/desktop/src/providers/ConversationProvider.tsx
@@ -0,0 +1,13 @@
+import { ConversationContentMap, ConversationMap } from '../util/types';
+
+import React from 'react';
+
+interface IConversationContext {
+ conversationMap: ConversationMap;
+ conversationContentMap: ConversationContentMap;
+}
+
+const ConversationContext = React.createContext({
+ conversationContentMap: {},
+ conversationMap: {},
+});
diff --git a/packages/desktop/src/providers/RouteProvider.tsx b/packages/desktop/src/providers/RouteProvider.tsx
new file mode 100644
index 0000000..e69de29
diff --git a/packages/desktop/src/providers/SearchProvider.tsx b/packages/desktop/src/providers/SearchProvider.tsx
new file mode 100644
index 0000000..e69de29
diff --git a/packages/desktop/src/providers/ZenProvider.tsx b/packages/desktop/src/providers/ZenProvider.tsx
new file mode 100644
index 0000000..42d772c
--- /dev/null
+++ b/packages/desktop/src/providers/ZenProvider.tsx
@@ -0,0 +1,34 @@
+import React, { useCallback, useContext, useState } from 'react';
+
+interface IZenContext {
+ flowState: boolean;
+ toggleFlowState?: () => void;
+
+ hasSecretAccess: boolean;
+
+ handleEscape?: () => void;
+}
+
+const ZenContext = React.createContext({
+ flowState: false,
+ hasSecretAccess: false,
+});
+
+export function ZenProvider({ children }: { children: React.ReactNode }) {
+ const [flowState, setFlowState] = useState(false);
+ const [hasSecretAccess, setHasSecretAccess] = useState(false);
+
+ const toggleFlowState = useCallback(() => {
+ console.log('toggling flow state');
+ }, []);
+
+ return (
+
+ {children}
+
+ );
+}
+
+export default function useZen() {
+ return useContext(ZenContext);
+}