feat: terminal UI over the shared workbench core (issue #26, phase 4)

This commit is contained in:
2026-07-14 20:33:30 +02:00
parent 3a8fafd2fd
commit a3ca44640c
14 changed files with 1701 additions and 295 deletions

View File

@@ -23,7 +23,7 @@ msgstr ""
msgid "%{count} mapped"
msgstr ""
#: lib/bds/desktop/shell_data.ex:171
#: lib/bds/desktop/shell_data.ex:173
#, elixir-autogen, elixir-format
msgid "%{count} post"
msgid_plural "%{count} posts"
@@ -94,6 +94,11 @@ msgstr ""
#: lib/bds/desktop/shell_live/overlay_manager.ex:72
#: lib/bds/desktop/shell_live/post_editor.ex:920
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:43
#: lib/bds/tui.ex:203
#: lib/bds/tui.ex:206
#: lib/bds/tui.ex:209
#: lib/bds/tui.ex:217
#: lib/bds/tui.ex:537
#, elixir-autogen, elixir-format
msgid "AI Suggestions"
msgstr ""
@@ -314,7 +319,7 @@ msgstr ""
msgid "Validation apply prepared"
msgstr ""
#: lib/bds/desktop/shell_data.ex:164
#: lib/bds/desktop/shell_data.ex:166
#: lib/bds/ui/sidebar.ex:331
#, elixir-autogen, elixir-format
msgid "Archived"
@@ -349,7 +354,7 @@ msgstr ""
msgid "Auto"
msgstr ""
#: lib/bds/desktop/shell_live.ex:442
#: lib/bds/desktop/shell_live.ex:443
#: lib/bds/desktop/shell_live/chat_editor.ex:234
#: lib/bds/desktop/shell_live/media_editor.ex:171
#: lib/bds/desktop/shell_live/media_editor.ex:364
@@ -499,7 +504,7 @@ msgstr ""
msgid "Category name is required"
msgstr ""
#: lib/bds/desktop/shell_live.ex:780
#: lib/bds/desktop/shell_live.ex:789
#: lib/bds/desktop/shell_live/chat_editor.ex:87
#: lib/bds/desktop/shell_live/chat_editor.ex:233
#: lib/bds/desktop/shell_live/chat_editor.ex:323
@@ -597,6 +602,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:375
#: lib/bds/desktop/shell_live/script_editor_html/script_editor.html.heex:34
#: lib/bds/desktop/shell_live/template_editor_html/template_editor.html.heex:32
#: lib/bds/tui.ex:308
#: lib/bds/ui/sidebar.ex:764
#, elixir-autogen, elixir-format
msgid "Content"
@@ -766,7 +772,7 @@ msgstr ""
msgid "Delete conversation"
msgstr ""
#: lib/bds/desktop/shell_live/post_editor/persistence.ex:65
#: lib/bds/ui/post_editor/persistence.ex:69
#, elixir-autogen, elixir-format
msgid "Delete this unpublished draft"
msgstr ""
@@ -823,17 +829,17 @@ msgstr ""
msgid "Disable reasoning output for the online chat model"
msgstr ""
#: lib/bds/desktop/shell_live/post_editor/persistence.ex:57
#: lib/bds/ui/post_editor/persistence.ex:61
#, elixir-autogen, elixir-format
msgid "Discard Changes"
msgstr ""
#: lib/bds/desktop/shell_live/post_editor/persistence.ex:58
#: lib/bds/ui/post_editor/persistence.ex:62
#, elixir-autogen, elixir-format
msgid "Discard Draft"
msgstr ""
#: lib/bds/desktop/shell_live/post_editor/persistence.ex:64
#: lib/bds/ui/post_editor/persistence.ex:68
#, elixir-autogen, elixir-format
msgid "Discard changes and restore the published version"
msgstr ""
@@ -876,7 +882,7 @@ msgstr ""
msgid "Documentation"
msgstr ""
#: lib/bds/desktop/shell_data.ex:162
#: lib/bds/desktop/shell_data.ex:164
#, elixir-autogen, elixir-format
msgid "Draft"
msgstr ""
@@ -1076,7 +1082,7 @@ msgstr ""
msgid "Generate Site"
msgstr ""
#: lib/bds/desktop/shell_live.ex:781
#: lib/bds/desktop/shell_live.ex:790
#: lib/bds/desktop/shell_live/socket_state.ex:109
#: lib/bds/ui/sidebar.ex:789
#, elixir-autogen, elixir-format
@@ -1089,8 +1095,8 @@ msgstr ""
msgid "Git Diff"
msgstr ""
#: lib/bds/desktop/shell_data.ex:226
#: lib/bds/desktop/shell_live.ex:777
#: lib/bds/desktop/shell_data.ex:228
#: lib/bds/desktop/shell_live.ex:786
#: lib/bds/desktop/shell_live/panel_renderer.ex:171
#, elixir-autogen, elixir-format
msgid "Git Log"
@@ -1116,7 +1122,7 @@ msgstr ""
msgid "Host"
msgstr ""
#: lib/bds/desktop/shell_data.ex:98
#: lib/bds/desktop/shell_data.ex:100
#: lib/bds/desktop/shell_live/index.html.heex:657
#: lib/bds/desktop/shell_live/media_editor.ex:731
#: lib/bds/desktop/shell_live/post_editor.ex:1038
@@ -1213,9 +1219,9 @@ msgstr ""
msgid "Import failed: %{error}"
msgstr ""
#: lib/bds/desktop/shell_live.ex:605
#: lib/bds/desktop/shell_live.ex:893
#: lib/bds/desktop/shell_live.ex:899
#: lib/bds/desktop/shell_live.ex:606
#: lib/bds/desktop/shell_live.ex:902
#: lib/bds/desktop/shell_live.ex:908
#: lib/bds/desktop/shell_live/sidebar_create.ex:47
#, elixir-autogen, elixir-format
msgid "Import media"
@@ -1350,7 +1356,7 @@ msgstr ""
msgid "Macros (%{count})"
msgstr ""
#: lib/bds/desktop/shell_data.ex:101
#: lib/bds/desktop/shell_data.ex:103
#: lib/bds/desktop/shell_live/settings_editor_html/settings_editor.html.heex:55
#, elixir-autogen, elixir-format
msgid "Main Language"
@@ -1392,6 +1398,9 @@ msgstr ""
#: lib/bds/desktop/shell_live/misc_editor.ex:762
#: lib/bds/desktop/shell_live/sidebar_components.ex:654
#: lib/bds/desktop/shell_live/sidebar_delete.ex:175
#: lib/bds/tui.ex:452
#: lib/bds/tui.ex:581
#: lib/bds/tui.ex:584
#: lib/bds/ui/registry.ex:30
#: lib/bds/ui/registry.ex:100
#: lib/bds/ui/sidebar.ex:558
@@ -1444,7 +1453,7 @@ msgstr ""
msgid "Missing URLs"
msgstr ""
#: lib/bds/desktop/shell_data.ex:100
#: lib/bds/desktop/shell_data.ex:102
#, elixir-autogen, elixir-format
msgid "Mode"
msgstr ""
@@ -1479,6 +1488,7 @@ msgstr ""
#: lib/bds/desktop/menu_bar.ex:185
#: lib/bds/desktop/shell_live/sidebar_create.ex:41
#: lib/bds/tui.ex:103
#, elixir-autogen, elixir-format
msgid "New Post"
msgstr ""
@@ -1657,7 +1667,7 @@ msgstr ""
msgid "Nothing to Import"
msgstr ""
#: lib/bds/desktop/shell_data.ex:100
#: lib/bds/desktop/shell_data.ex:102
#: lib/bds/desktop/shell_live/index.html.heex:503
#, elixir-autogen, elixir-format
msgid "Offline"
@@ -1797,7 +1807,7 @@ msgstr ""
msgid "Other (%{count})"
msgstr ""
#: lib/bds/desktop/shell_live.ex:776
#: lib/bds/desktop/shell_live.ex:785
#: lib/bds/desktop/shell_live/panel_renderer.ex:83
#, elixir-autogen, elixir-format
msgid "Output"
@@ -1879,7 +1889,7 @@ msgstr ""
msgid "Post"
msgstr ""
#: lib/bds/desktop/shell_data.ex:229
#: lib/bds/desktop/shell_data.ex:231
#: lib/bds/desktop/shell_live/panel_renderer.ex:118
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:310
#, elixir-autogen, elixir-format
@@ -1914,6 +1924,8 @@ msgstr ""
#: lib/bds/desktop/menu_bar.ex:202
#: lib/bds/desktop/shell_live/misc_editor.ex:664
#: lib/bds/desktop/shell_live/misc_editor.ex:761
#: lib/bds/tui.ex:451
#: lib/bds/tui.ex:462
#: lib/bds/ui/registry.ex:14
#: lib/bds/ui/sidebar.ex:271
#, elixir-autogen, elixir-format
@@ -1998,7 +2010,7 @@ msgstr ""
msgid "Publish Selected"
msgstr ""
#: lib/bds/desktop/shell_data.ex:163
#: lib/bds/desktop/shell_data.ex:165
#: lib/bds/desktop/shell_live/post_editor.ex:1036
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:472
#: lib/bds/ui/sidebar.ex:324
@@ -2295,6 +2307,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/script_editor.ex:216
#: lib/bds/desktop/shell_live/script_editor.ex:219
#: lib/bds/desktop/shell_live/script_editor.ex:234
#: lib/bds/tui.ex:454
#: lib/bds/ui/registry.ex:38
#: lib/bds/ui/sidebar.ex:63
#: lib/bds/ui/sidebar.ex:115
@@ -2469,7 +2482,7 @@ msgstr ""
msgid "Starting..."
msgstr ""
#: lib/bds/desktop/shell_data.ex:97
#: lib/bds/desktop/shell_data.ex:99
#: lib/bds/desktop/shell_live/import_editor.ex:1182
#: lib/bds/desktop/shell_live/import_editor.ex:1233
#, elixir-autogen, elixir-format
@@ -2542,6 +2555,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/tags_editor.ex:222
#: lib/bds/desktop/shell_live/tags_editor.ex:253
#: lib/bds/desktop/shell_live/tags_editor_html/tags_editor.html.heex:11
#: lib/bds/tui.ex:455
#: lib/bds/ui/registry.ex:54
#: lib/bds/ui/registry.ex:103
#: lib/bds/ui/sidebar.ex:289
@@ -2551,7 +2565,7 @@ msgstr ""
msgid "Tags"
msgstr ""
#: lib/bds/desktop/shell_live.ex:775
#: lib/bds/desktop/shell_live.ex:784
#: lib/bds/desktop/shell_live/panel_renderer.ex:54
#, elixir-autogen, elixir-format
msgid "Tasks"
@@ -2597,6 +2611,7 @@ msgstr ""
#: lib/bds/desktop/shell_live/template_editor.ex:171
#: lib/bds/desktop/shell_live/template_editor.ex:176
#: lib/bds/desktop/shell_live/template_editor.ex:191
#: lib/bds/tui.ex:453
#: lib/bds/ui/registry.ex:46
#: lib/bds/ui/sidebar.ex:71
#: lib/bds/ui/sidebar.ex:122
@@ -2793,7 +2808,7 @@ msgid "Unsaved"
msgstr ""
#: lib/bds/desktop/shell_live/import_editor.ex:871
#: lib/bds/desktop/shell_live/post_editor/post_metadata.ex:166
#: lib/bds/ui/post_editor/metadata.ex:166
#: lib/bds/ui/sidebar.ex:1108
#, elixir-autogen, elixir-format
msgid "Untitled"
@@ -3231,12 +3246,12 @@ msgstr ""
msgid "Comparing database and filesystem metadata"
msgstr ""
#: lib/bds/desktop/shell_live.ex:681
#: lib/bds/desktop/shell_live.ex:682
#, elixir-autogen, elixir-format
msgid "Added %{count} images to post"
msgstr ""
#: lib/bds/desktop/shell_live.ex:649
#: lib/bds/desktop/shell_live.ex:650
#, elixir-autogen, elixir-format
msgid "Added %{title}"
msgstr ""
@@ -3256,18 +3271,18 @@ msgstr ""
msgid "Image Import Concurrency"
msgstr ""
#: lib/bds/desktop/shell_live.ex:441
#: lib/bds/desktop/shell_live.ex:454
#: lib/bds/desktop/shell_live.ex:648
#: lib/bds/desktop/shell_live.ex:680
#: lib/bds/desktop/shell_live.ex:691
#: lib/bds/desktop/shell_live.ex:702
#: lib/bds/desktop/shell_live.ex:442
#: lib/bds/desktop/shell_live.ex:455
#: lib/bds/desktop/shell_live.ex:649
#: lib/bds/desktop/shell_live.ex:681
#: lib/bds/desktop/shell_live.ex:692
#: lib/bds/desktop/shell_live.ex:703
#: lib/bds/desktop/shell_live/post_editor_html/post_editor.html.heex:420
#, elixir-autogen, elixir-format
msgid "Add Gallery Images"
msgstr ""
#: lib/bds/desktop/shell_live.ex:703
#: lib/bds/desktop/shell_live.ex:704
#, elixir-autogen, elixir-format
msgid "Failed to process %{path}: %{reason}"
msgstr ""
@@ -3458,12 +3473,12 @@ msgstr ""
msgid "untracked"
msgstr ""
#: lib/bds/desktop/shell_live.ex:801
#: lib/bds/desktop/shell_live.ex:810
#, elixir-autogen, elixir-format
msgid "Blogmark"
msgstr ""
#: lib/bds/desktop/shell_live.ex:844
#: lib/bds/desktop/shell_live.ex:853
#, elixir-autogen, elixir-format
msgid "Open a project before importing a blogmark."
msgstr ""
@@ -3504,7 +3519,7 @@ msgstr ""
msgid "Failed to copy bookmarklet to clipboard"
msgstr ""
#: lib/bds/desktop/shell_live.ex:813
#: lib/bds/desktop/shell_live.ex:822
#, elixir-autogen, elixir-format
msgid "The project this blogmark targets does not exist here."
msgstr ""
@@ -3611,12 +3626,92 @@ msgstr ""
msgid "The endpoint returned no models. You can still type a model name manually."
msgstr ""
#: lib/bds/tui.ex:28
#: lib/bds/tui.ex:538
#, elixir-autogen, elixir-format
msgid "Blogging Desktop Server"
msgid "AI is unavailable in airplane mode without a local endpoint."
msgstr ""
#: lib/bds/tui.ex:30
#: lib/bds/tui.ex:584
#, elixir-autogen, elixir-format
msgid "Press q to quit."
msgid "Could not load this file."
msgstr ""
#: lib/bds/tui.ex:111
#, elixir-autogen, elixir-format
msgid "Editing this item is not available in the terminal UI yet."
msgstr ""
#: lib/bds/tui.ex:206
#, elixir-autogen, elixir-format
msgid "No suggestions returned."
msgstr ""
#: lib/bds/tui.ex:581
#, elixir-autogen, elixir-format
msgid "Only images can be previewed."
msgstr ""
#: lib/bds/tui.ex:462
#, elixir-autogen, elixir-format
msgid "Post not found."
msgstr ""
#: lib/bds/tui.ex:282
#, elixir-autogen, elixir-format
msgid "Press enter to preview %{name}."
msgstr ""
#: lib/bds/tui.ex:508
#, elixir-autogen, elixir-format
msgid "Published."
msgstr ""
#: lib/bds/tui.ex:524
#, elixir-autogen, elixir-format
msgid "Save before switching languages."
msgstr ""
#: lib/bds/tui.ex:509
#, elixir-autogen, elixir-format
msgid "Saved."
msgstr ""
#: lib/bds/tui.ex:285
#, elixir-autogen, elixir-format
msgid "Select an entry and press enter to open it."
msgstr ""
#: lib/bds/tui.ex:203
#, elixir-autogen, elixir-format
msgid "Suggestions applied."
msgstr ""
#: lib/bds/tui.ex:297
#, elixir-autogen, elixir-format
msgid "Title (ctrl+t to edit)"
msgstr ""
#: lib/bds/tui.ex:296
#, elixir-autogen, elixir-format
msgid "Title (editing — enter to confirm)"
msgstr ""
#: lib/bds/tui.ex:328
#, elixir-autogen, elixir-format
msgid "Working…"
msgstr ""
#: lib/bds/tui.ex:364
#, elixir-autogen, elixir-format
msgid "ctrl+s save · ctrl+p publish · ctrl+t title · ctrl+l language · ctrl+g AI · esc back"
msgstr ""
#: lib/bds/tui.ex:357
#, elixir-autogen, elixir-format
msgid "enter open · n new post · 1-5 views · r refresh · ctrl+q quit"
msgstr ""
#: lib/bds/tui.ex:349
#, elixir-autogen, elixir-format
msgid "esc to close"
msgstr ""