Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions src/languages/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7800,6 +7800,17 @@ Fügen Sie weitere Ausgabelimits hinzu, um den Cashflow Ihres Unternehmens zu sc
editRuleTitle: 'Regel bearbeiten',
deleteRule: 'Regel löschen',
deleteRuleConfirmation: 'Sind Sie sicher, dass Sie diese Regel löschen möchten?',
unableToRemoveTitle: 'Entfernen nicht möglich',
unableToRemovePrompt: (rulesRoute: string) =>
`Die von RuleBot durchgesetzten <a href="${rulesRoute}">Agentenregeln</a> müssen zuerst aus Ihrem Workspace entfernt werden, bevor Sie diese Agentin/diesen Agenten entfernen können.`,
unableToCloseAccountTitle: 'Konto kann nicht geschlossen werden',
unableToCloseAccountPrompt: 'Die von RuleBot durchgesetzten Agentenregeln müssen zuerst aus Ihrem Workspace entfernt werden, bevor Sie dieses Konto schließen können.',
unableToDeleteAgentTitle: 'Agent kann nicht gelöscht werden',
unableToDeleteAgentPrompt:
'Die von RuleBot durchgesetzten Agentenregeln müssen zuerst aus Ihrem Workspace entfernt werden, bevor Sie diese Agentin/diesen Agenten löschen können.',
unableToChangeRoleTitle: 'Rolle kann nicht geändert werden',
unableToChangeRolePrompt: (rulesRoute: string) =>
`Die von RuleBot durchgesetzten <a href="${rulesRoute}">Agentenregeln</a> müssen zuerst aus Ihrem Workspace entfernt werden, bevor Sie die Rolle dieser Agentin/dieses Agenten ändern können.`,
describeRuleTitle: 'Beschreiben Sie die Regel, der Ihre KI-Agentin/Ihr KI-Agent folgen soll',
describeRuleHeadline: 'Beschreibe deine Regel',
disclaimer: 'KI-Agenten können Fehler machen.',
Expand Down
10 changes: 10 additions & 0 deletions src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8120,6 +8120,16 @@ const translations = {
editRuleTitle: 'Edit rule',
deleteRule: 'Delete rule',
deleteRuleConfirmation: 'Are you sure you want to delete this rule?',
unableToRemoveTitle: 'Unable to remove',
unableToRemovePrompt: (rulesRoute: string) =>
`The <a href="${rulesRoute}">agent rules</a> being enforced by RuleBot need to be removed from your workspace first before you can remove this agent.`,
unableToCloseAccountTitle: 'Unable to close account',
unableToCloseAccountPrompt: 'The agent rules being enforced by RuleBot need to be removed from your workspace first before you can close this account.',
unableToDeleteAgentTitle: 'Unable to delete agent',
unableToDeleteAgentPrompt: 'The agent rules being enforced by RuleBot need to be removed from your workspace first before you can delete this agent.',
unableToChangeRoleTitle: 'Unable to change role',
unableToChangeRolePrompt: (rulesRoute: string) =>
`The <a href="${rulesRoute}">agent rules</a> being enforced by RuleBot need to be removed from your workspace first before you can change this agent's role.`,
describeRuleTitle: 'Describe the rule for your AI agent to follow',
describeRuleHeadline: 'Describe your rule',
describeRuleForConcierge: 'Describe your rule and Concierge will build it',
Expand Down
10 changes: 10 additions & 0 deletions src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7714,6 +7714,16 @@ El plan Controlar empieza en 9 $ por miembro activo al mes.`,
editRuleTitle: 'Editar regla',
deleteRule: 'Eliminar regla',
deleteRuleConfirmation: '¿Seguro que quieres eliminar esta regla?',
unableToRemoveTitle: 'No se puede eliminar',
unableToRemovePrompt: (rulesRoute: string) =>
`Las <a href="${rulesRoute}">reglas de agente</a> que RuleBot está aplicando deben eliminarse primero de tu espacio de trabajo antes de que puedas eliminar este agente.`,
unableToCloseAccountTitle: 'No se puede cerrar la cuenta',
unableToCloseAccountPrompt: 'Las reglas de agente que RuleBot está aplicando deben eliminarse primero de tu espacio de trabajo antes de que puedas cerrar esta cuenta.',
unableToDeleteAgentTitle: 'No se puede eliminar el agente',
unableToDeleteAgentPrompt: 'Las reglas de agente que RuleBot está aplicando deben eliminarse primero de tu espacio de trabajo antes de que puedas eliminar este agente.',
unableToChangeRoleTitle: 'No se puede cambiar el rol',
unableToChangeRolePrompt: (rulesRoute: string) =>
`Las <a href="${rulesRoute}">reglas de agente</a> que RuleBot está aplicando deben eliminarse primero de tu espacio de trabajo antes de que puedas cambiar el rol de este agente.`,
disclaimer: 'Los agentes de IA pueden cometer errores.',
agentCreatedTitle: '¡RuleBot se ha añadido a tu espacio de trabajo!',
agentCreatedDescription: (agentsRoute: string) =>
Expand Down
11 changes: 11 additions & 0 deletions src/languages/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7828,6 +7828,17 @@ Ajoutez davantage de règles de dépenses pour protéger la trésorerie de l’e
editRuleTitle: 'Modifier la règle',
deleteRule: 'Supprimer la règle',
deleteRuleConfirmation: 'Voulez-vous vraiment supprimer cette règle ?',
unableToRemoveTitle: 'Suppression impossible',
unableToRemovePrompt: (rulesRoute: string) =>
`Les <a href="${rulesRoute}">règles d’agent</a> appliquées par RuleBot doivent d’abord être supprimées de votre espace de travail avant que vous puissiez retirer cet agent.`,
unableToCloseAccountTitle: 'Impossible de fermer le compte',
unableToCloseAccountPrompt: 'Les règles d’agent appliquées par RuleBot doivent d’abord être supprimées de votre espace de travail avant que vous puissiez fermer ce compte.',
unableToDeleteAgentTitle: 'Impossible de supprimer l’agent',
unableToDeleteAgentPrompt:
'Les règles d’agent appliquées par RuleBot doivent d’abord être supprimées de votre espace de travail avant que vous puissiez supprimer cet agent.',
unableToChangeRoleTitle: 'Impossible de changer le rôle',
unableToChangeRolePrompt: (rulesRoute: string) =>
`Les <a href="${rulesRoute}">règles d’agent</a> appliquées par RuleBot doivent d’abord être supprimées de votre espace de travail avant que vous puissiez changer le rôle de cet agent.`,
describeRuleTitle: 'Décrivez la règle que votre agent IA doit suivre',
describeRuleHeadline: 'Décrivez votre règle',
disclaimer: 'Les agents IA peuvent faire des erreurs.',
Expand Down
10 changes: 10 additions & 0 deletions src/languages/it.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7778,6 +7778,16 @@ Aggiungi altre regole di spesa per proteggere il flusso di cassa aziendale.`,
editRuleTitle: 'Modifica regola',
deleteRule: 'Elimina regola',
deleteRuleConfirmation: 'Sei sicuro di voler eliminare questa regola?',
unableToRemoveTitle: 'Impossibile rimuovere',
unableToRemovePrompt: (rulesRoute: string) =>
`Le <a href="${rulesRoute}">regole agente</a> applicate da RuleBot devono essere rimosse dal tuo spazio di lavoro prima di poter rimuovere questo agente.`,
unableToCloseAccountTitle: 'Impossibile chiudere l’account',
unableToCloseAccountPrompt: 'Le regole agente applicate da RuleBot devono essere rimosse dal tuo spazio di lavoro prima di poter chiudere questo account.',
unableToDeleteAgentTitle: 'Impossibile eliminare l’agente',
unableToDeleteAgentPrompt: 'Le regole agente applicate da RuleBot devono essere rimosse dal tuo spazio di lavoro prima di poter eliminare questo agente.',
unableToChangeRoleTitle: 'Impossibile modificare il ruolo',
unableToChangeRolePrompt: (rulesRoute: string) =>
`Le <a href="${rulesRoute}">regole agente</a> applicate da RuleBot devono essere rimosse dal tuo spazio di lavoro prima di poter modificare il ruolo di questo agente.`,
describeRuleTitle: 'Descrivi la regola che il tuo agente AI deve seguire',
describeRuleHeadline: 'Descrivi la tua regola',
disclaimer: 'Gli agenti IA possono commettere errori.',
Expand Down
10 changes: 10 additions & 0 deletions src/languages/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7685,6 +7685,16 @@ ${reportName}`,
editRuleTitle: 'ルールを編集',
deleteRule: 'ルールを削除',
deleteRuleConfirmation: 'このルールを削除してもよろしいですか?',
unableToRemoveTitle: '削除できません',
unableToRemovePrompt: (rulesRoute: string) =>
`このエージェントを削除する前に、RuleBot が適用している<a href="${rulesRoute}">エージェントルール</a>をワークスペースから削除する必要があります。`,
unableToCloseAccountTitle: 'アカウントを閉鎖できません',
unableToCloseAccountPrompt: 'このアカウントを閉鎖する前に、RuleBot が適用しているエージェントルールをワークスペースから削除する必要があります。',
unableToDeleteAgentTitle: 'エージェントを削除できません',
unableToDeleteAgentPrompt: 'このエージェントを削除する前に、RuleBot が適用しているエージェントルールをワークスペースから削除する必要があります。',
unableToChangeRoleTitle: 'ロールを変更できません',
unableToChangeRolePrompt: (rulesRoute: string) =>
`このエージェントのロールを変更する前に、RuleBot が適用している<a href="${rulesRoute}">エージェントルール</a>をワークスペースから削除する必要があります。`,
describeRuleTitle: 'AI エージェントに従わせるルールを記述してください',
describeRuleHeadline: 'ルールを説明する',
disclaimer: 'AI エージェントは間違える場合があります。',
Expand Down
10 changes: 10 additions & 0 deletions src/languages/nl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7759,6 +7759,16 @@ er bestedingsregels toe om de kasstroom van het bedrijf te beschermen.`,
editRuleTitle: 'Regel bewerken',
deleteRule: 'Regel verwijderen',
deleteRuleConfirmation: 'Weet je zeker dat je deze regel wilt verwijderen?',
unableToRemoveTitle: 'Verwijderen niet mogelijk',
unableToRemovePrompt: (rulesRoute: string) =>
`De <a href="${rulesRoute}">agentregels</a> die door RuleBot worden afgedwongen, moeten eerst uit je werkruimte worden verwijderd voordat je deze agent kunt verwijderen.`,
unableToCloseAccountTitle: 'Account kan niet worden gesloten',
unableToCloseAccountPrompt: 'De agentregels die door RuleBot worden afgedwongen, moeten eerst uit je werkruimte worden verwijderd voordat je dit account kunt sluiten.',
unableToDeleteAgentTitle: 'Agent kan niet worden verwijderd',
unableToDeleteAgentPrompt: 'De agentregels die door RuleBot worden afgedwongen, moeten eerst uit je werkruimte worden verwijderd voordat je deze agent kunt verwijderen.',
unableToChangeRoleTitle: 'Rol kan niet worden gewijzigd',
unableToChangeRolePrompt: (rulesRoute: string) =>
`De <a href="${rulesRoute}">agentregels</a> die door RuleBot worden afgedwongen, moeten eerst uit je werkruimte worden verwijderd voordat je de rol van deze agent kunt wijzigen.`,
describeRuleTitle: 'Beschrijf de regel die je AI-agent moet volgen',
describeRuleHeadline: 'Beschrijf je regel',
disclaimer: 'AI-agents kunnen fouten maken.',
Expand Down
10 changes: 10 additions & 0 deletions src/languages/pl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7739,6 +7739,16 @@ Dodaj więcej zasad wydatków, żeby chronić płynność finansową firmy.`,
editRuleTitle: 'Edytuj regułę',
deleteRule: 'Usuń regułę',
deleteRuleConfirmation: 'Na pewno chcesz usunąć tę regułę?',
unableToRemoveTitle: 'Nie można usunąć',
unableToRemovePrompt: (rulesRoute: string) =>
`<a href="${rulesRoute}">Zasady agenta</a> egzekwowane przez RuleBot muszą najpierw zostać usunięte z przestrzeni roboczej, zanim będzie można usunąć tego agenta.`,
unableToCloseAccountTitle: 'Nie można zamknąć konta',
unableToCloseAccountPrompt: 'Zasady agenta egzekwowane przez RuleBot muszą najpierw zostać usunięte z przestrzeni roboczej, zanim będzie można zamknąć to konto.',
unableToDeleteAgentTitle: 'Nie można usunąć agenta',
unableToDeleteAgentPrompt: 'Zasady agenta egzekwowane przez RuleBot muszą najpierw zostać usunięte z przestrzeni roboczej, zanim będzie można usunąć tego agenta.',
unableToChangeRoleTitle: 'Nie można zmienić roli',
unableToChangeRolePrompt: (rulesRoute: string) =>
`<a href="${rulesRoute}">Zasady agenta</a> egzekwowane przez RuleBot muszą najpierw zostać usunięte z przestrzeni roboczej, zanim będzie można zmienić rolę tego agenta.`,
describeRuleTitle: 'Opisz zasadę, której ma przestrzegać twój agent AI',
describeRuleHeadline: 'Opisz swoją regułę',
disclaimer: 'Agenci AI mogą popełniać błędy.',
Expand Down
10 changes: 10 additions & 0 deletions src/languages/pt-BR.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7751,6 +7751,16 @@ Adicione mais regras de gasto para proteger o fluxo de caixa da empresa.`,
editRuleTitle: 'Editar regra',
deleteRule: 'Excluir regra',
deleteRuleConfirmation: 'Tem certeza de que quer excluir esta regra?',
unableToRemoveTitle: 'Não é possível remover',
unableToRemovePrompt: (rulesRoute: string) =>
`As <a href="${rulesRoute}">regras de agente</a> aplicadas pelo RuleBot precisam ser removidas do seu espaço de trabalho antes que você possa remover este agente.`,
unableToCloseAccountTitle: 'Não é possível encerrar a conta',
unableToCloseAccountPrompt: 'As regras de agente aplicadas pelo RuleBot precisam ser removidas do seu espaço de trabalho antes que você possa encerrar esta conta.',
unableToDeleteAgentTitle: 'Não é possível excluir o agente',
unableToDeleteAgentPrompt: 'As regras de agente aplicadas pelo RuleBot precisam ser removidas do seu espaço de trabalho antes que você possa excluir este agente.',
unableToChangeRoleTitle: 'Não é possível alterar a função',
unableToChangeRolePrompt: (rulesRoute: string) =>
`As <a href="${rulesRoute}">regras de agente</a> aplicadas pelo RuleBot precisam ser removidas do seu espaço de trabalho antes que você possa alterar a função deste agente.`,
describeRuleTitle: 'Descreva a regra que seu agente de IA deve seguir',
describeRuleHeadline: 'Descreva sua regra',
disclaimer: 'Os agentes de IA podem cometer erros.',
Expand Down
8 changes: 8 additions & 0 deletions src/languages/zh-hans.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7513,6 +7513,14 @@ ${reportName}`,
editRuleTitle: '编辑规则',
deleteRule: '删除规则',
deleteRuleConfirmation: '确定要删除此规则吗?',
unableToRemoveTitle: '无法移除',
unableToRemovePrompt: (rulesRoute: string) => `在移除此代理之前,需要先从工作区中移除由 RuleBot 执行的<a href="${rulesRoute}">代理规则</a>。`,
unableToCloseAccountTitle: '无法关闭账户',
unableToCloseAccountPrompt: '在关闭此账户之前,需要先从工作区中移除由 RuleBot 执行的代理规则。',
unableToDeleteAgentTitle: '无法删除代理',
unableToDeleteAgentPrompt: '在删除此代理之前,需要先从工作区中移除由 RuleBot 执行的代理规则。',
unableToChangeRoleTitle: '无法更改角色',
unableToChangeRolePrompt: (rulesRoute: string) => `在更改此代理的角色之前,需要先从工作区中移除由 RuleBot 执行的<a href="${rulesRoute}">代理规则</a>。`,
describeRuleTitle: '描述你的 AI 代理需要遵循的规则',
describeRuleHeadline: '描述您的规则',
disclaimer: 'AI 智能体可能会犯错。',
Expand Down
19 changes: 18 additions & 1 deletion src/libs/AgentRulesUtils.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import CONST from '@src/CONST';
import type {Policy} from '@src/types/onyx';
import type {AgentRule} from '@src/types/onyx/Policy';

import type {OnyxCollection, OnyxEntry} from 'react-native-onyx';

type AgentRulesCollection = Record<string, AgentRule> | undefined;

type AgentRuleWithID = AgentRule & {
Expand Down Expand Up @@ -32,5 +35,19 @@ function getVisibleAgentRules(agentRules: AgentRulesCollection, isOffline: boole
return getSortedAgentRules(agentRules).filter((rule) => rule.pendingAction !== CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE);
}

export {getAgentRuleDisplayTitle, getVisibleAgentRules};
function hasAgentRules(policy: OnyxEntry<Policy>): boolean {
return Object.values(policy?.rules?.agentRules ?? {}).some((rule) => !!rule && rule.pendingAction !== CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE);
}

/** Whether the given account is the RuleBot agent enforcing Agent rules on the policy. Such an account can't be removed until its rules are deleted. */
function isRuleBotEnforcingRules(accountID: number | undefined, policy: OnyxEntry<Policy>): boolean {
return !!accountID && policy?.ruleBotAccountID === accountID && hasAgentRules(policy);
}

/** Whether the given account is the RuleBot agent enforcing Agent rules on any of the given policies. Such an account can't be deleted until its rules are removed. */
function isRuleBotEnforcingRulesOnAnyPolicy(accountID: number | undefined, policies: OnyxCollection<Policy>): boolean {
return !!accountID && Object.values(policies ?? {}).some((policy) => isRuleBotEnforcingRules(accountID, policy));
}

export {getAgentRuleDisplayTitle, getVisibleAgentRules, isRuleBotEnforcingRules, isRuleBotEnforcingRulesOnAnyPolicy};
export type {AgentRuleWithID};
11 changes: 11 additions & 0 deletions src/pages/settings/Agents/AgentsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import useSwitchToDelegator from '@hooks/useSwitchToDelegator';
import useThemeStyles from '@hooks/useThemeStyles';

import {turnOffMobileSelectionMode} from '@libs/actions/MobileSelectionMode';
import {isRuleBotEnforcingRulesOnAnyPolicy} from '@libs/AgentRulesUtils';
import {getLatestError} from '@libs/ErrorUtils';
import Navigation from '@libs/Navigation/Navigation';

Expand Down Expand Up @@ -146,6 +147,16 @@ function AgentsPage() {
};

const askForConfirmationToDelete = async () => {
const isRuleBotSelected = selectedAgentKeys.some((accountIDString) => isRuleBotEnforcingRulesOnAnyPolicy(Number(accountIDString), allPolicies));
if (isRuleBotSelected) {
showConfirmModal({
shouldShowCancelButton: false,
title: translate('workspace.rules.agentRules.unableToDeleteAgentTitle'),
prompt: translate('workspace.rules.agentRules.unableToDeleteAgentPrompt'),
confirmText: translate('common.buttonConfirm'),
});
return;
}
const result = await showConfirmModal({
title: translate('agentsPage.deleteAgentsTitle', {count: selectedAgentKeys.length}),
prompt: translate('agentsPage.deleteAgentsMessage', {count: selectedAgentKeys.length}),
Expand Down
Loading
Loading