Files
OSIT-AE-App-Svelte/src/lib/electron

Aether Native Integration (Electron)

This directory contains the SvelteKit-side bridge for the Aether Native App (Electron). It provides the UI with access to OS-level capabilities required for the Event Launcher.

The native implementation lives in a separate repo: ~/OSIT_dev/aether_app_native_electron/

Technical Manual

For detailed architecture, lifecycle, and IPC specifications, see: PROJECT__AE_Events_Launcher_Native_integration.md

File Manifest

File Role Description
electron_relay.ts Active — Messenger The TypeScript API used by Svelte components. Standardizes all IPC calls to snake_case. This is the only file in this directory that should be imported.
electron_native.js DEPRECATED — Do not import Legacy V2/V4 reference file. The active native logic lives in aether_app_native_electron/. Kept for historical reference only.

Usage Example

import { is_native, launch_from_cache } from '$lib/electron/electron_relay';

if (is_native) {
    await launch_from_cache({
        cache_root: $ae_loc.local_file_cache_path,
        hash: file_obj.hash_sha256,
        temp_root: $ae_loc.host_file_temp_path,
        filename: file_obj.filename
    });
}

Security Model

  • All native functions are accessed via window.aetherNative (contextBridge)
  • Only explicitly whitelisted IPC channels are exposed — no arbitrary code execution
  • Path isolation: all file operations use [home] / [tmp] placeholders resolved by the native bridge
  • Context isolation is enabled; Node integration is disabled in the renderer

Bridge Architecture (Three Layers)

Svelte Component
  └── electron_relay.ts          (this directory — typed wrappers, snake_case API)
        └── window.aetherNative  (contextBridge whitelist in preload/index.ts)
              └── ipcMain handlers (aether_app_native_electron/src/main/*.ts)