Phase 10: Spec integration - Dynamic app registry loader

This commit is contained in:
L'électron rare
2026-03-11 00:03:58 +01:00
parent 699fdb0ab7
commit ded19f2d76
23 changed files with 888 additions and 65 deletions
+21
View File
@@ -0,0 +1,21 @@
{
"id": "audio_player",
"title": "Lecteur Audio",
"category": "media",
"entry_screen": "SCENE_AUDIO_PLAYER",
"enabled": true,
"version": "1.0.0",
"icon_path": "/apps/audio_player/icon.png",
"required_capabilities": 193,
"optional_capabilities": 16,
"supports_offline": true,
"supports_streaming": true,
"asset_manifest": "/apps/audio_player/manifest.json",
"assets": {
"icons": [
"/apps/audio_player/icon.png"
],
"scenes": [],
"media": []
}
}
+21
View File
@@ -0,0 +1,21 @@
{
"id": "audiobook_player",
"title": "Livres Audio",
"category": "media",
"entry_screen": "SCENE_AUDIOBOOK",
"enabled": true,
"version": "1.0.0",
"icon_path": "/apps/audiobook_player/icon.png",
"required_capabilities": 193,
"optional_capabilities": 48,
"supports_offline": true,
"supports_streaming": true,
"asset_manifest": "/apps/audiobook_player/manifest.json",
"assets": {
"icons": [
"/apps/audiobook_player/icon.png"
],
"scenes": [],
"media": []
}
}
+21
View File
@@ -0,0 +1,21 @@
{
"id": "calculator",
"title": "Calculatrice",
"category": "utility",
"entry_screen": "SCENE_CALCULATOR",
"enabled": true,
"version": "1.0.0",
"icon_path": "/apps/calculator/icon.png",
"required_capabilities": 128,
"optional_capabilities": 0,
"supports_offline": true,
"supports_streaming": false,
"asset_manifest": "/apps/calculator/manifest.json",
"assets": {
"icons": [
"/apps/calculator/icon.png"
],
"scenes": [],
"media": []
}
}
+21
View File
@@ -0,0 +1,21 @@
{
"id": "camera_video",
"title": "Appareil Photo/Video",
"category": "capture",
"entry_screen": "SCENE_PHOTO_MANAGER",
"enabled": true,
"version": "1.0.0",
"icon_path": "/apps/camera_video/icon.png",
"required_capabilities": 196,
"optional_capabilities": 32,
"supports_offline": true,
"supports_streaming": false,
"asset_manifest": "/apps/camera_video/manifest.json",
"assets": {
"icons": [
"/apps/camera_video/icon.png"
],
"scenes": [],
"media": []
}
}
+21
View File
@@ -0,0 +1,21 @@
{
"id": "dictaphone",
"title": "Dictaphone",
"category": "capture",
"entry_screen": "SCENE_RECORDER",
"enabled": true,
"version": "1.0.0",
"icon_path": "/apps/dictaphone/icon.png",
"required_capabilities": 194,
"optional_capabilities": 32,
"supports_offline": true,
"supports_streaming": false,
"asset_manifest": "/apps/dictaphone/manifest.json",
"assets": {
"icons": [
"/apps/dictaphone/icon.png"
],
"scenes": [],
"media": []
}
}
+21
View File
@@ -0,0 +1,21 @@
{
"id": "flashlight",
"title": "Lampe de Poche",
"category": "utility",
"entry_screen": "SCENE_FLASHLIGHT",
"enabled": true,
"version": "1.0.0",
"icon_path": "/apps/flashlight/icon.png",
"required_capabilities": 136,
"optional_capabilities": 0,
"supports_offline": true,
"supports_streaming": false,
"asset_manifest": "/apps/flashlight/manifest.json",
"assets": {
"icons": [
"/apps/flashlight/icon.png"
],
"scenes": [],
"media": []
}
}
+21
View File
@@ -0,0 +1,21 @@
{
"id": "qr_scanner",
"title": "Lecteur QR Code",
"category": "capture",
"entry_screen": "SCENE_QR_DETECTOR",
"enabled": true,
"version": "1.0.0",
"icon_path": "/apps/qr_scanner/icon.png",
"required_capabilities": 132,
"optional_capabilities": 0,
"supports_offline": true,
"supports_streaming": false,
"asset_manifest": "/apps/qr_scanner/manifest.json",
"assets": {
"icons": [
"/apps/qr_scanner/icon.png"
],
"scenes": [],
"media": []
}
}
+83 -23
View File
@@ -2,55 +2,115 @@
"apps": [
{
"id": "audio_player",
"title": "Audio Player",
"title": "Lecteur Audio",
"category": "media",
"entry_screen": "SCENE_AUDIO_PLAYER",
"enabled": true,
"version": "1.0.0",
"entry_screen": "AUDIO_PLAYER_MAIN",
"icon_path": "/apps/audio_player/icon.png",
"required_capabilities": "CAP_AUDIO_OUT,CAP_STORAGE_FS",
"optional_capabilities": "CAP_WIFI",
"required_capabilities": 193,
"optional_capabilities": 16,
"supports_offline": true,
"supports_streaming": false
"supports_streaming": true,
"asset_manifest": "/apps/audio_player/manifest.json"
},
{
"id": "calculator",
"title": "Calculator",
"category": "utilities",
"title": "Calculatrice",
"category": "utility",
"entry_screen": "SCENE_CALCULATOR",
"enabled": true,
"version": "1.0.0",
"entry_screen": "CALC_MAIN",
"icon_path": "/apps/calculator/icon.png",
"required_capabilities": "CAP_GPU_UI",
"optional_capabilities": "",
"required_capabilities": 128,
"optional_capabilities": 0,
"supports_offline": true,
"supports_streaming": false
"supports_streaming": false,
"asset_manifest": "/apps/calculator/manifest.json"
},
{
"id": "timer_tools",
"title": "Timer & Chrono",
"category": "utilities",
"title": "Chronometre/Minuteur",
"category": "utility",
"entry_screen": "SCENE_TIMER",
"enabled": true,
"version": "1.0.0",
"entry_screen": "TIMER_MAIN",
"icon_path": "/apps/timer_tools/icon.png",
"required_capabilities": "CAP_GPU_UI,CAP_LED",
"optional_capabilities": "",
"required_capabilities": 128,
"optional_capabilities": 0,
"supports_offline": true,
"supports_streaming": false
"supports_streaming": false,
"asset_manifest": "/apps/timer_tools/manifest.json"
},
{
"id": "flashlight",
"title": "Flashlight",
"category": "utilities",
"title": "Lampe de Poche",
"category": "utility",
"entry_screen": "SCENE_FLASHLIGHT",
"enabled": true,
"version": "1.0.0",
"entry_screen": "LED_MAIN",
"icon_path": "/apps/flashlight/icon.png",
"required_capabilities": "CAP_LED",
"optional_capabilities": "",
"required_capabilities": 136,
"optional_capabilities": 0,
"supports_offline": true,
"supports_streaming": false
"supports_streaming": false,
"asset_manifest": "/apps/flashlight/manifest.json"
},
{
"id": "camera_video",
"title": "Appareil Photo/Video",
"category": "capture",
"entry_screen": "SCENE_PHOTO_MANAGER",
"enabled": true,
"version": "1.0.0",
"icon_path": "/apps/camera_video/icon.png",
"required_capabilities": 196,
"optional_capabilities": 32,
"supports_offline": true,
"supports_streaming": false,
"asset_manifest": "/apps/camera_video/manifest.json"
},
{
"id": "dictaphone",
"title": "Dictaphone",
"category": "capture",
"entry_screen": "SCENE_RECORDER",
"enabled": true,
"version": "1.0.0",
"icon_path": "/apps/dictaphone/icon.png",
"required_capabilities": 194,
"optional_capabilities": 32,
"supports_offline": true,
"supports_streaming": false,
"asset_manifest": "/apps/dictaphone/manifest.json"
},
{
"id": "qr_scanner",
"title": "Lecteur QR Code",
"category": "capture",
"entry_screen": "SCENE_QR_DETECTOR",
"enabled": true,
"version": "1.0.0",
"icon_path": "/apps/qr_scanner/icon.png",
"required_capabilities": 132,
"optional_capabilities": 0,
"supports_offline": true,
"supports_streaming": false,
"asset_manifest": "/apps/qr_scanner/manifest.json"
},
{
"id": "audiobook_player",
"title": "Livres Audio",
"category": "media",
"entry_screen": "SCENE_AUDIOBOOK",
"enabled": true,
"version": "1.0.0",
"icon_path": "/apps/audiobook_player/icon.png",
"required_capabilities": 193,
"optional_capabilities": 48,
"supports_offline": true,
"supports_streaming": true,
"asset_manifest": "/apps/audiobook_player/manifest.json"
}
]
}
+21
View File
@@ -0,0 +1,21 @@
{
"id": "timer_tools",
"title": "Chronometre/Minuteur",
"category": "utility",
"entry_screen": "SCENE_TIMER",
"enabled": true,
"version": "1.0.0",
"icon_path": "/apps/timer_tools/icon.png",
"required_capabilities": 128,
"optional_capabilities": 0,
"supports_offline": true,
"supports_streaming": false,
"asset_manifest": "/apps/timer_tools/manifest.json",
"assets": {
"icons": [
"/apps/timer_tools/icon.png"
],
"scenes": [],
"media": []
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 955 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 808 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 859 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

+7 -7
View File
@@ -5,7 +5,7 @@
"name": "Audio Player",
"category": "media",
"filename": "audio_player.png",
"size": 256,
"size": 100,
"color_primary": "#00FFFF",
"color_accent": "#FF00FF",
"emoji_fallback": "🎵"
@@ -15,7 +15,7 @@
"name": "Calculator",
"category": "utilities",
"filename": "calculator.png",
"size": 256,
"size": 100,
"color_primary": "#FFFF00",
"color_accent": "#00FFFF",
"emoji_fallback": "🧮"
@@ -25,7 +25,7 @@
"name": "Timer",
"category": "utilities",
"filename": "timer.png",
"size": 256,
"size": 100,
"color_primary": "#FF00FF",
"color_accent": "#00FF88",
"emoji_fallback": "⏰"
@@ -35,7 +35,7 @@
"name": "Flashlight",
"category": "utilities",
"filename": "flashlight.png",
"size": 256,
"size": 100,
"color_primary": "#FFFF00",
"color_accent": "#FFFFFF",
"emoji_fallback": "🔦"
@@ -45,7 +45,7 @@
"name": "Camera",
"category": "media",
"filename": "camera.png",
"size": 256,
"size": 100,
"color_primary": "#0088FF",
"color_accent": "#FF00FF",
"emoji_fallback": "📷"
@@ -55,7 +55,7 @@
"name": "Dictaphone",
"category": "media",
"filename": "dictaphone.png",
"size": 256,
"size": 100,
"color_primary": "#00FF88",
"color_accent": "#00FFFF",
"emoji_fallback": "🎤"
@@ -65,7 +65,7 @@
"name": "QR Scanner",
"category": "utilities",
"filename": "qr_scanner.png",
"size": 256,
"size": 100,
"color_primary": "#FFFF00",
"color_accent": "#FF00FF",
"emoji_fallback": "📱"