51 examples
Inconsistent naming
Inconsistent naming causes confusion and maintainability issues.
[ FAQ1 ]
What is inconsistent naming?
Inconsistent naming occurs when developers use differing or unclear naming styles for code elements across a project, causing confusion and reducing readability. Examples include mixing
camelCase
, snake_case
, or differing abbreviations for similar entities, making it challenging for team members to understand or maintain code efficiently. Such inconsistencies reduce clarity, increase cognitive load, and complicate debugging and collaboration.[ FAQ2 ]
How to fix inconsistent naming
To fix inconsistent naming, adopt and consistently follow a clear, standardized naming convention throughout your codebase, such as
camelCase
for variables in JavaScript or snake_case
in Python. Utilize automated tools like linters or static analyzers to identify naming inconsistencies and enforce uniformity. Refactor existing code gradually to align naming patterns clearly, ensuring comprehensive code reviews to maintain standards. Regularly document and communicate agreed-upon naming conventions among the team, promoting consistency and clarity in your project's development process.
diff block
+import type { DataMetadata, IDataResult } from '@/api/asset_interfaces';
+
+export type BusterMetricData = {
+ data: IDataResult | null;
+ dataFromRerun?: IDataResult;
+ data_metadata: DataMetadata;
greptile
inconsistent naming convention - using snake_case 'data_metadata' while other fields use camelCase
diff block
+import { createFileRoute } from "@tanstack/react-router";
+import { TopNav } from "@/components/TopNav";
+import { FullPageMain } from "@/components/FullPageMain";
+import { MarketingHeader } from "@/components/MarketingHeader";
+import { Download, Monitor, Apple, Terminal } from "lucide-react";
+import packageJson from "../../package.json";
+
+// Get version from package.json
+const APP_VERSION = packageJson.version;
+const CURRENT_VERSION = `v${APP_VERSION}`;
+const BASE_DOWNLOAD_URL = `https://github.com/OpenSecretCloud/Maple/releases/download/${CURRENT_VERSION}`;
+
+function DownloadPage() {
+ return (
+ <>
+ <TopNav />
+ <FullPageMain>
+ <MarketingHeader
+ title={
+ <span className="text-6xl font-light mb-0">
+ <span className="text-[hsl(var(--purple))]">Download</span> Maple
+ </span>
+ }
+ subtitle={
+ <div className="space-y-2">
+ <p>Available for macOS and Ubuntu Linux</p>
+ <p>Access your private AI chat with end-to-end encryption</p>
+ </div>
+ }
+ />
+
+ {/* Desktop Downloads Section */}
+ <section className="w-full max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
+ <h2 className="text-3xl font-light mb-8 flex items-center gap-3">
+ <Monitor className="w-7 h-7" /> Desktop Apps
+ <span className="ml-3 text-xl text-[hsl(var(--marketing-text-muted))]">
+ A faster, more focused experience for your private AI chat
+ </span>
+ </h2>
+
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-6 max-w-3xl mx-auto">
+ <div className="flex flex-col border border-[hsl(var(--marketing-card-border))] bg-[hsl(var(--marketing-card))]/75 text-foreground p-6 rounded-lg hover:border-foreground/30 transition-all duration-300">
+ <div className="p-3 rounded-full bg-[hsl(var(--marketing-card))]/50 border border-[hsl(var(--purple))]/30 w-fit mb-4">
+ <Apple className="w-6 h-6 text-[hsl(var(--purple))]" />
+ </div>
+ <h3 className="text-xl font-medium mb-2">macOS</h3>
+ <p className="text-[hsl(var(--marketing-text-muted))] mb-6 flex-grow">
+ For Apple Silicon and Intel-based Macs running macOS 11.0 or later.
+ </p>
+ <div className="flex flex-col gap-3">
+ <a
+ href={`${BASE_DOWNLOAD_URL}/Maple_${APP_VERSION}_universal.dmg`}
+ className="py-3 rounded-lg text-center font-medium transition-all duration-300
+ dark:bg-white/90 dark:text-black dark:hover:bg-[hsl(var(--purple))]/80 dark:hover:text-[hsl(var(--foreground))] dark:active:bg-white/80
+ bg-background text-foreground hover:bg-[hsl(var(--purple))] hover:text-[hsl(var(--foreground))] active:bg-background/80
+ border border-[hsl(var(--purple))]/30 hover:border-[hsl(var(--purple))]
+ shadow-[0_0_15px_rgba(var(--purple-rgb),0.2)] hover:shadow-[0_0_25px_rgba(var(--purple-rgb),0.3)]"
+ >
+ Download for macOS
+ </a>
+ <div className="text-center text-xs text-[hsl(var(--marketing-text-muted))]">
+ Universal for both Apple Silicon and Intel
+ </div>
+ </div>
+ </div>
+
+ <div className="flex flex-col border border-[hsl(var(--marketing-card-border))] bg-[hsl(var(--marketing-card))]/75 text-foreground p-6 rounded-lg hover:border-foreground/30 transition-all duration-300">
+ <div className="p-3 rounded-full bg-[hsl(var(--marketing-card))]/50 border border-[hsl(var(--purple))]/30 w-fit mb-4">
+ <Terminal className="w-6 h-6 text-[hsl(var(--purple))]" />
+ </div>
+ <h3 className="text-xl font-medium mb-2">Linux</h3>
+ <p className="text-[hsl(var(--marketing-text-muted))] mb-6 flex-grow">
+ For Ubuntu 24.04+ only. Other Linux distributions are not officially supported.
+ </p>
+ <div className="flex flex-col gap-3">
+ <a
+ href={`${BASE_DOWNLOAD_URL}/Maple_${APP_VERSION}_amd64.AppImage`}
+ className="py-3 rounded-lg text-center font-medium transition-all duration-300
+ dark:bg-white/90 dark:text-black dark:hover:bg-[hsl(var(--purple))]/80 dark:hover:text-[hsl(var(--foreground))] dark:active:bg-white/80
+ bg-background text-foreground hover:bg-[hsl(var(--purple))] hover:text-[hsl(var(--foreground))] active:bg-background/80
+ border border-[hsl(var(--purple))]/30 hover:border-[hsl(var(--purple))]
+ shadow-[0_0_15px_rgba(var(--purple-rgb),0.2)] hover:shadow-[0_0_25px_rgba(var(--purple-rgb),0.3)]"
+ >
+ Download AppImage
+ </a>
+ <div className="grid grid-cols-2 gap-2">
+ <a
+ href={`${BASE_DOWNLOAD_URL}/Maple_${APP_VERSION}_amd64.deb`}
+ className="py-2 rounded-lg text-center text-sm font-medium transition-all duration-300
+ dark:bg-white/90 dark:text-black dark:hover:bg-[hsl(var(--purple))]/80 dark:hover:text-[hsl(var(--foreground))] dark:active:bg-white/80
+ bg-background text-foreground hover:bg-[hsl(var(--purple))] hover:text-[hsl(var(--foreground))] active:bg-background/80
+ border border-[hsl(var(--purple))]/30 hover:border-[hsl(var(--purple))]"
+ >
+ .deb
+ </a>
+ <a
+ href={`${BASE_DOWNLOAD_URL}/Maple-${APP_VERSION}-1.x86_64.rpm`}
greptile
logic: Inconsistent naming pattern between Linux packages. The RPM uses 'Maple-${APP_VERSION}-1.x86_64.rpm' while other packages use 'Maple_${APP_VERSION}_' format.
diff block
+export interface PopulationPyramidDataPoint {
+ ageGroup: string;
+ percentage: number;
+}
+
+export interface YearlyPopulationGraphDataPoint {
+ year: number;
+ population: number;
+}
+
+export interface MarketResearchData {
+ // Population growth
+ pop_end: number;
+ pop_start: number;
+ percent_population_change: number | null;
+
+ // Gender distribution
+ male_percent_end: number;
+ female_percent_end: number;
+ male_moe_percent_end: number;
+ female_moe_percent_end: number;
+
+ // Age demographics
+ median_age_end: number;
+ median_age_start: number;
+ median_age_change: number;
+
+ // Youth vs Aging
+ youth_percent_2023: number;
+ aging_percent_2023: number;
+
+ // Prime working age
+ working_age_percent_2023: number;
+
+ // Age dependency ratio
+ age_dependency_ratio_2023: number;
+
+ // Population Change by Age Bracket
+ pop_change_25_to_34_percent: number | null;
+
+ // Generations
+ boomer_percent_2023: number;
+ millennial_percent_2023: number;
+}
+
+export interface YearlyPopulationData {
+ female_population: number;
+ female_population_moe: number;
+ female_population_moe_percent: number;
+ female_population_percent: number;
+ id: number;
+ male_population: number;
+ male_population_moe: number;
+ male_population_moe_percent: number;
+ male_population_percent: number;
+ median_age: number;
+ median_age_moe: number;
+ name: string;
+ population_5_to_9: number;
+ population_5_to_9_percent: number;
+ population_10_to_14: number;
+ population_10_to_14_percent: number;
+ population_15_to_19: number;
+ population_15_to_19_percent: number;
+ population_20_to_24: number;
+ population_20_to_24_percent: number;
+ population_25_to_34: number;
+ population_25_to_34_percent: number;
+ population_35_to_44: number;
+ population_35_to_44_percent: number;
+ population_45_to_54: number;
+ population_45_to_54_percent: number;
+ population_55_to_59: number;
+ population_55_to_59_percent: number;
+ population_60_to_64: number;
+ population_60_to_64_percent: number;
+ population_65_to_74: number;
+ population_65_to_74_percent: number;
+ population_75_to_84: number;
+ population_75_to_84_percent: number;
+ population_85_older: number;
+ population_85_older_percent: number;
greptile
style: Inconsistent naming: population_85_older vs other age brackets that use numbers
suggested fix
+ population_85_plus: number;
+ population_85_plus_percent: number;
diff block
+export interface PopulationPyramidDataPoint {
+ ageGroup: string;
+ percentage: number;
+}
+
+export interface YearlyPopulationGraphDataPoint {
+ year: number;
+ population: number;
+}
+
+export interface MarketResearchData {
+ // Population growth
+ pop_end: number;
+ pop_start: number;
greptile
style: Inconsistent naming convention: 'pop_end' and 'pop_start' use snake_case while other fields use camelCase
diff block
import { propertyDefinitionsTableLogic } from '../properties/propertyDefinitionsTableLogic'
import type { definitionLogicType } from './definitionLogicType'
+export interface ExtendedPropertyDefinition extends PropertyDefinition {
+ hidden?: boolean
+}
+
+export type PropertyDefinitionStatus = 'verified' | 'standard' | 'hidden'
+
export const createNewDefinition = (isEvent: boolean): Definition => ({
id: 'new',
name: `New ${isEvent ? 'Event' : 'Event property'}`,
greptile
logic: Inconsistent naming - uses 'Event property' when isEvent is false, but this should be just 'Property' to match the UI labels shown elsewhere
diff block
'storybook/internal/components': COMPONENTS,
'@storybook/components': COMPONENTS,
- '@storybook/core/components': COMPONENTS,
'storybook/internal/manager-api': MANAGER_API,
'@storybook/manager-api': MANAGER_API,
- '@storybook/core/manager-api': MANAGER_API,
'storybook/internal/router': ROUTER,
'@storybook/router': ROUTER,
- '@storybook/core/router': ROUTER,
'storybook/internal/theming': THEMING,
'@storybook/theming': THEMING,
- '@storybook/core/theming': THEMING,
'storybook/internal/theming/create': THEMINGCREATE,
'@storybook/theming/create': THEMINGCREATE,
- '@storybook/core/theming/create': THEMINGCREATE,
'storybook/internal/channels': CHANNELS,
'@storybook/channels': CHANNELS,
- '@storybook/core/channels': CHANNELS,
'storybook/internal/core-errors': EVENTS,
'@storybook/core-events': EVENTS,
- '@storybook/core/core-events': EVENTS,
+ 'storybook/internal/core-events': EVENTS,
greptile
logic: inconsistent naming - 'core-errors' vs 'core-events' for same EVENTS module
diff block
+/**
+ * Copyright 2025 Clidey, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import { PayloadAction, createSlice } from '@reduxjs/toolkit';
+import { AiChatMessage } from '../generated/graphql';
+
+
+type IChatMessage = AiChatMessage & {
+ isUserInput?: boolean;
+};
+
+type IChatState = {
+ chats: IChatMessage[];
+}
+
+const initialState: IChatState = {
+ chats: [],
+}
+
+export const houdiniSlice = createSlice({
+ name: 'chats',
+ initialState,
+ reducers: {
+ addChatMessage: (state, action: PayloadAction<IChatMessage>) => {
+ state.chats.push(action.payload);
+ },
+ clear: (state) => {
+ state.chats = [];
+ },
+ },
+});
+
+export const HoudiniActions = houdiniSlice.actions;
+export const houdiniReducers = houdiniSlice.reducer;
greptile
style: Inconsistent naming - exports use 'Houdini' prefix but handle chat functionality. Should be ChatActions and chatReducer to match standard Redux naming conventions.
diff block
export const DOCUMENT_SIDEBAR_WIDTH_COOKIE_NAME = "documentSidebarWidth";
export const SIDEBAR_TOGGLED_COOKIE_NAME = "sidebarIsToggled";
export const PRO_SEARCH_TOGGLED_COOKIE_NAME = "proSearchIsToggled";
+export const SUPPRESS_EXPIRATION_WARNING_COOKIE_NAME =
+ "suppress_expiration_warning";
greptile
style: Inconsistent naming convention - use camelCase to match other constants (suppressExpirationWarning)
diff block
+"""Pydantic models for municipal code query results."""
+
+from typing import Dict, Any, List, Optional
+from pydantic import BaseModel, Field
+
+# Source-based models
+class Chunk(BaseModel):
+ id: str = Field(description="Unique identifier for the chunk")
+ sectionNumber: str = Field(description="Section number of the chunk")
+ sectionName: str = Field(description="Section name of the chunk")
+ chapterNumber: str = Field(description="Chapter number of the chunk")
greptile
style: Inconsistent naming - sectionNumber, sectionName, chapterNumber use camelCase while Python convention is snake_case
diff block
return { value: value.toFixed(2), unit: undefined }
}
-type Color = 'muted' | 'success' | 'warning' | 'danger'
-export const getThresholdColor = (value: number | undefined, metric: WebVitalsMetric): Color => {
+export const getThresholdColor = (value: number | undefined, metric: WebVitalsMetric): string => {
const threshold = WEB_VITALS_THRESHOLDS[metric]
if (value === undefined) {
- return 'muted'
+ return 'var(--color-gray-500)'
}
if (value <= threshold.good) {
- return 'success'
+ return WEB_VITALS_COLORS.good
}
if (value <= threshold.poor) {
- return 'warning'
+ return WEB_VITALS_COLORS.needs_improvements
greptile
logic: inconsistent naming - using 'needs_improvements' here but 'needs_improvement' (singular) in GRADE_PER_BAND
diff block
hasClient: false,
hasServer: false,
metadata: {
- displayName: 'Acme Oauth2',
+ displayName: 'Acme Oauth Connector',
greptile
style: Inconsistent naming - 'Acme Oauth Connector' still contains 'Connector' suffix while other connectors have been simplified
diff block
-/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"Qyrd7v\":[\"(Система) Просмотреть поля\"],\"9Y3fTB\":[\"(Система) Просмотреть группы фильтров\"],\"TB2jLV\":[\"(Система) Просмотреть фильтры\"],\"Y7M7Ro\":[\"(Система) Просмотреть группы\"],\"9vliLw\":[\"(Система) Просмотреть сортировки\"],\"5B59WE\":[\"(Система) Представления\"],\"kZR6+h\":[\"Компания\"],\"+aeifv\":[\"Подключенный аккаунт\"],\"HCoswz\":[\"Избранное, к которому можно получить доступ из левого меню\"],\"6w8bHl\":[\"Папка избранного\"],\"sSGYmf\":[\"Группа связанных сообщений (например, цепочка электронных писем, чат)\"],\"vZj1Xc\":[\"Сообщение, отправленное или полученное через канал связи (электронная почта, чат и т. д.)\"],\"bufuBA\":[\"Заметка\"],\"6kUkZW\":[\"Цель заметки\"],\"Io42ej\":[\"Человек\"],\"mkFXEH\":[\"Задача\"],\"hk2NzW\":[\"Цель задачи\"],\"HTSJFW\":[\"Вебхук\"],\"ZIN9Ga\":[\"Рабочий процесс\"],\"juBVjt\":[\"Прослушиватель событий рабочего процесса\"],\"1+xDbI\":[\"Выполнение рабочего процесса\"],\"N0g7rp\":[\"Версия рабочего процесса\"],\"HpZ/I5\":[\"Член рабочего пространства\"],\"GDKKxT\":[\"Токен доступа\"],\"pd81Qb\":[\"Владелец аккаунта\"],\"loqL/f\":[\"Владелец аккаунта для компаний\"],\"HZosRi\":[\"Владелец аккаунта для компаний\"],\"48AxkT\":[\"Action needed to prevent workspace deletion\"],\"j0DfGR\":[\"Action Needed to Reset Password\"],\"Du6bPw\":[\"Адрес\"],\"JiOJxf\":[\"Адрес (устарело) \"],\"Knl3c9\":[\"Адрес компании\"],\"zJhwjv\":[\"Адрес компании - устарел в пользу нового поля адреса\"],\"ZfVqbP\":[\"Агрегирующая операция\"],\"W58PBh\":[\"Агрегированное / отфильтрованное событие, отображаемое на временной шкале\"],\"hehnjM\":[\"Сумма\"],\"qeHcQj\":[\"API ключ\"],\"MjyFvC\":[\"Вложение\"],\"+bL++X\":[\"Журнал аудита действий, выполненных в системе\"],\"muVHgL\":[\"Событие, связанное с поведением пользователя\"],\"bZq8rL\":[\"Возможность\"],\"JKWicb\":[\"Ежегодный повторяющийся доход: Фактический или предполагаемый годовой доход компании\"],\"yRnk5W\":[\"API ключ\"],\"FfSJ1Y\":[\"API ключи\"],\"puNs/l\":[\"Дата истечения срока действия ApiKey\"],\"YHiNxr\":[\"Имя ApiKey\"],\"xrndTt\":[\"Дата отзыва ApiKey\"],\"3EiOLz\":[\"Годовой повторяющийся доход\"],\"Ek7xGj\":[\"Назначенные задачи\"],\"ojKCLU\":[\"Исполнитель\"],\"Max2GU\":[\"Идентификатор связанного пользователя\"],\"UY1vmE\":[\"Вложение\"],\"JAefBH\":[\"Автор вложения\"],\"bIaesZ\":[\"Компания вложения\"],\"gfGYcl\":[\"Полный путь вложения\"],\"wjocwa\":[\"Имя вложения\"],\"FWlOXr\":[\"Заметка о вложении\"],\"YASWpH\":[\"Вложение, связанное с возможностью\"],\"P38yED\":[\"Лицо, связанное с вложением\"],\"Tx1DxS\":[\"Вложение, связанное с задачей\"],\"4qqxMt\":[\"Тип вложения\"],\"w/Sphq\":[\"Вложения\"],\"2tQOVc\":[\"Вложения, созданные участником рабочей области\"],\"iVnA89\":[\"Вложения, связанные с компанией\"],\"MuTXtT\":[\"Вложения, связанные с контактом.\"],\"kw0mLu\":[\"Вложения, связанные с возможностью\"],\"fCbqr7\":[\"Вложения, прикреплённые к \",[\"label\"]],\"ilRCh1\":[\"Журнал аудита\"],\"EPEFrH\":[\"Журналы аудита\"],\"RqCC/0\":[\"Журналы аудита, связанные с участником рабочей области\"],\"cNBqH+\":[\"Авторизация не удалась в\"],\"VbeIOx\":[\"Автор\"],\"XJONK6\":[\"Авторские вложения\"],\"RpExX0\":[\"Автоматическое создание записей о людях при получении или отправке электронных писем\"],\"lXxdId\":[\"Автоматическое создание записей о людях, с которыми вы участвовали в мероприятии.\"],\"kfcRb0\":[\"Аватар\"],\"S/mJUR\":[\"URL аватара\"],\"20B9kW\":[\"Поведенческое событие\"],\"Jeh/Q/\":[\"Поведенческие события\"],\"K1172m\":[\"Чёрный список\"],\"Tv2hxv\":[\"Заблокированные идентификаторы\"],\"L5JhJe\":[\"Чёрные списки\"],\"bGQplw\":[\"Содержимое\"],\"Nl8eMw\":[\"Тело (устаревшее)\"],\"8mVqF7\":[\"Кешированное имя записи\"],\"Nh6GTX\":[\"Календарный канал\"],\"jfNQ0m\":[\"Ассоциация события календарного канала\"],\"kYNT3F\":[\"Ассоциации событий календарного канала\"],\"Znix/S\":[\"Каналы Календарей\"],\"bRk+FR\":[\"Событие Календаря\"],\"N2kMfO\":[\"Участник События Календаря\"],\"AWDqkQ\":[\"Участники События Календаря\"],\"ZI2UyM\":[\"Участники Событий Календаря\"],\"X9A2xC\":[\"События Календаря\"],\"4IVK41\":[\"ID Канала\"],\"Ubg/B+\":[\"Тип Канала\"],\"3wV73y\":[\"Город\"],\"NRF7pg\":[\"Дата Закрытия\"],\"96YB1a\":[\"Цветовая Схема\"],\"07OSD1\":[\"Компактный Вид\"],\"s2QZS6\":[\"Компании\"],\"7i8j3G\":[\"Компания\"],\"yA1de7\":[\"Позиция Записи Компании\"],\"AgktVC\":[\"Решение для Конференций\"],\"PQ1Dw2\":[\"Подключенный Аккаунт\"],\"9TzudL\":[\"Подключенные Аккаунты\"],\"AMDUqA\":[\"Подключенные Аккаунты\"],\"bA6O5B\":[\"Политика Автосоздания Контактов\"],\"RnsmQs\":[\"Аватар Контакта\"],\"pL+pqi\":[\"Город Контакта\"],\"VnWMlz\":[\"Компания Контакта\"],\"ITlFIB\":[\"Электронные Почты Контакта\"],\"GuRtLY\":[\"Должность Контакта\"],\"QrCvRQ\":[\"Аккаунт Linkedin Контакта\"],\"6xPSVt\":[\"Имя Контакта\"],\"Y37CZ4\":[\"Номер Телефона Контакта\"],\"zsW3gg\":[\"Номера Телефонов Контакта\"],\"uuZ00G\":[\"Аккаунт X/Twitter Контакта\"],\"M73whl\":[\"Контекст\"],\"NCIYDF\":[\"Создано\"],\"wPvFAD\":[\"Дата Создания\"],\"CJXWmO\":[\"Дата и Время Создания\"],\"Lhd0oQ\":[\"Формат Даты\"],\"1lL5Iu\":[\"Дата Удаления Записи\"],\"QN9ahV\":[\"Удаленно\"],\"U1bSSI\":[\"Описывает, находится ли представление в компактном режиме\"],\"Nu4oKW\":[\"Описание\"],\"MRB7nI\":[\"Направление\"],\"0gS7M5\":[\"Отображаемое имя\"],\"y7HJTU\":[\"Display the records in a side panel or in a record page\"],\"0H/D9K\":[\"Отображаемое значение\"],\"wMncXq\":[\"Доменное имя\"],\"YOowcq\":[\"Срок исполнения\"],\"BXEcos\":[\"Адреса электронной почты\"],\"gqv5ZL\":[\"Сотрудники\"],\"VFv2ZC\":[\"Дата окончания\"],\"k//6Xs\":[\"Компания события\"],\"FJ7QI4\":[\"Контекст события\"],\"kJDmsI\":[\"Детали события\"],\"0JhmlM\":[\"Внешний ID события\"],\"aZJLAR\":[\"ID события\"],\"81maJp\":[\"Слушатели событий\"],\"PYs3rP\":[\"Название события\"],\"evIGwh\":[\"Название/тип события\"],\"vv99Wu\":[\"Примечание к событию\"],\"eSt759\":[\"Сделка события\"],\"aicVfT\":[\"Участники события\"],\"0mp45a\":[\"Персона события\"],\"mMq0Wy\":[\"Задача события\"],\"dCV1dS\":[\"Рабочий процесс события\"],\"W84pl6\":[\"Запуск рабочего процесса события\"],\"vUpps9\":[\"Версия рабочего процесса события\"],\"LxOGsB\":[\"Участник рабочего пространства события\"],\"tst44n\":[\"События\"],\"fHL+iH\":[\"События, связанные с персоной\"],\"3/O8MM\":[\"События, связанные с участником рабочего пространства\"],\"QQlMid\":[\"Исключить групповые адреса электронной почты\"],\"kenYGr\":[\"Исключить непрофессиональные адреса электронной почты\"],\"Lo5U0b\":[\"Выполнено\"],\"sZg7s1\":[\"Дата истечения\"],\"6Ki4Pv\":[\"Избранное\"],\"aKUOPp\":[\"Избранная компания\"],\"TDlZ/o\":[\"Избранная папка\"],\"WDVfUH\":[\"Позиция в избранной папке\"],\"SStz54\":[\"Избранные папки\"],\"dz/fFp\":[\"Избранная запись\"],\"RRr9Bp\":[\"Избранная возможность\"],\"RM6B6V\":[\"Избранный контакт\"],\"oVA9vM\":[\"Избранная должность\"],\"OaQVQH\":[\"Избранная задача\"],\"VkWV1s\":[\"Избранный вид\"],\"l+lx2f\":[\"Избранный процесс\"],\"BPBnux\":[\"Избранный запуск процесса\"],\"5X6Vlz\":[\"Избранная версия процесса\"],\"FDpezg\":[\"Избранный участник рабочего пространства\"],\"X9kySA\":[\"Избранное\"],\"0CzeFL\":[\"Избранное в этой папке\"],\"zQponA\":[\"Избранное, связанное с компанией\"],\"VaKLrB\":[\"Избранное, связанное с контактом\"],\"GOfcBt\":[\"Избранное, связанное с записью\"],\"9zd8hg\":[\"Избранное, связанное с возможностью\"],\"L5ccWD\":[\"Избранное, связанное с задачей\"],\"R+1ib/\":[\"Избранное, связанное с видом\"],\"ee0tmj\":[\"Избранное, связанное с процессом\"],\"zar5jz\":[\"Избранное, связанное с запуском процесса\"],\"499/sw\":[\"Избранное, связанное с версией процесса\"],\"rgmtb4\":[\"Избранное, связанное с участником рабочего пространства\"],\"GyXrE1\":[\"Избранное, связанное с \",[\"label\"]],\"nSFFML\":[\"Идентификатор метаданных поля\"],\"g+t8w9\":[\"Метаданные поля, используемые для агрегирования операции\"],\"J4hC2m\":[\"Поле, используемое для полнотекстового поиска\"],\"zuDgzc\":[\"Значение поля\"],\"lEpDue\":[\"Папка для сообщений канала\"],\"cqQyPB\":[\"Название папки\"],\"oQA+cA\":[\"Полный путь\"],\"UzpVUy\":[\"Группировать по значению этого поля\"],\"TkE8dW\":[\"обработчик\"],\"Nf7oXL\":[\"Обработчик\"],\"GvgxWx\":[\"Псевдонимы обработчика\"],\"VehAU2\":[\"Идентификатор заголовочного сообщения\"],\"NNJnBi\":[\"UID iCal\"],\"wwu18a\":[\"Иконка\"],\"CiyiKN\":[\"МКК\"],\"dFb5Nt\":[\"Идентификатор\"],\"Ebc83S\":[\"Идеальный клиентский профиль: Указывает, является ли компания наиболее подходящим и ценным клиентом для вас\"],\"NrA0WZ\":[\"Если событие связано с конкретным объектом\"],\"grHYXZ\":[\"Отменено\"],\"k+g9Uh\":[\"Включено автоматическое создание контактов\"],\"uBx1xd\":[\"На весь день\"],\"3iAfL2\":[\"Является организатором\"],\"Mqzqb8\":[\"Синхронизация включена\"],\"27z+FV\":[\"Должность\"],\"PviVyk\":[\"Join your team on Twenty\"],\"shbh25\":[\"Объект Json для предоставления контекста (пользователь, устройство, рабочее пространство и т. д.)\"],\"HgJ9jQ\":[\"Объект Json для предоставления вывода работы процессов\"],\"AQuLwi\":[\"Объект Json для предоставления шагов\"],\"fOjmZ1\":[\"Объект Json для предоставления триггера\"],\"TVc0/Q\":[\"Значение Json для деталей события\"],\"qmarO2\":[\"kanbanfieldMetadataId\"],\"7sMeHQ\":[\"Ключ\"],\"vXIe7J\":[\"Язык\"],\"WvYp6o\":[\"Id последней опубликованной версии\"],\"Y60/DC\":[\"Курсор последней синхронизации\"],\"Zdx9Qq\":[\"Дата последней синхронизации\"],\"c7uqNg\":[\"Id последней истории синхронизации\"],\"tGwswq\":[\"Время последнего изменения записи\"],\"o1zvNS\":[\"Последнее обновление\"],\"wR9USP\":[\"Id метаданных связанного объекта\"],\"PV1Nm7\":[\"Связанные возможности\"],\"6YiMr4\":[\"Кешированное имя связанной записи\"],\"sgHAxx\":[\"Id связанной записи\"],\"uCA6be\":[\"LinkedIn\"],\"LeFv/R\":[\"Список возможностей, в которых эта личность является контактным лицом\"],\"wJijgU\":[\"Местоположение\"],\"y+q8Lv\":[\"Логический оператор\"],\"6kQXsS\":[\"Логический оператор для группы фильтров\"],\"EnfPm2\":[\"Ссылка на встречу\"],\"xDAtGP\":[\"Сообщение\"],\"g+QGD6\":[\"Канал сообщений\"],\"DzU4a3\":[\"Ассоциация канала сообщений\"],\"wd/R++\":[\"Идентификатор канала сообщений\"],\"disipM\":[\"Ассоциация сообщения канала сообщений\"],\"ijQY3P\":[\"Ассоциации сообщений канала сообщений\"],\"k7LXPQ\":[\"Каналы сообщений\"],\"/4uGJc\":[\"Направление сообщения\"],\"fBw8fQ\":[\"Внешний идентификатор сообщения\"],\"CStLnc\":[\"Папка сообщений\"],\"p4ANpY\":[\"Папки сообщений\"],\"6icznk\":[\"Идентификатор сообщения\"],\"9FJSpK\":[\"Идентификатор сообщения из заголовка сообщения\"],\"yaC1Aq\":[\"Идентификатор сообщения от провайдера сообщений\"],\"IUmVwu\":[\"Участник сообщения\"],\"FhIFx7\":[\"Участники сообщения\"],\"IC5A8V\":[\"Сообщение синхронизировано с каналом сообщений\"],\"de2nM/\":[\"Тема сообщения\"],\"km1jgD\":[\"Идентификатор темы сообщений\"],\"RD0ecC\":[\"Темы сообщений\"],\"t7TeQU\":[\"Сообщения\"],\"WoWdku\":[\"Сообщения из канала.\"],\"rYPBO7\":[\"Сообщения из темы.\"],\"XcKQrV\":[\"Токен доступа провайдера сообщений\"],\"80EvIk\":[\"Токен обновления провайдера сообщений\"],\"6YtxFj\":[\"Имя\"],\"EEVPOx\":[\"Название избранной папки\"],\"csMjko\":[\"Название выполнения рабочего процесса\"],\"KiJn9B\":[\"Примечание\"],\"GGlkb7\":[\"Вложения примечания\"],\"Q1Rz+6\":[\"Тело заметки\"],\"Yp057F\":[\"Позиция записи заметки\"],\"spaO7l\":[\"Цель заметки\"],\"mkchvJ\":[\"Цели заметок\"],\"tD4BxK\":[\"Цели заметок\"],\"jDThel\":[\"Заголовок заметки\"],\"1DBGsz\":[\"Заметки\"],\"Ne73P/\":[\"Заметки, связанные с \",[\"label\"]],\"fXBE74\":[\"Заметки, связанные с компанией\"],\"iQ5AH6\":[\"Заметки, связанные с контактом\"],\"0bi/Eh\":[\"Заметки, связанные с возможностью\"],\"B2Y6QU\":[\"NoteTarget компания\"],\"/mH0jo\":[\"NoteTarget заметка\"],\"DTs4tO\":[\"NoteTarget возможность\"],\"gBwbnk\":[\"NoteTarget человек\"],\"ioJFzx\":[\"Количество сотрудников в компании\"],\"hhe7Ce\":[\"Идентификатор объекта\"],\"dnPgTI\":[\"Идентификатор метаданных объекта\"],\"T/nPf5\":[\"Идентификатор метаданных объекта\"],\"afsWF6\":[\"Имя объекта\"],\"r/A6pA\":[\"Open Record In\"],\"Fzfj4N\":[\"Операнд\"],\"FZg3wM\":[\"Операция\"],\"B1MDds\":[\"Операции\"],\"4MyDFl\":[\"Возможности\"],\"5QgKbT\":[\"Возможности, связанные с компанией.\"],\"SV/iis\":[\"Возможность\"],\"WnMlKn\":[\"Сумма возможности\"],\"aj3fnv\":[\"Дата закрытия возможности\"],\"3NYczb\":[\"Opportunity компания\"],\"as45IN\":[\"Контактное лицо возможности\"],\"5Nu7Uw\":[\"Вероятность возможности\"],\"Q1dzBp\":[\"Позиция записи возможности\"],\"5ugYS3\":[\"Стадия возможности\"],\"eLggyd\":[\"Необязательная агрегатная операция\"],\"kdClJ/\":[\"Необязательный секрет, используемый для вычисления HMAC-подписи для webhook-полезных нагрузок. Этот секрет разделяется между Twenty и потребителем webhook для аутентификации запросов webhook.\"],\"gh06VD\":[\"Выход\"],\"pDUbN1\":[\"Родительская группа фильтра представления\"],\"YKSmIP\":[\"Идентификатор родительской группы фильтра представления\"],\"1wdjme\":[\"Люди\"],\"E1zc7W\":[\"Люди, связанные с компанией.\"],\"OZdaTZ\":[\"\\\\\"],\"c3Qq6o\":[\"\\\\\"],\"zmwvG2\":[\"\\\\\"],\"m2ivgq\":[\"\\\\\"],\"P04j61\":[\"\\\\\"],\"p/78dY\":[\"\\\\\"],\"HH1bMC\":[\"\\\\\"],\"CvOSME\":[\"\\\\\"],\"h8PGuF\":[\"\\\\\"],\"TTHIbk\":[\"\\\\\"],\"5v4qYi\":[\"\\\\\"],\"WJIL29\":[\"\\\\\"],\"CrfRPa\":[\"\\\\\"],\"YfbwOB\":[\"\\\\\"],\"4Tvtbu\":[\"\\\\\"],\"9gXJw8\":[\"\\\\\"],\"2rvMKg\":[\"\\\\\"],\"2LpFdR\":[\"\\\\\"],\"g87L9j\":[\"\\\\\"],\"rnCndp\":[\"\\\\\"],\"MCWKAU\":[\"\\\\\"],\"GDvlUT\":[\"\\\\\"],\"Tpm2G9\":[\"\\\\\"],\"N/rFzD\":[\"\\\\\"],\"PdVIJC\":[\"\\\\\"],\"8VEDbV\":[\"\\\\\"],\"Cj2Gtd\":[\"\\\\\"],\"3PRxO3\":[\"\\\\\"],\"D3iCkb\":[\"\\\\\"],\"uAQUqI\":[\"\\\\\"],\"Db4W3/\":[\"\\\\\"],\"UJmAAK\":[\"\\\\\"],\"oyJYg7\":[\"\\\\\"],\"awvBUx\":[\"\\\\\"],\"dNAbG6\":[\"Этап синхронизации\"],\"aqNjQE\":[\"Этап синхронизации начат в\"],\"bRUdLR\":[\"Статус синхронизации\"],\"4SHJe4\":[\"Целевой URL\"],\"Q3P/4s\":[\"Задача\"],\"kS+Ym6\":[\"Исполнитель задачи\"],\"7fYQ6E\":[\"Вложения задачи\"],\"X8fs74\":[\"Содержание задачи\"],\"EPxYHS\":[\"Срок выполнения задачи\"],\"fUw1j+\":[\"Позиция записи задачи\"],\"I6+0ph\":[\"Статус задачи\"],\"WSiiWf\":[\"Цель задачи\"],\"khGQLP\":[\"Цели задачи\"],\"836FiO\":[\"Цели задачи\"],\"R+s8S+\":[\"Название задачи\"],\"GtycJ/\":[\"Задачи\"],\"HlDeG3\":[\"Задачи, назначенные члену рабочего пространства\"],\"Ca/n4T\":[\"Задачи, связанные с \",[\"label\"]],\"M4rBti\":[\"Задачи, связанные с компанией\"],\"/VaiDW\":[\"Задачи, связанные с контактом\"],\"1TfX9U\":[\"Задачи, связанные с возможностью\"],\"pP0Dt9\":[\"Цель задачи - компания\"],\"UJ2aPi\":[\"Цель задачи - возможность\"],\"I1MiSs\":[\"Цель задачи - личность\"],\"pciKLT\":[\"Цель задачи - задача\"],\"xeiujy\":[\"Текст\"],\"6PJbR2\":[\"Учетные данные (электронная почта, имя пользователя, номер телефона и т. д.)\"],\"zUXOAB\":[\"Поставщик услуг\"],\"qnNFrW\":[\"Аккаунт компании в Linkedin\"],\"N31Pso\":[\"Название компании\"],\"BHFCqB\":[\"Аккаунт компании в Twitter/X\"],\"OBmU0K\":[\"URL-адрес веб-сайта компании. Мы используем этот адрес для получения иконки компании\"],\"zGBDEH\":[\"Создатель записи\"],\"bMyVOx\":[\"Текущие статусы версий потока работ\"],\"0bo4Q0\":[\"Дата получения сообщения\"],\"8h4mhq\":[\"Исполнитель потока работ\"],\"W3raza\":[\"Папка, к которой принадлежит избранное\"],\"DbWmKZ\":[\"Название возможности\"],\"7mPrpl\":[\"Название слушателя события рабочего процесса\"],\"od0omS\":[\"Идентификатор последней опубликованной версии рабочего процесса\"],\"/EdWx6\":[\"Название рабочего процесса\"],\"EhAsND\":[\"Название версии рабочего процесса\"],\"dhx13p\":[\"Статус версии рабочего процесса\"],\"Zl0BJl\":[\"Внешний идентификатор ветки\"],\"RSSbWN\":[\"Идентификатор ветки от поставщика сообщений\"],\"sS8v5K\":[\"Количество сбоев при ограничении скорости\"],\"n9nSNJ\":[\"Формат времени\"],\"Mz2JN2\":[\"Часовой пояс\"],\"az1boY\":[\"Действия на временной шкале\"],\"fqKMpF\":[\"Действия на временной шкале, связанные с компанией\"],\"4/UzU5\":[\"Действия на временной шкале, связанные с заметкой.\"],\"p6feIz\":[\"Действия на временной шкале, связанные с возможностью.\"],\"yvPwuF\":[\"Действия на временной шкале, связанные с выполнением\"],\"q96UvB\":[\"Действия на временной шкале, связанные с задачей.\"],\"N9HMa/\":[\"Действия на временной шкале, связанные с версией\"],\"B1CYKX\":[\"Действия на временной шкале, связанные с рабочим процессом\"],\"G0UmtQ\":[\"Действия на временной шкале, связанные с \",[\"label\"]],\"K/kU4E\":[\"Действие на временной шкале\"],\"MHrjPM\":[\"Заголовок\"],\"+zy2Nq\":[\"Тип\"],\"0gY5lO\":[\"Дата и время обновления\"],\"YFciqL\":[\"Электронная почта пользователя\"],\"d1BTW8\":[\"Идентификатор пользователя\"],\"4juE7s\":[\"Часовой пояс пользователя\"],\"43zCwQ\":[\"Предпочитаемый пользователем формат даты\"],\"kJuoKm\":[\"Предпочитаемый пользователем формат времени\"],\"wMHvYH\":[\"Значение\"],\"7aatUy\":[\"Статус версии\"],\"CdQeU7\":[\"Шаги версии\"],\"PGMPIi\":[\"Триггер версии\"],\"IYNSdp\":[\"Версии\"],\"jpctdh\":[\"Представление\"],\"cZPDyy\":[\"Поле представления\"],\"6jpoH4\":[\"Позиция поля представления\"],\"Ju6gri\":[\"Представление связанного поля\"],\"tvTr2y\":[\"Размер поля представления\"],\"BkII8t\":[\"Целевое поле представления\"],\"Gd/LzL\":[\"Видимость поля представления\"],\"GUFYyq\":[\"Поля представления\"],\"JRtI7Y\":[\"Фильтр представления\"],\"L2gQ5q\":[\"Отображаемое значение фильтра представления\"],\"l9/6pD\":[\"Группа фильтров представления\"],\"Mbosm8\":[\"Идентификатор группы фильтров представления\"],\"/aP3iG\":[\"Группы фильтров представления\"],\"4MG8+B\":[\"Операнд фильтра представления\"],\"OrUkUF\":[\"Представление связанного фильтра\"],\"TyXOtD\":[\"Целевое поле фильтра представления\"],\"3KzkxN\":[\"Значение фильтра представления\"],\"vj5JsR\":[\"Фильтры представления\"],\"ziEP12\":[\"Группа представления\"],\"uQ3c2q\":[\"Представление связанной группы\"],\"EFlLpQ\":[\"Целевое поле группы представления\"],\"b1Vc+l\":[\"Видимость группы представления\"],\"V4nZs/\":[\"Группы представления\"],\"qXlovu\":[\"Иконка представления\"],\"cd/+ZD\":[\"Поле колонки канбан представления\"],\"vdfZ+A\":[\"Ключ представления\"],\"oOljSE\":[\"Наименование представления\"],\"rhO8zp\":[\"Позиция представления\"],\"EUjpwJ\":[\"Сортировка представления\"],\"6ZUale\":[\"Направление сортировки представления\"],\"/rCPqN\":[\"Представление связанной сортировки\"],\"+du2wy\":[\"Целевое поле сортировки представления\"],\"UsdY3K\":[\"Сортировки представления\"],\"clWwIZ\":[\"Целевой объект представления\"],\"bJAIqT\":[\"Тип представления\"],\"1I6UoR\":[\"Представления\"],\"2q/Q7x\":[\"Видимость\"],\"oh8+os\":[\"Видимый\"],\"TRDppN\":[\"Вебхук\"],\"fyB2Wp\":[\"Операция Webhook\"],\"gONLmX\":[\"Операции Webhook\"],\"cPoSTF\":[\"Целевой URL адрес вебхука\"],\"v1kQyJ\":[\"Вебхуки\"],\"TVkCrJ\":[\"Welcome to Twenty: Please Confirm Your Email\"],\"bLt/0J\":[\"Бизнес-процесс\"],\"E03XpH\":[\"Прослушиватели событий рабочего процесса, связанные с рабочим процессом.\"],\"vwSkSW\":[\"Рабочий процесс связан с выполнением.\"],\"y9tnFx\":[\"Позиция записи рабочего процесса\"],\"5vIcqC\":[\"Запуск рабочего процесса\"],\"3Iz+qz\":[\"Запуск рабочего процесса завершился в\"],\"IUaK6s\":[\"Позиция запуска рабочего процесса\"],\"zaN7tH\":[\"Запуск рабочего процесса начался в\"],\"1TU2A8\":[\"Статус запуска рабочего процесса\"],\"u6DF/V\":[\"Запуски рабочего процесса\"],\"9nOy7k\":[\"Запуски рабочего процесса, связанные с версией.\"],\"c37F3j\":[\"Запуски рабочего процесса, связанные с рабочим процессом.\"],\"lTXctu\":[\"Версия рабочего процесса\"],\"+wYPET\":[\"Версия рабочего процесса\"],\"CocTJJ\":[\"Версия рабочего процесса, связанная с выполнением.\"],\"9l+pJT\":[\"Позиция версии рабочего процесса\"],\"OCyhkn\":[\"Версии рабочего процесса\"],\"018fP9\":[\"Версии рабочего процесса, связанные с рабочим процессом.\"],\"ENOy6I\":[\"ПрослушивательСобытийРабочегоПроцесса\"],\"HN90FO\":[\"ПрослушивательСобытийРабочегоПроцесса рабочий процесс\"],\"3JA9se\":[\"ПрослушивателиСобытийРабочегоПроцесса\"],\"woYYQq\":[\"Рабочие процессы\"],\"urCUgs\":[\"ВерсияРабочегоПроцесса\"],\"b4kire\":[\"ВерсияРабочегоПроцесса рабочий процесс\"],\"CbGxon\":[\"Участник рабочего пространства\"],\"qc38qR\":[\"Участник рабочего пространства\"],\"R1S9pO\":[\"Аватар участника рабочего пространства\"],\"5VCX7o\":[\"Имя участника рабочего пространства\"],\"YCAEr+\":[\"Участники рабочего пространства\"],\"EtzFC0\":[\"УчастникРабочегоПространства\"],\"0gv+T2\":[\"X\"],\"bTyBrW\":[\"Your Password Has Been Successfully Changed\"],\"vPccnr\":[\"Ваш член команды, ответственный за управление корпоративным аккаунтом\"]}")as Messages;
\ No newline at end of file
+/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"Qyrd7v\":[\"(Система) Просмотреть поля\"],\"9Y3fTB\":[\"(Система) Просмотреть группы фильтров\"],\"TB2jLV\":[\"(Система) Просмотреть фильтры\"],\"Y7M7Ro\":[\"(Система) Просмотреть группы\"],\"9vliLw\":[\"(Система) Просмотреть сортировки\"],\"5B59WE\":[\"(Система) Представления\"],\"kZR6+h\":[\"Компания\"],\"+aeifv\":[\"Подключенный аккаунт\"],\"HCoswz\":[\"Избранное, к которому можно получить доступ из левого меню\"],\"6w8bHl\":[\"Папка избранного\"],\"sSGYmf\":[\"Группа связанных сообщений (например, цепочка электронных писем, чат)\"],\"vZj1Xc\":[\"Сообщение, отправленное или полученное через канал связи (электронная почта, чат и т. д.)\"],\"bufuBA\":[\"Заметка\"],\"6kUkZW\":[\"Цель заметки\"],\"Io42ej\":[\"Человек\"],\"mkFXEH\":[\"Задача\"],\"hk2NzW\":[\"Цель задачи\"],\"HTSJFW\":[\"Вебхук\"],\"ZIN9Ga\":[\"Рабочий процесс\"],\"juBVjt\":[\"Прослушиватель событий рабочего процесса\"],\"1+xDbI\":[\"Выполнение рабочего процесса\"],\"N0g7rp\":[\"Версия рабочего процесса\"],\"HpZ/I5\":[\"Член рабочего пространства\"],\"GDKKxT\":[\"Токен доступа\"],\"pd81Qb\":[\"Владелец аккаунта\"],\"loqL/f\":[\"Владелец аккаунта для компаний\"],\"HZosRi\":[\"Владелец аккаунта для компаний\"],\"48AxkT\":[\"Необходимо действие для предотвращения удаления рабочей области\"],\"j0DfGR\":[\"Необходимо действие для сброса пароля\"],\"Du6bPw\":[\"Адрес\"],\"JiOJxf\":[\"Адрес (устарело) \"],\"Knl3c9\":[\"Адрес компании\"],\"zJhwjv\":[\"Адрес компании - устарел в пользу нового поля адреса\"],\"ZfVqbP\":[\"Агрегирующая операция\"],\"W58PBh\":[\"Агрегированное / отфильтрованное событие, отображаемое на временной шкале\"],\"hehnjM\":[\"Сумма\"],\"qeHcQj\":[\"API ключ\"],\"MjyFvC\":[\"Вложение\"],\"+bL++X\":[\"Журнал аудита действий, выполненных в системе\"],\"muVHgL\":[\"Событие, связанное с поведением пользователя\"],\"bZq8rL\":[\"Возможность\"],\"JKWicb\":[\"Ежегодный повторяющийся доход: Фактический или предполагаемый годовой доход компании\"],\"yRnk5W\":[\"API ключ\"],\"FfSJ1Y\":[\"API ключи\"],\"puNs/l\":[\"Дата истечения срока действия ApiKey\"],\"YHiNxr\":[\"Имя ApiKey\"],\"xrndTt\":[\"Дата отзыва ApiKey\"],\"3EiOLz\":[\"Годовой повторяющийся доход\"],\"Ek7xGj\":[\"Назначенные задачи\"],\"ojKCLU\":[\"Исполнитель\"],\"Max2GU\":[\"Идентификатор связанного пользователя\"],\"UY1vmE\":[\"Вложение\"],\"JAefBH\":[\"Автор вложения\"],\"bIaesZ\":[\"Компания вложения\"],\"gfGYcl\":[\"Полный путь вложения\"],\"wjocwa\":[\"Имя вложения\"],\"FWlOXr\":[\"Заметка о вложении\"],\"YASWpH\":[\"Вложение, связанное с возможностью\"],\"P38yED\":[\"Лицо, связанное с вложением\"],\"Tx1DxS\":[\"Вложение, связанное с задачей\"],\"4qqxMt\":[\"Тип вложения\"],\"w/Sphq\":[\"Вложения\"],\"2tQOVc\":[\"Вложения, созданные участником рабочей области\"],\"iVnA89\":[\"Вложения, связанные с компанией\"],\"MuTXtT\":[\"Вложения, связанные с контактом.\"],\"kw0mLu\":[\"Вложения, связанные с возможностью\"],\"fCbqr7\":[\"Вложения, прикреплённые к \",[\"label\"]],\"ilRCh1\":[\"Журнал аудита\"],\"EPEFrH\":[\"Журналы аудита\"],\"RqCC/0\":[\"Журналы аудита, связанные с участником рабочей области\"],\"cNBqH+\":[\"Авторизация не удалась в\"],\"VbeIOx\":[\"Автор\"],\"XJONK6\":[\"Авторские вложения\"],\"RpExX0\":[\"Автоматическое создание записей о людях при получении или отправке электронных писем\"],\"lXxdId\":[\"Автоматическое создание записей о людях, с которыми вы участвовали в мероприятии.\"],\"kfcRb0\":[\"Аватар\"],\"S/mJUR\":[\"URL аватара\"],\"20B9kW\":[\"Поведенческое событие\"],\"Jeh/Q/\":[\"Поведенческие события\"],\"K1172m\":[\"Чёрный список\"],\"Tv2hxv\":[\"Заблокированные идентификаторы\"],\"L5JhJe\":[\"Чёрные списки\"],\"bGQplw\":[\"Содержимое\"],\"Nl8eMw\":[\"Тело (устаревшее)\"],\"8mVqF7\":[\"Кешированное имя записи\"],\"Nh6GTX\":[\"Календарный канал\"],\"jfNQ0m\":[\"Ассоциация события календарного канала\"],\"kYNT3F\":[\"Ассоциации событий календарного канала\"],\"Znix/S\":[\"Каналы Календарей\"],\"bRk+FR\":[\"Событие Календаря\"],\"N2kMfO\":[\"Участник События Календаря\"],\"AWDqkQ\":[\"Участники События Календаря\"],\"ZI2UyM\":[\"Участники Событий Календаря\"],\"X9A2xC\":[\"События Календаря\"],\"4IVK41\":[\"ID Канала\"],\"Ubg/B+\":[\"Тип Канала\"],\"3wV73y\":[\"Город\"],\"NRF7pg\":[\"Дата Закрытия\"],\"96YB1a\":[\"Цветовая Схема\"],\"07OSD1\":[\"Компактный Вид\"],\"s2QZS6\":[\"Компании\"],\"7i8j3G\":[\"Компания\"],\"yA1de7\":[\"Позиция Записи Компании\"],\"AgktVC\":[\"Решение для Конференций\"],\"PQ1Dw2\":[\"Подключенный Аккаунт\"],\"9TzudL\":[\"Подключенные Аккаунты\"],\"AMDUqA\":[\"Подключенные Аккаунты\"],\"bA6O5B\":[\"Политика Автосоздания Контактов\"],\"RnsmQs\":[\"Аватар Контакта\"],\"pL+pqi\":[\"Город Контакта\"],\"VnWMlz\":[\"Компания Контакта\"],\"ITlFIB\":[\"Электронные Почты Контакта\"],\"GuRtLY\":[\"Должность Контакта\"],\"QrCvRQ\":[\"Аккаунт Linkedin Контакта\"],\"6xPSVt\":[\"Имя Контакта\"],\"Y37CZ4\":[\"Номер Телефона Контакта\"],\"zsW3gg\":[\"Номера Телефонов Контакта\"],\"uuZ00G\":[\"Аккаунт X/Twitter Контакта\"],\"M73whl\":[\"Контекст\"],\"NCIYDF\":[\"Создано\"],\"wPvFAD\":[\"Дата Создания\"],\"CJXWmO\":[\"Дата и Время Создания\"],\"Lhd0oQ\":[\"Формат Даты\"],\"1lL5Iu\":[\"Дата Удаления Записи\"],\"QN9ahV\":[\"Удаленно\"],\"U1bSSI\":[\"Описывает, находится ли представление в компактном режиме\"],\"Nu4oKW\":[\"Описание\"],\"MRB7nI\":[\"Направление\"],\"0gS7M5\":[\"Отображаемое имя\"],\"y7HJTU\":[\"Отобразить записи в боковой панели или на странице записи\"],\"0H/D9K\":[\"Отображаемое значение\"],\"wMncXq\":[\"Доменное имя\"],\"YOowcq\":[\"Срок исполнения\"],\"BXEcos\":[\"Адреса электронной почты\"],\"gqv5ZL\":[\"Сотрудники\"],\"VFv2ZC\":[\"Дата окончания\"],\"k//6Xs\":[\"Компания события\"],\"FJ7QI4\":[\"Контекст события\"],\"kJDmsI\":[\"Детали события\"],\"0JhmlM\":[\"Внешний ID события\"],\"aZJLAR\":[\"ID события\"],\"81maJp\":[\"Слушатели событий\"],\"PYs3rP\":[\"Название события\"],\"evIGwh\":[\"Название/тип события\"],\"vv99Wu\":[\"Примечание к событию\"],\"eSt759\":[\"Сделка события\"],\"aicVfT\":[\"Участники события\"],\"0mp45a\":[\"Персона события\"],\"mMq0Wy\":[\"Задача события\"],\"dCV1dS\":[\"Рабочий процесс события\"],\"W84pl6\":[\"Запуск рабочего процесса события\"],\"vUpps9\":[\"Версия рабочего процесса события\"],\"LxOGsB\":[\"Участник рабочего пространства события\"],\"tst44n\":[\"События\"],\"fHL+iH\":[\"События, связанные с персоной\"],\"3/O8MM\":[\"События, связанные с участником рабочего пространства\"],\"QQlMid\":[\"Исключить групповые адреса электронной почты\"],\"kenYGr\":[\"Исключить непрофессиональные адреса электронной почты\"],\"Lo5U0b\":[\"Выполнено\"],\"sZg7s1\":[\"Дата истечения\"],\"6Ki4Pv\":[\"Избранное\"],\"aKUOPp\":[\"Избранная компания\"],\"TDlZ/o\":[\"Избранная папка\"],\"WDVfUH\":[\"Позиция в избранной папке\"],\"SStz54\":[\"Избранные папки\"],\"dz/fFp\":[\"Избранная запись\"],\"RRr9Bp\":[\"Избранная возможность\"],\"RM6B6V\":[\"Избранный контакт\"],\"oVA9vM\":[\"Избранная должность\"],\"OaQVQH\":[\"Избранная задача\"],\"VkWV1s\":[\"Избранный вид\"],\"l+lx2f\":[\"Избранный процесс\"],\"BPBnux\":[\"Избранный запуск процесса\"],\"5X6Vlz\":[\"Избранная версия процесса\"],\"FDpezg\":[\"Избранный участник рабочего пространства\"],\"X9kySA\":[\"Избранное\"],\"0CzeFL\":[\"Избранное в этой папке\"],\"zQponA\":[\"Избранное, связанное с компанией\"],\"VaKLrB\":[\"Избранное, связанное с контактом\"],\"GOfcBt\":[\"Избранное, связанное с записью\"],\"9zd8hg\":[\"Избранное, связанное с возможностью\"],\"L5ccWD\":[\"Избранное, связанное с задачей\"],\"R+1ib/\":[\"Избранное, связанное с видом\"],\"ee0tmj\":[\"Избранное, связанное с процессом\"],\"zar5jz\":[\"Избранное, связанное с запуском процесса\"],\"499/sw\":[\"Избранное, связанное с версией процесса\"],\"rgmtb4\":[\"Избранное, связанное с участником рабочего пространства\"],\"GyXrE1\":[\"Избранное, связанное с \",[\"label\"]],\"nSFFML\":[\"Идентификатор метаданных поля\"],\"g+t8w9\":[\"Метаданные поля, используемые для агрегирования операции\"],\"J4hC2m\":[\"Поле, используемое для полнотекстового поиска\"],\"zuDgzc\":[\"Значение поля\"],\"lEpDue\":[\"Папка для сообщений канала\"],\"cqQyPB\":[\"Название папки\"],\"oQA+cA\":[\"Полный путь\"],\"UzpVUy\":[\"Группировать по значению этого поля\"],\"TkE8dW\":[\"обработчик\"],\"Nf7oXL\":[\"Обработчик\"],\"GvgxWx\":[\"Псевдонимы обработчика\"],\"VehAU2\":[\"Идентификатор заголовочного сообщения\"],\"NNJnBi\":[\"UID iCal\"],\"wwu18a\":[\"Иконка\"],\"CiyiKN\":[\"МКК\"],\"dFb5Nt\":[\"Идентификатор\"],\"Ebc83S\":[\"Идеальный клиентский профиль: Указывает, является ли компания наиболее подходящим и ценным клиентом для вас\"],\"NrA0WZ\":[\"Если событие связано с конкретным объектом\"],\"grHYXZ\":[\"Отменено\"],\"k+g9Uh\":[\"Включено автоматическое создание контактов\"],\"uBx1xd\":[\"На весь день\"],\"3iAfL2\":[\"Является организатором\"],\"Mqzqb8\":[\"Синхронизация включена\"],\"27z+FV\":[\"Должность\"],\"PviVyk\":[\"Присоединяйтесь к вашей команде на Twenty\"],\"shbh25\":[\"Объект Json для предоставления контекста (пользователь, устройство, рабочее пространство и т. д.)\"],\"HgJ9jQ\":[\"Объект Json для предоставления вывода работы процессов\"],\"AQuLwi\":[\"Объект Json для предоставления шагов\"],\"fOjmZ1\":[\"Объект Json для предоставления триггера\"],\"TVc0/Q\":[\"Значение Json для деталей события\"],\"qmarO2\":[\"kanbanfieldMetadataId\"],\"7sMeHQ\":[\"Ключ\"],\"vXIe7J\":[\"Язык\"],\"WvYp6o\":[\"Id последней опубликованной версии\"],\"Y60/DC\":[\"Курсор последней синхронизации\"],\"Zdx9Qq\":[\"Дата последней синхронизации\"],\"c7uqNg\":[\"Id последней истории синхронизации\"],\"tGwswq\":[\"Время последнего изменения записи\"],\"o1zvNS\":[\"Последнее обновление\"],\"wR9USP\":[\"Id метаданных связанного объекта\"],\"PV1Nm7\":[\"Связанные возможности\"],\"6YiMr4\":[\"Кешированное имя связанной записи\"],\"sgHAxx\":[\"Id связанной записи\"],\"uCA6be\":[\"LinkedIn\"],\"LeFv/R\":[\"Список возможностей, в которых эта личность является контактным лицом\"],\"wJijgU\":[\"Местоположение\"],\"y+q8Lv\":[\"Логический оператор\"],\"6kQXsS\":[\"Логический оператор для группы фильтров\"],\"EnfPm2\":[\"Ссылка на встречу\"],\"xDAtGP\":[\"Сообщение\"],\"g+QGD6\":[\"Канал сообщений\"],\"DzU4a3\":[\"Ассоциация канала сообщений\"],\"wd/R++\":[\"Идентификатор канала сообщений\"],\"disipM\":[\"Ассоциация сообщения канала сообщений\"],\"ijQY3P\":[\"Ассоциации сообщений канала сообщений\"],\"k7LXPQ\":[\"Каналы сообщений\"],\"/4uGJc\":[\"Направление сообщения\"],\"fBw8fQ\":[\"Внешний идентификатор сообщения\"],\"CStLnc\":[\"Папка сообщений\"],\"p4ANpY\":[\"Папки сообщений\"],\"6icznk\":[\"Идентификатор сообщения\"],\"9FJSpK\":[\"Идентификатор сообщения из заголовка сообщения\"],\"yaC1Aq\":[\"Идентификатор сообщения от провайдера сообщений\"],\"IUmVwu\":[\"Участник сообщения\"],\"FhIFx7\":[\"Участники сообщения\"],\"IC5A8V\":[\"Сообщение синхронизировано с каналом сообщений\"],\"de2nM/\":[\"Тема сообщения\"],\"km1jgD\":[\"Идентификатор темы сообщений\"],\"RD0ecC\":[\"Темы сообщений\"],\"t7TeQU\":[\"Сообщения\"],\"WoWdku\":[\"Сообщения из канала.\"],\"rYPBO7\":[\"Сообщения из темы.\"],\"XcKQrV\":[\"Токен доступа провайдера сообщений\"],\"80EvIk\":[\"Токен обновления провайдера сообщений\"],\"6YtxFj\":[\"Имя\"],\"EEVPOx\":[\"Название избранной папки\"],\"csMjko\":[\"Название выполнения рабочего процесса\"],\"KiJn9B\":[\"Примечание\"],\"GGlkb7\":[\"Вложения примечания\"],\"Q1Rz+6\":[\"Тело заметки\"],\"Yp057F\":[\"Позиция записи заметки\"],\"spaO7l\":[\"Цель заметки\"],\"mkchvJ\":[\"Цели заметок\"],\"tD4BxK\":[\"Цели заметок\"],\"jDThel\":[\"Заголовок заметки\"],\"1DBGsz\":[\"Заметки\"],\"Ne73P/\":[\"Заметки, связанные с \",[\"label\"]],\"fXBE74\":[\"Заметки, связанные с компанией\"],\"iQ5AH6\":[\"Заметки, связанные с контактом\"],\"0bi/Eh\":[\"Заметки, связанные с возможностью\"],\"B2Y6QU\":[\"NoteTarget компания\"],\"/mH0jo\":[\"NoteTarget заметка\"],\"DTs4tO\":[\"NoteTarget возможность\"],\"gBwbnk\":[\"NoteTarget человек\"],\"ioJFzx\":[\"Количество сотрудников в компании\"],\"hhe7Ce\":[\"Идентификатор объекта\"],\"dnPgTI\":[\"Идентификатор метаданных объекта\"],\"T/nPf5\":[\"Идентификатор метаданных объекта\"],\"afsWF6\":[\"Имя объекта\"],\"r/A6pA\":[\"Открыть запись в\"],\"Fzfj4N\":[\"Операнд\"],\"FZg3wM\":[\"Операция\"],\"B1MDds\":[\"Операции\"],\"4MyDFl\":[\"Возможности\"],\"5QgKbT\":[\"Возможности, связанные с компанией.\"],\"SV/iis\":[\"Возможность\"],\"WnMlKn\":[\"Сумма возможности\"],\"aj3fnv\":[\"Дата закрытия возможности\"],\"3NYczb\":[\"Opportunity компания\"],\"as45IN\":[\"Контактное лицо возможности\"],\"5Nu7Uw\":[\"Вероятность возможности\"],\"Q1dzBp\":[\"Позиция записи возможности\"],\"5ugYS3\":[\"Стадия возможности\"],\"eLggyd\":[\"Необязательная агрегатная операция\"],\"kdClJ/\":[\"Необязательный секрет, используемый для вычисления HMAC-подписи для webhook-полезных нагрузок. Этот секрет разделяется между Twenty и потребителем webhook для аутентификации запросов webhook.\"],\"gh06VD\":[\"Выход\"],\"pDUbN1\":[\"Родительская группа фильтра представления\"],\"YKSmIP\":[\"Идентификатор родительской группы фильтра представления\"],\"1wdjme\":[\"Люди\"],\"E1zc7W\":[\"Люди, связанные с компанией.\"],\"OZdaTZ\":[\"\\\\\"],\"c3Qq6o\":[\"\\\\\"],\"zmwvG2\":[\"\\\\\"],\"m2ivgq\":[\"\\\\\"],\"P04j61\":[\"\\\\\"],\"p/78dY\":[\"\\\\\"],\"HH1bMC\":[\"\\\\\"],\"CvOSME\":[\"\\\\\"],\"h8PGuF\":[\"\\\\\"],\"TTHIbk\":[\"\\\\\"],\"5v4qYi\":[\"\\\\\"],\"WJIL29\":[\"\\\\\"],\"CrfRPa\":[\"\\\\\"],\"YfbwOB\":[\"\\\\\"],\"4Tvtbu\":[\"\\\\\"],\"9gXJw8\":[\"\\\\\"],\"2rvMKg\":[\"\\\\\"],\"2LpFdR\":[\"\\\\\"],\"g87L9j\":[\"\\\\\"],\"rnCndp\":[\"\\\\\"],\"MCWKAU\":[\"\\\\\"],\"GDvlUT\":[\"\\\\\"],\"Tpm2G9\":[\"\\\\\"],\"N/rFzD\":[\"\\\\\"],\"PdVIJC\":[\"\\\\\"],\"8VEDbV\":[\"\\\\\"],\"Cj2Gtd\":[\"\\\\\"],\"3PRxO3\":[\"\\\\\"],\"D3iCkb\":[\"\\\\\"],\"uAQUqI\":[\"\\\\\"],\"Db4W3/\":[\"\\\\\"],\"UJmAAK\":[\"\\\\\"],\"oyJYg7\":[\"\\\\\"],\"awvBUx\":[\"\\\\\"],\"dNAbG6\":[\"Этап синхронизации\"],\"aqNjQE\":[\"Этап синхронизации начат в\"],\"bRUdLR\":[\"Статус синхронизации\"],\"4SHJe4\":[\"Целевой URL\"],\"Q3P/4s\":[\"Задача\"],\"kS+Ym6\":[\"Исполнитель задачи\"],\"7fYQ6E\":[\"Вложения задачи\"],\"X8fs74\":[\"Содержание задачи\"],\"EPxYHS\":[\"Срок выполнения задачи\"],\"fUw1j+\":[\"Позиция записи задачи\"],\"I6+0ph\":[\"Статус задачи\"],\"WSiiWf\":[\"Цель задачи\"],\"khGQLP\":[\"Цели задачи\"],\"836FiO\":[\"Цели задачи\"],\"R+s8S+\":[\"Название задачи\"],\"GtycJ/\":[\"Задачи\"],\"HlDeG3\":[\"Задачи, назначенные члену рабочего пространства\"],\"Ca/n4T\":[\"Задачи, связанные с \",[\"label\"]],\"M4rBti\":[\"Задачи, связанные с компанией\"],\"/VaiDW\":[\"Задачи, связанные с контактом\"],\"1TfX9U\":[\"Задачи, связанные с возможностью\"],\"pP0Dt9\":[\"Цель задачи - компания\"],\"UJ2aPi\":[\"Цель задачи - возможность\"],\"I1MiSs\":[\"Цель задачи - личность\"],\"pciKLT\":[\"Цель задачи - задача\"],\"xeiujy\":[\"Текст\"],\"6PJbR2\":[\"Учетные данные (электронная почта, имя пользователя, номер телефона и т. д.)\"],\"zUXOAB\":[\"Поставщик услуг\"],\"qnNFrW\":[\"Аккаунт компании в Linkedin\"],\"N31Pso\":[\"Название компании\"],\"BHFCqB\":[\"Аккаунт компании в Twitter/X\"],\"OBmU0K\":[\"URL-адрес веб-сайта компании. Мы используем этот адрес для получения иконки компании\"],\"zGBDEH\":[\"Создатель записи\"],\"bMyVOx\":[\"Текущие статусы версий потока работ\"],\"0bo4Q0\":[\"Дата получения сообщения\"],\"8h4mhq\":[\"Исполнитель потока работ\"],\"W3raza\":[\"Папка, к которой принадлежит избранное\"],\"DbWmKZ\":[\"Название возможности\"],\"7mPrpl\":[\"Название слушателя события рабочего процесса\"],\"od0omS\":[\"Идентификатор последней опубликованной версии рабочего процесса\"],\"/EdWx6\":[\"Название рабочего процесса\"],\"EhAsND\":[\"Название версии рабочего процесса\"],\"dhx13p\":[\"Статус версии рабочего процесса\"],\"Zl0BJl\":[\"Внешний идентификатор ветки\"],\"RSSbWN\":[\"Идентификатор ветки от поставщика сообщений\"],\"sS8v5K\":[\"Количество сбоев при ограничении скорости\"],\"n9nSNJ\":[\"Формат времени\"],\"Mz2JN2\":[\"Часовой пояс\"],\"az1boY\":[\"Действия на временной шкале\"],\"fqKMpF\":[\"Действия на временной шкале, связанные с компанией\"],\"4/UzU5\":[\"Действия на временной шкале, связанные с заметкой.\"],\"p6feIz\":[\"Действия на временной шкале, связанные с возможностью.\"],\"yvPwuF\":[\"Действия на временной шкале, связанные с выполнением\"],\"q96UvB\":[\"Действия на временной шкале, связанные с задачей.\"],\"N9HMa/\":[\"Действия на временной шкале, связанные с версией\"],\"B1CYKX\":[\"Действия на временной шкале, связанные с рабочим процессом\"],\"G0UmtQ\":[\"Действия на временной шкале, связанные с \",[\"label\"]],\"K/kU4E\":[\"Действие на временной шкале\"],\"MHrjPM\":[\"Заголовок\"],\"+zy2Nq\":[\"Тип\"],\"0gY5lO\":[\"Дата и время обновления\"],\"YFciqL\":[\"Электронная почта пользователя\"],\"d1BTW8\":[\"Идентификатор пользователя\"],\"4juE7s\":[\"Часовой пояс пользователя\"],\"43zCwQ\":[\"Предпочитаемый пользователем формат даты\"],\"kJuoKm\":[\"Предпочитаемый пользователем формат времени\"],\"wMHvYH\":[\"Значение\"],\"7aatUy\":[\"Статус версии\"],\"CdQeU7\":[\"Шаги версии\"],\"PGMPIi\":[\"Триггер версии\"],\"IYNSdp\":[\"Версии\"],\"jpctdh\":[\"Представление\"],\"cZPDyy\":[\"Поле представления\"],\"6jpoH4\":[\"Позиция поля представления\"],\"Ju6gri\":[\"Представление связанного поля\"],\"tvTr2y\":[\"Размер поля представления\"],\"BkII8t\":[\"Целевое поле представления\"],\"Gd/LzL\":[\"Видимость поля представления\"],\"GUFYyq\":[\"Поля представления\"],\"JRtI7Y\":[\"Фильтр представления\"],\"L2gQ5q\":[\"Отображаемое значение фильтра представления\"],\"l9/6pD\":[\"Группа фильтров представления\"],\"Mbosm8\":[\"Идентификатор группы фильтров представления\"],\"/aP3iG\":[\"Группы фильтров представления\"],\"4MG8+B\":[\"Операнд фильтра представления\"],\"OrUkUF\":[\"Представление связанного фильтра\"],\"TyXOtD\":[\"Целевое поле фильтра представления\"],\"3KzkxN\":[\"Значение фильтра представления\"],\"vj5JsR\":[\"Фильтры представления\"],\"ziEP12\":[\"Группа представления\"],\"uQ3c2q\":[\"Представление связанной группы\"],\"EFlLpQ\":[\"Целевое поле группы представления\"],\"b1Vc+l\":[\"Видимость группы представления\"],\"V4nZs/\":[\"Группы представления\"],\"qXlovu\":[\"Иконка представления\"],\"cd/+ZD\":[\"Поле колонки канбан представления\"],\"vdfZ+A\":[\"Ключ представления\"],\"oOljSE\":[\"Наименование представления\"],\"rhO8zp\":[\"Позиция представления\"],\"EUjpwJ\":[\"Сортировка представления\"],\"6ZUale\":[\"Направление сортировки представления\"],\"/rCPqN\":[\"Представление связанной сортировки\"],\"+du2wy\":[\"Целевое поле сортировки представления\"],\"UsdY3K\":[\"Сортировки представления\"],\"clWwIZ\":[\"Целевой объект представления\"],\"bJAIqT\":[\"Тип представления\"],\"1I6UoR\":[\"Представления\"],\"2q/Q7x\":[\"Видимость\"],\"oh8+os\":[\"Видимый\"],\"TRDppN\":[\"Вебхук\"],\"fyB2Wp\":[\"Операция Webhook\"],\"gONLmX\":[\"Операции Webhook\"],\"cPoSTF\":[\"Целевой URL адрес вебхука\"],\"v1kQyJ\":[\"Вебхуки\"],\"TVkCrJ\":[\"Добро пожаловать на Twenty: Пожалуйста, подтвердите ваш email\"],\"bLt/0J\":[\"Бизнес-процесс\"],\"E03XpH\":[\"Прослушиватели событий рабочего процесса, связанные с рабочим процессом.\"],\"vwSkSW\":[\"Рабочий процесс связан с выполнением.\"],\"y9tnFx\":[\"Позиция записи рабочего процесса\"],\"5vIcqC\":[\"Запуск рабочего процесса\"],\"3Iz+qz\":[\"Запуск рабочего процесса завершился в\"],\"IUaK6s\":[\"Позиция запуска рабочего процесса\"],\"zaN7tH\":[\"Запуск рабочего процесса начался в\"],\"1TU2A8\":[\"Статус запуска рабочего процесса\"],\"u6DF/V\":[\"Запуски рабочего процесса\"],\"9nOy7k\":[\"Запуски рабочего процесса, связанные с версией.\"],\"c37F3j\":[\"Запуски рабочего процесса, связанные с рабочим процессом.\"],\"lTXctu\":[\"Версия рабочего процесса\"],\"+wYPET\":[\"Версия рабочего процесса\"],\"CocTJJ\":[\"Версия рабочего процесса, связанная с выполнением.\"],\"9l+pJT\":[\"Позиция версии рабочего процесса\"],\"OCyhkn\":[\"Версии рабочего процесса\"],\"018fP9\":[\"Версии рабочего процесса, связанные с рабочим процессом.\"],\"ENOy6I\":[\"ПрослушивательСобытийРабочегоПроцесса\"],\"HN90FO\":[\"ПрослушивательСобытийРабочегоПроцесса рабочий процесс\"],\"3JA9se\":[\"ПрослушивателиСобытийРабочегоПроцесса\"],\"woYYQq\":[\"Рабочие процессы\"],\"urCUgs\":[\"ВерсияРабочегоПроцесса\"],\"b4kire\":[\"ВерсияРабочегоПроцесса рабочий процесс\"],\"CbGxon\":[\"Участник рабочего пространства\"],\"qc38qR\":[\"Участник рабочего пространства\"],\"R1S9pO\":[\"Аватар участника рабочего пространства\"],\"5VCX7o\":[\"Имя участника рабочего пространства\"],\"YCAEr+\":[\"Участники рабочего пространства\"],\"EtzFC0\":[\"УчастникРабочегоПространства\"],\"0gv+T2\":[\"X\"],\"bTyBrW\":[\"Ваш пароль был успешно изменён\"],\"vPccnr\":[\"Ваш член команды, ответственный за управление корпоративным аккаунтом\"]}")as Messages;
greptile
style: File uses inconsistent naming patterns - some translations use PascalCase (e.g. 'ПрослушивательСобытийРабочегоПроцесса') while others use regular case with spaces
diff block
+import { useRef } from "react";
+import { MenuBarExtra, Icon } from "@raycast/api";
+import { usePromise, runAppleScript } from "@raycast/utils";
+import { useInterval } from "usehooks-ts";
+
+import { cpuUsage as osCpuUsage } from "os-utils";
+import { openActivityMonitorAppleScript } from "./utils";
+import { calculateDiskStorage, getOSInfo } from "./SystemInfo/SystemUtils";
+import { getMemoryUsage } from "./Memory/MemoryUtils";
+import { getNetworkData } from "./Network/NetworkUtils";
+import { getBatteryData } from "./Power/PowerUtils";
+
+import { formatBytes, isObjectEmpty } from "./utils";
+
+export default function Command() {
+ const { data: systemInfo, revalidate: revalidateSystem } = usePromise(async () => {
+ const osInfo = await getOSInfo();
+ const storage = await calculateDiskStorage();
+ return { osInfo, storage };
+ });
+
+ const { data: cupUsage, revalidate: revalidateCpu } = usePromise(() => {
+ return new Promise((resolve) => {
+ osCpuUsage((v) => {
+ resolve(Math.round(v * 100).toString());
+ });
+ });
+ });
+
+ const { data: memoryUsage, revalidate: vevalidateMemory } = usePromise(async () => {
greptile
style: Inconsistent naming: 'vevalidateMemory' should be 'revalidateMemory' to match other revalidate functions
suggested fix
+ const { data: memoryUsage, revalidate: revalidateMemory } = usePromise(async () => {
diff block
actual_output=call_node(query),
)
assert_test(test_case, [metric])
+
+
+def test_trends_for_unique_sessions(metric, call_node):
+ query = "how many $pageviews with unique sessions did we have?"
+ plan = call_node(query)
+
+ test_case = LLMTestCase(
+ input=query,
+ expected_output="""
+ Series:
+ - $pageview
+ - math operation: unique sessions
greptile
style: Inconsistent naming: 'Series' vs 'Events' compared to other test cases in the file
suggested fix
+ Events:
- $pageview
- math operation: unique sessions
diff block
+export const REQUEST_TEMPLATE_TYPE = {
+ STASH: 'stash',
+ SINGBOX: 'singbox',
+ SINGBOX_LEGACY: 'singbox-legacy',
+ MIHOMO: 'mihomo',
+ XRAY_JSON: 'json',
greptile
style: inconsistent naming - 'json' value differs from uppercase pattern used in other values like 'stash', 'singbox', etc
diff block
+/* eslint-disable @typescript-eslint/naming-convention */
+import {
+ experimental_MockUniversalStore,
+ experimental_useUniversalStore,
+} from 'storybook/internal/manager-api';
+
+import * as testUtils from '@storybook/test';
+
+import { createStatusStore } from '../shared/status-store';
+import { UNIVERSAL_STATUS_STORE_OPTIONS } from '../shared/status-store';
+
+export const {
+ fullStatusStore: internal_fullStatusStore,
+ getStatusStoreByTypeId: experimental_getStatusStore,
+ useStatusStore: experimental_useStatusStore,
greptile
style: inconsistent naming convention between internal_ and experimental_ prefixes may cause confusion
diff block
+export enum ClassName {
+ DRUID = 'Druid',
+ HUNTER = 'Hunter',
+ MAGE = 'Mage',
+ PALADIN = 'Paladin',
+ PRIEST = 'Priest',
+ ROGUE = 'Rogue',
+ SHAMAN = 'Shaman',
+ WARLOCK = 'Warlock',
+ WARRIOR = 'Warrior',
+ DEMONHUNTER = 'Demon Hunter',
greptile
style: inconsistent naming - 'DEMONHUNTER' uses uppercase without space while the string value uses 'Demon Hunter' with space. Consider using consistent naming like 'DEMON_HUNTER'
diff block
layout: 'app-container',
defaultDocsPath: '/docs/ai-engineering/observability',
},
+ MessagingAutomations: { name: 'Automations', projectBased: true },
MessagingBroadcasts: { name: 'Messaging', projectBased: true },
MessagingProviders: { name: 'Messaging', projectBased: true },
+ MessagingLibrary: { name: 'Library', projectBased: true },
greptile
style: Inconsistent naming - MessagingBroadcasts and MessagingProviders use name 'Messaging' while MessagingAutomations uses 'Automations' and MessagingLibrary uses 'Library'. Consider standardizing the names
diff block
layout: 'app-container',
defaultDocsPath: '/docs/ai-engineering/observability',
},
- MessagingAutomations: { name: 'Messaging', projectBased: true },
+ MessagingAutomations: { name: 'Automations', projectBased: true },
MessagingBroadcasts: { name: 'Messaging', projectBased: true },
MessagingProviders: { name: 'Messaging', projectBased: true },
- MessagingLibrary: { name: 'Messaging', projectBased: true },
+ MessagingLibrary: { name: 'Library', projectBased: true },
greptile
style: Inconsistent naming pattern - MessagingBroadcasts and MessagingProviders still use 'Messaging' while MessagingAutomations and MessagingLibrary now use different names. Consider standardizing the naming approach across all messaging components.
diff block
+import { Variable } from '@tamagui/web'
+
+import {
+ blue,
+ blueDark,
+ brand,
+ brandDark,
+ customGray,
+ customGrayDark,
+ green,
+ greenDark,
+ // orange,
+ // orangeDark,
+ // pink,
+ // pinkDark,
+ purple,
+ purpleDark,
+ red,
+ redDark,
+ yellow,
+ yellowDark,
+ whiteA,
+ blackA,
+} from './colors'
+
+export {
+ darkColor,
+ darkPalette,
+ darkTransparent,
+ lightColor,
+ lightPalette,
+ lightTransparent,
+ customGrayDark,
+} from './colors'
+
+export const colorTokens = {
+ light: {
+ blue,
+ customGray,
+ green,
+ // orange,
+ // pink,
+ purple,
+ red,
+ yellow,
+ brand,
+ brandDark,
+ whiteA,
+ },
+ dark: {
+ blue: blueDark,
+ gray: customGrayDark,
greptile
style: inconsistent naming - using 'gray' in dark theme but 'customGray' in light theme
suggested fix
+ customGray: customGrayDark,
diff block
export * from './hosts/hosts.mutation.hooks'
export * from './hosts/hosts.query.hooks'
+export * from './hwid-user-devices/hwid-user-devices.mutation.hooks'
+export * from './hwid-user-devices/hwid-user-devices.query.hooks'
+
export * from './inbounds/inbounds.mutation.hooks'
-export * from './inbounds/inbounds.query'
+export * from './inbounds/inbounds.query'
greptile
style: inconsistent naming - inbounds.query should be inbounds.query.hooks to match the pattern used by other modules
diff block
[SecretSync.TerraformCloud]: "Terraform Cloud",
[SecretSync.Camunda]: "Camunda",
[SecretSync.Vercel]: "Vercel",
- [SecretSync.Windmill]: "Windmill"
+ [SecretSync.Windmill]: "Windmill",
+ [SecretSync.HCVault]: "Hashicorp Vault"
greptile
style: Inconsistent naming: 'Hashicorp Vault' vs 'HashiCorp Vault' (official product name has capital 'C')
suggested fix
+ [SecretSync.HCVault]: "HashiCorp Vault"
diff block
+import { DefaultSession, DefaultUser } from "next-auth";
+import { DefaultJWT } from "next-auth/jwt";
+
+declare module "next-auth" {
+ interface Session {
+ user: {
+ id?: string;
+ provider?: string;
+ } & DefaultSession["user"];
+ }
+
+ interface User extends DefaultUser {
+ id: string;
+ provider?: string;
+ }
+}
+
+declare module "next-auth/jwt" {
+ interface JWT extends DefaultJWT {
+ userId?: string;
greptile
style: Inconsistent naming between 'userId' here and 'id' in User/Session interfaces. Consider using 'id' for consistency.
diff block
export enum ValidSources {
Web = "web",
GitHub = "github",
+ github_source = "github_source",
greptile
style: Inconsistent naming convention - should use PascalCase 'GitHubSource' to match other enum values
diff block
+import { faHome } from "@fortawesome/free-solid-svg-icons";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { createFileRoute, linkOptions } from "@tanstack/react-router";
+
+import { CertManagerSettingsPage } from "./CertManagerSettingsPage";
+
+export const Route = createFileRoute(
+ "/_authenticate/_inject-org-details/_org-layout/organization/cert-manager/settings"
+)({
+ component: CertManagerSettingsPage,
+ context: () => ({
+ breadcrumbs: [
+ {
+ label: "Products",
+ icon: () => <FontAwesomeIcon icon={faHome} />
+ },
+ {
+ label: "Cert Management",
+ link: linkOptions({ to: "/organization/cert-manager/overview" })
greptile
style: Inconsistent naming: 'Cert Management' in breadcrumb vs 'Cert Manager' in URL path
diff block
"environment_external_data_schemas",
["team_id"],
)
+environments_router.register(
+ r"fix_hogql",
+ fix_hogql.FixHogQLViewSet,
+ "project_fix_hogql",
+ ["team_id"],
+)
greptile
style: Inconsistent naming - the basename 'project_fix_hogql' should be 'environment_fix_hogql' since this is registered under environments_router and follows the environment pattern
diff block
+import styled from '@emotion/styled';
+import { IconLock } from 'twenty-ui/display';
+
+const StyledEmailBodyNotShareContainer = styled.div`
greptile
syntax: Inconsistent naming: StyledEmailBodyNotShareContainer vs StyledEmailBodyNotSharedContainer (missing 'd')
```suggestion
+const StyledEmailBodyNotSharedContainer = styled.div`
```
diff block
+import styled from '@emotion/styled';
+import { IconLock } from 'twenty-ui/display';
+
+const StyledEmailBodyNotShareContainer = styled.div`
+ align-items: center;
+ background: ${({ theme }) => theme.background.transparent.lighter};
+ border: 1px solid ${({ theme }) => theme.border.color.light};
+ border-radius: ${({ theme }) => theme.spacing(1)};
+ display: flex;
+ flex-direction: column;
+ gap: ${({ theme }) => theme.spacing(3)};
+
+ height: 80px;
+ justify-content: center;
+
+ color: ${({ theme }) => theme.font.color.light};
+ font-size: ${({ theme }) => theme.font.size.sm};
+ font-weight: ${({ theme }) => theme.font.weight.medium};
+ width: 100%;
+`;
+
+const StyledEmailBodyNotSharedIconContainer = styled.div`
+ display: flex;
+ width: 14px;
+ height: 14px;
+ justify-content: center;
+ align-items: center;
+`;
+
+const StyledEmailBodyNotShare = styled.div`
greptile
syntax: Inconsistent naming: StyledEmailBodyNotShare vs StyledEmailBodyNotShared (missing 'd')
```suggestion
+const StyledEmailBodyNotShared = styled.div`
```
diff block
* @param configService - An instance of ConfigService to access application configuration.
* @returns An object containing the Google OAuth configuration parameters.
*/
-export const parseGoogleConfig = (configService: ConfigService): Record<string, any> => {
- // Retrieve Google OAuth client ID from the configuration service, default to 'disabled' if not found.
- const clientID = configService.get<string>('google.clientId');
- // Retrieve Google OAuth client secret from the configuration service, default to 'disabled' if not found.
- const clientSecret = configService.get<string>('google.clientSecret');
- // Retrieve Google OAuth callback URL from the configuration service.
- const callbackURL = configService.get<string>('google.callbackURL');
+export const parseGoogleConfig = (configService: ConfigService): StrategyOptionsWithRequest => {
+ const { clientId, clientSecret, callbackURL } = {
+ // Retrieve the Google client ID from the configuration.
+ clientId: configService.get<string>('google.clientId'),
+ // Retrieve the Google client Secret from the configuration.
+ clientSecret: configService.get<string>('google.clientSecret'),
+ // Retrieve the callback URL from the configuration.
+ callbackURL: configService.get<string>('google.callbackURL')
+ };
// Log a warning if any of the required configuration values are missing.
- if (!clientID || !clientSecret || !callbackURL) {
+ if (!clientId || !clientSecret || !callbackURL) {
console.warn('⚠️ Google OAuth configuration is incomplete. Defaulting to "disabled".');
}
// Return the Google OAuth configuration object.
return {
// Use the retrieved clientID, or default to 'disabled' if not provided.
- clientID: clientID || 'disabled',
+ clientID: clientId || 'disabled',
greptile
style: inconsistent naming: using clientId in destructuring but clientID in config object - should be consistent throughout
diff block
+export const PLATFORM_MAPPING = {
+ windows: "windows",
+ macos: "mac",
+ ios: "mac",
+ linux: "linux",
+ androidos: "android",
greptile
style: 'androidos' key uses inconsistent naming compared to 'macos' - consider standardizing to 'android' or 'androidOS'
suggested fix
+ android: "android",
diff block
+import { createContext, useContext, useEffect, useRef } from "react";
+import { useStore } from "zustand";
+import {
+ createFacetsPanelStore,
+ FacetsPanelState,
+} from "./create-facets-store";
+import { useFacetsLoadingStateHandler } from "./use-facets-loading-state-handler";
+import { useQueriesHandler } from "./use-queries-handler";
+import { useQueryParams } from "./use-query-params/use-query-params";
+import { useFacetsConfig } from "./use-facets-config";
+import { FacetsConfig } from "../models";
+import { useInitialStateHandler } from "./use-initial-state-handler";
+// import { useFacetsStateHandler } from "./use-facets-state-handler";
+
+export function useNewFacetStore(facetsConfig: FacetsConfig | undefined) {
+ const storeRef = useRef<ReturnType<typeof createFacetsPanelStore>>();
+
+ if (!storeRef.current) {
+ storeRef.current = createFacetsPanelStore(); // New store per provider
+ }
+ useFacetsConfig(facetsConfig, storeRef.current);
+ useInitialStateHandler(storeRef.current);
+ useFacetsLoadingStateHandler(storeRef.current);
+ useQueriesHandler(storeRef.current);
+ useQueryParams(storeRef.current);
+
+ return storeRef.current;
+}
+
+const FacetStoreContext = createContext<ReturnType<
+ typeof createFacetsPanelStore
+> | null>(null);
+
+export const FacetStoreProvider = ({
+ store,
+ children,
+}: {
+ store: ReturnType<typeof createFacetsPanelStore>;
+ children: React.ReactNode;
+}) => {
+ return (
+ <FacetStoreContext.Provider value={store}>
+ {children}
+ </FacetStoreContext.Provider>
+ );
+};
+
+// Hook to access the scoped store
+export function useExistingFacetsPanelStore<T>(
+ selector: (state: FacetsPanelState) => T
+): T {
+ const store = useContext(FacetStoreContext);
+ if (!store)
+ throw new Error(
+ "useExistingFacetStore must be used within FacetStoreProvider"
greptile
syntax: error message references 'useExistingFacetStore' but function is named 'useExistingFacetsPanelStore' - inconsistent naming
suggested fix
+ "useExistingFacetsPanelStore must be used within FacetStoreProvider"
diff block
["team_id"],
)
+projects_router.register(r"links", link.LinkViewSet, "environment_links", ["team_id"])
greptile
logic: Inconsistent naming - using 'environment_links' as basename but registering under projects_router. Should either use register_grandfathered_environment_nested_viewset() or rename basename to 'project_links' for consistency
diff block
# Ports to expose externally from the docker image, not the internal ports.
-CL_DAG_L0_PUBLIC_PORT=9000
+CL_DOCKER_EXTERNAL_L0_PUBLIC=9000
CL_DAG_L0_PEER_PORT=9001
-CL_DAG_L1_PUBLIC_PORT=9010
+CL_DOCKER_EXTERNAL_L1_PUBLIC=9010
CL_DAG_L1_PEER_PORT=9011
-CL_DAG_L1_CLI_PORT=9012
+CL_DOCKER_EXTERNAL_L1_CLI=9012
greptile
style: Inconsistent naming pattern - CL_DAG_*_PEER_PORT variables don't follow the new CL_DOCKER_EXTERNAL_* convention
diff block
const meta = {
workflow: "Workflow",
- "step-class": "Step",
- "step-options": "StepOptions",
- "step-condition": "StepCondition",
- "step-function": ".step()",
- after: ".after()",
- then: ".then()",
- until: ".until()",
- while: ".while()",
- if: ".if()",
- else: ".else()",
- createRun: ".createRun()",
- start: ".start()",
- execute: ".execute()",
- suspend: ".suspend()",
+ step: "createStep()",
+ then: "then()",
+ parallel: "parallel()",
+ branch: "branch()",
+ dowhile: "dowhile()",
+ dountil: "dountil()",
+ foreach: "foreach()",
+ map: "map()",
+ commit: "commit()",
+ "create-run": "createRun()",
greptile
style: Inconsistent naming convention - 'create-run' uses hyphen while other entries use camelCase
suggested fix
+ createRun: "createRun()",
diff block
gitlab_per_page_override=git_config.get('gitlab_per_page_override', None),
git_verbose=git_config.get('verbose', False),
creds_envvar_prefix=creds_envvar_prefix,
+ git_gitlab_keep_base_url=git_config.get('keep_base_url', False),
greptile
logic: Inconsistent naming between config field 'keep_base_url' and class attribute 'git_gitlab_keep_base_url'
diff block
["team_id"],
)
+projects_router.register(r"links", link.LinkViewSet, "environment_links", ["team_id"])
greptile
logic: Inconsistent naming - using environment_links basename but registering under projects_router without using register_grandfathered_environment_nested_viewset helper
diff block
+// src/components/checkLogin.tsx
import React from 'react';
-import {
- List,
- ActionPanel,
- Action,
- popToRoot,
- closeMainWindow,
-} from '@raycast/api';
+import * as Raycast from '@raycast/api';
import { exec } from 'child_process';
+// Extract simple components
+const popToRoot = Raycast.popToRoot;
+const closeMainWindow = Raycast.closeMainWindow;
+const Icon = Raycast.Icon;
+
+// Define proper types for List to avoid 'any' usage and interface extension issues
+interface ListProps {
+ isLoading?: boolean;
+ navigationTitle?: string;
+ children?: React.ReactNode;
+}
+
+interface ListComponent {
+ (props: ListProps): React.ReactElement | null;
+ Item: React.ComponentType<Record<string, unknown>>;
+ Section: React.ComponentType<Record<string, unknown>>;
+ EmptyView: React.ComponentType<Record<string, unknown>>;
+}
+
+// Define proper types for ActionPanel
+interface ActionPanelProps {
+ children?: React.ReactNode;
+}
+
+interface ActionPanelComponent {
+ (props: ActionPanelProps): React.ReactElement | null;
+ Section: React.ComponentType<Record<string, unknown>>;
+}
+
+// Define proper types for Action
+interface ActionProps {
+ title: string;
+ icon?: unknown;
+ onAction?: () => void;
+ shortcut?: unknown;
+}
+
+interface ActionComponent {
+ (props: ActionProps): React.ReactElement | null;
+ OpenInBrowser: React.ComponentType<Record<string, unknown>>;
+ Push: React.ComponentType<Record<string, unknown>>;
+ Pop: React.ComponentType<Record<string, unknown>>;
+ Copy: React.ComponentType<Record<string, unknown>>;
+ Paste: React.ComponentType<Record<string, unknown>>;
+ ShowInFinder: React.ComponentType<Record<string, unknown>>;
+ Open: React.ComponentType<Record<string, unknown>>;
+ OpenWith: React.ComponentType<Record<string, unknown>>;
+ SubmitForm: React.ComponentType<Record<string, unknown>>;
+ Trash: React.ComponentType<Record<string, unknown>>;
+}
+
+// Type assertions to bypass the complex intersection type issues
+const List = (Raycast as unknown as { List: ListComponent }).List;
+const ActionPanel = (
+ Raycast as unknown as { ActionPanel: ActionPanelComponent }
+).ActionPanel;
+const Action = (Raycast as unknown as { Action: ActionComponent }).Action;
+
+interface CheckLoginProps {
+ onBack?: () => void; // Add optional onBack prop
+}
+
const openMozillaVpnApp = () => {
- exec('open -a "Mozilla VPN"', (error) => {
+ exec('open -a "Mozilla Vpn"', (error) => {
greptile
logic: inconsistent naming - should be 'Mozilla VPN' instead of 'Mozilla Vpn' to match the official app name
suggested fix
+ exec('open -a "Mozilla VPN"', (error) => {
diff block
+// src/components/checkLogin.tsx
import React from 'react';
-import {
- List,
- ActionPanel,
- Action,
- popToRoot,
- closeMainWindow,
-} from '@raycast/api';
+import * as Raycast from '@raycast/api';
import { exec } from 'child_process';
+// Extract simple components
+const popToRoot = Raycast.popToRoot;
+const closeMainWindow = Raycast.closeMainWindow;
+const Icon = Raycast.Icon;
+
+// Define proper types for List to avoid 'any' usage and interface extension issues
+interface ListProps {
+ isLoading?: boolean;
+ navigationTitle?: string;
+ children?: React.ReactNode;
+}
+
+interface ListComponent {
+ (props: ListProps): React.ReactElement | null;
+ Item: React.ComponentType<Record<string, unknown>>;
+ Section: React.ComponentType<Record<string, unknown>>;
+ EmptyView: React.ComponentType<Record<string, unknown>>;
+}
+
+// Define proper types for ActionPanel
+interface ActionPanelProps {
+ children?: React.ReactNode;
+}
+
+interface ActionPanelComponent {
+ (props: ActionPanelProps): React.ReactElement | null;
+ Section: React.ComponentType<Record<string, unknown>>;
+}
+
+// Define proper types for Action
+interface ActionProps {
+ title: string;
+ icon?: unknown;
+ onAction?: () => void;
+ shortcut?: unknown;
+}
+
+interface ActionComponent {
+ (props: ActionProps): React.ReactElement | null;
+ OpenInBrowser: React.ComponentType<Record<string, unknown>>;
+ Push: React.ComponentType<Record<string, unknown>>;
+ Pop: React.ComponentType<Record<string, unknown>>;
+ Copy: React.ComponentType<Record<string, unknown>>;
+ Paste: React.ComponentType<Record<string, unknown>>;
+ ShowInFinder: React.ComponentType<Record<string, unknown>>;
+ Open: React.ComponentType<Record<string, unknown>>;
+ OpenWith: React.ComponentType<Record<string, unknown>>;
+ SubmitForm: React.ComponentType<Record<string, unknown>>;
+ Trash: React.ComponentType<Record<string, unknown>>;
+}
+
+// Type assertions to bypass the complex intersection type issues
+const List = (Raycast as unknown as { List: ListComponent }).List;
+const ActionPanel = (
+ Raycast as unknown as { ActionPanel: ActionPanelComponent }
+).ActionPanel;
+const Action = (Raycast as unknown as { Action: ActionComponent }).Action;
+
+interface CheckLoginProps {
+ onBack?: () => void; // Add optional onBack prop
+}
+
const openMozillaVpnApp = () => {
- exec('open -a "Mozilla VPN"', (error) => {
+ exec('open -a "Mozilla Vpn"', (error) => {
if (error) {
- console.error('Error opening Mozilla VPN:', error);
+ console.error('Error opening Mozilla Vpn:', error);
} else {
popToRoot();
closeMainWindow();
}
});
};
-const CheckLogin: React.FC = () => {
+const CheckLogin: React.FC<CheckLoginProps> = ({ onBack }) => {
return (
<List.EmptyView
- title="Mozilla VPN Login Required"
- description="Please log in using the Mozilla VPN application. Press Enter to open the app."
- icon="⚠️"
+ title="Mozilla Vpn Login Required"
greptile
logic: inconsistent naming - should be 'Mozilla VPN' instead of 'Mozilla Vpn' to match the official app name
suggested fix
+ title="Mozilla VPN Login Required"
diff block
MEMORY_ONBOARDING = "memory_onboarding"
MEMORY_INITIALIZER = "memory_initializer"
MEMORY_INITIALIZER_INTERRUPT = "memory_initializer_interrupt"
- ROUTER = "router"
+ ROOT = "router"
greptile
logic: Inconsistent naming - node is called ROOT but string value is still 'router'. This could cause confusion and should be updated to 'root' for consistency.
diff block
+---
+description: This is helpful for building and designing prds for our application and how to write them. Refer
+globs: prds/*
+---
+# PRD (Product Requirements Document) Guidelines
+
+## Overview
+This document provides guidelines for creating and managing Product Requirements Documents (PRDs) in our codebase. All PRDs should follow the standardized template located at [template.md](mdc:prds/template.md)
+
+## PRD Structure
+
+### Location
+All PRDs should be stored in the `/prds` directory with the following structure:
+```
+/prds
+├── template.md # The master template for all PRDs
+├── active/ # Active/In-progress PRDs
+│ ├── feature_auth.md
+│ └── api_deployment.md
+├── completed/ # Completed PRDs that have been shipped
+│ ├── feature_user_auth.md
+│ └── api_deployment.md
greptile
style: Example files in the directory structure show inconsistent naming - feature_auth.md vs feature_user_auth.md
diff block
import { SecretSync } from "@app/services/secret-sync/secret-sync-enums";
import { SECRET_SYNC_CONNECTION_MAP, SECRET_SYNC_NAME_MAP } from "@app/services/secret-sync/secret-sync-maps";
+export enum ApiDocsTags {
+ Identities = "Identities",
+ TokenAuth = "Token Auth",
+ UniversalAuth = "Universal Auth",
+ GcpAuth = "Gcp Auth",
+ AwsAuth = "Aws Auth",
+ AzureAuth = "Azure Auth",
+ KubernetesAuth = "Kubernetes Auth",
+ JwtAuth = "JWT Auth",
+ OidcAuth = "OIDC Auth",
+ Groups = "Groups",
+ Organizations = "Organizations",
+ Projects = "Projects",
+ ProjectUsers = "Project Users",
+ ProjectGroups = "Project Groups",
+ ProjectIdentities = "Project Identities",
+ ProjectRoles = "ProjectRoles",
+ ProjectTemplates = "ProjectTemplates",
+ Environments = "Environments",
+ Folders = "Folders",
+ SecretTags = "Secret Tags",
+ Secrets = "Secrets",
+ DynamicSecrets = "Dynamic Secrets",
+ SecretImports = "Secret Imports",
+ SecretRotations = "Secret Rotations",
+ IdentitySpecificPrivileges = "Identity Specific Privileges",
+ AppConnections = "App Connections",
+ AppConnectionsAuth0 = "App Connection Auth0",
+ AppConnectionsAWS = "App Connection AWS",
+ AppConnectionsAzureAppConfiguration = "App Connection Azure App Configuration",
+ AppConnectionsAzureKeyVault = "App Connection Azure Key Vault",
+ AppConnectionsCamunda = "App Connection Camunda",
+ AppConnectionsDatabricks = "App Connection Databricks",
+ AppConnectionsGCP = "App Connection GCP",
+ AppConnectionsGitHub = "App Connection GitHub",
+ AppConnectionHumanitec = "App Connection Humanitec",
+ AppConnectionMsSQL = "App Connection Microsoft SQL Server",
+ AppConnectionPostgreSQL = "App Connection PostgreSQL",
+ AppConnectionTerraformCloud = "App Connection Terraform Cloud",
+ AppConnectionVercel = "App Connection Vercel",
+ AppConnectionWindmill = "App Connection Windmill",
+ SecretSyncs = "Secret Syncs",
+ SecretSyncAwsParameterStore = "Secret Syncs AWS Parameter Store",
+ SecretSyncsAwsSecretManager = "Secret Syncs AWS Secret Manager",
greptile
style: inconsistent naming - 'SecretSyncsAwsSecretManager' vs 'SecretSyncAwsParameterStore' (missing 's' in second one)
diff block
offset=self.query.offset,
)
+ self.sparkLineConfigs = {
+ "volumeDay": ErrorTrackingSparklineConfig(interval=Interval.HOUR, value=24),
+ "volumeMonth": ErrorTrackingSparklineConfig(interval=Interval.DAY, value=31)
+ }
greptile
syntax: inconsistent naming: sparkLineConfigs vs sparklineConfigs (camelCase)
diff block
+---
+description: Describes what is the purpose of the extension and how users should use it
+globs:
+alwaysApply: false
+---
+# Purpose of the extension
+
+- this extension helps user quickly look up HTML colors by name
+- you don't need to remember the exact name of the color, search can be fuzzy with some amount of typos
+
+## UI
+
+- the main interface is search and list of results
+- user searches by typing into the search area
+- most functionality can be utilized with `<List>` component from Raycast API
+- the results are list of possible matches of the colors
+- results are ordered by relevance of how it matches the user input
+- each result contains the name of the color per standard as individual list item
+- there should be a small rectangle displaying the color next to the name
+- there should be secondary text showing HEX value of the color
+- there should be some icon on each result identifying whether the color belongs to basic or extended set
+- UI should contain select which filters the results
+ - all (default) shows both basic and extended colors
+ - basic color only
+ - extended color
greptile
style: inconsistent naming: 'basic color only' vs 'extended color' - should both end with 'only' for consistency
diff block
+import { ActionPanel, Action, List } from "@raycast/api";
+import { useFetch } from "@raycast/utils";
+import { useState } from "react";
+
+export default function Command() {
+ const [videogame, setVideoGame] = useState("");
+
+ const { data, isLoading } = useFetch(
+ "https://lobby.maisesports.com.br/featured/matches?" +
+ new URLSearchParams({ videogame: videogame == "" ? "" : videogame }),
+ {
+ parseResponse: parseFetchResponseMatches,
+ },
+ );
+
+ return (
+ <List
+ isLoading={isLoading}
+ searchBarAccessory={
+ <List.Dropdown tooltip="Filter by game" storeValue onChange={(newValue) => setVideoGame(newValue)}>
+ <List.Dropdown.Item title="All games" value="" />
+ <List.Dropdown.Item icon="./lol.png" title="League of legends" value="league-of-legends" />
+ <List.Dropdown.Item icon="./valorant.png" title="VALORANT" value="valorant" />
+ <List.Dropdown.Item icon="./cs.png" title="Counter-Strike" value="cs-go" />
+ </List.Dropdown>
+ }
+ >
+ {data?.map((match) => (
+ <List.Section
+ title={
+ match.day === new Date().toLocaleDateString()
+ ? "Today"
+ : match.day === new Date(Date.now() + 86400000).toLocaleDateString()
+ ? "Tomorrow"
+ : new Date(match.day).toLocaleDateString(undefined, { weekday: "long" })
+ }
+ subtitle={match.day}
+ key={match.day}
+ >
+ {match.items?.map((item) => <MatcheItem key={item.slug} matche={item} />)}
greptile
style: Inconsistent naming: 'matche' should be 'match' to follow standard naming conventions
diff block
+import { gql } from '@apollo/client';
+
+export const GET_ALL_TELEPHONYS = gql`
+ query GetAllTelephonys($workspaceId: ID!) {
+ findAllTelephony(workspaceId: $workspaceId) {
greptile
style: Inconsistent naming - query name is plural 'Telephonys' but resolver name is singular 'findAllTelephony'
diff block
types=response.types,
hogql=response.hogql,
modifiers=self.modifiers,
+ usedPreAggregatedTables=self.used_preaggregated_tables,
greptile
style: Inconsistent naming convention between snake_case field `used_preaggregated_tables` and camelCase response field `usedPreAggregatedTables`
diff block
+import http from "./http";
+
+const common = {
+ list_Folders: (organization: string, folder_type: string) => {
+ return http().get(`/api/v2/${organization}/folders/${folder_type}`);
+ },
+ new_Folder: (organization: string, folder_type: string, data: any) => {
+ return http().post(`/api/v2/${organization}/folders/${folder_type}`, data, {
+ headers: { "Content-Type": "application/json; charset=UTF-8" },
+ });
+ },
+ edit_Folder: (organization: string, folder_type: string, folderId: any, data: any) => {
+ return http().put(`/api/v2/${organization}/folders/${folder_type}/${folderId}`, data, {
+ headers: { "Content-Type": "application/json; charset=UTF-8" },
+ });
+ },
+ delete_Folder: (organization: string, folder_type: string, folderId: any) => {
+ return http().delete(`/api/v2/${organization}/folders/${folder_type}/${folderId}`);
+ },
+ get_Folder: (organization: string, folder_type: string, folderId: any) => {
+ return http().get(`/api/v2/${organization}/folders/${folder_type}/${folderId}`);
+ },
+ move_across_folders: (organization: string, type: string, data: any) => {
+ return http().patch(`/api/v2/${organization}/${type}/move`, data);
+ }
greptile
style: move_across_folders uses inconsistent naming (snake_case vs camelCase) compared to other methods
diff block
if not user.can_schedule_job(software.schedule_mode):
raise RequestValidationError('Your user does not have the permissions to use that schedule mode.')
- utils.check_repo(software.url, software.branch) # if it exists through the git api
+ utils.check_repo(software.repo_url, software.branch) # if it exists through the git api
if software.schedule_mode in ['daily', 'weekly', 'commit', 'commit-variance', 'tag', 'tag-variance']:
last_marker = None
if 'tag' in software.schedule_mode:
- last_marker = utils.get_repo_last_marker(software.url, 'tags')
+ last_marker = utils.get_repo_last_marker(software.repo_url, 'tags')
if 'commit' in software.schedule_mode:
- last_marker = utils.get_repo_last_marker(software.url, 'commits')
+ last_marker = utils.get_repo_last_marker(software.repo_url, 'commits')
- Watchlist.insert(name=software.name, url=software.url, branch=software.branch, filename=software.filename, machine_id=software.machine_id, user_id=user._id, schedule_mode=software.schedule_mode, last_marker=last_marker)
+ Watchlist.insert(name=software.name, image_url=software.image_url, repo_url=software.repo_url, branch=software.branch, filename=software.filename, machine_id=software.machine_id, user_id=user._id, schedule_mode=software.schedule_mode, last_marker=last_marker)
# even for Watchlist items we do at least one run directly
amount = 3 if 'variance' in software.schedule_mode else 1
for _ in range(0,amount):
- Job.insert('run', user_id=user._id, name=software.name, url=software.url, email=software.email, branch=software.branch, filename=software.filename, machine_id=software.machine_id)
+ Job.insert('run', user_id=user._id, name=software.name, url=software.repo_url, email=software.email, branch=software.branch, filename=software.filename, machine_id=software.machine_id)
greptile
style: Job.insert() still uses 'url' parameter while watchlist uses 'repo_url', inconsistent naming
diff block
"endTime": {
"seconds": int(end_time),
"milliseconds": int((end_time - int(end_time)) * 1000)
- }
+ },
+ "timeToFirstToken": options.get("time_to_first_token") if options.get("time_to_first_token") is not None else None
greptile
logic: Inconsistent naming: `time_to_first_token` vs `time_to_first_token_ms` in LoggingOptions type definition
suggested fix
+ "timeToFirstToken": options.get("time_to_first_token_ms") if options.get("time_to_first_token_ms") is not None else None
Want to avoid this bug in your codebase? Try Greptile.
Avoid this bug!