The server kept voice and images on /v1 (models scope, which the app's token already asks for); /me's services and scopes decide what is offered. Rust sends the recording to /v1/audio/transcriptions, reads /v1/audio/speech back as a data: URL (CSP media-src data:), and for /v1/images/generations takes only the id of each of the person's own files from the answer and fetches /v1/files/<id>/content from the app's own server. The microphone is allowed only within seconds of the page's own Dictate (voice_arm); WebKitGTK's media stream is switched on through its settings getter. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
64 lines
2.1 KiB
JSON
64 lines
2.1 KiB
JSON
{
|
|
"$schema": "https://schema.tauri.app/config/2",
|
|
"productName": "llembas-desktop",
|
|
"mainBinaryName": "llembas-desktop",
|
|
"identifier": "eu.llembas.desktop",
|
|
"build": {
|
|
"frontendDist": "../ui"
|
|
},
|
|
"app": {
|
|
"withGlobalTauri": true,
|
|
"windows": [],
|
|
"security": {
|
|
"csp": "default-src 'self'; img-src 'self' data:; media-src data:; style-src 'self' 'unsafe-inline'; script-src 'self'; connect-src ipc: http://ipc.localhost; frame-src llembas-sealed: http://llembas-sealed.localhost; object-src 'none'; base-uri 'none'; form-action 'none'",
|
|
"dangerousDisableAssetCspModification": [
|
|
"style-src"
|
|
]
|
|
}
|
|
},
|
|
"bundle": {
|
|
"active": true,
|
|
"targets": [
|
|
"deb",
|
|
"appimage"
|
|
],
|
|
"category": "Productivity",
|
|
"shortDescription": "The LLeMbas agent on this computer, and your server's chats",
|
|
"longDescription": "LLeMbas Desktop runs the LLeMbas CLI agent on this computer, so agent chats can work in your projects here without a terminal, and shows them, and the chats on your LLeMbas 2.0 server, in an app of its own: the agent's working directory and the server's files side by side, and a viewer for what the agent shows you.",
|
|
"license": "MIT",
|
|
"homepage": "https://llembas.eu",
|
|
"publisher": "LLeMbas",
|
|
"copyright": "Copyright (c) 2026 Jaroslav Beneš",
|
|
"icon": [
|
|
"icons/32x32.png",
|
|
"icons/128x128.png",
|
|
"icons/128x128@2x.png",
|
|
"icons/icon.png",
|
|
"icons/icon.ico"
|
|
],
|
|
"resources": {
|
|
"binaries/lembas": "lembas"
|
|
},
|
|
"linux": {
|
|
"deb": {
|
|
"desktopTemplate": "llembas-desktop.desktop",
|
|
"conflicts": [
|
|
"l-le-mbas"
|
|
],
|
|
"replaces": [
|
|
"l-le-mbas"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"plugins": {
|
|
"updater": {
|
|
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXkgMzNBNUJCMkNCQTBCOTEwRgpSV1FQa1F1NkxMdWxNOCtnT2NMQU5QOTBHZ3hUaC9UNHVFZThUR2lqOGdWWUVObi9mbU00amoyago=",
|
|
"endpoints": [
|
|
"https://llembas.eu/desktop/latest.json"
|
|
],
|
|
"requireSignedVersion": true
|
|
}
|
|
}
|
|
}
|