privateboard 0.1.11 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +4260 -1660
- package/dist/cli.js.map +1 -1
- package/package.json +2 -1
- package/public/adjourn-overlay.css +8 -4
- package/public/agent-profile.css +345 -0
- package/public/agent-profile.js +222 -3
- package/public/app.js +4990 -149
- package/public/home.html +609 -1
- package/public/i18n.js +49 -385
- package/public/index.html +9549 -5314
- package/public/new-agent.js +148 -37
- package/public/quote-cta.css +7 -3
- package/public/quote-cta.js +21 -0
- package/public/report.html +109 -12
- package/public/room-settings.css +67 -0
- package/public/room-settings.js +72 -6
- package/public/themes.css +38 -0
- package/public/typing-sfx.js +87 -1
- package/public/user-settings.js +3 -1
- package/public/voice-replay.css +70 -1
- package/public/voice-replay.js +265 -2
package/public/i18n.js
CHANGED
|
@@ -42,6 +42,24 @@
|
|
|
42
42
|
ib_pause_tip: "Pause · you can resume later",
|
|
43
43
|
ib_adjourn_label: "Adjourn the room",
|
|
44
44
|
ib_adjourn_tip: "Adjourn · file the report and end",
|
|
45
|
+
ib_vote_label: "Open vote phase",
|
|
46
|
+
ib_vote_tip: "Call the vote · end the round and tally directors",
|
|
47
|
+
ib_vote_label_queued: "Vote queued",
|
|
48
|
+
ib_vote_tip_queued: "Vote queued · will open after current speaker finishes",
|
|
49
|
+
|
|
50
|
+
vt_kicker: "vote trigger",
|
|
51
|
+
vt_title: "Open the vote phase?",
|
|
52
|
+
vt_intro_idle: "No director is mid-stream. The chair will summarise the round, file key points, and open the vote prompt.",
|
|
53
|
+
vt_intro_speaking: "{who} is mid-stream. Choose how to time the vote phase.",
|
|
54
|
+
vt_intro_speaking_fallback: "A director",
|
|
55
|
+
vt_now_label: "Interrupt now",
|
|
56
|
+
vt_now_desc_speaking: "Cancel the current speaker and open the vote immediately.",
|
|
57
|
+
vt_now_desc_idle: "Skip any queued directors and open the vote immediately.",
|
|
58
|
+
vt_after_label: "After current speaker",
|
|
59
|
+
vt_after_desc_speaking: "Let the current speaker finish their turn, then open the vote.",
|
|
60
|
+
vt_after_desc_idle: "No one is speaking — pick Interrupt now.",
|
|
61
|
+
vt_cancel: "Cancel",
|
|
62
|
+
vt_cancel_desc: "Keep the room running · don't open the vote.",
|
|
45
63
|
|
|
46
64
|
paused_bar_template: "// discussion paused.",
|
|
47
65
|
adjourned_strong: "// room adjourned.",
|
|
@@ -372,6 +390,17 @@
|
|
|
372
390
|
cmp_voice_tooltip: "Enable voice meeting",
|
|
373
391
|
cmp_voice_label: "Voice Mode",
|
|
374
392
|
|
|
393
|
+
rt_speaking: "Speaking",
|
|
394
|
+
rt_thinking: "Thinking",
|
|
395
|
+
rt_user_title: "Chairman",
|
|
396
|
+
rt_toggle_transcript: "Transcript",
|
|
397
|
+
rt_toggle_roundtable: "Round table",
|
|
398
|
+
rt_toggle_enable_voice: "Voice mode",
|
|
399
|
+
rt_aria_stage: "Speaker round-table",
|
|
400
|
+
rt_aria_speaking: "currently speaking: {name}",
|
|
401
|
+
rt_aria_queue: "up next: {names}",
|
|
402
|
+
rt_aria_idle: "no one speaking",
|
|
403
|
+
|
|
375
404
|
conv_stage_analyzing_title: "Analyzing topic",
|
|
376
405
|
conv_stage_analyzing_deck: "Routing your topic to the right perspectives",
|
|
377
406
|
conv_stage_seating_title: "Seating directors",
|
|
@@ -742,42 +771,15 @@ When the room ___, raise an objection.`,
|
|
|
742
771
|
onb_show: "show",
|
|
743
772
|
onb_hide: "hide",
|
|
744
773
|
|
|
745
|
-
/* ───
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
adj_classify_generate: "room · generate report",
|
|
755
|
-
adj_classify_right_terminal: "// terminal",
|
|
756
|
-
adj_classify_right_posthoc: "// post-hoc",
|
|
757
|
-
adj_title_file: "File the report?",
|
|
758
|
-
adj_title_generate: "Generate a report",
|
|
759
|
-
adj_close_aria: "Close",
|
|
760
|
-
adj_meta_room_kicker: "// room #",
|
|
761
|
-
adj_meta_sep: "·",
|
|
762
|
-
adj_meta_turns: "turns",
|
|
763
|
-
adj_key_subject: "// subject",
|
|
764
|
-
adj_key_authors: "// authors",
|
|
765
|
-
adj_key_turns: "// turns",
|
|
766
|
-
adj_agents_count: "{n} agents",
|
|
767
|
-
adj_note_adjourn:
|
|
768
|
-
"The chair compiles a report from the room's transcript. Pick the format below — the room is marked adjourned and the report is filed in the chat once it's ready.",
|
|
769
|
-
adj_note_generate:
|
|
770
|
-
"Generate a report for this adjourned room. Pick the format below — the report lands in the chat once it's ready.",
|
|
771
|
-
adj_skip: "End without report",
|
|
772
|
-
adj_cancel: "[ Cancel ]",
|
|
773
|
-
adj_confirm_file: "[ Adjourn & file ]",
|
|
774
|
-
adj_confirm_generate: "[ Generate ]",
|
|
775
|
-
adj_busy_adjourn: "[ Adjourning… ]",
|
|
776
|
-
adj_busy_generate: "[ Generating… ]",
|
|
777
|
-
adj_err_adjourn: "Adjourn failed: ",
|
|
778
|
-
adj_err_generate: "Generate failed: ",
|
|
779
|
-
|
|
780
|
-
// Agent composer
|
|
774
|
+
/* ─── Late-add keys · only for keys genuinely missing from the
|
|
775
|
+
original i18n bundle. The earlier rev of this section
|
|
776
|
+
duplicated ~328 already-defined keys (a wrong-shape grep
|
|
777
|
+
declared them missing); 327 of those duplicates were
|
|
778
|
+
identical to the originals so harmless, but `rep_load_more`
|
|
779
|
+
had a `{batch}` placeholder vs the original's `{load}`,
|
|
780
|
+
which never substituted and broke the All Reports load-more
|
|
781
|
+
button. Keep this section minimal · only the keys that
|
|
782
|
+
truly don't exist above. */
|
|
781
783
|
ag_cmp_prompt: "Describe the director you want",
|
|
782
784
|
ag_cmp_placeholder:
|
|
783
785
|
"A custom director can be your hard contrarian, your domain specialist, your missing senior advisor — anyone you keep wishing was at the table.",
|
|
@@ -787,355 +789,6 @@ When the room ___, raise an objection.`,
|
|
|
787
789
|
ag_cmp_manual: "or configure manually",
|
|
788
790
|
ag_cmp_model_label: "model",
|
|
789
791
|
ag_cmp_generating: "drafting…",
|
|
790
|
-
ag_gen_header: "drafting your director",
|
|
791
|
-
ag_gen_step: "step {n} of 5",
|
|
792
|
-
ag_gen_elapsed: "{s}s elapsed",
|
|
793
|
-
ag_preview_kicker: "// preview · review and save",
|
|
794
|
-
ag_preview_name: "name",
|
|
795
|
-
ag_preview_role: "role",
|
|
796
|
-
ag_preview_bio: "bio",
|
|
797
|
-
ag_preview_quote: "cover quote",
|
|
798
|
-
ag_preview_instruction: "instruction",
|
|
799
|
-
ag_preview_radar_aria: "ability radar",
|
|
800
|
-
ag_preview_save: "[ Save director ]",
|
|
801
|
-
ag_preview_reroll: "↻ reroll avatar",
|
|
802
|
-
ag_preview_redo: "↻ redo from scratch",
|
|
803
|
-
ag_preview_discard: "✕ discard",
|
|
804
|
-
ag_err_title_fail: "Generation failed",
|
|
805
|
-
ag_err_title_timeout: "Generation timed out",
|
|
806
|
-
ag_err_kicker_fail: "// error",
|
|
807
|
-
ag_err_kicker_timeout: "// timeout",
|
|
808
|
-
ag_err_desc:
|
|
809
|
-
"Your description didn't make it through — the model returned an error.",
|
|
810
|
-
ag_err_hint_fail:
|
|
811
|
-
"Could be a transient API issue. Retry, or simplify the description.",
|
|
812
|
-
ag_err_hint_timeout:
|
|
813
|
-
"The request took longer than 90 seconds. Try a shorter description, or pick a faster model.",
|
|
814
|
-
ag_err_prompt: "what you described:",
|
|
815
|
-
ag_err_retry: "[ ↻ Retry ]",
|
|
816
|
-
ag_err_discard: "[ ✕ Discard ]",
|
|
817
|
-
ag_ws_label: "web search",
|
|
818
|
-
ag_ws_enabled: "ON",
|
|
819
|
-
ag_ws_disabled: "OFF",
|
|
820
|
-
ag_ws_needs_key: "needs key",
|
|
821
|
-
ag_ws_title_on: "Web search enabled · this director can search the web during rooms",
|
|
822
|
-
ag_ws_title_off: "Web search disabled · enable to let this director search the web",
|
|
823
|
-
ag_ws_title_needs:
|
|
824
|
-
"Web search needs a Brave Search API key · configure in user settings",
|
|
825
|
-
|
|
826
|
-
// Sidebar
|
|
827
|
-
sidebar_host: "// host",
|
|
828
|
-
sidebar_expand: "Expand sidebar",
|
|
829
|
-
sidebar_chair_badge: "chair",
|
|
830
|
-
sidebar_chair_badge_title: "Chair · the moderator agent",
|
|
831
|
-
sidebar_chair_note: "// the chair convenes every room",
|
|
832
|
-
sidebar_chair_role_fallback: "Moderator",
|
|
833
|
-
sidebar_paused: "paused",
|
|
834
|
-
sidebar_pin: "Pin",
|
|
835
|
-
sidebar_unpin: "Unpin",
|
|
836
|
-
sidebar_role_director: "Director",
|
|
837
|
-
sidebar_status_active: "active",
|
|
838
|
-
sidebar_section_live: "// live",
|
|
839
|
-
sidebar_section_paused: "// paused",
|
|
840
|
-
sidebar_section_adjourned: "// adjourned",
|
|
841
|
-
sidebar_sec_chair: "// chair",
|
|
842
|
-
sidebar_sec_pinned: "// pinned",
|
|
843
|
-
sidebar_sec_core: "// core",
|
|
844
|
-
sidebar_sec_custom: "// custom",
|
|
845
|
-
sidebar_no_adjourned_title: "No adjourned rooms yet",
|
|
846
|
-
sidebar_no_adjourned_deck: "Adjourned rooms with filed briefs land here.",
|
|
847
|
-
sidebar_delete_room: "Delete room",
|
|
848
|
-
|
|
849
|
-
// Room header (system chrome · English-only)
|
|
850
|
-
room_settings: "Room settings",
|
|
851
|
-
room_pause_verb: "Pause",
|
|
852
|
-
room_resume_verb: "Resume",
|
|
853
|
-
room_view_report: "[ View Report ]",
|
|
854
|
-
room_view_report_multi: "[ View Report · {n} ▾ ]",
|
|
855
|
-
room_view_report_title_multi: "{n} reports · click to choose",
|
|
856
|
-
room_generate_report: "Generate Report",
|
|
857
|
-
room_generate_report_title: "File a brief from this session",
|
|
858
|
-
room_stamp_paused: "paused {ago}",
|
|
859
|
-
room_stamp_adjourned: "adjourned {ago}",
|
|
860
|
-
room_stamp_opened: "opened {ago}",
|
|
861
|
-
room_chair_pick_title: "Chair has selected the next speaker",
|
|
862
|
-
room_cast_n: "{n} directors",
|
|
863
|
-
rooms_one: "{n} room",
|
|
864
|
-
rooms_many: "{n} rooms",
|
|
865
|
-
|
|
866
|
-
// Composer (new room)
|
|
867
|
-
cmp_tone_label: "tone",
|
|
868
|
-
cmp_intensity_label: "intensity",
|
|
869
|
-
cmp_voice_label: "Voice Mode",
|
|
870
|
-
cmp_voice_tooltip: "Voice mode · directors speak aloud during the room",
|
|
871
|
-
|
|
872
|
-
// Convene · seating + opener
|
|
873
|
-
conv_banner_convening: "Convening directors…",
|
|
874
|
-
conv_seated_label: "seated",
|
|
875
|
-
conv_stage_preparing_title: "preparing room",
|
|
876
|
-
conv_stage_preparing_deck: "the chair is gathering context…",
|
|
877
|
-
conv_stage_analyzing_title: "analyzing your question",
|
|
878
|
-
conv_stage_analyzing_deck: "the chair is reading the room's seed…",
|
|
879
|
-
conv_stage_seating_title: "seating directors",
|
|
880
|
-
conv_stage_seating_deck: "the cast is taking their places…",
|
|
881
|
-
convene_eyebrow: "▸ Convene · Initial Question",
|
|
882
|
-
convene_followup_label: "follow-up",
|
|
883
|
-
convene_room_label: "room #{number}",
|
|
884
|
-
convene_meta_to: "to {names}",
|
|
885
|
-
convene_parent_session_title: "from session #{number}",
|
|
886
|
-
convene_show_more: "Show more ↓",
|
|
887
|
-
convene_show_less: "Show less ↑",
|
|
888
|
-
|
|
889
|
-
// Round-open (RO) + round-prompt (RP)
|
|
890
|
-
ro_round: "round {n}",
|
|
891
|
-
ro_mode_parallel: "parallel",
|
|
892
|
-
ro_mode_reactive: "reactive",
|
|
893
|
-
rp_chair_recommends: "the chair recommends:",
|
|
894
|
-
rp_continue_next: "▸ Continue to next round",
|
|
895
|
-
rp_adjourn_room_file: "▸ Adjourn & file brief",
|
|
896
|
-
rp_spent_label: "spent",
|
|
897
|
-
rp_spent_round: "this round",
|
|
898
|
-
round_clarifying: "the chair is clarifying your question…",
|
|
899
|
-
round_end_open_vote: "open the round-end vote",
|
|
900
|
-
round_end_vote_above: "vote on the highlights above",
|
|
901
|
-
|
|
902
|
-
// Key points (KP) round-end card
|
|
903
|
-
kp_eyebrow_drafting: "// chair · drafting recap",
|
|
904
|
-
kp_eyebrow_vote: "// chair · round recap",
|
|
905
|
-
kp_eyebrow_degraded: "// chair · partial recap",
|
|
906
|
-
kp_pending_drafting: "the chair is drafting…",
|
|
907
|
-
kp_btn_continue_next: "[ ▸ Continue ]",
|
|
908
|
-
kp_btn_adjourn: "[ ⊘ Adjourn ]",
|
|
909
|
-
kp_btn_adjourn_brief: "[ ⊘ Adjourn & file brief ]",
|
|
910
|
-
kp_ctas_spent: "spent {tokens} this round",
|
|
911
|
-
kp_keep_mode: "keep current",
|
|
912
|
-
kp_mode_current_fallback: "current",
|
|
913
|
-
kp_shift_eyebrow_prefix: "the chair suggests shifting →",
|
|
914
|
-
kp_switch_to: "switch to {mode}",
|
|
915
|
-
kp_vote_aria_up: "Upvote",
|
|
916
|
-
kp_vote_aria_down: "Downvote",
|
|
917
|
-
kp_vote_drop: "drop",
|
|
918
|
-
kp_vote_more: "more",
|
|
919
|
-
|
|
920
|
-
// Brief card / tabs / banners
|
|
921
|
-
brief_chair_fallback: "Chair",
|
|
922
|
-
brief_filed_by: "filed by {name}",
|
|
923
|
-
brief_filed_stamp: "filed {ago}",
|
|
924
|
-
brief_filed_generating: "generating…",
|
|
925
|
-
brief_meta_authors: "authors",
|
|
926
|
-
brief_open_report: "[ ▸ Open report ]",
|
|
927
|
-
brief_supplement_btn: "[ + Add a perspective ]",
|
|
928
|
-
brief_report_tag: "report",
|
|
929
|
-
brief_untitled: "(untitled)",
|
|
930
|
-
brief_total_line: "{count} {unit}",
|
|
931
|
-
brief_output_head: "// output",
|
|
932
|
-
brief_stage_kicker: "// composing",
|
|
933
|
-
brief_stat_writing: "writing",
|
|
934
|
-
brief_timing_eta: "{s}s remaining",
|
|
935
|
-
brief_timing_inband: "in band",
|
|
936
|
-
brief_timing_over: "{s}s over",
|
|
937
|
-
brief_fmt_min: "{m}m",
|
|
938
|
-
brief_fmt_min_sec: "{m}m {s}s",
|
|
939
|
-
brief_fmt_sec: "{s}s",
|
|
940
|
-
brief_range_min: "{lo}–{hi} min",
|
|
941
|
-
brief_range_sec: "{lo}–{hi}s",
|
|
942
|
-
brief_hard_timeout_msg:
|
|
943
|
-
"the brief writer didn't finish in {minutes} minutes — likely a stuck stream.",
|
|
944
|
-
brief_wc_words: "{n} words",
|
|
945
|
-
brief_wc_one_word: "1 word",
|
|
946
|
-
brief_wc_approx_chars: "~{n} chars",
|
|
947
|
-
brief_tab_initial: "initial",
|
|
948
|
-
brief_tab_supplement_prefix: "supplement: ",
|
|
949
|
-
brief_tab_tooltip_initial: "Initial brief filed at adjourn",
|
|
950
|
-
brief_tab_delete_title: "Delete this brief",
|
|
951
|
-
brief_delete_label: "Delete",
|
|
952
|
-
brief_retry: "Retry",
|
|
953
|
-
brief_dismiss: "Dismiss",
|
|
954
|
-
brief_regen_failed: "Regeneration failed.",
|
|
955
|
-
brief_regen_timeout: "Regeneration took too long and was cancelled.",
|
|
956
|
-
brief_regen_interrupted: "Regeneration was interrupted before it finished.",
|
|
957
|
-
brief_err_stamp_failed: "// failed",
|
|
958
|
-
brief_err_stamp_timeout: "// timed out",
|
|
959
|
-
brief_err_stamp_interrupted: "// interrupted",
|
|
960
|
-
brief_err_kicker_failed: "couldn't compose",
|
|
961
|
-
brief_err_kicker_timeout: "took too long",
|
|
962
|
-
brief_err_kicker_interrupted: "stopped mid-write",
|
|
963
|
-
brief_err_detail_timeout:
|
|
964
|
-
"The brief writer didn't finish in time. This is usually a slow / stuck model — retrying often works.",
|
|
965
|
-
brief_err_detail_interrupted:
|
|
966
|
-
"The previous attempt was interrupted before it finished — likely a server restart while the brief was streaming.",
|
|
967
|
-
brief_err_hint_failed_html: "Pick a different model in your <a href=\"#\" data-open-user-settings>user settings</a>, then retry.",
|
|
968
|
-
brief_err_hint_generic_html: "Make sure your model API key is configured in <a href=\"#\" data-open-user-settings>user settings</a>.",
|
|
969
|
-
brief_err_hint_scaffold_html: "The structured spine couldn't compose. Switch to the report mode in <a href=\"#\" data-open-user-settings>settings</a> or retry.",
|
|
970
|
-
brief_err_cta_regenerate: "[ ↻ Regenerate ]",
|
|
971
|
-
|
|
972
|
-
// Brief harvest categories (sectioned brief composer)
|
|
973
|
-
brief_harvest_claims: "claims",
|
|
974
|
-
brief_harvest_evidence: "evidence",
|
|
975
|
-
brief_harvest_assumptions: "assumptions",
|
|
976
|
-
brief_harvest_risks: "risks",
|
|
977
|
-
brief_harvest_open_questions: "open questions",
|
|
978
|
-
brief_harvest_actions: "actions",
|
|
979
|
-
brief_harvest_quotes: "quotes",
|
|
980
|
-
brief_harvest_tensions: "tensions",
|
|
981
|
-
brief_harvest_opportunities: "opportunities",
|
|
982
|
-
|
|
983
|
-
// No-brief panel + nudge card on adjourned-no-brief rooms
|
|
984
|
-
nb_eyebrow: "adjourned · no brief filed",
|
|
985
|
-
nb_body:
|
|
986
|
-
"this room ended without filing a report. you can generate one now — the chair will compile from the transcript.",
|
|
987
|
-
nb_cta: "[ ▸ Generate Report ]",
|
|
988
|
-
nb_chair_fallback: "Chair",
|
|
989
|
-
nk_classification: "ROOM · ADJOURNED",
|
|
990
|
-
nk_tag: "// no report",
|
|
991
|
-
nk_title: "Walk away with a report",
|
|
992
|
-
nk_deck:
|
|
993
|
-
"the room is closed but no report was filed. compile one now — the chair will draft from the transcript.",
|
|
994
|
-
nk_primary: "[ ▸ Generate Report ]",
|
|
995
|
-
nk_primary_deck: "compile a report from this transcript",
|
|
996
|
-
nk_dismiss: "[ ✕ Dismiss ]",
|
|
997
|
-
nk_frontend_gate: "// generation in flight…",
|
|
998
|
-
|
|
999
|
-
// Session-analytics card · post-adjourn summary
|
|
1000
|
-
sa_head: "// session",
|
|
1001
|
-
sa_stamp: "completed {ago}",
|
|
1002
|
-
sa_seg_title: "this session",
|
|
1003
|
-
sa_tokens: "tokens",
|
|
1004
|
-
sa_messages: "messages",
|
|
1005
|
-
sa_rounds: "rounds",
|
|
1006
|
-
sa_minutes: "min",
|
|
1007
|
-
sa_model_head: "model usage",
|
|
1008
|
-
sa_value_head: "what stuck",
|
|
1009
|
-
sa_value_empty: "no upvoted highlights · the chair's recap stood unchallenged.",
|
|
1010
|
-
sa_voted: "{n} ▲ voted",
|
|
1011
|
-
sa_seconded: "{n} seconded",
|
|
1012
|
-
sa_probed: "{n} probed",
|
|
1013
|
-
|
|
1014
|
-
// Pause / send-confirm modals
|
|
1015
|
-
pause_class: "ROOM · PAUSE",
|
|
1016
|
-
pause_right: "// confirm",
|
|
1017
|
-
pause_tag: "// pause room",
|
|
1018
|
-
pause_title: "Pause the room?",
|
|
1019
|
-
pause_deck:
|
|
1020
|
-
"the room state is preserved — you can resume from this exact spot later.",
|
|
1021
|
-
pause_soft_mark: "soft pause",
|
|
1022
|
-
pause_soft_deck: "queue stays · directors finish their current turn",
|
|
1023
|
-
pause_hard_mark: "hard stop",
|
|
1024
|
-
pause_hard_deck: "abort streams immediately · no graceful finish",
|
|
1025
|
-
pause_cancel_mark: "✕",
|
|
1026
|
-
pause_cancel_deck: "keep the room running",
|
|
1027
|
-
pause_bar_paused: "// discussion paused.",
|
|
1028
|
-
pause_bar_resume: "[ ▶ Resume Discussion ]",
|
|
1029
|
-
pause_bar_adjourn: "[ ⏏ Adjourn ]",
|
|
1030
|
-
pause_bar_next: "next turn:",
|
|
1031
|
-
pause_bar_add_input: "add a prompt for resume",
|
|
1032
|
-
|
|
1033
|
-
sc_send_class: "ROOM · INPUT",
|
|
1034
|
-
sc_send_right: "// dispatch",
|
|
1035
|
-
sc_send_tag: "// send",
|
|
1036
|
-
sc_send_title: "How should this land?",
|
|
1037
|
-
sc_send_deck: "the queue is mid-turn · pick how your input enters the room.",
|
|
1038
|
-
sc_queue_mark: "▼ queue",
|
|
1039
|
-
sc_queue_deck: "your message lands after {speaker} finishes speaking.",
|
|
1040
|
-
sc_interrupt_mark: "⊘ interrupt",
|
|
1041
|
-
sc_interrupt_deck: "stop the current speaker · your message takes the floor.",
|
|
1042
|
-
sc_cancel_mark: "✕",
|
|
1043
|
-
sc_cancel_deck: "back out · don't send.",
|
|
1044
|
-
sc_speaker_fallback: "the current speaker",
|
|
1045
|
-
|
|
1046
|
-
// Queue
|
|
1047
|
-
q_speaking: "speaking",
|
|
1048
|
-
q_state_speaking: "speaking",
|
|
1049
|
-
q_queued: "queued · {n}",
|
|
1050
|
-
q_pending_chair: "the chair is preparing…",
|
|
1051
|
-
q_pending_vote: "round-end vote pending",
|
|
1052
|
-
q_pending_waits_chair: "waiting on the chair…",
|
|
1053
|
-
q_pending_your_vote: "your vote · cast above",
|
|
1054
|
-
q_user_queued: "you · queued",
|
|
1055
|
-
q_more_queued: "+{n} more queued",
|
|
1056
|
-
q_idle: "idle · type to interject",
|
|
1057
|
-
q_cancel: "cancel",
|
|
1058
|
-
|
|
1059
|
-
// Reports list (All Reports view)
|
|
1060
|
-
rep_kicker: "// archive",
|
|
1061
|
-
rep_title: "All Reports",
|
|
1062
|
-
rep_meta: "{total} {unit}{rooms}",
|
|
1063
|
-
rep_meta_room_n: "{n} rooms",
|
|
1064
|
-
rep_meta_room_one: "{n} room",
|
|
1065
|
-
rep_total_n: "{n} reports",
|
|
1066
|
-
rep_total_one: "{n} report",
|
|
1067
|
-
rep_showing: "showing {n}",
|
|
1068
|
-
rep_filter_all: "All",
|
|
1069
|
-
rep_filter_today: "Today",
|
|
1070
|
-
rep_filter_week: "This week",
|
|
1071
|
-
rep_filter_earlier: "Earlier",
|
|
1072
|
-
rep_filter_archive_label: "the archive",
|
|
1073
|
-
rep_aria_filters: "Filter reports by recency",
|
|
1074
|
-
rep_group_today: "Today",
|
|
1075
|
-
rep_group_yesterday: "Yesterday",
|
|
1076
|
-
rep_group_week: "This week",
|
|
1077
|
-
rep_group_earlier: "Earlier",
|
|
1078
|
-
rep_empty_kicker_archive: "// archive empty",
|
|
1079
|
-
rep_empty_kicker_window: "// window empty",
|
|
1080
|
-
rep_empty_title_none:
|
|
1081
|
-
"Run a session and adjourn — once the chair files, every brief across every room lands here.",
|
|
1082
|
-
rep_empty_title_window:
|
|
1083
|
-
"Run a session and adjourn — once the chair files, briefs in this window land here.",
|
|
1084
|
-
rep_empty_deck_all: "Nothing's been filed yet.",
|
|
1085
|
-
rep_empty_deck_window: "No reports in this window.",
|
|
1086
|
-
rep_empty_deck_filter: "No reports in {label}.",
|
|
1087
|
-
rep_cta_show_all: "Show all reports",
|
|
1088
|
-
rep_cta_convene: "[ + Convene a room ]",
|
|
1089
|
-
rep_load_more: "Load {batch} more · {remaining} remaining",
|
|
1090
|
-
|
|
1091
|
-
// Notes (All Notes view + per-room notes)
|
|
1092
|
-
notes_kicker: "// chairman · saved excerpts",
|
|
1093
|
-
notes_title: "All Notes",
|
|
1094
|
-
notes_meta: "{total} {unit}{rooms}",
|
|
1095
|
-
notes_one: "1 note",
|
|
1096
|
-
notes_many: "{n} notes",
|
|
1097
|
-
notes_aria_filters: "Filter notes by recency",
|
|
1098
|
-
notes_filter_all: "All",
|
|
1099
|
-
notes_director_fallback: "Director",
|
|
1100
|
-
notes_item_room: "from {room}",
|
|
1101
|
-
notes_empty_window: "this window",
|
|
1102
|
-
notes_empty_title: "No notes in {label}",
|
|
1103
|
-
notes_empty_deck: "Pick a different filter, or jump back to the full archive.",
|
|
1104
|
-
notes_empty_filter_deck: "No notes in {label}",
|
|
1105
|
-
notes_cta_show_all: "Show all notes",
|
|
1106
|
-
note_saved: "Note saved",
|
|
1107
|
-
|
|
1108
|
-
// Messages · chair / web-search / context bubble
|
|
1109
|
-
msg_tag_you: "you",
|
|
1110
|
-
msg_tag_chair: "chair",
|
|
1111
|
-
msg_chair_pick: "the chair picked the next speaker",
|
|
1112
|
-
msg_chair_billing_kicker: "// chair",
|
|
1113
|
-
msg_chair_direct_kicker: "// directed",
|
|
1114
|
-
msg_chair_intervention_kicker: "// chair · stepping in",
|
|
1115
|
-
msg_chair_display_fallback: "Chair",
|
|
1116
|
-
msg_ctx_title: "Context",
|
|
1117
|
-
msg_ctx_inline: "with context",
|
|
1118
|
-
msg_model_title: "Model · {modelV}",
|
|
1119
|
-
msg_skills_used: "skills · {names}",
|
|
1120
|
-
msg_ws_banner: "web search",
|
|
1121
|
-
msg_ws_btn: "{n} sources",
|
|
1122
|
-
msg_ws_btn_one: "1 source",
|
|
1123
|
-
msg_ws_done: "{n} sources fetched",
|
|
1124
|
-
msg_ws_done_one: "1 source fetched",
|
|
1125
|
-
msg_ws_query_label: "query:",
|
|
1126
|
-
msg_ws_searching: "searching…",
|
|
1127
|
-
msg_ws_failed: "search failed",
|
|
1128
|
-
msg_ws_failed_elapsed: "search failed after {s}s",
|
|
1129
|
-
msg_ws_secs: "{s}s",
|
|
1130
|
-
msg_ws_title: "Web search results",
|
|
1131
|
-
msg_ws_toggle: "toggle results",
|
|
1132
|
-
msg_ws_expand_show: "show",
|
|
1133
|
-
msg_ws_expand_hide: "hide",
|
|
1134
|
-
|
|
1135
|
-
// Chat-level chrome
|
|
1136
|
-
chat_banner: "// chat",
|
|
1137
|
-
chair_pend_banner: "the chair is preparing the next move…",
|
|
1138
|
-
ending_session_foot: "// session ended",
|
|
1139
792
|
|
|
1140
793
|
// Structured-mode write-stage labels · used by renderBriefStages
|
|
1141
794
|
// when the brief is magazine / newspaper / ppt. The write step
|
|
@@ -1518,6 +1171,17 @@ When the room ___, raise an objection.`,
|
|
|
1518
1171
|
cmp_voice_tooltip: "开启语音会议",
|
|
1519
1172
|
cmp_voice_label: "Voice Mode",
|
|
1520
1173
|
|
|
1174
|
+
rt_speaking: "正在说话",
|
|
1175
|
+
rt_thinking: "思考中",
|
|
1176
|
+
rt_user_title: "董事长",
|
|
1177
|
+
rt_toggle_transcript: "字幕",
|
|
1178
|
+
rt_toggle_roundtable: "圆桌",
|
|
1179
|
+
rt_toggle_enable_voice: "语音模式",
|
|
1180
|
+
rt_aria_stage: "圆桌发言席",
|
|
1181
|
+
rt_aria_speaking: "正在发言:{name}",
|
|
1182
|
+
rt_aria_queue: "接下来:{names}",
|
|
1183
|
+
rt_aria_idle: "暂无发言",
|
|
1184
|
+
|
|
1521
1185
|
conv_stage_analyzing_title: "分析议题",
|
|
1522
1186
|
conv_stage_analyzing_deck: "haiku 路由器在拆解你提的话题",
|
|
1523
1187
|
conv_stage_seating_title: "邀请董事",
|