Compare commits
8 commits
master
...
feature/gu
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5cbd5515d3 | ||
|
|
7f167b563b | ||
|
|
7dff5024c4 | ||
|
|
eedf4aad90 | ||
|
|
764320786b | ||
|
|
f0a6ade231 | ||
|
|
0e58a699b1 | ||
|
|
9fda4a7a4b |
13 changed files with 85 additions and 111 deletions
8
Cargo.lock
generated
8
Cargo.lock
generated
|
|
@ -3262,7 +3262,7 @@ checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
|
|||
|
||||
[[package]]
|
||||
name = "jarvis-app"
|
||||
version = "0.1.0"
|
||||
version = "0.4.1"
|
||||
dependencies = [
|
||||
"glib 0.21.5",
|
||||
"gtk",
|
||||
|
|
@ -3282,7 +3282,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "jarvis-cli"
|
||||
version = "0.1.0"
|
||||
version = "0.4.1"
|
||||
dependencies = [
|
||||
"env_logger",
|
||||
"jarvis-core",
|
||||
|
|
@ -3293,7 +3293,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "jarvis-core"
|
||||
version = "0.1.0"
|
||||
version = "0.4.1"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"fastembed",
|
||||
|
|
@ -3337,7 +3337,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "jarvis-gui"
|
||||
version = "0.1.0"
|
||||
version = "0.4.1"
|
||||
dependencies = [
|
||||
"jarvis-core",
|
||||
"lazy_static",
|
||||
|
|
|
|||
|
|
@ -8,10 +8,10 @@ members = [
|
|||
resolver = "2"
|
||||
|
||||
[workspace.package]
|
||||
version = "0.1.0"
|
||||
version = "0.4.1"
|
||||
authors = ["Abraham Tugalov (original)", "Bossiara13 (fork)"]
|
||||
license = "GPL-3.0-only"
|
||||
repository = "https://github.com/Priler/jarvis"
|
||||
repository = "https://github.com/DmitryBykov-ISPO/J.A.R.V.I.S-rust"
|
||||
edition = "2021"
|
||||
|
||||
[workspace.dependencies]
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ pub const DEFAULT_INTENT_BACKEND: &str = "intent-classifier";
|
|||
pub const DEFAULT_SLOTS_BACKEND: &str = "none";
|
||||
pub const DEFAULT_VAD_BACKEND: &str = "energy";
|
||||
|
||||
pub const DEFAULT_VOICE: &str = "jarvis-remaster";
|
||||
pub const DEFAULT_VOICE: &str = "jarvis-og";
|
||||
pub const SOUND_PATH: &str = "resources/sound"; // extended from SOUND_DIR (resources/sound)
|
||||
pub const VOICES_PATH: &str = "voices"; // extended from SOUND_PATH (resources/sound)
|
||||
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ impl Default for Settings {
|
|||
fn default() -> Settings {
|
||||
Settings {
|
||||
microphone: -1,
|
||||
voice: String::from(""),
|
||||
voice: String::from(config::DEFAULT_VOICE),
|
||||
|
||||
wake_word_engine: config::DEFAULT_WAKE_WORD_ENGINE,
|
||||
|
||||
|
|
|
|||
|
|
@ -42,10 +42,8 @@ stats-not-selected = Not selected
|
|||
stats-loading = Loading...
|
||||
|
||||
# ### FOOTER
|
||||
footer-author = Project author
|
||||
footer-telegram = Our Telegram channel
|
||||
footer-github = Github repository
|
||||
footer-support = Support the project on
|
||||
footer-attribution = Fork by Bossiara13. Original: Priler/jarvis (CC BY-NC-SA 4.0).
|
||||
footer-github = Fork Github repository
|
||||
|
||||
# ### SETTINGS
|
||||
settings-title = Settings
|
||||
|
|
@ -112,10 +110,9 @@ settings-openai-not-supported = ChatGPT is not currently supported. It will be a
|
|||
commands-title = Commands
|
||||
commands-search = Search commands...
|
||||
commands-count = { $count } commands
|
||||
commands-wip-title = [404] This section is under development!
|
||||
commands-wip-desc = Here will be a list of commands + full-featured command editor.
|
||||
commands-wip-follow = Follow updates in
|
||||
commands-wip-channel = our Telegram channel
|
||||
commands-heading = Jarvis commands
|
||||
commands-desc = Voice commands are configured via commands.yaml (Python fork) or resources/commands/ (Rust). A GUI command builder is available in the Python version of the fork.
|
||||
commands-builder-link = Open Command Builder (Python fork)
|
||||
|
||||
# ### ERRORS
|
||||
error-generic = An error occurred
|
||||
|
|
|
|||
|
|
@ -42,10 +42,8 @@ stats-not-selected = Не выбран
|
|||
stats-loading = Загрузка...
|
||||
|
||||
# FOOTER
|
||||
footer-author = Автор проекта
|
||||
footer-telegram = Наш телеграм канал
|
||||
footer-github = Github репозиторий проекта
|
||||
footer-support = Поддержать проект на
|
||||
footer-attribution = Автор форка: Bossiara13. Оригинал: Priler/jarvis (CC BY-NC-SA 4.0).
|
||||
footer-github = Github репозиторий форка
|
||||
|
||||
# SETTINGS
|
||||
settings-title = Настройки
|
||||
|
|
@ -112,10 +110,9 @@ settings-openai-not-supported = В данный момент ChatGPT не под
|
|||
commands-title = Команды
|
||||
commands-search = Поиск команд...
|
||||
commands-count = { $count } команд
|
||||
commands-wip-title = [404] Этот раздел еще находится в разработке!
|
||||
commands-wip-desc = Тут будет список команд + полноценный редактор команд.
|
||||
commands-wip-follow = Следите за обновлениями в
|
||||
commands-wip-channel = нашем телеграм канале
|
||||
commands-heading = Команды Jarvis
|
||||
commands-desc = Голосовые команды настраиваются через файл commands.yaml (Python-форк) или resources/commands/ (Rust). GUI-конструктор команд доступен в Python-версии форка.
|
||||
commands-builder-link = Открыть Command Builder (Python-форк)
|
||||
|
||||
# ERRORS
|
||||
error-generic = Произошла ошибка
|
||||
|
|
|
|||
|
|
@ -42,10 +42,8 @@ stats-not-selected = Не вибрано
|
|||
stats-loading = Завантаження...
|
||||
|
||||
# ### FOOTER
|
||||
footer-author = Автор проєкту
|
||||
footer-telegram = Наш телеграм канал
|
||||
footer-github = Github репозиторій проєкту
|
||||
footer-support = Підтримати проєкт на
|
||||
footer-attribution = Автор форка: Bossiara13. Оригінал: Priler/jarvis (CC BY-NC-SA 4.0).
|
||||
footer-github = Github репозиторій форка
|
||||
|
||||
# ### SETTINGS
|
||||
settings-title = Налаштування
|
||||
|
|
@ -112,10 +110,9 @@ settings-openai-not-supported = Наразі ChatGPT не підтримуєть
|
|||
commands-title = Команди
|
||||
commands-search = Пошук команд...
|
||||
commands-count = { $count } команд
|
||||
commands-wip-title = [404] Цей розділ ще в розробці!
|
||||
commands-wip-desc = Тут буде список команд + повноцінний редактор команд.
|
||||
commands-wip-follow = Слідкуйте за оновленнями в
|
||||
commands-wip-channel = нашому телеграм каналі
|
||||
commands-heading = Команди Jarvis
|
||||
commands-desc = Голосові команди налаштовуються через файл commands.yaml (Python-форк) або resources/commands/ (Rust). GUI-конструктор команд доступний у Python-версії форка.
|
||||
commands-builder-link = Відкрити Command Builder (Python-форк)
|
||||
|
||||
# ### ERRORS
|
||||
error-generic = Сталася помилка
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"$schema": "https://schema.tauri.app/config/2",
|
||||
"productName": "jarvis-app",
|
||||
"version": "0.0.3",
|
||||
"version": "0.4.1",
|
||||
"identifier": "com.priler.jarvis",
|
||||
"build": {
|
||||
"beforeDevCommand": "npm run dev",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "jarvis-app",
|
||||
"private": true,
|
||||
"version": "0.1.0",
|
||||
"version": "0.4.1",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
|
|
|
|||
|
|
@ -1,63 +1,25 @@
|
|||
<script lang="ts">
|
||||
import { onMount } from "svelte"
|
||||
import { invoke } from "@tauri-apps/api/core"
|
||||
import { appInfo, currentLanguage, translations, translate } from "@/stores"
|
||||
import { appInfo, translations, translate } from "@/stores"
|
||||
|
||||
$: t = (key: string) => translate($translations, key)
|
||||
|
||||
let authorName = ""
|
||||
let tgLink = ""
|
||||
let repoLink = ""
|
||||
let boostyLink = ""
|
||||
let patreonLink = ""
|
||||
|
||||
const currentYear = new Date().getFullYear()
|
||||
|
||||
appInfo.subscribe(info => {
|
||||
tgLink = info.tgOfficialLink
|
||||
repoLink = info.repositoryLink
|
||||
boostyLink = info.boostySupportLink
|
||||
patreonLink = info.patreonSupportLink
|
||||
})
|
||||
|
||||
onMount(async () => {
|
||||
try {
|
||||
authorName = await invoke<string>("get_author_name")
|
||||
} catch (err) {
|
||||
console.error("failed to get author name:", err)
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<footer id="footer">
|
||||
<p>© {currentYear}. {t('footer-author')}: <b>{authorName}</b></p>
|
||||
<p>© {currentYear}. {t('footer-attribution')}</p>
|
||||
<p class="links">
|
||||
{#if $currentLanguage === "ru" || $currentLanguage === "ua"}
|
||||
<a href={tgLink} target="_blank" class="telegram-link">
|
||||
<img src="/media/icons/telegram.webp" alt="Telegram" width="18px" />
|
||||
<span>{t('footer-telegram')}</span>
|
||||
</a>
|
||||
|
||||
{/if}
|
||||
<a href={repoLink} target="_blank">
|
||||
<img src="/media/icons/github-logo.png" alt="GitHub" width="18px" />
|
||||
<span>{t('footer-github')}</span>
|
||||
</a>
|
||||
</p>
|
||||
<p class="links last">
|
||||
{#if $currentLanguage === "ru"}
|
||||
{t('footer-support')} <a href={boostyLink} target="_blank" class="telegram-link">
|
||||
<img src="/media/icons/boosty.webp" alt="Boosty" width="18px" />
|
||||
<span>Boosty</span>
|
||||
</a>.
|
||||
{/if}
|
||||
{#if $currentLanguage === "ua" || $currentLanguage === "en"}
|
||||
{t('footer-support')} <a href={patreonLink} target="_blank" class="telegram-link">
|
||||
<img src="/media/icons/patreon.png" alt="Patreon" width="18px" />
|
||||
<span>Patreon</span>
|
||||
</a>.
|
||||
{/if}
|
||||
</p>
|
||||
</footer>
|
||||
|
||||
<style lang="scss">
|
||||
|
|
|
|||
|
|
@ -1,41 +1,74 @@
|
|||
<script lang="ts">
|
||||
import { Notification, Space } from "@svelteuidev/core"
|
||||
import { InfoCircled } from "radix-icons-svelte"
|
||||
import { Space } from "@svelteuidev/core"
|
||||
|
||||
import HDivider from "@/components/elements/HDivider.svelte"
|
||||
import Footer from "@/components/Footer.svelte"
|
||||
import { appInfo, translations, translate } from "@/stores"
|
||||
import { translations, translate } from "@/stores"
|
||||
|
||||
$: t = (key: string) => translate($translations, key)
|
||||
|
||||
let tgLink = ""
|
||||
appInfo.subscribe(info => {
|
||||
tgLink = info.tgOfficialLink
|
||||
})
|
||||
const builderUrl = "https://github.com/DmitryBykov-ISPO/J.A.R.V.I.S-py/tree/main/tools/command_builder"
|
||||
</script>
|
||||
|
||||
<Space h="xl" />
|
||||
|
||||
<Notification
|
||||
title={t('commands-wip-title')}
|
||||
icon={InfoCircled}
|
||||
color="blue"
|
||||
withCloseButton={false}
|
||||
>
|
||||
{t('commands-wip-desc')}<br />
|
||||
{t('commands-wip-follow')} <a href={tgLink} target="_blank">{t('commands-wip-channel')}</a>!
|
||||
</Notification>
|
||||
|
||||
<div class="placeholder-image">
|
||||
<img src="/media/images/tenor.gif" alt="bruh" width="320px" />
|
||||
<div class="commands-info">
|
||||
<h2>{t('commands-heading')}</h2>
|
||||
<p>{t('commands-desc')}</p>
|
||||
<a class="builder-link" href={builderUrl} target="_blank" rel="noopener noreferrer">
|
||||
{t('commands-builder-link')}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<HDivider />
|
||||
<Footer />
|
||||
|
||||
<style>
|
||||
.placeholder-image {
|
||||
text-align: center;
|
||||
margin-top: 25px;
|
||||
<style lang="scss">
|
||||
.commands-info {
|
||||
background: #0a1214;
|
||||
border: 1px solid rgba(82, 254, 254, 0.2);
|
||||
border-radius: 8px;
|
||||
padding: 1.25rem 1.5rem;
|
||||
color: #d6e2e6;
|
||||
|
||||
h2 {
|
||||
margin: 0 0 0.75rem;
|
||||
font-size: 1.05rem;
|
||||
color: #52fefe;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.02em;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 0 1rem;
|
||||
font-size: 0.85rem;
|
||||
line-height: 1.5;
|
||||
color: rgba(255, 255, 255, 0.65);
|
||||
}
|
||||
|
||||
:global(code) {
|
||||
background: rgba(82, 254, 254, 0.08);
|
||||
color: #52fefe;
|
||||
padding: 0.05rem 0.35rem;
|
||||
border-radius: 3px;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
.builder-link {
|
||||
display: inline-block;
|
||||
padding: 0.5rem 0.9rem;
|
||||
background: rgba(82, 254, 254, 0.08);
|
||||
border: 1px solid rgba(82, 254, 254, 0.4);
|
||||
border-radius: 6px;
|
||||
color: #52fefe;
|
||||
font-size: 0.8rem;
|
||||
text-decoration: none;
|
||||
transition: background 0.15s ease, border-color 0.15s ease;
|
||||
|
||||
&:hover {
|
||||
background: rgba(82, 254, 254, 0.16);
|
||||
border-color: rgba(82, 254, 254, 0.6);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -272,9 +272,6 @@
|
|||
>
|
||||
<div class="voice-info">
|
||||
<span class="voice-name">{voice.name}</span>
|
||||
{#if voice.author}
|
||||
<span class="voice-author">by {voice.author}</span>
|
||||
{/if}
|
||||
</div>
|
||||
<div class="voice-languages">
|
||||
{#each voice.languages as lang}
|
||||
|
|
|
|||
|
|
@ -40,11 +40,8 @@ export const assistantVoice = writable("")
|
|||
|
||||
// ### APP INFO
|
||||
export const appInfo = writable({
|
||||
tgOfficialLink: "",
|
||||
feedbackLink: "",
|
||||
repositoryLink: "",
|
||||
boostySupportLink: "",
|
||||
patreonSupportLink: "",
|
||||
logFilePath: ""
|
||||
})
|
||||
|
||||
|
|
@ -60,21 +57,15 @@ export async function loadVoiceSetting() {
|
|||
|
||||
export async function loadAppInfo() {
|
||||
try {
|
||||
const [tg, feedback, repo, boosty, patreon, logPath] = await Promise.all([
|
||||
invoke<string>("get_tg_official_link"),
|
||||
const [feedback, repo, logPath] = await Promise.all([
|
||||
invoke<string>("get_feedback_link"),
|
||||
invoke<string>("get_repository_link"),
|
||||
invoke<string>("get_boosty_link"),
|
||||
invoke<string>("get_patreon_link"),
|
||||
invoke<string>("get_log_file_path")
|
||||
])
|
||||
|
||||
appInfo.set({
|
||||
tgOfficialLink: tg,
|
||||
feedbackLink: feedback,
|
||||
repositoryLink: repo,
|
||||
boostySupportLink: boosty,
|
||||
patreonSupportLink: patreon,
|
||||
logFilePath: logPath
|
||||
})
|
||||
} catch (err) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue