@link-assistant/hive-mind 1.65.1 ā 1.66.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.
- package/CHANGELOG.md +12 -0
- package/package.json +2 -1
- package/src/github-rate-limit.lib.mjs +69 -14
- package/src/github.batch.lib.mjs +27 -25
- package/src/github.graphql.lib.mjs +10 -9
- package/src/github.lib.mjs +12 -5
- package/src/hive.mjs +10 -5
- package/src/i18n.lib.mjs +174 -0
- package/src/limits.lib.mjs +3 -2
- package/src/locales/en.lino +93 -0
- package/src/locales/hi.lino +93 -0
- package/src/locales/ru.lino +93 -0
- package/src/locales/zh.lino +93 -0
- package/src/review.mjs +9 -0
- package/src/reviewers-hive.mjs +21 -19
- package/src/solve.auto-pr.lib.mjs +26 -17
- package/src/solve.config.lib.mjs +5 -0
- package/src/solve.mjs +4 -0
- package/src/task.config.lib.mjs +5 -0
- package/src/task.mjs +4 -0
- package/src/telegram-bot.mjs +35 -21
- package/src/telegram-language-command.lib.mjs +49 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
en
|
|
2
|
+
error "Error"
|
|
3
|
+
success "Success"
|
|
4
|
+
warning "Warning"
|
|
5
|
+
failed "Failed"
|
|
6
|
+
info "Info"
|
|
7
|
+
error.invalid_github_url "Error: Invalid GitHub URL format"
|
|
8
|
+
error.invalid_github_url_monitoring "Error: Invalid GitHub URL for monitoring"
|
|
9
|
+
error.missing_required_url "Error: Missing required github issue or pull request URL"
|
|
10
|
+
error.unable_determine_version "Error: Unable to determine version"
|
|
11
|
+
error.invalid_url_type "Error: Invalid GitHub URL format"
|
|
12
|
+
error.url_type_not_supported "URL type '{{type}}' is not supported"
|
|
13
|
+
error.failed_to_get_current_user "Error: Failed to get current user"
|
|
14
|
+
error.failed_to_initialize_repository "Error: Failed to initialize repository"
|
|
15
|
+
error.failed_to_create_fork "Failed to create fork after all retries"
|
|
16
|
+
error.fork_not_accessible "Fork exists but not accessible after multiple retries"
|
|
17
|
+
error.failed_to_add_upstream_remote "Failed to add upstream remote"
|
|
18
|
+
error.failed_to_checkout "Failed to checkout {{branch}}"
|
|
19
|
+
error.failed_to_sync "Failed to sync {{branch}} with upstream"
|
|
20
|
+
error.failed_to_get_default_branch "Failed to get default branch name"
|
|
21
|
+
error.failed_to_get_current_branch "Failed to get current branch"
|
|
22
|
+
error.failed_to_fetch_upstream "Failed to fetch upstream"
|
|
23
|
+
error.failed_to_add_pr_fork_remote "Failed to add pr-fork remote"
|
|
24
|
+
error.failed_to_fetch_from_pr_fork "Failed to fetch from pr-fork"
|
|
25
|
+
error.pr_does_not_exist "Error: PR #{{prNumber}} does not exist in {{owner}}/{{repo}}"
|
|
26
|
+
error.youtrack_url_detected_no_config "Error: YouTrack URL detected but YouTrack configuration not found"
|
|
27
|
+
error.telegram_bot_token_not_set "Error: TELEGRAM_BOT_TOKEN environment variable or --token option is not set"
|
|
28
|
+
error.invalid_github_url_solve "Error: Invalid GitHub URL for solve command"
|
|
29
|
+
error.invalid_language "Invalid language '{{value}}'. Supported: {{supported}}"
|
|
30
|
+
success.readme_created "README.md created successfully"
|
|
31
|
+
success.process_completed "Process completed"
|
|
32
|
+
success.error_reported_to_sentry "Error reported to Sentry successfully"
|
|
33
|
+
success.language_set "Language set to {{language}}"
|
|
34
|
+
warning.session_log_not_found "Warning: Session log for {{session}} not found, but continuing with resume attempt"
|
|
35
|
+
warning.failed_to_create_readme "Failed: Could not create README.md"
|
|
36
|
+
warning.could_not_determine_root_repository "Could not determine root repository"
|
|
37
|
+
warning.could_not_check_fork_status "Warning: Could not check fork status: {{message}}"
|
|
38
|
+
warning.no_linked_issue_found "Warning: No linked issue found in PR body"
|
|
39
|
+
warning.could_not_search_for_existing_prs "Warning: Could not search for existing PRs: {{message}}"
|
|
40
|
+
warning.could_not_get_current_user "Warning: Could not get current GitHub user"
|
|
41
|
+
warning.could_not_check_github_permissions "Warning: Could not check GitHub permissions: {{message}}"
|
|
42
|
+
warning.could_not_determine_token_scopes "Warning: Could not determine token scopes from auth status"
|
|
43
|
+
warning.failed_to_fetch_branches "Warning: Failed to fetch branches from remote"
|
|
44
|
+
warning.error_during_auto_pr_creation "Warning: Error during auto PR creation: {{message}}"
|
|
45
|
+
warning.could_not_convert_pr_to_draft "Warning: Could not convert PR to draft"
|
|
46
|
+
warning.could_not_check_convert_pr_draft_status "Warning: Could not check/convert PR draft status"
|
|
47
|
+
warning.could_not_post_work_start_comment "Warning: Could not post work start comment"
|
|
48
|
+
warning.could_not_post_work_end_comment "Warning: Could not post work end comment"
|
|
49
|
+
warning.could_not_convert_pr_to_ready "Warning: Could not convert PR to ready"
|
|
50
|
+
warning.could_not_convert_pr_to_ready_status "Warning: Could not convert PR to ready status"
|
|
51
|
+
warning.pr_created_but_no_url "Warning: PR created but no URL returned"
|
|
52
|
+
warning.could_not_assign_user "Could not assign user"
|
|
53
|
+
info.expected_github_url_format "Expected: https://github.com/owner or https://github.com/owner/repo"
|
|
54
|
+
info.you_can_use_formats "You can use any of these formats:"
|
|
55
|
+
info.format_https_owner "- https://github.com/owner"
|
|
56
|
+
info.format_https_owner_repo "- https://github.com/owner/repo"
|
|
57
|
+
info.format_http_owner "- http://github.com/owner (will be converted to https)"
|
|
58
|
+
info.format_github_owner "- github.com/owner (will add https://)"
|
|
59
|
+
info.format_owner "- owner (will be converted to https://github.com/owner)"
|
|
60
|
+
info.format_owner_repo "- owner/repo (will be converted to https://github.com/owner/repo)"
|
|
61
|
+
info.full_log_file "Full log file: {{path}}"
|
|
62
|
+
info.process_exited_with_code "Process exited with code {{code}}"
|
|
63
|
+
info.current_configuration "Current Configuration:"
|
|
64
|
+
process.using_repository_fallback "Using repository-by-repository fallback for {{scope}}: {{owner}}"
|
|
65
|
+
process.fetching_repository_list "Fetching repository list..."
|
|
66
|
+
process.command "Command: {{command}}"
|
|
67
|
+
check.number "Check #{{iteration}}:"
|
|
68
|
+
time.current "Current time: {{time}}"
|
|
69
|
+
telegram.fetching_limits "š Fetching usage limits..."
|
|
70
|
+
telegram.gathering_version "š Gathering version information..."
|
|
71
|
+
telegram.usage_limits_title "š *Usage Limits*"
|
|
72
|
+
telegram.version_information_title "š¤ *Version Information*"
|
|
73
|
+
telegram.limits_only_in_groups "ā The /limits command only works in group chats. Please add this bot to a group and make it an admin."
|
|
74
|
+
telegram.version_only_in_groups "ā The /version command only works in group chats. Please add this bot to a group and make it an admin."
|
|
75
|
+
telegram.solve_only_in_groups "ā The {{commandDisplay}} command only works in group chats. Please add this bot to a group and make it an admin."
|
|
76
|
+
telegram.hive_only_in_groups "ā The /hive command only works in group chats. Please add this bot to a group and make it an admin."
|
|
77
|
+
telegram.solve_disabled "ā The solve command is disabled on this bot instance."
|
|
78
|
+
telegram.hive_disabled "ā The /hive command is disabled on this bot instance."
|
|
79
|
+
telegram.no_github_link_in_reply "ā No GitHub issue/PR link found in the replied message.\n\nExample: Reply to a message containing a GitHub issue link with `/solve`\n\nOr with options: `/solve --model opus`"
|
|
80
|
+
telegram.invalid_options "ā Invalid options: {{message}}\n\nUse /help to see available options"
|
|
81
|
+
telegram.invalid_isolation "ā Invalid --isolation value '{{value}}'. Must be: screen, tmux, or docker"
|
|
82
|
+
telegram.invalid_locked_isolation "ā Invalid locked --isolation value '{{value}}'. Must be: screen, tmux, or docker"
|
|
83
|
+
telegram.option_syntax_check "Please check your option syntax."
|
|
84
|
+
telegram.url_status_active "ā This URL is {{statusText}}.\n\nURL: {{url}}\nStatus: {{status}}\n\nš” Use /solve_queue to check the queue status."
|
|
85
|
+
telegram.url_session_running "ā A working session is already running for this URL.\n\nURL: {{url}}\nSession: `{{session}}`\n\nš” Wait for the current session to complete, or use /solve\\_stop to cancel it."
|
|
86
|
+
telegram.solve_rejected "ā Solve command rejected.\n\n{{infoBlock}}\n\nš« Reason: {{reason}}"
|
|
87
|
+
telegram.language_invalid "ā Invalid language. Supported: {{supported}}.\nUsage: /language <code>"
|
|
88
|
+
telegram.language_set "ā
Language set to *{{language}}*."
|
|
89
|
+
telegram.language_current "š Current language: *{{language}}*.\nSupported: {{supported}}.\nUsage: /language <code>"
|
|
90
|
+
language.en "English"
|
|
91
|
+
language.ru "Russian"
|
|
92
|
+
language.zh "Chinese"
|
|
93
|
+
language.hi "Hindi"
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
hi
|
|
2
|
+
error "ą¤¤ą„ą¤°ą„ą¤ą¤æ"
|
|
3
|
+
success "सफल"
|
|
4
|
+
warning "ą¤ą„तावनą„"
|
|
5
|
+
failed "विफल"
|
|
6
|
+
info "ą¤øą„ą¤ą¤Øą¤¾"
|
|
7
|
+
error.invalid_github_url "ą¤¤ą„ą¤°ą„ą¤ą¤æ: ą¤
ą¤®ą¤¾ą¤Øą„ą¤Æ GitHub URL ą¤Ŗą„ą¤°ą¤¾ą¤°ą„प"
|
|
8
|
+
error.invalid_github_url_monitoring "ą¤¤ą„ą¤°ą„ą¤ą¤æ: ą¤Øą¤æą¤ą¤°ą¤¾ą¤Øą„ ą¤ą„ लिठą¤
ą¤®ą¤¾ą¤Øą„ą¤Æ GitHub URL"
|
|
9
|
+
error.missing_required_url "ą¤¤ą„ą¤°ą„ą¤ą¤æ: ą¤ą¤µą¤¶ą„यठGitHub issue या pull request URL ą¤ą¤¾ą¤Æą¤¬ हą„"
|
|
10
|
+
error.unable_determine_version "ą¤¤ą„ą¤°ą„ą¤ą¤æ: ą¤øą¤ą¤øą„ą¤ą¤°ą¤£ ą¤Øą¤æą¤°ą„ą¤§ą¤¾ą¤°ą¤æą¤¤ ą¤ą¤°ą¤Øą„ ą¤®ą„ą¤ ą¤
ą¤øą¤®ą¤°ą„ą¤„"
|
|
11
|
+
error.invalid_url_type "ą¤¤ą„ą¤°ą„ą¤ą¤æ: ą¤
ą¤®ą¤¾ą¤Øą„ą¤Æ GitHub URL ą¤Ŗą„ą¤°ą¤¾ą¤°ą„प"
|
|
12
|
+
error.url_type_not_supported "URL ą¤Ŗą„ą¤°ą¤ą¤¾ą¤° '{{type}}' ą¤øą¤®ą¤°ą„ą¤„ित ą¤Øą¤¹ą„ą¤ हą„"
|
|
13
|
+
error.failed_to_get_current_user "ą¤¤ą„ą¤°ą„ą¤ą¤æ: ą¤µą¤°ą„ą¤¤ą¤®ą¤¾ą¤Ø ą¤ą¤Ŗą¤Æą„ą¤ą¤ą¤°ą„ता ą¤Ŗą„ą¤°ą¤¾ą¤Ŗą„त ą¤ą¤°ą¤Øą„ ą¤®ą„ą¤ विफल"
|
|
14
|
+
error.failed_to_initialize_repository "ą¤¤ą„ą¤°ą„ą¤ą¤æ: ą¤°ą¤æą¤Ŗą„ą¤ą¤æą¤ą¤°ą„ ą¤ą¤°ą¤ą¤ ą¤ą¤°ą¤Øą„ ą¤®ą„ą¤ विफल"
|
|
15
|
+
error.failed_to_create_fork "ą¤øą¤ą„ ą¤Ŗą„ą¤°ą¤Æą¤¾ą¤øą„ą¤ ą¤ą„ बाद fork ą¤¬ą¤Øą¤¾ą¤Øą„ ą¤®ą„ą¤ विफल"
|
|
16
|
+
error.fork_not_accessible "Fork ą¤®ą„ą¤ą„द ą¤¹ą„ ą¤²ą„ą¤ą¤æą¤Ø ą¤ą¤ ą¤Ŗą„ą¤°ą¤Æą¤¾ą¤øą„ą¤ ą¤ą„ बाद ą¤ą„ ą¤Ŗą¤¹ą„ą¤ą¤ ą¤Æą„ą¤ą„य ą¤Øą¤¹ą„ą¤"
|
|
17
|
+
error.failed_to_add_upstream_remote "upstream ą¤°ą¤æą¤®ą„ą¤ ą¤ą„ą¤”ą¤¼ą¤Øą„ ą¤®ą„ą¤ विफल"
|
|
18
|
+
error.failed_to_checkout "{{branch}} पर ą¤øą„ą¤µą¤æą¤ ą¤ą¤°ą¤Øą„ ą¤®ą„ą¤ विफल"
|
|
19
|
+
error.failed_to_sync "{{branch}} ą¤ą„ upstream ą¤ą„ साऄ ą¤øą¤æą¤ą¤ ą¤ą¤°ą¤Øą„ ą¤®ą„ą¤ विफल"
|
|
20
|
+
error.failed_to_get_default_branch "ą¤”ą¤æą¤«ą¤¼ą„ą¤²ą„ą¤ ą¤¶ą¤¾ą¤ą¤¾ ą¤ą¤¾ नाम ą¤Ŗą„ą¤°ą¤¾ą¤Ŗą„त ą¤ą¤°ą¤Øą„ ą¤®ą„ą¤ विफल"
|
|
21
|
+
error.failed_to_get_current_branch "ą¤µą¤°ą„ą¤¤ą¤®ą¤¾ą¤Ø ą¤¶ą¤¾ą¤ą¤¾ ą¤Ŗą„ą¤°ą¤¾ą¤Ŗą„त ą¤ą¤°ą¤Øą„ ą¤®ą„ą¤ विफल"
|
|
22
|
+
error.failed_to_fetch_upstream "upstream ą¤øą„ ą¤”ą„ą¤ą¤¾ ą¤Ŗą„ą¤°ą¤¾ą¤Ŗą„त ą¤ą¤°ą¤Øą„ ą¤®ą„ą¤ विफल"
|
|
23
|
+
error.failed_to_add_pr_fork_remote "pr-fork ą¤°ą¤æą¤®ą„ą¤ ą¤ą„ą¤”ą¤¼ą¤Øą„ ą¤®ą„ą¤ विफल"
|
|
24
|
+
error.failed_to_fetch_from_pr_fork "pr-fork ą¤øą„ ą¤”ą„ą¤ą¤¾ ą¤Ŗą„ą¤°ą¤¾ą¤Ŗą„त ą¤ą¤°ą¤Øą„ ą¤®ą„ą¤ विफल"
|
|
25
|
+
error.pr_does_not_exist "ą¤¤ą„ą¤°ą„ą¤ą¤æ: PR #{{prNumber}} {{owner}}/{{repo}} ą¤®ą„ą¤ ą¤®ą„ą¤ą„द ą¤Øą¤¹ą„ą¤ हą„"
|
|
26
|
+
error.youtrack_url_detected_no_config "ą¤¤ą„ą¤°ą„ą¤ą¤æ: YouTrack URL ą¤ą¤¾ पता ą¤ą¤²ą¤¾ ą¤²ą„ą¤ą¤æą¤Ø YouTrack ą¤ą„ą¤Øą„ą¤«ą¤¼ą¤æą¤ą¤°ą„शन ą¤Øą¤¹ą„ą¤ मिला"
|
|
27
|
+
error.telegram_bot_token_not_set "ą¤¤ą„ą¤°ą„ą¤ą¤æ: TELEGRAM_BOT_TOKEN ą¤Ŗą¤°ą„ą¤Æą¤¾ą¤µą¤°ą¤£ ą¤ą¤° या --token ą¤µą¤æą¤ą¤²ą„प ą¤øą„ą¤ ą¤Øą¤¹ą„ą¤ हą„"
|
|
28
|
+
error.invalid_github_url_solve "ą¤¤ą„ą¤°ą„ą¤ą¤æ: solve ą¤ą¤®ą¤¾ą¤ą¤” ą¤ą„ लिठą¤
ą¤®ą¤¾ą¤Øą„ą¤Æ GitHub URL"
|
|
29
|
+
error.invalid_language "ą¤
ą¤®ą¤¾ą¤Øą„ą¤Æ ą¤ą¤¾ą¤·ą¤¾ '{{value}}'. ą¤øą¤®ą¤°ą„ą¤„ित: {{supported}}"
|
|
30
|
+
success.readme_created "README.md ą¤øą¤«ą¤²ą¤¤ą¤¾ą¤Ŗą„ą¤°ą„वठबनाया ą¤ą¤Æą¤¾"
|
|
31
|
+
success.process_completed "ą¤Ŗą„ą¤°ą¤ą„रिया ą¤Ŗą„ą¤°ą„ ą¤¹ą„ą¤"
|
|
32
|
+
success.error_reported_to_sentry "ą¤¤ą„ą¤°ą„ą¤ą¤æ ą¤øą¤«ą¤²ą¤¤ą¤¾ą¤Ŗą„ą¤°ą„वठSentry ą¤ą„ ą¤°ą¤æą¤Ŗą„ą¤°ą„ą¤ ą¤ą„ ą¤ą¤"
|
|
33
|
+
success.language_set "ą¤ą¤¾ą¤·ą¤¾ ą¤øą„ą¤ ą¤ą„ ą¤ą¤: {{language}}"
|
|
34
|
+
warning.session_log_not_found "ą¤ą„तावनą„: ą¤øą¤¤ą„ą¤° {{session}} ą¤ą„ ą¤²ą¤æą¤ ą¤²ą„ą¤ ą¤Øą¤¹ą„ą¤ मिला, ą¤²ą„ą¤ą¤æą¤Ø फिर ą¤øą„ ą¤¶ą„ą¤°ą„ ą¤ą¤°ą¤Øą„ ą¤ą¤¾ ą¤Ŗą„ą¤°ą¤Æą¤¾ą¤ø ą¤ą¤¾ą¤°ą„ हą„"
|
|
35
|
+
warning.failed_to_create_readme "विफल: README.md ą¤Øą¤¹ą„ą¤ बना ą¤øą¤ą¤¾"
|
|
36
|
+
warning.could_not_determine_root_repository "ą¤°ą„ą¤ ą¤°ą¤æą¤Ŗą„ą¤ą¤æą¤ą¤°ą„ ą¤Øą¤æą¤°ą„ą¤§ą¤¾ą¤°ą¤æą¤¤ ą¤Øą¤¹ą„ą¤ ą¤ą„ ą¤ą¤¾ ą¤øą¤ą„"
|
|
37
|
+
warning.could_not_check_fork_status "ą¤ą„तावनą„: fork ą¤øą„ą¤„िति ą¤ą„ ą¤ą¤¾ą¤ą¤ ą¤Øą¤¹ą„ą¤ ą¤¹ą„ ą¤øą¤ą„: {{message}}"
|
|
38
|
+
warning.no_linked_issue_found "ą¤ą„तावनą„: PR विवरण ą¤®ą„ą¤ ą¤ą„ą¤ ą¤ą„औ़ा ą¤¹ą„ą¤ issue ą¤Øą¤¹ą„ą¤ मिला"
|
|
39
|
+
warning.could_not_search_for_existing_prs "ą¤ą„तावनą„: ą¤®ą„ą¤ą„दा PR ą¤Øą¤¹ą„ą¤ ą¤¢ą„ą¤ą¤¢ ą¤øą¤ą„: {{message}}"
|
|
40
|
+
warning.could_not_get_current_user "ą¤ą„तावनą„: ą¤µą¤°ą„ą¤¤ą¤®ą¤¾ą¤Ø GitHub ą¤ą¤Ŗą¤Æą„ą¤ą¤ą¤°ą„ता ą¤Ŗą„ą¤°ą¤¾ą¤Ŗą„त ą¤Øą¤¹ą„ą¤ ą¤¹ą„ ą¤øą¤ą¤¾"
|
|
41
|
+
warning.could_not_check_github_permissions "ą¤ą„तावनą„: GitHub ą¤
ą¤Øą„ą¤®ą¤¤ą¤æą¤Æą¤¾ą¤ ą¤ą¤¾ą¤ą¤ ą¤Øą¤¹ą„ą¤ ą¤øą¤ą„: {{message}}"
|
|
42
|
+
warning.could_not_determine_token_scopes "ą¤ą„तावनą„: ą¤ą¤„ ą¤øą„ą¤„िति ą¤øą„ ą¤ą„ą¤ą¤Ø ą¤øą„ą¤ą„प ą¤Øą¤æą¤°ą„ą¤§ą¤¾ą¤°ą¤æą¤¤ ą¤Øą¤¹ą„ą¤ ą¤¹ą„ ą¤øą¤ą„"
|
|
43
|
+
warning.failed_to_fetch_branches "ą¤ą„तावनą„: ą¤°ą¤æą¤®ą„ą¤ ą¤øą„ ą¤¶ą¤¾ą¤ą¤¾ą¤ą¤ ą¤Ŗą„ą¤°ą¤¾ą¤Ŗą„त ą¤ą¤°ą¤Øą„ ą¤®ą„ą¤ विफल"
|
|
44
|
+
warning.error_during_auto_pr_creation "ą¤ą„तावनą„: ą¤øą„ą¤µą¤ą¤¾ą¤²ą¤æą¤¤ PR ą¤Øą¤æą¤°ą„ą¤®ą¤¾ą¤£ ą¤ą„ ą¤¦ą„ą¤°ą¤¾ą¤Ø ą¤¤ą„ą¤°ą„ą¤ą¤æ: {{message}}"
|
|
45
|
+
warning.could_not_convert_pr_to_draft "ą¤ą„तावनą„: PR ą¤ą„ draft ą¤®ą„ą¤ ą¤Ŗą¤°ą¤æą¤µą¤°ą„ą¤¤ą¤æą¤¤ ą¤Øą¤¹ą„ą¤ ą¤ą¤° ą¤øą¤ą¤¾"
|
|
46
|
+
warning.could_not_check_convert_pr_draft_status "ą¤ą„तावनą„: PR draft ą¤øą„ą¤„िति ą¤ą„ ą¤ą¤¾ą¤ą¤/ą¤Ŗą¤°ą¤æą¤µą¤°ą„ą¤¤ą¤Ø ą¤Øą¤¹ą„ą¤ ą¤¹ą„ ą¤øą¤ą¤¾"
|
|
47
|
+
warning.could_not_post_work_start_comment "ą¤ą„तावनą„: ą¤ą¤¾ą¤°ą„य ą¤Ŗą„ą¤°ą¤¾ą¤°ą¤ą¤ ą¤ą¤æą¤Ŗą„ą¤Ŗą¤£ą„ ą¤Ŗą„ą¤øą„ą¤ ą¤Øą¤¹ą„ą¤ ą¤ą¤° ą¤øą¤ą¤¾"
|
|
48
|
+
warning.could_not_post_work_end_comment "ą¤ą„तावनą„: ą¤ą¤¾ą¤°ą„य ą¤øą¤®ą¤¾ą¤Ŗą„ą¤¤ą¤æ ą¤ą¤æą¤Ŗą„ą¤Ŗą¤£ą„ ą¤Ŗą„ą¤øą„ą¤ ą¤Øą¤¹ą„ą¤ ą¤ą¤° ą¤øą¤ą¤¾"
|
|
49
|
+
warning.could_not_convert_pr_to_ready "ą¤ą„तावनą„: PR ą¤ą„ ready ą¤®ą„ą¤ ą¤Ŗą¤°ą¤æą¤µą¤°ą„ą¤¤ą¤æą¤¤ ą¤Øą¤¹ą„ą¤ ą¤ą¤° ą¤øą¤ą¤¾"
|
|
50
|
+
warning.could_not_convert_pr_to_ready_status "ą¤ą„तावनą„: PR ą¤øą„ą¤„िति ą¤ą„ ready ą¤®ą„ą¤ ą¤Ŗą¤°ą¤æą¤µą¤°ą„ą¤¤ą¤æą¤¤ ą¤Øą¤¹ą„ą¤ ą¤ą¤° ą¤øą¤ą¤¾"
|
|
51
|
+
warning.pr_created_but_no_url "ą¤ą„तावनą„: PR बनाया ą¤ą¤Æą¤¾ ą¤²ą„ą¤ą¤æą¤Ø URL वापस ą¤Øą¤¹ą„ą¤ ą¤ą¤Æą¤¾"
|
|
52
|
+
warning.could_not_assign_user "ą¤ą¤Ŗą¤Æą„ą¤ą¤ą¤°ą„ता ą¤Øą¤æą¤Æą„ą¤ą„त ą¤Øą¤¹ą„ą¤ ą¤ą¤° ą¤øą¤ą¤¾"
|
|
53
|
+
info.expected_github_url_format "ą¤
ą¤Ŗą„ą¤ą„षित: https://github.com/owner या https://github.com/owner/repo"
|
|
54
|
+
info.you_can_use_formats "ą¤ą¤Ŗ ą¤ą¤Øą¤®ą„ą¤ ą¤øą„ ą¤ą¤æą¤øą„ ą¤ą„ ą¤Ŗą„ą¤°ą¤¾ą¤°ą„प ą¤ą¤¾ ą¤ą¤Ŗą¤Æą„ą¤ ą¤ą¤° ą¤øą¤ą¤¤ą„ ą¤¹ą„ą¤:"
|
|
55
|
+
info.format_https_owner "- https://github.com/owner"
|
|
56
|
+
info.format_https_owner_repo "- https://github.com/owner/repo"
|
|
57
|
+
info.format_http_owner "- http://github.com/owner (https ą¤®ą„ą¤ ą¤Ŗą¤°ą¤æą¤µą¤°ą„ą¤¤ą¤æą¤¤ ą¤¹ą„ą¤ą¤¾)"
|
|
58
|
+
info.format_github_owner "- github.com/owner (https:// ą¤ą„औ़ा ą¤ą¤¾ą¤ą¤ą¤¾)"
|
|
59
|
+
info.format_owner "- owner (https://github.com/owner ą¤®ą„ą¤ ą¤Ŗą¤°ą¤æą¤µą¤°ą„ą¤¤ą¤æą¤¤ ą¤¹ą„ą¤ą¤¾)"
|
|
60
|
+
info.format_owner_repo "- owner/repo (https://github.com/owner/repo ą¤®ą„ą¤ ą¤Ŗą¤°ą¤æą¤µą¤°ą„ą¤¤ą¤æą¤¤ ą¤¹ą„ą¤ą¤¾)"
|
|
61
|
+
info.full_log_file "ą¤Ŗą„ą¤°ą¤¾ ą¤²ą„ą¤ ą¤«ą¤¼ą¤¾ą¤ą¤²: {{path}}"
|
|
62
|
+
info.process_exited_with_code "ą¤Ŗą„ą¤°ą¤ą„रिया ą¤ą„औ {{code}} ą¤ą„ साऄ ą¤øą¤®ą¤¾ą¤Ŗą„ą¤¤ ą¤¹ą„ą¤"
|
|
63
|
+
info.current_configuration "ą¤µą¤°ą„ą¤¤ą¤®ą¤¾ą¤Ø ą¤ą„ą¤Øą„ą¤«ą¤¼ą¤æą¤ą¤°ą„शन:"
|
|
64
|
+
process.using_repository_fallback "{{scope}} ą¤ą„ ą¤²ą¤æą¤ ą¤°ą¤æą¤Ŗą„ą¤ą¤æą¤ą¤°ą„-दर-ą¤°ą¤æą¤Ŗą„ą¤ą¤æą¤ą¤°ą„ ą¤«ą¤¼ą„ą¤²ą¤¬ą„ą¤ ą¤ą¤¾ ą¤ą¤Ŗą¤Æą„ą¤: {{owner}}"
|
|
65
|
+
process.fetching_repository_list "ą¤°ą¤æą¤Ŗą„ą¤ą¤æą¤ą¤°ą„ ą¤øą„ą¤ą„ ą¤Ŗą„ą¤°ą¤¾ą¤Ŗą„त ą¤ą„ ą¤ą¤¾ ą¤°ą¤¹ą„ ą¤¹ą„..."
|
|
66
|
+
process.command "ą¤ą¤®ą¤¾ą¤ą¤”: {{command}}"
|
|
67
|
+
check.number "ą¤ą¤¾ą¤ą¤ #{{iteration}}:"
|
|
68
|
+
time.current "ą¤µą¤°ą„ą¤¤ą¤®ą¤¾ą¤Ø समय: {{time}}"
|
|
69
|
+
telegram.fetching_limits "š ą¤ą¤Ŗą¤Æą„ą¤ ą¤øą„ą¤®ą¤¾ą¤ą¤ ą¤Ŗą„ą¤°ą¤¾ą¤Ŗą„त ą¤ą„ ą¤ą¤¾ ą¤°ą¤¹ą„ ą¤¹ą„ą¤..."
|
|
70
|
+
telegram.gathering_version "š ą¤øą¤ą¤øą„ą¤ą¤°ą¤£ ą¤ą¤¾ą¤Øą¤ą¤¾ą¤°ą„ ą¤ą¤ą¤¤ą„र ą¤ą„ ą¤ą¤¾ ą¤°ą¤¹ą„ ą¤¹ą„..."
|
|
71
|
+
telegram.usage_limits_title "š *ą¤ą¤Ŗą¤Æą„ą¤ ą¤øą„ą¤®ą¤¾ą¤ą¤*"
|
|
72
|
+
telegram.version_information_title "š¤ *ą¤øą¤ą¤øą„ą¤ą¤°ą¤£ ą¤ą¤¾ą¤Øą¤ą¤¾ą¤°ą„*"
|
|
73
|
+
telegram.limits_only_in_groups "ā /limits ą¤ą¤®ą¤¾ą¤ą¤” ą¤ą„वल ą¤øą¤®ą„ą¤¹ ą¤ą„ą¤ ą¤®ą„ą¤ ą¤ą¤¾ą¤® ą¤ą¤°ą¤¤ą„ ą¤¹ą„ą„¤ ą¤ą„पया ą¤¬ą„ą¤ ą¤ą„ ą¤øą¤®ą„ą¤¹ ą¤®ą„ą¤ ą¤ą„ą¤”ą¤¼ą„ą¤ ą¤ą¤° ą¤µą„ą¤Æą¤µą¤øą„ą¤„ą¤¾ą¤Ŗą¤ ą¤¬ą¤Øą¤¾ą¤ą¤ą„¤"
|
|
74
|
+
telegram.version_only_in_groups "ā /version ą¤ą¤®ą¤¾ą¤ą¤” ą¤ą„वल ą¤øą¤®ą„ą¤¹ ą¤ą„ą¤ ą¤®ą„ą¤ ą¤ą¤¾ą¤® ą¤ą¤°ą¤¤ą„ ą¤¹ą„ą„¤ ą¤ą„पया ą¤¬ą„ą¤ ą¤ą„ ą¤øą¤®ą„ą¤¹ ą¤®ą„ą¤ ą¤ą„ą¤”ą¤¼ą„ą¤ ą¤ą¤° ą¤µą„ą¤Æą¤µą¤øą„ą¤„ą¤¾ą¤Ŗą¤ ą¤¬ą¤Øą¤¾ą¤ą¤ą„¤"
|
|
75
|
+
telegram.solve_only_in_groups "ā {{commandDisplay}} ą¤ą¤®ą¤¾ą¤ą¤” ą¤ą„वल ą¤øą¤®ą„ą¤¹ ą¤ą„ą¤ ą¤®ą„ą¤ ą¤ą¤¾ą¤® ą¤ą¤°ą¤¤ą„ ą¤¹ą„ą„¤ ą¤ą„पया ą¤¬ą„ą¤ ą¤ą„ ą¤øą¤®ą„ą¤¹ ą¤®ą„ą¤ ą¤ą„ą¤”ą¤¼ą„ą¤ ą¤ą¤° ą¤µą„ą¤Æą¤µą¤øą„ą¤„ą¤¾ą¤Ŗą¤ ą¤¬ą¤Øą¤¾ą¤ą¤ą„¤"
|
|
76
|
+
telegram.hive_only_in_groups "ā /hive ą¤ą¤®ą¤¾ą¤ą¤” ą¤ą„वल ą¤øą¤®ą„ą¤¹ ą¤ą„ą¤ ą¤®ą„ą¤ ą¤ą¤¾ą¤® ą¤ą¤°ą¤¤ą„ ą¤¹ą„ą„¤ ą¤ą„पया ą¤¬ą„ą¤ ą¤ą„ ą¤øą¤®ą„ą¤¹ ą¤®ą„ą¤ ą¤ą„ą¤”ą¤¼ą„ą¤ ą¤ą¤° ą¤µą„ą¤Æą¤µą¤øą„ą¤„ą¤¾ą¤Ŗą¤ ą¤¬ą¤Øą¤¾ą¤ą¤ą„¤"
|
|
77
|
+
telegram.solve_disabled "ā ą¤ą¤ø ą¤¬ą„ą¤ ą¤ą¤ą¤øą„ą¤ą„ą¤ą¤ø पर solve ą¤ą¤®ą¤¾ą¤ą¤” ą¤
ą¤ą„षम ą¤¹ą„ą„¤"
|
|
78
|
+
telegram.hive_disabled "ā ą¤ą¤ø ą¤¬ą„ą¤ ą¤ą¤ą¤øą„ą¤ą„ą¤ą¤ø पर /hive ą¤ą¤®ą¤¾ą¤ą¤” ą¤
ą¤ą„षम ą¤¹ą„ą„¤"
|
|
79
|
+
telegram.no_github_link_in_reply "ā ą¤ą¤¤ą„तर ą¤¦ą¤æą¤ ą¤ą¤ ą¤øą¤ą¤¦ą„श ą¤®ą„ą¤ ą¤ą„ठGitHub issue/PR ą¤²ą¤æą¤ą¤ ą¤Øą¤¹ą„ą¤ ą¤®ą¤æą¤²ą¤¾ą„¤\n\ną¤ą¤¦ą¤¾ą¤¹ą¤°ą¤£: GitHub issue ą¤²ą¤æą¤ą¤ ą¤µą¤¾ą¤²ą„ ą¤øą¤ą¤¦ą„श ą¤ą¤¾ ą¤ą¤¤ą„तर `/solve` ą¤øą„ ą¤¦ą„ą¤\n\nया ą¤µą¤æą¤ą¤²ą„ą¤Ŗą„ą¤ ą¤ą„ साऄ: `/solve --model opus`"
|
|
80
|
+
telegram.invalid_options "ā ą¤
ą¤®ą¤¾ą¤Øą„ą¤Æ ą¤µą¤æą¤ą¤²ą„प: {{message}}\n\ną¤ą¤Ŗą¤²ą¤¬ą„ध ą¤µą¤æą¤ą¤²ą„प ą¤¦ą„ą¤ą¤Øą„ ą¤ą„ लिठ/help ą¤ą¤¾ ą¤ą¤Ŗą¤Æą„ą¤ ą¤ą¤°ą„ą¤"
|
|
81
|
+
telegram.invalid_isolation "ā ą¤
ą¤®ą¤¾ą¤Øą„ą¤Æ --isolation मान '{{value}}'ą„¤ ą¤¹ą„ą¤Øą¤¾ ą¤ą¤¾ą¤¹ą¤æą¤: screen, tmux, या docker"
|
|
82
|
+
telegram.invalid_locked_isolation "ā ą¤
ą¤®ą¤¾ą¤Øą„ą¤Æ ą¤²ą„ą¤ą„औ --isolation मान '{{value}}'ą„¤ ą¤¹ą„ą¤Øą¤¾ ą¤ą¤¾ą¤¹ą¤æą¤: screen, tmux, या docker"
|
|
83
|
+
telegram.option_syntax_check "ą¤ą„पया ą¤
ą¤Ŗą¤Øą„ ą¤µą¤æą¤ą¤²ą„प ą¤øą¤æą¤ą¤ą„ą¤ą„स ą¤ą„ ą¤ą¤¾ą¤ą¤ ą¤ą¤°ą„ą¤ą„¤"
|
|
84
|
+
telegram.url_status_active "ā ą¤Æą¤¹ URL {{statusText}} ą¤¹ą„ą„¤\n\nURL: {{url}}\ną¤øą„ą¤„िति: {{status}}\n\nš” ą¤ą¤¤ą¤¾ą¤° ą¤øą„ą¤„िति ą¤¦ą„ą¤ą¤Øą„ ą¤ą„ लिठ/solve_queue ą¤ą¤¾ ą¤ą¤Ŗą¤Æą„ą¤ ą¤ą¤°ą„ą¤ą„¤"
|
|
85
|
+
telegram.url_session_running "ā ą¤ą¤ø URL ą¤ą„ ą¤²ą¤æą¤ ą¤Ŗą¤¹ą¤²ą„ ą¤øą„ ą¤ą¤ ą¤ą¤¾ą¤°ą„य ą¤øą¤¤ą„ą¤° ą¤ą¤² रहा ą¤¹ą„ą„¤\n\nURL: {{url}}\ną¤øą¤¤ą„ą¤°: `{{session}}`\n\nš” ą¤µą¤°ą„तमान ą¤øą¤¤ą„ą¤° ą¤ą„ ą¤Ŗą„ą¤°ą¤¾ ą¤¹ą„ą¤Øą„ ą¤ą„ ą¤Ŗą„ą¤°ą¤¤ą„ą¤ą„षा ą¤ą¤°ą„ą¤, या ą¤°ą¤¦ą„ą¤¦ ą¤ą¤°ą¤Øą„ ą¤ą„ लिठ/solve\\_stop ą¤ą¤¾ ą¤ą¤Ŗą¤Æą„ą¤ ą¤ą¤°ą„ą¤ą„¤"
|
|
86
|
+
telegram.solve_rejected "ā Solve ą¤ą¤®ą¤¾ą¤ą¤” ą¤
ą¤øą„ą¤µą„ą¤ą„ą¤¤ą„¤\n\n{{infoBlock}}\n\nš« ą¤ą¤¾ą¤°ą¤£: {{reason}}"
|
|
87
|
+
telegram.language_invalid "ā ą¤
ą¤®ą¤¾ą¤Øą„ą¤Æ ą¤ą¤¾ą¤·ą¤¾ą„¤ ą¤øą¤®ą¤°ą„ą¤„ित: {{supported}}ą„¤\ną¤ą¤Ŗą¤Æą„ą¤: /language <ą¤ą„औ>"
|
|
88
|
+
telegram.language_set "ā
ą¤ą¤¾ą¤·ą¤¾ ą¤øą„ą¤: *{{language}}*ą„¤"
|
|
89
|
+
telegram.language_current "š ą¤µą¤°ą„तमान ą¤ą¤¾ą¤·ą¤¾: *{{language}}*ą„¤\ną¤øą¤®ą¤°ą„ą¤„ित: {{supported}}ą„¤\ną¤ą¤Ŗą¤Æą„ą¤: /language <ą¤ą„औ>"
|
|
90
|
+
language.en "ą¤
ą¤ą¤ą„ą¤°ą„ą¤ą¤¼ą„"
|
|
91
|
+
language.ru "ą¤°ą„ą¤øą„"
|
|
92
|
+
language.zh "ą¤ą„नą„"
|
|
93
|
+
language.hi "ą¤¹ą¤æą¤Øą„ą¤¦ą„"
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
ru
|
|
2
|
+
error "ŠŃибка"
|
|
3
|
+
success "Š£ŃŠæŠµŃŠ½Š¾"
|
|
4
|
+
warning "ŠŃŠµŠ“ŃŠæŃежГение"
|
|
5
|
+
failed "ŠŠµ ŃŠ“алоŃŃ"
|
|
6
|
+
info "ŠŠ½ŃŠ¾ŃŠ¼Š°ŃŠøŃ"
|
|
7
|
+
error.invalid_github_url "ŠŃибка: ŠŠµŠ²ŠµŃŠ½ŃŠ¹ ŃŠ¾ŃŠ¼Š°Ń URL GitHub"
|
|
8
|
+
error.invalid_github_url_monitoring "ŠŃибка: ŠŠµŠ²ŠµŃŠ½ŃŠ¹ URL GitHub Š“Š»Ń Š¼Š¾Š½ŠøŃŠ¾Ńинга"
|
|
9
|
+
error.missing_required_url "ŠŃибка: ŠŃŃŃŃŃŃŠ²ŃŠµŃ Š¾Š±ŃŠ·Š°ŃŠµŠ»ŃŠ½Ńй URL ŠæŃŠ¾Š±Š»ŠµŠ¼Ń или Š·Š°ŠæŃоŃа на ŃŠ»ŠøŃние GitHub"
|
|
10
|
+
error.unable_determine_version "ŠŃибка: ŠŠµ ŃŠ“аеŃŃŃ Š¾ŠæŃŠµŠ“елиŃŃ Š²ŠµŃŃŠøŃ"
|
|
11
|
+
error.invalid_url_type "ŠŃибка: ŠŠµŠ²ŠµŃŠ½ŃŠ¹ ŃŠ¾ŃŠ¼Š°Ń URL GitHub"
|
|
12
|
+
error.url_type_not_supported "Тип URL '{{type}}' не ŠæŠ¾Š“Š“ŠµŃŠ¶ŠøŠ²Š°ŠµŃŃŃ"
|
|
13
|
+
error.failed_to_get_current_user "ŠŃибка: ŠŠµ ŃŠ“алоŃŃ ŠæŠ¾Š»ŃŃŠøŃŃ ŃŠµŠŗŃŃŠµŠ³Š¾ ŠæŠ¾Š»ŃŠ·Š¾Š²Š°ŃелŃ"
|
|
14
|
+
error.failed_to_initialize_repository "ŠŃибка: ŠŠµ ŃŠ“алоŃŃ ŠøŠ½ŠøŃŠøŠ°Š»ŠøŠ·ŠøŃоваŃŃ ŃŠµŠæŠ¾Š·ŠøŃŠ¾ŃŠøŠ¹"
|
|
15
|
+
error.failed_to_create_fork "ŠŠµ ŃŠ“алоŃŃ ŃŠ¾Š·Š“аŃŃ ŃŠ¾ŃŠŗ ŠæŠ¾ŃŠ»Šµ Š²ŃŠµŃ
попŃŃŠ¾Šŗ"
|
|
16
|
+
error.fork_not_accessible "Š¤Š¾ŃŠŗ ŃŃŃŠµŃŃŠ²ŃеŃ, но неГоŃŃŃŠæŠµŠ½ ŠæŠ¾ŃŠ»Šµ Š½ŠµŃŠŗŠ¾Š»ŃŠŗŠøŃ
попŃŃŠ¾Šŗ"
|
|
17
|
+
error.failed_to_add_upstream_remote "ŠŠµ ŃŠ“алоŃŃ Š“Š¾Š±Š°Š²ŠøŃŃ ŃŠ“Š°Š»ŃŠ½Š½Ńй ŃŠµŠæŠ¾Š·ŠøŃŠ¾ŃŠøŠ¹ upstream"
|
|
18
|
+
error.failed_to_checkout "ŠŠµ ŃŠ“алоŃŃ ŠæŠµŃŠµŠŗŠ»ŃŃŠøŃŃŃŃ Š½Š° {{branch}}"
|
|
19
|
+
error.failed_to_sync "ŠŠµ ŃŠ“алоŃŃ ŃŠøŠ½Ń
ŃŠ¾Š½ŠøŠ·ŠøŃоваŃŃ {{branch}} Ń upstream"
|
|
20
|
+
error.failed_to_get_default_branch "ŠŠµ ŃŠ“алоŃŃ ŠæŠ¾Š»ŃŃŠøŃŃ ŠøŠ¼Ń Š²ŠµŃŠŗŠø по ŃŠ¼Š¾Š»ŃаниŃ"
|
|
21
|
+
error.failed_to_get_current_branch "ŠŠµ ŃŠ“алоŃŃ ŠæŠ¾Š»ŃŃŠøŃŃ ŃŠµŠŗŃŃŃŃ Š²ŠµŃŠŗŃ"
|
|
22
|
+
error.failed_to_fetch_upstream "ŠŠµ ŃŠ“алоŃŃ ŠæŠ¾Š»ŃŃŠøŃŃ Š“Š°Š½Š½ŃŠµ ŠøŠ· upstream"
|
|
23
|
+
error.failed_to_add_pr_fork_remote "ŠŠµ ŃŠ“алоŃŃ Š“Š¾Š±Š°Š²ŠøŃŃ ŃŠ“Š°Š»ŃŠ½Š½Ńй ŃŠµŠæŠ¾Š·ŠøŃŠ¾ŃŠøŠ¹ pr-fork"
|
|
24
|
+
error.failed_to_fetch_from_pr_fork "ŠŠµ ŃŠ“алоŃŃ ŠæŠ¾Š»ŃŃŠøŃŃ Š“Š°Š½Š½ŃŠµ ŠøŠ· pr-fork"
|
|
25
|
+
error.pr_does_not_exist "ŠŃибка: PR #{{prNumber}} не ŃŃŃŠµŃŃŠ²ŃŠµŃ Š² {{owner}}/{{repo}}"
|
|
26
|
+
error.youtrack_url_detected_no_config "ŠŃибка: ŠŠ±Š½Š°ŃŃŠ¶ŠµŠ½ URL YouTrack, но ŠŗŠ¾Š½ŃигŃŃŠ°ŃŠøŃ YouTrack не найГена"
|
|
27
|
+
error.telegram_bot_token_not_set "ŠŃибка: ŠŠµŃŠµŠ¼ŠµŠ½Š½Š°Ń Š¾ŠŗŃŃŠ¶ŠµŠ½ŠøŃ TELEGRAM_BOT_TOKEN или Š¾ŠæŃŠøŃ --token не ŃŃŃŠ°Š½Š¾Š²Š»ŠµŠ½Š°"
|
|
28
|
+
error.invalid_github_url_solve "ŠŃибка: ŠŠµŠ²ŠµŃŠ½ŃŠ¹ URL GitHub Š“Š»Ń ŠŗŠ¾Š¼Š°Š½Š“Ń solve"
|
|
29
|
+
error.invalid_language "ŠŠµŠ²ŠµŃŠ½ŃŠ¹ ŃŠ·ŃŠŗ '{{value}}'. ŠŠ¾Š“Š“ŠµŃŠ¶ŠøŠ²Š°ŃŃŃŃ: {{supported}}"
|
|
30
|
+
success.readme_created "README.md ŃŃŠæŠµŃŠ½Š¾ ŃŠ¾Š·Š“ан"
|
|
31
|
+
success.process_completed "ŠŃŠ¾ŃŠµŃŃ Š·Š°Š²ŠµŃŃŃŠ½"
|
|
32
|
+
success.error_reported_to_sentry "ŠŃибка ŃŃŠæŠµŃŠ½Š¾ Š¾ŃŠæŃавлена в Sentry"
|
|
33
|
+
success.language_set "ŠÆŠ·ŃŠŗ ŃŃŃŠ°Š½Š¾Š²Š»ŠµŠ½: {{language}}"
|
|
34
|
+
warning.session_log_not_found "ŠŃŠµŠ“ŃŠæŃежГение: ŠŃŃŠ½Š°Š» ŃŠµŠ°Š½Ńа Š“Š»Ń {{session}} не найГен, но ŠæŃоГолжаем попŃŃŠŗŃ возобновлениŃ"
|
|
35
|
+
warning.failed_to_create_readme "ŠŠµ ŃŠ“алоŃŃ: ŠŠµ ŃŠ“алоŃŃ ŃŠ¾Š·Š“аŃŃ README.md"
|
|
36
|
+
warning.could_not_determine_root_repository "ŠŠµ ŃŠ“алоŃŃ Š¾ŠæŃŠµŠ“елиŃŃ ŠŗŠ¾ŃŠ½ŠµŠ²Š¾Š¹ ŃŠµŠæŠ¾Š·ŠøŃŠ¾ŃŠøŠ¹"
|
|
37
|
+
warning.could_not_check_fork_status "ŠŃŠµŠ“ŃŠæŃежГение: ŠŠµ ŃŠ“алоŃŃ ŠæŃŠ¾Š²ŠµŃŠøŃŃ ŃŃŠ°ŃŃŃ ŃŠ¾Ńка: {{message}}"
|
|
38
|
+
warning.no_linked_issue_found "ŠŃŠµŠ“ŃŠæŃежГение: Š”Š²ŃŠ·Š°Š½Š½Š°Ń ŠæŃŠ¾Š±Š»ŠµŠ¼Š° не найГена в ŃŠµŠ»Šµ PR"
|
|
39
|
+
warning.could_not_search_for_existing_prs "ŠŃŠµŠ“ŃŠæŃежГение: ŠŠµ ŃŠ“алоŃŃ Š½Š°Š¹ŃŠø ŃŃŃŠµŃŃŠ²ŃŃŃŠøŠµ PR: {{message}}"
|
|
40
|
+
warning.could_not_get_current_user "ŠŃŠµŠ“ŃŠæŃежГение: ŠŠµ ŃŠ“алоŃŃ ŠæŠ¾Š»ŃŃŠøŃŃ ŃŠµŠŗŃŃŠµŠ³Š¾ ŠæŠ¾Š»ŃŠ·Š¾Š²Š°ŃŠµŠ»Ń GitHub"
|
|
41
|
+
warning.could_not_check_github_permissions "ŠŃŠµŠ“ŃŠæŃежГение: ŠŠµ ŃŠ“алоŃŃ ŠæŃŠ¾Š²ŠµŃŠøŃŃ ŃŠ°Š·ŃŠµŃŠµŠ½ŠøŃ GitHub: {{message}}"
|
|
42
|
+
warning.could_not_determine_token_scopes "ŠŃŠµŠ“ŃŠæŃежГение: ŠŠµ ŃŠ“алоŃŃ Š¾ŠæŃŠµŠ“елиŃŃ Š¾Š±Š»Š°ŃŃŠø ŃŠ¾ŠŗŠµŠ½Š° ŠøŠ· ŃŃŠ°ŃŃŃŠ° аŃŃŠµŠ½ŃŠøŃŠøŠŗŠ°ŃŠøŠø"
|
|
43
|
+
warning.failed_to_fetch_branches "ŠŃŠµŠ“ŃŠæŃежГение: ŠŠµ ŃŠ“алоŃŃ ŠæŠ¾Š»ŃŃŠøŃŃ Š²ŠµŃŠŗŠø ŠøŠ· ŃŠ“Š°Š»ŃŠ½Š½Š¾Š³Š¾ ŃŠµŠæŠ¾Š·ŠøŃŠ¾ŃŠøŃ"
|
|
44
|
+
warning.error_during_auto_pr_creation "ŠŃŠµŠ“ŃŠæŃежГение: ŠŃибка ŠæŃŠø Š°Š²ŃŠ¾Š¼Š°ŃŠøŃŠµŃком ŃŠ¾Š·Š“ании PR: {{message}}"
|
|
45
|
+
warning.could_not_convert_pr_to_draft "ŠŃŠµŠ“ŃŠæŃежГение: ŠŠµ ŃŠ“алоŃŃ ŠæŃŠµŠ¾Š±ŃазоваŃŃ PR в ŃŠµŃновик"
|
|
46
|
+
warning.could_not_check_convert_pr_draft_status "ŠŃŠµŠ“ŃŠæŃежГение: ŠŠµ ŃŠ“алоŃŃ ŠæŃŠ¾Š²ŠµŃŠøŃŃ/ŠæŃŠµŠ¾Š±ŃазоваŃŃ ŃŃŠ°ŃŃŃ ŃŠµŃновика PR"
|
|
47
|
+
warning.could_not_post_work_start_comment "ŠŃŠµŠ“ŃŠæŃежГение: ŠŠµ ŃŠ“алоŃŃ Š¾ŠæŃŠ±Š»ŠøŠŗŠ¾Š²Š°ŃŃ ŠŗŠ¾Š¼Š¼ŠµŠ½ŃŠ°Ńий о Š½Š°Ńале ŃŠ°Š±Š¾ŃŃ"
|
|
48
|
+
warning.could_not_post_work_end_comment "ŠŃŠµŠ“ŃŠæŃежГение: ŠŠµ ŃŠ“алоŃŃ Š¾ŠæŃŠ±Š»ŠøŠŗŠ¾Š²Š°ŃŃ ŠŗŠ¾Š¼Š¼ŠµŠ½ŃŠ°Ńий о завеŃŃŠµŠ½ŠøŠø ŃŠ°Š±Š¾ŃŃ"
|
|
49
|
+
warning.could_not_convert_pr_to_ready "ŠŃŠµŠ“ŃŠæŃежГение: ŠŠµ ŃŠ“алоŃŃ ŠæŃŠµŠ¾Š±ŃазоваŃŃ PR в Š³Š¾ŃовŃй"
|
|
50
|
+
warning.could_not_convert_pr_to_ready_status "ŠŃŠµŠ“ŃŠæŃежГение: ŠŠµ ŃŠ“алоŃŃ ŠæŃŠµŠ¾Š±ŃазоваŃŃ ŃŃŠ°ŃŃŃ PR в Š³Š¾ŃовŃй"
|
|
51
|
+
warning.pr_created_but_no_url "ŠŃŠµŠ“ŃŠæŃежГение: PR ŃŠ¾Š·Š“ан, но URL не Š²Š¾Š·Š²ŃаŃŃŠ½"
|
|
52
|
+
warning.could_not_assign_user "ŠŠµ ŃŠ“алоŃŃ Š½Š°Š·Š½Š°ŃŠøŃŃ ŠæŠ¾Š»ŃŠ·Š¾Š²Š°ŃелŃ"
|
|
53
|
+
info.expected_github_url_format "ŠŠ¶ŠøŠ“аеŃŃŃ: https://github.com/owner или https://github.com/owner/repo"
|
|
54
|
+
info.you_can_use_formats "ŠŃ Š¼Š¾Š¶ŠµŃŠµ ŠøŃŠæŠ¾Š»ŃŠ·Š¾Š²Š°ŃŃ Š»ŃŠ±Š¾Š¹ ŠøŠ· ŃŃŠøŃ
ŃŠ¾ŃŠ¼Š°ŃŠ¾Š²:"
|
|
55
|
+
info.format_https_owner "- https://github.com/owner"
|
|
56
|
+
info.format_https_owner_repo "- https://github.com/owner/repo"
|
|
57
|
+
info.format_http_owner "- http://github.com/owner (Š±ŃŠ“ŠµŃ ŠæŃŠµŠ¾Š±Ńазовано в https)"
|
|
58
|
+
info.format_github_owner "- github.com/owner (Š±ŃŠ“ŠµŃ Š“Š¾Š±Š°Š²Š»ŠµŠ½Š¾ https://)"
|
|
59
|
+
info.format_owner "- owner (Š±ŃŠ“ŠµŃ ŠæŃŠµŠ¾Š±Ńазовано в https://github.com/owner)"
|
|
60
|
+
info.format_owner_repo "- owner/repo (Š±ŃŠ“ŠµŃ ŠæŃŠµŠ¾Š±Ńазовано в https://github.com/owner/repo)"
|
|
61
|
+
info.full_log_file "ŠŠ¾Š»Š½Ńй ŃŠ°Š¹Š» жŃŃŠ½Š°Š»Š°: {{path}}"
|
|
62
|
+
info.process_exited_with_code "ŠŃŠ¾ŃŠµŃŃ Š·Š°Š²ŠµŃŃŠøŠ»ŃŃ Ń ŠŗŠ¾Š“Š¾Š¼ {{code}}"
|
|
63
|
+
info.current_configuration "ТекŃŃŠ°Ń ŠŗŠ¾Š½ŃŠøŠ³ŃŃŠ°ŃŠøŃ:"
|
|
64
|
+
process.using_repository_fallback "ŠŃŠæŠ¾Š»ŃŠ·Š¾Š²Š°Š½ŠøŠµ ŃŠµŠ·ŠµŃвного Š¼ŠµŃоГа ŃŠµŠæŠ¾Š·ŠøŃŠ¾ŃŠøŠ¹-за-ŃŠµŠæŠ¾Š·ŠøŃŠ¾ŃŠøŠµŠ¼ Š“Š»Ń {{scope}}: {{owner}}"
|
|
65
|
+
process.fetching_repository_list "ŠŠ¾Š»ŃŃŠµŠ½ŠøŠµ ŃŠæŠøŃŠŗŠ° ŃŠµŠæŠ¾Š·ŠøŃŠ¾ŃŠøŠµŠ²..."
|
|
66
|
+
process.command "ŠŠ¾Š¼Š°Š½Š“а: {{command}}"
|
|
67
|
+
check.number "ŠŃŠ¾Š²ŠµŃŠŗŠ° #{{iteration}}:"
|
|
68
|
+
time.current "ТекŃŃŠµŠµ Š²ŃŠµŠ¼Ń: {{time}}"
|
|
69
|
+
telegram.fetching_limits "š ŠŠ¾Š»ŃŃŠµŠ½ŠøŠµ Š»ŠøŠ¼ŠøŃŠ¾Š² ŠøŃŠæŠ¾Š»ŃŠ·Š¾Š²Š°Š½ŠøŃ..."
|
|
70
|
+
telegram.gathering_version "š Š”Š±Š¾Ń ŠøŠ½ŃŠ¾ŃŠ¼Š°ŃŠøŠø о веŃŃŠøŠø..."
|
|
71
|
+
telegram.usage_limits_title "š *ŠŠøŠ¼ŠøŃŃ ŠøŃŠæŠ¾Š»ŃŠ·Š¾Š²Š°Š½ŠøŃ*"
|
|
72
|
+
telegram.version_information_title "š¤ *ŠŠ½ŃŠ¾ŃŠ¼Š°ŃŠøŃ Š¾ веŃŃŠøŠø*"
|
|
73
|
+
telegram.limits_only_in_groups "ā ŠŠ¾Š¼Š°Š½Š“Š° /limits ŃŠ°Š±Š¾ŃŠ°ŠµŃ ŃŠ¾Š»Ńко в гŃŃŠæŠæŠ¾Š²ŃŃ
ŃŠ°ŃаŃ
. ŠŠ¾Š±Š°Š²ŃŃŠµ Š±Š¾ŃŠ° в гŃŃŠæŠæŃ Šø ŃŠ“ŠµŠ»Š°Š¹ŃŠµ его аГминиŃŃŃŠ°ŃŠ¾ŃŠ¾Š¼."
|
|
74
|
+
telegram.version_only_in_groups "ā ŠŠ¾Š¼Š°Š½Š“Š° /version ŃŠ°Š±Š¾ŃŠ°ŠµŃ ŃŠ¾Š»Ńко в гŃŃŠæŠæŠ¾Š²ŃŃ
ŃŠ°ŃаŃ
. ŠŠ¾Š±Š°Š²ŃŃŠµ Š±Š¾ŃŠ° в гŃŃŠæŠæŃ Šø ŃŠ“ŠµŠ»Š°Š¹ŃŠµ его аГминиŃŃŃŠ°ŃŠ¾ŃŠ¾Š¼."
|
|
75
|
+
telegram.solve_only_in_groups "ā ŠŠ¾Š¼Š°Š½Š“Š° {{commandDisplay}} ŃŠ°Š±Š¾ŃŠ°ŠµŃ ŃŠ¾Š»Ńко в гŃŃŠæŠæŠ¾Š²ŃŃ
ŃŠ°ŃаŃ
. ŠŠ¾Š±Š°Š²ŃŃŠµ Š±Š¾ŃŠ° в гŃŃŠæŠæŃ Šø ŃŠ“ŠµŠ»Š°Š¹ŃŠµ его аГминиŃŃŃŠ°ŃŠ¾ŃŠ¾Š¼."
|
|
76
|
+
telegram.hive_only_in_groups "ā ŠŠ¾Š¼Š°Š½Š“Š° /hive ŃŠ°Š±Š¾ŃŠ°ŠµŃ ŃŠ¾Š»Ńко в гŃŃŠæŠæŠ¾Š²ŃŃ
ŃŠ°ŃаŃ
. ŠŠ¾Š±Š°Š²ŃŃŠµ Š±Š¾ŃŠ° в гŃŃŠæŠæŃ Šø ŃŠ“ŠµŠ»Š°Š¹ŃŠµ его аГминиŃŃŃŠ°ŃŠ¾ŃŠ¾Š¼."
|
|
77
|
+
telegram.solve_disabled "ā ŠŠ¾Š¼Š°Š½Š“Š° solve Š¾ŃŠŗŠ»ŃŃŠµŠ½Š° в ŃŃŠ¾Š¼ ŃŠŗŠ·ŠµŠ¼ŠæŠ»ŃŃŠµ Š±Š¾ŃŠ°."
|
|
78
|
+
telegram.hive_disabled "ā ŠŠ¾Š¼Š°Š½Š“Š° /hive Š¾ŃŠŗŠ»ŃŃŠµŠ½Š° в ŃŃŠ¾Š¼ ŃŠŗŠ·ŠµŠ¼ŠæŠ»ŃŃŠµ Š±Š¾ŃŠ°."
|
|
79
|
+
telegram.no_github_link_in_reply "ā Š ŃŠ¾Š¾Š±Ńении, на ŠŗŠ¾ŃоŃое Š²Ń Š¾ŃŠ²ŠµŃили, не найГена ŃŃŃŠ»ŠŗŠ° на ŠæŃоблемŃ/PR GitHub.\n\nŠŃимеŃ: ŠŃвеŃŃŃŠµ на ŃŠ¾Š¾Š±Ńение ŃŠ¾ ŃŃŃŠ»ŠŗŠ¾Š¹ на ŠæŃŠ¾Š±Š»ŠµŠ¼Ń GitHub команГой `/solve`\n\nŠŠ»Šø Ń Š¾ŠæŃŠøŃми: `/solve --model opus`"
|
|
80
|
+
telegram.invalid_options "ā ŠŠµŠ²ŠµŃŠ½Ńе Š¾ŠæŃŠøŠø: {{message}}\n\nŠŃŠæŠ¾Š»ŃŠ·ŃŠ¹ŃŠµ /help, ŃŃŠ¾Š±Ń ŃŠ²ŠøŠ“еŃŃ Š“Š¾ŃŃŃŠæŠ½ŃŠµ Š¾ŠæŃŠøŠø"
|
|
81
|
+
telegram.invalid_isolation "ā ŠŠµŠ²ŠµŃŠ½Š¾Šµ Š·Š½Š°ŃŠµŠ½ŠøŠµ --isolation '{{value}}'. ŠŠ¾ŠæŃŃŃŠøŠ¼Š¾: screen, tmux или docker"
|
|
82
|
+
telegram.invalid_locked_isolation "ā ŠŠµŠ²ŠµŃŠ½Š¾Šµ Š·Š°Š±Š»Š¾ŠŗŠøŃŠ¾Š²Š°Š½Š½Š¾Šµ Š·Š½Š°ŃŠµŠ½ŠøŠµ --isolation '{{value}}'. ŠŠ¾ŠæŃŃŃŠøŠ¼Š¾: screen, tmux или docker"
|
|
83
|
+
telegram.option_syntax_check "ŠŃовеŃŃŃŠµ ŃŠøŠ½ŃŠ°ŠŗŃŠøŃ Š¾ŠæŃŠøŠ¹."
|
|
84
|
+
telegram.url_status_active "ā ŠŃŠ¾Ń URL ŠøŠ¼ŠµŠµŃ ŃŃŠ°ŃŃŃ {{statusText}}.\n\nURL: {{url}}\nŠ”ŃŠ°ŃŃŃ: {{status}}\n\nš” ŠŃŠæŠ¾Š»ŃŠ·ŃŠ¹ŃŠµ /solve_queue Š“Š»Ń ŠæŃŠ¾Š²ŠµŃŠŗŠø Š¾ŃŠµŃеГи."
|
|
85
|
+
telegram.url_session_running "ā ŠŠ»Ń ŃŃŠ¾Š³Š¾ URL ŃŠ¶Šµ Š²ŃŠæŠ¾Š»Š½ŃŠµŃŃŃ ŃŠ°Š±Š¾Ńий ŃŠµŠ°Š½Ń.\n\nURL: {{url}}\nДеанŃ: `{{session}}`\n\nš” ŠŠ¾Š¶Š“ŠøŃŠµŃŃ Š·Š°Š²ŠµŃŃŠµŠ½ŠøŃ ŃŠµŠŗŃŃŠµŠ³Š¾ ŃŠµŠ°Š½Ńа или ŠøŃŠæŠ¾Š»ŃŠ·ŃŠ¹ŃŠµ /solve\\_stop Š“Š»Ń Š¾ŃŠ¼ŠµŠ½Ń."
|
|
86
|
+
telegram.solve_rejected "ā ŠŠ¾Š¼Š°Š½Š“Š° solve Š¾ŃŠŗŠ»Š¾Š½ŠµŠ½Š°.\n\n{{infoBlock}}\n\nš« ŠŃŠøŃина: {{reason}}"
|
|
87
|
+
telegram.language_invalid "ā ŠŠµŠ²ŠµŃŠ½Ńй ŃŠ·ŃŠŗ. ŠŠ¾Š“Š“ŠµŃŠ¶ŠøŠ²Š°ŃŃŃŃ: {{supported}}.\nŠŃŠæŠ¾Š»ŃŠ·Š¾Š²Š°Š½ŠøŠµ: /language <коГ>"
|
|
88
|
+
telegram.language_set "ā
ŠÆŠ·ŃŠŗ ŃŃŃŠ°Š½Š¾Š²Š»ŠµŠ½: *{{language}}*."
|
|
89
|
+
telegram.language_current "š Š¢ŠµŠŗŃŃŠøŠ¹ ŃŠ·ŃŠŗ: *{{language}}*.\nŠŠ¾Š“Š“ŠµŃŠ¶ŠøŠ²Š°ŃŃŃŃ: {{supported}}.\nŠŃŠæŠ¾Š»ŃŠ·Š¾Š²Š°Š½ŠøŠµ: /language <коГ>"
|
|
90
|
+
language.en "ŠŠ½Š³Š»ŠøŠ¹Ńкий"
|
|
91
|
+
language.ru "Š ŃŃŃŠŗŠøŠ¹"
|
|
92
|
+
language.zh "ŠŠøŃŠ°Š¹ŃŠŗŠøŠ¹"
|
|
93
|
+
language.hi "ЄинГи"
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
zh
|
|
2
|
+
error "é误"
|
|
3
|
+
success "ęå"
|
|
4
|
+
warning "č¦å"
|
|
5
|
+
failed "失蓄"
|
|
6
|
+
info "äæ”ęÆ"
|
|
7
|
+
error.invalid_github_url "é误ļ¼GitHub URL ę ¼å¼ę ę"
|
|
8
|
+
error.invalid_github_url_monitoring "é误ļ¼ēØäŗēę§ē GitHub URL ę ę"
|
|
9
|
+
error.missing_required_url "é误ļ¼ē¼ŗå°åæ
éē GitHub issue ę pull request URL"
|
|
10
|
+
error.unable_determine_version "é误ļ¼ę ę³ē”®å®ēę¬"
|
|
11
|
+
error.invalid_url_type "é误ļ¼GitHub URL ę ¼å¼ę ę"
|
|
12
|
+
error.url_type_not_supported "URL ē±»å '{{type}}' äøåęÆę"
|
|
13
|
+
error.failed_to_get_current_user "é误ļ¼ę ę³č·åå½åēØę·"
|
|
14
|
+
error.failed_to_initialize_repository "é误ļ¼ę ę³åå§åä»åŗ"
|
|
15
|
+
error.failed_to_create_fork "å¤ę¬”éčÆåä»ę ę³å建 fork"
|
|
16
|
+
error.fork_not_accessible "Fork å·²ååØä½å¤ę¬”éčÆåä»ę ę³č®æé®"
|
|
17
|
+
error.failed_to_add_upstream_remote "ę ę³ę·»å upstream čæēØä»åŗ"
|
|
18
|
+
error.failed_to_checkout "ę ę³åę¢å° {{branch}}"
|
|
19
|
+
error.failed_to_sync "ę ę³å° {{branch}} äø upstream åę„"
|
|
20
|
+
error.failed_to_get_default_branch "ę ę³č·åé»č®¤åęÆåē§°"
|
|
21
|
+
error.failed_to_get_current_branch "ę ę³č·åå½ååęÆ"
|
|
22
|
+
error.failed_to_fetch_upstream "ę ę³ä» upstream č·åę°ę®"
|
|
23
|
+
error.failed_to_add_pr_fork_remote "ę ę³ę·»å pr-fork čæēØä»åŗ"
|
|
24
|
+
error.failed_to_fetch_from_pr_fork "ę ę³ä» pr-fork č·åę°ę®"
|
|
25
|
+
error.pr_does_not_exist "é误ļ¼PR #{{prNumber}} åØ {{owner}}/{{repo}} äøäøååØ"
|
|
26
|
+
error.youtrack_url_detected_no_config "é误ļ¼ę£ęµå° YouTrack URL ä½ęŖę¾å° YouTrack é
ē½®"
|
|
27
|
+
error.telegram_bot_token_not_set "é误ļ¼ęŖč®¾ē½® TELEGRAM_BOT_TOKEN ēÆå¢åéę --token é锹"
|
|
28
|
+
error.invalid_github_url_solve "é误ļ¼solve å½ä»¤ē GitHub URL ę ę"
|
|
29
|
+
error.invalid_language "ę ęēčÆčØ '{{value}}'ćęÆęēčÆčØļ¼{{supported}}"
|
|
30
|
+
success.readme_created "README.md å建ęå"
|
|
31
|
+
success.process_completed "čæēØå·²å®ę"
|
|
32
|
+
success.error_reported_to_sentry "é误已ęåäøę„å° Sentry"
|
|
33
|
+
success.language_set "čÆčØå·²č®¾ē½®äøŗ {{language}}"
|
|
34
|
+
warning.session_log_not_found "č¦åļ¼ęŖę¾å°ä¼čÆ {{session}} ēę„åæļ¼ä½å°ē»§ē»å°čÆę¢å¤"
|
|
35
|
+
warning.failed_to_create_readme "失蓄ļ¼ę ę³å建 README.md"
|
|
36
|
+
warning.could_not_determine_root_repository "ę ę³ē”®å®ę ¹ä»åŗ"
|
|
37
|
+
warning.could_not_check_fork_status "č¦åļ¼ę ę³ę£ę„ fork ē¶ęļ¼{{message}}"
|
|
38
|
+
warning.no_linked_issue_found "č¦åļ¼åØ PR å
容äøęŖę¾å°å
³čē issue"
|
|
39
|
+
warning.could_not_search_for_existing_prs "č¦åļ¼ę ę³ęē“¢ē°ęē PRļ¼{{message}}"
|
|
40
|
+
warning.could_not_get_current_user "č¦åļ¼ę ę³č·åå½å GitHub ēØę·"
|
|
41
|
+
warning.could_not_check_github_permissions "č¦åļ¼ę ę³ę£ę„ GitHub ęéļ¼{{message}}"
|
|
42
|
+
warning.could_not_determine_token_scopes "č¦åļ¼ę ę³ä»č®¤čÆē¶ęē”®å®ä»¤ēčå“"
|
|
43
|
+
warning.failed_to_fetch_branches "č¦åļ¼ę ę³ä»čæēØč·ååęÆ"
|
|
44
|
+
warning.error_during_auto_pr_creation "č¦åļ¼čŖåØå建 PR ę¶åŗéļ¼{{message}}"
|
|
45
|
+
warning.could_not_convert_pr_to_draft "č¦åļ¼ę ę³å° PR 转ę¢äøŗč稿"
|
|
46
|
+
warning.could_not_check_convert_pr_draft_status "č¦åļ¼ę ę³ę£ę„/č½¬ę¢ PR č稿ē¶ę"
|
|
47
|
+
warning.could_not_post_work_start_comment "č¦åļ¼ę ę³ååøå·„ä½å¼å§čÆč®ŗ"
|
|
48
|
+
warning.could_not_post_work_end_comment "č¦åļ¼ę ę³ååøå·„ä½ē»ęčÆč®ŗ"
|
|
49
|
+
warning.could_not_convert_pr_to_ready "č¦åļ¼ę ę³å° PR 转ę¢äøŗå°±ē»Ŗē¶ę"
|
|
50
|
+
warning.could_not_convert_pr_to_ready_status "č¦åļ¼ę ę³å° PR ē¶ę转ę¢äøŗå°±ē»Ŗ"
|
|
51
|
+
warning.pr_created_but_no_url "č¦åļ¼å·²å建 PR ä½ęŖčæå URL"
|
|
52
|
+
warning.could_not_assign_user "ę ę³åé
ēØę·"
|
|
53
|
+
info.expected_github_url_format "é¢ęę ¼å¼ļ¼https://github.com/owner ę https://github.com/owner/repo"
|
|
54
|
+
info.you_can_use_formats "ęØåÆä»„使ēØä»„äøä»»ęę ¼å¼ļ¼"
|
|
55
|
+
info.format_https_owner "- https://github.com/owner"
|
|
56
|
+
info.format_https_owner_repo "- https://github.com/owner/repo"
|
|
57
|
+
info.format_http_owner "- http://github.com/ownerļ¼å°č½¬ę¢äøŗ httpsļ¼"
|
|
58
|
+
info.format_github_owner "- github.com/ownerļ¼å°ę·»å https://ļ¼"
|
|
59
|
+
info.format_owner "- ownerļ¼å°č½¬ę¢äøŗ https://github.com/ownerļ¼"
|
|
60
|
+
info.format_owner_repo "- owner/repoļ¼å°č½¬ę¢äøŗ https://github.com/owner/repoļ¼"
|
|
61
|
+
info.full_log_file "å®ę“ę„åæęä»¶ļ¼{{path}}"
|
|
62
|
+
info.process_exited_with_code "čæēØéåŗä»£ē ļ¼{{code}}"
|
|
63
|
+
info.current_configuration "å½åé
ē½®ļ¼"
|
|
64
|
+
process.using_repository_fallback "使ēØęä»åŗåéę¹å¼å¤ē {{scope}}ļ¼{{owner}}"
|
|
65
|
+
process.fetching_repository_list "ę£åØč·åä»åŗå蔨ā¦ā¦"
|
|
66
|
+
process.command "å½ä»¤ļ¼{{command}}"
|
|
67
|
+
check.number "ę£ę„ #{{iteration}}ļ¼"
|
|
68
|
+
time.current "å½åę¶é“ļ¼{{time}}"
|
|
69
|
+
telegram.fetching_limits "š ę£åØč·å使ēØéé¢ā¦ā¦"
|
|
70
|
+
telegram.gathering_version "š ę£åØę¶éēę¬äæ”ęÆā¦ā¦"
|
|
71
|
+
telegram.usage_limits_title "š *使ēØéé¢*"
|
|
72
|
+
telegram.version_information_title "š¤ *ēę¬äæ”ęÆ*"
|
|
73
|
+
telegram.limits_only_in_groups "ā /limits å½ä»¤ä»
åØē¾¤čäøęęć请å°ę¬ęŗåØäŗŗå å
„群ē»å¹¶č®¾äøŗē®”ēåć"
|
|
74
|
+
telegram.version_only_in_groups "ā /version å½ä»¤ä»
åØē¾¤čäøęęć请å°ę¬ęŗåØäŗŗå å
„群ē»å¹¶č®¾äøŗē®”ēåć"
|
|
75
|
+
telegram.solve_only_in_groups "ā {{commandDisplay}} å½ä»¤ä»
åØē¾¤čäøęęć请å°ę¬ęŗåØäŗŗå å
„群ē»å¹¶č®¾äøŗē®”ēåć"
|
|
76
|
+
telegram.hive_only_in_groups "ā /hive å½ä»¤ä»
åØē¾¤čäøęęć请å°ę¬ęŗåØäŗŗå å
„群ē»å¹¶č®¾äøŗē®”ēåć"
|
|
77
|
+
telegram.solve_disabled "ā ę¤ęŗåØäŗŗå®ä¾å·²ē¦ēØ solve å½ä»¤ć"
|
|
78
|
+
telegram.hive_disabled "ā ę¤ęŗåØäŗŗå®ä¾å·²ē¦ēØ /hive å½ä»¤ć"
|
|
79
|
+
telegram.no_github_link_in_reply "ā 被åå¤ēę¶ęÆäøęŖę¾å° GitHub issue/PR é¾ę„ć\n\n示ä¾ļ¼ä½æēØ `/solve` åå¤å
å« GitHub issue é¾ę„ēę¶ęÆ\n\nęåø¦é锹ļ¼`/solve --model opus`"
|
|
80
|
+
telegram.invalid_options "ā ę ęé锹ļ¼{{message}}\n\nä½æēØ /help ę„ēåÆēØé锹"
|
|
81
|
+
telegram.invalid_isolation "ā ę ęē --isolation å¼ '{{value}}'ćåæ
é”»ęÆļ¼screenćtmux ę docker"
|
|
82
|
+
telegram.invalid_locked_isolation "ā ę ęēéå® --isolation å¼ '{{value}}'ćåæ
é”»ęÆļ¼screenćtmux ę docker"
|
|
83
|
+
telegram.option_syntax_check "请ę£ę„ęØēé锹čÆę³ć"
|
|
84
|
+
telegram.url_status_active "ā ę¤ URL ē¶ęäøŗ {{statusText}}ć\n\nURLļ¼{{url}}\nē¶ęļ¼{{status}}\n\nš” ä½æēØ /solve_queue ę„ēéåē¶ęć"
|
|
85
|
+
telegram.url_session_running "ā 评 URL å·²ęę£åØčæč”ēå·„ä½ä¼čÆć\n\nURLļ¼{{url}}\nä¼čÆļ¼`{{session}}`\n\nš” ēå¾
å½åä¼čÆå®ęļ¼ęä½æēØ /solve\\_stop åę¶ć"
|
|
86
|
+
telegram.solve_rejected "ā Solve å½ä»¤č¢«ęē»ć\n\n{{infoBlock}}\n\nš« åå ļ¼{{reason}}"
|
|
87
|
+
telegram.language_invalid "ā čÆčØę ęćęÆęēčÆčØļ¼{{supported}}ć\nēØę³ļ¼/language <代ē >"
|
|
88
|
+
telegram.language_set "ā
čÆčØå·²č®¾ē½®äøŗ *{{language}}*ć"
|
|
89
|
+
telegram.language_current "š å½åčÆčØļ¼*{{language}}*ć\nęÆęēčÆčØļ¼{{supported}}ć\nēØę³ļ¼/language <代ē >"
|
|
90
|
+
language.en "č±čÆ"
|
|
91
|
+
language.ru "äæčÆ"
|
|
92
|
+
language.zh "äøę"
|
|
93
|
+
language.hi "å°å°čÆ"
|
package/src/review.mjs
CHANGED
|
@@ -101,6 +101,11 @@ const createReviewYargsConfig = yargsInstance =>
|
|
|
101
101
|
description: 'Execute the AI tool using bunx (experimental, may improve speed and memory usage)',
|
|
102
102
|
default: false,
|
|
103
103
|
})
|
|
104
|
+
.option('language', {
|
|
105
|
+
type: 'string',
|
|
106
|
+
description: 'Language for user-facing output (en, ru, zh, hi). Defaults to detected system locale.',
|
|
107
|
+
choices: ['en', 'ru', 'zh', 'hi'],
|
|
108
|
+
})
|
|
104
109
|
.check(parsed => {
|
|
105
110
|
if (!parsed['pr-url'] && !parsed.prUrl && !parsed._?.[0]) {
|
|
106
111
|
throw new Error('The GitHub pull request URL is required');
|
|
@@ -128,6 +133,10 @@ const prUrl = argv['pr-url'] || argv.prUrl || argv._[0];
|
|
|
128
133
|
// Set global verbose mode for log function
|
|
129
134
|
global.verboseMode = argv.verbose;
|
|
130
135
|
|
|
136
|
+
// Initialize i18n based on --language (or detected system locale)
|
|
137
|
+
const { initI18n } = await import('./i18n.lib.mjs');
|
|
138
|
+
await initI18n(argv.language);
|
|
139
|
+
|
|
131
140
|
// Create permanent log file immediately with timestamp
|
|
132
141
|
const scriptDir = path.dirname(process.argv[1]);
|
|
133
142
|
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
package/src/reviewers-hive.mjs
CHANGED
|
@@ -5,7 +5,7 @@ const { use } = eval(await (await fetch('https://unpkg.com/use-m/use.js')).text(
|
|
|
5
5
|
|
|
6
6
|
// Use command-stream for consistent $ behavior across runtimes
|
|
7
7
|
const { $: __rawDollar$ } = await use('command-stream');
|
|
8
|
-
const { wrapDollarWithGhRetry } = await import('./github-rate-limit.lib.mjs');
|
|
8
|
+
const { wrapDollarWithGhRetry, execGhWithRetry } = await import('./github-rate-limit.lib.mjs');
|
|
9
9
|
const $ = wrapDollarWithGhRetry(__rawDollar$);
|
|
10
10
|
const { getLinoYargsFactory, hideBin, parseCliArgumentsWithLino } = await import('./cli-arguments.lib.mjs');
|
|
11
11
|
const path = (await use('path')).default;
|
|
@@ -378,20 +378,19 @@ async function reviewer(reviewerId) {
|
|
|
378
378
|
// Function to check if a PR already has approvals
|
|
379
379
|
async function hasApprovals(prUrl) {
|
|
380
380
|
try {
|
|
381
|
-
const { exec } = await import('child_process');
|
|
382
|
-
const { promisify } = await import('util');
|
|
383
|
-
const execAsync = promisify(exec);
|
|
384
|
-
|
|
385
381
|
// Extract owner, repo, and PR number from URL
|
|
386
382
|
const urlMatch = prUrl.match(/github\.com\/([^/]+)\/([^/]+)\/pull\/(\d+)/);
|
|
387
383
|
if (!urlMatch) return false;
|
|
388
384
|
|
|
389
385
|
const [, prOwner, prRepo, prNumber] = urlMatch;
|
|
390
386
|
|
|
391
|
-
// Check for reviews using GitHub API
|
|
387
|
+
// Check for reviews using GitHub API (#1756: retry on transient 5xx + rate-limit)
|
|
392
388
|
const cmd = `gh api repos/${prOwner}/${prRepo}/pulls/${prNumber}/reviews --paginate --jq '[.[] | select(.state == "APPROVED")] | length'`;
|
|
393
389
|
|
|
394
|
-
const { stdout } = await
|
|
390
|
+
const { stdout } = await execGhWithRetry(cmd, {
|
|
391
|
+
execOptions: { encoding: 'utf8', env: process.env },
|
|
392
|
+
label: `gh api reviews (PR #${prNumber})`,
|
|
393
|
+
});
|
|
395
394
|
const approvalCount = parseInt(stdout.trim()) || 0;
|
|
396
395
|
|
|
397
396
|
if (approvalCount > 0) {
|
|
@@ -432,25 +431,24 @@ async function fetchPullRequests() {
|
|
|
432
431
|
|
|
433
432
|
await log(` š Command: ${searchCmd}`, { verbose: true });
|
|
434
433
|
|
|
435
|
-
//
|
|
436
|
-
const {
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
434
|
+
// #1756: route through execGhWithRetry to retry transient 5xx + rate-limit
|
|
435
|
+
const { stdout } = await execGhWithRetry(searchCmd, {
|
|
436
|
+
execOptions: { encoding: 'utf8', env: process.env },
|
|
437
|
+
label: 'gh search prs (all PRs)',
|
|
438
|
+
});
|
|
440
439
|
prs = JSON.parse(stdout || '[]');
|
|
441
440
|
} else {
|
|
442
|
-
// Use label filter
|
|
443
|
-
const { exec } = await import('child_process');
|
|
444
|
-
const { promisify } = await import('util');
|
|
445
|
-
const execAsync = promisify(exec);
|
|
446
|
-
|
|
447
441
|
// For repositories, use gh pr list which works better
|
|
448
442
|
if (scope === 'repository') {
|
|
449
443
|
const listCmd = `gh pr list --repo ${owner}/${repo} --state open --label "${argv.reviewLabel}" --limit 100 --json url,title,number,isDraft`;
|
|
450
444
|
await log(` š Command: ${listCmd}`, { verbose: true });
|
|
451
445
|
|
|
452
446
|
try {
|
|
453
|
-
|
|
447
|
+
// #1756: retry on transient 5xx + rate-limit
|
|
448
|
+
const { stdout } = await execGhWithRetry(listCmd, {
|
|
449
|
+
execOptions: { encoding: 'utf8', env: process.env },
|
|
450
|
+
label: 'gh pr list (label filter)',
|
|
451
|
+
});
|
|
454
452
|
prs = JSON.parse(stdout || '[]');
|
|
455
453
|
} catch (listError) {
|
|
456
454
|
await log(` ā ļø List failed: ${listError.message.split('\n')[0]}`, { verbose: true });
|
|
@@ -481,7 +479,11 @@ async function fetchPullRequests() {
|
|
|
481
479
|
await log(` š Command: ${searchCmd}`, { verbose: true });
|
|
482
480
|
|
|
483
481
|
try {
|
|
484
|
-
|
|
482
|
+
// #1756: retry on transient 5xx + rate-limit
|
|
483
|
+
const { stdout } = await execGhWithRetry(searchCmd, {
|
|
484
|
+
execOptions: { encoding: 'utf8', env: process.env },
|
|
485
|
+
label: 'gh search prs (label filter)',
|
|
486
|
+
});
|
|
485
487
|
prs = JSON.parse(stdout || '[]');
|
|
486
488
|
} catch (searchError) {
|
|
487
489
|
await log(` ā ļø Search failed: ${searchError.message.split('\n')[0]}`, { verbose: true });
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { closingIssueNumbersContain, parseClosingIssueNumbers } from './pr-issue-linking.lib.mjs';
|
|
7
7
|
import { buildPushRejectionExplanation, getRemoteBranchDivergenceSnapshot, synchronizeExistingIssueBranchBeforeAutoPrCreation } from './solve.branch-divergence.lib.mjs';
|
|
8
8
|
|
|
9
|
-
import { wrapDollarWithGhRetry as _wrapDollarWithGhRetry } from './github-rate-limit.lib.mjs'; // rate-limit marker (#1726): gh API calls flow through $ wrapped by caller
|
|
9
|
+
import { wrapDollarWithGhRetry as _wrapDollarWithGhRetry, execGhWithRetry } from './github-rate-limit.lib.mjs'; // rate-limit marker (#1726): gh API calls flow through $ wrapped by caller. Issue #1756: execGhWithRetry retries on transient 5xx (504) too.
|
|
10
10
|
|
|
11
11
|
export async function handleAutoPrCreation({ argv, tempDir, branchName, issueNumber, owner, repo, defaultBranch, forkedRepo, isContinueMode, prNumber, log, formatAligned, $, reportError, path, fs }) {
|
|
12
12
|
// Skip auto-PR creation if:
|
|
@@ -903,16 +903,16 @@ Proceed.
|
|
|
903
903
|
await log(` Current user: ${currentUser}`, { verbose: true });
|
|
904
904
|
|
|
905
905
|
// Check if user has push access (is a collaborator or owner)
|
|
906
|
-
// IMPORTANT: We need to completely suppress the JSON error output
|
|
907
|
-
//
|
|
906
|
+
// IMPORTANT: We need to completely suppress the JSON error output.
|
|
907
|
+
// Issue #1756: route through execGhWithRetry so transient 5xx
|
|
908
|
+
// (504) and rate-limit responses are retried instead of being
|
|
909
|
+
// mistaken for "user is not a collaborator".
|
|
908
910
|
try {
|
|
909
|
-
const { exec } = await import('child_process');
|
|
910
|
-
const { promisify } = await import('util');
|
|
911
|
-
const execAsync = promisify(exec);
|
|
912
911
|
// This will throw if user doesn't have access, but won't print anything
|
|
913
|
-
await
|
|
914
|
-
encoding: 'utf8',
|
|
915
|
-
|
|
912
|
+
await execGhWithRetry(`gh api repos/${owner}/${repo}/collaborators/${currentUser} 2>/dev/null`, {
|
|
913
|
+
execOptions: { encoding: 'utf8', env: process.env },
|
|
914
|
+
label: `gh api collaborators (${owner}/${repo}/${currentUser})`,
|
|
915
|
+
log: msg => log(msg, { level: 'warn' }),
|
|
916
916
|
});
|
|
917
917
|
canAssign = true;
|
|
918
918
|
await log(' User has collaborator access', { verbose: true });
|
|
@@ -1093,13 +1093,11 @@ ${prBody}`,
|
|
|
1093
1093
|
);
|
|
1094
1094
|
}
|
|
1095
1095
|
|
|
1096
|
-
//
|
|
1097
|
-
//
|
|
1096
|
+
// Issue #1756: route `gh pr create` through execGhWithRetry so a
|
|
1097
|
+
// single transient 5xx (e.g. `HTTP 504: 504 Gateway Timeout
|
|
1098
|
+
// (https://api.github.com/graphql)`) or rate-limit response retries
|
|
1099
|
+
// instead of aborting the whole solve session.
|
|
1098
1100
|
try {
|
|
1099
|
-
const { exec } = await import('child_process');
|
|
1100
|
-
const { promisify } = await import('util');
|
|
1101
|
-
const execAsync = promisify(exec);
|
|
1102
|
-
|
|
1103
1101
|
// Write PR body to temp file to avoid shell escaping issues
|
|
1104
1102
|
const prBodyFile = `/tmp/pr-body-${Date.now()}.md`;
|
|
1105
1103
|
await fs.writeFile(prBodyFile, prBody);
|
|
@@ -1135,9 +1133,16 @@ ${prBody}`,
|
|
|
1135
1133
|
let prCreateStderr = '';
|
|
1136
1134
|
let assigneeFailed = false;
|
|
1137
1135
|
|
|
1136
|
+
const prCreateExecOptions = { encoding: 'utf8', cwd: tempDir, env: process.env };
|
|
1137
|
+
const prCreateRetryLogger = msg => log(msg, { level: 'warn' });
|
|
1138
|
+
|
|
1138
1139
|
// Try to create PR with assignee first (if specified)
|
|
1139
1140
|
try {
|
|
1140
|
-
const result = await
|
|
1141
|
+
const result = await execGhWithRetry(command, {
|
|
1142
|
+
execOptions: prCreateExecOptions,
|
|
1143
|
+
label: 'gh pr create',
|
|
1144
|
+
log: prCreateRetryLogger,
|
|
1145
|
+
});
|
|
1141
1146
|
output = result.stdout;
|
|
1142
1147
|
prCreateStderr = result.stderr || '';
|
|
1143
1148
|
} catch (firstError) {
|
|
@@ -1165,7 +1170,11 @@ ${prBody}`,
|
|
|
1165
1170
|
}
|
|
1166
1171
|
|
|
1167
1172
|
// Retry without assignee - if this fails, let the error propagate to outer catch
|
|
1168
|
-
const retryResult = await
|
|
1173
|
+
const retryResult = await execGhWithRetry(command, {
|
|
1174
|
+
execOptions: prCreateExecOptions,
|
|
1175
|
+
label: 'gh pr create (no assignee)',
|
|
1176
|
+
log: prCreateRetryLogger,
|
|
1177
|
+
});
|
|
1169
1178
|
output = retryResult.stdout;
|
|
1170
1179
|
prCreateStderr = retryResult.stderr || '';
|
|
1171
1180
|
} else {
|
package/src/solve.config.lib.mjs
CHANGED
|
@@ -552,6 +552,11 @@ export const SOLVE_OPTION_DEFINITIONS = {
|
|
|
552
552
|
description: '[EXPERIMENTAL] Enable live progress monitoring. Accepts "comment" (default, updates a per-session PR comment) or "pr" (updates PR description). Plain --working-session-live-progress means "comment". Works with or without --interactive-mode.',
|
|
553
553
|
default: false,
|
|
554
554
|
},
|
|
555
|
+
language: {
|
|
556
|
+
type: 'string',
|
|
557
|
+
description: 'Language for user-facing output (en, ru, zh, hi). Defaults to detected system locale. Affects terminal status/error messages and bot-generated PR/issue comments. Does not affect AI prompts.',
|
|
558
|
+
choices: ['en', 'ru', 'zh', 'hi'],
|
|
559
|
+
},
|
|
555
560
|
};
|
|
556
561
|
|
|
557
562
|
// Function to create yargs configuration - avoids duplication
|
package/src/solve.mjs
CHANGED
|
@@ -84,6 +84,10 @@ try {
|
|
|
84
84
|
}
|
|
85
85
|
global.verboseMode = argv.verbose;
|
|
86
86
|
|
|
87
|
+
// Initialize i18n based on --language (or detected system locale)
|
|
88
|
+
const { initI18n } = await import('./i18n.lib.mjs');
|
|
89
|
+
await initI18n(argv.language);
|
|
90
|
+
|
|
87
91
|
setupVerboseLogInterceptor(); // Issue #1466: capture [VERBOSE] output in log files
|
|
88
92
|
setupStdioLogInterceptor(); // Issue #1549: capture ALL terminal output in log file
|
|
89
93
|
|
package/src/task.config.lib.mjs
CHANGED
|
@@ -85,6 +85,11 @@ export const createYargsConfig = yargsInstance =>
|
|
|
85
85
|
choices: ['text', 'json'],
|
|
86
86
|
default: 'text',
|
|
87
87
|
})
|
|
88
|
+
.option('language', {
|
|
89
|
+
type: 'string',
|
|
90
|
+
description: 'Language for user-facing output (en, ru, zh, hi). Defaults to detected system locale.',
|
|
91
|
+
choices: ['en', 'ru', 'zh', 'hi'],
|
|
92
|
+
})
|
|
88
93
|
.check(argv => {
|
|
89
94
|
if (!argv['task-input'] && !argv._[0]) {
|
|
90
95
|
throw new Error('Please provide a GitHub issue URL or task description');
|