FEAT - TASKER: показ Codex Agent API по Launcher entitlement

This commit is contained in:
DCCONSTRUCTIONS
2026-05-14 20:49:52 +03:00
parent 2ae353c8d5
commit 97566faba3
13 changed files with 276 additions and 34 deletions
@@ -70,6 +70,13 @@ export const WORKSPACE_SETTINGS: Record<TWorkspaceSettingsTabs, TWorkspaceSettin
access: [EUserWorkspaceRoles.ADMIN],
highlight: (pathname: string, baseUrl: string) => pathname === `${baseUrl}/settings/ai-voice-tasker/`,
},
"codex-agent-api": {
key: "codex-agent-api",
i18n_label: "workspace_settings.settings.codex_agent_api.title",
href: `/settings/codex-agent-api`,
access: [EUserWorkspaceRoles.ADMIN],
highlight: (pathname: string, baseUrl: string) => pathname === `${baseUrl}/settings/codex-agent-api/`,
},
};
export const WORKSPACE_SETTINGS_ACCESS = Object.fromEntries(
@@ -84,6 +91,9 @@ export const GROUPED_WORKSPACE_SETTINGS: Record<WORKSPACE_SETTINGS_CATEGORY, TWo
WORKSPACE_SETTINGS["export"],
WORKSPACE_SETTINGS["storage"],
],
[WORKSPACE_SETTINGS_CATEGORY.FEATURES]: [WORKSPACE_SETTINGS["ai-voice-tasker"]],
[WORKSPACE_SETTINGS_CATEGORY.FEATURES]: [
WORKSPACE_SETTINGS["ai-voice-tasker"],
WORKSPACE_SETTINGS["codex-agent-api"],
],
[WORKSPACE_SETTINGS_CATEGORY.DEVELOPER]: [WORKSPACE_SETTINGS["webhooks"]],
};
@@ -325,11 +325,11 @@ export default {
incoming_description: "Requests routed into this contour from other projects will appear here.",
},
},
list: {
last_updated: "Last updated",
unassigned: "Unassigned",
unread_updates: "New updates available",
},
list: {
last_updated: "Last updated",
unassigned: "Unassigned",
unread_updates: "New updates available",
},
empty_state: {
title: "External contours module is ready for the next stage",
description:
@@ -424,7 +424,8 @@ export default {
},
decline_modal: {
title: "Return the request for rework",
description: "Provide the reason for returning the request. This comment will be sent to the external contour and added to the target issue.",
description:
"Provide the reason for returning the request. This comment will be sent to the external contour and added to the target issue.",
placeholder: "Describe what needs to be revised or clarified",
submit: "Decline and return",
},
@@ -1794,6 +1795,9 @@ export default {
ai_voice_tasker: {
title: "AI / Voice Tasker",
},
codex_agent_api: {
title: "Codex Agent API",
},
api_tokens: {
title: "Personal Access Tokens",
add_token: "Add personal access token",
@@ -1991,7 +1995,8 @@ export default {
},
list_heading: "Estimate list",
archived_heading: "Archived estimates",
archived_description: "These are estimates from earlier project versions that are not currently in use. Read more",
archived_description:
"These are estimates from earlier project versions that are not currently in use. Read more",
no_estimate: "No estimate",
new: "New estimate system",
create: {
@@ -2395,7 +2400,8 @@ export default {
project_page: {
delete_modal: {
title: "Delete page",
content: 'Are you sure you want to delete page "{value}"? The page will be permanently removed and this action cannot be undone.',
content:
'Are you sure you want to delete page "{value}"? The page will be permanently removed and this action cannot be undone.',
success_title: "Page deleted",
success_message: "Page deleted successfully.",
error_title: "Page delete failed",
@@ -3108,24 +3114,24 @@ export default {
project_settings_label: "Project settings",
project_join_modal: {
title: "Join project?",
description: "Are you sure you want to join the project {project}? Click \"Join project\" to continue.",
description: 'Are you sure you want to join the project {project}? Click "Join project" to continue.',
submit: "Join project",
loading: "Joining...",
},
project_leave_modal: {
title: "Leave project",
description:
"Are you sure you want to leave the project \"{project}\"? All work items associated with you will become inaccessible.",
'Are you sure you want to leave the project "{project}"? All work items associated with you will become inaccessible.',
enter_project_name: "Enter the project name {project} to continue:",
project_name_placeholder: "Enter project name",
confirm_instruction: "To confirm, type {keyword} below:",
confirm_placeholder: "Enter \"leave project\"",
confirm_placeholder: 'Enter "leave project"',
confirm_keyword: "leave project",
loading: "Leaving...",
submit: "Leave project",
error_title: "Error!",
error_default: "Something went wrong. Please try again later.",
error_confirm: "Please confirm leaving the project by typing \"leave project\".",
error_confirm: 'Please confirm leaving the project by typing "leave project".',
error_name: "Please enter the project name exactly as shown in the description.",
error_fields: "Please fill all fields.",
},
@@ -3136,7 +3142,7 @@ export default {
enter_project_name: "Enter the project name {project} to continue:",
project_name_placeholder: "Project name",
confirm_instruction: "To confirm, type {keyword} below:",
confirm_placeholder: "Enter \"delete my project\"",
confirm_placeholder: 'Enter "delete my project"',
confirm_keyword: "delete my project",
loading: "Deleting",
submit: "Delete project",
@@ -3151,7 +3157,7 @@ export default {
type_workspace_name: "Type this workspace name to continue.",
final_confirmation: "For final confirmation, type {keyword} below.",
confirm_keyword: "delete my workspace",
input_placeholder: "Enter \"delete my workspace\"",
input_placeholder: 'Enter "delete my workspace"',
},
project_invitation_modal: {
success_title: "Success!",
@@ -482,11 +482,11 @@ export default {
incoming_description: "Здесь будут видны запросы, которые пришли в этот контур из других проектов.",
},
},
list: {
last_updated: "Последнее изменение",
unassigned: "Не назначено",
unread_updates: "Есть новые изменения",
},
list: {
last_updated: "Последнее изменение",
unassigned: "Не назначено",
unread_updates: "Есть новые изменения",
},
empty_state: {
title: "Модуль внешних контуров подготовлен",
description:
@@ -552,7 +552,8 @@ export default {
},
traceability: {
title: "Маршрутизация",
description: "Здесь отображается, из какого контура ушёл запрос, куда он направлен и в каком состоянии находится работа по нему.",
description:
"Здесь отображается, из какого контура ушёл запрос, куда он направлен и в каком состоянии находится работа по нему.",
source_contour: "Исходный внутренний контур",
source_decision: "Решение источника",
source_decision_pending: "Ожидает решения",
@@ -1956,6 +1957,9 @@ export default {
ai_voice_tasker: {
title: "AI / Voice Tasker",
},
codex_agent_api: {
title: "Codex Agent API",
},
api_tokens: {
title: "API-токены",
add_token: "Добавить токен",
@@ -2552,7 +2556,8 @@ export default {
project_page: {
delete_modal: {
title: "Удалить страницу",
content: 'Вы уверены, что хотите удалить страницу "{value}"? Страница будет удалена без возможности восстановления.',
content:
'Вы уверены, что хотите удалить страницу "{value}"? Страница будет удалена без возможности восстановления.',
success_title: "Страница удалена",
success_message: "Страница успешно удалена.",
error_title: "Не удалось удалить страницу",
@@ -3379,8 +3384,7 @@ export default {
},
cycles: {
title: "Двигайтесь циклами",
description:
"Циклы помогают команде двигаться быстрее и ближе всего соответствуют спринтам в agile-подходе.",
description: "Циклы помогают команде двигаться быстрее и ближе всего соответствуют спринтам в agile-подходе.",
},
modules: {
title: "Делите работу на модули",
+2 -1
View File
@@ -17,7 +17,8 @@ export type TWorkspaceSettingsTabs =
| "export"
| "storage"
| "webhooks"
| "ai-voice-tasker";
| "ai-voice-tasker"
| "codex-agent-api";
export type TWorkspaceSettingsItem = {
key: TWorkspaceSettingsTabs;
i18n_label: string;