janhq / jan

Jan is an open source alternative to ChatGPT that runs 100% offline on your computer. Multiple engine support (llama.cpp, TensorRT-LLM)
https://jan.ai/
GNU Affero General Public License v3.0
23.77k stars 1.38k forks source link

planning: Jan + Cortex Extensions UI Framework #2718

Open imtuyethan opened 7 months ago

imtuyethan commented 7 months ago

Goal

Components

Tasklist

dan-homebrew commented 1 month ago

Goal

Resources

imtuyethan commented 1 month ago

First design draft: https://www.figma.com/design/DYfpMhf8qiSReKvYooBgDV/Jan-App-(3rd-version)?node-id=8658-155262&t=1ac4R3yj6HBlxKRQ-4

dan-homebrew commented 4 weeks ago

Remote API Extensions:

dan-homebrew commented 4 weeks ago

Tools Extensions:

imtuyethan commented 3 weeks ago

Here is the modular, extensible UI architecture for Jan, inspired by frameworks like Obsidian and VS Code:

Notes:


By Layout

(1) Top Bar - Control panel

Always visible and acts as the central hub. It provides users with quick access to essential actions for different spaces and overall app settings. Users can easily navigate and execute commands using the command palette or control toolbar.

(2) Ribbon

(3) Status Tray

(4) Content space

Screenshot 2024-10-31 at 9 17 37 AM

1. Top bar

(1.1) Toolbar

(1.2) Command Palette

Screenshot 2024-10-31 at 9 24 16 AM

2. Ribbon

(2.1) Top icons Where we register main functions or pages of the app

(2.1) Bottom icons Where we register additional & complementary functions/pages of the app

Screenshot 2024-10-31 at 9 25 28 AM

3. Status Tray

(3.1) App status Used to streamline the overall status of the app, including: model downloading, app updating,...

(3.2) Monitor Bar

Screenshot 2024-10-31 at 9 26 55 AM

Bottom Panel

Content Space

Screenshot 2024-10-31 at 9 29 13 AM

Left sidebar

Right sidebar

Screenshot 2024-10-31 at 9 30 20 AM

Main panel

Screenshot 2024-10-31 at 9 34 43 AM

Screenshot 2024-10-31 at 9 32 50 AM.

By Extensions

Remote API Extensions:

Screenshot 2024-10-31 at 9 41 44 AM

Tools Extensions

Screenshot 2024-10-31 at 9 45 54 AM

urmauur commented 3 weeks ago

Comment on defined area keys for extensions

Screenshot 2024-11-01 at 09 43 53


We have three columns in the top panel: left, center, and right. The left and right areas are clear to me. Extensions can register a new toolbar in the top panel, defining the position as either left or right. Is the center area, or the Command Palette injectable by extensions? If yes, how UI looks like?



Screenshot 2024-11-01 at 09 48 34


Let’s say I want to create an extension and choose the UI to display on the bottom panel. Do we allow that? If so, what should the UI look like?




Let’s clarify the areas where extensions can inject UI elements. A clear example for me would be the Thread Right Panel Tab and the Ribbon.

Screenshot 2024-11-01 at 09 51 45