diff --git a/build.js b/build.js
index a56b5e2..e9aec55 100644
--- a/build.js
+++ b/build.js
@@ -14,8 +14,8 @@ const baseConfig = {
};
const entryPoints = [
- { in: 'src/app/HeaderController.js', out: 'public/build/header' },
- { in: 'src/app/PickleGlassApp.js', out: 'public/build/content' },
+ { in: 'src/ui/app/HeaderController.js', out: 'public/build/header' },
+ { in: 'src/ui/app/PickleGlassApp.js', out: 'public/build/content' },
];
async function build() {
diff --git a/src/bridge/windowBridge.js b/src/bridge/windowBridge.js
index 15aa91f..f20ff14 100644
--- a/src/bridge/windowBridge.js
+++ b/src/bridge/windowBridge.js
@@ -1,6 +1,6 @@
// src/bridge/windowBridge.js
const { ipcMain, BrowserWindow } = require('electron');
-const { windowPool, settingsHideTimer, app, shell } = require('../electron/windowManager'); // 필요 변수 require
+const { windowPool, settingsHideTimer, app, shell } = require('../window/windowManager'); // 필요 변수 require
module.exports = {
// Renderer로부터의 요청을 수신
diff --git a/src/features/ask/askService.js b/src/features/ask/askService.js
index 33d661e..a031a98 100644
--- a/src/features/ask/askService.js
+++ b/src/features/ask/askService.js
@@ -1,6 +1,6 @@
const { ipcMain, BrowserWindow } = require('electron');
const { createStreamingLLM } = require('../../common/ai/factory');
-const { getStoredApiKey, getStoredProvider, getCurrentModelInfo, windowPool, captureScreenshot } = require('../../electron/windowManager');
+const { getStoredApiKey, getStoredProvider, getCurrentModelInfo, windowPool, captureScreenshot } = require('../../window/windowManager');
const authService = require('../../common/services/authService');
const sessionRepository = require('../../common/repositories/session');
const askRepository = require('./repositories');
diff --git a/src/common/ai/factory.js b/src/features/common/ai/factory.js
similarity index 100%
rename from src/common/ai/factory.js
rename to src/features/common/ai/factory.js
diff --git a/src/common/ai/providers/anthropic.js b/src/features/common/ai/providers/anthropic.js
similarity index 100%
rename from src/common/ai/providers/anthropic.js
rename to src/features/common/ai/providers/anthropic.js
diff --git a/src/common/ai/providers/gemini.js b/src/features/common/ai/providers/gemini.js
similarity index 100%
rename from src/common/ai/providers/gemini.js
rename to src/features/common/ai/providers/gemini.js
diff --git a/src/common/ai/providers/ollama.js b/src/features/common/ai/providers/ollama.js
similarity index 100%
rename from src/common/ai/providers/ollama.js
rename to src/features/common/ai/providers/ollama.js
diff --git a/src/common/ai/providers/openai.js b/src/features/common/ai/providers/openai.js
similarity index 100%
rename from src/common/ai/providers/openai.js
rename to src/features/common/ai/providers/openai.js
diff --git a/src/common/ai/providers/whisper.js b/src/features/common/ai/providers/whisper.js
similarity index 100%
rename from src/common/ai/providers/whisper.js
rename to src/features/common/ai/providers/whisper.js
diff --git a/src/common/config/checksums.js b/src/features/common/config/checksums.js
similarity index 100%
rename from src/common/config/checksums.js
rename to src/features/common/config/checksums.js
diff --git a/src/common/config/config.js b/src/features/common/config/config.js
similarity index 100%
rename from src/common/config/config.js
rename to src/features/common/config/config.js
diff --git a/src/common/config/schema.js b/src/features/common/config/schema.js
similarity index 100%
rename from src/common/config/schema.js
rename to src/features/common/config/schema.js
diff --git a/src/common/prompts/promptBuilder.js b/src/features/common/prompts/promptBuilder.js
similarity index 100%
rename from src/common/prompts/promptBuilder.js
rename to src/features/common/prompts/promptBuilder.js
diff --git a/src/common/prompts/promptTemplates.js b/src/features/common/prompts/promptTemplates.js
similarity index 100%
rename from src/common/prompts/promptTemplates.js
rename to src/features/common/prompts/promptTemplates.js
diff --git a/src/common/repositories/firestoreConverter.js b/src/features/common/repositories/firestoreConverter.js
similarity index 100%
rename from src/common/repositories/firestoreConverter.js
rename to src/features/common/repositories/firestoreConverter.js
diff --git a/src/common/repositories/ollamaModel/index.js b/src/features/common/repositories/ollamaModel/index.js
similarity index 100%
rename from src/common/repositories/ollamaModel/index.js
rename to src/features/common/repositories/ollamaModel/index.js
diff --git a/src/common/repositories/ollamaModel/sqlite.repository.js b/src/features/common/repositories/ollamaModel/sqlite.repository.js
similarity index 100%
rename from src/common/repositories/ollamaModel/sqlite.repository.js
rename to src/features/common/repositories/ollamaModel/sqlite.repository.js
diff --git a/src/common/repositories/preset/firebase.repository.js b/src/features/common/repositories/preset/firebase.repository.js
similarity index 100%
rename from src/common/repositories/preset/firebase.repository.js
rename to src/features/common/repositories/preset/firebase.repository.js
diff --git a/src/common/repositories/preset/index.js b/src/features/common/repositories/preset/index.js
similarity index 100%
rename from src/common/repositories/preset/index.js
rename to src/features/common/repositories/preset/index.js
diff --git a/src/common/repositories/preset/sqlite.repository.js b/src/features/common/repositories/preset/sqlite.repository.js
similarity index 100%
rename from src/common/repositories/preset/sqlite.repository.js
rename to src/features/common/repositories/preset/sqlite.repository.js
diff --git a/src/common/repositories/providerSettings/firebase.repository.js b/src/features/common/repositories/providerSettings/firebase.repository.js
similarity index 100%
rename from src/common/repositories/providerSettings/firebase.repository.js
rename to src/features/common/repositories/providerSettings/firebase.repository.js
diff --git a/src/common/repositories/providerSettings/index.js b/src/features/common/repositories/providerSettings/index.js
similarity index 100%
rename from src/common/repositories/providerSettings/index.js
rename to src/features/common/repositories/providerSettings/index.js
diff --git a/src/common/repositories/providerSettings/sqlite.repository.js b/src/features/common/repositories/providerSettings/sqlite.repository.js
similarity index 100%
rename from src/common/repositories/providerSettings/sqlite.repository.js
rename to src/features/common/repositories/providerSettings/sqlite.repository.js
diff --git a/src/common/repositories/session/firebase.repository.js b/src/features/common/repositories/session/firebase.repository.js
similarity index 100%
rename from src/common/repositories/session/firebase.repository.js
rename to src/features/common/repositories/session/firebase.repository.js
diff --git a/src/common/repositories/session/index.js b/src/features/common/repositories/session/index.js
similarity index 100%
rename from src/common/repositories/session/index.js
rename to src/features/common/repositories/session/index.js
diff --git a/src/common/repositories/session/sqlite.repository.js b/src/features/common/repositories/session/sqlite.repository.js
similarity index 100%
rename from src/common/repositories/session/sqlite.repository.js
rename to src/features/common/repositories/session/sqlite.repository.js
diff --git a/src/common/repositories/systemSettings/index.js b/src/features/common/repositories/systemSettings/index.js
similarity index 100%
rename from src/common/repositories/systemSettings/index.js
rename to src/features/common/repositories/systemSettings/index.js
diff --git a/src/common/repositories/systemSettings/sqlite.repository.js b/src/features/common/repositories/systemSettings/sqlite.repository.js
similarity index 100%
rename from src/common/repositories/systemSettings/sqlite.repository.js
rename to src/features/common/repositories/systemSettings/sqlite.repository.js
diff --git a/src/common/repositories/user/firebase.repository.js b/src/features/common/repositories/user/firebase.repository.js
similarity index 100%
rename from src/common/repositories/user/firebase.repository.js
rename to src/features/common/repositories/user/firebase.repository.js
diff --git a/src/common/repositories/user/index.js b/src/features/common/repositories/user/index.js
similarity index 100%
rename from src/common/repositories/user/index.js
rename to src/features/common/repositories/user/index.js
diff --git a/src/common/repositories/user/sqlite.repository.js b/src/features/common/repositories/user/sqlite.repository.js
similarity index 100%
rename from src/common/repositories/user/sqlite.repository.js
rename to src/features/common/repositories/user/sqlite.repository.js
diff --git a/src/common/repositories/userModelSelections/firebase.repository.js b/src/features/common/repositories/userModelSelections/firebase.repository.js
similarity index 100%
rename from src/common/repositories/userModelSelections/firebase.repository.js
rename to src/features/common/repositories/userModelSelections/firebase.repository.js
diff --git a/src/common/repositories/userModelSelections/index.js b/src/features/common/repositories/userModelSelections/index.js
similarity index 100%
rename from src/common/repositories/userModelSelections/index.js
rename to src/features/common/repositories/userModelSelections/index.js
diff --git a/src/common/repositories/userModelSelections/sqlite.repository.js b/src/features/common/repositories/userModelSelections/sqlite.repository.js
similarity index 100%
rename from src/common/repositories/userModelSelections/sqlite.repository.js
rename to src/features/common/repositories/userModelSelections/sqlite.repository.js
diff --git a/src/common/repositories/whisperModel/index.js b/src/features/common/repositories/whisperModel/index.js
similarity index 100%
rename from src/common/repositories/whisperModel/index.js
rename to src/features/common/repositories/whisperModel/index.js
diff --git a/src/common/services/authService.js b/src/features/common/services/authService.js
similarity index 100%
rename from src/common/services/authService.js
rename to src/features/common/services/authService.js
diff --git a/src/common/services/databaseInitializer.js b/src/features/common/services/databaseInitializer.js
similarity index 100%
rename from src/common/services/databaseInitializer.js
rename to src/features/common/services/databaseInitializer.js
diff --git a/src/common/services/encryptionService.js b/src/features/common/services/encryptionService.js
similarity index 100%
rename from src/common/services/encryptionService.js
rename to src/features/common/services/encryptionService.js
diff --git a/src/common/services/firebaseClient.js b/src/features/common/services/firebaseClient.js
similarity index 100%
rename from src/common/services/firebaseClient.js
rename to src/features/common/services/firebaseClient.js
diff --git a/src/common/services/localAIServiceBase.js b/src/features/common/services/localAIServiceBase.js
similarity index 100%
rename from src/common/services/localAIServiceBase.js
rename to src/features/common/services/localAIServiceBase.js
diff --git a/src/common/services/localProgressTracker.js b/src/features/common/services/localProgressTracker.js
similarity index 100%
rename from src/common/services/localProgressTracker.js
rename to src/features/common/services/localProgressTracker.js
diff --git a/src/common/services/migrationService.js b/src/features/common/services/migrationService.js
similarity index 100%
rename from src/common/services/migrationService.js
rename to src/features/common/services/migrationService.js
diff --git a/src/common/services/modelStateService.js b/src/features/common/services/modelStateService.js
similarity index 100%
rename from src/common/services/modelStateService.js
rename to src/features/common/services/modelStateService.js
diff --git a/src/common/services/ollamaService.js b/src/features/common/services/ollamaService.js
similarity index 100%
rename from src/common/services/ollamaService.js
rename to src/features/common/services/ollamaService.js
diff --git a/src/common/services/sqliteClient.js b/src/features/common/services/sqliteClient.js
similarity index 100%
rename from src/common/services/sqliteClient.js
rename to src/features/common/services/sqliteClient.js
diff --git a/src/common/services/whisperService.js b/src/features/common/services/whisperService.js
similarity index 100%
rename from src/common/services/whisperService.js
rename to src/features/common/services/whisperService.js
diff --git a/src/common/utils/spawnHelper.js b/src/features/common/utils/spawnHelper.js
similarity index 100%
rename from src/common/utils/spawnHelper.js
rename to src/features/common/utils/spawnHelper.js
diff --git a/src/features/listen/stt/sttService.js b/src/features/listen/stt/sttService.js
index 39f7aa8..a846014 100644
--- a/src/features/listen/stt/sttService.js
+++ b/src/features/listen/stt/sttService.js
@@ -1,7 +1,7 @@
const { BrowserWindow } = require('electron');
const { spawn } = require('child_process');
const { createSTT } = require('../../../common/ai/factory');
-const { getStoredApiKey, getStoredProvider, getCurrentModelInfo } = require('../../../electron/windowManager');
+const { getStoredApiKey, getStoredProvider, getCurrentModelInfo } = require('../../../window/windowManager');
const COMPLETION_DEBOUNCE_MS = 2000;
diff --git a/src/features/listen/summary/summaryService.js b/src/features/listen/summary/summaryService.js
index a3dc065..8f309d5 100644
--- a/src/features/listen/summary/summaryService.js
+++ b/src/features/listen/summary/summaryService.js
@@ -4,7 +4,7 @@ const { createLLM } = require('../../../common/ai/factory');
const authService = require('../../../common/services/authService');
const sessionRepository = require('../../../common/repositories/session');
const summaryRepository = require('./repositories');
-const { getStoredApiKey, getStoredProvider, getCurrentModelInfo } = require('../../../electron/windowManager');
+const { getStoredApiKey, getStoredProvider, getCurrentModelInfo } = require('../../../window/windowManager.js');
class SummaryService {
constructor() {
diff --git a/src/features/settings/settingsService.js b/src/features/settings/settingsService.js
index 64357b1..94fa262 100644
--- a/src/features/settings/settingsService.js
+++ b/src/features/settings/settingsService.js
@@ -2,7 +2,7 @@ const { ipcMain, BrowserWindow } = require('electron');
const Store = require('electron-store');
const authService = require('../../common/services/authService');
const settingsRepository = require('./repositories');
-const { getStoredApiKey, getStoredProvider, windowPool } = require('../../electron/windowManager');
+const { getStoredApiKey, getStoredProvider, windowPool } = require('../../window/windowManager');
const store = new Store({
name: 'pickle-glass-settings',
diff --git a/src/index.js b/src/index.js
index 63ca17d..3f8f374 100644
--- a/src/index.js
+++ b/src/index.js
@@ -12,7 +12,7 @@ if (require('electron-squirrel-startup')) {
}
const { app, BrowserWindow, shell, ipcMain, dialog, desktopCapturer, session } = require('electron');
-const { createWindows } = require('./electron/windowManager.js');
+const { createWindows } = require('./window/windowManager.js');
const ListenService = require('./features/listen/listenService');
const { initializeFirebase } = require('./common/services/firebaseClient');
const databaseInitializer = require('./common/services/databaseInitializer');
@@ -124,7 +124,7 @@ function setupProtocolHandling() {
}
function focusMainWindow() {
- const { windowPool } = require('./electron/windowManager');
+ const { windowPool } = require('./window/windowManager.js');
if (windowPool) {
const header = windowPool.get('header');
if (header && !header.isDestroyed()) {
@@ -790,7 +790,7 @@ async function handleCustomUrl(url) {
handlePersonalizeFromUrl(params);
break;
default:
- const { windowPool } = require('./electron/windowManager');
+ const { windowPool } = require('./window/windowManager.js');
const header = windowPool.get('header');
if (header) {
if (header.isMinimized()) header.restore();
@@ -852,7 +852,7 @@ async function handleFirebaseAuthCallback(params) {
console.log('[Auth] Main process sign-in initiated. Waiting for onAuthStateChanged...');
// 3. Focus the app window
- const { windowPool } = require('./electron/windowManager');
+ const { windowPool } = require('./window/windowManager.js');
const header = windowPool.get('header');
if (header) {
if (header.isMinimized()) header.restore();
@@ -865,7 +865,7 @@ async function handleFirebaseAuthCallback(params) {
console.error('[Auth] Error during custom token exchange or sign-in:', error);
// The UI will not change, and the user can try again.
// Optionally, send a generic error event to the renderer.
- const { windowPool } = require('./electron/windowManager');
+ const { windowPool } = require('./window/windowManager.js');
const header = windowPool.get('header');
if (header) {
header.webContents.send('auth-failed', { message: error.message });
@@ -876,7 +876,7 @@ async function handleFirebaseAuthCallback(params) {
function handlePersonalizeFromUrl(params) {
console.log('[Custom URL] Personalize params:', params);
- const { windowPool } = require('./electron/windowManager');
+ const { windowPool } = require('./window/windowManager.js');
const header = windowPool.get('header');
if (header) {
diff --git a/src/app/ApiKeyHeader.js b/src/ui/app/ApiKeyHeader.js
similarity index 100%
rename from src/app/ApiKeyHeader.js
rename to src/ui/app/ApiKeyHeader.js
diff --git a/src/app/HeaderController.js b/src/ui/app/HeaderController.js
similarity index 100%
rename from src/app/HeaderController.js
rename to src/ui/app/HeaderController.js
diff --git a/src/app/MainHeader.js b/src/ui/app/MainHeader.js
similarity index 100%
rename from src/app/MainHeader.js
rename to src/ui/app/MainHeader.js
diff --git a/src/app/PermissionHeader.js b/src/ui/app/PermissionHeader.js
similarity index 100%
rename from src/app/PermissionHeader.js
rename to src/ui/app/PermissionHeader.js
diff --git a/src/app/PickleGlassApp.js b/src/ui/app/PickleGlassApp.js
similarity index 94%
rename from src/app/PickleGlassApp.js
rename to src/ui/app/PickleGlassApp.js
index b5aa9d0..d52b03a 100644
--- a/src/app/PickleGlassApp.js
+++ b/src/ui/app/PickleGlassApp.js
@@ -1,10 +1,10 @@
import { html, css, LitElement } from '../assets/lit-core-2.7.4.min.js';
-import { SettingsView } from '../features/settings/SettingsView.js';
-import { AssistantView } from '../features/listen/AssistantView.js';
-import { AskView } from '../features/ask/AskView.js';
-import { ShortcutSettingsView } from '../features/settings/ShortCutSettingsView.js';
+import { SettingsView } from '../settings/SettingsView.js';
+import { ListenView } from '../listen/ListenView.js';
+import { AskView } from '../../features/ask/AskView.js';
+import { ShortcutSettingsView } from '../../features/settings/ShortCutSettingsView.js';
-import '../features/listen/renderer/renderer.js';
+import '../listen/audioCore/renderer.js';
export class PickleGlassApp extends LitElement {
static styles = css`
@@ -17,7 +17,7 @@ export class PickleGlassApp extends LitElement {
border-radius: 7px;
}
- assistant-view {
+ listen-view {
display: block;
width: 100%;
height: 100%;
@@ -172,12 +172,12 @@ export class PickleGlassApp extends LitElement {
render() {
switch (this.currentView) {
case 'listen':
- return html` (this.currentResponseIndex = e.detail.index)}
- >`;
+ >`;
case 'ask':
return html``;
case 'settings':
diff --git a/src/app/content.html b/src/ui/app/content.html
similarity index 100%
rename from src/app/content.html
rename to src/ui/app/content.html
diff --git a/src/app/header.html b/src/ui/app/header.html
similarity index 100%
rename from src/app/header.html
rename to src/ui/app/header.html
diff --git a/src/features/ask/AskView.js b/src/ui/ask/AskView.js
similarity index 99%
rename from src/features/ask/AskView.js
rename to src/ui/ask/AskView.js
index 90f0349..c81ce0d 100644
--- a/src/features/ask/AskView.js
+++ b/src/ui/ask/AskView.js
@@ -1,4 +1,4 @@
-import { html, css, LitElement } from '../../assets/lit-core-2.7.4.min.js';
+import { html, css, LitElement } from '../../ui/assets/lit-core-2.7.4.min.js';
export class AskView extends LitElement {
static properties = {
@@ -898,7 +898,7 @@ export class AskView extends LitElement {
if (container) this.resizeObserver.observe(container);
this.handleQuestionFromAssistant = (event, question) => {
- console.log('📨 AskView: Received question from AssistantView:', question);
+ console.log('📨 AskView: Received question from ListenView:', question);
this.currentResponse = '';
this.isStreaming = false;
this.requestUpdate();
diff --git a/src/assets/Listen.svg b/src/ui/assets/Listen.svg
similarity index 100%
rename from src/assets/Listen.svg
rename to src/ui/assets/Listen.svg
diff --git a/src/assets/SystemAudioDump b/src/ui/assets/SystemAudioDump
similarity index 100%
rename from src/assets/SystemAudioDump
rename to src/ui/assets/SystemAudioDump
diff --git a/src/assets/Vector.svg b/src/ui/assets/Vector.svg
similarity index 100%
rename from src/assets/Vector.svg
rename to src/ui/assets/Vector.svg
diff --git a/src/assets/command.svg b/src/ui/assets/command.svg
similarity index 100%
rename from src/assets/command.svg
rename to src/ui/assets/command.svg
diff --git a/src/assets/dompurify-3.0.7.min.js b/src/ui/assets/dompurify-3.0.7.min.js
similarity index 100%
rename from src/assets/dompurify-3.0.7.min.js
rename to src/ui/assets/dompurify-3.0.7.min.js
diff --git a/src/assets/enter.svg b/src/ui/assets/enter.svg
similarity index 100%
rename from src/assets/enter.svg
rename to src/ui/assets/enter.svg
diff --git a/src/assets/highlight-11.9.0.min.js b/src/ui/assets/highlight-11.9.0.min.js
similarity index 100%
rename from src/assets/highlight-11.9.0.min.js
rename to src/ui/assets/highlight-11.9.0.min.js
diff --git a/src/assets/highlight-github-dark.min.css b/src/ui/assets/highlight-github-dark.min.css
similarity index 100%
rename from src/assets/highlight-github-dark.min.css
rename to src/ui/assets/highlight-github-dark.min.css
diff --git a/src/assets/lit-core-2.7.4.min.js b/src/ui/assets/lit-core-2.7.4.min.js
similarity index 100%
rename from src/assets/lit-core-2.7.4.min.js
rename to src/ui/assets/lit-core-2.7.4.min.js
diff --git a/src/assets/logo.icns b/src/ui/assets/logo.icns
similarity index 100%
rename from src/assets/logo.icns
rename to src/ui/assets/logo.icns
diff --git a/src/assets/logo.ico b/src/ui/assets/logo.ico
similarity index 100%
rename from src/assets/logo.ico
rename to src/ui/assets/logo.ico
diff --git a/src/assets/logo.png b/src/ui/assets/logo.png
similarity index 100%
rename from src/assets/logo.png
rename to src/ui/assets/logo.png
diff --git a/src/assets/marked-4.3.0.min.js b/src/ui/assets/marked-4.3.0.min.js
similarity index 100%
rename from src/assets/marked-4.3.0.min.js
rename to src/ui/assets/marked-4.3.0.min.js
diff --git a/src/assets/setting.svg b/src/ui/assets/setting.svg
similarity index 100%
rename from src/assets/setting.svg
rename to src/ui/assets/setting.svg
diff --git a/src/features/listen/AssistantView.js b/src/ui/listen/ListenView.js
similarity index 99%
rename from src/features/listen/AssistantView.js
rename to src/ui/listen/ListenView.js
index c6d7861..3339300 100644
--- a/src/features/listen/AssistantView.js
+++ b/src/ui/listen/ListenView.js
@@ -1,8 +1,8 @@
-import { html, css, LitElement } from '../../assets/lit-core-2.7.4.min.js';
+import { html, css, LitElement } from '../assets/lit-core-2.7.4.min.js';
import './stt/SttView.js';
import './summary/SummaryView.js';
-export class AssistantView extends LitElement {
+export class ListenView extends LitElement {
static styles = css`
:host {
display: block;
@@ -689,4 +689,4 @@ export class AssistantView extends LitElement {
}
}
-customElements.define('assistant-view', AssistantView);
+customElements.define('listen-view', ListenView);
diff --git a/src/assets/aec.js b/src/ui/listen/audioCore/aec.js
similarity index 100%
rename from src/assets/aec.js
rename to src/ui/listen/audioCore/aec.js
diff --git a/src/features/listen/renderer/listenCapture.js b/src/ui/listen/audioCore/listenCapture.js
similarity index 99%
rename from src/features/listen/renderer/listenCapture.js
rename to src/ui/listen/audioCore/listenCapture.js
index 9ee6e29..b2d80bf 100644
--- a/src/features/listen/renderer/listenCapture.js
+++ b/src/ui/listen/audioCore/listenCapture.js
@@ -1,5 +1,5 @@
const { ipcRenderer } = require('electron');
-const createAecModule = require('../../../assets/aec.js');
+const createAecModule = require('./aec.js');
let aecModPromise = null; // 한 번만 로드
let aecMod = null;
diff --git a/src/features/listen/renderer/renderer.js b/src/ui/listen/audioCore/renderer.js
similarity index 100%
rename from src/features/listen/renderer/renderer.js
rename to src/ui/listen/audioCore/renderer.js
diff --git a/src/features/listen/stt/SttView.js b/src/ui/listen/stt/SttView.js
similarity index 98%
rename from src/features/listen/stt/SttView.js
rename to src/ui/listen/stt/SttView.js
index 31e2a5a..1b18b9e 100644
--- a/src/features/listen/stt/SttView.js
+++ b/src/ui/listen/stt/SttView.js
@@ -1,4 +1,4 @@
-import { html, css, LitElement } from '../../../assets/lit-core-2.7.4.min.js';
+import { html, css, LitElement } from '../../assets/lit-core-2.7.4.min.js';
export class SttView extends LitElement {
static styles = css`
diff --git a/src/features/listen/summary/SummaryView.js b/src/ui/listen/summary/SummaryView.js
similarity index 99%
rename from src/features/listen/summary/SummaryView.js
rename to src/ui/listen/summary/SummaryView.js
index b500689..b8394b5 100644
--- a/src/features/listen/summary/SummaryView.js
+++ b/src/ui/listen/summary/SummaryView.js
@@ -1,4 +1,4 @@
-import { html, css, LitElement } from '../../../assets/lit-core-2.7.4.min.js';
+import { html, css, LitElement } from '../../assets/lit-core-2.7.4.min.js';
export class SummaryView extends LitElement {
static styles = css`
diff --git a/src/features/settings/SettingsView.js b/src/ui/settings/SettingsView.js
similarity index 99%
rename from src/features/settings/SettingsView.js
rename to src/ui/settings/SettingsView.js
index a2339ad..b2ee751 100644
--- a/src/features/settings/SettingsView.js
+++ b/src/ui/settings/SettingsView.js
@@ -1,4 +1,4 @@
-import { html, css, LitElement } from '../../assets/lit-core-2.7.4.min.js';
+import { html, css, LitElement } from '../assets/lit-core-2.7.4.min.js';
import { getOllamaProgressTracker } from '../../common/services/localProgressTracker.js';
export class SettingsView extends LitElement {
diff --git a/src/features/settings/ShortCutSettingsView.js b/src/ui/settings/ShortCutSettingsView.js
similarity index 99%
rename from src/features/settings/ShortCutSettingsView.js
rename to src/ui/settings/ShortCutSettingsView.js
index 404e446..4bf6511 100644
--- a/src/features/settings/ShortCutSettingsView.js
+++ b/src/ui/settings/ShortCutSettingsView.js
@@ -1,4 +1,4 @@
-import { html, css, LitElement } from '../../assets/lit-core-2.7.4.min.js';
+import { html, css, LitElement } from '../../ui/assets/lit-core-2.7.4.min.js';
const commonSystemShortcuts = new Set([
'Cmd+Q', 'Cmd+W', 'Cmd+A', 'Cmd+S', 'Cmd+Z', 'Cmd+X', 'Cmd+C', 'Cmd+V', 'Cmd+P', 'Cmd+F', 'Cmd+G', 'Cmd+H', 'Cmd+M', 'Cmd+N', 'Cmd+O', 'Cmd+T',
diff --git a/src/common/styles/glass-bypass.css b/src/ui/styles/glass-bypass.css
similarity index 100%
rename from src/common/styles/glass-bypass.css
rename to src/ui/styles/glass-bypass.css
diff --git a/src/electron/smoothMovementManager.js b/src/window/smoothMovementManager.js
similarity index 100%
rename from src/electron/smoothMovementManager.js
rename to src/window/smoothMovementManager.js
diff --git a/src/electron/windowLayoutManager.js b/src/window/windowLayoutManager.js
similarity index 100%
rename from src/electron/windowLayoutManager.js
rename to src/window/windowLayoutManager.js
diff --git a/src/electron/windowManager.js b/src/window/windowManager.js
similarity index 100%
rename from src/electron/windowManager.js
rename to src/window/windowManager.js