{
  "version": 3,
  "sources": ["../../../../node_modules/@sniptt/guards/lib/guards/primitives.ts", "../../../../node_modules/@sniptt/guards/lib/guards/structural.ts", "../../../../node_modules/@sniptt/guards/lib/guards/convenience.ts", "../../../../node_modules/@sniptt/guards/lib/index.ts", "twenty-sdk-define-stub:__twenty-sdk-define-stub__", "../../../../src/constants/universal-identifiers.ts", "../../../../src/logic-functions/recall-api/cancel-or-eject-recall-bot.util.ts", "../../../../src/logic-functions/recall-api/get-recall-api-config.util.ts", "../../../../src/logic-functions/constants/call-recorder-name-env-var-name.ts", "../../../../src/logic-functions/constants/default-call-recorder-name.ts", "../../../../src/logic-functions/constants/default-recall-region.ts", "../../../../src/logic-functions/constants/recall-api-key-env-var-name.ts", "../../../../src/logic-functions/constants/recall-region-env-var-name.ts", "../../../../src/logic-functions/utils/get-application-variable-value.util.ts", "../../../../src/logic-functions/utils/is-non-empty-string.util.ts", "../../../../src/logic-functions/utils/normalize-optional-string.util.ts", "../../../../src/logic-functions/recall-api/recall-bot-api-request.util.ts", "../../../../src/logic-functions/constants/recall-api-max-in-process-retry-wait-ms.ts", "../../../../src/logic-functions/constants/recall-api-max-attempts.ts", "../../../../src/logic-functions/constants/recall-api-not-found-status.ts", "../../../../src/logic-functions/constants/recall-api-max-retry-after-ms.ts", "../../../../src/logic-functions/recall-api/parse-recall-retry-after.util.ts", "../../../../src/logic-functions/constants/recall-api-adhoc-pool-retry-delay-ms.ts", "../../../../src/logic-functions/constants/recall-api-retry-delay-ms.ts", "../../../../src/logic-functions/recall-api/recall-api-retry-policy.util.ts", "../../../../src/logic-functions/utils/build-abort-signal-with-timeout.util.ts", "../../../../src/logic-functions/utils/fetch-with-timeout.util.ts", "../../../../src/logic-functions/recall-api/cancel-recall-bot.util.ts", "../../../../src/logic-functions/recall-api/eject-recall-bot.util.ts", "../../../../src/logic-functions/cancel-recall-bot-on-call-recording-delete.ts"],
  "sourcesContent": [null, null, null, null, "\n// Auto-generated stub for twenty-sdk/define injected by the SDK CLI build.\n// Real implementations would pull in zod, twenty-shared and ~1MB of code; at\n// runtime only `default.config.handler` is consumed, so tiny no-ops suffice.\nconst __defineFactoryStub = (config) => ({\n  success: true,\n  config,\n  errors: [],\n});\n\nconst __anyHandler = {\n  get(_target, prop) {\n    if (prop === '__esModule') return true;\n    if (prop === Symbol.toPrimitive) return () => '';\n    if (typeof prop === 'symbol') return undefined;\n    return new Proxy(() => undefined, __anyHandler);\n  },\n  apply() {\n    return new Proxy(() => undefined, __anyHandler);\n  },\n};\nconst __anyStub = new Proxy(() => undefined, __anyHandler);\n\nexport const createValidationResult = __defineFactoryStub;\nexport const defineAgent = __defineFactoryStub;\nexport const defineApplication = __defineFactoryStub;\nexport const defineApplicationRole = __defineFactoryStub;\nexport const defineCommandMenuItem = __defineFactoryStub;\nexport const defineConnectionProvider = __defineFactoryStub;\nexport const defineField = __defineFactoryStub;\nexport const defineFrontComponent = __defineFactoryStub;\nexport const defineIndex = __defineFactoryStub;\nexport const defineLogicFunction = __defineFactoryStub;\nexport const defineNavigationMenuItem = __defineFactoryStub;\nexport const defineObject = __defineFactoryStub;\nexport const definePageLayout = __defineFactoryStub;\nexport const definePageLayoutTab = __defineFactoryStub;\nexport const definePermissionFlag = __defineFactoryStub;\nexport const definePostInstallLogicFunction = __defineFactoryStub;\nexport const definePreInstallLogicFunction = __defineFactoryStub;\nexport const defineRole = __defineFactoryStub;\nexport const defineSettingsFrontComponent = __defineFactoryStub;\nexport const defineSkill = __defineFactoryStub;\nexport const defineTimelineActivityType = __defineFactoryStub;\nexport const defineUninstallLogicFunction = __defineFactoryStub;\nexport const defineView = __defineFactoryStub;\nexport const defineViewField = __defineFactoryStub;\nexport const AggregateOperations = __anyStub;\nexport const CommandMenuItemAvailabilityType = __anyStub;\nexport const DateDisplayFormat = __anyStub;\nexport const FieldMetadataSettingsOnClickAction = __anyStub;\nexport const FieldType = __anyStub;\nexport const HTTPMethod = __anyStub;\nexport const IndexType = __anyStub;\nexport const MetadataWritability = __anyStub;\nexport const NavigationMenuItemType = __anyStub;\nexport const NumberDataType = __anyStub;\nexport const ObjectOpenRecordIn = __anyStub;\nexport const ObjectRecordGroupByDateGranularity = __anyStub;\nexport const OnDeleteAction = __anyStub;\nexport const PageLayoutTabLayoutMode = __anyStub;\nexport const PageLayoutType = __anyStub;\nexport const RelationType = __anyStub;\nexport const RowLevelPermissionPredicateGroupLogicalOperator = __anyStub;\nexport const RowLevelPermissionPredicateOperand = __anyStub;\nexport const STANDARD_OBJECT = __anyStub;\nexport const STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS = __anyStub;\nexport const STANDARD_PAGE_LAYOUT = __anyStub;\nexport const STANDARD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIERS = __anyStub;\nexport const SYSTEM_VIEW_KEYS = __anyStub;\nexport const SystemPermissionFlag = __anyStub;\nexport const ViewCalendarLayout = __anyStub;\nexport const ViewFilterGroupLogicalOperator = __anyStub;\nexport const ViewFilterOperand = __anyStub;\nexport const ViewKey = __anyStub;\nexport const ViewOpenRecordIn = __anyStub;\nexport const ViewSortDirection = __anyStub;\nexport const ViewType = __anyStub;\nexport const ViewVisibility = __anyStub;\nexport const WidgetType = __anyStub;\nexport const canAccessFullAdminPanel = __anyStub;\nexport const canImpersonate = __anyStub;\nexport const every = __anyStub;\nexport const everyDefined = __anyStub;\nexport const everyEquals = __anyStub;\nexport const favoriteRecordIds = __anyStub;\nexport const featureFlags = __anyStub;\nexport const getFieldUniversalIdentifier = __anyStub;\nexport const getSystemRelationFieldUniversalIdentifier = __anyStub;\nexport const getSystemViewFieldUniversalIdentifier = __anyStub;\nexport const getSystemViewUniversalIdentifier = __anyStub;\nexport const hasAnySoftDeleteFilterOnView = __anyStub;\nexport const includes = __anyStub;\nexport const includesEvery = __anyStub;\nexport const isDashboardPageLayoutInEditMode = __anyStub;\nexport const isDefined = __anyStub;\nexport const isInSidePanel = __anyStub;\nexport const isLayoutCustomizationModeEnabled = __anyStub;\nexport const isNonEmptyString = __anyStub;\nexport const isSelectAll = __anyStub;\nexport const none = __anyStub;\nexport const noneDefined = __anyStub;\nexport const noneEquals = __anyStub;\nexport const numberOfSelectedRecords = __anyStub;\nexport const objectMetadataItem = __anyStub;\nexport const objectMetadataLabel = __anyStub;\nexport const objectPermissions = __anyStub;\nexport const pageType = __anyStub;\nexport const selectedRecords = __anyStub;\nexport const some = __anyStub;\nexport const someDefined = __anyStub;\nexport const someEquals = __anyStub;\nexport const someNonEmptyString = __anyStub;\nexport const targetObjectReadPermissions = __anyStub;\nexport const targetObjectWritePermissions = __anyStub;\nexport const validateFields = __anyStub;\n", "export const APPLICATION_UNIVERSAL_IDENTIFIER =\n  '8da4b8b5-5edf-4880-b51f-ab6e679ec617';\n\nexport const BOT_SCHEDULE_ATTEMPTED_AT_FIELD_UNIVERSAL_IDENTIFIER =\n  'ca1d0179-f611-46bd-ba8a-b503ea9d024e';\n\nexport const BOT_SCHEDULE_IDEMPOTENCY_KEY_FIELD_UNIVERSAL_IDENTIFIER =\n  '6f00ea4d-1c5a-47ac-8c18-baacf5ee7c3f';\n\nexport const CALENDAR_EVENT_RECONCILIATION_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '1f28c477-6423-4911-85bf-2296ef112be9';\n\nexport const CALL_RECORDER_ADDITIONAL_SUMMARY_PROMPT_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  '587ead10-c514-468c-944f-17050c88dcc1';\n\nexport const CALL_RECORDER_BOT_IMAGE_BACKGROUND_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  'fd0d9495-29ae-443e-84f9-4ec4d1f2d16a';\n\nexport const CALL_RECORDER_CALENDAR_BOT_SCHEDULING_ENABLED_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  'e1cf956b-356f-468d-b5d9-044ed5fd9e5b';\n\nexport const CALL_RECORDER_EVERYONE_LEFT_TIMEOUT_SECONDS_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  'c866ddd4-fb7b-4cb4-8ad1-5599755e495c';\n\nexport const CALL_RECORDER_FAILURE_REASON_ON_CALL_RECORDING_FIELD_UNIVERSAL_IDENTIFIER =\n  '33a577e4-02f5-48bd-8bed-d365949caa72';\n\nexport const CALL_RECORDER_JOIN_EARLY_MINUTES_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  '0568ebb2-3f64-47de-8c0d-d367dfbb7462';\n\nexport const CALL_RECORDER_NAME_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  'c54cbacd-ad10-40b4-9056-7aaf23846d64';\n\nexport const CALL_RECORDER_NOONE_JOINED_TIMEOUT_SECONDS_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  '241180e8-d864-4160-ad02-db44a9e8d395';\n\nexport const CALL_RECORDER_PREFERENCE_ON_CALENDAR_EVENT_FIELD_UNIVERSAL_IDENTIFIER =\n  '8ee9444a-2437-4def-8e61-6e493862a4fd';\n\nexport const CALL_RECORDER_RECORDING_NOTICE_ENABLED_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  'fbf5f1ef-34c7-4411-b392-e314f6d064d0';\n\nexport const CALL_RECORDER_RECORDING_NOTICE_MESSAGE_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  '7103451a-2c46-4c16-bc2c-a9f28b329ee5';\n\nexport const CALL_RECORDER_SUMMARY_ENABLED_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  '1d7bf052-4338-44da-b373-23f6d291a50c';\n\nexport const CALL_RECORDER_TRANSCRIPT_PROVIDER_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  '598c1003-2767-4ccf-bc95-c251e6b92189';\n\nexport const CALL_RECORDER_USE_WORKSPACE_LOGO_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  'fc06a41c-d1f3-4c51-a64b-d71ed77374c1';\n\nexport const CALL_RECORDER_WAITING_ROOM_TIMEOUT_SECONDS_APP_VARIABLE_UNIVERSAL_IDENTIFIER =\n  '12e4e14d-d539-4d07-b477-4773539dd20b';\n\nexport const CALL_RECORDING_AUDIO_FIELD_UNIVERSAL_IDENTIFIER =\n  '2eafc2d0-8fec-430c-a939-65ca5fbc0f08';\n\nexport const CALL_RECORDING_SUMMARIZER_AGENT_UNIVERSAL_IDENTIFIER =\n  '388543f3-ec85-4905-ad7d-99801337ed5c';\n\nexport const CALL_RECORDING_VIDEO_FIELD_UNIVERSAL_IDENTIFIER =\n  'bb9523d3-457e-4f4b-8c79-27a77afb87da';\n\nexport const CANCEL_SCHEDULED_RECALL_BOTS_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  'a1b0f097-edeb-45a3-a53e-bf666cbfe3a4';\n\nexport const CANCEL_RECALL_BOT_ON_CALL_RECORDING_DELETE_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '84981386-881f-4123-a2dd-82e0932ba663';\n\nexport const CANCEL_RECALL_BOTS_ON_UNINSTALL_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '8f00ec95-38f0-4dc7-816a-78374affa32a';\n\nexport const CHECK_CREDITS_BEFORE_RECALL_BOT_JOIN_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  'bf482989-973e-48be-994e-050431686994';\n\nexport const CLEANUP_ORPHANED_RECALL_BOTS_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  'fa394597-dc73-4fee-9758-dea7401b0b8f';\n\nexport const DEFAULT_ROLE_UNIVERSAL_IDENTIFIER =\n  '5fcf4d3a-0aca-42d9-9beb-7387f43ec180';\n\nexport const ENQUEUE_CALL_RECORDING_RECOVERY_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  'e93a646b-31bd-45e6-86e3-9a54f4f7d141';\n\nexport const ENQUEUE_ORPHANED_RECALL_BOT_CLEANUP_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '455458ce-bbc3-4b39-a3f2-950540c9eda7';\n\nexport const GENERATE_CALL_RECORDING_SUMMARIES_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '3467c68d-5d81-4f16-8234-b4182cb17f19';\n\nexport const GENERATE_CALL_RECORDING_SUMMARY_COMMAND_MENU_ITEM_UNIVERSAL_IDENTIFIER =\n  '6b7b0989-2946-413b-9b6a-08336b418788';\n\nexport const GENERATE_CALL_RECORDING_SUMMARY_FRONT_COMPONENT_UNIVERSAL_IDENTIFIER =\n  '4b81fd8f-5626-4d5a-a97e-0543436bb555';\n\nexport const IMPORT_CALL_RECORDING_ARTIFACTS_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '6b975429-7f0d-4a08-8e5e-5a830e6dc621';\n\nexport const PENDING_CALL_RECORDING_REQUESTS_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  'd7d1170f-abb1-4c9b-8258-13219a611b03';\n\nexport const PROCESS_RECALL_WEBHOOK_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '13d9c427-447e-494a-8d3c-1af5d0bacb82';\n\nexport const RECALL_WEBHOOK_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '9215afe6-1497-4149-a49d-e608e239bbaf';\n\nexport const RECONCILE_UPCOMING_CALENDAR_EVENTS_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '06fafff7-c722-41d1-869d-9554736f4c53';\n\nexport const SCHEDULE_RECALL_BOT_ON_CALL_RECORDING_UPDATE_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  'fad4b1b5-8b6e-48c7-a8c7-3aecae2672c1';\n\nexport const STALE_BOT_STATE_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  'e362aa9b-52c6-4b7e-bb20-927e0e8d7cbe';\n\nexport const START_POST_INSTALL_BACKFILLS_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '53e0acb4-b761-40c9-8aaf-554d2a5da00f';\n\nexport const SUMMARIZE_CALL_RECORDING_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  'c7a59e9c-935d-45ae-ae95-ded8d327f581';\n\nexport const SWEEP_UPCOMING_CALENDAR_EVENTS_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '05ab984e-c6ad-4b1c-800f-8f029dc7aac8';\n\nexport const SYNC_CALENDAR_BOT_SCHEDULING_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER =\n  '1ec45adf-8521-4a53-833f-3b9bc20f0e9d';\n", "import { isNull } from '@sniptt/guards';\n\nimport { cancelRecallBot } from 'src/logic-functions/recall-api/cancel-recall-bot.util';\nimport { ejectRecallBot } from 'src/logic-functions/recall-api/eject-recall-bot.util';\n\nexport const cancelOrEjectRecallBot = async (\n  externalBotId: string,\n): Promise<boolean> => {\n  const cancelResult = await cancelRecallBot({ externalBotId });\n\n  if (cancelResult.ok) {\n    return true;\n  }\n\n  let failureMessage = cancelResult.errorMessage;\n\n  // Deleting only works for not-yet-joined bots; eject the ones already in a call.\n  if (!isNull(cancelResult.status)) {\n    const ejectResult = await ejectRecallBot({ externalBotId });\n\n    if (ejectResult.ok) {\n      return true;\n    }\n\n    failureMessage = ejectResult.errorMessage;\n  }\n\n  console.warn(\n    `[call-recorder] failed to cancel or eject Recall bot ${externalBotId}: ${failureMessage}`,\n  );\n\n  return false;\n};\n", "import { isUndefined } from '@sniptt/guards';\n\nimport { CALL_RECORDER_NAME_ENV_VAR_NAME } from 'src/logic-functions/constants/call-recorder-name-env-var-name';\nimport { DEFAULT_CALL_RECORDER_NAME } from 'src/logic-functions/constants/default-call-recorder-name';\nimport { DEFAULT_RECALL_REGION } from 'src/logic-functions/constants/default-recall-region';\nimport { RECALL_API_KEY_ENV_VAR_NAME } from 'src/logic-functions/constants/recall-api-key-env-var-name';\nimport { RECALL_REGION_ENV_VAR_NAME } from 'src/logic-functions/constants/recall-region-env-var-name';\nimport { getApplicationVariableValue } from 'src/logic-functions/utils/get-application-variable-value.util';\nimport { normalizeOptionalString } from 'src/logic-functions/utils/normalize-optional-string.util';\n\nexport type RecallApiConfig = {\n  apiKey: string;\n  baseUrl: string;\n  botName: string;\n};\n\nexport const getRecallApiConfig = ():\n  | {\n      success: true;\n      config: RecallApiConfig;\n    }\n  | {\n      success: false;\n      error: string;\n    } => {\n  const apiKey = normalizeOptionalString(\n    getApplicationVariableValue(RECALL_API_KEY_ENV_VAR_NAME)?.trim(),\n  );\n\n  if (isUndefined(apiKey)) {\n    return {\n      success: false,\n      error:\n        'RECALL_API_KEY server variable is not set. A server admin must set it on the Call Recorder application registration before scheduling bots.',\n    };\n  }\n\n  const region =\n    normalizeOptionalString(\n      getApplicationVariableValue(RECALL_REGION_ENV_VAR_NAME)?.trim(),\n    ) ?? DEFAULT_RECALL_REGION;\n  const botName =\n    normalizeOptionalString(\n      getApplicationVariableValue(CALL_RECORDER_NAME_ENV_VAR_NAME)?.trim(),\n    ) ?? DEFAULT_CALL_RECORDER_NAME;\n\n  return {\n    success: true,\n    config: {\n      apiKey,\n      baseUrl: `https://${region}.recall.ai/api/v1`,\n      botName,\n    },\n  };\n};\n", "export const CALL_RECORDER_NAME_ENV_VAR_NAME = 'CALL_RECORDER_NAME';\n", "export const DEFAULT_CALL_RECORDER_NAME = 'Twenty.com';\n", "export const DEFAULT_RECALL_REGION = 'eu-central-1';\n", "export const RECALL_API_KEY_ENV_VAR_NAME = 'RECALL_API_KEY';\n", "export const RECALL_REGION_ENV_VAR_NAME = 'RECALL_REGION';\n", "// Application and server variables are injected into process.env on every execution.\nexport const getApplicationVariableValue = (key: string): string | undefined =>\n  process.env[key];\n", "import { isString } from '@sniptt/guards';\n\n// Trimming variant of @sniptt/guards isNonEmptyString, for normalizing at read boundaries.\nexport const isNonEmptyString = (value: unknown): value is string =>\n  isString(value) && value.trim() !== '';\n", "import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util';\n\nexport const normalizeOptionalString = (\n  value: string | null | undefined,\n): string | undefined => (isNonEmptyString(value) ? value : undefined);\n", "import { isUndefined } from '@sniptt/guards';\n\nimport { RECALL_API_MAX_IN_PROCESS_RETRY_WAIT_MS } from 'src/logic-functions/constants/recall-api-max-in-process-retry-wait-ms';\nimport { RECALL_API_MAX_ATTEMPTS } from 'src/logic-functions/constants/recall-api-max-attempts';\nimport { RECALL_API_NOT_FOUND_STATUS } from 'src/logic-functions/constants/recall-api-not-found-status';\nimport { type RecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util';\nimport { parseRecallRetryAfterMs } from 'src/logic-functions/recall-api/parse-recall-retry-after.util';\nimport {\n  isRetryableRecallApiStatus,\n  resolveRecallApiRetryDelayMs,\n} from 'src/logic-functions/recall-api/recall-api-retry-policy.util';\nimport { fetchWithTimeout } from 'src/logic-functions/utils/fetch-with-timeout.util';\n\ntype RecallBotApiRequestArgs = {\n  config: RecallApiConfig;\n  path: string;\n  method: 'GET' | 'POST' | 'PATCH' | 'DELETE';\n  body?: unknown;\n  idempotencyKey?: string;\n  allowNotFound?: boolean;\n  signal?: AbortSignal;\n};\n\ntype RecallBotApiRequestResult<TData> =\n  | {\n      ok: true;\n      status: number;\n      data: TData;\n    }\n  | {\n      ok: false;\n      status: number | null;\n      errorMessage: string;\n    };\n\n// Retried creates provide an idempotency key so ambiguous attempts cannot\n// create duplicates.\nexport const recallBotApiRequest = async <TData>(\n  requestArgs: RecallBotApiRequestArgs,\n): Promise<RecallBotApiRequestResult<TData>> => {\n  let totalRetryWaitMs = 0;\n\n  for (let attemptNumber = 1; ; attemptNumber++) {\n    requestArgs.signal?.throwIfAborted();\n    const { result, isRetryable, retryAfterMs } =\n      await performRecallBotApiRequestAttempt<TData>(requestArgs);\n\n    if (!isRetryable || attemptNumber >= RECALL_API_MAX_ATTEMPTS) {\n      return result;\n    }\n\n    const retryDelayMs = resolveRecallApiRetryDelayMs({\n      retryAfterMs,\n      status: result.status,\n      attemptNumber,\n    });\n\n    // Sleeping past the invocation budget would hit the timeout kill; defer to the reconcilers.\n    if (\n      totalRetryWaitMs + retryDelayMs >=\n      RECALL_API_MAX_IN_PROCESS_RETRY_WAIT_MS\n    ) {\n      return result;\n    }\n\n    totalRetryWaitMs += retryDelayMs;\n    await sleep(retryDelayMs);\n  }\n};\n\nconst performRecallBotApiRequestAttempt = async <TData>({\n  config,\n  path,\n  method,\n  body,\n  idempotencyKey,\n  allowNotFound = false,\n  signal,\n}: RecallBotApiRequestArgs): Promise<{\n  result: RecallBotApiRequestResult<TData>;\n  isRetryable: boolean;\n  retryAfterMs?: number;\n}> => {\n  let response: Response;\n\n  try {\n    response = await fetchWithTimeout(`${config.baseUrl}${path}`, {\n      method,\n      signal,\n      headers: {\n        Authorization: buildRecallApiAuthorizationHeader(config.apiKey),\n        ...(isUndefined(idempotencyKey)\n          ? {}\n          : { 'Idempotency-Key': idempotencyKey }),\n        ...(isUndefined(body) ? {} : { 'Content-Type': 'application/json' }),\n      },\n      ...(isUndefined(body) ? {} : { body: JSON.stringify(body) }),\n    });\n  } catch (error) {\n    if (signal?.aborted) {\n      throw error;\n    }\n\n    return {\n      isRetryable: true,\n      result: {\n        ok: false,\n        status: null,\n        errorMessage: `Recall API request failed: ${\n          error instanceof Error ? error.message : String(error)\n        }`,\n      },\n    };\n  }\n\n  if (allowNotFound && response.status === RECALL_API_NOT_FOUND_STATUS) {\n    return {\n      isRetryable: false,\n      result: {\n        ok: true,\n        status: response.status,\n        data: undefined as TData,\n      },\n    };\n  }\n\n  if (response.status === 204) {\n    return {\n      isRetryable: false,\n      result: {\n        ok: true,\n        status: response.status,\n        data: undefined as TData,\n      },\n    };\n  }\n\n  if (!response.ok) {\n    return {\n      isRetryable: isRetryableRecallApiStatus(response.status),\n      retryAfterMs: parseRecallRetryAfterMs(\n        response.headers?.get('retry-after') ?? null,\n        Date.now(),\n      ),\n      result: {\n        ok: false,\n        status: response.status,\n        errorMessage: await extractRecallApiErrorMessage(response),\n      },\n    };\n  }\n\n  try {\n    return {\n      isRetryable: false,\n      result: {\n        ok: true,\n        status: response.status,\n        data: (await response.json()) as TData,\n      },\n    };\n  } catch (error) {\n    const isAborted =\n      error instanceof Error &&\n      (error.name === 'TimeoutError' || error.name === 'AbortError');\n\n    return {\n      isRetryable: isAborted,\n      result: {\n        ok: false,\n        status: isAborted ? null : response.status,\n        errorMessage: `Recall API returned a non-JSON response: ${\n          error instanceof Error ? error.message : String(error)\n        }`,\n      },\n    };\n  }\n};\n\nconst sleep = (delayMs: number): Promise<void> =>\n  new Promise((resolve) => {\n    setTimeout(resolve, delayMs);\n  });\n\nconst buildRecallApiAuthorizationHeader = (apiKey: string): string => {\n  const trimmedApiKey = apiKey.trim();\n\n  return trimmedApiKey.toLowerCase().startsWith('token ')\n    ? trimmedApiKey\n    : `Token ${trimmedApiKey}`;\n};\n\nconst extractRecallApiErrorMessage = async (\n  response: Response,\n): Promise<string> => {\n  const fallback = `Recall API responded with HTTP ${response.status}`;\n\n  try {\n    const body = (await response.json()) as unknown;\n\n    return `${fallback}: ${JSON.stringify(body)}`;\n  } catch {\n    return fallback;\n  }\n};\n", "export const RECALL_API_MAX_IN_PROCESS_RETRY_WAIT_MS = 10_000;\n", "export const RECALL_API_MAX_ATTEMPTS = 3;\n", "export const RECALL_API_NOT_FOUND_STATUS = 404;\n", "export const RECALL_API_MAX_RETRY_AFTER_MS = 60_000;\n", "import { RECALL_API_MAX_RETRY_AFTER_MS } from 'src/logic-functions/constants/recall-api-max-retry-after-ms';\n\nexport const parseRecallRetryAfterMs = (\n  retryAfterHeader: string | null,\n  nowMs: number,\n): number | undefined => {\n  if (retryAfterHeader === null) {\n    return undefined;\n  }\n\n  const trimmedRetryAfterHeader = retryAfterHeader.trim();\n\n  if (trimmedRetryAfterHeader.length === 0) {\n    return undefined;\n  }\n\n  if (/^\\d+$/.test(trimmedRetryAfterHeader)) {\n    return capRecallRetryAfterMs(Number(trimmedRetryAfterHeader) * 1000);\n  }\n\n  // Malformed numeric forms (1.5, 1e2, 0x10) would be misread as dates by Date.parse.\n  if (!Number.isNaN(Number(trimmedRetryAfterHeader))) {\n    return undefined;\n  }\n\n  const retryAfterDateMs = Date.parse(trimmedRetryAfterHeader);\n\n  if (Number.isNaN(retryAfterDateMs)) {\n    return undefined;\n  }\n\n  return capRecallRetryAfterMs(Math.max(0, retryAfterDateMs - nowMs));\n};\n\nconst capRecallRetryAfterMs = (retryAfterMs: number): number =>\n  Math.min(retryAfterMs, RECALL_API_MAX_RETRY_AFTER_MS);\n", "export const RECALL_API_ADHOC_POOL_RETRY_DELAY_MS = 10_000;\n", "export const RECALL_API_RETRY_DELAY_MS = 500;\n", "import { RECALL_API_ADHOC_POOL_RETRY_DELAY_MS } from 'src/logic-functions/constants/recall-api-adhoc-pool-retry-delay-ms';\nimport { RECALL_API_RETRY_DELAY_MS } from 'src/logic-functions/constants/recall-api-retry-delay-ms';\n\nconst RECALL_STATUS_UNAUTHORIZED = 401;\nconst RECALL_STATUS_PAYMENT_REQUIRED = 402;\nconst RECALL_STATUS_FORBIDDEN = 403;\nconst RECALL_STATUS_RATE_LIMITED = 429;\nconst RECALL_STATUS_CONFLICT = 409;\nconst RECALL_STATUS_ADHOC_POOL_EXHAUSTED = 507;\n\nconst isRecallServerError = (status: number): boolean => status >= 500;\n\nexport const isRetryableRecallApiStatus = (status: number): boolean =>\n  status === RECALL_STATUS_RATE_LIMITED ||\n  status === RECALL_STATUS_CONFLICT ||\n  isRecallServerError(status);\n\nexport const isRecallAccountStatus = (status: number): boolean =>\n  status === RECALL_STATUS_UNAUTHORIZED ||\n  status === RECALL_STATUS_PAYMENT_REQUIRED ||\n  status === RECALL_STATUS_FORBIDDEN;\n\nexport const resolveRecallApiRetryDelayMs = ({\n  retryAfterMs,\n  status,\n  attemptNumber,\n  random = Math.random,\n}: {\n  retryAfterMs: number | undefined;\n  status: number | null;\n  attemptNumber: number;\n  random?: () => number;\n}): number => {\n  if (retryAfterMs !== undefined) {\n    return retryAfterMs;\n  }\n\n  if (status === RECALL_STATUS_ADHOC_POOL_EXHAUSTED) {\n    return RECALL_API_ADHOC_POOL_RETRY_DELAY_MS;\n  }\n\n  // Equal jitter so retries sharing a failure instant do not re-collide.\n  const baseDelayMs = RECALL_API_RETRY_DELAY_MS * attemptNumber;\n\n  return Math.round((baseDelayMs * (1 + random())) / 2);\n};\n", "import { isUndefined } from '@sniptt/guards';\n\nexport const buildAbortSignalWithTimeout = ({\n  timeoutMs,\n  signal,\n}: {\n  timeoutMs: number;\n  signal: AbortSignal | undefined;\n}): AbortSignal =>\n  AbortSignal.any([\n    AbortSignal.timeout(timeoutMs),\n    ...(isUndefined(signal) ? [] : [signal]),\n  ]);\n", "import { buildAbortSignalWithTimeout } from 'src/logic-functions/utils/build-abort-signal-with-timeout.util';\n\nconst REQUEST_TIMEOUT_MS = 10_000;\n\nexport const fetchWithTimeout: typeof fetch = (input, options) => {\n  const signal =\n    options?.signal ?? (input instanceof Request ? input.signal : undefined);\n\n  return fetch(input, {\n    ...options,\n    signal: buildAbortSignalWithTimeout({\n      timeoutMs: REQUEST_TIMEOUT_MS,\n      signal,\n    }),\n  });\n};\n", "import { type RecallBotRemovalResult } from 'src/logic-functions/types/recall-bot-operation-result.type';\nimport { getRecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util';\nimport { recallBotApiRequest } from 'src/logic-functions/recall-api/recall-bot-api-request.util';\n\nexport const cancelRecallBot = async ({\n  externalBotId,\n}: {\n  externalBotId: string;\n}): Promise<RecallBotRemovalResult> => {\n  const configResult = getRecallApiConfig();\n\n  if (!configResult.success) {\n    return { ok: false, status: null, errorMessage: configResult.error };\n  }\n\n  const result = await recallBotApiRequest<undefined>({\n    config: configResult.config,\n    path: `/bot/${externalBotId}/`,\n    method: 'DELETE',\n    allowNotFound: true,\n  });\n\n  if (!result.ok) {\n    return result;\n  }\n\n  return { ok: true };\n};\n", "import { type RecallBotRemovalResult } from 'src/logic-functions/types/recall-bot-operation-result.type';\nimport { getRecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util';\nimport { recallBotApiRequest } from 'src/logic-functions/recall-api/recall-bot-api-request.util';\n\nexport const ejectRecallBot = async ({\n  externalBotId,\n}: {\n  externalBotId: string;\n}): Promise<RecallBotRemovalResult> => {\n  const configResult = getRecallApiConfig();\n\n  if (!configResult.success) {\n    return { ok: false, status: null, errorMessage: configResult.error };\n  }\n\n  const result = await recallBotApiRequest<undefined>({\n    config: configResult.config,\n    path: `/bot/${externalBotId}/leave_call/`,\n    method: 'POST',\n    allowNotFound: true,\n  });\n\n  if (!result.ok) {\n    return result;\n  }\n\n  return { ok: true };\n};\n", "import {\n  defineLogicFunction,\n  type DatabaseEventPayload,\n  type ObjectRecordBaseEvent,\n} from 'twenty-sdk/define';\n\nimport { CANCEL_RECALL_BOT_ON_CALL_RECORDING_DELETE_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER } from 'src/constants/universal-identifiers';\nimport { cancelOrEjectRecallBot } from 'src/logic-functions/recall-api/cancel-or-eject-recall-bot.util';\nimport { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util';\n\nconst CALL_RECORDING_OBJECT_NAME = 'callRecording';\n\ntype CallRecordingForDeleteEvent = {\n  id: string;\n  externalBotId?: string | null;\n};\n\ntype CallRecordingDeleteEvent = DatabaseEventPayload<\n  ObjectRecordBaseEvent<CallRecordingForDeleteEvent>\n>;\n\ntype CancelRecallBotOnCallRecordingDeleteResult =\n  | { skipped: true; reason: string }\n  | {\n      callRecordingId: string;\n      externalBotId: string;\n      canceled: boolean;\n    };\n\nexport const cancelRecallBotOnCallRecordingDeleteHandler = async (\n  event: CallRecordingDeleteEvent,\n): Promise<CancelRecallBotOnCallRecordingDeleteResult> => {\n  if (event.name !== `${CALL_RECORDING_OBJECT_NAME}.deleted`) {\n    return { skipped: true, reason: 'not a call recording deletion' };\n  }\n\n  const externalBotId = event.properties.before?.externalBotId;\n\n  if (!isNonEmptyString(externalBotId)) {\n    return { skipped: true, reason: 'call recording has no Recall bot' };\n  }\n\n  const normalizedExternalBotId = externalBotId.trim();\n  const canceled = await cancelOrEjectRecallBot(normalizedExternalBotId);\n\n  return {\n    callRecordingId: event.recordId,\n    externalBotId: normalizedExternalBotId,\n    canceled,\n  };\n};\n\nexport default defineLogicFunction({\n  universalIdentifier:\n    CANCEL_RECALL_BOT_ON_CALL_RECORDING_DELETE_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER,\n  name: 'cancel-recall-bot-on-call-recording-delete',\n  description:\n    'Best-effort cancellation or ejection of a Recall bot when its CallRecording is deleted.',\n  timeoutSeconds: 60,\n  handler: cancelRecallBotOnCallRecordingDeleteHandler,\n  databaseEventTriggerSettings: {\n    eventName: `${CALL_RECORDING_OBJECT_NAME}.deleted`,\n  },\n});\n"],
  "mappings": "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",
  "names": ["isUndefined", "isString", "isNull", "isNonEmptyString", "import_guards", "import_guards", "import_guards", "import_guards"]
}
