collavre 0.24.0 → 0.25.0
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.
- checksums.yaml +4 -4
- data/README.md +0 -1
- data/app/assets/stylesheets/collavre/comments_popup.css +165 -99
- data/app/assets/stylesheets/collavre/creatives.css +346 -37
- data/app/assets/stylesheets/collavre/desktop_setup.css +246 -0
- data/app/assets/stylesheets/collavre/gnb.css +64 -3
- data/app/assets/stylesheets/collavre/landing.css +108 -3
- data/app/assets/stylesheets/collavre/mention_menu.css +32 -0
- data/app/assets/stylesheets/collavre/popup.css +14 -0
- data/app/assets/stylesheets/collavre/print.css +0 -1
- data/app/assets/stylesheets/collavre/search_popup.css +1 -1
- data/app/assets/stylesheets/collavre/secret_fields.css +3 -0
- data/app/assets/stylesheets/collavre/workspace.css +307 -0
- data/app/channels/collavre/agent_channel.rb +14 -21
- data/app/channels/collavre/comments_presence_channel.rb +181 -21
- data/app/channels/collavre/inbox_badge_channel.rb +7 -1
- data/app/components/collavre/inbox/badge_component.rb +6 -13
- data/app/components/collavre/progress_filter_component.html.erb +2 -2
- data/app/components/collavre/progress_filter_component.rb +20 -0
- data/app/controllers/collavre/admin/settings_controller.rb +4 -1
- data/app/controllers/collavre/agent_connections_controller.rb +165 -0
- data/app/controllers/collavre/agent_gateways_controller.rb +132 -0
- data/app/controllers/collavre/agent_provisioning_controller.rb +79 -0
- data/app/controllers/collavre/api/v1/agents_controller.rb +45 -97
- data/app/controllers/collavre/application_controller.rb +13 -2
- data/app/controllers/collavre/comment_read_pointers_controller.rb +69 -40
- data/app/controllers/collavre/comments_controller.rb +45 -131
- data/app/controllers/collavre/concerns/shareable.rb +9 -3
- data/app/controllers/collavre/creatives_controller.rb +144 -11
- data/app/controllers/collavre/desktop_gateway_registrations_controller.rb +173 -0
- data/app/controllers/collavre/desktop_setup_controller.rb +119 -0
- data/app/controllers/collavre/desktop_sidecar_health_controller.rb +35 -0
- data/app/controllers/collavre/features_controller.rb +57 -0
- data/app/controllers/collavre/invites_controller.rb +12 -1
- data/app/controllers/collavre/llm_models_controller.rb +8 -0
- data/app/controllers/collavre/notices_controller.rb +20 -0
- data/app/controllers/collavre/tasks_controller.rb +40 -6
- data/app/controllers/collavre/topics_controller.rb +130 -53
- data/app/controllers/collavre/user_creative_preferences_controller.rb +214 -30
- data/app/controllers/concerns/collavre/comments/batch_operations.rb +15 -3
- data/app/controllers/concerns/collavre/comments/conversion.rb +1 -1
- data/app/controllers/concerns/collavre/users_controller/ai_user_management.rb +118 -8
- data/app/controllers/concerns/collavre/users_controller/profile_and_settings.rb +1 -15
- data/app/controllers/concerns/collavre/users_controller/registration.rb +2 -2
- data/app/errors/collavre/turn_deadline_error.rb +20 -0
- data/app/helpers/collavre/application_helper.rb +38 -0
- data/app/helpers/collavre/creatives_helper.rb +56 -22
- data/app/helpers/collavre/navigation_helper.rb +12 -0
- data/app/javascript/collavre.js +1 -2
- data/app/javascript/components/InlineLexicalEditor.jsx +30 -21
- data/app/javascript/components/__tests__/creative_tree_row_parent_id.test.js +32 -2
- data/app/javascript/components/__tests__/creative_tree_row_progress_toggle.test.js +185 -0
- data/app/javascript/components/creative_tree_row.js +62 -22
- data/app/javascript/controllers/__tests__/agent_connection_controller.test.js +195 -0
- data/app/javascript/controllers/__tests__/desktop_proxy_setup_controller.test.js +96 -0
- data/app/javascript/controllers/__tests__/index.test.js +42 -0
- data/app/javascript/controllers/__tests__/last_visited_creative_controller.test.js +103 -0
- data/app/javascript/controllers/__tests__/link_creative_controller.test.js +253 -2
- data/app/javascript/controllers/__tests__/progress_filter_controller.test.js +134 -0
- data/app/javascript/controllers/__tests__/search_popup_controller.test.js +310 -0
- data/app/javascript/controllers/__tests__/topic_list_controller.test.js +111 -0
- data/app/javascript/controllers/__tests__/workspace_tree_controller.test.js +1011 -0
- data/app/javascript/controllers/agent_connection_controller.js +357 -0
- data/app/javascript/controllers/agent_vendor_controller.js +23 -0
- data/app/javascript/controllers/comment_controller.js +3 -1
- data/app/javascript/controllers/comments/__tests__/feature_cards_controller.test.js +223 -0
- data/app/javascript/controllers/comments/__tests__/form_controller_default_placeholder.test.js +83 -0
- data/app/javascript/controllers/comments/__tests__/form_controller_draft.test.js +2069 -0
- data/app/javascript/controllers/comments/__tests__/form_controller_ime_send.test.js +324 -0
- data/app/javascript/controllers/comments/__tests__/form_controller_review.test.js +28 -2
- data/app/javascript/controllers/comments/__tests__/form_controller_search_submit.test.js +106 -0
- data/app/javascript/controllers/comments/__tests__/form_controller_stashed_draft.test.js +134 -0
- data/app/javascript/controllers/comments/__tests__/form_controller_stashed_draft_creative_switch.test.js +166 -0
- data/app/javascript/controllers/comments/__tests__/form_controller_stashed_draft_failure.test.js +183 -0
- data/app/javascript/controllers/comments/__tests__/list_controller_deep_link_topic.test.js +467 -0
- data/app/javascript/controllers/comments/__tests__/list_controller_docked.test.js +115 -0
- data/app/javascript/controllers/comments/__tests__/list_controller_prev_message.test.js +245 -0
- data/app/javascript/controllers/comments/__tests__/list_controller_read_pointer.test.js +276 -0
- data/app/javascript/controllers/comments/__tests__/list_controller_stream_archived.test.js +221 -0
- data/app/javascript/controllers/comments/__tests__/list_controller_stream_search.test.js +104 -0
- data/app/javascript/controllers/comments/__tests__/placeholder_controller.test.js +79 -0
- data/app/javascript/controllers/comments/__tests__/popup_controller.test.js +754 -1
- data/app/javascript/controllers/comments/__tests__/presence_controller.test.js +717 -15
- data/app/javascript/controllers/comments/__tests__/prev_message_navigator.test.js +129 -0
- data/app/javascript/controllers/comments/__tests__/topics_controller_action_errors.test.js +184 -0
- data/app/javascript/controllers/comments/__tests__/topics_controller_archived.test.js +879 -0
- data/app/javascript/controllers/comments/__tests__/topics_controller_creation_container.test.js +154 -0
- data/app/javascript/controllers/comments/__tests__/topics_controller_creation_scroll.test.js +92 -0
- data/app/javascript/controllers/comments/__tests__/topics_controller_delete.test.js +130 -0
- data/app/javascript/controllers/comments/__tests__/topics_controller_docked.test.js +32 -0
- data/app/javascript/controllers/comments/__tests__/topics_controller_last_topic_echo.test.js +1938 -0
- data/app/javascript/controllers/comments/__tests__/topics_controller_primary_agent.test.js +256 -0
- data/app/javascript/controllers/comments/__tests__/topics_controller_scroll.test.js +182 -0
- data/app/javascript/controllers/comments/__tests__/topics_controller_selection_race.test.js +981 -0
- data/app/javascript/controllers/comments/__tests__/topics_controller_topic_list.test.js +313 -0
- data/app/javascript/controllers/comments/feature_cards_controller.js +83 -0
- data/app/javascript/controllers/comments/form_controller.js +795 -14
- data/app/javascript/controllers/comments/list_controller.js +338 -52
- data/app/javascript/controllers/comments/placeholder_controller.js +30 -0
- data/app/javascript/controllers/comments/popup_controller.js +425 -83
- data/app/javascript/controllers/comments/presence_controller.js +317 -55
- data/app/javascript/controllers/comments/prev_message_navigator.js +94 -0
- data/app/javascript/controllers/comments/topics_controller.js +1772 -100
- data/app/javascript/controllers/common_popup_controller.js +2 -2
- data/app/javascript/controllers/creatives/__tests__/select_mode_controller.test.js +139 -0
- data/app/javascript/controllers/creatives/__tests__/tree_controller.test.js +605 -0
- data/app/javascript/controllers/creatives/__tests__/write_access_request_controller.test.js +125 -0
- data/app/javascript/controllers/creatives/select_mode_controller.js +7 -2
- data/app/javascript/controllers/creatives/tree_controller.js +140 -31
- data/app/javascript/controllers/creatives/write_access_request_controller.js +58 -0
- data/app/javascript/controllers/desktop_proxy_setup_controller.js +51 -0
- data/app/javascript/controllers/gateway_check_controller.js +36 -0
- data/app/javascript/controllers/index.js +25 -1
- data/app/javascript/controllers/last_visited_creative_controller.js +58 -0
- data/app/javascript/controllers/link_creative_controller.js +89 -18
- data/app/javascript/controllers/progress_filter_controller.js +12 -22
- data/app/javascript/controllers/search_popup_controller.js +64 -46
- data/app/javascript/controllers/share_user_search_controller.js +2 -2
- data/app/javascript/controllers/topic_list_controller.js +44 -7
- data/app/javascript/controllers/workspace_tree_controller.js +662 -0
- data/app/javascript/creatives/__tests__/tree_renderer.test.js +80 -0
- data/app/javascript/creatives/drag_drop/__tests__/drop_completion_empty_state.test.js +98 -0
- data/app/javascript/creatives/drag_drop/__tests__/topic_move_released_agent.test.js +125 -0
- data/app/javascript/creatives/drag_drop/event_handlers.js +12 -0
- data/app/javascript/creatives/tree_renderer.js +65 -22
- data/app/javascript/lib/__tests__/chat_drafts.test.js +1458 -0
- data/app/javascript/lib/__tests__/common_popup_bounds.test.js +8 -3
- data/app/javascript/lib/__tests__/common_popup_placement.test.js +374 -0
- data/app/javascript/lib/__tests__/common_popup_reshow.test.js +131 -0
- data/app/javascript/lib/__tests__/creative_link_prefetch.test.js +46 -0
- data/app/javascript/lib/__tests__/last_visited_creative.test.js +87 -0
- data/app/javascript/lib/__tests__/skill_html_entities.test.js +23 -0
- data/app/javascript/lib/__tests__/turbo_stream_actions.test.js +190 -0
- data/app/javascript/lib/api/__tests__/creatives.test.js +68 -0
- data/app/javascript/lib/api/__tests__/csrf_fetch.test.js +27 -0
- data/app/javascript/lib/api/__tests__/topics_save_last_topic.test.js +112 -0
- data/app/javascript/lib/api/creatives.js +32 -13
- data/app/javascript/lib/api/csrf_fetch.js +6 -4
- data/app/javascript/lib/api/topics.js +63 -5
- data/app/javascript/lib/chat_drafts.js +786 -0
- data/app/javascript/lib/common_popup.js +164 -25
- data/app/javascript/lib/creative_link_prefetch.js +27 -0
- data/app/javascript/lib/last_visited_creative.js +97 -0
- data/app/javascript/lib/lexical/__tests__/creative_link_node.test.js +162 -0
- data/app/javascript/lib/lexical/__tests__/creative_link_trigger.test.js +133 -0
- data/app/javascript/lib/lexical/__tests__/link_toolbar.test.js +62 -0
- data/app/javascript/lib/lexical/creative_link_node.js +101 -0
- data/app/javascript/lib/lexical/creative_link_trigger.js +98 -0
- data/app/javascript/lib/lexical/link_toolbar.js +23 -0
- data/app/javascript/lib/turbo_stream_actions.js +23 -16
- data/app/javascript/lib/utils/__tests__/filter_navigation.test.js +210 -0
- data/app/javascript/lib/utils/__tests__/markdown.test.js +44 -0
- data/app/javascript/lib/utils/filter_navigation.js +100 -0
- data/app/javascript/modules/__tests__/command_menu_creative_picker.test.js +62 -0
- data/app/javascript/modules/__tests__/command_menu_typeahead.test.js +267 -0
- data/app/javascript/modules/__tests__/creative_link_picker.test.js +85 -0
- data/app/javascript/modules/__tests__/creative_row_editor_archive.test.js +391 -0
- data/app/javascript/modules/__tests__/creative_row_editor_delegated_clicks.test.js +158 -0
- data/app/javascript/modules/__tests__/creative_row_editor_empty_state_recovery.test.js +519 -0
- data/app/javascript/modules/__tests__/creative_row_editor_empty_state_removal.test.js +346 -0
- data/app/javascript/modules/__tests__/creative_row_editor_session.test.js +144 -0
- data/app/javascript/modules/__tests__/creative_tree_dom.test.js +30 -0
- data/app/javascript/modules/__tests__/creative_tree_empty_state.test.js +186 -0
- data/app/javascript/modules/__tests__/dom_listener_registry.test.js +67 -0
- data/app/javascript/modules/__tests__/support/inline_editor_dom.js +159 -0
- data/app/javascript/modules/command_args_form.js +0 -12
- data/app/javascript/modules/command_menu.js +80 -38
- data/app/javascript/modules/creative_link_picker.js +56 -0
- data/app/javascript/modules/creative_row_editor.js +446 -243
- data/app/javascript/modules/creative_row_editor_delegated_clicks.js +87 -0
- data/app/javascript/modules/creative_tree_dom.js +4 -0
- data/app/javascript/modules/creative_tree_empty_state.js +80 -0
- data/app/javascript/modules/dom_listener_registry.js +23 -0
- data/app/javascript/modules/mention_menu.js +2 -3
- data/app/javascript/utils/__tests__/caret_anchor.test.js +75 -0
- data/app/javascript/utils/__tests__/chevron_icons.test.js +15 -0
- data/app/javascript/utils/caret_position.js +10 -0
- data/app/javascript/utils/chevron_icons.js +7 -0
- data/app/jobs/collavre/ai_agent_job.rb +262 -72
- data/app/jobs/collavre/cancel_offline_delegated_tasks_job.rb +11 -36
- data/app/jobs/collavre/comment_badges_broadcast_job.rb +28 -0
- data/app/jobs/collavre/comment_link_preview_job.rb +33 -0
- data/app/jobs/collavre/comment_notification_job.rb +14 -0
- data/app/jobs/collavre/comment_push_delivery_sweep_job.rb +17 -0
- data/app/jobs/collavre/compress_job.rb +33 -22
- data/app/jobs/collavre/creative_broadcast_job.rb +161 -48
- data/app/jobs/collavre/cron_action_job.rb +36 -18
- data/app/jobs/collavre/drop_trigger_job.rb +23 -9
- data/app/jobs/collavre/merge_comments_job.rb +33 -16
- data/app/jobs/collavre/push_notification_job.rb +62 -18
- data/app/jobs/collavre/restore_dropped_dispatches_job.rb +17 -0
- data/app/jobs/collavre/stuck_detector_job.rb +1 -1
- data/app/jobs/collavre/touch_creative_subtree_job.rb +14 -0
- data/app/models/collavre/agent_gateway.rb +200 -0
- data/app/models/collavre/agent_subscription.rb +4 -4
- data/app/models/collavre/agent_workspace.rb +210 -0
- data/app/models/collavre/comment/broadcastable.rb +22 -52
- data/app/models/collavre/comment/notifiable.rb +154 -77
- data/app/models/collavre/comment/topic_membership.rb +41 -0
- data/app/models/collavre/comment.rb +336 -31
- data/app/models/collavre/comment_notification_delivery.rb +61 -0
- data/app/models/collavre/comment_presence_store/cache_batches.rb +64 -0
- data/app/models/collavre/comment_presence_store.rb +272 -12
- data/app/models/collavre/comment_read_pointer.rb +9 -15
- data/app/models/collavre/creative/describable.rb +8 -2
- data/app/models/collavre/creative/permissible.rb +11 -0
- data/app/models/collavre/creative.rb +29 -4
- data/app/models/collavre/creative_share.rb +109 -4
- data/app/models/collavre/current.rb +1 -0
- data/app/models/collavre/llm_model.rb +62 -0
- data/app/models/collavre/system_setting.rb +12 -1
- data/app/models/collavre/task.rb +121 -2
- data/app/models/collavre/topic.rb +51 -0
- data/app/models/collavre/user.rb +101 -41
- data/app/models/collavre/user_creative_preference.rb +3 -1
- data/app/services/collavre/agent_provisioning/archive.rb +108 -0
- data/app/services/collavre/ai_agent/a2a_dispatcher.rb +16 -3
- data/app/services/collavre/ai_agent/agent_lifecycle_manager.rb +63 -6
- data/app/services/collavre/ai_agent/approval_handler.rb +12 -4
- data/app/services/collavre/ai_agent/claude_channel_adapter.rb +10 -5
- data/app/services/collavre/ai_agent/merged_trigger_comments.rb +164 -0
- data/app/services/collavre/ai_agent/message_builder.rb +103 -16
- data/app/services/collavre/ai_agent/session_provisioner.rb +3 -7
- data/app/services/collavre/ai_agent/task_claim_service.rb +29 -15
- data/app/services/collavre/ai_agent/task_reply_service.rb +67 -0
- data/app/services/collavre/ai_agent_service.rb +108 -20
- data/app/services/collavre/ai_client.rb +211 -21
- data/app/services/collavre/cli_proxy/client.rb +147 -0
- data/app/services/collavre/cli_proxy/endpoint_policy.rb +81 -0
- data/app/services/collavre/cli_proxy/identity.rb +47 -0
- data/app/services/collavre/cli_proxy/safe_net_http_adapter.rb +19 -0
- data/app/services/collavre/command_menu_service.rb +0 -10
- data/app/services/collavre/comment_move_service.rb +96 -7
- data/app/services/collavre/comment_snapshot_restore_service.rb +11 -5
- data/app/services/collavre/comments/action_executor.rb +48 -20
- data/app/services/collavre/comments/command_processor.rb +0 -1
- data/app/services/collavre/comments/list_response.rb +133 -0
- data/app/services/collavre/comments/read_pointer_writer.rb +210 -0
- data/app/services/collavre/comments/read_receipt_broadcaster.rb +157 -0
- data/app/services/collavre/comments/read_receipt_index.rb +152 -0
- data/app/services/collavre/comments/topic_command.rb +72 -1
- data/app/services/collavre/comments/topic_mutation.rb +20 -0
- data/app/services/collavre/creatives/breadcrumb_resolver.rb +1 -1
- data/app/services/collavre/creatives/comment_badge_index.rb +299 -27
- data/app/services/collavre/creatives/reorderer.rb +15 -3
- data/app/services/collavre/creatives/tree_builder.rb +1 -1
- data/app/services/collavre/creatives/tree_formatter.rb +5 -6
- data/app/services/collavre/creatives/workspace_path_resolver.rb +50 -0
- data/app/services/collavre/creatives/workspace_tree_builder.rb +92 -0
- data/app/services/collavre/crons/recurring_topic_tasks.rb +23 -0
- data/app/services/collavre/home_page_path.rb +55 -0
- data/app/services/collavre/html_text.rb +64 -0
- data/app/services/collavre/http_client.rb +11 -2
- data/app/services/collavre/inbox_reply_service.rb +1 -1
- data/app/services/collavre/markdown_converter.rb +13 -1
- data/app/services/collavre/orchestration/agent_orchestrator.rb +776 -81
- data/app/services/collavre/orchestration/arbiter.rb +48 -5
- data/app/services/collavre/orchestration/deferred_trigger_scope.rb +53 -0
- data/app/services/collavre/orchestration/delivery_record.rb +792 -0
- data/app/services/collavre/orchestration/loop_breaker.rb +10 -4
- data/app/services/collavre/orchestration/matcher.rb +132 -17
- data/app/services/collavre/orchestration/policy_resolver.rb +58 -10
- data/app/services/collavre/orchestration/scheduler.rb +10 -4
- data/app/services/collavre/orchestration/scheduling_hooks.rb +10 -0
- data/app/services/collavre/orchestration/selection.rb +43 -0
- data/app/services/collavre/orchestration/stuck_detector.rb +25 -112
- data/app/services/collavre/orchestration/task_coalescer.rb +355 -0
- data/app/services/collavre/orchestration/topic_slot.rb +73 -0
- data/app/services/collavre/system_events/context_builder.rb +60 -11
- data/app/services/collavre/system_events/dispatcher.rb +58 -12
- data/app/services/collavre/system_events/envelope.rb +73 -0
- data/app/services/collavre/system_events/vocabulary.rb +45 -0
- data/app/services/collavre/tools/creative_retrieval_service.rb +1 -1
- data/app/services/collavre/tools/cron_create_service.rb +32 -18
- data/app/services/collavre/tools/id_list.rb +38 -0
- data/app/services/collavre/tools/topic_authorizer.rb +61 -7
- data/app/services/collavre/tools/topic_branch_service.rb +85 -0
- data/app/services/collavre/tools/topic_create_service.rb +117 -0
- data/app/services/collavre/tools/topic_list_service.rb +101 -0
- data/app/services/collavre/tools/topic_message_create_service.rb +192 -0
- data/app/services/collavre/tools/topic_messages_service.rb +346 -0
- data/app/services/collavre/tools/topic_move_service.rb +108 -0
- data/app/services/collavre/tools/topic_selection.rb +59 -0
- data/app/services/collavre/tools/topic_update_service.rb +165 -0
- data/app/services/collavre/topic_branch_service.rb +39 -10
- data/app/services/collavre/topics/agent_resolver.rb +87 -0
- data/app/services/collavre/topics/char_budget.rb +70 -0
- data/app/services/collavre/topics/last_topic_preference_payload.rb +18 -0
- data/app/services/collavre/topics/message_page.rb +380 -0
- data/app/services/collavre/topics/message_page_markdown.rb +102 -0
- data/app/services/collavre/topics/message_scope.rb +61 -0
- data/app/services/collavre/topics/message_stats.rb +92 -0
- data/app/services/collavre/topics/move_blocker.rb +47 -0
- data/app/services/collavre/topics/next_name.rb +35 -0
- data/app/services/collavre/topics/pin_rejection.rb +25 -0
- data/app/services/collavre/topics/read_pointer_relocator.rb +71 -0
- data/app/services/collavre/topics/reserved_name.rb +18 -0
- data/app/services/collavre/topics/serializer.rb +92 -0
- data/app/services/collavre/topics/topic_destroy.rb +30 -0
- data/app/services/collavre/topics/topic_move.rb +80 -0
- data/app/services/collavre/topics/topic_move_effects.rb +35 -0
- data/app/services/collavre/topics/topic_mutation.rb +27 -0
- data/app/views/collavre/admin/integrations/_setting_row.html.erb +5 -8
- data/app/views/collavre/admin/settings/_system_tab.html.erb +7 -0
- data/app/views/collavre/agent_connections/show.html.erb +77 -0
- data/app/views/collavre/agent_gateways/_form.html.erb +71 -0
- data/app/views/collavre/agent_gateways/edit.html.erb +2 -0
- data/app/views/collavre/agent_gateways/index.html.erb +54 -0
- data/app/views/collavre/agent_gateways/new.html.erb +2 -0
- data/app/views/collavre/comments/_comments_popup.html.erb +32 -17
- data/app/views/collavre/comments/_empty_state.html.erb +33 -0
- data/app/views/collavre/comments/_empty_state_minimal.html.erb +7 -0
- data/app/views/collavre/comments/_feature_card.html.erb +35 -0
- data/app/views/collavre/comments/_list.html.erb +3 -2
- data/app/views/collavre/comments/_no_search_results.html.erb +3 -0
- data/app/views/collavre/creatives/_add_button.html.erb +17 -19
- data/app/views/collavre/creatives/_empty_state.html.erb +109 -0
- data/app/views/collavre/creatives/_inline_edit_form.html.erb +5 -5
- data/app/views/collavre/creatives/_tree_loading_placeholder.html.erb +16 -0
- data/app/views/collavre/creatives/_workspace_tree.html.erb +33 -0
- data/app/views/collavre/creatives/index.html.erb +79 -18
- data/app/views/collavre/desktop_setup/show.html.erb +114 -0
- data/app/views/collavre/features/index.html.erb +42 -0
- data/app/views/collavre/features/show.html.erb +52 -0
- data/app/views/collavre/invitation_mailer/invite.html.erb +1 -1
- data/app/views/collavre/invitation_mailer/invite.text.erb +1 -1
- data/app/views/collavre/invites/show.html.erb +14 -1
- data/app/views/collavre/landing/show.html.erb +5 -1
- data/app/views/collavre/shared/_link_creative_modal.html.erb +4 -1
- data/app/views/collavre/shared/navigation/_help_button.html.erb +3 -1
- data/app/views/collavre/shared/navigation/_panels.html.erb +1 -8
- data/app/views/collavre/shared/navigation/_search_form.html.erb +13 -2
- data/app/views/collavre/user_themes/index.html.erb +1 -1
- data/app/views/collavre/users/_llm_fields.html.erb +65 -0
- data/app/views/collavre/users/_org_chart_node.html.erb +1 -1
- data/app/views/collavre/users/edit_ai.html.erb +33 -31
- data/app/views/collavre/users/new.html.erb +4 -2
- data/app/views/collavre/users/new_ai.html.erb +14 -32
- data/app/views/collavre/users/show.html.erb +13 -1
- data/app/views/layouts/collavre/landing.html.erb +9 -4
- data/config/initializers/ruby_llm_openai_reasoning_content.rb +77 -0
- data/config/locales/admin.en.yml +3 -1
- data/config/locales/admin.ko.yml +3 -1
- data/config/locales/agent_gateway.en.yml +217 -0
- data/config/locales/agent_gateway.ko.yml +217 -0
- data/config/locales/ai_agent.en.yml +0 -1
- data/config/locales/ai_agent.ko.yml +0 -1
- data/config/locales/comments.en.yml +72 -30
- data/config/locales/comments.ko.yml +72 -30
- data/config/locales/creatives.en.yml +32 -1
- data/config/locales/creatives.ko.yml +32 -1
- data/config/locales/features.en.yml +140 -0
- data/config/locales/features.ko.yml +140 -0
- data/config/locales/invites.en.yml +3 -0
- data/config/locales/invites.ko.yml +3 -0
- data/config/locales/landing.en.yml +2 -1
- data/config/locales/landing.ko.yml +2 -1
- data/config/locales/tools.en.yml +20 -0
- data/config/locales/tools.ko.yml +20 -0
- data/config/locales/users.en.yml +15 -14
- data/config/locales/users.ko.yml +14 -14
- data/config/routes.rb +45 -19
- data/db/migrate/20250911084338_backfill_creative_in_comment_inbox_items.rb +9 -1
- data/db/migrate/20260724000000_add_creative_id_index_to_comments.rb +34 -0
- data/db/migrate/20260724000001_add_creative_private_id_index_to_comments.rb +50 -0
- data/db/migrate/20260724090000_add_async_comment_notification_state.rb +64 -0
- data/db/migrate/20260727000000_add_waiting_notice_scope_to_comments.rb +30 -0
- data/db/migrate/20260727010000_add_waiting_notice_scope_to_tasks.rb +26 -0
- data/db/migrate/20260805000000_add_creative_workspace_enabled_to_users.rb +5 -0
- data/db/migrate/20260807050000_add_dismissed_notices_to_users.rb +5 -0
- data/db/migrate/20260809000000_change_creative_workspace_enabled_default_to_true.rb +18 -0
- data/db/migrate/20260809000001_create_llm_models.rb +64 -0
- data/db/migrate/20260809000002_create_agent_gateways_and_workspaces.rb +35 -0
- data/db/migrate/20260809000003_hash_agent_workspace_callback_tokens.rb +44 -0
- data/db/migrate/20260809000004_encrypt_agent_workspace_manifest_tokens.rb +59 -0
- data/db/migrate/20260810000000_split_agent_workspace_identity_axes.rb +58 -0
- data/db/migrate/20260810000001_seed_codex_custom_proxy_llm_models.rb +28 -0
- data/db/migrate/20260810010000_add_last_visited_creative_to_users.rb +8 -0
- data/db/migrate/20260810020000_add_last_visited_creative_at_to_users.rb +5 -0
- data/db/migrate/20260810030000_add_last_visited_creative_navigation_order_to_users.rb +6 -0
- data/db/migrate/20260810060000_add_last_visited_creative_issued_sequence_to_users.rb +5 -0
- data/db/migrate/20260810100000_add_desktop_managed_to_agent_gateways.rb +40 -0
- data/db/migrate/20260810100001_add_desktop_preset_adapter_to_users.rb +38 -0
- data/db/migrate/20260811000000_make_agent_gateway_completion_key_nullable.rb +7 -0
- data/db/migrate/20260812000000_remove_workflow_columns_from_tasks.rb +101 -0
- data/db/migrate/20260812000001_remove_android_devices.rb +24 -0
- data/db/migrate/20260812010000_drop_inbox_items.rb +22 -0
- data/db/migrate/20260813000000_clear_claude_channel_presence_routing_expressions.rb +16 -0
- data/db/migrate/20260813000001_add_last_topic_revision_to_user_creative_preferences.rb +5 -0
- data/db/migrate/20260813000002_add_last_topic_save_order_to_user_creative_preferences.rb +6 -0
- data/db/migrate/20260813000003_add_last_topic_save_sequences_to_user_creative_preferences.rb +5 -0
- data/db/migrate/20260813000004_add_last_topic_save_fences_to_user_creative_preferences.rb +6 -0
- data/db/migrate/20260814000000_add_topic_to_comment_read_pointers.rb +79 -0
- data/db/migrate/20260814000001_add_creative_topic_private_id_index_to_comments.rb +37 -0
- data/db/migrate/20260816000000_add_watermark_index_to_comment_read_pointers.rb +27 -0
- data/db/migrate/20260816000001_add_private_recipient_topic_index_to_comments.rb +48 -0
- data/db/migrate/20260820000000_add_topic_assigned_at_to_comments.rb +13 -0
- data/db/seeds.rb +1 -51
- data/lib/collavre/engine.rb +108 -1
- data/lib/collavre/feature_card_registry.rb +168 -0
- data/lib/collavre/hashed_access_token_lookup.rb +22 -0
- data/lib/collavre/sensitive_request_silencer.rb +23 -0
- data/lib/collavre/user_extensions.rb +0 -2
- data/lib/collavre/version.rb +1 -1
- data/lib/collavre.rb +1 -0
- data/skills/collavre/SKILL.md +165 -0
- data/skills/collavre/package.json +8 -0
- data/skills/collavre/references/tool-reference.md +347 -0
- data/skills/collavre/scripts/collavre +634 -0
- data/skills/collavre/scripts/html_entities.js +24 -0
- metadata +228 -30
- data/app/controllers/collavre/api/v1/mobile/agent_events_controller.rb +0 -224
- data/app/controllers/collavre/api/v1/mobile/base_controller.rb +0 -95
- data/app/controllers/collavre/api/v1/mobile/devices_controller.rb +0 -31
- data/app/controllers/collavre/api/v1/mobile/voice_commands_controller.rb +0 -25
- data/app/controllers/collavre/inbox_items_controller.rb +0 -70
- data/app/controllers/collavre/typo_corrections_controller.rb +0 -39
- data/app/javascript/lib/__tests__/typo_correction.test.js +0 -192
- data/app/javascript/lib/typo_correction.js +0 -146
- data/app/javascript/modules/__tests__/typo_corrector.test.js +0 -365
- data/app/javascript/modules/creative_guide.js +0 -67
- data/app/javascript/modules/typo_corrector.js +0 -534
- data/app/jobs/collavre/inbox_summary_job.rb +0 -24
- data/app/mailers/collavre/inbox_mailer.rb +0 -19
- data/app/models/collavre/inbox_item.rb +0 -89
- data/app/services/collavre/comments/concerns/workflow_support.rb +0 -115
- data/app/services/collavre/comments/work_command.rb +0 -161
- data/app/services/collavre/comments/workflow_executor.rb +0 -276
- data/app/services/collavre/gemini_parent_recommender.rb +0 -77
- data/app/services/collavre/mobile/event_summarizer.rb +0 -40
- data/app/services/collavre/typo_corrector.rb +0 -188
- data/app/views/collavre/inbox_items/_item.html.erb +0 -18
- data/app/views/collavre/inbox_items/_items.html.erb +0 -3
- data/app/views/collavre/inbox_items/_list.html.erb +0 -7
- data/app/views/collavre/inbox_items/index.html.erb +0 -1
- data/app/views/collavre/inbox_mailer/daily_summary.html.erb +0 -11
- data/app/views/collavre/inbox_mailer/daily_summary.text.erb +0 -8
- data/app/views/collavre/users/typo_correction.html.erb +0 -50
- data/config/locales/mobile.en.yml +0 -16
- data/config/locales/mobile.ko.yml +0 -16
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
---
|
|
2
|
+
ko:
|
|
3
|
+
activerecord:
|
|
4
|
+
attributes:
|
|
5
|
+
collavre/agent_gateway:
|
|
6
|
+
name: 이름
|
|
7
|
+
base_url: Base URL
|
|
8
|
+
admin_key: Admin key
|
|
9
|
+
completion_key: Completion key
|
|
10
|
+
identity_secret: Identity secret
|
|
11
|
+
tenant_id: Tenant ID
|
|
12
|
+
workspace_mode: 워크스페이스 모드
|
|
13
|
+
active: 사용 가능 여부
|
|
14
|
+
agents: AI Agent
|
|
15
|
+
errors:
|
|
16
|
+
models:
|
|
17
|
+
collavre/agent_gateway:
|
|
18
|
+
attributes:
|
|
19
|
+
base_url:
|
|
20
|
+
invalid: "은(는) 사용자 정보·쿼리·프래그먼트가 없는 http(s) 주소여야 합니다"
|
|
21
|
+
unsafe: "은(는) HTTPS를 사용해야 하며 로컬·사설·예약된 네트워크 주소를 사용할 수 없습니다"
|
|
22
|
+
immutable: "은(는) 데스크탑 관리 게이트웨이에서 변경할 수 없습니다"
|
|
23
|
+
admin_key:
|
|
24
|
+
immutable: "은(는) 데스크탑 관리 게이트웨이에서 변경할 수 없습니다"
|
|
25
|
+
completion_key:
|
|
26
|
+
immutable: "은(는) 데스크탑 관리 게이트웨이에서 변경할 수 없습니다"
|
|
27
|
+
required_for_agents: "은(는) AI Agent에 할당되어 있는 동안 필요합니다"
|
|
28
|
+
workspace_mode:
|
|
29
|
+
desktop_shared_only: "은(는) 데스크탑 관리 게이트웨이에서 공유 모드로 유지해야 합니다"
|
|
30
|
+
tenant_id:
|
|
31
|
+
invalid: "은(는) 영문·숫자와 . _ : @ / - 만 사용할 수 있습니다"
|
|
32
|
+
identity_secret:
|
|
33
|
+
immutable: "은(는) 데스크탑 관리 게이트웨이에서 변경할 수 없습니다"
|
|
34
|
+
blank: "은(는) 사용자별 모드 또는 여러 AI Agent가 사용하는 게이트웨이에서 필수입니다"
|
|
35
|
+
too_short: "은(는) %{count}바이트 이상이어야 합니다"
|
|
36
|
+
collavre/user:
|
|
37
|
+
attributes:
|
|
38
|
+
agent_gateway:
|
|
39
|
+
identity_required: "은(는) 다른 AI Agent와 게이트웨이를 공유할 때 Identity secret이 필요합니다"
|
|
40
|
+
completion_key_required: "은(는) AI Agent 채팅에 Completion key가 필요합니다"
|
|
41
|
+
collavre:
|
|
42
|
+
agent_gateways:
|
|
43
|
+
title: 내 Agent Gateway
|
|
44
|
+
manage: Agent Gateway 설정
|
|
45
|
+
description: 내가 소유한 CLI OpenAI 프록시를 등록합니다. 키는 서버에만 보관되며 브라우저로 전달되지 않습니다.
|
|
46
|
+
add: 게이트웨이 추가
|
|
47
|
+
new_title: Agent Gateway 추가
|
|
48
|
+
edit_title: Agent Gateway 수정
|
|
49
|
+
name: 이름
|
|
50
|
+
name_placeholder: 팀 CLI Proxy
|
|
51
|
+
base_url: Base URL
|
|
52
|
+
base_url_help: API 경로를 제외한 공개 HTTPS 프록시 주소를 입력하세요. 로컬·사설·예약된 네트워크 주소는 차단됩니다.
|
|
53
|
+
base_url_help_admin: API 경로를 제외한 프록시 주소를 입력하세요. 시스템 관리자는 HTTP와 사설망 주소를 사용할 수 있습니다.
|
|
54
|
+
admin_key: Admin key
|
|
55
|
+
admin_key_help: 프록시 AUTH_ADMIN_KEYS 값입니다. Collavre 서버에서만 사용합니다.
|
|
56
|
+
completion_key: Completion key
|
|
57
|
+
completion_key_help: 선택 사항입니다. AI Agent 채팅 완료 요청에만 필요합니다.
|
|
58
|
+
clear_completion_key_label: 저장된 Completion key 삭제
|
|
59
|
+
clear_completion_key_help: 저장 후 새 Completion key를 추가하기 전까지 이 게이트웨이는 프로비저닝 전용으로만 사용할 수 있습니다.
|
|
60
|
+
identity_secret: Identity secret
|
|
61
|
+
identity_secret_help: USER_IDENTITY_HMAC_SECRET과 같아야 하며 32바이트 이상이어야 합니다. 사용자별 모드 또는 여러 AI Agent가 사용할 때 필수입니다.
|
|
62
|
+
tenant_id: Tenant ID
|
|
63
|
+
tenant_id_help: 이 값을 바꾸면 연결된 모든 에이전트가 프록시에서 다른 워크스페이스를 사용하게 됩니다.
|
|
64
|
+
secret_unchanged: 비워두면 현재 값을 유지합니다
|
|
65
|
+
active: AI Agent에서 사용 가능
|
|
66
|
+
inactive: 비활성
|
|
67
|
+
workspace_mode:
|
|
68
|
+
label: 워크스페이스 모드
|
|
69
|
+
shared: 공유
|
|
70
|
+
shared_help: AI Agent 하나의 Linux 워크스페이스와 provider 로그인을 모든 사용자가 공유합니다.
|
|
71
|
+
per_user: 사용자별
|
|
72
|
+
per_user_help: Collavre 사용자마다 Linux 워크스페이스가 분리되며 각자 provider에 로그인해야 합니다.
|
|
73
|
+
agents: AI Agent
|
|
74
|
+
actions: 작업
|
|
75
|
+
check: 연결 확인
|
|
76
|
+
checking: 확인 중…
|
|
77
|
+
connected: 연결됨
|
|
78
|
+
connection_failed: 연결 실패
|
|
79
|
+
identity_unverified: 관리 키 연결은 확인했지만 사용자 신원을 확인할 completion key 매핑이나 기존 워크스페이스가 없습니다
|
|
80
|
+
unsafe_endpoint: 이 게이트웨이가 공개 HTTPS 주소로만 해석되지 않아 차단되었습니다
|
|
81
|
+
edit: 수정
|
|
82
|
+
delete: 삭제
|
|
83
|
+
confirm_delete: 이 게이트웨이를 삭제할까요? AI Agent가 사용 중인 게이트웨이는 삭제할 수 없습니다.
|
|
84
|
+
empty: 등록된 Agent Gateway가 없습니다.
|
|
85
|
+
created: Agent Gateway가 생성되었습니다.
|
|
86
|
+
updated: Agent Gateway가 수정되었습니다.
|
|
87
|
+
destroyed: Agent Gateway가 삭제되었습니다.
|
|
88
|
+
in_use: AI Agent가 사용 중인 게이트웨이는 삭제할 수 없습니다.
|
|
89
|
+
desktop_setup:
|
|
90
|
+
kicker: 첫 실행 설정
|
|
91
|
+
title: 로컬 AI Agent 설정
|
|
92
|
+
subtitle: Collavre Desktop 앱의 첫 실행 안내 흐름입니다.
|
|
93
|
+
progress_label: 설정 진행 상황
|
|
94
|
+
back: 이전
|
|
95
|
+
next: 계속
|
|
96
|
+
steps:
|
|
97
|
+
account: 관리자 계정
|
|
98
|
+
install: 설치
|
|
99
|
+
adapters: CLI 안내
|
|
100
|
+
ready: 완료
|
|
101
|
+
account:
|
|
102
|
+
kicker: 첫 실행 설정
|
|
103
|
+
title: 첫 관리자 계정 만들기
|
|
104
|
+
body: AI Gateway를 설치하기 전에 로컬 Collavre 관리자를 설정합니다. 앱은 관리자 계정을 미리 생성하지 않습니다.
|
|
105
|
+
name_label: 이름
|
|
106
|
+
name_placeholder: 이름을 입력하세요
|
|
107
|
+
email_label: 이메일
|
|
108
|
+
email_placeholder: you@example.com
|
|
109
|
+
password_label: 비밀번호
|
|
110
|
+
password_placeholder: 비밀번호를 입력하세요
|
|
111
|
+
password_confirmation_label: 비밀번호 확인
|
|
112
|
+
password_confirmation_placeholder: 비밀번호를 다시 입력하세요
|
|
113
|
+
hint: 이 계정은 이 Mac에만 생성되며, 생성 후 바로 로그인됩니다.
|
|
114
|
+
notice: 비밀번호는 이 Mac에만 보관합니다. AI provider로 전송하거나 기존 CLI 계정에 접근하는 데 사용하지 않습니다.
|
|
115
|
+
continue: 관리자 계정 만들기
|
|
116
|
+
existing: 이 Mac에 관리자 계정이 이미 있습니다. 로그인하여 설정을 계속하세요.
|
|
117
|
+
already_created: 이 Mac에 관리자 계정이 이미 있습니다.
|
|
118
|
+
install:
|
|
119
|
+
kicker: 명시적 동의
|
|
120
|
+
title: 로컬 프록시 설치 및 등록
|
|
121
|
+
body: 동의하면 loopback으로만 동작하는 번들 프록시 하나를 시작하고 로컬 관리자 계정에 등록합니다.
|
|
122
|
+
items:
|
|
123
|
+
installation:
|
|
124
|
+
title: 설치
|
|
125
|
+
body: 이 Mac에서 cli-openai-proxy를 단일 로컬 서비스로 설치합니다.
|
|
126
|
+
keys:
|
|
127
|
+
title: 보안 키
|
|
128
|
+
body: 관리자 키 하나와 API 키 하나를 생성하고 로컬 Gateway에만 보관합니다.
|
|
129
|
+
registration:
|
|
130
|
+
title: 등록
|
|
131
|
+
body: 해당 Gateway를 Collavre 관리자 계정에 자동 등록합니다.
|
|
132
|
+
consent: 계속하면 단일 로컬 CLI Proxy 서비스를 설치하고 설정한다는 점을 이해했습니다.
|
|
133
|
+
hint: 프록시 자격 증명은 macOS 키체인에 생성합니다. 기존 Claude Code·Codex 자격 증명은 읽거나 변경하지 않습니다.
|
|
134
|
+
continue: 설치하고 계속하기
|
|
135
|
+
unavailable: 이 작업은 Collavre Desktop에서만 사용할 수 있습니다.
|
|
136
|
+
failed: 로컬 프록시를 설치하지 못했습니다. Gateway는 등록되지 않았습니다. 데스크탑 로그를 확인한 후 다시 시도하세요.
|
|
137
|
+
adapters:
|
|
138
|
+
kicker: 기존 CLI 도구
|
|
139
|
+
title: 이미 로그인한 CLI 도구 사용
|
|
140
|
+
body: Collavre는 CLI 실행 파일을 사용할 수 있는지 확인한 뒤 알맞은 Agent 프리셋을 만듭니다.
|
|
141
|
+
detected: 감지됨 — Agent 프리셋 생성 완료
|
|
142
|
+
not_detected: 감지되지 않음 — 프리셋을 만들지 않음
|
|
143
|
+
claude:
|
|
144
|
+
title: Claude Code
|
|
145
|
+
body: 기존 로컬 Claude Code 세션을 사용합니다. 마법사는 로그인하거나 자격 증명을 읽지 않습니다.
|
|
146
|
+
codex:
|
|
147
|
+
title: Codex
|
|
148
|
+
body: 기존 로컬 Codex 세션을 사용합니다. 마법사는 로그인하거나 자격 증명을 읽지 않습니다.
|
|
149
|
+
notice: 실행 파일 사용 가능 여부만 확인합니다. 기존 자격 증명과 설정을 읽거나 외부로 전송하지 않습니다.
|
|
150
|
+
ready:
|
|
151
|
+
kicker: 설정 완료
|
|
152
|
+
title: 로컬 AI Gateway 준비 완료
|
|
153
|
+
body: 로컬 프록시와 Gateway가 준비되었습니다. Collavre를 열어 설정된 Agent를 사용하세요.
|
|
154
|
+
items:
|
|
155
|
+
proxy: 로컬 cli-openai-proxy 인스턴스 하나가 설치됩니다.
|
|
156
|
+
gateway: 생성한 로컬 Gateway가 Collavre 관리자에게 등록됩니다.
|
|
157
|
+
agents: 지원되는 경우 즉시 사용할 수 있는 Claude Code와 Codex Agent 프리셋이 준비됩니다.
|
|
158
|
+
notice: 이후 Agent Gateway 설정에서 관리할 수 있습니다. 제거해도 Claude Code나 Codex 설치에는 영향을 주지 않습니다.
|
|
159
|
+
open: Collavre 열기
|
|
160
|
+
agent_connections:
|
|
161
|
+
title: "%{agent} 연결"
|
|
162
|
+
card_title: 엔진 연결 및 프로비저닝
|
|
163
|
+
card_help: provider 로그인은 선택한 게이트웨이의 워크스페이스 모드에 따라 분리됩니다. Collavre 스킬과 워크스페이스 설정은 함께 프로비저닝됩니다.
|
|
164
|
+
profile_help:
|
|
165
|
+
shared: 이 에이전트는 하나의 공유 CLI Proxy 워크스페이스를 사용합니다. 에이전트 소유자가 공유 provider 연결을 관리합니다.
|
|
166
|
+
per_user: 이 에이전트는 사용자별 CLI Proxy 워크스페이스를 사용합니다. 사용 전에 내 provider를 연결하세요.
|
|
167
|
+
manage: 내 연결 관리
|
|
168
|
+
credential_axis: '로그인:'
|
|
169
|
+
workspace_axis: '워크스페이스:'
|
|
170
|
+
axis_help:
|
|
171
|
+
shared: provider 로그인과 프로비저닝을 이 에이전트의 모든 사용자가 공유합니다. 여기서 한 번 로그인하면 전원에게 적용됩니다.
|
|
172
|
+
per_user: provider 로그인은 내 계정 단위이며, 이 게이트웨이에 연결한 모든 에이전트가 함께 사용합니다. 에이전트마다가 아니라 provider마다 한 번만 로그인하면 됩니다. 스킬과 워크스페이스 설정은 에이전트별로 분리됩니다.
|
|
173
|
+
engines: Agent provider
|
|
174
|
+
loading: 불러오는 중…
|
|
175
|
+
refresh: 새로고침
|
|
176
|
+
login: 로그인
|
|
177
|
+
submit: 제출
|
|
178
|
+
base_url:
|
|
179
|
+
label: Provider base URL
|
|
180
|
+
help: OpenRouter의 https://openrouter.ai/api/v1 같은 HTTPS Responses API base URL을 입력하세요. 공개 주소로만 해석되어야 합니다.
|
|
181
|
+
open_url: 인증 페이지 열기
|
|
182
|
+
error: CLI Proxy 오류
|
|
183
|
+
errors:
|
|
184
|
+
insecure_base_url: Provider base URL은 HTTPS를 사용하고 공개 주소로만 해석되어야 합니다.
|
|
185
|
+
provisioning: 프로비저닝
|
|
186
|
+
provisioning_help: Collavre는 collavre-cli 스킬 하나와 callback URL·token이 든 워크스페이스 설정 하나를 항상 프로비저닝합니다. "지금 동기화"는 이 워크스페이스의 매니페스트를 먼저 다시 등록하므로, 프로비저닝이 안 됐거나 실패한 경우에도 다시 로그인하지 않고 복구합니다.
|
|
187
|
+
sync: 지금 동기화
|
|
188
|
+
manifest_unregistered: 이 워크스페이스에 등록된 매니페스트가 아직 없습니다. "지금 동기화"를 누르면 등록하고 프로비저닝합니다.
|
|
189
|
+
last_error: 최근 프로비저닝 오류
|
|
190
|
+
item: 항목
|
|
191
|
+
kind: 유형
|
|
192
|
+
state: 상태
|
|
193
|
+
actions: 작업
|
|
194
|
+
approve: 승인
|
|
195
|
+
revoke: 승인 회수
|
|
196
|
+
item_types:
|
|
197
|
+
skill: 스킬
|
|
198
|
+
config: 설정
|
|
199
|
+
statuses:
|
|
200
|
+
authenticated: 인증됨
|
|
201
|
+
unauthenticated: 미인증
|
|
202
|
+
unknown: 알 수 없음
|
|
203
|
+
pending: 대기 중
|
|
204
|
+
authorized: 인증 완료
|
|
205
|
+
failed: 실패
|
|
206
|
+
cancelled: 취소됨
|
|
207
|
+
not_synced: 동기화되지 않음
|
|
208
|
+
pending_approval: 승인 대기
|
|
209
|
+
installed: 설치됨
|
|
210
|
+
unsupported: 지원되지 않음
|
|
211
|
+
removed: 제거됨
|
|
212
|
+
meta_skills: 활성 메타 스킬
|
|
213
|
+
meta_skills_help: AI Agent 설정자가 선택한 Collavre 도구입니다. 단일 collavre-cli 스킬이 실행하며, 토큰 단위 권한 제어는 추후 추가됩니다.
|
|
214
|
+
rotate_tokens: 콜백 토큰 회전
|
|
215
|
+
rotate_confirm: Collavre 콜백 토큰을 회전할까요? 등록된 매니페스트 URL은 유지되며, 이후 워크스페이스를 다시 동기화해야 합니다.
|
|
216
|
+
tokens_rotated: 콜백 토큰이 회전되었습니다.
|
|
217
|
+
back: 뒤로
|
|
@@ -2,7 +2,6 @@ en:
|
|
|
2
2
|
collavre:
|
|
3
3
|
stuck_detection:
|
|
4
4
|
task_stuck: "⚠️ Task '%{task_name}' assigned to %{agent_name} has been stuck for %{minutes} minutes."
|
|
5
|
-
creative_stalled: "⚠️ Creative '%{creative_title}' has stalled at %{progress}%% for %{hours} hours."
|
|
6
5
|
system_comment: "[System] Task '%{task_name}' by %{agent_name} appears stuck. Admin attention required."
|
|
7
6
|
ai_agent:
|
|
8
7
|
approval:
|
|
@@ -2,7 +2,6 @@ ko:
|
|
|
2
2
|
collavre:
|
|
3
3
|
stuck_detection:
|
|
4
4
|
task_stuck: "⚠️ '%{task_name}' 작업이 %{agent_name}에게 할당된 후 %{minutes}분 동안 진행되지 않고 있습니다."
|
|
5
|
-
creative_stalled: "⚠️ '%{creative_title}' Creative가 %{progress}%%에서 %{hours}시간 동안 정체되어 있습니다."
|
|
6
5
|
system_comment: "[시스템] %{agent_name}의 '%{task_name}' 작업이 막힌 것 같습니다. 관리자 확인이 필요합니다."
|
|
7
6
|
ai_agent:
|
|
8
7
|
approval:
|
|
@@ -9,15 +9,27 @@ en:
|
|
|
9
9
|
unarchive: Restore
|
|
10
10
|
archived_topics: "Archived topics (%{count})"
|
|
11
11
|
not_ai_agent: Only AI agents can be set as primary agent.
|
|
12
|
+
session_topic_locked: This topic belongs to a live agent session. Its primary agent cannot be changed or released.
|
|
13
|
+
agent_no_creative_access: "%{name} has no feedback access here, so it could not respond as primary agent. Share this creative with the agent first."
|
|
14
|
+
session_agent_not_assignable: "%{name} is a live agent session and only responds in its own session topic, so it cannot be the primary agent here."
|
|
12
15
|
default_name_prefix: "Topic"
|
|
13
16
|
branch_prefix: "Branch"
|
|
14
17
|
main_name: "Main"
|
|
15
18
|
cannot_delete_main: "Cannot delete the Main topic."
|
|
19
|
+
reserved_name: "This topic name is reserved and cannot be assigned."
|
|
16
20
|
orphaned_cron_notice: "[System] The topic '%{topic_name}' was deleted, but a recurring cron job (%{cron_key}) still targets it and will silently do nothing on each run. Original message: \"%{message}\". Re-point it to another topic or cancel it with cron_cancel."
|
|
17
21
|
create_and_move: 'Create "%{name}" and move'
|
|
18
22
|
move:
|
|
19
23
|
no_target_permission: You don't have write permission on the target creative.
|
|
24
|
+
source_changed: The topic moved to another creative while this request was waiting. Reload it and try again from its current creative.
|
|
25
|
+
active_tasks: This topic has active agent work. Wait for it to finish or cancel it before moving the topic.
|
|
26
|
+
pending_deliveries: This topic still has agent messages waiting to be restored. Wait for restoration to finish before moving the topic.
|
|
27
|
+
recurring_tasks: This topic has a recurring cron job. Cancel it with cron_cancel and recreate it after moving the topic.
|
|
28
|
+
trigger_loop: This topic controls a Drop Trigger loop and cannot move while that loop configuration references it.
|
|
20
29
|
duplicate_name: A topic named '%{name}' already exists in the target creative.
|
|
30
|
+
session_topic_locked: This topic belongs to a live agent session and cannot be moved.
|
|
31
|
+
primary_agent_released: '@%{agent} was released as primary agent because it has no feedback access in "%{creative}". Share that creative with the agent and assign it again to keep it on this topic.'
|
|
32
|
+
primary_agent_released_session_agent: '@%{agent} was released as primary agent because it is a live agent session and only responds in its own session topic, which "%{creative}" is not.'
|
|
21
33
|
add_members:
|
|
22
34
|
title: Add members to the new location?
|
|
23
35
|
description: These people had access where the topic used to live, but not in "%{creative}". Add them so they keep access.
|
|
@@ -33,11 +45,11 @@ en:
|
|
|
33
45
|
login_first: Please sign in first.
|
|
34
46
|
connected: Github account connected successfully.
|
|
35
47
|
comments:
|
|
48
|
+
close: Close
|
|
36
49
|
reaction_invalid: Invalid reaction.
|
|
37
50
|
invalid_topic: Topic does not belong to this creative.
|
|
38
51
|
comments: Comments
|
|
39
52
|
delete_confirm: Are you sure you want to delete this comment?
|
|
40
|
-
no_comments: No comments yet.
|
|
41
53
|
anonymous: Anonymous
|
|
42
54
|
add_comment: Add Comment
|
|
43
55
|
update_comment: Update Comment
|
|
@@ -65,6 +77,8 @@ en:
|
|
|
65
77
|
approve_missing_action: No approval action is associated with this comment.
|
|
66
78
|
approve_missing_approver: This comment has no approver to run the action.
|
|
67
79
|
approve_already_executed: This comment action has already been executed.
|
|
80
|
+
approve_task_not_pending: This turn was stopped or has already resumed, so the tool was not run.
|
|
81
|
+
approve_task_superseded: This approval was superseded by a newer tool call, so the tool was not run.
|
|
68
82
|
approve_execution_failed: 'Comment action failed: %{message}'
|
|
69
83
|
approve_success: Action approved.
|
|
70
84
|
approve_error: Unable to approve the action.
|
|
@@ -107,6 +121,14 @@ en:
|
|
|
107
121
|
navigate_forward: Next chat
|
|
108
122
|
recent_chats: Recent chats
|
|
109
123
|
remove_from_history: Remove from history
|
|
124
|
+
topic_set_agent_error: Unable to assign the agent to this topic.
|
|
125
|
+
topic_agent_assigned_title: "%{name} is assigned to this topic — click to release"
|
|
126
|
+
topic_clear_agent_confirm: "Release %{name} from this topic? Every agent will be able to respond here again."
|
|
127
|
+
topic_create_error: Unable to create the topic.
|
|
128
|
+
topic_update_error: Unable to update the topic.
|
|
129
|
+
topic_delete_error: Unable to delete the topic.
|
|
130
|
+
topic_archive_error: Unable to archive the topic.
|
|
131
|
+
topic_restore_error: Unable to restore the topic.
|
|
110
132
|
inbox_reply_button: Reply
|
|
111
133
|
replace_button: Replace
|
|
112
134
|
move_no_selection: Select at least one message to move.
|
|
@@ -131,10 +153,12 @@ en:
|
|
|
131
153
|
minimum_required: "Select at least 2 messages to merge."
|
|
132
154
|
not_authorized: "You don't have permission to merge messages."
|
|
133
155
|
own_messages_only: "You can only merge your own messages or messages from your AI agents."
|
|
156
|
+
same_topic_required: "You can only merge messages from the same topic."
|
|
134
157
|
branch:
|
|
135
158
|
no_selection: "Select at least one message to branch."
|
|
136
159
|
not_authorized: "You don't have permission to branch messages."
|
|
137
160
|
comments_not_found: "Some selected messages could not be found."
|
|
161
|
+
approval_action_not_branchable: "Approval prompts cannot be branched."
|
|
138
162
|
batch_delete_confirm: Are you sure you want to delete the selected messages?
|
|
139
163
|
batch_delete_no_selection: Select at least one message to delete.
|
|
140
164
|
batch_delete_not_found: Some selected messages could not be found.
|
|
@@ -143,9 +167,6 @@ en:
|
|
|
143
167
|
topic_list: Topic list
|
|
144
168
|
fullscreen: Full screen
|
|
145
169
|
exit_fullscreen: Exit full screen
|
|
146
|
-
typo_keep_label: keep
|
|
147
|
-
typo_custom_label: custom
|
|
148
|
-
typo_input_label: correction
|
|
149
170
|
move_invalid_target: Select a valid creative to move messages to.
|
|
150
171
|
move_invalid_topic: Invalid topic selected.
|
|
151
172
|
move_not_allowed: You do not have permission to move these messages.
|
|
@@ -157,8 +178,6 @@ en:
|
|
|
157
178
|
calendar_args: "YYYY-MM-DD@HH:MM memo (today/tomorrow, +3days, +2weeks, +1months, +1years, +mon)"
|
|
158
179
|
topic_description: "Create a new topic with optional primary agent."
|
|
159
180
|
topic_args: '"topic name" @agent_name'
|
|
160
|
-
work_description: "Create a workflow to execute tasks on child creatives via DFS traversal."
|
|
161
|
-
work_args: "@agent_name workflow_context"
|
|
162
181
|
compress_description: "Summarize all messages in the current topic and remove originals."
|
|
163
182
|
compress_args: "[additional instructions]"
|
|
164
183
|
creative_description: "Insert a link to a creative. In AI chats, the linked creative tree is injected as context."
|
|
@@ -166,8 +185,6 @@ en:
|
|
|
166
185
|
calendar_memo_hint: "Event memo (optional)"
|
|
167
186
|
topic_name_hint: "Topic name"
|
|
168
187
|
topic_agent_hint: "@agent_name (optional)"
|
|
169
|
-
work_agent_hint: "@agent_name"
|
|
170
|
-
work_context_hint: "Workflow context (optional)"
|
|
171
188
|
compress_instructions_hint: "Additional instructions (optional)"
|
|
172
189
|
form_submit: "OK"
|
|
173
190
|
form_cancel: "Cancel"
|
|
@@ -187,27 +204,15 @@ en:
|
|
|
187
204
|
failed: "Compress failed"
|
|
188
205
|
topic_command:
|
|
189
206
|
missing_name: 'Please specify a topic name in quotes: /topic "topic name"'
|
|
207
|
+
not_authorized: "You need write permission to change a topic's primary agent."
|
|
190
208
|
created: 'Topic "%{name}" created.'
|
|
191
209
|
created_with_agent: 'Topic "%{name}" created with @%{agent} as primary agent.'
|
|
192
210
|
updated_agent: 'Topic "%{name}" primary agent updated to @%{agent}.'
|
|
211
|
+
cleared_agent: 'Topic "%{name}" primary agent released. All agents can respond again.'
|
|
193
212
|
already_exists: 'Topic "%{name}" already exists.'
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
all_already_tasked: "All child creatives already have active tasks."
|
|
198
|
-
started: 'Workflow started with @%{agent}: %{total} tasks queued (%{skipped} skipped).'
|
|
199
|
-
trigger_comment: '📋 [Workflow] %{context}'
|
|
200
|
-
subtask_started: '📋 @%{agent} starting work on "%{creative}" (%{current}/%{total})'
|
|
201
|
-
subtask_completed: '✅ @%{agent} completed "%{creative}" (%{completed}/%{total}, %{progress}%%)'
|
|
202
|
-
workflow_completed: '✅ Workflow completed by @%{agent}: %{completed} creatives processed.'
|
|
203
|
-
workflow_failed: 'Workflow failed by @%{agent} on "%{creative}": %{reason}'
|
|
204
|
-
workflow_stopped: '⏹️ Workflow stopped by @%{agent}. %{completed} completed, %{remaining} remaining.'
|
|
205
|
-
workflow_resumed: '▶️ Workflow resumed by @%{agent}. %{remaining} tasks remaining.'
|
|
206
|
-
stopped: 'Workflow stopped for @%{agent}.'
|
|
207
|
-
resumed: 'Workflow resumed for @%{agent}: %{remaining} tasks remaining.'
|
|
208
|
-
no_active_workflow: 'No active workflow found on this creative.'
|
|
209
|
-
no_resumable_workflow: 'No failed or stopped workflow found to resume.'
|
|
210
|
-
supervisor_instruction: "If you need clarification, have questions, or are unsure about anything, ask @%{supervisor}: instead of the user. They will guide you."
|
|
213
|
+
session_topic_locked: 'Topic "%{name}" belongs to a live agent session. Its primary agent cannot be changed or released.'
|
|
214
|
+
agent_no_creative_access: '@%{agent} has no feedback access here, so it could not respond as primary agent. Share this creative with the agent first.'
|
|
215
|
+
session_agent_not_assignable: '@%{agent} is a live agent session and only responds in its own session topic, so it cannot be the primary agent here.'
|
|
211
216
|
versions:
|
|
212
217
|
previous: Previous version
|
|
213
218
|
next: Next version
|
|
@@ -230,6 +235,47 @@ en:
|
|
|
230
235
|
delete: Delete
|
|
231
236
|
delete_confirm: Delete this image?
|
|
232
237
|
counter: "%{current} / %{total}"
|
|
238
|
+
chat_input_hint: "Type a message, or use / for commands"
|
|
239
|
+
empty_state:
|
|
240
|
+
title: Get started
|
|
241
|
+
minimal_prompt: Start a conversation
|
|
242
|
+
inbox_system_title: No new notifications
|
|
243
|
+
inbox_system_minimal_prompt: You're all caught up
|
|
244
|
+
restore_cards: Show tips again
|
|
245
|
+
dismiss: Dismiss
|
|
246
|
+
learn_more: Learn more
|
|
247
|
+
no_search_results: No messages match your search.
|
|
248
|
+
cards:
|
|
249
|
+
mention_agent:
|
|
250
|
+
title: Mention teammates & agents
|
|
251
|
+
description: "Use @name: to ask a question or loop someone in."
|
|
252
|
+
slash_command:
|
|
253
|
+
title: Slash commands
|
|
254
|
+
description: Type / to see available commands like /calendar or /topic.
|
|
255
|
+
action: View commands
|
|
256
|
+
chat_context:
|
|
257
|
+
title: Chat context
|
|
258
|
+
description: Link another Creative as context so agents can reference it here.
|
|
259
|
+
automation_trigger:
|
|
260
|
+
title: Automation triggers
|
|
261
|
+
description: Drop actions and agent triggers can react automatically to new messages.
|
|
262
|
+
topic_management:
|
|
263
|
+
title: Topics
|
|
264
|
+
description: Split this chat into topics to keep conversations organized.
|
|
265
|
+
action: View topics
|
|
266
|
+
add_user:
|
|
267
|
+
title: Add people
|
|
268
|
+
description: Invite teammates or AI agents to this conversation.
|
|
269
|
+
action: Add user
|
|
270
|
+
inbox_notifications:
|
|
271
|
+
title: Notifications arrive here
|
|
272
|
+
description: Mentions, shares, access requests, and important system updates are collected in this topic.
|
|
273
|
+
inbox_reply:
|
|
274
|
+
title: Reply from your inbox
|
|
275
|
+
description: Reply after a conversation notification to send your message back to its original topic.
|
|
276
|
+
inbox_source:
|
|
277
|
+
title: Jump to the source
|
|
278
|
+
description: Use the Creative link in a notification to open the original conversation in context.
|
|
233
279
|
channels:
|
|
234
280
|
detach: "Detach"
|
|
235
281
|
calendar_events:
|
|
@@ -249,6 +295,7 @@ en:
|
|
|
249
295
|
creative_shared: '%{user} shared "%{short_title}".'
|
|
250
296
|
user_mentioned: '%{user} mentioned you in "%{creative}": "%{comment}"'
|
|
251
297
|
permission_requested: '%{user} requested access to "%{short_title}".'
|
|
298
|
+
write_permission_requested: '%{user} requested write access to "%{short_title}".'
|
|
252
299
|
comment_deleted_by_admin: '%{admin_name} deleted your comment in "%{creative_snippet}":
|
|
253
300
|
%{comment_content}'
|
|
254
301
|
comment_content_unavailable: "(comment unavailable)"
|
|
@@ -272,8 +319,3 @@ en:
|
|
|
272
319
|
not_authorized: "You don't have permission to restore this snapshot."
|
|
273
320
|
restore_confirm: "Restore original messages? The summary will be removed."
|
|
274
321
|
restore_button: "Restore originals"
|
|
275
|
-
inbox_mailer:
|
|
276
|
-
daily_summary:
|
|
277
|
-
subject: Your inbox summary
|
|
278
|
-
greeting: 'Here are your unread messages:'
|
|
279
|
-
view: View
|
|
@@ -9,15 +9,27 @@ ko:
|
|
|
9
9
|
unarchive: 복원
|
|
10
10
|
archived_topics: "아카이브된 토픽 (%{count}개)"
|
|
11
11
|
not_ai_agent: AI 에이전트만 Primary Agent로 설정할 수 있습니다.
|
|
12
|
+
session_topic_locked: 이 토픽은 실행 중인 에이전트 세션에 속해 있어 Primary Agent를 변경하거나 해제할 수 없습니다.
|
|
13
|
+
agent_no_creative_access: "%{name}은(는) 이 크리에이티브에 피드백 권한이 없어 Primary Agent로 응답할 수 없습니다. 먼저 이 크리에이티브를 해당 에이전트와 공유하세요."
|
|
14
|
+
session_agent_not_assignable: "%{name}은(는) 실행 중인 에이전트 세션이라 자신의 세션 토픽에서만 응답합니다. 이 토픽의 Primary Agent로 지정할 수 없습니다."
|
|
12
15
|
default_name_prefix: "토픽"
|
|
13
16
|
branch_prefix: "분기"
|
|
14
17
|
main_name: "메인"
|
|
15
18
|
cannot_delete_main: "메인 토픽은 삭제할 수 없습니다."
|
|
19
|
+
reserved_name: "예약된 토픽 이름은 지정할 수 없습니다."
|
|
16
20
|
orphaned_cron_notice: "[시스템] '%{topic_name}' 토픽이 삭제되었지만, 이 토픽을 대상으로 하는 반복 크론 작업(%{cron_key})이 아직 남아 있어 실행될 때마다 아무 동작도 하지 않고 조용히 종료됩니다. 원래 메시지: \"%{message}\". 다른 토픽으로 다시 지정하거나 cron_cancel로 취소하세요."
|
|
17
21
|
create_and_move: '"%{name}" 생성후 이동'
|
|
18
22
|
move:
|
|
19
23
|
no_target_permission: 대상 크리에이티브에 대한 쓰기 권한이 없습니다.
|
|
24
|
+
source_changed: 요청이 대기하는 동안 토픽이 다른 크리에이티브로 이동했습니다. 현재 크리에이티브에서 다시 불러온 뒤 재시도하세요.
|
|
25
|
+
active_tasks: 이 토픽에서 에이전트 작업이 진행 중입니다. 작업이 끝날 때까지 기다리거나 취소한 뒤 토픽을 이동하세요.
|
|
26
|
+
pending_deliveries: 이 토픽에는 아직 복구 중인 에이전트 메시지가 있습니다. 복구가 끝난 뒤 토픽을 이동하세요.
|
|
27
|
+
recurring_tasks: 이 토픽을 대상으로 하는 반복 크론 작업이 있습니다. cron_cancel로 취소하고 토픽을 이동한 뒤 다시 생성하세요.
|
|
28
|
+
trigger_loop: 이 토픽은 Drop Trigger loop의 제어 토픽이므로 loop 설정이 참조하는 동안 이동할 수 없습니다.
|
|
20
29
|
duplicate_name: "'%{name}' 토픽이 대상 크리에이티브에 이미 존재합니다."
|
|
30
|
+
session_topic_locked: 이 토픽은 실행 중인 에이전트 세션에 속해 있어 이동할 수 없습니다.
|
|
31
|
+
primary_agent_released: '@%{agent}은(는) "%{creative}"에 피드백 권한이 없어 Primary Agent 지정이 해제되었습니다. 계속 담당하게 하려면 해당 크리에이티브를 에이전트와 공유한 뒤 다시 지정하세요.'
|
|
32
|
+
primary_agent_released_session_agent: '@%{agent}은(는) 실행 중인 에이전트 세션이라 자신의 세션 토픽에서만 응답합니다. "%{creative}"은(는) 그 토픽이 아니어서 Primary Agent 지정이 해제되었습니다.'
|
|
21
33
|
add_members:
|
|
22
34
|
title: 새 위치에 멤버를 추가할까요?
|
|
23
35
|
description: 이 사람들은 토픽이 있던 곳에는 접근할 수 있었지만 "%{creative}"에는 없습니다. 계속 접근할 수 있도록 추가하세요.
|
|
@@ -33,11 +45,11 @@ ko:
|
|
|
33
45
|
login_first: 먼저 로그인해주세요.
|
|
34
46
|
connected: Github 계정이 연동되었습니다.
|
|
35
47
|
comments:
|
|
48
|
+
close: 닫기
|
|
36
49
|
reaction_invalid: 잘못된 리액션입니다.
|
|
37
50
|
invalid_topic: 토픽이 이 크리에이티브에 속하지 않습니다.
|
|
38
51
|
comments: 댓글
|
|
39
52
|
delete_confirm: 댓글을 삭제하시겠습니까?
|
|
40
|
-
no_comments: 댓글이 없습니다.
|
|
41
53
|
anonymous: 익명
|
|
42
54
|
add_comment: 댓글 추가
|
|
43
55
|
update_comment: 댓글 수정
|
|
@@ -63,6 +75,8 @@ ko:
|
|
|
63
75
|
approve_missing_action: 이 댓글에는 실행할 작업이 없습니다.
|
|
64
76
|
approve_missing_approver: 이 댓글에는 승인자가 지정되어 있지 않습니다.
|
|
65
77
|
approve_already_executed: 이 댓글 작업은 이미 실행되었습니다.
|
|
78
|
+
approve_task_not_pending: 이 턴은 중지되었거나 이미 재개되어 도구를 실행하지 않았습니다.
|
|
79
|
+
approve_task_superseded: 이 승인은 더 최신 도구 호출로 대체되어 도구를 실행하지 않았습니다.
|
|
66
80
|
approve_execution_failed: '댓글 작업 실행에 실패했습니다: %{message}'
|
|
67
81
|
approve_success: 작업이 승인되었습니다.
|
|
68
82
|
approve_error: 작업을 승인할 수 없습니다.
|
|
@@ -104,6 +118,14 @@ ko:
|
|
|
104
118
|
navigate_forward: 다음 채팅
|
|
105
119
|
recent_chats: 최근 채팅
|
|
106
120
|
remove_from_history: 히스토리에서 제거
|
|
121
|
+
topic_set_agent_error: 이 토픽에 에이전트를 지정할 수 없습니다.
|
|
122
|
+
topic_agent_assigned_title: "%{name}이(가) 이 토픽에 할당되어 있습니다 — 클릭하면 해제됩니다"
|
|
123
|
+
topic_clear_agent_confirm: "%{name}의 토픽 할당을 해제할까요? 이 토픽에서 다시 모든 에이전트가 응답할 수 있게 됩니다."
|
|
124
|
+
topic_create_error: 토픽을 생성할 수 없습니다.
|
|
125
|
+
topic_update_error: 토픽을 수정할 수 없습니다.
|
|
126
|
+
topic_delete_error: 토픽을 삭제할 수 없습니다.
|
|
127
|
+
topic_archive_error: 토픽을 보관할 수 없습니다.
|
|
128
|
+
topic_restore_error: 토픽을 복원할 수 없습니다.
|
|
107
129
|
inbox_reply_button: 답글
|
|
108
130
|
replace_button: 바꾸기
|
|
109
131
|
move_no_selection: 이동할 메시지를 선택해주세요.
|
|
@@ -128,10 +150,12 @@ ko:
|
|
|
128
150
|
minimum_required: "병합하려면 2개 이상의 메시지를 선택하세요."
|
|
129
151
|
not_authorized: "메시지를 병합할 권한이 없습니다."
|
|
130
152
|
own_messages_only: "자신의 메시지 또는 자신의 AI 에이전트 메시지만 병합할 수 있습니다."
|
|
153
|
+
same_topic_required: "같은 토픽의 메시지만 병합할 수 있습니다."
|
|
131
154
|
branch:
|
|
132
155
|
no_selection: "분기할 메시지를 선택하세요."
|
|
133
156
|
not_authorized: "메시지를 분기할 권한이 없습니다."
|
|
134
157
|
comments_not_found: "일부 선택한 메시지를 찾을 수 없습니다."
|
|
158
|
+
approval_action_not_branchable: "승인 요청 메시지는 분기할 수 없습니다."
|
|
135
159
|
batch_delete_confirm: 선택한 메시지를 삭제하시겠습니까?
|
|
136
160
|
batch_delete_no_selection: 삭제할 메시지를 선택해주세요.
|
|
137
161
|
batch_delete_not_found: 일부 선택한 메시지를 찾을 수 없습니다.
|
|
@@ -140,9 +164,6 @@ ko:
|
|
|
140
164
|
topic_list: 토픽 목록
|
|
141
165
|
fullscreen: 전체 화면
|
|
142
166
|
exit_fullscreen: 전체 화면 종료
|
|
143
|
-
typo_keep_label: 유지
|
|
144
|
-
typo_custom_label: 직접 입력
|
|
145
|
-
typo_input_label: 교정
|
|
146
167
|
move_invalid_target: 이동할 크리에이티브를 선택해주세요.
|
|
147
168
|
move_invalid_topic: 유효하지 않은 토픽입니다.
|
|
148
169
|
move_not_allowed: 이 메시지를 이동할 권한이 없습니다.
|
|
@@ -154,8 +175,6 @@ ko:
|
|
|
154
175
|
calendar_args: "YYYY-MM-DD@HH:MM 메모 (today/tomorrow, +3days, +2weeks, +1months, +1years, +mon/+월)"
|
|
155
176
|
topic_description: "새 토픽을 생성합니다. Primary Agent를 지정할 수 있습니다."
|
|
156
177
|
topic_args: '"토픽 이름" @에이전트이름'
|
|
157
|
-
work_description: "하위 크리에이티브들에 대해 DFS 순회를 통한 워크플로우를 실행합니다."
|
|
158
|
-
work_args: "@에이전트이름 워크플로우_컨텍스트"
|
|
159
178
|
compress_description: "현재 토픽의 모든 메세지를 요약하고 원본을 삭제합니다."
|
|
160
179
|
compress_args: "[추가 지시사항]"
|
|
161
180
|
creative_description: "크리에이티브 링크를 삽입합니다. AI 채팅에서는 링크된 크리에이티브 트리가 컨텍스트로 주입됩니다."
|
|
@@ -163,8 +182,6 @@ ko:
|
|
|
163
182
|
calendar_memo_hint: "이벤트 메모 (선택사항)"
|
|
164
183
|
topic_name_hint: "토픽 이름"
|
|
165
184
|
topic_agent_hint: "@에이전트이름 (선택사항)"
|
|
166
|
-
work_agent_hint: "@에이전트이름"
|
|
167
|
-
work_context_hint: "워크플로우 컨텍스트 (선택사항)"
|
|
168
185
|
compress_instructions_hint: "추가 지시사항 (선택사항)"
|
|
169
186
|
form_submit: "확인"
|
|
170
187
|
form_cancel: "취소"
|
|
@@ -184,27 +201,15 @@ ko:
|
|
|
184
201
|
failed: "요약 실패"
|
|
185
202
|
topic_command:
|
|
186
203
|
missing_name: '토픽 이름을 따옴표로 지정하세요: /topic "토픽 이름"'
|
|
204
|
+
not_authorized: 토픽의 Primary Agent를 변경하려면 쓰기 권한이 필요합니다.
|
|
187
205
|
created: '토픽 "%{name}"이(가) 생성되었습니다.'
|
|
188
206
|
created_with_agent: '토픽 "%{name}"이(가) 생성되었습니다. @%{agent}이(가) Primary Agent로 설정되었습니다.'
|
|
189
207
|
updated_agent: '토픽 "%{name}"의 Primary Agent가 @%{agent}(으)로 변경되었습니다.'
|
|
208
|
+
cleared_agent: '토픽 "%{name}"의 Primary Agent 지정이 해제되었습니다. 다시 모든 에이전트가 응답할 수 있습니다.'
|
|
190
209
|
already_exists: '토픽 "%{name}"이(가) 이미 존재합니다.'
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
all_already_tasked: "모든 하위 크리에이티브가 이미 활성 작업을 가지고 있습니다."
|
|
195
|
-
started: '워크플로우가 @%{agent}와 함께 시작되었습니다: %{total}개 작업 대기중 (%{skipped}개 생략).'
|
|
196
|
-
trigger_comment: '📋 [워크플로우] %{context}'
|
|
197
|
-
subtask_started: '📋 @%{agent}가 "%{creative}" 작업을 시작합니다 (%{current}/%{total})'
|
|
198
|
-
subtask_completed: '✅ @%{agent}가 "%{creative}" 완료 (%{completed}/%{total}, %{progress}%%)'
|
|
199
|
-
workflow_completed: '✅ @%{agent}가 워크플로우를 완료했습니다: %{completed}개 크리에이티브 처리됨.'
|
|
200
|
-
workflow_failed: '@%{agent} 워크플로우 실패 - "%{creative}": %{reason}'
|
|
201
|
-
workflow_stopped: '⏹️ @%{agent} 워크플로우가 중지되었습니다. %{completed}개 완료, %{remaining}개 남음.'
|
|
202
|
-
workflow_resumed: '▶️ @%{agent} 워크플로우가 재개되었습니다. %{remaining}개 작업 남음.'
|
|
203
|
-
stopped: '@%{agent}의 워크플로우가 중지되었습니다.'
|
|
204
|
-
resumed: '@%{agent}의 워크플로우가 재개되었습니다: %{remaining}개 작업 남음.'
|
|
205
|
-
no_active_workflow: '이 크리에이티브에 활성 워크플로우가 없습니다.'
|
|
206
|
-
no_resumable_workflow: '재개할 수 있는 실패/중지된 워크플로우가 없습니다.'
|
|
207
|
-
supervisor_instruction: "질문이 있거나 확인이 필요하면 사용자 대신 @%{supervisor}: 에게 물어보세요. 감독자가 안내해줄 것입니다."
|
|
210
|
+
session_topic_locked: '토픽 "%{name}"은(는) 실행 중인 에이전트 세션에 속해 있어 Primary Agent를 변경하거나 해제할 수 없습니다.'
|
|
211
|
+
agent_no_creative_access: '@%{agent}은(는) 이 크리에이티브에 피드백 권한이 없어 Primary Agent로 응답할 수 없습니다. 먼저 이 크리에이티브를 해당 에이전트와 공유하세요.'
|
|
212
|
+
session_agent_not_assignable: '@%{agent}은(는) 실행 중인 에이전트 세션이라 자신의 세션 토픽에서만 응답합니다. 이 토픽의 Primary Agent로 지정할 수 없습니다.'
|
|
208
213
|
versions:
|
|
209
214
|
previous: 이전 버전
|
|
210
215
|
next: 다음 버전
|
|
@@ -227,6 +232,47 @@ ko:
|
|
|
227
232
|
delete: 삭제
|
|
228
233
|
delete_confirm: 이 이미지를 삭제하시겠습니까?
|
|
229
234
|
counter: "%{current} / %{total}"
|
|
235
|
+
chat_input_hint: "메시지를 입력하거나 /로 명령어를 사용해보세요"
|
|
236
|
+
empty_state:
|
|
237
|
+
title: 시작해보세요
|
|
238
|
+
minimal_prompt: 대화를 시작해보세요
|
|
239
|
+
inbox_system_title: 새 알림이 없습니다
|
|
240
|
+
inbox_system_minimal_prompt: 밀린 알림이 없습니다
|
|
241
|
+
restore_cards: 팁 다시 보기
|
|
242
|
+
dismiss: 닫기
|
|
243
|
+
learn_more: 자세히 보기
|
|
244
|
+
no_search_results: 검색 결과에 해당하는 메시지가 없습니다.
|
|
245
|
+
cards:
|
|
246
|
+
mention_agent:
|
|
247
|
+
title: 팀원 · 에이전트 멘션
|
|
248
|
+
description: "@이름: 으로 질문하거나 참여자를 초대해보세요."
|
|
249
|
+
slash_command:
|
|
250
|
+
title: 슬래시 명령어
|
|
251
|
+
description: "/를 입력하면 /calendar, /topic 같은 명령어를 볼 수 있어요."
|
|
252
|
+
action: 명령어 보기
|
|
253
|
+
chat_context:
|
|
254
|
+
title: 채팅 컨텍스트
|
|
255
|
+
description: 다른 Creative를 컨텍스트로 연결하면 에이전트가 참고할 수 있어요.
|
|
256
|
+
automation_trigger:
|
|
257
|
+
title: 자동화 트리거
|
|
258
|
+
description: 드롭 트리거·에이전트 트리거가 새 메시지에 자동으로 반응하게 할 수 있어요.
|
|
259
|
+
topic_management:
|
|
260
|
+
title: 토픽 관리
|
|
261
|
+
description: 대화를 토픽으로 나누어 정리할 수 있어요.
|
|
262
|
+
action: 토픽 보기
|
|
263
|
+
add_user:
|
|
264
|
+
title: 사용자 추가
|
|
265
|
+
description: 팀원이나 AI 에이전트를 이 대화에 초대해보세요.
|
|
266
|
+
action: 사용자 추가
|
|
267
|
+
inbox_notifications:
|
|
268
|
+
title: 알림이 모이는 곳
|
|
269
|
+
description: 멘션, 공유, 권한 요청, 중요한 시스템 안내가 이 토픽에 모입니다.
|
|
270
|
+
inbox_reply:
|
|
271
|
+
title: 인박스에서 바로 답장
|
|
272
|
+
description: 대화에서 온 알림 뒤에 답장하면 메시지가 원래 대화의 같은 토픽으로 전달됩니다.
|
|
273
|
+
inbox_source:
|
|
274
|
+
title: 원문으로 바로 이동
|
|
275
|
+
description: 알림의 Creative 링크를 누르면 원문이 있는 대화로 바로 이동할 수 있습니다.
|
|
230
276
|
channels:
|
|
231
277
|
detach: "해제"
|
|
232
278
|
calendar_events:
|
|
@@ -246,6 +292,7 @@ ko:
|
|
|
246
292
|
creative_shared: '%{user} 가 "%{short_title}" 을 공유했습니다.'
|
|
247
293
|
user_mentioned: '%{user} 님이 "%{creative}" 에서 당신을 언급했습니다: "%{comment}"'
|
|
248
294
|
permission_requested: '%{user} 이 크리에이티브 "%{short_title}" 에 대한 권한 요청을 했습니다.'
|
|
295
|
+
write_permission_requested: '%{user} 이 크리에이티브 "%{short_title}" 에 대한 쓰기 권한 요청을 했습니다.'
|
|
249
296
|
comment_deleted_by_admin: '%{admin_name} 님이 "%{creative_snippet}" 에서 당신의 댓글을
|
|
250
297
|
삭제했습니다: %{comment_content}'
|
|
251
298
|
comment_content_unavailable: "(삭제된 댓글 내용을 표시할 수 없습니다)"
|
|
@@ -268,8 +315,3 @@ ko:
|
|
|
268
315
|
not_authorized: "이 스냅샷을 복구할 권한이 없습니다."
|
|
269
316
|
restore_confirm: "원본 메시지를 복구하시겠습니까? 요약이 삭제됩니다."
|
|
270
317
|
restore_button: "원본 복구"
|
|
271
|
-
inbox_mailer:
|
|
272
|
-
daily_summary:
|
|
273
|
-
subject: 인박스 요약
|
|
274
|
-
greeting: '읽지 않은 메세지 목록입니다:'
|
|
275
|
-
view: 보기
|