From 49cbd57b393e99df13899f1f8235062f964b90c4 Mon Sep 17 00:00:00 2001 From: ehconitin Date: Thu, 25 Jun 2026 00:04:55 +0530 Subject: [PATCH] chore(apps): move call-recorder to public, remove stale meeting-bot duplicate --- .../call-recorder/.env.example | 0 .../call-recorder/.gitignore | 0 .../{internal => public}/call-recorder/.nvmrc | 0 .../call-recorder/.oxlintrc.json | 0 .../call-recorder/.yarnrc.yml | 0 .../call-recorder/AGENTS.md | 0 .../call-recorder/CLAUDE.md | 0 .../call-recorder/README.md | 0 .../call-recorder/package.json | 0 .../public/gallery/call-recorder-cover.png | Bin .../call-recorder/public/logo.svg | 0 .../src/__tests__/global-setup.ts | 0 .../src/__tests__/schema.integration-test.ts | 0 .../call-recorder/src/application-config.ts | 0 ...ording-field-universal-identifiers.test.ts | 0 .../src/constants/app-description.ts | 0 .../src/constants/app-display-name.ts | 0 .../application-universal-identifier.ts | 0 ...ion-logic-function-universal-identifier.ts | 0 ...record-page-layout-universal-identifier.ts | 0 ...ng-front-component-universal-identifier.ts | 0 ...ng-page-layout-tab-universal-identifier.ts | 0 ...page-layout-widget-universal-identifier.ts | 0 ...conds-app-variable-universal-identifier.ts | 0 ...ll-recording-field-universal-identifier.ts | 0 ...nutes-app-variable-universal-identifier.ts | 0 ...-name-app-variable-universal-identifier.ts | 0 ...conds-app-variable-universal-identifier.ts | 0 .../call-recorder-preference-off-option-id.ts | 0 ...lendar-event-field-universal-identifier.ts | 0 ...r-event-view-field-universal-identifier.ts | 0 .../call-recorder-preference-on-option-id.ts | 0 .../src/constants/call-recorder-preference.ts | 0 ...conds-app-variable-universal-identifier.ts | 0 ...ording-audio-field-universal-identifier.ts | 0 ...ording-video-field-universal-identifier.ts | 0 .../default-role-universal-identifier.ts | 0 ...ook-logic-function-universal-identifier.ts | 0 ...ate-logic-function-universal-identifier.ts | 0 .../call-recorder/src/default-role.ts | 0 ...-failure-reason-on-call-recording.field.ts | 0 ...rder-preference-on-calendar-event.field.ts | 0 ...lendar-event-recording.front-component.tsx | 0 .../components/CalendarEventRecording.tsx | 0 .../components/CalendarEventRecordingBody.tsx | 0 .../CalendarEventRecordingContent.tsx | 0 .../components/RecordingTranscript.tsx | 0 .../components/RecordingVideoPlayer.tsx | 0 .../components/TranscriptEntryList.tsx | 0 .../components/TranscriptEntryListItem.tsx | 0 .../components/TranscriptErrorBox.tsx | 0 .../components/TranscriptSpeakerAvatar.tsx | 0 .../components/TranscriptSpeakerChip.tsx | 0 .../recording-theme-css-variables.ts | 0 .../hooks/use-calendar-event-participants.ts | 0 .../hooks/use-calendar-event-recording.ts | 0 ...-event-participant-by-speaker-name.type.ts | 0 ...lendar-event-recording-participant.type.ts | 0 .../types/transcript-entry.type.ts | 0 ...find-active-transcript-entry-index.test.ts | 0 .../format-transcript-timestamp.test.ts | 0 .../get-speaker-name-match-keys.test.ts | 0 .../parse-transcript-entries.test.ts | 0 ...-event-participant-by-speaker-name.util.ts | 0 ...find-active-transcript-entry-index.util.ts | 0 .../utils/format-transcript-timestamp.util.ts | 0 .../utils/get-absolute-avatar-url.util.ts | 0 ...event-participant-for-speaker-name.util.ts | 0 .../utils/get-speaker-name-match-keys.util.ts | 0 .../utils/get-video-file-extension.util.ts | 0 .../utils/parse-transcript-entries.util.ts | 0 .../__tests__/recall-webhook.test.ts | 0 ...ryone-left-timeout-seconds-env-var-name.ts | 0 ...-recorder-everyone-left-timeout-seconds.ts | 0 ...ecorder-join-early-minutes-env-var-name.ts | 0 .../call-recorder-name-env-var-name.ts | 0 ...one-joined-timeout-seconds-env-var-name.ts | 0 ...l-recorder-noone-joined-timeout-seconds.ts | 0 ...-recording-retention-hours-env-var-name.ts | 0 ...iting-room-timeout-seconds-env-var-name.ts | 0 ...l-recorder-waiting-room-timeout-seconds.ts | 0 .../call-recording-micro-credits-per-hour.ts | 0 .../call-recording-request-status.ts | 0 .../constants/call-recording-status.ts | 0 ...efault-call-recorder-join-early-minutes.ts | 0 .../constants/default-call-recorder-name.ts | 0 ...call-recorder-recording-retention-hours.ts | 0 .../constants/default-recall-region.ts | 0 .../constants/milliseconds-per-minute.ts | 0 .../non-terminal-call-recording-statuses.ts | 0 .../constants/recall-api-key-env-var-name.ts | 0 .../constants/recall-api-max-attempts.ts | 0 .../constants/recall-api-retry-delay-ms.ts | 0 .../constants/recall-bot-automatic-leave.ts | 0 ...veryone-left-min-activate-after-seconds.ts | 0 .../constants/recall-bot-recording-config.ts | 0 .../constants/recall-region-env-var-name.ts | 0 .../recall-webhook-secret-env-var-name.ts | 0 .../constants/restricted-field-placeholder.ts | 0 .../constants/stale-bot-state-cron-pattern.ts | 0 .../constants/twenty-page-size.ts | 0 .../complete-call-recording-ingestion.test.ts | 0 .../data/__tests__/fetch-all-nodes.test.ts | 0 .../get-current-workspace-id.test.ts | 0 .../strip-restricted-field-value.test.ts | 0 .../complete-call-recording-ingestion.util.ts | 0 .../data/create-call-recording.util.ts | 0 .../execute-current-schema-mutation.util.ts | 0 .../data/fetch-all-nodes.util.ts | 0 .../fetch-calendar-events-by-filter.util.ts | 0 .../data/fetch-calendar-events-by-ids.util.ts | 0 ...alendar-events-by-starts-at-values.util.ts | 0 ...l-recordings-by-calendar-event-ids.util.ts | 0 .../find-call-recordings-by-filter.util.ts | 0 .../data/find-call-recordings-by-ids.util.ts | 0 ...ind-open-scheduled-call-recordings.util.ts | 0 .../data/get-current-workspace-id.util.ts | 0 .../data/strip-restricted-field-value.util.ts | 0 .../data/update-call-recording.util.ts | 0 .../build-call-recorder-policy-result.test.ts | 0 .../compute-call-recording-charge.test.ts | 0 ...pute-call-recording-id-for-meeting.test.ts | 0 .../compute-real-meeting-key.test.ts | 0 ...-call-recording-ingestion-complete.test.ts | 0 ...is-call-recording-status-downgrade.test.ts | 0 ...esolve-call-recorder-policy-result.test.ts | 0 ...-complete-call-recording-ingestion.test.ts | 0 ...recorder-policy-results-by-meeting.util.ts | 0 .../build-call-recorder-policy-result.util.ts | 0 .../build-failed-transcript-marker.util.ts | 0 .../build-pending-transcript-marker.util.ts | 0 .../domain/build-recall-bot-metadata.util.ts | 0 .../build-transcript-failure-reason.util.ts | 0 .../compute-call-recording-charge.util.ts | 0 ...pute-call-recording-id-for-meeting.util.ts | 0 .../domain/compute-real-meeting-key.util.ts | 0 .../domain/compute-recall-bot-join-at.util.ts | 0 ...-call-recording-ingestion-complete.util.ts | 0 ...is-call-recording-status-downgrade.util.ts | 0 .../is-recall-recording-done-signal.util.ts | 0 ...atus-code-to-call-recording-status.util.ts | 0 .../domain/parse-transcript-marker.util.ts | 0 ...esolve-call-recorder-policy-result.util.ts | 0 ...-complete-call-recording-ingestion.util.ts | 0 .../charge-completed-call-recording.test.ts | 0 ...complete-and-charge-call-recording.test.ts | 0 .../converge-diverged-call-recordings.test.ts | 0 .../__tests__/download-transcript.test.ts | 0 .../__tests__/handle-recall-webhook.test.ts | 0 .../heal-call-recordings-missing-bot.test.ts | 0 .../ingest-call-recording-media.test.ts | 0 .../reap-orphaned-call-recorders.test.ts | 0 .../__tests__/reconcile-call-recorder.test.ts | 0 .../cancel-call-recording-request.util.ts | 0 .../charge-completed-call-recording.util.ts | 0 ...complete-and-charge-call-recording.util.ts | 0 ...ge-diverged-call-recordings-result.type.ts | 0 .../converge-diverged-call-recordings.util.ts | 0 .../flows/download-transcript.util.ts | 0 .../flows/ensure-call-recorder.util.ts | 0 .../flows/handle-recall-webhook.util.ts | 0 .../heal-call-recordings-missing-bot.util.ts | 0 .../flows/ingest-call-recording-media.util.ts | 0 .../persist-call-recording-progress.util.ts | 0 .../reap-orphaned-call-recorders.util.ts | 0 .../flows/reconcile-call-recorder.util.ts | 0 ...cording-transcript-artifact-result.type.ts | 0 ...call-recording-transcript-artifact.util.ts | 0 .../reschedule-call-recording-bot.util.ts | 0 .../extract-recall-bot-convergence.test.ts | 0 .../extract-recall-media-urls.test.ts | 0 .../__tests__/recall-bot-api.test.ts | 0 .../verify-recall-webhook-signature.test.ts | 0 .../recall-api/cancel-recall-bot.util.ts | 0 .../create-async-recall-transcript.util.ts | 0 .../recall-api/eject-recall-bot.util.ts | 0 .../extract-recall-bot-convergence.util.ts | 0 .../recall-api/extract-recall-bot-id.util.ts | 0 .../extract-recall-media-urls.util.ts | 0 .../recall-api/get-recall-api-config.util.ts | 0 .../recall-api/get-recall-bot.util.ts | 0 .../recall-api/get-recall-recording.util.ts | 0 .../list-recall-transcripts.util.ts | 0 .../list-scheduled-recall-bots.util.ts | 0 .../normalize-recall-timestamp.util.ts | 0 .../parse-recall-webhook-event.util.ts | 0 .../recall-api/recall-bot-api-request.util.ts | 0 .../recall-transcript-summary.type.ts | 0 .../recall-api/reschedule-recall-bot.util.ts | 0 .../retrieve-recall-transcript.util.ts | 0 .../recall-api/schedule-recall-bot.util.ts | 0 .../verify-recall-webhook-signature.util.ts | 0 .../src/logic-functions/recall-webhook.ts | 0 .../reconcile-call-recorder-calendar-event.ts | 0 .../reconcile-stale-bot-state.ts | 0 .../types/calendar-event-record.type.ts | 0 ...corder-policy-calendar-event-input.type.ts | 0 .../types/call-recorder-policy-input.type.ts | 0 ...ecorder-policy-not-required-reason.type.ts | 0 ...ll-recorder-policy-required-reason.type.ts | 0 ...r-policy-result-for-calendar-event.type.ts | 0 ...recorder-policy-result-for-meeting.type.ts | 0 .../types/call-recorder-policy-result.type.ts | 0 ...all-recorder-reconciliation-result.type.ts | 0 .../types/call-recording-record.type.ts | 0 .../types/files-field-value.type.ts | 0 .../types/meeting-recording.type.ts | 0 .../types/recall-bot-metadata.type.ts | 0 .../types/recall-bot-operation-result.type.ts | 0 .../removed-call-recorder-occurrence.type.ts | 0 .../types/transcript-marker.type.ts | 0 .../logic-functions/utils/as-record.util.ts | 0 .../get-application-variable-value.util.ts | 0 .../utils/get-record-at-path.util.ts | 0 .../logic-functions/utils/get-string.util.ts | 0 .../utils/get-unique-sorted-ids.util.ts | 0 .../utils/is-non-empty-string.util.ts | 0 .../calendar-event-recording-tab.ts | 0 ...preference-on-calendar-event.view-field.ts | 0 .../call-recorder/tsconfig.json | 0 .../call-recorder/tsconfig.spec.json | 0 .../call-recorder/vitest.config.ts | 0 .../call-recorder/vitest.unit.config.ts | 0 .../call-recorder/yarn.lock | 0 .../public/twenty-meeting-bot/.env.example | 5 - .../public/twenty-meeting-bot/.gitignore | 39 - .../public/twenty-meeting-bot/.nvmrc | 1 - .../public/twenty-meeting-bot/.oxlintrc.json | 20 - .../public/twenty-meeting-bot/.yarnrc.yml | 1 - .../public/twenty-meeting-bot/AGENTS.md | 67 - .../public/twenty-meeting-bot/CLAUDE.md | 67 - .../public/twenty-meeting-bot/README.md | 173 - .../public/twenty-meeting-bot/package.json | 40 - .../gallery/twenty-meeting-bot-cover.png | Bin 1699468 -> 0 bytes .../public/twenty-meeting-bot/public/logo.svg | 5 - .../src/__tests__/global-setup.ts | 100 - .../src/__tests__/schema.integration-test.ts | 123 - .../src/application-config.ts | 96 - ...ording-field-universal-identifiers.test.ts | 19 - .../src/constants/app-description.ts | 2 - .../src/constants/app-display-name.ts | 1 - .../application-universal-identifier.ts | 2 - ...ion-logic-function-universal-identifier.ts | 2 - ...record-page-layout-universal-identifier.ts | 2 - ...ng-front-component-universal-identifier.ts | 2 - ...ng-page-layout-tab-universal-identifier.ts | 2 - ...page-layout-widget-universal-identifier.ts | 2 - ...ording-audio-field-universal-identifier.ts | 2 - ...ording-video-field-universal-identifier.ts | 2 - .../default-role-universal-identifier.ts | 2 - ...conds-app-variable-universal-identifier.ts | 2 - ...ll-recording-field-universal-identifier.ts | 2 - ...nutes-app-variable-universal-identifier.ts | 2 - ...-name-app-variable-universal-identifier.ts | 2 - ...conds-app-variable-universal-identifier.ts | 2 - .../meeting-bot-preference-off-option-id.ts | 2 - ...lendar-event-field-universal-identifier.ts | 2 - ...r-event-view-field-universal-identifier.ts | 2 - .../meeting-bot-preference-on-option-id.ts | 2 - .../src/constants/meeting-bot-preference.ts | 4 - ...conds-app-variable-universal-identifier.ts | 2 - ...ook-logic-function-universal-identifier.ts | 2 - ...ate-logic-function-universal-identifier.ts | 2 - .../twenty-meeting-bot/src/default-role.ts | 69 - ...-failure-reason-on-call-recording.field.ts | 22 - ...-bot-preference-on-calendar-event.field.ts | 41 - ...lendar-event-recording.front-component.tsx | 13 - .../components/CalendarEventRecording.tsx | 39 - .../components/CalendarEventRecordingBody.tsx | 96 - .../CalendarEventRecordingContent.tsx | 111 - .../components/RecordingTranscript.tsx | 92 - .../components/RecordingVideoPlayer.tsx | 52 - .../components/TranscriptEntryList.tsx | 61 - .../components/TranscriptEntryListItem.tsx | 115 - .../components/TranscriptErrorBox.tsx | 48 - .../components/TranscriptSpeakerAvatar.tsx | 141 - .../components/TranscriptSpeakerChip.tsx | 51 - .../recording-theme-css-variables.ts | 40 - .../hooks/use-calendar-event-participants.ts | 174 - .../hooks/use-calendar-event-recording.ts | 156 - ...-event-participant-by-speaker-name.type.ts | 6 - ...lendar-event-recording-participant.type.ts | 7 - .../types/transcript-entry.type.ts | 13 - ...find-active-transcript-entry-index.test.ts | 66 - .../format-transcript-timestamp.test.ts | 29 - .../get-speaker-name-match-keys.test.ts | 22 - .../parse-transcript-entries.test.ts | 162 - ...-event-participant-by-speaker-name.util.ts | 45 - ...find-active-transcript-entry-index.util.ts | 77 - .../utils/format-transcript-timestamp.util.ts | 16 - .../utils/get-absolute-avatar-url.util.ts | 48 - ...event-participant-for-speaker-name.util.ts | 24 - .../utils/get-speaker-name-match-keys.util.ts | 64 - .../utils/get-video-file-extension.util.ts | 23 - .../utils/parse-transcript-entries.util.ts | 87 - .../__tests__/recall-webhook.test.ts | 194 - .../call-recording-micro-credits-per-hour.ts | 1 - .../call-recording-request-status.ts | 5 - .../constants/call-recording-status.ts | 9 - .../default-meeting-bot-join-early-minutes.ts | 1 - .../constants/default-meeting-bot-name.ts | 1 - ...t-meeting-bot-recording-retention-hours.ts | 2 - .../constants/default-recall-region.ts | 1 - ...ryone-left-timeout-seconds-env-var-name.ts | 2 - ...eting-bot-everyone-left-timeout-seconds.ts | 1 - ...ing-bot-join-early-minutes-env-var-name.ts | 2 - .../meeting-bot-name-env-var-name.ts | 1 - ...one-joined-timeout-seconds-env-var-name.ts | 2 - ...eeting-bot-noone-joined-timeout-seconds.ts | 1 - ...-recording-retention-hours-env-var-name.ts | 2 - ...iting-room-timeout-seconds-env-var-name.ts | 2 - ...eeting-bot-waiting-room-timeout-seconds.ts | 1 - .../constants/milliseconds-per-minute.ts | 1 - .../non-terminal-call-recording-statuses.ts | 8 - .../constants/recall-api-key-env-var-name.ts | 1 - .../constants/recall-api-max-attempts.ts | 1 - .../constants/recall-api-retry-delay-ms.ts | 1 - .../constants/recall-bot-automatic-leave.ts | 74 - ...veryone-left-min-activate-after-seconds.ts | 1 - .../constants/recall-bot-recording-config.ts | 34 - .../constants/recall-region-env-var-name.ts | 1 - .../recall-webhook-secret-env-var-name.ts | 1 - .../constants/restricted-field-placeholder.ts | 3 - .../constants/stale-bot-state-cron-pattern.ts | 1 - .../constants/twenty-page-size.ts | 1 - .../complete-call-recording-ingestion.test.ts | 55 - .../data/__tests__/fetch-all-nodes.test.ts | 43 - .../get-current-workspace-id.test.ts | 39 - .../strip-restricted-field-value.test.ts | 22 - .../complete-call-recording-ingestion.util.ts | 30 - .../data/create-call-recording.util.ts | 41 - .../execute-current-schema-mutation.util.ts | 54 - .../data/fetch-all-nodes.util.ts | 44 - .../fetch-calendar-events-by-filter.util.ts | 80 - .../data/fetch-calendar-events-by-ids.util.ts | 20 - ...alendar-events-by-starts-at-values.util.ts | 19 - ...l-recordings-by-calendar-event-ids.util.ts | 17 - .../find-call-recordings-by-filter.util.ts | 102 - .../data/find-call-recordings-by-ids.util.ts | 17 - ...ind-open-scheduled-call-recordings.util.ts | 14 - .../data/get-current-workspace-id.util.ts | 36 - .../data/strip-restricted-field-value.util.ts | 6 - .../data/update-call-recording.util.ts | 48 - .../build-meeting-bot-policy-result.test.ts | 47 - .../compute-call-recording-charge.test.ts | 71 - ...pute-call-recording-id-for-meeting.test.ts | 37 - .../compute-real-meeting-key.test.ts | 88 - ...-call-recording-ingestion-complete.test.ts | 59 - ...is-call-recording-status-downgrade.test.ts | 37 - .../resolve-meeting-bot-policy-result.test.ts | 120 - ...-complete-call-recording-ingestion.test.ts | 102 - ...ting-bot-policy-results-by-meeting.util.ts | 42 - .../build-failed-transcript-marker.util.ts | 13 - .../build-meeting-bot-policy-result.util.ts | 53 - .../build-pending-transcript-marker.util.ts | 13 - .../domain/build-recall-bot-metadata.util.ts | 21 - .../build-transcript-failure-reason.util.ts | 7 - .../compute-call-recording-charge.util.ts | 41 - ...pute-call-recording-id-for-meeting.util.ts | 16 - .../domain/compute-real-meeting-key.util.ts | 48 - .../domain/compute-recall-bot-join-at.util.ts | 34 - ...-call-recording-ingestion-complete.util.ts | 19 - ...is-call-recording-status-downgrade.util.ts | 37 - .../is-recall-recording-done-signal.util.ts | 13 - ...atus-code-to-call-recording-status.util.ts | 26 - .../domain/parse-transcript-marker.util.ts | 29 - .../resolve-meeting-bot-policy-result.util.ts | 72 - ...-complete-call-recording-ingestion.util.ts | 32 - .../charge-completed-call-recording.test.ts | 45 - ...complete-and-charge-call-recording.test.ts | 61 - .../converge-diverged-call-recordings.test.ts | 729 ---- .../__tests__/download-transcript.test.ts | 74 - .../__tests__/handle-recall-webhook.test.ts | 1286 ------- .../heal-call-recordings-missing-bot.test.ts | 225 -- .../ingest-call-recording-media.test.ts | 153 - .../reap-orphaned-meeting-bots.test.ts | 425 --- .../__tests__/reconcile-meeting-bot.test.ts | 1013 ----- .../cancel-call-recording-request.util.ts | 46 - .../charge-completed-call-recording.util.ts | 31 - ...complete-and-charge-call-recording.util.ts | 29 - ...ge-diverged-call-recordings-result.type.ts | 8 - .../converge-diverged-call-recordings.util.ts | 449 --- .../flows/download-transcript.util.ts | 67 - .../flows/ensure-meeting-bot.util.ts | 74 - .../flows/handle-recall-webhook.util.ts | 673 ---- .../heal-call-recordings-missing-bot.util.ts | 82 - .../flows/ingest-call-recording-media.util.ts | 127 - .../persist-call-recording-progress.util.ts | 60 - .../flows/reap-orphaned-meeting-bots.util.ts | 185 - ...cording-transcript-artifact-result.type.ts | 11 - ...call-recording-transcript-artifact.util.ts | 183 - .../flows/reconcile-meeting-bot.util.ts | 496 --- .../reschedule-call-recording-bot.util.ts | 70 - .../extract-recall-bot-convergence.test.ts | 153 - .../extract-recall-media-urls.test.ts | 67 - .../__tests__/recall-bot-api.test.ts | 795 ---- .../verify-recall-webhook-signature.test.ts | 122 - .../recall-api/cancel-recall-bot.util.ts | 28 - .../create-async-recall-transcript.util.ts | 52 - .../recall-api/eject-recall-bot.util.ts | 28 - .../extract-recall-bot-convergence.util.ts | 149 - .../recall-api/extract-recall-bot-id.util.ts | 10 - .../extract-recall-media-urls.util.ts | 30 - .../recall-api/get-recall-api-config.util.ts | 59 - .../recall-api/get-recall-bot.util.ts | 42 - .../recall-api/get-recall-recording.util.ts | 31 - .../list-recall-transcripts.util.ts | 141 - .../list-scheduled-recall-bots.util.ts | 106 - .../normalize-recall-timestamp.util.ts | 14 - .../parse-recall-webhook-event.util.ts | 104 - .../recall-api/recall-bot-api-request.util.ts | 165 - .../recall-transcript-summary.type.ts | 5 - .../recall-api/reschedule-recall-bot.util.ts | 54 - .../retrieve-recall-transcript.util.ts | 71 - .../recall-api/schedule-recall-bot.util.ts | 66 - .../verify-recall-webhook-signature.util.ts | 109 - .../src/logic-functions/recall-webhook.ts | 88 - .../reconcile-meeting-bot-calendar-event.ts | 178 - .../reconcile-stale-bot-state.ts | 110 - .../types/calendar-event-record.type.ts | 5 - .../types/call-recording-record.type.ts | 15 - .../types/files-field-value.type.ts | 1 - ...ng-bot-policy-calendar-event-input.type.ts | 10 - .../types/meeting-bot-policy-input.type.ts | 9 - ...ing-bot-policy-not-required-reason.type.ts | 5 - ...meeting-bot-policy-required-reason.type.ts | 1 - ...t-policy-result-for-calendar-event.type.ts | 8 - ...ting-bot-policy-result-for-meeting.type.ts | 6 - .../types/meeting-bot-policy-result.type.ts | 12 - .../meeting-bot-reconciliation-result.type.ts | 16 - .../types/meeting-recording.type.ts | 7 - .../types/recall-bot-metadata.type.ts | 6 - .../types/recall-bot-operation-result.type.ts | 19 - .../removed-meeting-bot-occurrence.type.ts | 6 - .../types/transcript-marker.type.ts | 6 - .../logic-functions/utils/as-record.util.ts | 6 - .../get-application-variable-value.util.ts | 3 - .../utils/get-record-at-path.util.ts | 10 - .../logic-functions/utils/get-string.util.ts | 4 - .../utils/get-unique-sorted-ids.util.ts | 8 - .../utils/is-non-empty-string.util.ts | 5 - .../calendar-event-recording-tab.ts | 33 - ...preference-on-calendar-event.view-field.ts | 27 - .../public/twenty-meeting-bot/tsconfig.json | 42 - .../twenty-meeting-bot/tsconfig.spec.json | 9 - .../twenty-meeting-bot/vitest.config.ts | 31 - .../twenty-meeting-bot/vitest.unit.config.ts | 14 - .../public/twenty-meeting-bot/yarn.lock | 3396 ----------------- 448 files changed, 18034 deletions(-) rename packages/twenty-apps/{internal => public}/call-recorder/.env.example (100%) rename packages/twenty-apps/{internal => public}/call-recorder/.gitignore (100%) rename packages/twenty-apps/{internal => public}/call-recorder/.nvmrc (100%) rename packages/twenty-apps/{internal => public}/call-recorder/.oxlintrc.json (100%) rename packages/twenty-apps/{internal => public}/call-recorder/.yarnrc.yml (100%) rename packages/twenty-apps/{internal => public}/call-recorder/AGENTS.md (100%) rename packages/twenty-apps/{internal => public}/call-recorder/CLAUDE.md (100%) rename packages/twenty-apps/{internal => public}/call-recorder/README.md (100%) rename packages/twenty-apps/{internal => public}/call-recorder/package.json (100%) rename packages/twenty-apps/{internal => public}/call-recorder/public/gallery/call-recorder-cover.png (100%) rename packages/twenty-apps/{internal => public}/call-recorder/public/logo.svg (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/__tests__/global-setup.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/__tests__/schema.integration-test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/application-config.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/__tests__/call-recording-field-universal-identifiers.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/app-description.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/app-display-name.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/application-universal-identifier.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/calendar-event-reconciliation-logic-function-universal-identifier.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/calendar-event-record-page-layout-universal-identifier.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/calendar-event-recording-front-component-universal-identifier.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/calendar-event-recording-page-layout-tab-universal-identifier.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/calendar-event-recording-page-layout-widget-universal-identifier.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/call-recorder-everyone-left-timeout-seconds-app-variable-universal-identifier.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/call-recorder-failure-reason-on-call-recording-field-universal-identifier.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/call-recorder-join-early-minutes-app-variable-universal-identifier.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/call-recorder-name-app-variable-universal-identifier.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/call-recorder-noone-joined-timeout-seconds-app-variable-universal-identifier.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/call-recorder-preference-off-option-id.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/call-recorder-preference-on-calendar-event-field-universal-identifier.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/call-recorder-preference-on-calendar-event-view-field-universal-identifier.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/call-recorder-preference-on-option-id.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/call-recorder-preference.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/call-recorder-waiting-room-timeout-seconds-app-variable-universal-identifier.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/call-recording-audio-field-universal-identifier.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/call-recording-video-field-universal-identifier.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/default-role-universal-identifier.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/recall-webhook-logic-function-universal-identifier.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/constants/stale-bot-state-logic-function-universal-identifier.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/default-role.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/fields/call-recorder-failure-reason-on-call-recording.field.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/fields/call-recorder-preference-on-calendar-event.field.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/calendar-event-recording.front-component.tsx (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/components/CalendarEventRecording.tsx (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/components/CalendarEventRecordingBody.tsx (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/components/CalendarEventRecordingContent.tsx (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/components/RecordingTranscript.tsx (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/components/RecordingVideoPlayer.tsx (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/components/TranscriptEntryList.tsx (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/components/TranscriptEntryListItem.tsx (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/components/TranscriptErrorBox.tsx (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/components/TranscriptSpeakerAvatar.tsx (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/components/TranscriptSpeakerChip.tsx (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/constants/recording-theme-css-variables.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/hooks/use-calendar-event-participants.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/hooks/use-calendar-event-recording.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/types/calendar-event-participant-by-speaker-name.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/types/calendar-event-recording-participant.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/types/transcript-entry.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/utils/__tests__/find-active-transcript-entry-index.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/utils/__tests__/format-transcript-timestamp.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/utils/__tests__/get-speaker-name-match-keys.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/utils/__tests__/parse-transcript-entries.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/utils/build-calendar-event-participant-by-speaker-name.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/utils/find-active-transcript-entry-index.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/utils/format-transcript-timestamp.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/utils/get-absolute-avatar-url.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/utils/get-calendar-event-participant-for-speaker-name.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/utils/get-speaker-name-match-keys.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/utils/get-video-file-extension.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/front-components/utils/parse-transcript-entries.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/__tests__/recall-webhook.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/call-recorder-everyone-left-timeout-seconds-env-var-name.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/call-recorder-everyone-left-timeout-seconds.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/call-recorder-join-early-minutes-env-var-name.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/call-recorder-name-env-var-name.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/call-recorder-noone-joined-timeout-seconds-env-var-name.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/call-recorder-noone-joined-timeout-seconds.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/call-recorder-recording-retention-hours-env-var-name.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/call-recorder-waiting-room-timeout-seconds-env-var-name.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/call-recorder-waiting-room-timeout-seconds.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/call-recording-micro-credits-per-hour.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/call-recording-request-status.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/call-recording-status.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/default-call-recorder-join-early-minutes.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/default-call-recorder-name.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/default-call-recorder-recording-retention-hours.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/default-recall-region.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/milliseconds-per-minute.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/non-terminal-call-recording-statuses.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/recall-api-key-env-var-name.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/recall-api-max-attempts.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/recall-api-retry-delay-ms.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/recall-bot-automatic-leave.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/recall-bot-everyone-left-min-activate-after-seconds.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/recall-bot-recording-config.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/recall-region-env-var-name.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/recall-webhook-secret-env-var-name.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/restricted-field-placeholder.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/stale-bot-state-cron-pattern.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/constants/twenty-page-size.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/data/__tests__/complete-call-recording-ingestion.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/data/__tests__/fetch-all-nodes.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/data/__tests__/get-current-workspace-id.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/data/__tests__/strip-restricted-field-value.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/data/complete-call-recording-ingestion.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/data/create-call-recording.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/data/execute-current-schema-mutation.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/data/fetch-all-nodes.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/data/fetch-calendar-events-by-filter.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/data/fetch-calendar-events-by-ids.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/data/fetch-calendar-events-by-starts-at-values.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/data/find-call-recordings-by-calendar-event-ids.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/data/find-call-recordings-by-filter.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/data/find-call-recordings-by-ids.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/data/find-open-scheduled-call-recordings.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/data/get-current-workspace-id.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/data/strip-restricted-field-value.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/data/update-call-recording.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/__tests__/build-call-recorder-policy-result.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/__tests__/compute-call-recording-charge.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/__tests__/compute-call-recording-id-for-meeting.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/__tests__/compute-real-meeting-key.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/__tests__/is-call-recording-ingestion-complete.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/__tests__/is-call-recording-status-downgrade.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/__tests__/resolve-call-recorder-policy-result.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/__tests__/should-complete-call-recording-ingestion.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/aggregate-call-recorder-policy-results-by-meeting.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/build-call-recorder-policy-result.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/build-failed-transcript-marker.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/build-pending-transcript-marker.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/build-recall-bot-metadata.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/build-transcript-failure-reason.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/compute-call-recording-charge.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/compute-call-recording-id-for-meeting.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/compute-real-meeting-key.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/compute-recall-bot-join-at.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/is-call-recording-ingestion-complete.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/is-call-recording-status-downgrade.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/is-recall-recording-done-signal.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/map-recall-status-code-to-call-recording-status.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/parse-transcript-marker.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/resolve-call-recorder-policy-result.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/domain/should-complete-call-recording-ingestion.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/__tests__/charge-completed-call-recording.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/__tests__/complete-and-charge-call-recording.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/__tests__/converge-diverged-call-recordings.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/__tests__/download-transcript.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/__tests__/handle-recall-webhook.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/__tests__/heal-call-recordings-missing-bot.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/__tests__/ingest-call-recording-media.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/__tests__/reap-orphaned-call-recorders.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/__tests__/reconcile-call-recorder.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/cancel-call-recording-request.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/charge-completed-call-recording.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/complete-and-charge-call-recording.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/converge-diverged-call-recordings-result.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/converge-diverged-call-recordings.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/download-transcript.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/ensure-call-recorder.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/handle-recall-webhook.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/heal-call-recordings-missing-bot.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/ingest-call-recording-media.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/persist-call-recording-progress.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/reap-orphaned-call-recorders.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/reconcile-call-recorder.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/reconcile-call-recording-transcript-artifact-result.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/reconcile-call-recording-transcript-artifact.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/flows/reschedule-call-recording-bot.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/__tests__/extract-recall-bot-convergence.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/__tests__/extract-recall-media-urls.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/__tests__/recall-bot-api.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/__tests__/verify-recall-webhook-signature.test.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/cancel-recall-bot.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/create-async-recall-transcript.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/eject-recall-bot.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/extract-recall-bot-convergence.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/extract-recall-bot-id.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/extract-recall-media-urls.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/get-recall-api-config.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/get-recall-bot.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/get-recall-recording.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/list-recall-transcripts.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/list-scheduled-recall-bots.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/normalize-recall-timestamp.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/parse-recall-webhook-event.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/recall-bot-api-request.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/recall-transcript-summary.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/reschedule-recall-bot.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/retrieve-recall-transcript.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/schedule-recall-bot.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-api/verify-recall-webhook-signature.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/recall-webhook.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/reconcile-call-recorder-calendar-event.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/reconcile-stale-bot-state.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/types/calendar-event-record.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/types/call-recorder-policy-calendar-event-input.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/types/call-recorder-policy-input.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/types/call-recorder-policy-not-required-reason.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/types/call-recorder-policy-required-reason.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/types/call-recorder-policy-result-for-calendar-event.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/types/call-recorder-policy-result-for-meeting.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/types/call-recorder-policy-result.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/types/call-recorder-reconciliation-result.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/types/call-recording-record.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/types/files-field-value.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/types/meeting-recording.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/types/recall-bot-metadata.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/types/recall-bot-operation-result.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/types/removed-call-recorder-occurrence.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/types/transcript-marker.type.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/utils/as-record.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/utils/get-application-variable-value.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/utils/get-record-at-path.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/utils/get-string.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/utils/get-unique-sorted-ids.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/logic-functions/utils/is-non-empty-string.util.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/page-layouts/calendar-event-recording-tab.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/src/view-fields/call-recorder-preference-on-calendar-event.view-field.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/tsconfig.json (100%) rename packages/twenty-apps/{internal => public}/call-recorder/tsconfig.spec.json (100%) rename packages/twenty-apps/{internal => public}/call-recorder/vitest.config.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/vitest.unit.config.ts (100%) rename packages/twenty-apps/{internal => public}/call-recorder/yarn.lock (100%) delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/.env.example delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/.gitignore delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/.nvmrc delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/.oxlintrc.json delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/.yarnrc.yml delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/AGENTS.md delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/CLAUDE.md delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/README.md delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/package.json delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/public/gallery/twenty-meeting-bot-cover.png delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/public/logo.svg delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/__tests__/global-setup.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/__tests__/schema.integration-test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/application-config.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/__tests__/call-recording-field-universal-identifiers.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/app-description.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/app-display-name.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/application-universal-identifier.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-reconciliation-logic-function-universal-identifier.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-record-page-layout-universal-identifier.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-recording-front-component-universal-identifier.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-recording-page-layout-tab-universal-identifier.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-recording-page-layout-widget-universal-identifier.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/call-recording-audio-field-universal-identifier.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/call-recording-video-field-universal-identifier.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/default-role-universal-identifier.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-everyone-left-timeout-seconds-app-variable-universal-identifier.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-failure-reason-on-call-recording-field-universal-identifier.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-join-early-minutes-app-variable-universal-identifier.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-name-app-variable-universal-identifier.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-noone-joined-timeout-seconds-app-variable-universal-identifier.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference-off-option-id.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference-on-calendar-event-field-universal-identifier.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference-on-calendar-event-view-field-universal-identifier.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference-on-option-id.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-waiting-room-timeout-seconds-app-variable-universal-identifier.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/recall-webhook-logic-function-universal-identifier.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/constants/stale-bot-state-logic-function-universal-identifier.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/default-role.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/fields/meeting-bot-failure-reason-on-call-recording.field.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/fields/meeting-bot-preference-on-calendar-event.field.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/calendar-event-recording.front-component.tsx delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/CalendarEventRecording.tsx delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/CalendarEventRecordingBody.tsx delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/CalendarEventRecordingContent.tsx delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/RecordingTranscript.tsx delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/RecordingVideoPlayer.tsx delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptEntryList.tsx delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptEntryListItem.tsx delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptErrorBox.tsx delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptSpeakerAvatar.tsx delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptSpeakerChip.tsx delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/constants/recording-theme-css-variables.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/hooks/use-calendar-event-participants.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/hooks/use-calendar-event-recording.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/types/calendar-event-participant-by-speaker-name.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/types/calendar-event-recording-participant.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/types/transcript-entry.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/__tests__/find-active-transcript-entry-index.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/__tests__/format-transcript-timestamp.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/__tests__/get-speaker-name-match-keys.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/__tests__/parse-transcript-entries.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/build-calendar-event-participant-by-speaker-name.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/find-active-transcript-entry-index.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/format-transcript-timestamp.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/get-absolute-avatar-url.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/get-calendar-event-participant-for-speaker-name.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/get-speaker-name-match-keys.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/get-video-file-extension.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/parse-transcript-entries.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/__tests__/recall-webhook.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/call-recording-micro-credits-per-hour.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/call-recording-request-status.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/call-recording-status.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/default-meeting-bot-join-early-minutes.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/default-meeting-bot-name.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/default-meeting-bot-recording-retention-hours.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/default-recall-region.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-everyone-left-timeout-seconds-env-var-name.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-everyone-left-timeout-seconds.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-join-early-minutes-env-var-name.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-name-env-var-name.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-noone-joined-timeout-seconds-env-var-name.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-noone-joined-timeout-seconds.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-recording-retention-hours-env-var-name.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-waiting-room-timeout-seconds-env-var-name.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-waiting-room-timeout-seconds.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/milliseconds-per-minute.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/non-terminal-call-recording-statuses.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-api-key-env-var-name.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-api-max-attempts.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-api-retry-delay-ms.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-bot-automatic-leave.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-bot-everyone-left-min-activate-after-seconds.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-bot-recording-config.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-region-env-var-name.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-webhook-secret-env-var-name.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/restricted-field-placeholder.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/stale-bot-state-cron-pattern.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/twenty-page-size.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/__tests__/complete-call-recording-ingestion.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/__tests__/fetch-all-nodes.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/__tests__/get-current-workspace-id.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/__tests__/strip-restricted-field-value.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/complete-call-recording-ingestion.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/create-call-recording.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/execute-current-schema-mutation.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/fetch-all-nodes.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/fetch-calendar-events-by-filter.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/fetch-calendar-events-by-ids.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/fetch-calendar-events-by-starts-at-values.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/find-call-recordings-by-calendar-event-ids.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/find-call-recordings-by-filter.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/find-call-recordings-by-ids.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/find-open-scheduled-call-recordings.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/get-current-workspace-id.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/strip-restricted-field-value.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/update-call-recording.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/build-meeting-bot-policy-result.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/compute-call-recording-charge.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/compute-call-recording-id-for-meeting.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/compute-real-meeting-key.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/is-call-recording-ingestion-complete.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/is-call-recording-status-downgrade.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/resolve-meeting-bot-policy-result.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/should-complete-call-recording-ingestion.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/aggregate-meeting-bot-policy-results-by-meeting.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-failed-transcript-marker.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-meeting-bot-policy-result.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-pending-transcript-marker.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-recall-bot-metadata.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-transcript-failure-reason.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/compute-call-recording-charge.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/compute-call-recording-id-for-meeting.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/compute-real-meeting-key.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/compute-recall-bot-join-at.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/is-call-recording-ingestion-complete.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/is-call-recording-status-downgrade.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/is-recall-recording-done-signal.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/map-recall-status-code-to-call-recording-status.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/parse-transcript-marker.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/resolve-meeting-bot-policy-result.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/should-complete-call-recording-ingestion.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/charge-completed-call-recording.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/complete-and-charge-call-recording.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/converge-diverged-call-recordings.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/download-transcript.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/handle-recall-webhook.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/heal-call-recordings-missing-bot.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/ingest-call-recording-media.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/reap-orphaned-meeting-bots.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/reconcile-meeting-bot.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/cancel-call-recording-request.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/charge-completed-call-recording.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/complete-and-charge-call-recording.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/converge-diverged-call-recordings-result.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/converge-diverged-call-recordings.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/download-transcript.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/ensure-meeting-bot.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/handle-recall-webhook.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/heal-call-recordings-missing-bot.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/ingest-call-recording-media.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/persist-call-recording-progress.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reap-orphaned-meeting-bots.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reconcile-call-recording-transcript-artifact-result.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reconcile-call-recording-transcript-artifact.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reconcile-meeting-bot.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reschedule-call-recording-bot.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/__tests__/extract-recall-bot-convergence.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/__tests__/extract-recall-media-urls.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/__tests__/recall-bot-api.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/__tests__/verify-recall-webhook-signature.test.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/cancel-recall-bot.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/create-async-recall-transcript.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/eject-recall-bot.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/extract-recall-bot-convergence.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/extract-recall-bot-id.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/extract-recall-media-urls.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/get-recall-api-config.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/get-recall-bot.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/get-recall-recording.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/list-recall-transcripts.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/list-scheduled-recall-bots.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/normalize-recall-timestamp.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/parse-recall-webhook-event.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/recall-bot-api-request.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/recall-transcript-summary.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/reschedule-recall-bot.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/retrieve-recall-transcript.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/schedule-recall-bot.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/verify-recall-webhook-signature.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-webhook.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/reconcile-meeting-bot-calendar-event.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/reconcile-stale-bot-state.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/calendar-event-record.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/call-recording-record.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/files-field-value.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-calendar-event-input.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-input.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-not-required-reason.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-required-reason.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-result-for-calendar-event.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-result-for-meeting.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-result.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-reconciliation-result.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-recording.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/recall-bot-metadata.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/recall-bot-operation-result.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/removed-meeting-bot-occurrence.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/transcript-marker.type.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/as-record.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/get-application-variable-value.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/get-record-at-path.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/get-string.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/get-unique-sorted-ids.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/is-non-empty-string.util.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/page-layouts/calendar-event-recording-tab.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/src/view-fields/meeting-bot-preference-on-calendar-event.view-field.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/tsconfig.json delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/tsconfig.spec.json delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/vitest.config.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/vitest.unit.config.ts delete mode 100644 packages/twenty-apps/public/twenty-meeting-bot/yarn.lock diff --git a/packages/twenty-apps/internal/call-recorder/.env.example b/packages/twenty-apps/public/call-recorder/.env.example similarity index 100% rename from packages/twenty-apps/internal/call-recorder/.env.example rename to packages/twenty-apps/public/call-recorder/.env.example diff --git a/packages/twenty-apps/internal/call-recorder/.gitignore b/packages/twenty-apps/public/call-recorder/.gitignore similarity index 100% rename from packages/twenty-apps/internal/call-recorder/.gitignore rename to packages/twenty-apps/public/call-recorder/.gitignore diff --git a/packages/twenty-apps/internal/call-recorder/.nvmrc b/packages/twenty-apps/public/call-recorder/.nvmrc similarity index 100% rename from packages/twenty-apps/internal/call-recorder/.nvmrc rename to packages/twenty-apps/public/call-recorder/.nvmrc diff --git a/packages/twenty-apps/internal/call-recorder/.oxlintrc.json b/packages/twenty-apps/public/call-recorder/.oxlintrc.json similarity index 100% rename from packages/twenty-apps/internal/call-recorder/.oxlintrc.json rename to packages/twenty-apps/public/call-recorder/.oxlintrc.json diff --git a/packages/twenty-apps/internal/call-recorder/.yarnrc.yml b/packages/twenty-apps/public/call-recorder/.yarnrc.yml similarity index 100% rename from packages/twenty-apps/internal/call-recorder/.yarnrc.yml rename to packages/twenty-apps/public/call-recorder/.yarnrc.yml diff --git a/packages/twenty-apps/internal/call-recorder/AGENTS.md b/packages/twenty-apps/public/call-recorder/AGENTS.md similarity index 100% rename from packages/twenty-apps/internal/call-recorder/AGENTS.md rename to packages/twenty-apps/public/call-recorder/AGENTS.md diff --git a/packages/twenty-apps/internal/call-recorder/CLAUDE.md b/packages/twenty-apps/public/call-recorder/CLAUDE.md similarity index 100% rename from packages/twenty-apps/internal/call-recorder/CLAUDE.md rename to packages/twenty-apps/public/call-recorder/CLAUDE.md diff --git a/packages/twenty-apps/internal/call-recorder/README.md b/packages/twenty-apps/public/call-recorder/README.md similarity index 100% rename from packages/twenty-apps/internal/call-recorder/README.md rename to packages/twenty-apps/public/call-recorder/README.md diff --git a/packages/twenty-apps/internal/call-recorder/package.json b/packages/twenty-apps/public/call-recorder/package.json similarity index 100% rename from packages/twenty-apps/internal/call-recorder/package.json rename to packages/twenty-apps/public/call-recorder/package.json diff --git a/packages/twenty-apps/internal/call-recorder/public/gallery/call-recorder-cover.png b/packages/twenty-apps/public/call-recorder/public/gallery/call-recorder-cover.png similarity index 100% rename from packages/twenty-apps/internal/call-recorder/public/gallery/call-recorder-cover.png rename to packages/twenty-apps/public/call-recorder/public/gallery/call-recorder-cover.png diff --git a/packages/twenty-apps/internal/call-recorder/public/logo.svg b/packages/twenty-apps/public/call-recorder/public/logo.svg similarity index 100% rename from packages/twenty-apps/internal/call-recorder/public/logo.svg rename to packages/twenty-apps/public/call-recorder/public/logo.svg diff --git a/packages/twenty-apps/internal/call-recorder/src/__tests__/global-setup.ts b/packages/twenty-apps/public/call-recorder/src/__tests__/global-setup.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/__tests__/global-setup.ts rename to packages/twenty-apps/public/call-recorder/src/__tests__/global-setup.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/__tests__/schema.integration-test.ts b/packages/twenty-apps/public/call-recorder/src/__tests__/schema.integration-test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/__tests__/schema.integration-test.ts rename to packages/twenty-apps/public/call-recorder/src/__tests__/schema.integration-test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/application-config.ts b/packages/twenty-apps/public/call-recorder/src/application-config.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/application-config.ts rename to packages/twenty-apps/public/call-recorder/src/application-config.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/__tests__/call-recording-field-universal-identifiers.test.ts b/packages/twenty-apps/public/call-recorder/src/constants/__tests__/call-recording-field-universal-identifiers.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/__tests__/call-recording-field-universal-identifiers.test.ts rename to packages/twenty-apps/public/call-recorder/src/constants/__tests__/call-recording-field-universal-identifiers.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/app-description.ts b/packages/twenty-apps/public/call-recorder/src/constants/app-description.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/app-description.ts rename to packages/twenty-apps/public/call-recorder/src/constants/app-description.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/app-display-name.ts b/packages/twenty-apps/public/call-recorder/src/constants/app-display-name.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/app-display-name.ts rename to packages/twenty-apps/public/call-recorder/src/constants/app-display-name.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/application-universal-identifier.ts b/packages/twenty-apps/public/call-recorder/src/constants/application-universal-identifier.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/application-universal-identifier.ts rename to packages/twenty-apps/public/call-recorder/src/constants/application-universal-identifier.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/calendar-event-reconciliation-logic-function-universal-identifier.ts b/packages/twenty-apps/public/call-recorder/src/constants/calendar-event-reconciliation-logic-function-universal-identifier.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/calendar-event-reconciliation-logic-function-universal-identifier.ts rename to packages/twenty-apps/public/call-recorder/src/constants/calendar-event-reconciliation-logic-function-universal-identifier.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/calendar-event-record-page-layout-universal-identifier.ts b/packages/twenty-apps/public/call-recorder/src/constants/calendar-event-record-page-layout-universal-identifier.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/calendar-event-record-page-layout-universal-identifier.ts rename to packages/twenty-apps/public/call-recorder/src/constants/calendar-event-record-page-layout-universal-identifier.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/calendar-event-recording-front-component-universal-identifier.ts b/packages/twenty-apps/public/call-recorder/src/constants/calendar-event-recording-front-component-universal-identifier.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/calendar-event-recording-front-component-universal-identifier.ts rename to packages/twenty-apps/public/call-recorder/src/constants/calendar-event-recording-front-component-universal-identifier.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/calendar-event-recording-page-layout-tab-universal-identifier.ts b/packages/twenty-apps/public/call-recorder/src/constants/calendar-event-recording-page-layout-tab-universal-identifier.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/calendar-event-recording-page-layout-tab-universal-identifier.ts rename to packages/twenty-apps/public/call-recorder/src/constants/calendar-event-recording-page-layout-tab-universal-identifier.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/calendar-event-recording-page-layout-widget-universal-identifier.ts b/packages/twenty-apps/public/call-recorder/src/constants/calendar-event-recording-page-layout-widget-universal-identifier.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/calendar-event-recording-page-layout-widget-universal-identifier.ts rename to packages/twenty-apps/public/call-recorder/src/constants/calendar-event-recording-page-layout-widget-universal-identifier.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-everyone-left-timeout-seconds-app-variable-universal-identifier.ts b/packages/twenty-apps/public/call-recorder/src/constants/call-recorder-everyone-left-timeout-seconds-app-variable-universal-identifier.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-everyone-left-timeout-seconds-app-variable-universal-identifier.ts rename to packages/twenty-apps/public/call-recorder/src/constants/call-recorder-everyone-left-timeout-seconds-app-variable-universal-identifier.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-failure-reason-on-call-recording-field-universal-identifier.ts b/packages/twenty-apps/public/call-recorder/src/constants/call-recorder-failure-reason-on-call-recording-field-universal-identifier.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-failure-reason-on-call-recording-field-universal-identifier.ts rename to packages/twenty-apps/public/call-recorder/src/constants/call-recorder-failure-reason-on-call-recording-field-universal-identifier.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-join-early-minutes-app-variable-universal-identifier.ts b/packages/twenty-apps/public/call-recorder/src/constants/call-recorder-join-early-minutes-app-variable-universal-identifier.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-join-early-minutes-app-variable-universal-identifier.ts rename to packages/twenty-apps/public/call-recorder/src/constants/call-recorder-join-early-minutes-app-variable-universal-identifier.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-name-app-variable-universal-identifier.ts b/packages/twenty-apps/public/call-recorder/src/constants/call-recorder-name-app-variable-universal-identifier.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-name-app-variable-universal-identifier.ts rename to packages/twenty-apps/public/call-recorder/src/constants/call-recorder-name-app-variable-universal-identifier.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-noone-joined-timeout-seconds-app-variable-universal-identifier.ts b/packages/twenty-apps/public/call-recorder/src/constants/call-recorder-noone-joined-timeout-seconds-app-variable-universal-identifier.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-noone-joined-timeout-seconds-app-variable-universal-identifier.ts rename to packages/twenty-apps/public/call-recorder/src/constants/call-recorder-noone-joined-timeout-seconds-app-variable-universal-identifier.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-preference-off-option-id.ts b/packages/twenty-apps/public/call-recorder/src/constants/call-recorder-preference-off-option-id.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-preference-off-option-id.ts rename to packages/twenty-apps/public/call-recorder/src/constants/call-recorder-preference-off-option-id.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-preference-on-calendar-event-field-universal-identifier.ts b/packages/twenty-apps/public/call-recorder/src/constants/call-recorder-preference-on-calendar-event-field-universal-identifier.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-preference-on-calendar-event-field-universal-identifier.ts rename to packages/twenty-apps/public/call-recorder/src/constants/call-recorder-preference-on-calendar-event-field-universal-identifier.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-preference-on-calendar-event-view-field-universal-identifier.ts b/packages/twenty-apps/public/call-recorder/src/constants/call-recorder-preference-on-calendar-event-view-field-universal-identifier.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-preference-on-calendar-event-view-field-universal-identifier.ts rename to packages/twenty-apps/public/call-recorder/src/constants/call-recorder-preference-on-calendar-event-view-field-universal-identifier.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-preference-on-option-id.ts b/packages/twenty-apps/public/call-recorder/src/constants/call-recorder-preference-on-option-id.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-preference-on-option-id.ts rename to packages/twenty-apps/public/call-recorder/src/constants/call-recorder-preference-on-option-id.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-preference.ts b/packages/twenty-apps/public/call-recorder/src/constants/call-recorder-preference.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-preference.ts rename to packages/twenty-apps/public/call-recorder/src/constants/call-recorder-preference.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-waiting-room-timeout-seconds-app-variable-universal-identifier.ts b/packages/twenty-apps/public/call-recorder/src/constants/call-recorder-waiting-room-timeout-seconds-app-variable-universal-identifier.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/call-recorder-waiting-room-timeout-seconds-app-variable-universal-identifier.ts rename to packages/twenty-apps/public/call-recorder/src/constants/call-recorder-waiting-room-timeout-seconds-app-variable-universal-identifier.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/call-recording-audio-field-universal-identifier.ts b/packages/twenty-apps/public/call-recorder/src/constants/call-recording-audio-field-universal-identifier.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/call-recording-audio-field-universal-identifier.ts rename to packages/twenty-apps/public/call-recorder/src/constants/call-recording-audio-field-universal-identifier.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/call-recording-video-field-universal-identifier.ts b/packages/twenty-apps/public/call-recorder/src/constants/call-recording-video-field-universal-identifier.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/call-recording-video-field-universal-identifier.ts rename to packages/twenty-apps/public/call-recorder/src/constants/call-recording-video-field-universal-identifier.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/default-role-universal-identifier.ts b/packages/twenty-apps/public/call-recorder/src/constants/default-role-universal-identifier.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/default-role-universal-identifier.ts rename to packages/twenty-apps/public/call-recorder/src/constants/default-role-universal-identifier.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/recall-webhook-logic-function-universal-identifier.ts b/packages/twenty-apps/public/call-recorder/src/constants/recall-webhook-logic-function-universal-identifier.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/recall-webhook-logic-function-universal-identifier.ts rename to packages/twenty-apps/public/call-recorder/src/constants/recall-webhook-logic-function-universal-identifier.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/constants/stale-bot-state-logic-function-universal-identifier.ts b/packages/twenty-apps/public/call-recorder/src/constants/stale-bot-state-logic-function-universal-identifier.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/constants/stale-bot-state-logic-function-universal-identifier.ts rename to packages/twenty-apps/public/call-recorder/src/constants/stale-bot-state-logic-function-universal-identifier.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/default-role.ts b/packages/twenty-apps/public/call-recorder/src/default-role.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/default-role.ts rename to packages/twenty-apps/public/call-recorder/src/default-role.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/fields/call-recorder-failure-reason-on-call-recording.field.ts b/packages/twenty-apps/public/call-recorder/src/fields/call-recorder-failure-reason-on-call-recording.field.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/fields/call-recorder-failure-reason-on-call-recording.field.ts rename to packages/twenty-apps/public/call-recorder/src/fields/call-recorder-failure-reason-on-call-recording.field.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/fields/call-recorder-preference-on-calendar-event.field.ts b/packages/twenty-apps/public/call-recorder/src/fields/call-recorder-preference-on-calendar-event.field.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/fields/call-recorder-preference-on-calendar-event.field.ts rename to packages/twenty-apps/public/call-recorder/src/fields/call-recorder-preference-on-calendar-event.field.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/calendar-event-recording.front-component.tsx b/packages/twenty-apps/public/call-recorder/src/front-components/calendar-event-recording.front-component.tsx similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/calendar-event-recording.front-component.tsx rename to packages/twenty-apps/public/call-recorder/src/front-components/calendar-event-recording.front-component.tsx diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/components/CalendarEventRecording.tsx b/packages/twenty-apps/public/call-recorder/src/front-components/components/CalendarEventRecording.tsx similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/components/CalendarEventRecording.tsx rename to packages/twenty-apps/public/call-recorder/src/front-components/components/CalendarEventRecording.tsx diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/components/CalendarEventRecordingBody.tsx b/packages/twenty-apps/public/call-recorder/src/front-components/components/CalendarEventRecordingBody.tsx similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/components/CalendarEventRecordingBody.tsx rename to packages/twenty-apps/public/call-recorder/src/front-components/components/CalendarEventRecordingBody.tsx diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/components/CalendarEventRecordingContent.tsx b/packages/twenty-apps/public/call-recorder/src/front-components/components/CalendarEventRecordingContent.tsx similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/components/CalendarEventRecordingContent.tsx rename to packages/twenty-apps/public/call-recorder/src/front-components/components/CalendarEventRecordingContent.tsx diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/components/RecordingTranscript.tsx b/packages/twenty-apps/public/call-recorder/src/front-components/components/RecordingTranscript.tsx similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/components/RecordingTranscript.tsx rename to packages/twenty-apps/public/call-recorder/src/front-components/components/RecordingTranscript.tsx diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/components/RecordingVideoPlayer.tsx b/packages/twenty-apps/public/call-recorder/src/front-components/components/RecordingVideoPlayer.tsx similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/components/RecordingVideoPlayer.tsx rename to packages/twenty-apps/public/call-recorder/src/front-components/components/RecordingVideoPlayer.tsx diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/components/TranscriptEntryList.tsx b/packages/twenty-apps/public/call-recorder/src/front-components/components/TranscriptEntryList.tsx similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/components/TranscriptEntryList.tsx rename to packages/twenty-apps/public/call-recorder/src/front-components/components/TranscriptEntryList.tsx diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/components/TranscriptEntryListItem.tsx b/packages/twenty-apps/public/call-recorder/src/front-components/components/TranscriptEntryListItem.tsx similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/components/TranscriptEntryListItem.tsx rename to packages/twenty-apps/public/call-recorder/src/front-components/components/TranscriptEntryListItem.tsx diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/components/TranscriptErrorBox.tsx b/packages/twenty-apps/public/call-recorder/src/front-components/components/TranscriptErrorBox.tsx similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/components/TranscriptErrorBox.tsx rename to packages/twenty-apps/public/call-recorder/src/front-components/components/TranscriptErrorBox.tsx diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/components/TranscriptSpeakerAvatar.tsx b/packages/twenty-apps/public/call-recorder/src/front-components/components/TranscriptSpeakerAvatar.tsx similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/components/TranscriptSpeakerAvatar.tsx rename to packages/twenty-apps/public/call-recorder/src/front-components/components/TranscriptSpeakerAvatar.tsx diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/components/TranscriptSpeakerChip.tsx b/packages/twenty-apps/public/call-recorder/src/front-components/components/TranscriptSpeakerChip.tsx similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/components/TranscriptSpeakerChip.tsx rename to packages/twenty-apps/public/call-recorder/src/front-components/components/TranscriptSpeakerChip.tsx diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/constants/recording-theme-css-variables.ts b/packages/twenty-apps/public/call-recorder/src/front-components/constants/recording-theme-css-variables.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/constants/recording-theme-css-variables.ts rename to packages/twenty-apps/public/call-recorder/src/front-components/constants/recording-theme-css-variables.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/hooks/use-calendar-event-participants.ts b/packages/twenty-apps/public/call-recorder/src/front-components/hooks/use-calendar-event-participants.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/hooks/use-calendar-event-participants.ts rename to packages/twenty-apps/public/call-recorder/src/front-components/hooks/use-calendar-event-participants.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/hooks/use-calendar-event-recording.ts b/packages/twenty-apps/public/call-recorder/src/front-components/hooks/use-calendar-event-recording.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/hooks/use-calendar-event-recording.ts rename to packages/twenty-apps/public/call-recorder/src/front-components/hooks/use-calendar-event-recording.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/types/calendar-event-participant-by-speaker-name.type.ts b/packages/twenty-apps/public/call-recorder/src/front-components/types/calendar-event-participant-by-speaker-name.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/types/calendar-event-participant-by-speaker-name.type.ts rename to packages/twenty-apps/public/call-recorder/src/front-components/types/calendar-event-participant-by-speaker-name.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/types/calendar-event-recording-participant.type.ts b/packages/twenty-apps/public/call-recorder/src/front-components/types/calendar-event-recording-participant.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/types/calendar-event-recording-participant.type.ts rename to packages/twenty-apps/public/call-recorder/src/front-components/types/calendar-event-recording-participant.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/types/transcript-entry.type.ts b/packages/twenty-apps/public/call-recorder/src/front-components/types/transcript-entry.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/types/transcript-entry.type.ts rename to packages/twenty-apps/public/call-recorder/src/front-components/types/transcript-entry.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/utils/__tests__/find-active-transcript-entry-index.test.ts b/packages/twenty-apps/public/call-recorder/src/front-components/utils/__tests__/find-active-transcript-entry-index.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/utils/__tests__/find-active-transcript-entry-index.test.ts rename to packages/twenty-apps/public/call-recorder/src/front-components/utils/__tests__/find-active-transcript-entry-index.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/utils/__tests__/format-transcript-timestamp.test.ts b/packages/twenty-apps/public/call-recorder/src/front-components/utils/__tests__/format-transcript-timestamp.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/utils/__tests__/format-transcript-timestamp.test.ts rename to packages/twenty-apps/public/call-recorder/src/front-components/utils/__tests__/format-transcript-timestamp.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/utils/__tests__/get-speaker-name-match-keys.test.ts b/packages/twenty-apps/public/call-recorder/src/front-components/utils/__tests__/get-speaker-name-match-keys.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/utils/__tests__/get-speaker-name-match-keys.test.ts rename to packages/twenty-apps/public/call-recorder/src/front-components/utils/__tests__/get-speaker-name-match-keys.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/utils/__tests__/parse-transcript-entries.test.ts b/packages/twenty-apps/public/call-recorder/src/front-components/utils/__tests__/parse-transcript-entries.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/utils/__tests__/parse-transcript-entries.test.ts rename to packages/twenty-apps/public/call-recorder/src/front-components/utils/__tests__/parse-transcript-entries.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/utils/build-calendar-event-participant-by-speaker-name.util.ts b/packages/twenty-apps/public/call-recorder/src/front-components/utils/build-calendar-event-participant-by-speaker-name.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/utils/build-calendar-event-participant-by-speaker-name.util.ts rename to packages/twenty-apps/public/call-recorder/src/front-components/utils/build-calendar-event-participant-by-speaker-name.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/utils/find-active-transcript-entry-index.util.ts b/packages/twenty-apps/public/call-recorder/src/front-components/utils/find-active-transcript-entry-index.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/utils/find-active-transcript-entry-index.util.ts rename to packages/twenty-apps/public/call-recorder/src/front-components/utils/find-active-transcript-entry-index.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/utils/format-transcript-timestamp.util.ts b/packages/twenty-apps/public/call-recorder/src/front-components/utils/format-transcript-timestamp.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/utils/format-transcript-timestamp.util.ts rename to packages/twenty-apps/public/call-recorder/src/front-components/utils/format-transcript-timestamp.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/utils/get-absolute-avatar-url.util.ts b/packages/twenty-apps/public/call-recorder/src/front-components/utils/get-absolute-avatar-url.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/utils/get-absolute-avatar-url.util.ts rename to packages/twenty-apps/public/call-recorder/src/front-components/utils/get-absolute-avatar-url.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/utils/get-calendar-event-participant-for-speaker-name.util.ts b/packages/twenty-apps/public/call-recorder/src/front-components/utils/get-calendar-event-participant-for-speaker-name.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/utils/get-calendar-event-participant-for-speaker-name.util.ts rename to packages/twenty-apps/public/call-recorder/src/front-components/utils/get-calendar-event-participant-for-speaker-name.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/utils/get-speaker-name-match-keys.util.ts b/packages/twenty-apps/public/call-recorder/src/front-components/utils/get-speaker-name-match-keys.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/utils/get-speaker-name-match-keys.util.ts rename to packages/twenty-apps/public/call-recorder/src/front-components/utils/get-speaker-name-match-keys.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/utils/get-video-file-extension.util.ts b/packages/twenty-apps/public/call-recorder/src/front-components/utils/get-video-file-extension.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/utils/get-video-file-extension.util.ts rename to packages/twenty-apps/public/call-recorder/src/front-components/utils/get-video-file-extension.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/front-components/utils/parse-transcript-entries.util.ts b/packages/twenty-apps/public/call-recorder/src/front-components/utils/parse-transcript-entries.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/front-components/utils/parse-transcript-entries.util.ts rename to packages/twenty-apps/public/call-recorder/src/front-components/utils/parse-transcript-entries.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/__tests__/recall-webhook.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/__tests__/recall-webhook.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/__tests__/recall-webhook.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/__tests__/recall-webhook.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recorder-everyone-left-timeout-seconds-env-var-name.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recorder-everyone-left-timeout-seconds-env-var-name.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recorder-everyone-left-timeout-seconds-env-var-name.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recorder-everyone-left-timeout-seconds-env-var-name.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recorder-everyone-left-timeout-seconds.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recorder-everyone-left-timeout-seconds.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recorder-everyone-left-timeout-seconds.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recorder-everyone-left-timeout-seconds.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recorder-join-early-minutes-env-var-name.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recorder-join-early-minutes-env-var-name.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recorder-join-early-minutes-env-var-name.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recorder-join-early-minutes-env-var-name.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recorder-name-env-var-name.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recorder-name-env-var-name.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recorder-name-env-var-name.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recorder-name-env-var-name.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recorder-noone-joined-timeout-seconds-env-var-name.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recorder-noone-joined-timeout-seconds-env-var-name.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recorder-noone-joined-timeout-seconds-env-var-name.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recorder-noone-joined-timeout-seconds-env-var-name.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recorder-noone-joined-timeout-seconds.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recorder-noone-joined-timeout-seconds.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recorder-noone-joined-timeout-seconds.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recorder-noone-joined-timeout-seconds.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recorder-recording-retention-hours-env-var-name.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recorder-recording-retention-hours-env-var-name.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recorder-recording-retention-hours-env-var-name.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recorder-recording-retention-hours-env-var-name.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recorder-waiting-room-timeout-seconds-env-var-name.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recorder-waiting-room-timeout-seconds-env-var-name.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recorder-waiting-room-timeout-seconds-env-var-name.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recorder-waiting-room-timeout-seconds-env-var-name.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recorder-waiting-room-timeout-seconds.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recorder-waiting-room-timeout-seconds.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recorder-waiting-room-timeout-seconds.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recorder-waiting-room-timeout-seconds.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recording-micro-credits-per-hour.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recording-micro-credits-per-hour.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recording-micro-credits-per-hour.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recording-micro-credits-per-hour.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recording-request-status.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recording-request-status.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recording-request-status.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recording-request-status.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recording-status.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recording-status.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/call-recording-status.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/call-recording-status.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/default-call-recorder-join-early-minutes.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/default-call-recorder-join-early-minutes.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/default-call-recorder-join-early-minutes.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/default-call-recorder-join-early-minutes.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/default-call-recorder-name.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/default-call-recorder-name.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/default-call-recorder-name.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/default-call-recorder-name.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/default-call-recorder-recording-retention-hours.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/default-call-recorder-recording-retention-hours.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/default-call-recorder-recording-retention-hours.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/default-call-recorder-recording-retention-hours.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/default-recall-region.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/default-recall-region.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/default-recall-region.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/default-recall-region.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/milliseconds-per-minute.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/milliseconds-per-minute.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/milliseconds-per-minute.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/milliseconds-per-minute.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/non-terminal-call-recording-statuses.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/non-terminal-call-recording-statuses.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/non-terminal-call-recording-statuses.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/non-terminal-call-recording-statuses.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/recall-api-key-env-var-name.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/recall-api-key-env-var-name.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/recall-api-key-env-var-name.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/recall-api-key-env-var-name.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/recall-api-max-attempts.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/recall-api-max-attempts.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/recall-api-max-attempts.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/recall-api-max-attempts.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/recall-api-retry-delay-ms.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/recall-api-retry-delay-ms.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/recall-api-retry-delay-ms.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/recall-api-retry-delay-ms.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/recall-bot-automatic-leave.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/recall-bot-automatic-leave.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/recall-bot-automatic-leave.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/recall-bot-automatic-leave.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/recall-bot-everyone-left-min-activate-after-seconds.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/recall-bot-everyone-left-min-activate-after-seconds.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/recall-bot-everyone-left-min-activate-after-seconds.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/recall-bot-everyone-left-min-activate-after-seconds.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/recall-bot-recording-config.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/recall-bot-recording-config.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/recall-bot-recording-config.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/recall-bot-recording-config.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/recall-region-env-var-name.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/recall-region-env-var-name.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/recall-region-env-var-name.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/recall-region-env-var-name.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/recall-webhook-secret-env-var-name.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/recall-webhook-secret-env-var-name.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/recall-webhook-secret-env-var-name.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/recall-webhook-secret-env-var-name.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/restricted-field-placeholder.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/restricted-field-placeholder.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/restricted-field-placeholder.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/restricted-field-placeholder.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/stale-bot-state-cron-pattern.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/stale-bot-state-cron-pattern.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/stale-bot-state-cron-pattern.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/stale-bot-state-cron-pattern.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/twenty-page-size.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/constants/twenty-page-size.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/constants/twenty-page-size.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/constants/twenty-page-size.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/data/__tests__/complete-call-recording-ingestion.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/data/__tests__/complete-call-recording-ingestion.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/data/__tests__/complete-call-recording-ingestion.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/data/__tests__/complete-call-recording-ingestion.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/data/__tests__/fetch-all-nodes.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/data/__tests__/fetch-all-nodes.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/data/__tests__/fetch-all-nodes.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/data/__tests__/fetch-all-nodes.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/data/__tests__/get-current-workspace-id.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/data/__tests__/get-current-workspace-id.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/data/__tests__/get-current-workspace-id.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/data/__tests__/get-current-workspace-id.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/data/__tests__/strip-restricted-field-value.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/data/__tests__/strip-restricted-field-value.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/data/__tests__/strip-restricted-field-value.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/data/__tests__/strip-restricted-field-value.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/data/complete-call-recording-ingestion.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/data/complete-call-recording-ingestion.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/data/complete-call-recording-ingestion.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/data/complete-call-recording-ingestion.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/data/create-call-recording.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/data/create-call-recording.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/data/create-call-recording.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/data/create-call-recording.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/data/execute-current-schema-mutation.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/data/execute-current-schema-mutation.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/data/execute-current-schema-mutation.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/data/execute-current-schema-mutation.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/data/fetch-all-nodes.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/data/fetch-all-nodes.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/data/fetch-all-nodes.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/data/fetch-all-nodes.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/data/fetch-calendar-events-by-filter.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/data/fetch-calendar-events-by-filter.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/data/fetch-calendar-events-by-filter.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/data/fetch-calendar-events-by-filter.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/data/fetch-calendar-events-by-ids.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/data/fetch-calendar-events-by-ids.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/data/fetch-calendar-events-by-ids.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/data/fetch-calendar-events-by-ids.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/data/fetch-calendar-events-by-starts-at-values.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/data/fetch-calendar-events-by-starts-at-values.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/data/fetch-calendar-events-by-starts-at-values.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/data/fetch-calendar-events-by-starts-at-values.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/data/find-call-recordings-by-calendar-event-ids.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/data/find-call-recordings-by-calendar-event-ids.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/data/find-call-recordings-by-calendar-event-ids.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/data/find-call-recordings-by-calendar-event-ids.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/data/find-call-recordings-by-filter.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/data/find-call-recordings-by-filter.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/data/find-call-recordings-by-filter.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/data/find-call-recordings-by-filter.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/data/find-call-recordings-by-ids.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/data/find-call-recordings-by-ids.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/data/find-call-recordings-by-ids.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/data/find-call-recordings-by-ids.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/data/find-open-scheduled-call-recordings.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/data/find-open-scheduled-call-recordings.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/data/find-open-scheduled-call-recordings.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/data/find-open-scheduled-call-recordings.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/data/get-current-workspace-id.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/data/get-current-workspace-id.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/data/get-current-workspace-id.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/data/get-current-workspace-id.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/data/strip-restricted-field-value.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/data/strip-restricted-field-value.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/data/strip-restricted-field-value.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/data/strip-restricted-field-value.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/data/update-call-recording.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/data/update-call-recording.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/data/update-call-recording.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/data/update-call-recording.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/__tests__/build-call-recorder-policy-result.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/__tests__/build-call-recorder-policy-result.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/__tests__/build-call-recorder-policy-result.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/__tests__/build-call-recorder-policy-result.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/__tests__/compute-call-recording-charge.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/__tests__/compute-call-recording-charge.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/__tests__/compute-call-recording-charge.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/__tests__/compute-call-recording-charge.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/__tests__/compute-call-recording-id-for-meeting.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/__tests__/compute-call-recording-id-for-meeting.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/__tests__/compute-call-recording-id-for-meeting.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/__tests__/compute-call-recording-id-for-meeting.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/__tests__/compute-real-meeting-key.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/__tests__/compute-real-meeting-key.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/__tests__/compute-real-meeting-key.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/__tests__/compute-real-meeting-key.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/__tests__/is-call-recording-ingestion-complete.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/__tests__/is-call-recording-ingestion-complete.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/__tests__/is-call-recording-ingestion-complete.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/__tests__/is-call-recording-ingestion-complete.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/__tests__/is-call-recording-status-downgrade.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/__tests__/is-call-recording-status-downgrade.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/__tests__/is-call-recording-status-downgrade.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/__tests__/is-call-recording-status-downgrade.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/__tests__/resolve-call-recorder-policy-result.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/__tests__/resolve-call-recorder-policy-result.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/__tests__/resolve-call-recorder-policy-result.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/__tests__/resolve-call-recorder-policy-result.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/__tests__/should-complete-call-recording-ingestion.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/__tests__/should-complete-call-recording-ingestion.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/__tests__/should-complete-call-recording-ingestion.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/__tests__/should-complete-call-recording-ingestion.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/aggregate-call-recorder-policy-results-by-meeting.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/aggregate-call-recorder-policy-results-by-meeting.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/aggregate-call-recorder-policy-results-by-meeting.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/aggregate-call-recorder-policy-results-by-meeting.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/build-call-recorder-policy-result.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/build-call-recorder-policy-result.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/build-call-recorder-policy-result.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/build-call-recorder-policy-result.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/build-failed-transcript-marker.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/build-failed-transcript-marker.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/build-failed-transcript-marker.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/build-failed-transcript-marker.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/build-pending-transcript-marker.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/build-pending-transcript-marker.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/build-pending-transcript-marker.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/build-pending-transcript-marker.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/build-recall-bot-metadata.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/build-recall-bot-metadata.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/build-recall-bot-metadata.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/build-recall-bot-metadata.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/build-transcript-failure-reason.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/build-transcript-failure-reason.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/build-transcript-failure-reason.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/build-transcript-failure-reason.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/compute-call-recording-charge.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/compute-call-recording-charge.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/compute-call-recording-charge.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/compute-call-recording-charge.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/compute-call-recording-id-for-meeting.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/compute-call-recording-id-for-meeting.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/compute-call-recording-id-for-meeting.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/compute-call-recording-id-for-meeting.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/compute-real-meeting-key.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/compute-real-meeting-key.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/compute-real-meeting-key.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/compute-real-meeting-key.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/compute-recall-bot-join-at.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/compute-recall-bot-join-at.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/compute-recall-bot-join-at.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/compute-recall-bot-join-at.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/is-call-recording-ingestion-complete.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/is-call-recording-ingestion-complete.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/is-call-recording-ingestion-complete.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/is-call-recording-ingestion-complete.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/is-call-recording-status-downgrade.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/is-call-recording-status-downgrade.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/is-call-recording-status-downgrade.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/is-call-recording-status-downgrade.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/is-recall-recording-done-signal.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/is-recall-recording-done-signal.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/is-recall-recording-done-signal.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/is-recall-recording-done-signal.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/map-recall-status-code-to-call-recording-status.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/map-recall-status-code-to-call-recording-status.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/map-recall-status-code-to-call-recording-status.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/map-recall-status-code-to-call-recording-status.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/parse-transcript-marker.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/parse-transcript-marker.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/parse-transcript-marker.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/parse-transcript-marker.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/resolve-call-recorder-policy-result.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/resolve-call-recorder-policy-result.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/resolve-call-recorder-policy-result.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/resolve-call-recorder-policy-result.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/should-complete-call-recording-ingestion.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/domain/should-complete-call-recording-ingestion.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/domain/should-complete-call-recording-ingestion.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/domain/should-complete-call-recording-ingestion.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/__tests__/charge-completed-call-recording.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/__tests__/charge-completed-call-recording.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/__tests__/charge-completed-call-recording.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/__tests__/charge-completed-call-recording.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/__tests__/complete-and-charge-call-recording.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/__tests__/complete-and-charge-call-recording.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/__tests__/complete-and-charge-call-recording.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/__tests__/complete-and-charge-call-recording.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/__tests__/converge-diverged-call-recordings.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/__tests__/converge-diverged-call-recordings.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/__tests__/converge-diverged-call-recordings.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/__tests__/converge-diverged-call-recordings.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/__tests__/download-transcript.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/__tests__/download-transcript.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/__tests__/download-transcript.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/__tests__/download-transcript.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/__tests__/handle-recall-webhook.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/__tests__/handle-recall-webhook.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/__tests__/handle-recall-webhook.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/__tests__/handle-recall-webhook.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/__tests__/heal-call-recordings-missing-bot.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/__tests__/heal-call-recordings-missing-bot.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/__tests__/heal-call-recordings-missing-bot.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/__tests__/heal-call-recordings-missing-bot.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/__tests__/ingest-call-recording-media.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/__tests__/ingest-call-recording-media.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/__tests__/ingest-call-recording-media.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/__tests__/ingest-call-recording-media.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/__tests__/reap-orphaned-call-recorders.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/__tests__/reap-orphaned-call-recorders.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/__tests__/reap-orphaned-call-recorders.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/__tests__/reap-orphaned-call-recorders.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/__tests__/reconcile-call-recorder.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/__tests__/reconcile-call-recorder.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/__tests__/reconcile-call-recorder.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/__tests__/reconcile-call-recorder.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/cancel-call-recording-request.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/cancel-call-recording-request.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/cancel-call-recording-request.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/cancel-call-recording-request.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/charge-completed-call-recording.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/charge-completed-call-recording.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/charge-completed-call-recording.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/charge-completed-call-recording.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/complete-and-charge-call-recording.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/complete-and-charge-call-recording.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/complete-and-charge-call-recording.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/complete-and-charge-call-recording.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/converge-diverged-call-recordings-result.type.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/converge-diverged-call-recordings-result.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/converge-diverged-call-recordings-result.type.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/converge-diverged-call-recordings-result.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/converge-diverged-call-recordings.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/converge-diverged-call-recordings.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/converge-diverged-call-recordings.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/converge-diverged-call-recordings.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/download-transcript.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/download-transcript.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/download-transcript.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/download-transcript.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/ensure-call-recorder.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/ensure-call-recorder.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/ensure-call-recorder.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/ensure-call-recorder.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/handle-recall-webhook.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/handle-recall-webhook.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/handle-recall-webhook.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/handle-recall-webhook.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/heal-call-recordings-missing-bot.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/heal-call-recordings-missing-bot.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/heal-call-recordings-missing-bot.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/heal-call-recordings-missing-bot.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/ingest-call-recording-media.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/ingest-call-recording-media.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/ingest-call-recording-media.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/ingest-call-recording-media.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/persist-call-recording-progress.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/persist-call-recording-progress.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/persist-call-recording-progress.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/persist-call-recording-progress.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/reap-orphaned-call-recorders.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/reap-orphaned-call-recorders.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/reap-orphaned-call-recorders.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/reap-orphaned-call-recorders.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/reconcile-call-recorder.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/reconcile-call-recorder.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/reconcile-call-recorder.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/reconcile-call-recorder.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/reconcile-call-recording-transcript-artifact-result.type.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/reconcile-call-recording-transcript-artifact-result.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/reconcile-call-recording-transcript-artifact-result.type.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/reconcile-call-recording-transcript-artifact-result.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/reconcile-call-recording-transcript-artifact.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/reconcile-call-recording-transcript-artifact.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/reconcile-call-recording-transcript-artifact.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/reconcile-call-recording-transcript-artifact.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/reschedule-call-recording-bot.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/flows/reschedule-call-recording-bot.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/flows/reschedule-call-recording-bot.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/flows/reschedule-call-recording-bot.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/__tests__/extract-recall-bot-convergence.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/__tests__/extract-recall-bot-convergence.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/__tests__/extract-recall-bot-convergence.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/__tests__/extract-recall-bot-convergence.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/__tests__/extract-recall-media-urls.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/__tests__/extract-recall-media-urls.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/__tests__/extract-recall-media-urls.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/__tests__/extract-recall-media-urls.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/__tests__/recall-bot-api.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/__tests__/recall-bot-api.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/__tests__/recall-bot-api.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/__tests__/recall-bot-api.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/__tests__/verify-recall-webhook-signature.test.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/__tests__/verify-recall-webhook-signature.test.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/__tests__/verify-recall-webhook-signature.test.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/__tests__/verify-recall-webhook-signature.test.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/cancel-recall-bot.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/cancel-recall-bot.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/cancel-recall-bot.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/cancel-recall-bot.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/create-async-recall-transcript.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/create-async-recall-transcript.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/create-async-recall-transcript.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/create-async-recall-transcript.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/eject-recall-bot.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/eject-recall-bot.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/eject-recall-bot.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/eject-recall-bot.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/extract-recall-bot-convergence.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/extract-recall-bot-convergence.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/extract-recall-bot-convergence.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/extract-recall-bot-convergence.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/extract-recall-bot-id.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/extract-recall-bot-id.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/extract-recall-bot-id.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/extract-recall-bot-id.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/extract-recall-media-urls.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/extract-recall-media-urls.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/extract-recall-media-urls.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/extract-recall-media-urls.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/get-recall-api-config.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/get-recall-api-config.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/get-recall-api-config.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/get-recall-api-config.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/get-recall-bot.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/get-recall-bot.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/get-recall-bot.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/get-recall-bot.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/get-recall-recording.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/get-recall-recording.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/get-recall-recording.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/get-recall-recording.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/list-recall-transcripts.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/list-recall-transcripts.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/list-recall-transcripts.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/list-recall-transcripts.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/list-scheduled-recall-bots.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/list-scheduled-recall-bots.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/list-scheduled-recall-bots.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/list-scheduled-recall-bots.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/normalize-recall-timestamp.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/normalize-recall-timestamp.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/normalize-recall-timestamp.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/normalize-recall-timestamp.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/parse-recall-webhook-event.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/parse-recall-webhook-event.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/parse-recall-webhook-event.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/parse-recall-webhook-event.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/recall-bot-api-request.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/recall-bot-api-request.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/recall-bot-api-request.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/recall-bot-api-request.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/recall-transcript-summary.type.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/recall-transcript-summary.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/recall-transcript-summary.type.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/recall-transcript-summary.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/reschedule-recall-bot.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/reschedule-recall-bot.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/reschedule-recall-bot.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/reschedule-recall-bot.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/retrieve-recall-transcript.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/retrieve-recall-transcript.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/retrieve-recall-transcript.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/retrieve-recall-transcript.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/schedule-recall-bot.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/schedule-recall-bot.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/schedule-recall-bot.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/schedule-recall-bot.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/verify-recall-webhook-signature.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/verify-recall-webhook-signature.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-api/verify-recall-webhook-signature.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-api/verify-recall-webhook-signature.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-webhook.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/recall-webhook.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/recall-webhook.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/recall-webhook.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/reconcile-call-recorder-calendar-event.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/reconcile-call-recorder-calendar-event.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/reconcile-call-recorder-calendar-event.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/reconcile-call-recorder-calendar-event.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/reconcile-stale-bot-state.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/reconcile-stale-bot-state.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/reconcile-stale-bot-state.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/reconcile-stale-bot-state.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/types/calendar-event-record.type.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/types/calendar-event-record.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/types/calendar-event-record.type.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/types/calendar-event-record.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/types/call-recorder-policy-calendar-event-input.type.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/types/call-recorder-policy-calendar-event-input.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/types/call-recorder-policy-calendar-event-input.type.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/types/call-recorder-policy-calendar-event-input.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/types/call-recorder-policy-input.type.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/types/call-recorder-policy-input.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/types/call-recorder-policy-input.type.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/types/call-recorder-policy-input.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/types/call-recorder-policy-not-required-reason.type.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/types/call-recorder-policy-not-required-reason.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/types/call-recorder-policy-not-required-reason.type.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/types/call-recorder-policy-not-required-reason.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/types/call-recorder-policy-required-reason.type.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/types/call-recorder-policy-required-reason.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/types/call-recorder-policy-required-reason.type.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/types/call-recorder-policy-required-reason.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/types/call-recorder-policy-result-for-calendar-event.type.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/types/call-recorder-policy-result-for-calendar-event.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/types/call-recorder-policy-result-for-calendar-event.type.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/types/call-recorder-policy-result-for-calendar-event.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/types/call-recorder-policy-result-for-meeting.type.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/types/call-recorder-policy-result-for-meeting.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/types/call-recorder-policy-result-for-meeting.type.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/types/call-recorder-policy-result-for-meeting.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/types/call-recorder-policy-result.type.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/types/call-recorder-policy-result.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/types/call-recorder-policy-result.type.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/types/call-recorder-policy-result.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/types/call-recorder-reconciliation-result.type.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/types/call-recorder-reconciliation-result.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/types/call-recorder-reconciliation-result.type.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/types/call-recorder-reconciliation-result.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/types/call-recording-record.type.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/types/call-recording-record.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/types/call-recording-record.type.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/types/call-recording-record.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/types/files-field-value.type.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/types/files-field-value.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/types/files-field-value.type.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/types/files-field-value.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/types/meeting-recording.type.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/types/meeting-recording.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/types/meeting-recording.type.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/types/meeting-recording.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/types/recall-bot-metadata.type.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/types/recall-bot-metadata.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/types/recall-bot-metadata.type.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/types/recall-bot-metadata.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/types/recall-bot-operation-result.type.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/types/recall-bot-operation-result.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/types/recall-bot-operation-result.type.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/types/recall-bot-operation-result.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/types/removed-call-recorder-occurrence.type.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/types/removed-call-recorder-occurrence.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/types/removed-call-recorder-occurrence.type.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/types/removed-call-recorder-occurrence.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/types/transcript-marker.type.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/types/transcript-marker.type.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/types/transcript-marker.type.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/types/transcript-marker.type.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/utils/as-record.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/utils/as-record.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/utils/as-record.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/utils/as-record.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/utils/get-application-variable-value.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/utils/get-application-variable-value.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/utils/get-application-variable-value.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/utils/get-application-variable-value.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/utils/get-record-at-path.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/utils/get-record-at-path.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/utils/get-record-at-path.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/utils/get-record-at-path.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/utils/get-string.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/utils/get-string.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/utils/get-string.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/utils/get-string.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/utils/get-unique-sorted-ids.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/utils/get-unique-sorted-ids.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/utils/get-unique-sorted-ids.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/utils/get-unique-sorted-ids.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/logic-functions/utils/is-non-empty-string.util.ts b/packages/twenty-apps/public/call-recorder/src/logic-functions/utils/is-non-empty-string.util.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/logic-functions/utils/is-non-empty-string.util.ts rename to packages/twenty-apps/public/call-recorder/src/logic-functions/utils/is-non-empty-string.util.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/page-layouts/calendar-event-recording-tab.ts b/packages/twenty-apps/public/call-recorder/src/page-layouts/calendar-event-recording-tab.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/page-layouts/calendar-event-recording-tab.ts rename to packages/twenty-apps/public/call-recorder/src/page-layouts/calendar-event-recording-tab.ts diff --git a/packages/twenty-apps/internal/call-recorder/src/view-fields/call-recorder-preference-on-calendar-event.view-field.ts b/packages/twenty-apps/public/call-recorder/src/view-fields/call-recorder-preference-on-calendar-event.view-field.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/src/view-fields/call-recorder-preference-on-calendar-event.view-field.ts rename to packages/twenty-apps/public/call-recorder/src/view-fields/call-recorder-preference-on-calendar-event.view-field.ts diff --git a/packages/twenty-apps/internal/call-recorder/tsconfig.json b/packages/twenty-apps/public/call-recorder/tsconfig.json similarity index 100% rename from packages/twenty-apps/internal/call-recorder/tsconfig.json rename to packages/twenty-apps/public/call-recorder/tsconfig.json diff --git a/packages/twenty-apps/internal/call-recorder/tsconfig.spec.json b/packages/twenty-apps/public/call-recorder/tsconfig.spec.json similarity index 100% rename from packages/twenty-apps/internal/call-recorder/tsconfig.spec.json rename to packages/twenty-apps/public/call-recorder/tsconfig.spec.json diff --git a/packages/twenty-apps/internal/call-recorder/vitest.config.ts b/packages/twenty-apps/public/call-recorder/vitest.config.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/vitest.config.ts rename to packages/twenty-apps/public/call-recorder/vitest.config.ts diff --git a/packages/twenty-apps/internal/call-recorder/vitest.unit.config.ts b/packages/twenty-apps/public/call-recorder/vitest.unit.config.ts similarity index 100% rename from packages/twenty-apps/internal/call-recorder/vitest.unit.config.ts rename to packages/twenty-apps/public/call-recorder/vitest.unit.config.ts diff --git a/packages/twenty-apps/internal/call-recorder/yarn.lock b/packages/twenty-apps/public/call-recorder/yarn.lock similarity index 100% rename from packages/twenty-apps/internal/call-recorder/yarn.lock rename to packages/twenty-apps/public/call-recorder/yarn.lock diff --git a/packages/twenty-apps/public/twenty-meeting-bot/.env.example b/packages/twenty-apps/public/twenty-meeting-bot/.env.example deleted file mode 100644 index 1a1972fe6047e..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/.env.example +++ /dev/null @@ -1,5 +0,0 @@ -# Credentials for integration tests. Copy this file to .env.local and fill in the key. -# Get an API key from the Twenty UI: Settings -> APIs & Webhooks. -# .env.local is gitignored; never commit a real key. -TWENTY_API_URL=http://localhost:2020 -TWENTY_API_KEY= diff --git a/packages/twenty-apps/public/twenty-meeting-bot/.gitignore b/packages/twenty-apps/public/twenty-meeting-bot/.gitignore deleted file mode 100644 index 6699cb048ae81..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/.gitignore +++ /dev/null @@ -1,39 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.* -.yarn - -# codegen -generated - -# testing -/coverage - -# dev -/dist/ - -.twenty - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* -.pnpm-debug.log* - -# env files (can opt-in for committing if needed) -.env* -!.env.example - -# typescript -*.tsbuildinfo -*.d.ts diff --git a/packages/twenty-apps/public/twenty-meeting-bot/.nvmrc b/packages/twenty-apps/public/twenty-meeting-bot/.nvmrc deleted file mode 100644 index 341cb50613a01..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -24.5.0 diff --git a/packages/twenty-apps/public/twenty-meeting-bot/.oxlintrc.json b/packages/twenty-apps/public/twenty-meeting-bot/.oxlintrc.json deleted file mode 100644 index 34c54bff59f2a..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/.oxlintrc.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "$schema": "./node_modules/oxlint/configuration_schema.json", - "extends": ["../../.oxlintrc.base.json"], - "plugins": ["typescript"], - "categories": { - "correctness": "off" - }, - "ignorePatterns": ["node_modules", "dist"], - "rules": { - "no-unused-vars": "off", - - "typescript/no-unused-vars": [ - "warn", - { - "argsIgnorePattern": "^_" - } - ], - "typescript/no-explicit-any": "off" - } -} diff --git a/packages/twenty-apps/public/twenty-meeting-bot/.yarnrc.yml b/packages/twenty-apps/public/twenty-meeting-bot/.yarnrc.yml deleted file mode 100644 index 3186f3f0795ab..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/.yarnrc.yml +++ /dev/null @@ -1 +0,0 @@ -nodeLinker: node-modules diff --git a/packages/twenty-apps/public/twenty-meeting-bot/AGENTS.md b/packages/twenty-apps/public/twenty-meeting-bot/AGENTS.md deleted file mode 100644 index 9078a7be23425..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/AGENTS.md +++ /dev/null @@ -1,67 +0,0 @@ -## Base documentation - -- Getting started: - - https://docs.twenty.com/developers/extend/apps/getting-started/quick-start.md - - https://docs.twenty.com/developers/extend/apps/getting-started/concepts.md - - https://docs.twenty.com/developers/extend/apps/getting-started/project-structure.md - - https://docs.twenty.com/developers/extend/apps/getting-started/local-server.md - - https://docs.twenty.com/developers/extend/apps/getting-started/scaffolding.md - - https://docs.twenty.com/developers/extend/apps/getting-started/troubleshooting.md -- Config: - - https://docs.twenty.com/developers/extend/apps/config/overview.md - - https://docs.twenty.com/developers/extend/apps/config/application.md - - https://docs.twenty.com/developers/extend/apps/config/roles.md - - https://docs.twenty.com/developers/extend/apps/config/install-hooks.md - - https://docs.twenty.com/developers/extend/apps/config/public-assets.md -- Data: - - https://docs.twenty.com/developers/extend/apps/data/overview.md - - https://docs.twenty.com/developers/extend/apps/data/objects.md - - https://docs.twenty.com/developers/extend/apps/data/extending-objects.md - - https://docs.twenty.com/developers/extend/apps/data/relations.md -- Logic: - - https://docs.twenty.com/developers/extend/apps/logic/overview.md - - https://docs.twenty.com/developers/extend/apps/logic/logic-functions.md - - https://docs.twenty.com/developers/extend/apps/logic/skills-and-agents.md - - https://docs.twenty.com/developers/extend/apps/logic/connections.md -- Layout: - - https://docs.twenty.com/developers/extend/apps/layout/overview.md - - https://docs.twenty.com/developers/extend/apps/layout/views.md - - https://docs.twenty.com/developers/extend/apps/layout/navigation-menu-items.md - - https://docs.twenty.com/developers/extend/apps/layout/page-layouts.md - - https://docs.twenty.com/developers/extend/apps/layout/front-components.md - - https://docs.twenty.com/developers/extend/apps/layout/command-menu-items.md -- Operations: - - https://docs.twenty.com/developers/extend/apps/operations/overview.md - - https://docs.twenty.com/developers/extend/apps/operations/cli.md - - https://docs.twenty.com/developers/extend/apps/operations/testing.md - - https://docs.twenty.com/developers/extend/apps/operations/publishing.md -- Rich app example: https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/examples/postcard - -## UUID requirement - -- All generated UUIDs must be valid UUID v4. - -## Common Pitfalls - -- Creating an object without an index view associated. Unless this is a technical object, user will need to visualize it. -- Creating a view without a navigationMenuItem associated. This will make the view unavailable on the left sidebar. -- Creating a front-end component that has a scroll instead of being responsive to its fixed widget height and width, unless it is specifically meant to be used in a canvas tab. - -## Best practice - -It's highly recommended to create new app entities using `yarn twenty dev:add`. These are the options: - -| Entity type | Command | Generated file | -| -------------------- | ---------------------------------------- | ------------------------------------- | -| Object | `yarn twenty dev:add object` | `src/objects/.ts` | -| Field | `yarn twenty dev:add field` | `src/fields/.ts` | -| Logic function | `yarn twenty dev:add logicFunction` | `src/logic-functions/.ts` | -| Front component | `yarn twenty dev:add frontComponent` | `src/front-components/.tsx` | -| Role | `yarn twenty dev:add role` | `src/roles/.ts` | -| Skill | `yarn twenty dev:add skill` | `src/skills/.ts` | -| Agent | `yarn twenty dev:add agent` | `src/agents/.ts` | -| View | `yarn twenty dev:add view` | `src/views/.ts` | -| Navigation menu item | `yarn twenty dev:add navigationMenuItem` | `src/navigation-menu-items/.ts` | -| Page layout | `yarn twenty dev:add pageLayout` | `src/page-layouts/.ts` | - -This helps automatically generate required IDs etc. diff --git a/packages/twenty-apps/public/twenty-meeting-bot/CLAUDE.md b/packages/twenty-apps/public/twenty-meeting-bot/CLAUDE.md deleted file mode 100644 index 9078a7be23425..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/CLAUDE.md +++ /dev/null @@ -1,67 +0,0 @@ -## Base documentation - -- Getting started: - - https://docs.twenty.com/developers/extend/apps/getting-started/quick-start.md - - https://docs.twenty.com/developers/extend/apps/getting-started/concepts.md - - https://docs.twenty.com/developers/extend/apps/getting-started/project-structure.md - - https://docs.twenty.com/developers/extend/apps/getting-started/local-server.md - - https://docs.twenty.com/developers/extend/apps/getting-started/scaffolding.md - - https://docs.twenty.com/developers/extend/apps/getting-started/troubleshooting.md -- Config: - - https://docs.twenty.com/developers/extend/apps/config/overview.md - - https://docs.twenty.com/developers/extend/apps/config/application.md - - https://docs.twenty.com/developers/extend/apps/config/roles.md - - https://docs.twenty.com/developers/extend/apps/config/install-hooks.md - - https://docs.twenty.com/developers/extend/apps/config/public-assets.md -- Data: - - https://docs.twenty.com/developers/extend/apps/data/overview.md - - https://docs.twenty.com/developers/extend/apps/data/objects.md - - https://docs.twenty.com/developers/extend/apps/data/extending-objects.md - - https://docs.twenty.com/developers/extend/apps/data/relations.md -- Logic: - - https://docs.twenty.com/developers/extend/apps/logic/overview.md - - https://docs.twenty.com/developers/extend/apps/logic/logic-functions.md - - https://docs.twenty.com/developers/extend/apps/logic/skills-and-agents.md - - https://docs.twenty.com/developers/extend/apps/logic/connections.md -- Layout: - - https://docs.twenty.com/developers/extend/apps/layout/overview.md - - https://docs.twenty.com/developers/extend/apps/layout/views.md - - https://docs.twenty.com/developers/extend/apps/layout/navigation-menu-items.md - - https://docs.twenty.com/developers/extend/apps/layout/page-layouts.md - - https://docs.twenty.com/developers/extend/apps/layout/front-components.md - - https://docs.twenty.com/developers/extend/apps/layout/command-menu-items.md -- Operations: - - https://docs.twenty.com/developers/extend/apps/operations/overview.md - - https://docs.twenty.com/developers/extend/apps/operations/cli.md - - https://docs.twenty.com/developers/extend/apps/operations/testing.md - - https://docs.twenty.com/developers/extend/apps/operations/publishing.md -- Rich app example: https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/examples/postcard - -## UUID requirement - -- All generated UUIDs must be valid UUID v4. - -## Common Pitfalls - -- Creating an object without an index view associated. Unless this is a technical object, user will need to visualize it. -- Creating a view without a navigationMenuItem associated. This will make the view unavailable on the left sidebar. -- Creating a front-end component that has a scroll instead of being responsive to its fixed widget height and width, unless it is specifically meant to be used in a canvas tab. - -## Best practice - -It's highly recommended to create new app entities using `yarn twenty dev:add`. These are the options: - -| Entity type | Command | Generated file | -| -------------------- | ---------------------------------------- | ------------------------------------- | -| Object | `yarn twenty dev:add object` | `src/objects/.ts` | -| Field | `yarn twenty dev:add field` | `src/fields/.ts` | -| Logic function | `yarn twenty dev:add logicFunction` | `src/logic-functions/.ts` | -| Front component | `yarn twenty dev:add frontComponent` | `src/front-components/.tsx` | -| Role | `yarn twenty dev:add role` | `src/roles/.ts` | -| Skill | `yarn twenty dev:add skill` | `src/skills/.ts` | -| Agent | `yarn twenty dev:add agent` | `src/agents/.ts` | -| View | `yarn twenty dev:add view` | `src/views/.ts` | -| Navigation menu item | `yarn twenty dev:add navigationMenuItem` | `src/navigation-menu-items/.ts` | -| Page layout | `yarn twenty dev:add pageLayout` | `src/page-layouts/.ts` | - -This helps automatically generate required IDs etc. diff --git a/packages/twenty-apps/public/twenty-meeting-bot/README.md b/packages/twenty-apps/public/twenty-meeting-bot/README.md deleted file mode 100644 index 1d7ab672ebfb0..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/README.md +++ /dev/null @@ -1,173 +0,0 @@ -# Twenty Meeting Bot - -Record your meetings automatically and keep every call inside your CRM. Twenty -Meeting Bot sends a recording bot to your team's calendar meetings, then stores -the video, audio, and a speaker-attributed transcript on the meeting's record — -searchable, in context, and ready for people, AI agents, and workflows to act -on. - -## What this app does - -1. A teammate has an upcoming meeting on a synced calendar with a video - conference link (Zoom, Google Meet, Microsoft Teams — anything Recall.ai - supports). -2. Because recording is on by default, the app schedules a meeting bot to join - that event shortly before it starts. -3. The bot joins under the configured display name and records the meeting's - audio and video for its duration. -4. When the call ends, Recall.ai processes the recording; the app ingests the - video, the audio, and a speaker-attributed transcript and stores them as a - **Call Recording**. -5. The recording and transcript surface on the meeting's **Calendar Event**, - under a **Call Recording** tab — ready to review, and for AI agents and - workflows to act on. - -## What gets added to your Twenty workspace - -- **A "Recording Bot" field on Calendar Events.** A select field (On / Off, On - by default) on every CalendarEvent. Leave it On to record the meeting; switch - it Off to keep the bot out of that specific event. -- **A "Call Recording" tab on the Calendar Event record page.** A viewer with - the meeting's video player and a speaker-attributed, timestamped transcript - that follows along as the recording plays. -- **Call Recording records.** Each recording is stored as a standard - **CallRecording**: the mixed audio (MP3) and video (MP4), the transcript, the - call's actual start and end times, and a lifecycle status (`SCHEDULED` → - `JOINING` → `RECORDING` → `PROCESSING` → `COMPLETED`, or `FAILED`), with a - Meeting Bot Failure Reason when failure details are available. -- **A default role.** A scoped application role that reads calendar events, - participants, people, and workspace members to decide attendance, and writes - the resulting CallRecording records, uploads recording media, and fills - transcripts. It cannot delete records or change settings. - -## How recording works - -- **On by default.** Once an admin installs the app and configures Recall.ai - credentials, every eligible meeting is recorded automatically — there is - nothing each person has to switch on. -- **A meeting is eligible when** it is not canceled, has a conference link, has - not ended yet, and its **Recording Bot** field is On. If any of those isn't - true — the event was canceled, you turned recording Off, there's no video - link, or the meeting has already ended — no bot is scheduled. -- **Opting out of a single meeting.** Open the event and set **Recording Bot** - to Off (or do it from the calendar events list view). The app cancels any bot - it had scheduled for that meeting. -- **Joining and leaving.** By default the bot joins one minute before the start - time and waits in the lobby up to twenty minutes to be admitted. It leaves on - its own if no one ever joins, or shortly after everyone else has left. These - are all tunable — see [Application variables](#application-variables). -- **It tracks the calendar.** If a meeting's time, link, or recording - preference changes, the app reschedules or cancels the bot to match. A - periodic reconciliation job runs as a safety net, keeping recordings and bots - in sync even when a real-time update is missed. - -## Billing - -Recording is a metered feature. Each recording is charged on its **actual call -duration** — from when the bot starts recording to when it stops — prorated, at -a rate of **1 credit per recording-hour** (1,000,000 micro-credits). A meeting -the bot never recorded (opted out, canceled, or no one showed) is not charged. - -## Installing - -1. Open **Settings → Applications** in your Twenty workspace. -2. Find **Twenty Meeting Bot** and click **Install**. -3. A server admin completes the one-time - [Self-hosting setup](#self-hosting-setup-admin-only) below to wire up the - Recall.ai API key and webhook. On Twenty Cloud these may already be - configured. - -## Limitations - -What this app intentionally does **not** do in v1: - -- **Recording is workspace-wide, not per person.** When the app is installed, - every eligible meeting is recorded by default; there is no per-user "record - my meetings" toggle yet. Control is per-meeting via the **Recording Bot** - field. Per-user opt-in/out is planned for a later version. -- **The meeting must be a synced calendar event with a conference link.** The - bot is scheduled from CalendarEvents that Twenty has synced from a connected - calendar (Google / Outlook / CalDAV) and that carry a video-conference link. - Ad-hoc calls that were never on a synced calendar are not recorded. -- **A recording completes only when both its audio and video are ingested.** - Recall produces only the artifacts requested at bot creation (mixed MP3 + - MP4); a recording reaches `COMPLETED` once both have been stored. If - processing fails, it is marked `FAILED`. -- **Recall.ai media is temporary; Twenty's copy is not.** Recall retains the - source media for a limited window (about seven days by default) to stay - inside its free-storage window. Twenty ingests and stores the video, audio, - and transcript in its own storage, so they remain available after Recall's - media expires. - -## Troubleshooting - -| Symptom | Likely cause | Fix | -|---|---|---| -| No bot joined a meeting | **Recording Bot** was Off, the event had no conference link, it wasn't synced from a connected calendar, or `RECALL_API_KEY` isn't set | Confirm the event is On, upcoming, has a video link, and came from a synced calendar; admin: confirm `RECALL_API_KEY` is set | -| Recording never reaches `COMPLETED` | A Recall webhook was missed, or only one of audio/video was produced | The reconciliation job pulls the latest status from Recall within a few minutes; if it is marked `FAILED`, inspect the bot in the Recall dashboard | -| Transcript empty, or marked pending/failed | Recall hasn't finished async transcription yet, or transcription failed for that call | Wait for the reconciliation job to ingest the transcript; a persistent failure leaves a marker in the transcript | -| Webhook rejected with `401` (Recall keeps retrying) | `RECALL_WEBHOOK_SECRET` doesn't match the Recall endpoint's signing secret | Re-copy the `whsec_…` secret from the Recall webhook endpoint into the `RECALL_WEBHOOK_SECRET` server variable | -| Webhook rejected with `500` about the secret | `RECALL_WEBHOOK_SECRET` is not set | Admin: set it on the application registration | -| Bot left almost immediately | No one was admitted before the lobby / no-one-joined timeout, or everyone left | Adjust `MEETING_BOT_WAITING_ROOM_TIMEOUT_SECONDS` / `MEETING_BOT_NOONE_JOINED_TIMEOUT_SECONDS` if too aggressive | -| Bot joined a meeting you didn't want recorded | Recording is on by default | Set the event's **Recording Bot** field to Off; the scheduled bot is canceled | - ---- - -## Self-hosting setup (admin-only) - -This section is for Twenty server admins. If you're on Twenty Cloud, the -credentials may already be configured. - -### Server variables - -Set these on the application registration after installing (Settings → -Applications → Twenty Meeting Bot): - -| Server variable | Required | Purpose | -|---|---|---| -| `RECALL_API_KEY` | Yes | Recall.ai API key for the configured region; used to schedule, update, and cancel bots. | -| `RECALL_REGION` | No | Recall.ai region for API requests. Defaults to `eu-central-1` (Europe / Frankfurt). | -| `MEETING_BOT_RECORDING_RETENTION_HOURS` | No | How long Recall.ai retains the source media after processing. Defaults to `166` hours (6 days 22 hours), just under Recall's 168-hour free-storage window. Values above `168` may incur Recall storage charges. Twenty's ingested copy is unaffected. | -| `RECALL_WEBHOOK_SECRET` | Yes | Svix signing secret (`whsec_…`) used to verify incoming Recall webhooks. | - -### Application variables - -A workspace admin can tune bot behavior through application variables: - -| Application variable | Default | Purpose | -|---|---|---| -| `MEETING_BOT_NAME` | `Twenty Meeting Bot` | Display name the bot uses when it joins a call. | -| `MEETING_BOT_JOIN_EARLY_MINUTES` | `1` | Minutes before the start time the bot joins. Set to `0` to join at the scheduled start. | -| `MEETING_BOT_WAITING_ROOM_TIMEOUT_SECONDS` | `1200` | Seconds the bot waits in the lobby before giving up and leaving. | -| `MEETING_BOT_NOONE_JOINED_TIMEOUT_SECONDS` | `1200` | Seconds the bot stays in an empty meeting when no one else ever joins. | -| `MEETING_BOT_EVERYONE_LEFT_TIMEOUT_SECONDS` | `2` | Seconds the bot keeps recording after everyone else leaves. | - -### Configuring the Recall webhook - -The app exposes a server webhook route that verifies the Recall/Svix signature, -advances the matching CallRecording's lifecycle status (`JOINING` → `RECORDING` -→ `PROCESSING`, or `FAILED`), and — once the recording finishes — -ingests the audio, video, and transcript. It never moves a status backward, so -out-of-order or duplicate deliveries are safe, and it returns a non-2xx response -on signature failures so Recall retries. - -Use this URL on your deployment, replacing only the host: - -```text -https:///webhooks/server/8da4b8b5-5edf-4880-b51f-ab6e679ec617/9215afe6-1497-4149-a49d-e608e239bbaf -``` - -The first ID is the **Twenty Meeting Bot application registration**. The second -ID is the **Recall webhook logic function**. - -1. In the Recall.ai dashboard, create a webhook endpoint pointing at your - deployment's webhook URL, subscribed to the **bot status-change**, - **recording**, and **transcript** events (`bot.status_change`, - `recording.done`, `recording.failed`, `transcript.done`, - `transcript.failed`). Status-change drives the lifecycle; the recording and - transcript events trigger media and transcript ingestion. Subscribing to - status changes alone leaves ingestion to the reconciliation backstop. -2. Copy the endpoint's signing secret — it starts with `whsec_`. -3. Set it as the `RECALL_WEBHOOK_SECRET` server variable on the **Twenty - Meeting Bot** application registration. -4. Set `RECALL_API_KEY` (and optionally `RECALL_REGION`) the same way. diff --git a/packages/twenty-apps/public/twenty-meeting-bot/package.json b/packages/twenty-apps/public/twenty-meeting-bot/package.json deleted file mode 100644 index 8316af39e0719..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "twenty-meeting-bot", - "version": "0.1.4", - "license": "MIT", - "engines": { - "node": "^24.5.0", - "npm": "please-use-yarn", - "yarn": ">=4.0.2" - }, - "keywords": [], - "packageManager": "yarn@4.9.2", - "scripts": { - "twenty": "twenty", - "lint": "oxlint -c .oxlintrc.json .", - "lint:fix": "oxlint --fix -c .oxlintrc.json .", - "typecheck": "tsgo --noEmit -p tsconfig.spec.json", - "test": "vitest run", - "test:unit": "vitest run --config vitest.unit.config.ts", - "test:unit:watch": "vitest --config vitest.unit.config.ts", - "test:watch": "vitest" - }, - "dependencies": { - "@sniptt/guards": "^0.2.0" - }, - "devDependencies": { - "@emotion/react": "^11.14.0", - "@emotion/styled": "^11.14.0", - "@types/node": "^24.7.2", - "@types/react": "^19.0.0", - "@typescript/native-preview": "^7.0.0-dev.20260116.1", - "oxlint": "^0.16.0", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "twenty-client-sdk": "2.15.0", - "twenty-sdk": "2.15.0", - "typescript": "^5.9.3", - "vite-tsconfig-paths": "^4.2.1", - "vitest": "^4.1.9" - } -} diff --git a/packages/twenty-apps/public/twenty-meeting-bot/public/gallery/twenty-meeting-bot-cover.png b/packages/twenty-apps/public/twenty-meeting-bot/public/gallery/twenty-meeting-bot-cover.png deleted file mode 100644 index 41b463347b416c63d6e9402f04220174730c6a8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1699468 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≠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%0DbkfjzhkMt*hLf2Qu-$SLVzPT-+!wd$UlS6_u? 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

esF#nBfEV+eHQ=D_etC>dTJ* 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≤mTXh?8j9MrZp+& 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

o*k80reK_X+|_%nAOUF#36_2U5utQ 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⒳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 z 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 z

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%0D!>AED6Z}ti4 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߽SwboUUYNZu-zuqk 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

=1_(akDm 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%0D87_8iQlO{jF|y*{Pisx`NA?rw$1= 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 - - - - diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/__tests__/global-setup.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/__tests__/global-setup.ts deleted file mode 100644 index 5d6782a1ce972..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/__tests__/global-setup.ts +++ /dev/null @@ -1,100 +0,0 @@ -import * as fs from 'fs'; -import * as os from 'os'; -import * as path from 'path'; - -import { appDevOnce, appUninstall } from 'twenty-sdk/cli'; - -const APP_PATH = process.cwd(); -const CONFIG_DIR = path.join(os.homedir(), '.twenty'); -const CONFIG_PATH = path.join(CONFIG_DIR, 'config.test.json'); - -function validateEnv(): { apiUrl: string; apiKey: string } { - const apiUrl = process.env.TWENTY_API_URL; - const apiKey = process.env.TWENTY_API_KEY; - - if (!apiUrl || !apiKey) { - throw new Error( - 'TWENTY_API_URL and TWENTY_API_KEY must be set.\n' + - 'Start a local server: yarn twenty docker:start\n' + - 'Or set them in vitest env config.', - ); - } - - return { apiUrl, apiKey }; -} - -async function checkServer(apiUrl: string) { - let response: Response; - - try { - response = await fetch(`${apiUrl}/healthz`); - } catch { - throw new Error( - `Twenty server is not reachable at ${apiUrl}. ` + - 'Make sure the server is running before executing integration tests.', - ); - } - - if (!response.ok) { - throw new Error(`Server at ${apiUrl} returned ${response.status}`); - } -} - -function writeConfig(apiUrl: string, apiKey: string) { - const payload = JSON.stringify( - { - remotes: { - local: { apiUrl, apiKey, accessToken: apiKey }, - }, - defaultRemote: 'local', - }, - null, - 2, - ); - - fs.mkdirSync(CONFIG_DIR, { recursive: true }); - fs.writeFileSync(CONFIG_PATH, payload); -} - -function removeConfig() { - fs.rmSync(CONFIG_PATH, { force: true }); -} - -export async function setup() { - const { apiUrl, apiKey } = validateEnv(); - - await checkServer(apiUrl); - - writeConfig(apiUrl, apiKey); - - await appUninstall({ appPath: APP_PATH }).catch(() => {}); - - const result = await appDevOnce({ - appPath: APP_PATH, - onProgress: (message: string) => console.log(`[dev] ${message}`), - }); - - if (!result.success) { - throw new Error( - `Dev sync failed: ${result.error?.message ?? 'Unknown error'}`, - ); - } -} - -export async function teardown() { - try { - const uninstallResult = await appUninstall({ appPath: APP_PATH }); - - if (!uninstallResult.success) { - console.warn( - `App uninstall failed: ${uninstallResult.error?.message ?? 'Unknown error'}`, - ); - } - } catch (error) { - console.warn( - `App uninstall failed: ${error instanceof Error ? error.message : String(error)}`, - ); - } finally { - removeConfig(); - } -} diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/__tests__/schema.integration-test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/__tests__/schema.integration-test.ts deleted file mode 100644 index b9623320cf212..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/__tests__/schema.integration-test.ts +++ /dev/null @@ -1,123 +0,0 @@ -import { CoreApiClient } from 'twenty-client-sdk/core'; -import { MetadataApiClient } from 'twenty-client-sdk/metadata'; -import { describe, expect, it } from 'vitest'; - -import { APPLICATION_UNIVERSAL_IDENTIFIER } from 'src/constants/application-universal-identifier'; -import { CallRecordingRequestStatus } from 'src/logic-functions/constants/call-recording-request-status'; -import { CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status'; -import { - executeCurrentSchemaMutation, - type CurrentSchemaUpdateCallRecordingMutation, -} from 'src/logic-functions/data/execute-current-schema-mutation.util'; - -describe('App installation', () => { - it('should find the installed app in the applications list', async () => { - const client = new MetadataApiClient(); - - const result = await client.query({ - findManyApplications: { - id: true, - name: true, - universalIdentifier: true, - }, - }); - - const app = result.findManyApplications.find( - (a: { universalIdentifier: string }) => - a.universalIdentifier === APPLICATION_UNIVERSAL_IDENTIFIER, - ); - - expect(app).toBeDefined(); - }); -}); - -describe('CallRecording status contract', () => { - it('accepts every app status supported by the current server and every request status value the app mirrors', async () => { - const client = new CoreApiClient(); - const serverCallRecordingStatuses = await getServerCallRecordingStatuses(); - - const created = await client.mutation({ - createCallRecording: { - __args: { - data: { - title: 'Integration test recording', - status: CallRecordingStatus.SCHEDULED, - recordingRequestStatus: CallRecordingRequestStatus.REQUESTED, - }, - }, - id: true, - }, - }); - - const callRecordingId = created.createCallRecording?.id; - - expect(callRecordingId).toBeDefined(); - - if (callRecordingId === undefined) { - throw new Error('Expected call recording creation to return an id'); - } - - expect(serverCallRecordingStatuses).toEqual( - expect.arrayContaining([ - CallRecordingStatus.SCHEDULED, - CallRecordingStatus.JOINING, - CallRecordingStatus.RECORDING, - CallRecordingStatus.PROCESSING, - CallRecordingStatus.COMPLETED, - ]), - ); - - // TODO: Remove this compatibility filter once the released server/SDK - // exposes FAILED instead of FAILED_UNKNOWN. - const statusesAcceptedByCurrentServer = Object.values( - CallRecordingStatus, - ).filter((status) => serverCallRecordingStatuses.includes(status)); - - for (const status of statusesAcceptedByCurrentServer) { - const mutation = { - updateCallRecording: { - __args: { id: callRecordingId, data: { status } }, - status: true, - }, - } satisfies CurrentSchemaUpdateCallRecordingMutation; - - const updated = await executeCurrentSchemaMutation(client, mutation); - - expect(updated.updateCallRecording?.status).toBe(status); - } - - for (const recordingRequestStatus of Object.values( - CallRecordingRequestStatus, - )) { - const updated = await client.mutation({ - updateCallRecording: { - __args: { id: callRecordingId, data: { recordingRequestStatus } }, - recordingRequestStatus: true, - }, - }); - - expect(updated.updateCallRecording?.recordingRequestStatus).toBe( - recordingRequestStatus, - ); - } - - await client.mutation({ - destroyCallRecording: { - __args: { id: callRecordingId }, - id: true, - }, - }); - }); -}); - -type GeneratedCoreSchemaRuntime = { - enumCallRecordingStatusEnum: Record; -}; - -const getServerCallRecordingStatuses = async (): Promise => { - const generatedCoreSchema = (await import( - 'twenty-client-sdk/core' - )) as unknown as GeneratedCoreSchemaRuntime; - - return Object.values(generatedCoreSchema.enumCallRecordingStatusEnum); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/application-config.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/application-config.ts deleted file mode 100644 index 0ecf95e8a869b..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/application-config.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { defineApplication } from 'twenty-sdk/define'; - -import { APP_DESCRIPTION } from 'src/constants/app-description'; -import { APP_DISPLAY_NAME } from 'src/constants/app-display-name'; -import { APPLICATION_UNIVERSAL_IDENTIFIER } from 'src/constants/application-universal-identifier'; -import { MEETING_BOT_EVERYONE_LEFT_TIMEOUT_SECONDS_APP_VARIABLE_UNIVERSAL_IDENTIFIER } from 'src/constants/meeting-bot-everyone-left-timeout-seconds-app-variable-universal-identifier'; -import { MEETING_BOT_JOIN_EARLY_MINUTES_APP_VARIABLE_UNIVERSAL_IDENTIFIER } from 'src/constants/meeting-bot-join-early-minutes-app-variable-universal-identifier'; -import { MEETING_BOT_NAME_APP_VARIABLE_UNIVERSAL_IDENTIFIER } from 'src/constants/meeting-bot-name-app-variable-universal-identifier'; -import { MEETING_BOT_NOONE_JOINED_TIMEOUT_SECONDS_APP_VARIABLE_UNIVERSAL_IDENTIFIER } from 'src/constants/meeting-bot-noone-joined-timeout-seconds-app-variable-universal-identifier'; -import { MEETING_BOT_WAITING_ROOM_TIMEOUT_SECONDS_APP_VARIABLE_UNIVERSAL_IDENTIFIER } from 'src/constants/meeting-bot-waiting-room-timeout-seconds-app-variable-universal-identifier'; -import { DEFAULT_MEETING_BOT_JOIN_EARLY_MINUTES } from 'src/logic-functions/constants/default-meeting-bot-join-early-minutes'; -import { DEFAULT_MEETING_BOT_NAME } from 'src/logic-functions/constants/default-meeting-bot-name'; -import { DEFAULT_MEETING_BOT_RECORDING_RETENTION_HOURS } from 'src/logic-functions/constants/default-meeting-bot-recording-retention-hours'; -import { DEFAULT_RECALL_REGION } from 'src/logic-functions/constants/default-recall-region'; -import { MEETING_BOT_EVERYONE_LEFT_TIMEOUT_SECONDS } from 'src/logic-functions/constants/meeting-bot-everyone-left-timeout-seconds'; -import { MEETING_BOT_EVERYONE_LEFT_TIMEOUT_SECONDS_ENV_VAR_NAME } from 'src/logic-functions/constants/meeting-bot-everyone-left-timeout-seconds-env-var-name'; -import { MEETING_BOT_JOIN_EARLY_MINUTES_ENV_VAR_NAME } from 'src/logic-functions/constants/meeting-bot-join-early-minutes-env-var-name'; -import { MEETING_BOT_NAME_ENV_VAR_NAME } from 'src/logic-functions/constants/meeting-bot-name-env-var-name'; -import { MEETING_BOT_NOONE_JOINED_TIMEOUT_SECONDS } from 'src/logic-functions/constants/meeting-bot-noone-joined-timeout-seconds'; -import { MEETING_BOT_NOONE_JOINED_TIMEOUT_SECONDS_ENV_VAR_NAME } from 'src/logic-functions/constants/meeting-bot-noone-joined-timeout-seconds-env-var-name'; -import { MEETING_BOT_RECORDING_RETENTION_HOURS_ENV_VAR_NAME } from 'src/logic-functions/constants/meeting-bot-recording-retention-hours-env-var-name'; -import { MEETING_BOT_WAITING_ROOM_TIMEOUT_SECONDS } from 'src/logic-functions/constants/meeting-bot-waiting-room-timeout-seconds'; -import { MEETING_BOT_WAITING_ROOM_TIMEOUT_SECONDS_ENV_VAR_NAME } from 'src/logic-functions/constants/meeting-bot-waiting-room-timeout-seconds-env-var-name'; -import { RECALL_API_KEY_ENV_VAR_NAME } from 'src/logic-functions/constants/recall-api-key-env-var-name'; -import { RECALL_REGION_ENV_VAR_NAME } from 'src/logic-functions/constants/recall-region-env-var-name'; -import { RECALL_WEBHOOK_SECRET_ENV_VAR_NAME } from 'src/logic-functions/constants/recall-webhook-secret-env-var-name'; - -export default defineApplication({ - universalIdentifier: APPLICATION_UNIVERSAL_IDENTIFIER, - displayName: APP_DISPLAY_NAME, - description: APP_DESCRIPTION, - logoUrl: 'public/logo.svg', - screenshots: ['public/gallery/twenty-meeting-bot-cover.png'], - applicationVariables: { - [MEETING_BOT_NAME_ENV_VAR_NAME]: { - universalIdentifier: MEETING_BOT_NAME_APP_VARIABLE_UNIVERSAL_IDENTIFIER, - description: 'Display name the meeting bot uses when it joins a call.', - isSecret: false, - value: DEFAULT_MEETING_BOT_NAME, - }, - [MEETING_BOT_JOIN_EARLY_MINUTES_ENV_VAR_NAME]: { - universalIdentifier: - MEETING_BOT_JOIN_EARLY_MINUTES_APP_VARIABLE_UNIVERSAL_IDENTIFIER, - description: - 'How many minutes before the meeting start time the bot should join. Set to 0 to join at the scheduled start time.', - isSecret: false, - value: String(DEFAULT_MEETING_BOT_JOIN_EARLY_MINUTES), - }, - [MEETING_BOT_WAITING_ROOM_TIMEOUT_SECONDS_ENV_VAR_NAME]: { - universalIdentifier: - MEETING_BOT_WAITING_ROOM_TIMEOUT_SECONDS_APP_VARIABLE_UNIVERSAL_IDENTIFIER, - description: - 'How many seconds the bot waits in a meeting lobby before giving up and leaving.', - isSecret: false, - value: String(MEETING_BOT_WAITING_ROOM_TIMEOUT_SECONDS), - }, - [MEETING_BOT_NOONE_JOINED_TIMEOUT_SECONDS_ENV_VAR_NAME]: { - universalIdentifier: - MEETING_BOT_NOONE_JOINED_TIMEOUT_SECONDS_APP_VARIABLE_UNIVERSAL_IDENTIFIER, - description: - 'How many seconds the bot stays in an empty meeting when no one else ever joins.', - isSecret: false, - value: String(MEETING_BOT_NOONE_JOINED_TIMEOUT_SECONDS), - }, - [MEETING_BOT_EVERYONE_LEFT_TIMEOUT_SECONDS_ENV_VAR_NAME]: { - universalIdentifier: - MEETING_BOT_EVERYONE_LEFT_TIMEOUT_SECONDS_APP_VARIABLE_UNIVERSAL_IDENTIFIER, - description: - 'How many seconds the bot keeps recording after everyone else leaves the meeting.', - isSecret: false, - value: String(MEETING_BOT_EVERYONE_LEFT_TIMEOUT_SECONDS), - }, - }, - serverVariables: { - [RECALL_API_KEY_ENV_VAR_NAME]: { - description: - 'Recall.ai API key for the configured region. Set by the server admin on this registration after installation; used to create, update, and cancel scheduled meeting bots.', - isSecret: true, - isRequired: true, - }, - [RECALL_REGION_ENV_VAR_NAME]: { - description: `Recall.ai region used for API requests. Defaults to ${DEFAULT_RECALL_REGION} when unset. Europe Frankfurt is eu-central-1.`, - isSecret: false, - }, - [MEETING_BOT_RECORDING_RETENTION_HOURS_ENV_VAR_NAME]: { - description: `How many hours Recall.ai retains recording media after processing. Defaults to ${DEFAULT_MEETING_BOT_RECORDING_RETENTION_HOURS} hours (6 days and 22 hours) to stay below Recall.ai's 7-day free storage window. Values above 168 hours may incur Recall.ai storage charges.`, - isSecret: false, - }, - [RECALL_WEBHOOK_SECRET_ENV_VAR_NAME]: { - description: - 'Recall.ai webhook signing secret (whsec_...). Set by the server admin from the Recall webhook endpoint settings; used to verify the Svix signature of incoming Recall webhook deliveries.', - isSecret: true, - isRequired: true, - }, - }, -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/__tests__/call-recording-field-universal-identifiers.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/__tests__/call-recording-field-universal-identifiers.test.ts deleted file mode 100644 index 78d6c1b79987f..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/__tests__/call-recording-field-universal-identifiers.test.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS } from 'twenty-sdk/define'; -import { describe, expect, it } from 'vitest'; - -import { CALL_RECORDING_AUDIO_FIELD_UNIVERSAL_IDENTIFIER } from 'src/constants/call-recording-audio-field-universal-identifier'; -import { CALL_RECORDING_VIDEO_FIELD_UNIVERSAL_IDENTIFIER } from 'src/constants/call-recording-video-field-universal-identifier'; - -// This test is nothing more than a sanity check to ensure that the universal identifiers for the call recording media fields are correct. -describe('call recording field universal identifiers', () => { - it('matches the standard CallRecording media field identifiers', () => { - expect(CALL_RECORDING_AUDIO_FIELD_UNIVERSAL_IDENTIFIER).toBe( - STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.callRecording.fields.audio - .universalIdentifier, - ); - expect(CALL_RECORDING_VIDEO_FIELD_UNIVERSAL_IDENTIFIER).toBe( - STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.callRecording.fields.video - .universalIdentifier, - ); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/app-description.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/app-description.ts deleted file mode 100644 index e5580e7caeaf7..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/app-description.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const APP_DESCRIPTION = - 'Capture every customer conversation automatically. A meeting bot joins eligible meetings and records calls for you.'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/app-display-name.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/app-display-name.ts deleted file mode 100644 index 9208fcde477d6..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/app-display-name.ts +++ /dev/null @@ -1 +0,0 @@ -export const APP_DISPLAY_NAME = 'Twenty Meeting Bot'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/application-universal-identifier.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/application-universal-identifier.ts deleted file mode 100644 index b88164429bd37..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/application-universal-identifier.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const APPLICATION_UNIVERSAL_IDENTIFIER = - '8da4b8b5-5edf-4880-b51f-ab6e679ec617'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-reconciliation-logic-function-universal-identifier.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-reconciliation-logic-function-universal-identifier.ts deleted file mode 100644 index b9f7a2ee81302..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-reconciliation-logic-function-universal-identifier.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const CALENDAR_EVENT_RECONCILIATION_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER = - '1f28c477-6423-4911-85bf-2296ef112be9'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-record-page-layout-universal-identifier.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-record-page-layout-universal-identifier.ts deleted file mode 100644 index a66d22a24f0d2..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-record-page-layout-universal-identifier.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const CALENDAR_EVENT_RECORD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIER = - 'b9b10e40-9ce2-4704-8ac6-c6e92e2563c1'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-recording-front-component-universal-identifier.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-recording-front-component-universal-identifier.ts deleted file mode 100644 index 3fe07b41b8084..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-recording-front-component-universal-identifier.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const CALENDAR_EVENT_RECORDING_FRONT_COMPONENT_UNIVERSAL_IDENTIFIER = - '445d742e-1c27-46ee-a9ab-4a1dde65adcf'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-recording-page-layout-tab-universal-identifier.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-recording-page-layout-tab-universal-identifier.ts deleted file mode 100644 index c559deebca8ba..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-recording-page-layout-tab-universal-identifier.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const CALENDAR_EVENT_RECORDING_PAGE_LAYOUT_TAB_UNIVERSAL_IDENTIFIER = - '10c2c22d-952b-42ea-81fe-2e93e7d30f86'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-recording-page-layout-widget-universal-identifier.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-recording-page-layout-widget-universal-identifier.ts deleted file mode 100644 index 1588ffe3b72a0..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/calendar-event-recording-page-layout-widget-universal-identifier.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const CALENDAR_EVENT_RECORDING_PAGE_LAYOUT_WIDGET_UNIVERSAL_IDENTIFIER = - '29c2315b-2ee6-41df-91b7-42f58f6c1a53'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/call-recording-audio-field-universal-identifier.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/call-recording-audio-field-universal-identifier.ts deleted file mode 100644 index 6d17dc45d95c8..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/call-recording-audio-field-universal-identifier.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const CALL_RECORDING_AUDIO_FIELD_UNIVERSAL_IDENTIFIER = - '2eafc2d0-8fec-430c-a939-65ca5fbc0f08'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/call-recording-video-field-universal-identifier.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/call-recording-video-field-universal-identifier.ts deleted file mode 100644 index ff4ebcf5fa308..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/call-recording-video-field-universal-identifier.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const CALL_RECORDING_VIDEO_FIELD_UNIVERSAL_IDENTIFIER = - 'bb9523d3-457e-4f4b-8c79-27a77afb87da'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/default-role-universal-identifier.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/default-role-universal-identifier.ts deleted file mode 100644 index 1c23dd519d96e..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/default-role-universal-identifier.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const DEFAULT_ROLE_UNIVERSAL_IDENTIFIER = - '5fcf4d3a-0aca-42d9-9beb-7387f43ec180'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-everyone-left-timeout-seconds-app-variable-universal-identifier.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-everyone-left-timeout-seconds-app-variable-universal-identifier.ts deleted file mode 100644 index 6197b972b7bf1..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-everyone-left-timeout-seconds-app-variable-universal-identifier.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const MEETING_BOT_EVERYONE_LEFT_TIMEOUT_SECONDS_APP_VARIABLE_UNIVERSAL_IDENTIFIER = - 'c866ddd4-fb7b-4cb4-8ad1-5599755e495c'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-failure-reason-on-call-recording-field-universal-identifier.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-failure-reason-on-call-recording-field-universal-identifier.ts deleted file mode 100644 index 8de20ef3a7da3..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-failure-reason-on-call-recording-field-universal-identifier.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const MEETING_BOT_FAILURE_REASON_ON_CALL_RECORDING_FIELD_UNIVERSAL_IDENTIFIER = - '33a577e4-02f5-48bd-8bed-d365949caa72'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-join-early-minutes-app-variable-universal-identifier.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-join-early-minutes-app-variable-universal-identifier.ts deleted file mode 100644 index 3d4165ec0e32a..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-join-early-minutes-app-variable-universal-identifier.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const MEETING_BOT_JOIN_EARLY_MINUTES_APP_VARIABLE_UNIVERSAL_IDENTIFIER = - '0568ebb2-3f64-47de-8c0d-d367dfbb7462'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-name-app-variable-universal-identifier.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-name-app-variable-universal-identifier.ts deleted file mode 100644 index 51a8ac9177ee0..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-name-app-variable-universal-identifier.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const MEETING_BOT_NAME_APP_VARIABLE_UNIVERSAL_IDENTIFIER = - 'c54cbacd-ad10-40b4-9056-7aaf23846d64'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-noone-joined-timeout-seconds-app-variable-universal-identifier.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-noone-joined-timeout-seconds-app-variable-universal-identifier.ts deleted file mode 100644 index 60b8a04a009b7..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-noone-joined-timeout-seconds-app-variable-universal-identifier.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const MEETING_BOT_NOONE_JOINED_TIMEOUT_SECONDS_APP_VARIABLE_UNIVERSAL_IDENTIFIER = - '241180e8-d864-4160-ad02-db44a9e8d395'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference-off-option-id.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference-off-option-id.ts deleted file mode 100644 index 7a51ea4c2f7f5..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference-off-option-id.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const MEETING_BOT_PREFERENCE_OFF_OPTION_ID = - 'cc7de62a-08b6-46c8-aa69-f8117e7dd722'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference-on-calendar-event-field-universal-identifier.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference-on-calendar-event-field-universal-identifier.ts deleted file mode 100644 index c321578654d86..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference-on-calendar-event-field-universal-identifier.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const MEETING_BOT_PREFERENCE_ON_CALENDAR_EVENT_FIELD_UNIVERSAL_IDENTIFIER = - '8ee9444a-2437-4def-8e61-6e493862a4fd'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference-on-calendar-event-view-field-universal-identifier.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference-on-calendar-event-view-field-universal-identifier.ts deleted file mode 100644 index 477d5abd6b3b5..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference-on-calendar-event-view-field-universal-identifier.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const MEETING_BOT_PREFERENCE_ON_CALENDAR_EVENT_VIEW_FIELD_UNIVERSAL_IDENTIFIER = - 'e8c7e9c5-2b4f-4a75-ae46-ea331809106c'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference-on-option-id.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference-on-option-id.ts deleted file mode 100644 index 77a82fa86d48d..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference-on-option-id.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const MEETING_BOT_PREFERENCE_ON_OPTION_ID = - '72431216-49c4-47c8-99af-de4c3831b0be'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference.ts deleted file mode 100644 index 670e71c935c40..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-preference.ts +++ /dev/null @@ -1,4 +0,0 @@ -export enum MeetingBotPreference { - ON = 'ON', - OFF = 'OFF', -} diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-waiting-room-timeout-seconds-app-variable-universal-identifier.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-waiting-room-timeout-seconds-app-variable-universal-identifier.ts deleted file mode 100644 index bec5abdce4154..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/meeting-bot-waiting-room-timeout-seconds-app-variable-universal-identifier.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const MEETING_BOT_WAITING_ROOM_TIMEOUT_SECONDS_APP_VARIABLE_UNIVERSAL_IDENTIFIER = - '12e4e14d-d539-4d07-b477-4773539dd20b'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/recall-webhook-logic-function-universal-identifier.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/recall-webhook-logic-function-universal-identifier.ts deleted file mode 100644 index 98e5e559bea4e..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/recall-webhook-logic-function-universal-identifier.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const RECALL_WEBHOOK_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER = - '9215afe6-1497-4149-a49d-e608e239bbaf'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/stale-bot-state-logic-function-universal-identifier.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/constants/stale-bot-state-logic-function-universal-identifier.ts deleted file mode 100644 index 79ea9ad293c95..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/constants/stale-bot-state-logic-function-universal-identifier.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const STALE_BOT_STATE_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER = - 'e362aa9b-52c6-4b7e-bb20-927e0e8d7cbe'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/default-role.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/default-role.ts deleted file mode 100644 index 62df301574b60..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/default-role.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { - STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS, - SystemPermissionFlag, - defineApplicationRole, -} from 'twenty-sdk/define'; - -import { APP_DISPLAY_NAME } from 'src/constants/app-display-name'; -import { DEFAULT_ROLE_UNIVERSAL_IDENTIFIER } from 'src/constants/default-role-universal-identifier'; - -export default defineApplicationRole({ - universalIdentifier: DEFAULT_ROLE_UNIVERSAL_IDENTIFIER, - label: `${APP_DISPLAY_NAME} default role`, - description: - 'Reads calendar events to decide whether the meeting bot should attend a meeting; writes the resulting CallRecording records, uploads recording media, and fills transcripts.', - canReadAllObjectRecords: false, - canUpdateAllObjectRecords: false, - canSoftDeleteAllObjectRecords: false, - canDestroyAllObjectRecords: false, - canUpdateAllSettings: false, - canBeAssignedToAgents: false, - canBeAssignedToUsers: false, - canBeAssignedToApiKeys: false, - objectPermissions: [ - { - objectUniversalIdentifier: - STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.calendarEvent.universalIdentifier, - canReadObjectRecords: true, - canUpdateObjectRecords: false, - canSoftDeleteObjectRecords: false, - canDestroyObjectRecords: false, - }, - { - objectUniversalIdentifier: - STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.calendarEventParticipant - .universalIdentifier, - canReadObjectRecords: true, - canUpdateObjectRecords: false, - canSoftDeleteObjectRecords: false, - canDestroyObjectRecords: false, - }, - { - objectUniversalIdentifier: - STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.callRecording.universalIdentifier, - canReadObjectRecords: true, - canUpdateObjectRecords: true, - canSoftDeleteObjectRecords: false, - canDestroyObjectRecords: false, - }, - { - objectUniversalIdentifier: - STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.person.universalIdentifier, - canReadObjectRecords: true, - canUpdateObjectRecords: false, - canSoftDeleteObjectRecords: false, - canDestroyObjectRecords: false, - }, - { - objectUniversalIdentifier: - STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.workspaceMember - .universalIdentifier, - canReadObjectRecords: true, - canUpdateObjectRecords: false, - canSoftDeleteObjectRecords: false, - canDestroyObjectRecords: false, - }, - ], - fieldPermissions: [], - permissionFlagUniversalIdentifiers: [SystemPermissionFlag.UPLOAD_FILE], -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/fields/meeting-bot-failure-reason-on-call-recording.field.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/fields/meeting-bot-failure-reason-on-call-recording.field.ts deleted file mode 100644 index af87ce4b8728a..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/fields/meeting-bot-failure-reason-on-call-recording.field.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { - defineField, - FieldType, - STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS, -} from 'twenty-sdk/define'; - -import { MEETING_BOT_FAILURE_REASON_ON_CALL_RECORDING_FIELD_UNIVERSAL_IDENTIFIER } from 'src/constants/meeting-bot-failure-reason-on-call-recording-field-universal-identifier'; - -export default defineField({ - universalIdentifier: - MEETING_BOT_FAILURE_REASON_ON_CALL_RECORDING_FIELD_UNIVERSAL_IDENTIFIER, - objectUniversalIdentifier: - STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.callRecording.universalIdentifier, - type: FieldType.TEXT, - name: 'meetingBotFailureReason', - label: 'Meeting Bot Failure Reason', - description: - 'Provider-specific reason the meeting bot could not produce a recording.', - icon: 'IconAlertTriangle', - isNullable: true, - isUIEditable: false, -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/fields/meeting-bot-preference-on-calendar-event.field.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/fields/meeting-bot-preference-on-calendar-event.field.ts deleted file mode 100644 index 078c91a327fb5..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/fields/meeting-bot-preference-on-calendar-event.field.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { - defineField, - FieldType, - STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS, -} from 'twenty-sdk/define'; - -import { MeetingBotPreference } from 'src/constants/meeting-bot-preference'; -import { MEETING_BOT_PREFERENCE_OFF_OPTION_ID } from 'src/constants/meeting-bot-preference-off-option-id'; -import { MEETING_BOT_PREFERENCE_ON_OPTION_ID } from 'src/constants/meeting-bot-preference-on-option-id'; -import { MEETING_BOT_PREFERENCE_ON_CALENDAR_EVENT_FIELD_UNIVERSAL_IDENTIFIER } from 'src/constants/meeting-bot-preference-on-calendar-event-field-universal-identifier'; - -export default defineField({ - universalIdentifier: - MEETING_BOT_PREFERENCE_ON_CALENDAR_EVENT_FIELD_UNIVERSAL_IDENTIFIER, - objectUniversalIdentifier: - STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.calendarEvent.universalIdentifier, - type: FieldType.SELECT, - name: 'meetingBotPreference', - label: 'Recording Bot', - description: - 'Meeting bot recording is on by default when the app is installed. Turn it off for this event when needed.', - icon: 'IconRobot', - isNullable: false, - defaultValue: `'${MeetingBotPreference.ON}'`, - options: [ - { - id: MEETING_BOT_PREFERENCE_ON_OPTION_ID, - value: MeetingBotPreference.ON, - label: 'On', - position: 0, - color: 'green', - }, - { - id: MEETING_BOT_PREFERENCE_OFF_OPTION_ID, - value: MeetingBotPreference.OFF, - label: 'Off', - position: 1, - color: 'red', - }, - ], -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/calendar-event-recording.front-component.tsx b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/calendar-event-recording.front-component.tsx deleted file mode 100644 index 76eae30dc5176..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/calendar-event-recording.front-component.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { defineFrontComponent } from 'twenty-sdk/define'; - -import { CALENDAR_EVENT_RECORDING_FRONT_COMPONENT_UNIVERSAL_IDENTIFIER } from 'src/constants/calendar-event-recording-front-component-universal-identifier'; -import { CalendarEventRecording } from 'src/front-components/components/CalendarEventRecording'; - -export default defineFrontComponent({ - universalIdentifier: - CALENDAR_EVENT_RECORDING_FRONT_COMPONENT_UNIVERSAL_IDENTIFIER, - name: 'calendar-event-recording', - description: - 'Read-only recording viewer with synced transcript for the calendar event record page.', - component: CalendarEventRecording, -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/CalendarEventRecording.tsx b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/CalendarEventRecording.tsx deleted file mode 100644 index ce05393821805..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/CalendarEventRecording.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import styled from '@emotion/styled'; -import { isUndefined } from '@sniptt/guards'; -import { useSelectedRecordIds } from 'twenty-sdk/front-component'; - -import { CalendarEventRecordingContent } from 'src/front-components/components/CalendarEventRecordingContent'; -import { recordingThemeCssVariables } from 'src/front-components/constants/recording-theme-css-variables'; - -const StyledCenteredState = styled.div` - align-items: center; - box-sizing: border-box; - color: ${recordingThemeCssVariables.font.colorTertiary}; - display: flex; - font-family: ${recordingThemeCssVariables.font.family}; - font-size: ${recordingThemeCssVariables.font.sizeSm}; - height: 100%; - justify-content: center; - padding: ${recordingThemeCssVariables.spacing[4]}; -`; - -export const CalendarEventRecording = () => { - const selectedRecordIds = useSelectedRecordIds(); - const calendarEventId = - selectedRecordIds.length === 1 ? selectedRecordIds[0] : undefined; - - if (isUndefined(calendarEventId)) { - return ( - - Open a calendar event to see its recording. - - ); - } - - return ( - - ); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/CalendarEventRecordingBody.tsx b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/CalendarEventRecordingBody.tsx deleted file mode 100644 index 7847f43409573..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/CalendarEventRecordingBody.tsx +++ /dev/null @@ -1,96 +0,0 @@ -import styled from '@emotion/styled'; -import { isUndefined } from '@sniptt/guards'; - -import { RecordingTranscript } from 'src/front-components/components/RecordingTranscript'; -import { RecordingVideoPlayer } from 'src/front-components/components/RecordingVideoPlayer'; -import { TranscriptErrorBox } from 'src/front-components/components/TranscriptErrorBox'; -import { recordingThemeCssVariables } from 'src/front-components/constants/recording-theme-css-variables'; -import { type CalendarEventRecordingParticipant } from 'src/front-components/types/calendar-event-recording-participant.type'; - -const StyledCenteredState = styled.div` - align-items: center; - box-sizing: border-box; - color: ${recordingThemeCssVariables.font.colorTertiary}; - display: flex; - font-family: ${recordingThemeCssVariables.font.family}; - font-size: ${recordingThemeCssVariables.font.sizeSm}; - justify-content: center; - min-height: 240px; - padding: ${recordingThemeCssVariables.spacing[4]}; -`; - -const StyledRecordingContainer = styled.div<{ - $hasVideo?: boolean; -}>` - display: grid; - gap: ${recordingThemeCssVariables.spacing[2]}; - grid-template-rows: ${({ $hasVideo }) => - $hasVideo ? 'auto minmax(0, 1fr)' : 'minmax(0, 1fr)'}; - min-height: 0; -`; - -type CalendarEventRecordingBodyProps = { - transcript: unknown; - videoFileUrl: string | undefined; - isCalendarEventRecordingQueryLoading: boolean; - errorMessage: string | undefined; - currentTimeSeconds: number; - calendarEventParticipants: CalendarEventRecordingParticipant[]; - onVideoTimeUpdate: (videoCurrentTimeSeconds: number) => void; -}; - -export const CalendarEventRecordingBody = ({ - transcript, - videoFileUrl, - isCalendarEventRecordingQueryLoading, - errorMessage, - currentTimeSeconds, - calendarEventParticipants, - onVideoTimeUpdate, -}: CalendarEventRecordingBodyProps) => { - const hasVideo = !isUndefined(videoFileUrl); - - if (!isUndefined(errorMessage)) { - return ( - - ); - } - - if (isCalendarEventRecordingQueryLoading) { - return ( - - - - ); - } - - if (isUndefined(transcript) && !hasVideo) { - return ( - - No recording for this calendar event yet. - - ); - } - - return ( - - {hasVideo && ( - - )} - - - ); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/CalendarEventRecordingContent.tsx b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/CalendarEventRecordingContent.tsx deleted file mode 100644 index 3b1e5f07ec60f..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/CalendarEventRecordingContent.tsx +++ /dev/null @@ -1,111 +0,0 @@ -import styled from '@emotion/styled'; -import { useCallback, useState } from 'react'; - -import { CalendarEventRecordingBody } from 'src/front-components/components/CalendarEventRecordingBody'; -import { recordingThemeCssVariables } from 'src/front-components/constants/recording-theme-css-variables'; -import { useCalendarEventParticipants } from 'src/front-components/hooks/use-calendar-event-participants'; -import { useCalendarEventRecording } from 'src/front-components/hooks/use-calendar-event-recording'; - -const TRANSCRIPT_TIME_UPDATE_INTERVAL_SECONDS = 0.25; - -const StyledRecordingShell = styled.div` - background: ${recordingThemeCssVariables.background.primary}; - border: 1px solid transparent; - border-bottom: 1px solid transparent; - border-radius: ${recordingThemeCssVariables.border.radiusMd}; - box-sizing: border-box; - font-family: ${recordingThemeCssVariables.font.family}; - padding: ${recordingThemeCssVariables.spacing[4]}; - position: relative; - width: 100%; -`; - -const StyledRecordingHeader = styled.div` - align-items: center; - box-sizing: border-box; - display: flex; - height: ${recordingThemeCssVariables.spacing[6]}; -`; - -const StyledRecordingTitle = styled.h2` - color: ${recordingThemeCssVariables.font.colorPrimary}; - flex: 1; - font-size: ${recordingThemeCssVariables.font.sizeMd}; - font-weight: ${recordingThemeCssVariables.font.weightMedium}; - margin: 0; - overflow: hidden; - padding-inline: ${recordingThemeCssVariables.spacing[1]}; - user-select: none; -`; - -const StyledRecordingBody = styled.div` - box-sizing: border-box; - margin-top: ${recordingThemeCssVariables.spacing[2]}; -`; - -const StyledRecordingContentFrame = styled.div` - background-color: ${recordingThemeCssVariables.background.secondary}; - border: 1px solid ${recordingThemeCssVariables.border.colorMedium}; - border-radius: ${recordingThemeCssVariables.border.radiusMd}; - box-sizing: border-box; - padding: ${recordingThemeCssVariables.spacing[2]}; -`; - -type CalendarEventRecordingContentProps = { - calendarEventId: string; -}; - -export const CalendarEventRecordingContent = ({ - calendarEventId, -}: CalendarEventRecordingContentProps) => { - const [currentTimeSeconds, setCurrentTimeSeconds] = useState(0); - const updateCurrentTimeSeconds = useCallback( - (videoCurrentTimeSeconds: number) => { - const nextCurrentTimeSeconds = - Math.floor( - videoCurrentTimeSeconds / TRANSCRIPT_TIME_UPDATE_INTERVAL_SECONDS, - ) * TRANSCRIPT_TIME_UPDATE_INTERVAL_SECONDS; - - setCurrentTimeSeconds((previousCurrentTimeSeconds) => - previousCurrentTimeSeconds === nextCurrentTimeSeconds - ? previousCurrentTimeSeconds - : nextCurrentTimeSeconds, - ); - }, - [], - ); - - const { - transcript, - videoFile, - isCalendarEventRecordingQueryLoading, - errorMessage, - } = useCalendarEventRecording(calendarEventId); - const { calendarEventParticipants } = - useCalendarEventParticipants(calendarEventId); - - const videoFileUrl = videoFile?.url ?? undefined; - - return ( - - - Recording and Transcript - - - - - - - - ); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/RecordingTranscript.tsx b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/RecordingTranscript.tsx deleted file mode 100644 index 5666e2f5e0ba4..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/RecordingTranscript.tsx +++ /dev/null @@ -1,92 +0,0 @@ -import styled from '@emotion/styled'; -import { isUndefined } from '@sniptt/guards'; -import { useMemo } from 'react'; - -import { TranscriptEntryList } from 'src/front-components/components/TranscriptEntryList'; -import { TranscriptErrorBox } from 'src/front-components/components/TranscriptErrorBox'; -import { recordingThemeCssVariables } from 'src/front-components/constants/recording-theme-css-variables'; -import { type CalendarEventRecordingParticipant } from 'src/front-components/types/calendar-event-recording-participant.type'; -import { parseTranscriptEntries } from 'src/front-components/utils/parse-transcript-entries.util'; -import { parseTranscriptMarker } from 'src/logic-functions/domain/parse-transcript-marker.util'; -import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util'; - -const StyledTranscriptCenteredState = styled.div` - align-items: center; - color: ${recordingThemeCssVariables.font.colorTertiary}; - display: flex; - flex: 1; - font-size: ${recordingThemeCssVariables.font.sizeSm}; - justify-content: center; -`; - -type RecordingTranscriptProps = { - transcript: unknown; - currentTimeSeconds: number; - calendarEventParticipants: CalendarEventRecordingParticipant[]; -}; - -export const RecordingTranscript = ({ - transcript, - currentTimeSeconds, - calendarEventParticipants, -}: RecordingTranscriptProps) => { - const marker = useMemo(() => parseTranscriptMarker(transcript), [transcript]); - const entries = useMemo( - () => parseTranscriptEntries(transcript), - [transcript], - ); - - if (isUndefined(transcript)) { - return ( - - No transcript for this calendar event yet. - - ); - } - - if (marker?.status === 'PENDING') { - return ( - - The transcript is being generated. Check back in a few minutes. - - ); - } - - if (marker?.status === 'FAILED') { - return ( - - ); - } - - if (isUndefined(entries)) { - return ( - - ); - } - - if (entries.length === 0) { - return ( - - The transcript is empty. - - ); - } - - return ( - - ); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/RecordingVideoPlayer.tsx b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/RecordingVideoPlayer.tsx deleted file mode 100644 index 40a60ab04a009..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/RecordingVideoPlayer.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import styled from '@emotion/styled'; -import { memo, type SyntheticEvent } from 'react'; - -import { recordingThemeCssVariables } from 'src/front-components/constants/recording-theme-css-variables'; - -const DEFAULT_VIDEO_ASPECT_RATIO = '16 / 9'; - -const StyledVideoViewport = styled.div` - aspect-ratio: ${DEFAULT_VIDEO_ASPECT_RATIO}; - background: ${recordingThemeCssVariables.background.primary}; - border-radius: ${recordingThemeCssVariables.border.radiusSm}; - overflow: hidden; - width: 100%; -`; - -const StyledVideo = styled.video` - accent-color: ${recordingThemeCssVariables.accent.primary}; - background: ${recordingThemeCssVariables.background.primary}; - color-scheme: light dark; - display: block; - height: 100%; - object-fit: contain; - width: 100%; -`; - -type RecordingVideoPlayerProps = { - src: string | undefined; - onTimeUpdate: (currentTimeSeconds: number) => void; -}; - -const RecordingVideoPlayerComponent = ({ - src, - onTimeUpdate, -}: RecordingVideoPlayerProps) => { - const handleTimeUpdate = (event: SyntheticEvent) => { - onTimeUpdate(event.currentTarget.currentTime); - }; - - return ( - - - - ); -}; - -export const RecordingVideoPlayer = memo(RecordingVideoPlayerComponent); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptEntryList.tsx b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptEntryList.tsx deleted file mode 100644 index 43f4b7a479372..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptEntryList.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import styled from '@emotion/styled'; -import { useMemo } from 'react'; - -import { TranscriptEntryListItem } from 'src/front-components/components/TranscriptEntryListItem'; -import { recordingThemeCssVariables } from 'src/front-components/constants/recording-theme-css-variables'; -import { type CalendarEventRecordingParticipant } from 'src/front-components/types/calendar-event-recording-participant.type'; -import { type TranscriptEntry } from 'src/front-components/types/transcript-entry.type'; -import { buildCalendarEventParticipantBySpeakerName } from 'src/front-components/utils/build-calendar-event-participant-by-speaker-name.util'; -import { findActiveTranscriptEntryIndex } from 'src/front-components/utils/find-active-transcript-entry-index.util'; -import { getCalendarEventParticipantForSpeakerName } from 'src/front-components/utils/get-calendar-event-participant-for-speaker-name.util'; - -const StyledTranscriptContainer = styled.div` - display: flex; - flex: 1; - flex-direction: column; - gap: ${recordingThemeCssVariables.spacing[2]}; - min-height: 0; -`; - -type TranscriptEntryListProps = { - entries: TranscriptEntry[]; - currentTimeSeconds: number; - calendarEventParticipants: CalendarEventRecordingParticipant[]; -}; - -export const TranscriptEntryList = ({ - entries, - currentTimeSeconds, - calendarEventParticipants, -}: TranscriptEntryListProps) => { - const activeEntryIndex = findActiveTranscriptEntryIndex( - entries, - currentTimeSeconds, - ); - const calendarEventParticipantBySpeakerName = useMemo( - () => buildCalendarEventParticipantBySpeakerName(calendarEventParticipants), - [calendarEventParticipants], - ); - - return ( - - {entries.map((entry, entryIndex) => { - const calendarEventParticipant = - getCalendarEventParticipantForSpeakerName({ - speakerName: entry.speakerName, - calendarEventParticipantBySpeakerName, - }); - - return ( - - ); - })} - - ); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptEntryListItem.tsx b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptEntryListItem.tsx deleted file mode 100644 index 044489c48b870..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptEntryListItem.tsx +++ /dev/null @@ -1,115 +0,0 @@ -import styled from '@emotion/styled'; -import { isUndefined } from '@sniptt/guards'; - -import { TranscriptSpeakerChip } from 'src/front-components/components/TranscriptSpeakerChip'; -import { recordingThemeCssVariables } from 'src/front-components/constants/recording-theme-css-variables'; -import { type CalendarEventRecordingParticipant } from 'src/front-components/types/calendar-event-recording-participant.type'; -import { - type TranscriptEntry, - type TranscriptWord, -} from 'src/front-components/types/transcript-entry.type'; -import { formatTranscriptTimestamp } from 'src/front-components/utils/format-transcript-timestamp.util'; - -const StyledEntry = styled.div<{ $isActive: boolean }>` - align-items: flex-start; - background: ${({ $isActive }) => - $isActive - ? recordingThemeCssVariables.background.transparentBlue - : 'transparent'}; - border-radius: ${recordingThemeCssVariables.border.radiusSm}; - box-sizing: border-box; - display: flex; - flex-direction: column; - gap: ${recordingThemeCssVariables.spacing[2]}; - justify-content: center; - padding: ${recordingThemeCssVariables.spacing[2]}; - width: 100%; -`; - -const StyledEntryHeader = styled.div` - align-items: center; - align-self: stretch; - display: flex; - gap: ${recordingThemeCssVariables.spacing[2]}; - min-height: ${recordingThemeCssVariables.spacing[6]}; - min-width: 0; -`; - -const StyledTimestamp = styled.span` - color: ${recordingThemeCssVariables.font.colorTertiary}; - font-size: ${recordingThemeCssVariables.font.sizeXs}; - line-height: 1.4; -`; - -const StyledEntryText = styled.p` - align-self: stretch; - color: ${recordingThemeCssVariables.font.colorSecondary}; - font-size: ${recordingThemeCssVariables.font.sizeSm}; - line-height: 1.4; - margin: 0; -`; - -const StyledWord = styled.span<{ $isSpoken: boolean }>` - color: ${({ $isSpoken }) => - $isSpoken - ? recordingThemeCssVariables.font.colorPrimary - : recordingThemeCssVariables.font.colorSecondary}; - line-height: 1.4; - transition: color 0.15s ease; -`; - -type TranscriptEntryListItemProps = { - entry: TranscriptEntry; - isActive: boolean; - currentTimeSeconds: number; - calendarEventParticipant: CalendarEventRecordingParticipant | undefined; -}; - -export const TranscriptEntryListItem = ({ - entry, - isActive, - currentTimeSeconds, - calendarEventParticipant, -}: TranscriptEntryListItemProps) => { - const speakerDisplayName = - calendarEventParticipant?.displayName ?? entry.speakerName; - - return ( - - - - {!isUndefined(entry.startSeconds) && ( - - {formatTranscriptTimestamp(entry.startSeconds)} - - )} - - - {entry.words.map((word, wordIndex) => ( - - {wordIndex > 0 ? ' ' : ''} - {word.text} - - ))} - - - ); -}; - -const isWordSpoken = ({ - word, - currentTimeSeconds, -}: { - word: TranscriptWord; - currentTimeSeconds: number; -}): boolean => - !isUndefined(word.startSeconds) && currentTimeSeconds >= word.startSeconds; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptErrorBox.tsx b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptErrorBox.tsx deleted file mode 100644 index 2808bd3f97be1..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptErrorBox.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import styled from '@emotion/styled'; - -import { recordingThemeCssVariables } from 'src/front-components/constants/recording-theme-css-variables'; - -const StyledStateContainer = styled.div` - box-sizing: border-box; - font-family: ${recordingThemeCssVariables.font.family}; - height: 100%; - padding: ${recordingThemeCssVariables.spacing[4]}; -`; - -const StyledErrorBox = styled.div` - background: ${recordingThemeCssVariables.background.transparentDanger}; - border: 1px solid ${recordingThemeCssVariables.border.colorDanger}; - border-radius: ${recordingThemeCssVariables.border.radiusMd}; - display: flex; - flex-direction: column; - gap: ${recordingThemeCssVariables.spacing[1]}; - padding: ${recordingThemeCssVariables.spacing[3]}; -`; - -const StyledErrorTitle = styled.span` - color: ${recordingThemeCssVariables.font.colorDanger}; - font-size: ${recordingThemeCssVariables.font.sizeSm}; - font-weight: ${recordingThemeCssVariables.font.weightMedium}; -`; - -const StyledErrorDescription = styled.span` - color: ${recordingThemeCssVariables.font.colorSecondary}; - font-size: ${recordingThemeCssVariables.font.sizeSm}; -`; - -type TranscriptErrorBoxProps = { - title: string; - description: string; -}; - -export const TranscriptErrorBox = ({ - title, - description, -}: TranscriptErrorBoxProps) => ( - - - {title} - {description} - - -); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptSpeakerAvatar.tsx b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptSpeakerAvatar.tsx deleted file mode 100644 index c2695ab2c3e96..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptSpeakerAvatar.tsx +++ /dev/null @@ -1,141 +0,0 @@ -// Duplicates minimal twenty-ui Avatar logic for this app. -// Remove once twenty-ui can be imported safely in front components. -import styled from '@emotion/styled'; -import { useState } from 'react'; - -import { recordingThemeCssVariables } from 'src/front-components/constants/recording-theme-css-variables'; -import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util'; - -const AVATAR_COLOR_NAMES = [ - 'red', - 'ruby', - 'crimson', - 'tomato', - 'orange', - 'amber', - 'yellow', - 'lime', - 'grass', - 'green', - 'jade', - 'mint', - 'turquoise', - 'cyan', - 'sky', - 'blue', - 'iris', - 'violet', - 'purple', - 'plum', - 'pink', - 'bronze', - 'gold', - 'brown', - 'gray', -] as const; - -const StyledAvatar = styled.div<{ - $backgroundColor: string; - $color: string; -}>` - align-items: center; - background: ${({ $backgroundColor }) => $backgroundColor}; - border-radius: 50px; - box-sizing: border-box; - color: ${({ $color }) => $color}; - display: flex; - flex-shrink: 0; - font-size: ${recordingThemeCssVariables.font.sizeXs}; - font-weight: ${recordingThemeCssVariables.font.weightMedium}; - height: 16px; - justify-content: center; - line-height: 15px; - overflow: hidden; - width: 16px; -`; - -const StyledAvatarImage = styled.img` - height: 100%; - object-fit: cover; - width: 100%; -`; - -type TranscriptSpeakerAvatarProps = { - speakerName: string; - avatarUrl: string | undefined; - placeholderColorSeed: string; -}; - -const getSpeakerInitial = (speakerName: string) => - speakerName.trim().charAt(0).toUpperCase() || '-'; - -export const TranscriptSpeakerAvatar = ({ - speakerName, - avatarUrl, - placeholderColorSeed, -}: TranscriptSpeakerAvatarProps) => { - const [erroredAvatarUrl, setErroredAvatarUrl] = useState< - string | undefined - >(undefined); - - const shouldShowAvatarImage = - isNonEmptyString(avatarUrl) && erroredAvatarUrl !== avatarUrl; - - const handleAvatarImageError = () => { - if (isNonEmptyString(avatarUrl)) { - setErroredAvatarUrl(avatarUrl); - } - }; - - const avatarPlaceholderColor = getAvatarPlaceholderColor({ - placeholderColorSeed, - variant: 12, - }); - const avatarPlaceholderBackgroundColor = getAvatarPlaceholderColor({ - placeholderColorSeed, - variant: 4, - }); - - return ( - - ); -}; - -const getAvatarPlaceholderColor = ({ - placeholderColorSeed, - variant, -}: { - placeholderColorSeed: string; - variant: 4 | 12; -}): string => { - const avatarColorName = - AVATAR_COLOR_NAMES[ - Math.abs(hashString(placeholderColorSeed)) % AVATAR_COLOR_NAMES.length - ]; - - return `var(--t-color-${avatarColorName}${variant})`; -}; - -const hashString = (value: string): number => { - let hash = 0; - - for (let valueIndex = 0; valueIndex < value.length; valueIndex++) { - hash = value.charCodeAt(valueIndex) + ((hash << 5) - hash); - } - - return hash; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptSpeakerChip.tsx b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptSpeakerChip.tsx deleted file mode 100644 index d7863eb42a405..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/components/TranscriptSpeakerChip.tsx +++ /dev/null @@ -1,51 +0,0 @@ -// Duplicates minimal twenty-ui Chip logic for this app. -// Remove once twenty-ui can be imported safely in front components. -import styled from '@emotion/styled'; - -import { TranscriptSpeakerAvatar } from 'src/front-components/components/TranscriptSpeakerAvatar'; -import { recordingThemeCssVariables } from 'src/front-components/constants/recording-theme-css-variables'; - -const StyledSpeakerChip = styled.span` - align-items: center; - border-radius: ${recordingThemeCssVariables.border.radiusSm}; - color: ${recordingThemeCssVariables.font.colorPrimary}; - display: inline-flex; - font-size: ${recordingThemeCssVariables.font.sizeSm}; - font-weight: ${recordingThemeCssVariables.font.weightMedium}; - gap: ${recordingThemeCssVariables.spacing[1]}; - line-height: 1.4; - max-width: 100%; - min-width: 0; - text-decoration: none; - white-space: nowrap; -`; - -const StyledSpeakerName = styled.span` - flex-shrink: 1; - min-width: 0; - overflow: hidden; - text-overflow: ellipsis; -`; - -type TranscriptSpeakerChipProps = { - speakerName: string; - avatarUrl: string | undefined; - placeholderColorSeed: string; -}; - -export const TranscriptSpeakerChip = ({ - speakerName, - avatarUrl, - placeholderColorSeed, -}: TranscriptSpeakerChipProps) => { - return ( - - - {speakerName} - - ); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/constants/recording-theme-css-variables.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/constants/recording-theme-css-variables.ts deleted file mode 100644 index a8cce2347fcb7..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/constants/recording-theme-css-variables.ts +++ /dev/null @@ -1,40 +0,0 @@ -// Avoid the SDK UI entrypoint until its bundle is safe for the browser runtime. -export const recordingThemeCssVariables = { - accent: { - primary: 'var(--t-accent-accent9)', - }, - background: { - primary: 'var(--t-background-primary)', - secondary: 'var(--t-background-secondary)', - transparentBlue: 'var(--t-background-transparent-blue)', - transparentDanger: 'var(--t-background-transparent-danger)', - }, - border: { - colorDanger: 'var(--t-border-color-danger)', - colorLight: 'var(--t-border-color-light)', - colorMedium: 'var(--t-border-color-medium)', - radiusMd: 'var(--t-border-radius-md)', - radiusSm: 'var(--t-border-radius-sm)', - }, - boxShadow: { - light: 'var(--t-box-shadow-light)', - }, - font: { - colorDanger: 'var(--t-font-color-danger)', - colorPrimary: 'var(--t-font-color-primary)', - colorSecondary: 'var(--t-font-color-secondary)', - colorTertiary: 'var(--t-font-color-tertiary)', - family: 'var(--t-font-family)', - sizeMd: 'var(--t-font-size-md)', - sizeSm: 'var(--t-font-size-sm)', - sizeXs: 'var(--t-font-size-xs)', - weightMedium: 'var(--t-font-weight-medium)', - }, - spacing: { - 1: 'var(--t-spacing-1)', - 2: 'var(--t-spacing-2)', - 3: 'var(--t-spacing-3)', - 4: 'var(--t-spacing-4)', - 6: 'var(--t-spacing-6)', - }, -} as const; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/hooks/use-calendar-event-participants.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/hooks/use-calendar-event-participants.ts deleted file mode 100644 index a1eb0ef14a04b..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/hooks/use-calendar-event-participants.ts +++ /dev/null @@ -1,174 +0,0 @@ -import { useEffect, useState } from 'react'; -import { CoreApiClient } from 'twenty-client-sdk/core'; - -import { type CalendarEventRecordingParticipant } from 'src/front-components/types/calendar-event-recording-participant.type'; -import { getAbsoluteAvatarUrl } from 'src/front-components/utils/get-absolute-avatar-url.util'; -import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util'; - -const CALENDAR_EVENT_PARTICIPANT_LOOKUP_LIMIT = 100; - -type CalendarEventParticipantName = { - firstName?: string | null; - lastName?: string | null; -}; - -type CalendarEventParticipantRelatedRecord = { - id?: string | null; - avatarUrl?: string | null; - name?: CalendarEventParticipantName | null; -}; - -type CalendarEventParticipantNode = { - id: string; - displayName?: string | null; - handle?: string | null; - personId?: string | null; - workspaceMemberId?: string | null; - person?: CalendarEventParticipantRelatedRecord | null; - workspaceMember?: CalendarEventParticipantRelatedRecord | null; -}; - -type CalendarEventParticipantEdge = { - node: CalendarEventParticipantNode; -}; - -type UseCalendarEventParticipantsReturn = { - calendarEventParticipants: CalendarEventRecordingParticipant[]; -}; - -export const useCalendarEventParticipants = ( - calendarEventId: string | undefined, -): UseCalendarEventParticipantsReturn => { - const [calendarEventParticipants, setCalendarEventParticipants] = useState< - CalendarEventRecordingParticipant[] - >([]); - - useEffect(() => { - if (!isNonEmptyString(calendarEventId)) { - setCalendarEventParticipants([]); - return; - } - - let cancelled = false; - - const fetchCalendarEventParticipants = async () => { - try { - const client = new CoreApiClient(); - const queryResult = await client.query({ - calendarEventParticipants: { - __args: { - filter: { calendarEventId: { eq: calendarEventId } }, - first: CALENDAR_EVENT_PARTICIPANT_LOOKUP_LIMIT, - }, - edges: { - node: { - id: true, - displayName: true, - handle: true, - personId: true, - workspaceMemberId: true, - person: { - id: true, - avatarUrl: true, - name: { - firstName: true, - lastName: true, - }, - }, - workspaceMember: { - id: true, - avatarUrl: true, - name: { - firstName: true, - lastName: true, - }, - }, - }, - }, - }, - }); - - if (cancelled) { - return; - } - - const calendarEventParticipantEdges = (queryResult - .calendarEventParticipants?.edges ?? - []) as CalendarEventParticipantEdge[]; - - setCalendarEventParticipants( - calendarEventParticipantEdges.map((calendarEventParticipantEdge) => - mapCalendarEventParticipantNode( - calendarEventParticipantEdge.node, - ), - ), - ); - } catch { - if (cancelled) { - return; - } - - setCalendarEventParticipants([]); - } - }; - - fetchCalendarEventParticipants(); - - return () => { - cancelled = true; - }; - }, [calendarEventId]); - - return { calendarEventParticipants }; -}; - -const mapCalendarEventParticipantNode = ( - calendarEventParticipantNode: CalendarEventParticipantNode, -): CalendarEventRecordingParticipant => { - const personName = readFullName(calendarEventParticipantNode.person?.name); - const workspaceMemberName = readFullName( - calendarEventParticipantNode.workspaceMember?.name, - ); - const calendarDisplayName = readOptionalString( - calendarEventParticipantNode.displayName, - ); - const handle = readOptionalString(calendarEventParticipantNode.handle); - - return { - id: calendarEventParticipantNode.id, - avatarUrl: getAbsoluteAvatarUrl( - calendarEventParticipantNode.person?.avatarUrl ?? - calendarEventParticipantNode.workspaceMember?.avatarUrl, - ), - displayName: - personName ?? workspaceMemberName ?? calendarDisplayName ?? handle, - nameCandidates: [ - calendarDisplayName, - personName, - workspaceMemberName, - handle, - ].filter((nameCandidate): nameCandidate is string => - isNonEmptyString(nameCandidate), - ), - placeholderColorSeed: - calendarEventParticipantNode.workspaceMemberId ?? - calendarEventParticipantNode.personId ?? - calendarEventParticipantNode.id, - }; -}; - -const readFullName = ( - name: CalendarEventParticipantName | null | undefined, -): string | undefined => { - const firstName = readOptionalString(name?.firstName); - const lastName = readOptionalString(name?.lastName); - const fullName = [firstName, lastName] - .filter((namePart): namePart is string => isNonEmptyString(namePart)) - .join(' '); - - return isNonEmptyString(fullName) ? fullName : undefined; -}; - -const readOptionalString = ( - value: string | null | undefined, -): string | undefined => (isNonEmptyString(value) ? value.trim() : undefined); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/hooks/use-calendar-event-recording.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/hooks/use-calendar-event-recording.ts deleted file mode 100644 index d1bb8803e49cb..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/hooks/use-calendar-event-recording.ts +++ /dev/null @@ -1,156 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; -import { useEffect, useState } from 'react'; -import { CoreApiClient } from 'twenty-client-sdk/core'; - -type CalendarEventRecordingState = { - transcript: unknown; - videoFile: CalendarEventRecordingVideoFile | undefined; - isCalendarEventRecordingQueryLoading: boolean; - errorMessage: string | undefined; -}; - -type CalendarEventRecordingVideoFile = { - fileId: string; - label: string | null; - url: string | null; - extension: string | null; -}; - -type CalendarEventRecordingCallRecordingNode = { - id: string; - transcript: unknown; - video: CalendarEventRecordingVideoFile[] | null; -}; - -type CalendarEventRecordingCallRecordingEdge = { - node: CalendarEventRecordingCallRecordingNode; -}; - -const CALENDAR_EVENT_RECORDING_LOOKUP_LIMIT = 10; -const CALENDAR_EVENT_RECORDING_ERROR_MESSAGE = 'Please try again later.'; - -export const useCalendarEventRecording = ( - calendarEventId: string | undefined, -): CalendarEventRecordingState => { - const [state, setState] = useState({ - transcript: undefined, - videoFile: undefined, - isCalendarEventRecordingQueryLoading: !isUndefined(calendarEventId), - errorMessage: undefined, - }); - - useEffect(() => { - if (isUndefined(calendarEventId)) { - setState({ - transcript: undefined, - videoFile: undefined, - isCalendarEventRecordingQueryLoading: false, - errorMessage: undefined, - }); - return; - } - - let cancelled = false; - - const fetchRecording = async () => { - setState({ - transcript: undefined, - videoFile: undefined, - isCalendarEventRecordingQueryLoading: true, - errorMessage: undefined, - }); - - try { - const client = new CoreApiClient(); - const queryResult = await client.query({ - callRecordings: { - __args: { - filter: { calendarEventId: { eq: calendarEventId } }, - orderBy: [{ startedAt: 'DescNullsLast' }], - first: CALENDAR_EVENT_RECORDING_LOOKUP_LIMIT, - }, - edges: { - node: { - id: true, - transcript: true, - video: { - fileId: true, - label: true, - url: true, - extension: true, - }, - }, - }, - }, - }); - - if (cancelled) { - return; - } - - const callRecordingEdges = (queryResult.callRecordings?.edges ?? - []) as CalendarEventRecordingCallRecordingEdge[]; - const callRecordingNodes = callRecordingEdges.map( - (callRecordingEdge) => callRecordingEdge.node, - ); - const callRecordingNode = selectCalendarEventRecording( - callRecordingNodes, - ); - - setState({ - transcript: callRecordingNode?.transcript ?? undefined, - videoFile: isUndefined(callRecordingNode) - ? undefined - : getVideoFile(callRecordingNode), - isCalendarEventRecordingQueryLoading: false, - errorMessage: undefined, - }); - } catch { - if (cancelled) { - return; - } - - setState({ - transcript: undefined, - videoFile: undefined, - isCalendarEventRecordingQueryLoading: false, - errorMessage: CALENDAR_EVENT_RECORDING_ERROR_MESSAGE, - }); - } - }; - - fetchRecording(); - - return () => { - cancelled = true; - }; - }, [calendarEventId]); - - return state; -}; - -const hasTranscript = ( - callRecordingNode: CalendarEventRecordingCallRecordingNode, -): boolean => - !isUndefined(callRecordingNode.transcript) && - callRecordingNode.transcript !== null; - -const getVideoFile = ( - callRecordingNode: CalendarEventRecordingCallRecordingNode, -): CalendarEventRecordingVideoFile | undefined => - callRecordingNode.video?.find( - (videoFile) => !isUndefined(videoFile.url) && videoFile.url !== null, - ); - -const selectCalendarEventRecording = ( - callRecordingNodes: CalendarEventRecordingCallRecordingNode[], -): CalendarEventRecordingCallRecordingNode | undefined => - callRecordingNodes.find( - (callRecordingNode) => - hasTranscript(callRecordingNode) && - !isUndefined(getVideoFile(callRecordingNode)), - ) ?? - callRecordingNodes.find(hasTranscript) ?? - callRecordingNodes.find( - (callRecordingNode) => !isUndefined(getVideoFile(callRecordingNode)), - ); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/types/calendar-event-participant-by-speaker-name.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/types/calendar-event-participant-by-speaker-name.type.ts deleted file mode 100644 index c6fbe5e000c75..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/types/calendar-event-participant-by-speaker-name.type.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { type CalendarEventRecordingParticipant } from 'src/front-components/types/calendar-event-recording-participant.type'; - -export type CalendarEventParticipantBySpeakerName = Map< - string, - CalendarEventRecordingParticipant ->; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/types/calendar-event-recording-participant.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/types/calendar-event-recording-participant.type.ts deleted file mode 100644 index ec760f1bb6065..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/types/calendar-event-recording-participant.type.ts +++ /dev/null @@ -1,7 +0,0 @@ -export type CalendarEventRecordingParticipant = { - id: string; - avatarUrl: string | undefined; - displayName: string | undefined; - nameCandidates: string[]; - placeholderColorSeed: string; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/types/transcript-entry.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/types/transcript-entry.type.ts deleted file mode 100644 index 0be254067011e..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/types/transcript-entry.type.ts +++ /dev/null @@ -1,13 +0,0 @@ -export type TranscriptWord = { - text: string; - startSeconds: number | undefined; - endSeconds: number | undefined; -}; - -export type TranscriptEntry = { - speakerName: string; - startSeconds: number | undefined; - endSeconds: number | undefined; - text: string; - words: TranscriptWord[]; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/__tests__/find-active-transcript-entry-index.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/__tests__/find-active-transcript-entry-index.test.ts deleted file mode 100644 index 5616dbef333ea..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/__tests__/find-active-transcript-entry-index.test.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -import { type TranscriptEntry } from 'src/front-components/types/transcript-entry.type'; -import { findActiveTranscriptEntryIndex } from 'src/front-components/utils/find-active-transcript-entry-index.util'; - -const makeTranscriptEntry = ({ - startSeconds, - endSeconds, -}: { - startSeconds: number | undefined; - endSeconds: number | undefined; -}): TranscriptEntry => ({ - speakerName: 'Ada Lovelace', - startSeconds, - endSeconds, - text: 'Hello', - words: [{ text: 'Hello', startSeconds, endSeconds }], -}); - -describe('findActiveTranscriptEntryIndex', () => { - it('does not keep an open-ended entry active after the next entry starts', () => { - expect( - findActiveTranscriptEntryIndex( - [ - makeTranscriptEntry({ startSeconds: 1, endSeconds: undefined }), - makeTranscriptEntry({ startSeconds: 10, endSeconds: 20 }), - ], - 25, - ), - ).toBe(-1); - }); - - it('uses the next known start as the boundary for entries without an end time', () => { - expect( - findActiveTranscriptEntryIndex( - [ - makeTranscriptEntry({ startSeconds: 1, endSeconds: undefined }), - makeTranscriptEntry({ startSeconds: 10, endSeconds: 20 }), - ], - 9, - ), - ).toBe(0); - - expect( - findActiveTranscriptEntryIndex( - [ - makeTranscriptEntry({ startSeconds: 1, endSeconds: undefined }), - makeTranscriptEntry({ startSeconds: 10, endSeconds: 20 }), - ], - 10, - ), - ).toBe(1); - }); - - it('keeps the final open-ended entry active after it starts', () => { - expect( - findActiveTranscriptEntryIndex( - [ - makeTranscriptEntry({ startSeconds: 1, endSeconds: 2 }), - makeTranscriptEntry({ startSeconds: 10, endSeconds: undefined }), - ], - 25, - ), - ).toBe(1); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/__tests__/format-transcript-timestamp.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/__tests__/format-transcript-timestamp.test.ts deleted file mode 100644 index 79eddbd8decc6..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/__tests__/format-transcript-timestamp.test.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -import { formatTranscriptTimestamp } from 'src/front-components/utils/format-transcript-timestamp.util'; - -describe('formatTranscriptTimestamp', () => { - it('formats sub-hour durations as minutes and padded seconds', () => { - expect(formatTranscriptTimestamp(0)).toBe('0:00'); - expect(formatTranscriptTimestamp(5)).toBe('0:05'); - expect(formatTranscriptTimestamp(65)).toBe('1:05'); - expect(formatTranscriptTimestamp(3599)).toBe('59:59'); - }); - - it('adds an hour part with padded minutes past one hour', () => { - expect(formatTranscriptTimestamp(3600)).toBe('1:00:00'); - expect(formatTranscriptTimestamp(3725)).toBe('1:02:05'); - expect(formatTranscriptTimestamp(7322)).toBe('2:02:02'); - }); - - it('floors fractional seconds', () => { - expect(formatTranscriptTimestamp(1.9)).toBe('0:01'); - expect(formatTranscriptTimestamp(59.999)).toBe('0:59'); - }); - - it('clamps negative and non-finite input to zero', () => { - expect(formatTranscriptTimestamp(-12)).toBe('0:00'); - expect(formatTranscriptTimestamp(Number.NaN)).toBe('0:00'); - expect(formatTranscriptTimestamp(Number.POSITIVE_INFINITY)).toBe('0:00'); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/__tests__/get-speaker-name-match-keys.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/__tests__/get-speaker-name-match-keys.test.ts deleted file mode 100644 index 32711416bdd0a..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/__tests__/get-speaker-name-match-keys.test.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -import { getSpeakerNameMatchKeys } from 'src/front-components/utils/get-speaker-name-match-keys.util'; - -describe('getSpeakerNameMatchKeys', () => { - it('matches transcript full names to compact calendar aliases', () => { - expect(getSpeakerNameMatchKeys('Martin Muller')).toContain('martmull'); - expect(getSpeakerNameMatchKeys('Martmull92')).toContain('martmull'); - }); - - it('keeps exact normalized full names available for regular participant names', () => { - expect(getSpeakerNameMatchKeys('Nitin Koche')).toEqual([ - 'nitin koche', - 'nitinkoche', - 'nitikoch', - ]); - }); - - it('folds accents before generating compact match keys', () => { - expect(getSpeakerNameMatchKeys('Martin Müller')).toContain('martmull'); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/__tests__/parse-transcript-entries.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/__tests__/parse-transcript-entries.test.ts deleted file mode 100644 index 998896dc270b4..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/__tests__/parse-transcript-entries.test.ts +++ /dev/null @@ -1,162 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -import { parseTranscriptEntries } from 'src/front-components/utils/parse-transcript-entries.util'; - -describe('parseTranscriptEntries', () => { - it('parses diarized entries into speaker, start time, and joined text', () => { - expect( - parseTranscriptEntries([ - { - participant: { id: 100, name: 'Ada Lovelace' }, - words: [ - { - text: 'Hello', - start_timestamp: { - relative: 1.2, - absolute: '2026-06-12T10:00:01Z', - }, - end_timestamp: { - relative: 1.6, - absolute: '2026-06-12T10:00:01Z', - }, - }, - { - text: 'there', - start_timestamp: { - relative: 1.7, - absolute: '2026-06-12T10:00:02Z', - }, - end_timestamp: { - relative: 2.1, - absolute: '2026-06-12T10:00:02Z', - }, - }, - ], - }, - { - participant: { id: 101, name: 'Grace Hopper' }, - words: [ - { - text: 'Hi', - start_timestamp: { - relative: 3.4, - absolute: '2026-06-12T10:00:03Z', - }, - }, - ], - }, - ]), - ).toEqual([ - { - speakerName: 'Ada Lovelace', - startSeconds: 1.2, - endSeconds: 2.1, - text: 'Hello there', - words: [ - { text: 'Hello', startSeconds: 1.2, endSeconds: 1.6 }, - { text: 'there', startSeconds: 1.7, endSeconds: 2.1 }, - ], - }, - { - speakerName: 'Grace Hopper', - startSeconds: 3.4, - endSeconds: undefined, - text: 'Hi', - words: [{ text: 'Hi', startSeconds: 3.4, endSeconds: undefined }], - }, - ]); - }); - - it('falls back to an unknown speaker when the participant has no name', () => { - expect( - parseTranscriptEntries([ - { participant: { id: 100, name: null }, words: [{ text: 'Hello' }] }, - { words: [{ text: 'Hi' }] }, - ]), - ).toEqual([ - { - speakerName: 'Unknown speaker', - startSeconds: undefined, - endSeconds: undefined, - text: 'Hello', - words: [ - { text: 'Hello', startSeconds: undefined, endSeconds: undefined }, - ], - }, - { - speakerName: 'Unknown speaker', - startSeconds: undefined, - endSeconds: undefined, - text: 'Hi', - words: [{ text: 'Hi', startSeconds: undefined, endSeconds: undefined }], - }, - ]); - }); - - it('returns an undefined start time when the first word has no relative timestamp', () => { - expect( - parseTranscriptEntries([ - { - participant: { name: 'Ada Lovelace' }, - words: [ - { - text: 'Hello', - start_timestamp: { absolute: '2026-06-12T10:00:01Z' }, - }, - ], - }, - ]), - ).toEqual([ - { - speakerName: 'Ada Lovelace', - startSeconds: undefined, - endSeconds: undefined, - text: 'Hello', - words: [ - { text: 'Hello', startSeconds: undefined, endSeconds: undefined }, - ], - }, - ]); - }); - - it('skips entries without usable words instead of failing the whole transcript', () => { - expect( - parseTranscriptEntries([ - { participant: { name: 'Ada Lovelace' }, words: [] }, - { participant: { name: 'Grace Hopper' } }, - { - participant: { name: 'Alan Turing' }, - words: [{ text: ' ' }, 42, null], - }, - { participant: { name: 'Joan Clarke' }, words: [{ text: 'Kept' }] }, - 'not an entry', - ]), - ).toEqual([ - { - speakerName: 'Joan Clarke', - startSeconds: undefined, - endSeconds: undefined, - text: 'Kept', - words: [ - { text: 'Kept', startSeconds: undefined, endSeconds: undefined }, - ], - }, - ]); - }); - - it('returns an empty list for an empty transcript array', () => { - expect(parseTranscriptEntries([])).toEqual([]); - }); - - it('returns undefined for values that are not a diarized transcript array', () => { - expect(parseTranscriptEntries(null)).toBeUndefined(); - expect(parseTranscriptEntries(undefined)).toBeUndefined(); - expect(parseTranscriptEntries('transcript text')).toBeUndefined(); - expect( - parseTranscriptEntries({ - recallTranscriptId: 'recall-transcript-1', - status: 'PENDING', - }), - ).toBeUndefined(); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/build-calendar-event-participant-by-speaker-name.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/build-calendar-event-participant-by-speaker-name.util.ts deleted file mode 100644 index cb70604e1a6eb..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/build-calendar-event-participant-by-speaker-name.util.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; - -import { type CalendarEventParticipantBySpeakerName } from 'src/front-components/types/calendar-event-participant-by-speaker-name.type'; -import { type CalendarEventRecordingParticipant } from 'src/front-components/types/calendar-event-recording-participant.type'; -import { getSpeakerNameMatchKeys } from 'src/front-components/utils/get-speaker-name-match-keys.util'; - -export const buildCalendarEventParticipantBySpeakerName = ( - calendarEventParticipants: CalendarEventRecordingParticipant[], -): CalendarEventParticipantBySpeakerName => { - const calendarEventParticipantBySpeakerName: CalendarEventParticipantBySpeakerName = - new Map(); - const ambiguousSpeakerNameMatchKeys = new Set(); - - for (const calendarEventParticipant of calendarEventParticipants) { - for (const nameCandidate of calendarEventParticipant.nameCandidates) { - const speakerNameMatchKeys = getSpeakerNameMatchKeys(nameCandidate); - - for (const speakerNameMatchKey of speakerNameMatchKeys) { - const matchingCalendarEventParticipant = - calendarEventParticipantBySpeakerName.get(speakerNameMatchKey); - - if (ambiguousSpeakerNameMatchKeys.has(speakerNameMatchKey)) { - continue; - } - - if (isUndefined(matchingCalendarEventParticipant)) { - calendarEventParticipantBySpeakerName.set( - speakerNameMatchKey, - calendarEventParticipant, - ); - continue; - } - - if ( - matchingCalendarEventParticipant.id !== calendarEventParticipant.id - ) { - calendarEventParticipantBySpeakerName.delete(speakerNameMatchKey); - ambiguousSpeakerNameMatchKeys.add(speakerNameMatchKey); - } - } - } - } - - return calendarEventParticipantBySpeakerName; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/find-active-transcript-entry-index.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/find-active-transcript-entry-index.util.ts deleted file mode 100644 index 54fcd26283a9f..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/find-active-transcript-entry-index.util.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; - -import { type TranscriptEntry } from 'src/front-components/types/transcript-entry.type'; - -export const findActiveTranscriptEntryIndex = ( - entries: TranscriptEntry[], - currentTimeSeconds: number, -): number => { - for (let entryIndex = entries.length - 1; entryIndex >= 0; entryIndex--) { - const entry = entries[entryIndex]; - - if ( - isTranscriptEntryActive({ - entries, - entry, - entryIndex, - currentTimeSeconds, - }) - ) { - return entryIndex; - } - } - - return -1; -}; - -const isTranscriptEntryActive = ({ - entries, - entry, - entryIndex, - currentTimeSeconds, -}: { - entries: TranscriptEntry[]; - entry: TranscriptEntry; - entryIndex: number; - currentTimeSeconds: number; -}): boolean => { - if ( - isUndefined(entry.startSeconds) || - currentTimeSeconds < entry.startSeconds - ) { - return false; - } - - if (!isUndefined(entry.endSeconds)) { - return currentTimeSeconds <= entry.endSeconds; - } - - const nextTranscriptEntryStartSeconds = findNextTranscriptEntryStartSeconds( - entries, - entryIndex, - ); - - return isUndefined(nextTranscriptEntryStartSeconds) - ? true - : currentTimeSeconds < nextTranscriptEntryStartSeconds; -}; - -const findNextTranscriptEntryStartSeconds = ( - entries: TranscriptEntry[], - entryIndex: number, -): number | undefined => { - for ( - let nextEntryIndex = entryIndex + 1; - nextEntryIndex < entries.length; - nextEntryIndex++ - ) { - const nextTranscriptEntryStartSeconds = - entries[nextEntryIndex].startSeconds; - - if (!isUndefined(nextTranscriptEntryStartSeconds)) { - return nextTranscriptEntryStartSeconds; - } - } - - return undefined; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/format-transcript-timestamp.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/format-transcript-timestamp.util.ts deleted file mode 100644 index 1551203ece2a4..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/format-transcript-timestamp.util.ts +++ /dev/null @@ -1,16 +0,0 @@ -export const formatTranscriptTimestamp = (totalSeconds: number): string => { - const safeSeconds = Number.isFinite(totalSeconds) - ? Math.max(0, Math.floor(totalSeconds)) - : 0; - - const hours = Math.floor(safeSeconds / 3600); - const minutes = Math.floor((safeSeconds % 3600) / 60); - const seconds = safeSeconds % 60; - const paddedSeconds = String(seconds).padStart(2, '0'); - - if (hours > 0) { - return `${hours}:${String(minutes).padStart(2, '0')}:${paddedSeconds}`; - } - - return `${minutes}:${paddedSeconds}`; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/get-absolute-avatar-url.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/get-absolute-avatar-url.util.ts deleted file mode 100644 index 404717f70c697..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/get-absolute-avatar-url.util.ts +++ /dev/null @@ -1,48 +0,0 @@ -// Duplicates minimal front image URL logic for this app. -// Remove once shared front utilities can be imported safely in front components. -import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util'; - -type GetImageAbsoluteUrlArgs = { - imageUrl: string; - baseUrl: string; -}; - -const getImageAbsoluteUrl = ({ - imageUrl, - baseUrl, -}: GetImageAbsoluteUrlArgs): string => { - const lowerCaseImageUrl = imageUrl.toLowerCase(); - const isAlreadyAbsoluteUrl = - ['http:', 'https:', 'data:', 'blob:'].some((scheme) => - lowerCaseImageUrl.startsWith(scheme), - ) || imageUrl.startsWith('//'); - - if (isAlreadyAbsoluteUrl) { - return imageUrl; - } - - if (imageUrl.startsWith('/')) { - return new URL(`/files${imageUrl}`, baseUrl).toString(); - } - - return new URL(`/files/${imageUrl}`, baseUrl).toString(); -}; - -export const getAbsoluteAvatarUrl = ( - avatarUrl: string | null | undefined, -): string | undefined => { - if (!isNonEmptyString(avatarUrl)) { - return undefined; - } - - const apiBaseUrl = process.env.TWENTY_API_URL; - - if (!isNonEmptyString(apiBaseUrl)) { - return avatarUrl.trim(); - } - - return getImageAbsoluteUrl({ - imageUrl: avatarUrl.trim(), - baseUrl: apiBaseUrl, - }); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/get-calendar-event-participant-for-speaker-name.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/get-calendar-event-participant-for-speaker-name.util.ts deleted file mode 100644 index 261f4dc79bb9f..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/get-calendar-event-participant-for-speaker-name.util.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; - -import { type CalendarEventParticipantBySpeakerName } from 'src/front-components/types/calendar-event-participant-by-speaker-name.type'; -import { type CalendarEventRecordingParticipant } from 'src/front-components/types/calendar-event-recording-participant.type'; -import { getSpeakerNameMatchKeys } from 'src/front-components/utils/get-speaker-name-match-keys.util'; - -export const getCalendarEventParticipantForSpeakerName = ({ - speakerName, - calendarEventParticipantBySpeakerName, -}: { - speakerName: string; - calendarEventParticipantBySpeakerName: CalendarEventParticipantBySpeakerName; -}): CalendarEventRecordingParticipant | undefined => { - for (const speakerNameMatchKey of getSpeakerNameMatchKeys(speakerName)) { - const calendarEventParticipant = - calendarEventParticipantBySpeakerName.get(speakerNameMatchKey); - - if (!isUndefined(calendarEventParticipant)) { - return calendarEventParticipant; - } - } - - return undefined; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/get-speaker-name-match-keys.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/get-speaker-name-match-keys.util.ts deleted file mode 100644 index c570effd71871..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/get-speaker-name-match-keys.util.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util'; - -const MINIMUM_FUZZY_MATCH_KEY_LENGTH = 5; - -export const getSpeakerNameMatchKeys = (speakerName: string): string[] => { - const normalizedSpeakerName = normalizeSpeakerName(speakerName); - const compactSpeakerName = getCompactSpeakerName(normalizedSpeakerName); - const compactSpeakerNameWithoutDigits = compactSpeakerName.replace(/\d/g, ''); - const abbreviatedSpeakerNameMatchKey = - getAbbreviatedSpeakerNameMatchKey(normalizedSpeakerName); - - return [ - ...new Set( - [ - normalizedSpeakerName, - compactSpeakerName, - compactSpeakerNameWithoutDigits, - abbreviatedSpeakerNameMatchKey, - ].filter(isSpeakerNameMatchKey), - ), - ]; -}; - -const normalizeSpeakerName = (speakerName: string): string => - speakerName - .trim() - .normalize('NFD') - .replace(/[\u0300-\u036f]/g, '') - .toLocaleLowerCase(); - -const getCompactSpeakerName = (speakerName: string): string => - normalizeSpeakerName(speakerName).replace(/[^a-z0-9]/g, ''); - -const getAbbreviatedSpeakerNameMatchKey = ( - speakerName: string, -): string | undefined => { - const speakerNameParts = normalizeSpeakerName(speakerName) - .split(/\s+/) - .map(getCompactSpeakerName) - .filter(isNonEmptyString); - - if (speakerNameParts.length < 2) { - return undefined; - } - - const firstSpeakerNamePart = speakerNameParts[0]; - const lastSpeakerNamePart = speakerNameParts[speakerNameParts.length - 1]; - const abbreviatedSpeakerNameMatchKey = `${firstSpeakerNamePart.slice( - 0, - 4, - )}${lastSpeakerNamePart.slice(0, 4)}`; - - return abbreviatedSpeakerNameMatchKey.length >= - MINIMUM_FUZZY_MATCH_KEY_LENGTH - ? abbreviatedSpeakerNameMatchKey - : undefined; -}; - -const isSpeakerNameMatchKey = ( - speakerNameMatchKey: string | undefined, -): speakerNameMatchKey is string => - isNonEmptyString(speakerNameMatchKey) && - (speakerNameMatchKey.includes(' ') || - speakerNameMatchKey.length >= MINIMUM_FUZZY_MATCH_KEY_LENGTH); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/get-video-file-extension.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/get-video-file-extension.util.ts deleted file mode 100644 index 7dbfd4efab918..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/get-video-file-extension.util.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; - -import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util'; - -export const getVideoFileExtension = ({ - extension, - label, -}: { - extension: string | null; - label: string | null; -}): string | undefined => { - const labelParts = label?.split('.'); - const videoFileExtension = - extension ?? - (isUndefined(labelParts) ? undefined : labelParts[labelParts.length - 1]); - const normalizedVideoFileExtension = videoFileExtension - ?.toLowerCase() - .replace(/^\./, ''); - - return isNonEmptyString(normalizedVideoFileExtension) - ? normalizedVideoFileExtension - : undefined; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/parse-transcript-entries.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/parse-transcript-entries.util.ts deleted file mode 100644 index e35a79b6e5e3d..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/front-components/utils/parse-transcript-entries.util.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { isArray, isNumber, isUndefined } from '@sniptt/guards'; - -import { - type TranscriptEntry, - type TranscriptWord, -} from 'src/front-components/types/transcript-entry.type'; -import { asRecord } from 'src/logic-functions/utils/as-record.util'; -import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util'; - -type TranscriptRecord = NonNullable>; - -const isTranscriptRecord = ( - candidate: TranscriptRecord | undefined, -): candidate is TranscriptRecord => !isUndefined(candidate); - -const readRelativeTimestamp = ( - timestamp: TranscriptRecord | undefined, -): number | undefined => { - const relativeTimestamp = timestamp?.relative; - - return isNumber(relativeTimestamp) && Number.isFinite(relativeTimestamp) - ? relativeTimestamp - : undefined; -}; - -const readTranscriptWord = ( - candidate: TranscriptRecord, -): TranscriptWord | undefined => { - if (!isNonEmptyString(candidate.text)) { - return undefined; - } - - return { - text: candidate.text.trim(), - startSeconds: readRelativeTimestamp(asRecord(candidate.start_timestamp)), - endSeconds: readRelativeTimestamp(asRecord(candidate.end_timestamp)), - }; -}; - -const readSpeakerName = ( - participant: TranscriptRecord | undefined, -): string => { - const name = participant?.name; - - return isNonEmptyString(name) ? name.trim() : 'Unknown speaker'; -}; - -const readTranscriptEntry = ( - candidate: TranscriptRecord, -): TranscriptEntry | undefined => { - if (!isArray(candidate.words)) { - return undefined; - } - - const words = candidate.words - .map(asRecord) - .filter(isTranscriptRecord) - .map(readTranscriptWord) - .filter((word): word is TranscriptWord => !isUndefined(word)); - - if (words.length === 0) { - return undefined; - } - - return { - speakerName: readSpeakerName(asRecord(candidate.participant)), - startSeconds: words[0].startSeconds, - endSeconds: words[words.length - 1].endSeconds, - text: words.map((word) => word.text).join(' '), - words, - }; -}; - -// Undefined means the value is not a diarized transcript; malformed entries are skipped, not fatal. -export const parseTranscriptEntries = ( - transcript: unknown, -): TranscriptEntry[] | undefined => { - if (!isArray(transcript)) { - return undefined; - } - - return transcript - .map(asRecord) - .filter(isTranscriptRecord) - .map(readTranscriptEntry) - .filter((entry): entry is TranscriptEntry => !isUndefined(entry)); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/__tests__/recall-webhook.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/__tests__/recall-webhook.test.ts deleted file mode 100644 index 3a20df91e5cd9..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/__tests__/recall-webhook.test.ts +++ /dev/null @@ -1,194 +0,0 @@ -import { createHmac } from 'crypto'; - -import { beforeEach, describe, expect, it, vi } from 'vitest'; - -import recallWebhookLogicFunction, { - recallWebhookRouteHandler, -} from 'src/logic-functions/recall-webhook'; - -const getApplicationVariableValueMock = vi.hoisted(() => vi.fn()); -const handleRecallWebhookMock = vi.hoisted(() => vi.fn()); - -vi.mock( - 'src/logic-functions/utils/get-application-variable-value.util', - () => ({ - getApplicationVariableValue: getApplicationVariableValueMock, - }), -); - -vi.mock('src/logic-functions/flows/handle-recall-webhook.util', () => ({ - handleRecallWebhook: handleRecallWebhookMock, -})); - -vi.mock('twenty-client-sdk/core', () => ({ - CoreApiClient: vi.fn(), -})); - -const SECRET_BYTES = Buffer.from('entry-test-secret'); -const SECRET = `whsec_${SECRET_BYTES.toString('base64')}`; -const WORKSPACE_ID = '123e4567-e89b-12d3-a456-426614174000'; - -type RecallWebhookRoutePayload = Parameters< - typeof recallWebhookRouteHandler ->[0]; - -const buildRoutePayload = ( - overrides: Partial, -): RecallWebhookRoutePayload => - ({ - headers: {}, - ...overrides, - }) as RecallWebhookRoutePayload; - -const buildSignedHeaders = (rawBody: string): Record => { - const webhookId = 'msg_entry_test'; - const webhookTimestamp = Math.floor(Date.now() / 1000).toString(); - const signature = createHmac('sha256', SECRET_BYTES) - .update(`${webhookId}.${webhookTimestamp}.${rawBody}`) - .digest('base64'); - - return { - 'webhook-id': webhookId, - 'webhook-timestamp': webhookTimestamp, - 'webhook-signature': `v1,${signature}`, - }; -}; - -const buildRecordingDoneWebhookBody = () => ({ - event: 'recording.done', - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyWorkspaceId: WORKSPACE_ID, - }, - }, - recording: { - id: 'recall-recording-1', - }, - }, -}); - -describe('recallWebhookRouteHandler', () => { - beforeEach(() => { - vi.spyOn(console, 'error').mockImplementation(() => {}); - getApplicationVariableValueMock.mockReset(); - getApplicationVariableValueMock.mockReturnValue(SECRET); - handleRecallWebhookMock.mockReset(); - handleRecallWebhookMock.mockResolvedValue({ status: 'updated' }); - }); - - it('declares a server webhook resolver for Recall bot workspace metadata', () => { - expect(recallWebhookLogicFunction.success).toBe(true); - expect( - recallWebhookLogicFunction.config.httpRouteTriggerSettings, - ).toBeUndefined(); - expect( - recallWebhookLogicFunction.config.serverWebhookTriggerSettings, - ).toEqual({ - workspaceIdResolver: { - source: 'body', - path: 'data.bot.metadata.twentyWorkspaceId', - }, - forwardedRequestHeaders: [ - 'webhook-id', - 'webhook-timestamp', - 'webhook-signature', - 'svix-id', - 'svix-timestamp', - 'svix-signature', - ], - }); - }); - - it('responds 500 when the webhook secret is not configured', async () => { - getApplicationVariableValueMock.mockReturnValue(undefined); - - const result = await recallWebhookRouteHandler( - buildRoutePayload({ rawBody: '{}', body: {} }), - ); - - expect(result).toMatchObject({ - __twentyHttpResponse: true, - status: 500, - body: { - error: expect.stringContaining('RECALL_WEBHOOK_SECRET'), - }, - }); - }); - - it('responds 500 when the raw body is not forwarded', async () => { - const result = await recallWebhookRouteHandler( - buildRoutePayload({ body: {} }), - ); - - expect(result).toMatchObject({ - __twentyHttpResponse: true, - status: 500, - body: { - error: expect.stringContaining('Raw request body'), - }, - }); - }); - - it('responds 401 when the signature is invalid', async () => { - const result = await recallWebhookRouteHandler( - buildRoutePayload({ - rawBody: '{}', - body: {}, - headers: { - 'webhook-id': 'msg_entry_test', - 'webhook-timestamp': Math.floor(Date.now() / 1000).toString(), - 'webhook-signature': 'v1,not-a-real-signature', - }, - }), - ); - - expect(result).toMatchObject({ - __twentyHttpResponse: true, - status: 401, - body: { - error: expect.stringContaining('Invalid webhook signature'), - }, - }); - }); - - it('responds 400 when a correctly signed payload is empty', async () => { - const rawBody = 'null'; - - const result = await recallWebhookRouteHandler( - buildRoutePayload({ - rawBody, - body: null, - headers: buildSignedHeaders(rawBody), - }), - ); - - expect(result).toMatchObject({ - __twentyHttpResponse: true, - status: 400, - body: { - error: 'Webhook payload was empty', - }, - }); - }); - - it('dispatches a correctly signed payload to the handler', async () => { - const body = buildRecordingDoneWebhookBody(); - const rawBody = JSON.stringify(body); - - const result = await recallWebhookRouteHandler( - buildRoutePayload({ - rawBody, - body, - headers: buildSignedHeaders(rawBody), - }), - ); - - expect(handleRecallWebhookMock).toHaveBeenCalledTimes(1); - expect(handleRecallWebhookMock).toHaveBeenCalledWith( - expect.objectContaining({ body }), - ); - expect(result).toEqual({ status: 'updated' }); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/call-recording-micro-credits-per-hour.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/call-recording-micro-credits-per-hour.ts deleted file mode 100644 index 8fa84cc76f247..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/call-recording-micro-credits-per-hour.ts +++ /dev/null @@ -1 +0,0 @@ -export const CALL_RECORDING_MICRO_CREDITS_PER_HOUR = 1_000_000; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/call-recording-request-status.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/call-recording-request-status.ts deleted file mode 100644 index 0413760cbc9b8..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/call-recording-request-status.ts +++ /dev/null @@ -1,5 +0,0 @@ -// Mirrors the core select options; guarded by the schema integration test. -export enum CallRecordingRequestStatus { - REQUESTED = 'REQUESTED', - CANCELED = 'CANCELED', -} diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/call-recording-status.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/call-recording-status.ts deleted file mode 100644 index 60b8b6f14f3e4..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/call-recording-status.ts +++ /dev/null @@ -1,9 +0,0 @@ -// Mirrors the core select options; guarded by the schema integration test. -export enum CallRecordingStatus { - SCHEDULED = 'SCHEDULED', - JOINING = 'JOINING', - RECORDING = 'RECORDING', - PROCESSING = 'PROCESSING', - COMPLETED = 'COMPLETED', - FAILED = 'FAILED', -} diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/default-meeting-bot-join-early-minutes.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/default-meeting-bot-join-early-minutes.ts deleted file mode 100644 index 4af45b74e94e4..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/default-meeting-bot-join-early-minutes.ts +++ /dev/null @@ -1 +0,0 @@ -export const DEFAULT_MEETING_BOT_JOIN_EARLY_MINUTES = 1; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/default-meeting-bot-name.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/default-meeting-bot-name.ts deleted file mode 100644 index 4c2a6f77e3abc..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/default-meeting-bot-name.ts +++ /dev/null @@ -1 +0,0 @@ -export const DEFAULT_MEETING_BOT_NAME = 'Twenty Meeting Bot'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/default-meeting-bot-recording-retention-hours.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/default-meeting-bot-recording-retention-hours.ts deleted file mode 100644 index 3ec7807e428f4..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/default-meeting-bot-recording-retention-hours.ts +++ /dev/null @@ -1,2 +0,0 @@ -// Twenty stores ingested recording artifacts, so Recall.ai media is temporary. Keep the default below Recall.ai's 168-hour free storage window. -export const DEFAULT_MEETING_BOT_RECORDING_RETENTION_HOURS = 166; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/default-recall-region.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/default-recall-region.ts deleted file mode 100644 index fdafca50533cb..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/default-recall-region.ts +++ /dev/null @@ -1 +0,0 @@ -export const DEFAULT_RECALL_REGION = 'eu-central-1'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-everyone-left-timeout-seconds-env-var-name.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-everyone-left-timeout-seconds-env-var-name.ts deleted file mode 100644 index 2528599282359..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-everyone-left-timeout-seconds-env-var-name.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const MEETING_BOT_EVERYONE_LEFT_TIMEOUT_SECONDS_ENV_VAR_NAME = - 'MEETING_BOT_EVERYONE_LEFT_TIMEOUT_SECONDS'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-everyone-left-timeout-seconds.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-everyone-left-timeout-seconds.ts deleted file mode 100644 index e4c841805a5fe..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-everyone-left-timeout-seconds.ts +++ /dev/null @@ -1 +0,0 @@ -export const MEETING_BOT_EVERYONE_LEFT_TIMEOUT_SECONDS = 2; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-join-early-minutes-env-var-name.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-join-early-minutes-env-var-name.ts deleted file mode 100644 index 7cb8ac5121f78..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-join-early-minutes-env-var-name.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const MEETING_BOT_JOIN_EARLY_MINUTES_ENV_VAR_NAME = - 'MEETING_BOT_JOIN_EARLY_MINUTES'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-name-env-var-name.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-name-env-var-name.ts deleted file mode 100644 index efa200e15ef9c..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-name-env-var-name.ts +++ /dev/null @@ -1 +0,0 @@ -export const MEETING_BOT_NAME_ENV_VAR_NAME = 'MEETING_BOT_NAME'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-noone-joined-timeout-seconds-env-var-name.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-noone-joined-timeout-seconds-env-var-name.ts deleted file mode 100644 index f530a83ca4e5c..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-noone-joined-timeout-seconds-env-var-name.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const MEETING_BOT_NOONE_JOINED_TIMEOUT_SECONDS_ENV_VAR_NAME = - 'MEETING_BOT_NOONE_JOINED_TIMEOUT_SECONDS'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-noone-joined-timeout-seconds.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-noone-joined-timeout-seconds.ts deleted file mode 100644 index 52ed2c3672a55..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-noone-joined-timeout-seconds.ts +++ /dev/null @@ -1 +0,0 @@ -export const MEETING_BOT_NOONE_JOINED_TIMEOUT_SECONDS = 20 * 60; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-recording-retention-hours-env-var-name.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-recording-retention-hours-env-var-name.ts deleted file mode 100644 index f8a6573c9ec47..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-recording-retention-hours-env-var-name.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const MEETING_BOT_RECORDING_RETENTION_HOURS_ENV_VAR_NAME = - 'MEETING_BOT_RECORDING_RETENTION_HOURS'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-waiting-room-timeout-seconds-env-var-name.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-waiting-room-timeout-seconds-env-var-name.ts deleted file mode 100644 index ca872670bc45a..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-waiting-room-timeout-seconds-env-var-name.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const MEETING_BOT_WAITING_ROOM_TIMEOUT_SECONDS_ENV_VAR_NAME = - 'MEETING_BOT_WAITING_ROOM_TIMEOUT_SECONDS'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-waiting-room-timeout-seconds.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-waiting-room-timeout-seconds.ts deleted file mode 100644 index 42bfa92498212..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/meeting-bot-waiting-room-timeout-seconds.ts +++ /dev/null @@ -1 +0,0 @@ -export const MEETING_BOT_WAITING_ROOM_TIMEOUT_SECONDS = 1200; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/milliseconds-per-minute.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/milliseconds-per-minute.ts deleted file mode 100644 index c72bff9db3153..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/milliseconds-per-minute.ts +++ /dev/null @@ -1 +0,0 @@ -export const MILLISECONDS_PER_MINUTE = 60_000; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/non-terminal-call-recording-statuses.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/non-terminal-call-recording-statuses.ts deleted file mode 100644 index dd604c7e85836..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/non-terminal-call-recording-statuses.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status'; - -export const NON_TERMINAL_CALL_RECORDING_STATUSES = [ - CallRecordingStatus.SCHEDULED, - CallRecordingStatus.JOINING, - CallRecordingStatus.RECORDING, - CallRecordingStatus.PROCESSING, -] satisfies CallRecordingStatus[]; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-api-key-env-var-name.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-api-key-env-var-name.ts deleted file mode 100644 index aa5f13a0ac0d9..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-api-key-env-var-name.ts +++ /dev/null @@ -1 +0,0 @@ -export const RECALL_API_KEY_ENV_VAR_NAME = 'RECALL_API_KEY'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-api-max-attempts.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-api-max-attempts.ts deleted file mode 100644 index b8c6d083652a0..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-api-max-attempts.ts +++ /dev/null @@ -1 +0,0 @@ -export const RECALL_API_MAX_ATTEMPTS = 3; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-api-retry-delay-ms.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-api-retry-delay-ms.ts deleted file mode 100644 index 06dba9a11d7d9..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-api-retry-delay-ms.ts +++ /dev/null @@ -1 +0,0 @@ -export const RECALL_API_RETRY_DELAY_MS = 500; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-bot-automatic-leave.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-bot-automatic-leave.ts deleted file mode 100644 index 5eb60dd57dea2..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-bot-automatic-leave.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; - -import { MEETING_BOT_EVERYONE_LEFT_TIMEOUT_SECONDS_ENV_VAR_NAME } from 'src/logic-functions/constants/meeting-bot-everyone-left-timeout-seconds-env-var-name'; -import { MEETING_BOT_NOONE_JOINED_TIMEOUT_SECONDS_ENV_VAR_NAME } from 'src/logic-functions/constants/meeting-bot-noone-joined-timeout-seconds-env-var-name'; -import { MEETING_BOT_WAITING_ROOM_TIMEOUT_SECONDS_ENV_VAR_NAME } from 'src/logic-functions/constants/meeting-bot-waiting-room-timeout-seconds-env-var-name'; -import { RECALL_BOT_EVERYONE_LEFT_MIN_ACTIVATE_AFTER_SECONDS } from 'src/logic-functions/constants/recall-bot-everyone-left-min-activate-after-seconds'; -import { getApplicationVariableValue } from 'src/logic-functions/utils/get-application-variable-value.util'; -import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util'; - -type RecallBotAutomaticLeave = { - waiting_room_timeout?: number; - noone_joined_timeout?: number; - everyone_left_timeout?: { - timeout: number; - activate_after: number; - }; -}; - -export const getRecallBotAutomaticLeave = (): - | RecallBotAutomaticLeave - | undefined => { - const waitingRoomTimeoutSeconds = getOptionalPositiveIntegerVariable( - MEETING_BOT_WAITING_ROOM_TIMEOUT_SECONDS_ENV_VAR_NAME, - ); - const nooneJoinedTimeoutSeconds = getOptionalPositiveIntegerVariable( - MEETING_BOT_NOONE_JOINED_TIMEOUT_SECONDS_ENV_VAR_NAME, - ); - const everyoneLeftTimeoutSeconds = getOptionalPositiveIntegerVariable( - MEETING_BOT_EVERYONE_LEFT_TIMEOUT_SECONDS_ENV_VAR_NAME, - ); - - const automaticLeave: RecallBotAutomaticLeave = {}; - - if (!isUndefined(waitingRoomTimeoutSeconds)) { - automaticLeave.waiting_room_timeout = waitingRoomTimeoutSeconds; - } - - if (!isUndefined(nooneJoinedTimeoutSeconds)) { - automaticLeave.noone_joined_timeout = nooneJoinedTimeoutSeconds; - } - - if (!isUndefined(everyoneLeftTimeoutSeconds)) { - automaticLeave.everyone_left_timeout = { - timeout: everyoneLeftTimeoutSeconds, - activate_after: RECALL_BOT_EVERYONE_LEFT_MIN_ACTIVATE_AFTER_SECONDS, - }; - } - - return Object.keys(automaticLeave).length === 0 ? undefined : automaticLeave; -}; - -const getOptionalPositiveIntegerVariable = ( - variableName: string, -): number | undefined => { - const rawValue = normalizeOptionalString( - getApplicationVariableValue(variableName), - ); - - if (isUndefined(rawValue)) { - return undefined; - } - - const timeoutSeconds = Number(rawValue); - - if (!Number.isInteger(timeoutSeconds) || timeoutSeconds <= 0) { - return undefined; - } - - return timeoutSeconds; -}; - -const normalizeOptionalString = ( - value: string | undefined, -): string | undefined => (isNonEmptyString(value) ? value.trim() : undefined); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-bot-everyone-left-min-activate-after-seconds.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-bot-everyone-left-min-activate-after-seconds.ts deleted file mode 100644 index 1279213348ee4..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-bot-everyone-left-min-activate-after-seconds.ts +++ /dev/null @@ -1 +0,0 @@ -export const RECALL_BOT_EVERYONE_LEFT_MIN_ACTIVATE_AFTER_SECONDS = 1; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-bot-recording-config.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-bot-recording-config.ts deleted file mode 100644 index 7c6655b581880..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-bot-recording-config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { DEFAULT_MEETING_BOT_RECORDING_RETENTION_HOURS } from 'src/logic-functions/constants/default-meeting-bot-recording-retention-hours'; -import { MEETING_BOT_RECORDING_RETENTION_HOURS_ENV_VAR_NAME } from 'src/logic-functions/constants/meeting-bot-recording-retention-hours-env-var-name'; -import { getApplicationVariableValue } from 'src/logic-functions/utils/get-application-variable-value.util'; -import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util'; - -type RecallBotRecordingConfig = { - video_mixed_mp4: Record; - audio_mixed_mp3: Record; - retention: { type: 'timed'; hours: number }; -}; - -// Recall only produces artifacts declared at bot creation; both gate COMPLETED. -export const getRecallBotRecordingConfig = (): RecallBotRecordingConfig => { - const configuredRecordingRetentionHours = getApplicationVariableValue( - MEETING_BOT_RECORDING_RETENTION_HOURS_ENV_VAR_NAME, - ); - - const recordingRetentionHours = isNonEmptyString( - configuredRecordingRetentionHours, - ) - ? Number(configuredRecordingRetentionHours.trim()) - : NaN; - - const resolvedRecordingRetentionHours = - Number.isInteger(recordingRetentionHours) && recordingRetentionHours > 0 - ? recordingRetentionHours - : DEFAULT_MEETING_BOT_RECORDING_RETENTION_HOURS; - - return { - video_mixed_mp4: {}, - audio_mixed_mp3: {}, - retention: { type: 'timed', hours: resolvedRecordingRetentionHours }, - }; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-region-env-var-name.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-region-env-var-name.ts deleted file mode 100644 index 31c9a29523ed6..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-region-env-var-name.ts +++ /dev/null @@ -1 +0,0 @@ -export const RECALL_REGION_ENV_VAR_NAME = 'RECALL_REGION'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-webhook-secret-env-var-name.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-webhook-secret-env-var-name.ts deleted file mode 100644 index 520dfd2ff17dc..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/recall-webhook-secret-env-var-name.ts +++ /dev/null @@ -1 +0,0 @@ -export const RECALL_WEBHOOK_SECRET_ENV_VAR_NAME = 'RECALL_WEBHOOK_SECRET'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/restricted-field-placeholder.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/restricted-field-placeholder.ts deleted file mode 100644 index 80388082c8ad3..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/restricted-field-placeholder.ts +++ /dev/null @@ -1,3 +0,0 @@ -// Mirrors twenty-shared; calendar restrictions write it over title/description. -export const RESTRICTED_FIELD_PLACEHOLDER = - 'FIELD_RESTRICTED_ADDITIONAL_PERMISSIONS_REQUIRED'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/stale-bot-state-cron-pattern.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/stale-bot-state-cron-pattern.ts deleted file mode 100644 index a191b0af71ec6..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/stale-bot-state-cron-pattern.ts +++ /dev/null @@ -1 +0,0 @@ -export const STALE_BOT_STATE_CRON_PATTERN = '*/5 * * * *'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/twenty-page-size.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/twenty-page-size.ts deleted file mode 100644 index 51637dc13dc82..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/constants/twenty-page-size.ts +++ /dev/null @@ -1 +0,0 @@ -export const TWENTY_PAGE_SIZE = 100; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/__tests__/complete-call-recording-ingestion.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/__tests__/complete-call-recording-ingestion.test.ts deleted file mode 100644 index 820f7d3b3a735..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/__tests__/complete-call-recording-ingestion.test.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { describe, expect, it, vi } from 'vitest'; - -import { completeCallRecordingIngestion } from 'src/logic-functions/data/complete-call-recording-ingestion.util'; - -describe('completeCallRecordingIngestion', () => { - it('guards the flip with non-terminal statuses and returns true when the row is claimed', async () => { - let capturedArgs: { filter: unknown; data: unknown } | undefined; - const mutation = vi.fn(async (mutationArg: any) => { - capturedArgs = mutationArg.updateCallRecordings.__args; - - return { updateCallRecordings: [{ id: 'call-recording-1' }] }; - }); - - const claimed = await completeCallRecordingIngestion( - { mutation } as never, - { - id: 'call-recording-1', - }, - ); - - expect(claimed).toBe(true); - expect(mutation).toHaveBeenCalledTimes(1); - expect(capturedArgs?.filter).toEqual({ - id: { eq: 'call-recording-1' }, - status: { in: ['SCHEDULED', 'JOINING', 'RECORDING', 'PROCESSING'] }, - }); - expect(capturedArgs?.data).toEqual({ status: 'COMPLETED' }); - }); - - it('returns false when the row was already COMPLETED, so the loser cannot charge', async () => { - const mutation = vi.fn(async () => ({ updateCallRecordings: [] })); - - const claimed = await completeCallRecordingIngestion( - { mutation } as never, - { - id: 'call-recording-1', - }, - ); - - expect(claimed).toBe(false); - }); - - it('returns false when the API omits the result list', async () => { - const mutation = vi.fn(async () => ({})); - - const claimed = await completeCallRecordingIngestion( - { mutation } as never, - { - id: 'call-recording-1', - }, - ); - - expect(claimed).toBe(false); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/__tests__/fetch-all-nodes.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/__tests__/fetch-all-nodes.test.ts deleted file mode 100644 index c82576d67fec3..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/__tests__/fetch-all-nodes.test.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { describe, expect, it, vi } from 'vitest'; - -import { fetchAllNodes } from 'src/logic-functions/data/fetch-all-nodes.util'; - -describe('fetchAllNodes', () => { - it('collects nodes across pages until hasNextPage is false', async () => { - const fetchPage = vi - .fn() - .mockResolvedValueOnce({ - pageInfo: { hasNextPage: true, endCursor: 'cursor-1' }, - edges: [{ node: 'node-1' }, { node: 'node-2' }], - }) - .mockResolvedValueOnce({ - pageInfo: { hasNextPage: false, endCursor: 'cursor-2' }, - edges: [{ node: 'node-3' }], - }); - - const nodes = await fetchAllNodes(fetchPage); - - expect(nodes).toEqual(['node-1', 'node-2', 'node-3']); - expect(fetchPage).toHaveBeenNthCalledWith(1, undefined); - expect(fetchPage).toHaveBeenNthCalledWith(2, 'cursor-1'); - }); - - it('throws when hasNextPage is true without an endCursor', async () => { - const fetchPage = vi.fn().mockResolvedValue({ - pageInfo: { hasNextPage: true, endCursor: null }, - edges: [{ node: 'node-1' }], - }); - - await expect(fetchAllNodes(fetchPage)).rejects.toThrow( - 'Inconsistent pagination state: hasNextPage is true without an endCursor', - ); - }); - - it('throws when the query returns no connection', async () => { - const fetchPage = vi.fn().mockResolvedValue(undefined); - - await expect(fetchAllNodes(fetchPage)).rejects.toThrow( - 'Pagination query returned no connection', - ); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/__tests__/get-current-workspace-id.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/__tests__/get-current-workspace-id.test.ts deleted file mode 100644 index 4e061d9c29ec7..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/__tests__/get-current-workspace-id.test.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { afterEach, describe, expect, it } from 'vitest'; - -import { getCurrentWorkspaceId } from 'src/logic-functions/data/get-current-workspace-id.util'; - -const APP_ACCESS_TOKEN_ENV_VAR_NAME = 'TWENTY_APP_ACCESS_TOKEN'; -const ORIGINAL_APP_ACCESS_TOKEN = - process.env[APP_ACCESS_TOKEN_ENV_VAR_NAME]; -const WORKSPACE_ID = '123e4567-e89b-12d3-a456-426614174000'; - -const restoreOriginalAppAccessToken = () => { - if (ORIGINAL_APP_ACCESS_TOKEN === undefined) { - delete process.env[APP_ACCESS_TOKEN_ENV_VAR_NAME]; - - return; - } - - process.env[APP_ACCESS_TOKEN_ENV_VAR_NAME] = ORIGINAL_APP_ACCESS_TOKEN; -}; - -const buildAccessToken = (payload: Record): string => - [ - Buffer.from(JSON.stringify({ alg: 'none' })).toString('base64url'), - Buffer.from(JSON.stringify(payload)).toString('base64url'), - 'signature', - ].join('.'); - -describe('getCurrentWorkspaceId', () => { - afterEach(() => { - restoreOriginalAppAccessToken(); - }); - - it('reads the workspace id from the app access token payload', () => { - process.env[APP_ACCESS_TOKEN_ENV_VAR_NAME] = buildAccessToken({ - workspaceId: WORKSPACE_ID, - }); - - expect(getCurrentWorkspaceId()).toBe(WORKSPACE_ID); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/__tests__/strip-restricted-field-value.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/__tests__/strip-restricted-field-value.test.ts deleted file mode 100644 index 27bc08f2f9a4c..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/__tests__/strip-restricted-field-value.test.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -import { RESTRICTED_FIELD_PLACEHOLDER } from 'src/logic-functions/constants/restricted-field-placeholder'; -import { stripRestrictedFieldValue } from 'src/logic-functions/data/strip-restricted-field-value.util'; - -describe('stripRestrictedFieldValue', () => { - it('drops the calendar visibility restriction placeholder', () => { - expect( - stripRestrictedFieldValue(RESTRICTED_FIELD_PLACEHOLDER), - ).toBeUndefined(); - }); - - it('keeps regular values', () => { - expect(stripRestrictedFieldValue('Customer Discovery Call')).toBe( - 'Customer Discovery Call', - ); - }); - - it('keeps undefined', () => { - expect(stripRestrictedFieldValue(undefined)).toBeUndefined(); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/complete-call-recording-ingestion.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/complete-call-recording-ingestion.util.ts deleted file mode 100644 index b1f2dbc5668ab..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/complete-call-recording-ingestion.util.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status'; -import { NON_TERMINAL_CALL_RECORDING_STATUSES } from 'src/logic-functions/constants/non-terminal-call-recording-statuses'; -import { - executeCurrentSchemaMutation, - type CurrentSchemaUpdateCallRecordingsMutation, -} from 'src/logic-functions/data/execute-current-schema-mutation.util'; - -export const completeCallRecordingIngestion = async ( - client: CoreApiClient, - { id }: { id: string }, -): Promise => { - const mutation = { - updateCallRecordings: { - __args: { - filter: { - id: { eq: id }, - status: { in: NON_TERMINAL_CALL_RECORDING_STATUSES }, - }, - data: { status: CallRecordingStatus.COMPLETED }, - }, - id: true, - }, - } satisfies CurrentSchemaUpdateCallRecordingsMutation; - - const result = await executeCurrentSchemaMutation(client, mutation); - - return (result.updateCallRecordings ?? []).length > 0; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/create-call-recording.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/create-call-recording.util.ts deleted file mode 100644 index c8ed9a95f5b25..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/create-call-recording.util.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { type CallRecordingRequestStatus } from 'src/logic-functions/constants/call-recording-request-status'; -import { type CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status'; - -export type ScheduledCallRecordingFields = { - title: string | null; - status: CallRecordingStatus.SCHEDULED; - recordingRequestStatus: CallRecordingRequestStatus.REQUESTED; - calendarEventId: string; -}; - -export const createCallRecording = async ( - client: CoreApiClient, - { - id, - data, - }: { - id: string; - data: ScheduledCallRecordingFields; - }, -): Promise => { - const mutationResult = await client.mutation({ - createCallRecording: { - __args: { - data: { id, ...data }, - }, - id: true, - }, - }); - const createdCallRecordingId = mutationResult.createCallRecording?.id; - - if (isUndefined(createdCallRecordingId)) { - throw new Error( - 'createCallRecording mutation did not return a call recording id', - ); - } - - return createdCallRecordingId; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/execute-current-schema-mutation.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/execute-current-schema-mutation.util.ts deleted file mode 100644 index 8e5dfcc03b590..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/execute-current-schema-mutation.util.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { type CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status'; -import { type CallRecordingUpdateFields } from 'src/logic-functions/data/update-call-recording.util'; - -type CurrentSchemaMutationFunction = ( - mutation: CurrentSchemaMutation, -) => Promise; - -export type CurrentSchemaUpdateCallRecordingMutation = { - updateCallRecording: { - __args: { - id: string; - data: CallRecordingUpdateFields; - }; - id?: true; - status?: true; - }; -}; - -export type CurrentSchemaUpdateCallRecordingsMutation = { - updateCallRecordings: { - __args: { - filter: { - id: { eq: string }; - status?: { in: CallRecordingStatus[] }; - }; - data: Pick; - }; - id?: true; - }; -}; - -type CurrentSchemaMutation = - | CurrentSchemaUpdateCallRecordingMutation - | CurrentSchemaUpdateCallRecordingsMutation; - -type CurrentSchemaMutationResult = { - updateCallRecording?: { id?: string; status?: string | null } | null; - updateCallRecordings?: { id?: string }[] | null; -}; - -// TODO: Remove this bridge once the released SDK includes the current -// CallRecording schema with FAILED and meetingBotFailureReason. -export const executeCurrentSchemaMutation = ( - client: CoreApiClient, - mutation: CurrentSchemaMutation, -): Promise => { - const currentSchemaClient = client as { - mutation: CurrentSchemaMutationFunction; - }; - - return currentSchemaClient.mutation(mutation); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/fetch-all-nodes.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/fetch-all-nodes.util.ts deleted file mode 100644 index ce16ce4fe802d..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/fetch-all-nodes.util.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { isString, isUndefined } from '@sniptt/guards'; - -export type ConnectionPage = { - pageInfo?: { - hasNextPage?: boolean | null; - endCursor?: string | null; - } | null; - edges?: Array<{ node: TNode }> | null; -}; - -export const fetchAllNodes = async ( - fetchPage: ( - afterCursor: string | undefined, - ) => Promise | undefined>, -): Promise => { - const nodes: TNode[] = []; - let hasNextPage = true; - let afterCursor: string | undefined; - - while (hasNextPage) { - const connection = await fetchPage(afterCursor); - - if (isUndefined(connection)) { - throw new Error('Pagination query returned no connection'); - } - - for (const edge of connection.edges ?? []) { - nodes.push(edge.node); - } - - hasNextPage = connection.pageInfo?.hasNextPage === true; - const endCursor = connection.pageInfo?.endCursor; - - if (hasNextPage && !isString(endCursor)) { - throw new Error( - 'Inconsistent pagination state: hasNextPage is true without an endCursor', - ); - } - - afterCursor = isString(endCursor) ? endCursor : undefined; - } - - return nodes; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/fetch-calendar-events-by-filter.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/fetch-calendar-events-by-filter.util.ts deleted file mode 100644 index f7d6b7ec8f879..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/fetch-calendar-events-by-filter.util.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { isString, isUndefined } from '@sniptt/guards'; -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { TWENTY_PAGE_SIZE } from 'src/logic-functions/constants/twenty-page-size'; -import { type CalendarEventRecord } from 'src/logic-functions/types/calendar-event-record.type'; -import { - fetchAllNodes, - type ConnectionPage, -} from 'src/logic-functions/data/fetch-all-nodes.util'; -import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util'; -import { stripRestrictedFieldValue } from 'src/logic-functions/data/strip-restricted-field-value.util'; - -type CalendarEventNode = { - id: string; - title?: string | null; - isCanceled?: boolean | null; - startsAt?: string | null; - endsAt?: string | null; - iCalUid?: string | null; - conferenceLink?: { primaryLinkUrl?: string | null } | null; - meetingBotPreference?: string | null; -}; - -export const fetchCalendarEventsByFilter = async ( - client: CoreApiClient, - filter: Record, -): Promise => { - const calendarEventNodes = await fetchAllNodes( - async (afterCursor) => { - const queryResult = await client.query({ - calendarEvents: { - __args: { - filter, - first: TWENTY_PAGE_SIZE, - ...(isUndefined(afterCursor) ? {} : { after: afterCursor }), - }, - pageInfo: { - hasNextPage: true, - endCursor: true, - }, - edges: { - node: { - id: true, - title: true, - isCanceled: true, - startsAt: true, - endsAt: true, - iCalUid: true, - conferenceLink: { - primaryLinkUrl: true, - }, - meetingBotPreference: true, - }, - }, - }, - }); - - return queryResult.calendarEvents as - | ConnectionPage - | undefined; - }, - ); - - return calendarEventNodes.map((calendarEvent) => ({ - id: calendarEvent.id, - title: stripRestrictedFieldValue(calendarEvent.title ?? undefined), - isCanceled: calendarEvent.isCanceled ?? false, - startsAt: calendarEvent.startsAt ?? undefined, - endsAt: calendarEvent.endsAt ?? undefined, - iCalUid: calendarEvent.iCalUid ?? undefined, - conferenceLinkUrl: isNonEmptyString( - calendarEvent.conferenceLink?.primaryLinkUrl, - ) - ? calendarEvent.conferenceLink.primaryLinkUrl - : undefined, - meetingBotPreference: isString(calendarEvent.meetingBotPreference) - ? calendarEvent.meetingBotPreference - : undefined, - })); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/fetch-calendar-events-by-ids.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/fetch-calendar-events-by-ids.util.ts deleted file mode 100644 index d703198a5f9c2..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/fetch-calendar-events-by-ids.util.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { type CalendarEventRecord } from 'src/logic-functions/types/calendar-event-record.type'; -import { fetchCalendarEventsByFilter } from 'src/logic-functions/data/fetch-calendar-events-by-filter.util'; -import { getUniqueSortedIds } from 'src/logic-functions/utils/get-unique-sorted-ids.util'; - -export const fetchCalendarEventsByIds = async ( - client: CoreApiClient, - calendarEventIds: string[], -): Promise => { - const uniqueCalendarEventIds = getUniqueSortedIds(calendarEventIds); - - if (uniqueCalendarEventIds.length === 0) { - return []; - } - - return fetchCalendarEventsByFilter(client, { - id: { in: uniqueCalendarEventIds }, - }); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/fetch-calendar-events-by-starts-at-values.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/fetch-calendar-events-by-starts-at-values.util.ts deleted file mode 100644 index aa5609cf8c084..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/fetch-calendar-events-by-starts-at-values.util.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { type CalendarEventRecord } from 'src/logic-functions/types/calendar-event-record.type'; -import { fetchCalendarEventsByFilter } from 'src/logic-functions/data/fetch-calendar-events-by-filter.util'; - -export const fetchCalendarEventsByStartsAtValues = async ( - client: CoreApiClient, - startsAtValues: string[], -): Promise => { - const uniqueStartsAtValues = [...new Set(startsAtValues)].sort(); - - if (uniqueStartsAtValues.length === 0) { - return []; - } - - return fetchCalendarEventsByFilter(client, { - startsAt: { in: uniqueStartsAtValues }, - }); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/find-call-recordings-by-calendar-event-ids.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/find-call-recordings-by-calendar-event-ids.util.ts deleted file mode 100644 index b07ed738e78ae..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/find-call-recordings-by-calendar-event-ids.util.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { type CallRecordingRecord } from 'src/logic-functions/types/call-recording-record.type'; -import { findCallRecordingsByFilter } from 'src/logic-functions/data/find-call-recordings-by-filter.util'; - -export const findCallRecordingsByCalendarEventIds = async ( - client: CoreApiClient, - calendarEventIds: string[], -): Promise => { - if (calendarEventIds.length === 0) { - return []; - } - - return findCallRecordingsByFilter(client, { - calendarEventId: { in: calendarEventIds }, - }); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/find-call-recordings-by-filter.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/find-call-recordings-by-filter.util.ts deleted file mode 100644 index fd2de1ab968de..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/find-call-recordings-by-filter.util.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { CallRecordingRequestStatus } from 'src/logic-functions/constants/call-recording-request-status'; -import { TWENTY_PAGE_SIZE } from 'src/logic-functions/constants/twenty-page-size'; -import { type CallRecordingRecord } from 'src/logic-functions/types/call-recording-record.type'; -import { - fetchAllNodes, - type ConnectionPage, -} from 'src/logic-functions/data/fetch-all-nodes.util'; -import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util'; - -type CallRecordingNode = { - id: string; - title?: string | null; - status?: string | null; - recordingRequestStatus?: unknown; - startedAt?: string | null; - endedAt?: string | null; - calendarEventId?: string | null; - externalBotId?: string | null; - externalRecordingId?: string | null; - meetingBotFailureReason?: string | null; -}; - -export const findCallRecordingsByFilter = async ( - client: CoreApiClient, - filter: Record, -): Promise => { - const callRecordingNodes = await fetchAllNodes( - async (afterCursor) => { - const queryResult = await client.query({ - callRecordings: { - __args: { - filter, - first: TWENTY_PAGE_SIZE, - ...(isUndefined(afterCursor) ? {} : { after: afterCursor }), - }, - pageInfo: { - hasNextPage: true, - endCursor: true, - }, - edges: { - node: { - id: true, - title: true, - status: true, - recordingRequestStatus: true, - startedAt: true, - endedAt: true, - calendarEventId: true, - externalBotId: true, - externalRecordingId: true, - meetingBotFailureReason: true, - }, - }, - }, - }); - - return queryResult.callRecordings as - | ConnectionPage - | undefined; - }, - ); - - return callRecordingNodes.map((callRecording) => ({ - id: callRecording.id, - title: callRecording.title ?? undefined, - status: callRecording.status ?? undefined, - recordingRequestStatus: normalizeCallRecordingRequestStatus( - callRecording.recordingRequestStatus, - ), - startedAt: callRecording.startedAt ?? undefined, - endedAt: callRecording.endedAt ?? undefined, - calendarEventId: callRecording.calendarEventId ?? undefined, - externalBotId: normalizeOptionalString(callRecording.externalBotId), - externalRecordingId: normalizeOptionalString( - callRecording.externalRecordingId, - ), - meetingBotFailureReason: normalizeOptionalString( - callRecording.meetingBotFailureReason, - ), - })); -}; - -const normalizeOptionalString = ( - value: string | null | undefined, -): string | undefined => (isNonEmptyString(value) ? value : undefined); - -const normalizeCallRecordingRequestStatus = ( - recordingRequestStatus: unknown, -): CallRecordingRequestStatus | undefined => { - if (recordingRequestStatus === CallRecordingRequestStatus.REQUESTED) { - return recordingRequestStatus; - } - - if (recordingRequestStatus === CallRecordingRequestStatus.CANCELED) { - return recordingRequestStatus; - } - - return undefined; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/find-call-recordings-by-ids.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/find-call-recordings-by-ids.util.ts deleted file mode 100644 index 5ef2493faf9a2..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/find-call-recordings-by-ids.util.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { type CallRecordingRecord } from 'src/logic-functions/types/call-recording-record.type'; -import { findCallRecordingsByFilter } from 'src/logic-functions/data/find-call-recordings-by-filter.util'; - -export const findCallRecordingsByIds = async ( - client: CoreApiClient, - callRecordingIds: string[], -): Promise => { - if (callRecordingIds.length === 0) { - return []; - } - - return findCallRecordingsByFilter(client, { - id: { in: callRecordingIds }, - }); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/find-open-scheduled-call-recordings.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/find-open-scheduled-call-recordings.util.ts deleted file mode 100644 index 5bd855c6f4449..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/find-open-scheduled-call-recordings.util.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { CallRecordingRequestStatus } from 'src/logic-functions/constants/call-recording-request-status'; -import { CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status'; -import { type CallRecordingRecord } from 'src/logic-functions/types/call-recording-record.type'; -import { findCallRecordingsByFilter } from 'src/logic-functions/data/find-call-recordings-by-filter.util'; - -export const findOpenScheduledCallRecordings = async ( - client: CoreApiClient, -): Promise => - findCallRecordingsByFilter(client, { - recordingRequestStatus: { eq: CallRecordingRequestStatus.REQUESTED }, - status: { eq: CallRecordingStatus.SCHEDULED }, - }); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/get-current-workspace-id.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/get-current-workspace-id.util.ts deleted file mode 100644 index 4f0c8922006c2..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/get-current-workspace-id.util.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; - -import { asRecord } from 'src/logic-functions/utils/as-record.util'; -import { getString } from 'src/logic-functions/utils/get-string.util'; - -const APP_ACCESS_TOKEN_ENV_VAR_NAME = 'TWENTY_APP_ACCESS_TOKEN'; - -export const getCurrentWorkspaceId = (): string | undefined => { - const accessToken = getString(process.env[APP_ACCESS_TOKEN_ENV_VAR_NAME]); - - if (isUndefined(accessToken)) { - return undefined; - } - - return getWorkspaceIdFromAccessToken(accessToken); -}; - -const getWorkspaceIdFromAccessToken = ( - accessToken: string, -): string | undefined => { - const encodedPayload = accessToken.split('.')[1]; - - if (isUndefined(encodedPayload)) { - return undefined; - } - - try { - const payload = asRecord( - JSON.parse(Buffer.from(encodedPayload, 'base64url').toString('utf8')), - ); - - return getString(payload?.workspaceId); - } catch { - return undefined; - } -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/strip-restricted-field-value.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/strip-restricted-field-value.util.ts deleted file mode 100644 index 06b4a79a479fc..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/strip-restricted-field-value.util.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { RESTRICTED_FIELD_PLACEHOLDER } from 'src/logic-functions/constants/restricted-field-placeholder'; - -export const stripRestrictedFieldValue = ( - value: string | undefined, -): string | undefined => - value === RESTRICTED_FIELD_PLACEHOLDER ? undefined : value; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/update-call-recording.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/update-call-recording.util.ts deleted file mode 100644 index 251e325702c6b..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/data/update-call-recording.util.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { type CallRecordingRequestStatus } from 'src/logic-functions/constants/call-recording-request-status'; -import { type CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status'; -import { - executeCurrentSchemaMutation, - type CurrentSchemaUpdateCallRecordingMutation, -} from 'src/logic-functions/data/execute-current-schema-mutation.util'; - -export type CallRecordingUpdateFields = Partial<{ - // null clears a previously synced title when the calendar title disappears. - title: string | null; - status: CallRecordingStatus; - recordingRequestStatus: CallRecordingRequestStatus; - startedAt: string; - endedAt: string; - calendarEventId: string; - // null clears stale app-owned state on cancel/eject or reschedule. - externalBotId: string | null; - externalRecordingId: string; - meetingBotFailureReason: string | null; - transcript: Record; - audio: { fileId: string; label: string }[]; - video: { fileId: string; label: string }[]; -}>; - -export const updateCallRecording = async ( - client: CoreApiClient, - { - id, - data, - }: { - id: string; - data: CallRecordingUpdateFields; - }, -): Promise => { - const mutation = { - updateCallRecording: { - __args: { - id, - data, - }, - id: true, - }, - } satisfies CurrentSchemaUpdateCallRecordingMutation; - - await executeCurrentSchemaMutation(client, mutation); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/build-meeting-bot-policy-result.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/build-meeting-bot-policy-result.test.ts deleted file mode 100644 index 919b8d794831e..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/build-meeting-bot-policy-result.test.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -import { buildMeetingBotPolicyResult } from 'src/logic-functions/domain/build-meeting-bot-policy-result.util'; -import { type MeetingBotPolicyCalendarEventInput } from 'src/logic-functions/types/meeting-bot-policy-calendar-event-input.type'; - -const NOW = new Date('2026-01-01T12:00:00.000Z'); - -const buildCalendarEventInput = ( - overrides: Partial, -): MeetingBotPolicyCalendarEventInput => ({ - id: 'calendar-event-1', - isCanceled: false, - startsAt: '2026-01-01T13:00:00.000Z', - endsAt: '2026-01-01T14:00:00.000Z', - iCalUid: 'ical-uid-1', - conferenceLinkUrl: 'https://meet.example.com/customer-sync', - meetingBotPreference: undefined, - ...overrides, -}); - -describe('buildMeetingBotPolicyResult', () => { - it('requests a bot for the ON wire value', () => { - const policyResult = buildMeetingBotPolicyResult( - buildCalendarEventInput({ - meetingBotPreference: 'ON', - }), - NOW, - ); - - expect(policyResult.meetingBotPreference).toBe('ON'); - expect(policyResult.shouldRequestBot).toBe(true); - expect(policyResult.reason).toBe('RECORDING_ENABLED'); - }); - - it('does not request a bot for the OFF wire value', () => { - const policyResult = buildMeetingBotPolicyResult( - buildCalendarEventInput({ - meetingBotPreference: 'OFF', - }), - NOW, - ); - - expect(policyResult.meetingBotPreference).toBe('OFF'); - expect(policyResult.shouldRequestBot).toBe(false); - expect(policyResult.reason).toBe('PREFERENCE_OFF'); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/compute-call-recording-charge.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/compute-call-recording-charge.test.ts deleted file mode 100644 index 7abf925f9e531..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/compute-call-recording-charge.test.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -import { computeCallRecordingCharge } from 'src/logic-functions/domain/compute-call-recording-charge.util'; - -describe('computeCallRecordingCharge', () => { - it('charges one credit for a one-hour recording', () => { - expect( - computeCallRecordingCharge({ - startedAt: '2026-06-10T09:00:00.000Z', - endedAt: '2026-06-10T10:00:00.000Z', - }), - ).toEqual({ - creditsUsedMicro: 1_000_000, - quantityMinutes: 60, - }); - }); - - it('prorates partial hours by duration', () => { - expect( - computeCallRecordingCharge({ - startedAt: '2026-06-10T09:00:00.000Z', - endedAt: '2026-06-10T09:45:00.000Z', - }), - ).toEqual({ - creditsUsedMicro: 750_000, - quantityMinutes: 45, - }); - }); - - it('reports at least one minute for very short recordings', () => { - expect( - computeCallRecordingCharge({ - startedAt: '2026-06-10T09:00:00.000Z', - endedAt: '2026-06-10T09:00:30.000Z', - }), - ).toEqual({ - creditsUsedMicro: 8_333, - quantityMinutes: 1, - }); - }); - - it('returns undefined when either timestamp is missing', () => { - expect( - computeCallRecordingCharge({ - startedAt: undefined, - endedAt: '2026-06-10T10:00:00.000Z', - }), - ).toBeUndefined(); - expect( - computeCallRecordingCharge({ - startedAt: '2026-06-10T09:00:00.000Z', - endedAt: undefined, - }), - ).toBeUndefined(); - }); - - it('returns undefined for non-positive or unparseable durations', () => { - expect( - computeCallRecordingCharge({ - startedAt: '2026-06-10T10:00:00.000Z', - endedAt: '2026-06-10T09:00:00.000Z', - }), - ).toBeUndefined(); - expect( - computeCallRecordingCharge({ - startedAt: 'not-a-date', - endedAt: '2026-06-10T10:00:00.000Z', - }), - ).toBeUndefined(); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/compute-call-recording-id-for-meeting.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/compute-call-recording-id-for-meeting.test.ts deleted file mode 100644 index 45fea40e4bfe4..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/compute-call-recording-id-for-meeting.test.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -import { computeCallRecordingIdForMeeting } from 'src/logic-functions/domain/compute-call-recording-id-for-meeting.util'; - -const UUID_V4_PATTERN = - /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/; - -describe('computeCallRecordingIdForMeeting', () => { - it('returns the same id for the same real meeting key', () => { - const realMeetingKey = - 'link:meet.example.com/sync:2026-01-01T13:00:00.000Z'; - - expect(computeCallRecordingIdForMeeting(realMeetingKey)).toBe( - computeCallRecordingIdForMeeting(realMeetingKey), - ); - }); - - it('returns different ids for different real meeting keys', () => { - expect( - computeCallRecordingIdForMeeting( - 'link:meet.example.com/sync:2026-01-01T13:00:00.000Z', - ), - ).not.toBe( - computeCallRecordingIdForMeeting( - 'link:meet.example.com/sync:2026-01-02T13:00:00.000Z', - ), - ); - }); - - it('returns a v4-shaped uuid', () => { - expect( - computeCallRecordingIdForMeeting( - 'ical:some-uid:2026-01-01T13:00:00.000Z', - ), - ).toMatch(UUID_V4_PATTERN); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/compute-real-meeting-key.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/compute-real-meeting-key.test.ts deleted file mode 100644 index 940316139e538..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/compute-real-meeting-key.test.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -import { computeRealMeetingKey } from 'src/logic-functions/domain/compute-real-meeting-key.util'; - -const STARTS_AT = '2026-01-01T13:00:00.000Z'; - -const buildInput = ( - overrides: Partial[0]> = {}, -) => ({ - calendarEventId: 'calendar-event-1', - conferenceLinkUrl: 'https://meet.example.com/customer-sync', - iCalUid: 'calendar-event-uid', - startsAt: STARTS_AT, - ...overrides, -}); - -describe('computeRealMeetingKey', () => { - it.each([ - [ - 'strips protocol, query, and fragment', - 'https://zoom.us/j/123?pwd=abc#section', - `link:zoom.us/j/123:${STARTS_AT}`, - ], - [ - 'strips www and lowercases', - 'HTTPS://WWW.Meet.Example.com/Customer-Sync', - `link:meet.example.com/customer-sync:${STARTS_AT}`, - ], - [ - 'strips trailing slashes', - 'https://meet.example.com/customer-sync///', - `link:meet.example.com/customer-sync:${STARTS_AT}`, - ], - [ - 'supports plain http links', - 'http://meet.example.com/customer-sync', - `link:meet.example.com/customer-sync:${STARTS_AT}`, - ], - ])('%s', (_label, conferenceLinkUrl, expectedKey) => { - expect(computeRealMeetingKey(buildInput({ conferenceLinkUrl }))).toBe( - expectedKey, - ); - }); - - it('produces the same key for the same meeting synced from two calendars', () => { - const fromFirstAttendee = computeRealMeetingKey( - buildInput({ - calendarEventId: 'calendar-event-1', - conferenceLinkUrl: 'https://zoom.us/j/123?pwd=first-attendee-token', - }), - ); - const fromSecondAttendee = computeRealMeetingKey( - buildInput({ - calendarEventId: 'calendar-event-2', - conferenceLinkUrl: - 'https://www.zoom.us/j/123?pwd=second-attendee-token', - }), - ); - - expect(fromFirstAttendee).toBe(fromSecondAttendee); - }); - - it('falls back to the iCal uid when the link is blank', () => { - expect( - computeRealMeetingKey(buildInput({ conferenceLinkUrl: ' ' })), - ).toBe(`ical:calendar-event-uid:${STARTS_AT}`); - }); - - it('falls back to the iCal uid when the link is not a string', () => { - expect(computeRealMeetingKey(buildInput({ conferenceLinkUrl: 42 }))).toBe( - `ical:calendar-event-uid:${STARTS_AT}`, - ); - }); - - it('falls back to the calendar event id when link and iCal uid are missing', () => { - expect( - computeRealMeetingKey( - buildInput({ conferenceLinkUrl: undefined, iCalUid: '' }), - ), - ).toBe('event:calendar-event-1'); - }); - - it('keeps link keys distinct across start times', () => { - expect(computeRealMeetingKey(buildInput({ startsAt: undefined }))).toBe( - 'link:meet.example.com/customer-sync:', - ); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/is-call-recording-ingestion-complete.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/is-call-recording-ingestion-complete.test.ts deleted file mode 100644 index a7052f6fa747c..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/is-call-recording-ingestion-complete.test.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -import { isCallRecordingIngestionComplete } from 'src/logic-functions/domain/is-call-recording-ingestion-complete.util'; - -const AUDIO_VALUE = [{ fileId: 'file-audio-1', label: 'audio.mp3' }]; -const VIDEO_VALUE = [{ fileId: 'file-video-1', label: 'video.mp4' }]; -const TRANSCRIPT_CONTENT = [{ participant: { id: 1 }, words: [] }]; - -describe('isCallRecordingIngestionComplete', () => { - it('is complete when transcript content and both media files are present', () => { - expect( - isCallRecordingIngestionComplete({ - transcript: TRANSCRIPT_CONTENT, - audio: AUDIO_VALUE, - video: VIDEO_VALUE, - }), - ).toBe(true); - }); - - it('is incomplete while the transcript holds a marker', () => { - expect( - isCallRecordingIngestionComplete({ - transcript: { - recallTranscriptId: 'recall-transcript-1', - status: 'PENDING', - }, - audio: AUDIO_VALUE, - video: VIDEO_VALUE, - }), - ).toBe(false); - }); - - it('is incomplete when the transcript is unset', () => { - expect( - isCallRecordingIngestionComplete({ - transcript: null, - audio: AUDIO_VALUE, - video: VIDEO_VALUE, - }), - ).toBe(false); - }); - - it('is incomplete while any media field is empty', () => { - expect( - isCallRecordingIngestionComplete({ - transcript: TRANSCRIPT_CONTENT, - audio: undefined, - video: VIDEO_VALUE, - }), - ).toBe(false); - expect( - isCallRecordingIngestionComplete({ - transcript: TRANSCRIPT_CONTENT, - audio: AUDIO_VALUE, - video: [], - }), - ).toBe(false); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/is-call-recording-status-downgrade.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/is-call-recording-status-downgrade.test.ts deleted file mode 100644 index 3e73245e19795..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/is-call-recording-status-downgrade.test.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -import { isCallRecordingStatusDowngrade } from 'src/logic-functions/domain/is-call-recording-status-downgrade.util'; - -describe('isCallRecordingStatusDowngrade', () => { - it.each([ - ['SCHEDULED', 'JOINING', false], - ['JOINING', 'RECORDING', false], - ['RECORDING', 'PROCESSING', false], - ['PROCESSING', 'FAILED', false], - ['PROCESSING', 'COMPLETED', false], - ['RECORDING', 'RECORDING', false], - ['COMPLETED', 'RECORDING', true], - ['PROCESSING', 'JOINING', true], - ['FAILED', 'RECORDING', true], - ['JOINING', 'SCHEDULED', true], - ])('from %s to %s -> %s', (fromStatus, toStatus, expected) => { - expect(isCallRecordingStatusDowngrade({ fromStatus, toStatus })).toBe( - expected, - ); - }); - - it('never treats transitions from unknown statuses as downgrades', () => { - expect( - isCallRecordingStatusDowngrade({ - fromStatus: undefined, - toStatus: 'COMPLETED', - }), - ).toBe(false); - expect( - isCallRecordingStatusDowngrade({ - fromStatus: 'NOT_A_STATUS', - toStatus: 'SCHEDULED', - }), - ).toBe(false); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/resolve-meeting-bot-policy-result.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/resolve-meeting-bot-policy-result.test.ts deleted file mode 100644 index 4ed5739e37729..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/resolve-meeting-bot-policy-result.test.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -import { MeetingBotPreference } from 'src/constants/meeting-bot-preference'; -import { resolveMeetingBotPolicyResult } from 'src/logic-functions/domain/resolve-meeting-bot-policy-result.util'; - -const NOW = new Date('2026-01-01T12:00:00.000Z'); -const FUTURE_STARTS_AT = '2026-01-01T13:00:00.000Z'; -const FUTURE_ENDS_AT = '2026-01-01T14:00:00.000Z'; -const PAST_STARTS_AT = '2026-01-01T09:00:00.000Z'; -const PAST_ENDS_AT = '2026-01-01T10:00:00.000Z'; - -describe('resolveMeetingBotPolicyResult', () => { - it('requires a bot when preference is ON and the event is upcoming', () => { - expect( - resolveMeetingBotPolicyResult({ - input: { - meetingBotPreference: MeetingBotPreference.ON, - isCanceled: false, - startsAt: FUTURE_STARTS_AT, - endsAt: FUTURE_ENDS_AT, - conferenceLinkUrl: 'https://meet.example.com/team-sync', - }, - now: NOW, - }), - ).toEqual({ - shouldRequestBot: true, - reason: 'RECORDING_ENABLED', - }); - }); - - it('does not request a bot for ON when the meeting has no conference link', () => { - expect( - resolveMeetingBotPolicyResult({ - input: { - meetingBotPreference: MeetingBotPreference.ON, - isCanceled: false, - startsAt: FUTURE_STARTS_AT, - endsAt: FUTURE_ENDS_AT, - conferenceLinkUrl: undefined, - }, - now: NOW, - }), - ).toEqual({ - shouldRequestBot: false, - reason: 'MISSING_CONFERENCE_LINK', - }); - }); - - it('requires a bot without an event preference override', () => { - expect( - resolveMeetingBotPolicyResult({ - input: { - meetingBotPreference: undefined, - isCanceled: false, - startsAt: FUTURE_STARTS_AT, - endsAt: FUTURE_ENDS_AT, - conferenceLinkUrl: 'https://meet.example.com/team-sync', - }, - now: NOW, - }), - ).toEqual({ - shouldRequestBot: true, - reason: 'RECORDING_ENABLED', - }); - }); - - it('lets an OFF event preference opt out of workspace auto-recording', () => { - expect( - resolveMeetingBotPolicyResult({ - input: { - meetingBotPreference: MeetingBotPreference.OFF, - isCanceled: false, - startsAt: FUTURE_STARTS_AT, - endsAt: FUTURE_ENDS_AT, - conferenceLinkUrl: 'https://meet.example.com/team-sync', - }, - now: NOW, - }), - ).toEqual({ - shouldRequestBot: false, - reason: 'PREFERENCE_OFF', - }); - }); - - it('does not request a bot for a meeting that already ended', () => { - expect( - resolveMeetingBotPolicyResult({ - input: { - meetingBotPreference: undefined, - isCanceled: false, - startsAt: PAST_STARTS_AT, - endsAt: PAST_ENDS_AT, - conferenceLinkUrl: 'https://meet.example.com/team-sync', - }, - now: NOW, - }), - ).toEqual({ - shouldRequestBot: false, - reason: 'EVENT_NOT_UPCOMING', - }); - }); - - it('does not request a bot for a canceled meeting', () => { - expect( - resolveMeetingBotPolicyResult({ - input: { - meetingBotPreference: undefined, - isCanceled: true, - startsAt: FUTURE_STARTS_AT, - endsAt: FUTURE_ENDS_AT, - conferenceLinkUrl: 'https://meet.example.com/team-sync', - }, - now: NOW, - }), - ).toEqual({ - shouldRequestBot: false, - reason: 'EVENT_CANCELED', - }); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/should-complete-call-recording-ingestion.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/should-complete-call-recording-ingestion.test.ts deleted file mode 100644 index 87c95e643a145..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/__tests__/should-complete-call-recording-ingestion.test.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -import { CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status'; -import { shouldCompleteCallRecordingIngestion } from 'src/logic-functions/domain/should-complete-call-recording-ingestion.util'; - -const filledTranscript = [{ participant: { id: 1 }, words: [] }]; -const filledAudio = [{ fileId: 'file-audio-1', label: 'audio.mp3' }]; -const filledVideo = [{ fileId: 'file-video-1', label: 'video.mp4' }]; - -describe('shouldCompleteCallRecordingIngestion', () => { - it('requires complete artifacts and billable timestamps before completion', () => { - expect( - shouldCompleteCallRecordingIngestion({ - current: { - status: CallRecordingStatus.PROCESSING, - startedAt: '2026-06-10T09:00:00.000Z', - endedAt: '2026-06-10T10:00:00.000Z', - transcript: filledTranscript, - audio: filledAudio, - video: filledVideo, - }, - updateData: {}, - }), - ).toBe(true); - - expect( - shouldCompleteCallRecordingIngestion({ - current: { - status: CallRecordingStatus.PROCESSING, - endedAt: '2026-06-10T10:00:00.000Z', - transcript: filledTranscript, - audio: filledAudio, - video: filledVideo, - }, - updateData: {}, - }), - ).toBe(false); - - expect( - shouldCompleteCallRecordingIngestion({ - current: { - status: CallRecordingStatus.PROCESSING, - transcript: filledTranscript, - audio: filledAudio, - video: filledVideo, - }, - updateData: { - startedAt: '2026-06-10T09:00:00.000Z', - endedAt: '2026-06-10T10:00:00.000Z', - }, - }), - ).toBe(true); - - expect( - shouldCompleteCallRecordingIngestion({ - current: { - status: CallRecordingStatus.PROCESSING, - startedAt: '2026-06-10T10:00:00.000Z', - endedAt: '2026-06-10T09:00:00.000Z', - transcript: filledTranscript, - audio: filledAudio, - video: filledVideo, - }, - updateData: {}, - }), - ).toBe(false); - }); - - it('does not complete a persisted failed recording', () => { - expect( - shouldCompleteCallRecordingIngestion({ - current: { - status: CallRecordingStatus.FAILED, - startedAt: '2026-06-10T09:00:00.000Z', - endedAt: '2026-06-10T10:00:00.000Z', - transcript: filledTranscript, - audio: filledAudio, - video: filledVideo, - }, - updateData: {}, - }), - ).toBe(false); - }); - - it('does not complete when the incoming update marks the recording as failed', () => { - expect( - shouldCompleteCallRecordingIngestion({ - current: { - status: CallRecordingStatus.PROCESSING, - startedAt: '2026-06-10T09:00:00.000Z', - endedAt: '2026-06-10T10:00:00.000Z', - transcript: filledTranscript, - audio: filledAudio, - video: filledVideo, - }, - updateData: { - status: CallRecordingStatus.FAILED, - }, - }), - ).toBe(false); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/aggregate-meeting-bot-policy-results-by-meeting.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/aggregate-meeting-bot-policy-results-by-meeting.util.ts deleted file mode 100644 index 07c7975b8c14d..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/aggregate-meeting-bot-policy-results-by-meeting.util.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { type MeetingBotPolicyResultForCalendarEvent } from 'src/logic-functions/types/meeting-bot-policy-result-for-calendar-event.type'; -import { type MeetingBotPolicyResultForMeeting } from 'src/logic-functions/types/meeting-bot-policy-result-for-meeting.type'; - -type MeetingBotPolicyResultForMeetingInput = Pick< - MeetingBotPolicyResultForCalendarEvent, - 'calendarEventId' | 'realMeetingKey' | 'shouldRequestBot' ->; - -export const aggregateMeetingBotPolicyResultsByMeeting = ( - perCalendarEventPolicyResults: MeetingBotPolicyResultForMeetingInput[], -): MeetingBotPolicyResultForMeeting[] => { - const meetingPolicyResultsByMeetingKey = new Map< - string, - MeetingBotPolicyResultForMeeting - >(); - - for (const { - calendarEventId, - realMeetingKey, - shouldRequestBot, - } of perCalendarEventPolicyResults) { - const meetingPolicyResult = meetingPolicyResultsByMeetingKey.get( - realMeetingKey, - ) ?? { - realMeetingKey, - shouldRequestBot: false, - calendarEventIds: [], - requestingCalendarEventIds: [], - }; - - meetingPolicyResult.calendarEventIds.push(calendarEventId); - - if (shouldRequestBot) { - meetingPolicyResult.shouldRequestBot = true; - meetingPolicyResult.requestingCalendarEventIds.push(calendarEventId); - } - - meetingPolicyResultsByMeetingKey.set(realMeetingKey, meetingPolicyResult); - } - - return [...meetingPolicyResultsByMeetingKey.values()]; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-failed-transcript-marker.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-failed-transcript-marker.util.ts deleted file mode 100644 index c7719537f67df..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-failed-transcript-marker.util.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { type TranscriptMarker } from 'src/logic-functions/types/transcript-marker.type'; - -export const buildFailedTranscriptMarker = ({ - recallTranscriptId, - subCode, -}: { - recallTranscriptId: string | null; - subCode: string | null; -}): TranscriptMarker => ({ - recallTranscriptId, - status: 'FAILED', - subCode, -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-meeting-bot-policy-result.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-meeting-bot-policy-result.util.ts deleted file mode 100644 index fc181bcd06277..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-meeting-bot-policy-result.util.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { MeetingBotPreference } from 'src/constants/meeting-bot-preference'; -import { type MeetingBotPolicyCalendarEventInput } from 'src/logic-functions/types/meeting-bot-policy-calendar-event-input.type'; -import { type MeetingBotPolicyResultForCalendarEvent } from 'src/logic-functions/types/meeting-bot-policy-result-for-calendar-event.type'; -import { computeRealMeetingKey } from 'src/logic-functions/domain/compute-real-meeting-key.util'; -import { resolveMeetingBotPolicyResult } from 'src/logic-functions/domain/resolve-meeting-bot-policy-result.util'; - -export const buildMeetingBotPolicyResult = ( - calendarEvent: MeetingBotPolicyCalendarEventInput, - now: Date, -): MeetingBotPolicyResultForCalendarEvent => { - const realMeetingKey = computeRealMeetingKey({ - calendarEventId: calendarEvent.id, - conferenceLinkUrl: calendarEvent.conferenceLinkUrl, - iCalUid: calendarEvent.iCalUid, - startsAt: calendarEvent.startsAt, - }); - - const meetingBotPreference = normalizeMeetingBotPreference( - calendarEvent.meetingBotPreference, - ); - - const policyResult = resolveMeetingBotPolicyResult({ - input: { - meetingBotPreference, - isCanceled: calendarEvent.isCanceled, - startsAt: calendarEvent.startsAt, - endsAt: calendarEvent.endsAt, - conferenceLinkUrl: calendarEvent.conferenceLinkUrl, - }, - now, - }); - - return { - calendarEventId: calendarEvent.id, - meetingBotPreference, - realMeetingKey, - ...policyResult, - }; -}; - -const normalizeMeetingBotPreference = ( - meetingBotPreference: string | undefined, -): MeetingBotPreference | undefined => - isMeetingBotPreference(meetingBotPreference) - ? meetingBotPreference - : undefined; - -const isMeetingBotPreference = ( - meetingBotPreference: string | undefined, -): meetingBotPreference is MeetingBotPreference => - Object.values(MeetingBotPreference).some( - (preference) => preference === meetingBotPreference, - ); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-pending-transcript-marker.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-pending-transcript-marker.util.ts deleted file mode 100644 index ae65c4b55608d..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-pending-transcript-marker.util.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { type TranscriptMarker } from 'src/logic-functions/types/transcript-marker.type'; - -export const buildPendingTranscriptMarker = ({ - recallTranscriptId, - requestedAt, -}: { - recallTranscriptId: string; - requestedAt: string; -}): TranscriptMarker => ({ - recallTranscriptId, - status: 'PENDING', - requestedAt, -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-recall-bot-metadata.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-recall-bot-metadata.util.ts deleted file mode 100644 index ce8f6b240a74e..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-recall-bot-metadata.util.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { type MeetingRecording } from 'src/logic-functions/types/meeting-recording.type'; -import { type RecallBotMetadata } from 'src/logic-functions/types/recall-bot-metadata.type'; -import { computeRealMeetingKey } from 'src/logic-functions/domain/compute-real-meeting-key.util'; - -export const buildRecallBotMetadata = ({ - callRecording, - calendarEvent, - workspaceId, -}: MeetingRecording & { workspaceId: string }): RecallBotMetadata => { - return { - twentyWorkspaceId: workspaceId, - twentyCallRecordingId: callRecording.id, - twentyCalendarEventId: calendarEvent.id, - twentyRealMeetingKey: computeRealMeetingKey({ - calendarEventId: calendarEvent.id, - conferenceLinkUrl: calendarEvent.conferenceLinkUrl, - iCalUid: calendarEvent.iCalUid, - startsAt: calendarEvent.startsAt, - }), - }; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-transcript-failure-reason.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-transcript-failure-reason.util.ts deleted file mode 100644 index aab66570b5999..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/build-transcript-failure-reason.util.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { isNull } from '@sniptt/guards'; - -export const buildTranscriptFailureReason = (subCode: string | null): string => { - return isNull(subCode) - ? 'transcript_failed' - : `transcript_failed:${subCode}`; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/compute-call-recording-charge.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/compute-call-recording-charge.util.ts deleted file mode 100644 index b7d58291bb521..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/compute-call-recording-charge.util.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; - -import { CALL_RECORDING_MICRO_CREDITS_PER_HOUR } from 'src/logic-functions/constants/call-recording-micro-credits-per-hour'; -import { MILLISECONDS_PER_MINUTE } from 'src/logic-functions/constants/milliseconds-per-minute'; - -const MILLISECONDS_PER_HOUR = 3_600_000; - -export type CallRecordingCharge = { - creditsUsedMicro: number; - quantityMinutes: number; -}; - -export const computeCallRecordingCharge = ({ - startedAt, - endedAt, -}: { - startedAt: string | undefined; - endedAt: string | undefined; -}): CallRecordingCharge | undefined => { - if (isUndefined(startedAt) || isUndefined(endedAt)) { - return undefined; - } - - const durationMilliseconds = - new Date(endedAt).getTime() - new Date(startedAt).getTime(); - - if (!Number.isFinite(durationMilliseconds) || durationMilliseconds <= 0) { - return undefined; - } - - return { - creditsUsedMicro: Math.round( - (durationMilliseconds / MILLISECONDS_PER_HOUR) * - CALL_RECORDING_MICRO_CREDITS_PER_HOUR, - ), - quantityMinutes: Math.max( - 1, - Math.round(durationMilliseconds / MILLISECONDS_PER_MINUTE), - ), - }; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/compute-call-recording-id-for-meeting.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/compute-call-recording-id-for-meeting.util.ts deleted file mode 100644 index 5df420dd35257..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/compute-call-recording-id-for-meeting.util.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { createHash } from 'crypto'; - -// Same meeting key → same id: the primary key serializes concurrent creates. -export const computeCallRecordingIdForMeeting = ( - realMeetingKey: string, -): string => { - const bytes = createHash('sha256').update(realMeetingKey).digest(); - - // v4 version/variant bits so server-side UUID validation accepts the hash. - bytes[6] = (bytes[6] & 0x0f) | 0x40; - bytes[8] = (bytes[8] & 0x3f) | 0x80; - - const hex = bytes.subarray(0, 16).toString('hex'); - - return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/compute-real-meeting-key.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/compute-real-meeting-key.util.ts deleted file mode 100644 index 56f59cf7f3a2a..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/compute-real-meeting-key.util.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; - -import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util'; - -type ComputeRealMeetingKeyInput = { - calendarEventId: string; - conferenceLinkUrl: unknown; - iCalUid: string | undefined; - startsAt: string | undefined; -}; - -export const computeRealMeetingKey = ({ - calendarEventId, - conferenceLinkUrl, - iCalUid, - startsAt, -}: ComputeRealMeetingKeyInput): string => { - const normalizedConferenceLink = normalizeConferenceLink(conferenceLinkUrl); - - if (!isUndefined(normalizedConferenceLink)) { - return `link:${normalizedConferenceLink}:${startsAt ?? ''}`; - } - - if (isNonEmptyString(iCalUid)) { - return `ical:${iCalUid}:${startsAt ?? ''}`; - } - - return `event:${calendarEventId}`; -}; - -const normalizeConferenceLink = ( - conferenceLinkUrl: unknown, -): string | undefined => { - if (!isNonEmptyString(conferenceLinkUrl)) { - return undefined; - } - - const withoutProtocol = conferenceLinkUrl - .trim() - .toLowerCase() - .replace(/^https?:\/\//, '') - .replace(/^www\./, ''); - - const withoutQueryAndFragment = withoutProtocol.split(/[?#]/)[0]; - const withoutTrailingSlash = withoutQueryAndFragment.replace(/\/+$/, ''); - - return withoutTrailingSlash === '' ? undefined : withoutTrailingSlash; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/compute-recall-bot-join-at.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/compute-recall-bot-join-at.util.ts deleted file mode 100644 index cfef069543a73..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/compute-recall-bot-join-at.util.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { DEFAULT_MEETING_BOT_JOIN_EARLY_MINUTES } from 'src/logic-functions/constants/default-meeting-bot-join-early-minutes'; -import { MILLISECONDS_PER_MINUTE } from 'src/logic-functions/constants/milliseconds-per-minute'; -import { MEETING_BOT_JOIN_EARLY_MINUTES_ENV_VAR_NAME } from 'src/logic-functions/constants/meeting-bot-join-early-minutes-env-var-name'; -import { getApplicationVariableValue } from 'src/logic-functions/utils/get-application-variable-value.util'; -import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util'; - -export const computeRecallBotJoinAt = (meetingStartsAt: string): string => { - const meetingStartTimeInMilliseconds = new Date(meetingStartsAt).getTime(); - - if (Number.isNaN(meetingStartTimeInMilliseconds)) { - return meetingStartsAt; - } - - return new Date( - meetingStartTimeInMilliseconds - - getRecallBotJoinEarlyMinutes() * MILLISECONDS_PER_MINUTE, - ).toISOString(); -}; - -const getRecallBotJoinEarlyMinutes = (): number => { - const rawValue = getApplicationVariableValue( - MEETING_BOT_JOIN_EARLY_MINUTES_ENV_VAR_NAME, - ); - - if (!isNonEmptyString(rawValue)) { - return DEFAULT_MEETING_BOT_JOIN_EARLY_MINUTES; - } - - const joinEarlyMinutes = Number(rawValue.trim()); - - return Number.isInteger(joinEarlyMinutes) && joinEarlyMinutes >= 0 - ? joinEarlyMinutes - : DEFAULT_MEETING_BOT_JOIN_EARLY_MINUTES; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/is-call-recording-ingestion-complete.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/is-call-recording-ingestion-complete.util.ts deleted file mode 100644 index ec32b40758dff..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/is-call-recording-ingestion-complete.util.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { isNonEmptyArray, isNull, isUndefined } from '@sniptt/guards'; - -import { type FilesFieldValue } from 'src/logic-functions/types/files-field-value.type'; -import { parseTranscriptMarker } from 'src/logic-functions/domain/parse-transcript-marker.util'; - -export const isCallRecordingIngestionComplete = ({ - transcript, - audio, - video, -}: { - transcript: unknown; - audio: FilesFieldValue | undefined; - video: FilesFieldValue | undefined; -}): boolean => - !isNull(transcript) && - !isUndefined(transcript) && - isUndefined(parseTranscriptMarker(transcript)) && - isNonEmptyArray(audio) && - isNonEmptyArray(video); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/is-call-recording-status-downgrade.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/is-call-recording-status-downgrade.util.ts deleted file mode 100644 index 45843102bb083..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/is-call-recording-status-downgrade.util.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; - -import { CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status'; - -// Deliveries are unordered; a late event must never move status backwards. -const CALL_RECORDING_STATUS_PROGRESSION: Record = { - [CallRecordingStatus.SCHEDULED]: 0, - [CallRecordingStatus.JOINING]: 1, - [CallRecordingStatus.RECORDING]: 2, - [CallRecordingStatus.PROCESSING]: 3, - [CallRecordingStatus.FAILED]: 4, - [CallRecordingStatus.COMPLETED]: 5, -}; - -const getCallRecordingStatusRank = (status: string): number | undefined => - status in CALL_RECORDING_STATUS_PROGRESSION - ? CALL_RECORDING_STATUS_PROGRESSION[status as CallRecordingStatus] - : undefined; - -export const isCallRecordingStatusDowngrade = ({ - fromStatus, - toStatus, -}: { - fromStatus: string | undefined; - toStatus: string; -}): boolean => { - const fromRank = isUndefined(fromStatus) - ? undefined - : getCallRecordingStatusRank(fromStatus); - const toRank = getCallRecordingStatusRank(toStatus); - - if (isUndefined(fromRank) || isUndefined(toRank)) { - return false; - } - - return toRank < fromRank; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/is-recall-recording-done-signal.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/is-recall-recording-done-signal.util.ts deleted file mode 100644 index 50b2efef7c7cb..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/is-recall-recording-done-signal.util.ts +++ /dev/null @@ -1,13 +0,0 @@ -export const isRecallRecordingDoneSignal = ({ - event, - statusCode, -}: { - event: string; - statusCode: string | undefined; -}): boolean => { - return ( - event === 'recording.done' || - event === 'recording.failed' || - statusCode === 'done' - ); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/map-recall-status-code-to-call-recording-status.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/map-recall-status-code-to-call-recording-status.util.ts deleted file mode 100644 index 9af31afc32b69..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/map-recall-status-code-to-call-recording-status.util.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status'; - -export const mapRecallStatusCodeToCallRecordingStatus = ( - statusCode: string | undefined, -): CallRecordingStatus | undefined => { - switch (statusCode) { - case 'joining_call': - case 'in_waiting_room': - return CallRecordingStatus.JOINING; - case 'in_call_not_recording': - case 'recording_permission_allowed': - case 'in_call_recording': - return CallRecordingStatus.RECORDING; - // 'done' stays PROCESSING: COMPLETED is set only after all artifacts are ingested. - case 'call_ended': - case 'analysis_done': - case 'done': - return CallRecordingStatus.PROCESSING; - case 'fatal': - case 'analysis_failed': - case 'recording_permission_denied': - return CallRecordingStatus.FAILED; - default: - return undefined; - } -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/parse-transcript-marker.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/parse-transcript-marker.util.ts deleted file mode 100644 index b2806f2a7b80c..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/parse-transcript-marker.util.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { isString, isUndefined } from '@sniptt/guards'; - -import { type TranscriptMarker } from 'src/logic-functions/types/transcript-marker.type'; -import { asRecord } from 'src/logic-functions/utils/as-record.util'; - -export const parseTranscriptMarker = ( - transcript: unknown, -): TranscriptMarker | undefined => { - const candidate = asRecord(transcript); - - if (isUndefined(candidate)) { - return undefined; - } - - if (candidate.status !== 'PENDING' && candidate.status !== 'FAILED') { - return undefined; - } - - return { - recallTranscriptId: isString(candidate.recallTranscriptId) - ? candidate.recallTranscriptId - : null, - status: candidate.status, - ...(isString(candidate.requestedAt) - ? { requestedAt: candidate.requestedAt } - : {}), - ...(isString(candidate.subCode) ? { subCode: candidate.subCode } : {}), - }; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/resolve-meeting-bot-policy-result.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/resolve-meeting-bot-policy-result.util.ts deleted file mode 100644 index d90cc1906fd68..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/resolve-meeting-bot-policy-result.util.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { MeetingBotPreference } from 'src/constants/meeting-bot-preference'; -import { type MeetingBotPolicyInput } from 'src/logic-functions/types/meeting-bot-policy-input.type'; -import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util'; -import { type MeetingBotPolicyNotRequiredReason } from 'src/logic-functions/types/meeting-bot-policy-not-required-reason.type'; -import { type MeetingBotPolicyRequiredReason } from 'src/logic-functions/types/meeting-bot-policy-required-reason.type'; -import { type MeetingBotPolicyResult } from 'src/logic-functions/types/meeting-bot-policy-result.type'; - -type ResolveMeetingBotPolicyResultArgs = { - input: MeetingBotPolicyInput; - now: Date; -}; - -export const resolveMeetingBotPolicyResult = ({ - input, - now, -}: ResolveMeetingBotPolicyResultArgs): MeetingBotPolicyResult => { - if (input.isCanceled) { - return botNotRequired('EVENT_CANCELED'); - } - - if (input.meetingBotPreference === MeetingBotPreference.OFF) { - return botNotRequired('PREFERENCE_OFF'); - } - - if (!isNonEmptyString(input.conferenceLinkUrl)) { - return botNotRequired('MISSING_CONFERENCE_LINK'); - } - - if ( - !isCalendarEventInFuture({ - startsAt: input.startsAt, - endsAt: input.endsAt, - now, - }) - ) { - return botNotRequired('EVENT_NOT_UPCOMING'); - } - - return botRequired('RECORDING_ENABLED'); -}; - -const isCalendarEventInFuture = ({ - startsAt, - endsAt, - now, -}: { - startsAt: string | undefined; - endsAt: string | undefined; - now: Date; -}): boolean => { - const reference = endsAt ?? startsAt; - - if (!isNonEmptyString(reference)) { - return false; - } - - const referenceTime = new Date(reference).getTime(); - - if (Number.isNaN(referenceTime)) { - return false; - } - - return referenceTime > now.getTime(); -}; - -const botRequired = ( - reason: MeetingBotPolicyRequiredReason, -): MeetingBotPolicyResult => ({ shouldRequestBot: true, reason }); - -const botNotRequired = ( - reason: MeetingBotPolicyNotRequiredReason, -): MeetingBotPolicyResult => ({ shouldRequestBot: false, reason }); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/should-complete-call-recording-ingestion.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/should-complete-call-recording-ingestion.util.ts deleted file mode 100644 index 5e2f827e45891..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/domain/should-complete-call-recording-ingestion.util.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status'; -import { type FilesFieldValue } from 'src/logic-functions/types/files-field-value.type'; -import { computeCallRecordingCharge } from 'src/logic-functions/domain/compute-call-recording-charge.util'; -import { isCallRecordingIngestionComplete } from 'src/logic-functions/domain/is-call-recording-ingestion-complete.util'; -import { type CallRecordingUpdateFields } from 'src/logic-functions/data/update-call-recording.util'; - -export const shouldCompleteCallRecordingIngestion = ({ - current, - updateData, -}: { - current: { - status?: string; - startedAt?: string; - endedAt?: string; - transcript?: unknown; - audio?: FilesFieldValue; - video?: FilesFieldValue; - }; - updateData: CallRecordingUpdateFields; -}): boolean => - current.status !== CallRecordingStatus.COMPLETED && - current.status !== CallRecordingStatus.FAILED && - updateData.status !== CallRecordingStatus.FAILED && - computeCallRecordingCharge({ - startedAt: updateData.startedAt ?? current.startedAt, - endedAt: updateData.endedAt ?? current.endedAt, - }) !== undefined && - isCallRecordingIngestionComplete({ - transcript: updateData.transcript ?? current.transcript, - audio: updateData.audio ?? current.audio, - video: updateData.video ?? current.video, - }); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/charge-completed-call-recording.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/charge-completed-call-recording.test.ts deleted file mode 100644 index f1e9077ed873c..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/charge-completed-call-recording.test.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; - -import { chargeCompletedCallRecording } from 'src/logic-functions/flows/charge-completed-call-recording.util'; - -const chargeCreditsMock = vi.hoisted(() => vi.fn()); - -vi.mock('twenty-sdk/billing', () => ({ - chargeCredits: chargeCreditsMock, -})); - -describe('chargeCompletedCallRecording', () => { - beforeEach(() => { - vi.spyOn(console, 'warn').mockImplementation(() => {}); - chargeCreditsMock.mockReset(); - chargeCreditsMock.mockResolvedValue(undefined); - }); - - it('charges prorated micro-credits with the recording duration in minutes', async () => { - await chargeCompletedCallRecording({ - callRecordingId: 'call-recording-1', - startedAt: '2026-06-10T09:00:00.000Z', - endedAt: '2026-06-10T09:30:00.000Z', - }); - - expect(chargeCreditsMock).toHaveBeenCalledWith({ - creditsUsedMicro: 500_000, - quantity: 30, - operationType: 'CALL_RECORDING', - resourceContext: 'recall', - }); - }); - - it('skips and warns loudly when timestamps are unusable', async () => { - await chargeCompletedCallRecording({ - callRecordingId: 'call-recording-1', - startedAt: undefined, - endedAt: '2026-06-10T09:30:00.000Z', - }); - - expect(chargeCreditsMock).not.toHaveBeenCalled(); - expect(console.warn).toHaveBeenCalledWith( - expect.stringContaining('will not be billed'), - ); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/complete-and-charge-call-recording.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/complete-and-charge-call-recording.test.ts deleted file mode 100644 index 42c48e63cf6a7..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/complete-and-charge-call-recording.test.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; - -const completeCallRecordingIngestionMock = vi.hoisted(() => vi.fn()); -const chargeCompletedCallRecordingMock = vi.hoisted(() => vi.fn()); - -vi.mock( - 'src/logic-functions/data/complete-call-recording-ingestion.util', - () => ({ - completeCallRecordingIngestion: completeCallRecordingIngestionMock, - }), -); - -vi.mock( - 'src/logic-functions/flows/charge-completed-call-recording.util', - () => ({ - chargeCompletedCallRecording: chargeCompletedCallRecordingMock, - }), -); - -import { completeAndChargeCallRecording } from 'src/logic-functions/flows/complete-and-charge-call-recording.util'; - -describe('completeAndChargeCallRecording', () => { - beforeEach(() => { - vi.clearAllMocks(); - }); - - it('charges exactly once when this path wins the completion claim', async () => { - completeCallRecordingIngestionMock.mockResolvedValue(true); - - const claimed = await completeAndChargeCallRecording({} as never, { - id: 'call-recording-1', - startedAt: '2026-06-10T12:00:00.000Z', - endedAt: '2026-06-10T13:00:00.000Z', - }); - - expect(claimed).toBe(true); - expect(completeCallRecordingIngestionMock).toHaveBeenCalledWith( - {}, - { id: 'call-recording-1' }, - ); - expect(chargeCompletedCallRecordingMock).toHaveBeenCalledTimes(1); - expect(chargeCompletedCallRecordingMock).toHaveBeenCalledWith({ - callRecordingId: 'call-recording-1', - startedAt: '2026-06-10T12:00:00.000Z', - endedAt: '2026-06-10T13:00:00.000Z', - }); - }); - - it('does not charge when another path already completed the recording', async () => { - completeCallRecordingIngestionMock.mockResolvedValue(false); - - const claimed = await completeAndChargeCallRecording({} as never, { - id: 'call-recording-1', - startedAt: '2026-06-10T12:00:00.000Z', - endedAt: '2026-06-10T13:00:00.000Z', - }); - - expect(claimed).toBe(false); - expect(chargeCompletedCallRecordingMock).not.toHaveBeenCalled(); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/converge-diverged-call-recordings.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/converge-diverged-call-recordings.test.ts deleted file mode 100644 index 7981d02a5b736..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/converge-diverged-call-recordings.test.ts +++ /dev/null @@ -1,729 +0,0 @@ -import { type CoreApiClient } from 'twenty-client-sdk/core'; -import { beforeEach, describe, expect, it, vi } from 'vitest'; - -import { convergeDivergedCallRecordings } from 'src/logic-functions/flows/converge-diverged-call-recordings.util'; - -const getRecallBotMock = vi.hoisted(() => vi.fn()); -const listRecallTranscriptsMock = vi.hoisted(() => vi.fn()); -const createAsyncRecallTranscriptMock = vi.hoisted(() => vi.fn()); -const downloadTranscriptMock = vi.hoisted(() => vi.fn()); -const ingestCallRecordingMediaMock = vi.hoisted(() => vi.fn()); -const chargeCompletedCallRecordingMock = vi.hoisted(() => vi.fn()); - -vi.mock('src/logic-functions/recall-api/get-recall-bot.util', () => ({ - getRecallBot: getRecallBotMock, -})); - -vi.mock('src/logic-functions/recall-api/list-recall-transcripts.util', () => ({ - listRecallTranscripts: listRecallTranscriptsMock, -})); - -vi.mock( - 'src/logic-functions/recall-api/create-async-recall-transcript.util', - () => ({ - createAsyncRecallTranscript: createAsyncRecallTranscriptMock, - }), -); - -vi.mock('src/logic-functions/flows/download-transcript.util', () => ({ - downloadTranscript: downloadTranscriptMock, -})); - -vi.mock('src/logic-functions/flows/ingest-call-recording-media.util', () => ({ - ingestCallRecordingMedia: ingestCallRecordingMediaMock, -})); - -vi.mock( - 'src/logic-functions/flows/charge-completed-call-recording.util', - () => ({ - chargeCompletedCallRecording: chargeCompletedCallRecordingMock, - }), -); - -const NOW = new Date('2026-06-10T12:00:00.000Z'); - -type CallRecordingNode = Record; - -class FakeCoreApiClient { - mutations: Array<{ id: string; data: Record }> = []; - - constructor(private callRecordingNodes: CallRecordingNode[]) {} - - async query(_query: any): Promise { - return { - callRecordings: { - pageInfo: { hasNextPage: false, endCursor: undefined }, - edges: this.callRecordingNodes.map((node) => ({ node })), - }, - }; - } - - async mutation(mutation: any): Promise { - if (mutation.updateCallRecordings !== undefined) { - const { filter, data } = mutation.updateCallRecordings.__args; - const id = filter.id.eq; - - this.mutations.push({ id, data }); - - return { updateCallRecordings: [{ id }] }; - } - - const { id, data } = mutation.updateCallRecording.__args; - - this.mutations.push({ id, data }); - - return { updateCallRecording: { id } }; - } -} - -const buildClient = (callRecordingNodes: CallRecordingNode[]) => - new FakeCoreApiClient(callRecordingNodes); - -const buildStuckRecordingNode = ( - overrides: CallRecordingNode = {}, -): CallRecordingNode => ({ - id: 'call-recording-1', - status: 'RECORDING', - startedAt: null, - endedAt: null, - externalBotId: 'recall-bot-1', - externalRecordingId: null, - transcript: null, - audio: null, - video: null, - createdAt: '2026-06-09T12:00:00.000Z', - calendarEvent: { - startsAt: '2026-06-09T12:00:00.000Z', - endsAt: '2026-06-09T13:00:00.000Z', - }, - ...overrides, -}); - -describe('convergeDivergedCallRecordings', () => { - beforeEach(() => { - vi.spyOn(console, 'warn').mockImplementation(() => {}); - getRecallBotMock.mockReset(); - listRecallTranscriptsMock.mockReset(); - listRecallTranscriptsMock.mockResolvedValue({ - ok: true, - transcripts: [], - }); - createAsyncRecallTranscriptMock.mockReset(); - createAsyncRecallTranscriptMock.mockResolvedValue({ - ok: true, - transcriptId: 'recall-transcript-1', - }); - downloadTranscriptMock.mockReset(); - downloadTranscriptMock.mockResolvedValue({ outcome: 'pending' }); - ingestCallRecordingMediaMock.mockReset(); - ingestCallRecordingMediaMock.mockResolvedValue({}); - chargeCompletedCallRecordingMock.mockReset(); - chargeCompletedCallRecordingMock.mockResolvedValue(undefined); - }); - - it('heals a stuck RECORDING record from the Recall bot state', async () => { - getRecallBotMock.mockResolvedValue({ - ok: true, - bot: { - status_changes: [ - { code: 'in_call_recording', created_at: '2026-06-09T13:02:30.000Z' }, - { code: 'call_ended', created_at: '2026-06-09T14:00:30.000Z' }, - { code: 'done', created_at: '2026-06-09T14:05:00.000Z' }, - ], - recordings: [ - { - id: 'recall-recording-1', - started_at: '2026-06-09T13:02:00.000Z', - completed_at: '2026-06-09T14:00:00.000Z', - }, - ], - }, - }); - const client = buildClient([buildStuckRecordingNode()]); - - const result = await convergeDivergedCallRecordings({ - client: client as unknown as CoreApiClient, - now: NOW, - }); - - expect(getRecallBotMock).toHaveBeenCalledWith({ - externalBotId: 'recall-bot-1', - }); - expect(ingestCallRecordingMediaMock).toHaveBeenCalledWith({ - callRecordingId: 'call-recording-1', - externalRecordingId: 'recall-recording-1', - hasAudio: false, - hasVideo: false, - }); - expect(listRecallTranscriptsMock).toHaveBeenCalledWith({ - externalRecordingId: 'recall-recording-1', - }); - expect(createAsyncRecallTranscriptMock).toHaveBeenCalledWith({ - externalRecordingId: 'recall-recording-1', - callRecordingId: 'call-recording-1', - }); - expect(client.mutations).toEqual([ - expect.objectContaining({ - id: 'call-recording-1', - data: expect.objectContaining({ - status: 'PROCESSING', - startedAt: '2026-06-09T13:02:00.000Z', - endedAt: '2026-06-09T14:00:00.000Z', - externalRecordingId: 'recall-recording-1', - }), - }), - ]); - expect(chargeCompletedCallRecordingMock).not.toHaveBeenCalled(); - expect(result).toEqual({ - candidateCount: 1, - updatedCallRecordingIds: ['call-recording-1'], - markedFailedCallRecordingIds: [], - requestedTranscriptCallRecordingIds: ['call-recording-1'], - unconvergeableCallRecordingIds: [], - skippedNotStartedCallRecordingIds: [], - }); - }); - - it('marks FAILED when Recall is done but has no recording artifact path', async () => { - getRecallBotMock.mockResolvedValue({ - ok: true, - bot: { - status_changes: [ - { code: 'done', created_at: '2026-06-09T14:05:00.000Z' }, - ], - recordings: [], - }, - }); - const client = buildClient([buildStuckRecordingNode()]); - - const result = await convergeDivergedCallRecordings({ - client: client as unknown as CoreApiClient, - now: NOW, - }); - - expect(listRecallTranscriptsMock).not.toHaveBeenCalled(); - expect(ingestCallRecordingMediaMock).not.toHaveBeenCalled(); - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - status: 'FAILED', - meetingBotFailureReason: 'recording_artifacts_unavailable', - }, - }, - ]); - expect(result.updatedCallRecordingIds).toEqual(['call-recording-1']); - }); - - it('completes and charges when convergence lands the last artifact', async () => { - getRecallBotMock.mockResolvedValue({ - ok: true, - bot: { - status_changes: [ - { code: 'done', created_at: '2026-06-09T14:05:00.000Z' }, - ], - recordings: [ - { - id: 'recall-recording-1', - started_at: '2026-06-09T13:02:00.000Z', - completed_at: '2026-06-09T14:00:00.000Z', - }, - ], - }, - }); - ingestCallRecordingMediaMock.mockResolvedValue({ - audio: [{ fileId: 'file-audio-1', label: 'audio.mp3' }], - video: [{ fileId: 'file-video-1', label: 'video.mp4' }], - }); - const client = buildClient([ - buildStuckRecordingNode({ - status: 'PROCESSING', - startedAt: '2026-06-09T13:02:00.000Z', - endedAt: '2026-06-09T14:00:00.000Z', - externalRecordingId: 'recall-recording-1', - transcript: [{ participant: { id: 1 }, words: [] }], - }), - ]); - - const result = await convergeDivergedCallRecordings({ - client: client as unknown as CoreApiClient, - now: NOW, - }); - - expect(createAsyncRecallTranscriptMock).not.toHaveBeenCalled(); - expect(listRecallTranscriptsMock).not.toHaveBeenCalled(); - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - audio: [{ fileId: 'file-audio-1', label: 'audio.mp3' }], - video: [{ fileId: 'file-video-1', label: 'video.mp4' }], - }, - }, - { - id: 'call-recording-1', - data: { status: 'COMPLETED' }, - }, - ]); - expect(chargeCompletedCallRecordingMock).toHaveBeenCalledWith({ - callRecordingId: 'call-recording-1', - startedAt: '2026-06-09T13:02:00.000Z', - endedAt: '2026-06-09T14:00:00.000Z', - }); - expect(result).toEqual({ - candidateCount: 1, - updatedCallRecordingIds: ['call-recording-1'], - markedFailedCallRecordingIds: [], - requestedTranscriptCallRecordingIds: [], - unconvergeableCallRecordingIds: [], - skippedNotStartedCallRecordingIds: [], - }); - }); - - it('skips records whose meeting has not started yet', async () => { - const client = buildClient([ - buildStuckRecordingNode({ - calendarEvent: { - startsAt: '2026-06-10T12:30:00.000Z', - endsAt: '2026-06-10T13:30:00.000Z', - }, - }), - ]); - - const result = await convergeDivergedCallRecordings({ - client: client as unknown as CoreApiClient, - now: NOW, - }); - - expect(getRecallBotMock).not.toHaveBeenCalled(); - expect(client.mutations).toEqual([]); - expect(result.skippedNotStartedCallRecordingIds).toEqual([ - 'call-recording-1', - ]); - }); - - it('converges a meeting that ended early while its scheduled end is still in the future', async () => { - getRecallBotMock.mockResolvedValue({ - ok: true, - bot: { - status_changes: [ - { code: 'done', created_at: '2026-06-10T11:30:00.000Z' }, - ], - recordings: [ - { - id: 'recall-recording-1', - started_at: '2026-06-10T11:05:00.000Z', - completed_at: '2026-06-10T11:25:00.000Z', - }, - ], - }, - }); - const client = buildClient([ - buildStuckRecordingNode({ - calendarEvent: { - startsAt: '2026-06-10T11:00:00.000Z', - endsAt: '2026-06-10T13:00:00.000Z', - }, - }), - ]); - - const result = await convergeDivergedCallRecordings({ - client: client as unknown as CoreApiClient, - now: NOW, - }); - - expect(getRecallBotMock).toHaveBeenCalledWith({ - externalBotId: 'recall-bot-1', - }); - expect(result.updatedCallRecordingIds).toEqual(['call-recording-1']); - expect(result.skippedNotStartedCallRecordingIds).toEqual([]); - }); - - it('marks FAILED without clearing the bot id when Recall returns 404', async () => { - getRecallBotMock.mockResolvedValue({ - ok: false, - status: 404, - errorMessage: 'Recall API responded with HTTP 404', - }); - const client = buildClient([buildStuckRecordingNode()]); - - const result = await convergeDivergedCallRecordings({ - client: client as unknown as CoreApiClient, - now: NOW, - }); - - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - status: 'FAILED', - meetingBotFailureReason: 'recall_bot_not_found', - }, - }, - ]); - expect(result.markedFailedCallRecordingIds).toEqual(['call-recording-1']); - expect(console.warn).toHaveBeenCalled(); - }); - - it('does not downgrade a COMPLETED record when its bot 404s', async () => { - getRecallBotMock.mockResolvedValue({ - ok: false, - status: 404, - errorMessage: 'Recall API responded with HTTP 404', - }); - const client = buildClient([ - buildStuckRecordingNode({ - status: 'COMPLETED', - startedAt: '2026-06-09T13:02:00.000Z', - transcript: [{ participant: { id: 1 }, words: [] }], - }), - ]); - - const result = await convergeDivergedCallRecordings({ - client: client as unknown as CoreApiClient, - now: NOW, - }); - - expect(client.mutations).toEqual([]); - expect(result.unconvergeableCallRecordingIds).toEqual(['call-recording-1']); - }); - - it('logs candidates whose meeting ended before the lookback bound instead of converging them', async () => { - const client = buildClient([ - buildStuckRecordingNode({ - calendarEvent: { endsAt: '2026-06-01T13:00:00.000Z' }, - }), - ]); - - const result = await convergeDivergedCallRecordings({ - client: client as unknown as CoreApiClient, - now: NOW, - }); - - expect(getRecallBotMock).not.toHaveBeenCalled(); - expect(client.mutations).toEqual([]); - expect(result.unconvergeableCallRecordingIds).toEqual(['call-recording-1']); - expect(console.warn).toHaveBeenCalled(); - }); - - it('converges candidates created long before a recently ended meeting', async () => { - getRecallBotMock.mockResolvedValue({ - ok: true, - bot: { - status_changes: [ - { code: 'in_call_recording', created_at: '2026-06-09T13:02:00.000Z' }, - ], - }, - }); - const client = buildClient([ - buildStuckRecordingNode({ - createdAt: '2026-06-01T12:00:00.000Z', - startedAt: '2026-06-09T13:02:00.000Z', - }), - ]); - - const result = await convergeDivergedCallRecordings({ - client: client as unknown as CoreApiClient, - now: NOW, - }); - - expect(getRecallBotMock).toHaveBeenCalledWith({ - externalBotId: 'recall-bot-1', - }); - expect(result.unconvergeableCallRecordingIds).toEqual([]); - }); - - it('applies the downgrade guard to pulled statuses while still filling timestamps', async () => { - getRecallBotMock.mockResolvedValue({ - ok: true, - bot: { - status_changes: [ - { code: 'in_call_recording', created_at: '2026-06-09T13:02:00.000Z' }, - ], - recordings: [ - { id: 'recall-recording-1', started_at: '2026-06-09T13:02:00.000Z' }, - ], - }, - }); - const client = buildClient([ - buildStuckRecordingNode({ status: 'PROCESSING' }), - ]); - - await convergeDivergedCallRecordings({ - client: client as unknown as CoreApiClient, - now: NOW, - }); - - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - startedAt: '2026-06-09T13:02:00.000Z', - externalRecordingId: 'recall-recording-1', - }, - }, - ]); - }); - - it('requests a transcript for a COMPLETED candidate that has none', async () => { - getRecallBotMock.mockResolvedValue({ - ok: true, - bot: { - status_changes: [ - { code: 'done', created_at: '2026-06-09T14:05:00.000Z' }, - ], - recordings: [ - { - id: 'recall-recording-1', - started_at: '2026-06-09T13:02:00.000Z', - completed_at: '2026-06-09T14:00:00.000Z', - }, - ], - }, - }); - const client = buildClient([ - buildStuckRecordingNode({ - status: 'COMPLETED', - startedAt: '2026-06-09T13:02:00.000Z', - externalRecordingId: 'recall-recording-1', - }), - ]); - - const result = await convergeDivergedCallRecordings({ - client: client as unknown as CoreApiClient, - now: NOW, - }); - - expect(createAsyncRecallTranscriptMock).toHaveBeenCalledTimes(1); - expect(createAsyncRecallTranscriptMock).toHaveBeenCalledWith({ - externalRecordingId: 'recall-recording-1', - callRecordingId: 'call-recording-1', - }); - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - endedAt: '2026-06-09T14:00:00.000Z', - transcript: { - recallTranscriptId: 'recall-transcript-1', - status: 'PENDING', - requestedAt: NOW.toISOString(), - }, - }, - }, - ]); - expect(result.requestedTranscriptCallRecordingIds).toEqual([ - 'call-recording-1', - ]); - }); - - it('does not create a duplicate transcript when Recall already has one processing', async () => { - getRecallBotMock.mockResolvedValue({ - ok: true, - bot: { - status_changes: [ - { code: 'done', created_at: '2026-06-09T14:05:00.000Z' }, - ], - recordings: [ - { - id: 'recall-recording-1', - started_at: '2026-06-09T13:02:00.000Z', - completed_at: '2026-06-09T14:00:00.000Z', - }, - ], - }, - }); - listRecallTranscriptsMock.mockResolvedValue({ - ok: true, - transcripts: [ - { - id: 'recall-transcript-1', - statusCode: 'processing', - statusSubCode: undefined, - }, - ], - }); - const client = buildClient([buildStuckRecordingNode()]); - - const result = await convergeDivergedCallRecordings({ - client: client as unknown as CoreApiClient, - now: NOW, - }); - - expect(createAsyncRecallTranscriptMock).not.toHaveBeenCalled(); - expect(downloadTranscriptMock).not.toHaveBeenCalled(); - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - status: 'PROCESSING', - startedAt: '2026-06-09T13:02:00.000Z', - endedAt: '2026-06-09T14:00:00.000Z', - externalRecordingId: 'recall-recording-1', - }, - }, - ]); - expect(result.requestedTranscriptCallRecordingIds).toEqual([]); - }); - - it('fills a completed Recall transcript artifact during convergence', async () => { - const transcriptContent = [ - { - participant: { id: 1, name: 'Ada' }, - words: [{ text: 'hello', start_timestamp: 1, end_timestamp: 2 }], - }, - ]; - - getRecallBotMock.mockResolvedValue({ - ok: true, - bot: { - status_changes: [ - { code: 'done', created_at: '2026-06-09T14:05:00.000Z' }, - ], - recordings: [ - { - id: 'recall-recording-1', - started_at: '2026-06-09T13:02:00.000Z', - completed_at: '2026-06-09T14:00:00.000Z', - }, - ], - }, - }); - listRecallTranscriptsMock.mockResolvedValue({ - ok: true, - transcripts: [ - { - id: 'recall-transcript-1', - statusCode: 'done', - statusSubCode: undefined, - }, - ], - }); - downloadTranscriptMock.mockResolvedValue({ - outcome: 'filled', - content: transcriptContent, - }); - const client = buildClient([ - buildStuckRecordingNode({ - status: 'PROCESSING', - startedAt: '2026-06-09T13:02:00.000Z', - endedAt: '2026-06-09T14:00:00.000Z', - externalRecordingId: 'recall-recording-1', - transcript: { - recallTranscriptId: 'legacy-pending-transcript', - status: 'PENDING', - requestedAt: '2026-06-09T14:05:30.000Z', - }, - audio: [{ fileId: 'file-audio-1', label: 'audio.mp3' }], - video: [{ fileId: 'file-video-1', label: 'video.mp4' }], - }), - ]); - - const result = await convergeDivergedCallRecordings({ - client: client as unknown as CoreApiClient, - now: NOW, - }); - - expect(createAsyncRecallTranscriptMock).not.toHaveBeenCalled(); - expect(downloadTranscriptMock).toHaveBeenCalledWith({ - transcriptId: 'recall-transcript-1', - }); - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { transcript: transcriptContent }, - }, - { - id: 'call-recording-1', - data: { status: 'COMPLETED' }, - }, - ]); - expect(chargeCompletedCallRecordingMock).toHaveBeenCalledWith({ - callRecordingId: 'call-recording-1', - startedAt: '2026-06-09T13:02:00.000Z', - endedAt: '2026-06-09T14:00:00.000Z', - }); - expect(result.requestedTranscriptCallRecordingIds).toEqual([]); - }); - - it('marks the call recording failed when Recall has a failed transcript artifact', async () => { - getRecallBotMock.mockResolvedValue({ - ok: true, - bot: { - status_changes: [ - { code: 'done', created_at: '2026-06-09T14:05:00.000Z' }, - ], - recordings: [ - { - id: 'recall-recording-1', - started_at: '2026-06-09T13:02:00.000Z', - completed_at: '2026-06-09T14:00:00.000Z', - }, - ], - }, - }); - listRecallTranscriptsMock.mockResolvedValue({ - ok: true, - transcripts: [ - { - id: 'recall-transcript-1', - statusCode: 'failed', - statusSubCode: 'audio_missing', - }, - ], - }); - const client = buildClient([ - buildStuckRecordingNode({ - status: 'PROCESSING', - startedAt: '2026-06-09T13:02:00.000Z', - endedAt: '2026-06-09T14:00:00.000Z', - externalRecordingId: 'recall-recording-1', - }), - ]); - - const result = await convergeDivergedCallRecordings({ - client: client as unknown as CoreApiClient, - now: NOW, - }); - - expect(createAsyncRecallTranscriptMock).not.toHaveBeenCalled(); - expect(downloadTranscriptMock).not.toHaveBeenCalled(); - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - status: 'FAILED', - transcript: { - recallTranscriptId: 'recall-transcript-1', - status: 'FAILED', - subCode: 'audio_missing', - }, - meetingBotFailureReason: 'transcript_failed:audio_missing', - }, - }, - ]); - expect(result.requestedTranscriptCallRecordingIds).toEqual([]); - }); - - it('does not mutate a record the bot state agrees with', async () => { - getRecallBotMock.mockResolvedValue({ - ok: true, - bot: { - status_changes: [ - { code: 'in_call_recording', created_at: '2026-06-09T13:02:00.000Z' }, - ], - }, - }); - const client = buildClient([ - buildStuckRecordingNode({ startedAt: '2026-06-09T13:02:00.000Z' }), - ]); - - const result = await convergeDivergedCallRecordings({ - client: client as unknown as CoreApiClient, - now: NOW, - }); - - expect(client.mutations).toEqual([]); - expect(result.updatedCallRecordingIds).toEqual([]); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/download-transcript.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/download-transcript.test.ts deleted file mode 100644 index bc1b7f0ee3af4..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/download-transcript.test.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { beforeEach, describe, expect, it, vi } from 'vitest'; - -import { downloadTranscript } from 'src/logic-functions/flows/download-transcript.util'; - -const retrieveRecallTranscriptMock = vi.hoisted(() => vi.fn()); - -vi.mock( - 'src/logic-functions/recall-api/retrieve-recall-transcript.util', - () => ({ - retrieveRecallTranscript: retrieveRecallTranscriptMock, - }), -); - -describe('downloadTranscript', () => { - const fetchMock = vi.fn(); - - beforeEach(() => { - vi.spyOn(console, 'warn').mockImplementation(() => {}); - retrieveRecallTranscriptMock.mockReset(); - fetchMock.mockReset(); - vi.stubGlobal('fetch', fetchMock); - }); - - it('downloads transcript content with a timeout', async () => { - const transcriptContent = [{ participant: { id: 1 }, words: [] }]; - - retrieveRecallTranscriptMock.mockResolvedValue({ - ok: true, - transcript: { - downloadUrl: 'https://recall-transcripts.example.com/transcript-1', - statusCode: 'done', - statusSubCode: undefined, - }, - }); - fetchMock.mockResolvedValue({ - ok: true, - json: async () => transcriptContent, - }); - - const result = await downloadTranscript({ - transcriptId: 'recall-transcript-1', - }); - - expect(result).toEqual({ outcome: 'filled', content: transcriptContent }); - expect(fetchMock).toHaveBeenCalledWith( - 'https://recall-transcripts.example.com/transcript-1', - expect.objectContaining({ - signal: expect.any(AbortSignal), - }), - ); - }); - - it('logs raw download failures but returns a generic error', async () => { - retrieveRecallTranscriptMock.mockResolvedValue({ - ok: true, - transcript: { - downloadUrl: 'https://recall-transcripts.example.com/transcript-1', - statusCode: 'done', - statusSubCode: undefined, - }, - }); - fetchMock.mockRejectedValue(new Error('socket leaked detail')); - - await expect( - downloadTranscript({ transcriptId: 'recall-transcript-1' }), - ).resolves.toEqual({ - outcome: 'error', - errorMessage: 'transcript download failed', - }); - expect(console.warn).toHaveBeenCalledWith( - expect.stringContaining('socket leaked detail'), - ); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/handle-recall-webhook.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/handle-recall-webhook.test.ts deleted file mode 100644 index ae2e85b9aaead..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/handle-recall-webhook.test.ts +++ /dev/null @@ -1,1286 +0,0 @@ -import { type CoreApiClient } from 'twenty-client-sdk/core'; -import { beforeEach, describe, expect, it, vi } from 'vitest'; - -import { handleRecallWebhook } from 'src/logic-functions/flows/handle-recall-webhook.util'; - -const WORKSPACE_ID = '123e4567-e89b-12d3-a456-426614174000'; - -const buildRecordingDoneWebhookBody = () => ({ - event: 'recording.done', - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyWorkspaceId: WORKSPACE_ID, - }, - }, - recording: { - id: 'recall-recording-1', - }, - }, -}); - -const getRecallBotMock = vi.hoisted(() => vi.fn()); -const listRecallTranscriptsMock = vi.hoisted(() => vi.fn()); -const createAsyncRecallTranscriptMock = vi.hoisted(() => vi.fn()); -const retrieveRecallTranscriptMock = vi.hoisted(() => vi.fn()); -const ingestCallRecordingMediaMock = vi.hoisted(() => vi.fn()); -const chargeCompletedCallRecordingMock = vi.hoisted(() => vi.fn()); - -vi.mock('src/logic-functions/recall-api/get-recall-bot.util', () => ({ - getRecallBot: getRecallBotMock, -})); - -vi.mock('src/logic-functions/recall-api/list-recall-transcripts.util', () => ({ - listRecallTranscripts: listRecallTranscriptsMock, -})); - -vi.mock( - 'src/logic-functions/recall-api/create-async-recall-transcript.util', - () => ({ - createAsyncRecallTranscript: createAsyncRecallTranscriptMock, - }), -); - -vi.mock( - 'src/logic-functions/recall-api/retrieve-recall-transcript.util', - () => ({ - retrieveRecallTranscript: retrieveRecallTranscriptMock, - }), -); - -vi.mock('src/logic-functions/flows/ingest-call-recording-media.util', () => ({ - ingestCallRecordingMedia: ingestCallRecordingMediaMock, -})); - -vi.mock( - 'src/logic-functions/flows/charge-completed-call-recording.util', - () => ({ - chargeCompletedCallRecording: chargeCompletedCallRecordingMock, - }), -); - -type CallRecordingNode = { - id: string; - status?: string | null; - externalBotId?: string | null; - externalRecordingId?: string | null; - startedAt?: string | null; - endedAt?: string | null; - transcript?: unknown; - audio?: unknown; - video?: unknown; -}; - -class FakeCoreApiClient { - callRecordings: CallRecordingNode[]; - mutations: Array<{ id: string; data: Record }> = []; - - constructor(callRecordings: CallRecordingNode[]) { - this.callRecordings = callRecordings; - } - - async query(query: any): Promise { - if (query.callRecordings !== undefined) { - const filter = query.callRecordings.__args.filter; - - return { - callRecordings: { - edges: this.filterCallRecordings(filter).map((callRecording) => ({ - node: callRecording, - })), - }, - }; - } - - throw new Error(`Unhandled query: ${JSON.stringify(query)}`); - } - - async mutation(mutation: any): Promise { - if (mutation.updateCallRecordings !== undefined) { - const { filter, data } = mutation.updateCallRecordings.__args; - const id = filter.id.eq; - - this.mutations.push({ id, data }); - - return { updateCallRecordings: [{ id }] }; - } - - if (mutation.updateCallRecording !== undefined) { - const { id, data } = mutation.updateCallRecording.__args; - - this.mutations.push({ id, data }); - - return { - updateCallRecording: { - id, - }, - }; - } - - throw new Error(`Unhandled mutation: ${JSON.stringify(mutation)}`); - } - - private filterCallRecordings(filter: any): CallRecordingNode[] { - if (filter.id?.eq !== undefined) { - return this.callRecordings.filter( - (callRecording) => callRecording.id === filter.id.eq, - ); - } - - if (filter.externalBotId?.eq !== undefined) { - return this.callRecordings.filter( - (callRecording) => - callRecording.externalBotId === filter.externalBotId.eq, - ); - } - - throw new Error( - `Unhandled call recording filter: ${JSON.stringify(filter)}`, - ); - } -} - -describe('handleRecallWebhook', () => { - beforeEach(() => { - vi.spyOn(console, 'warn').mockImplementation(() => {}); - getRecallBotMock.mockReset(); - getRecallBotMock.mockResolvedValue({ - ok: false, - status: null, - errorMessage: 'bot fetch disabled in test', - }); - listRecallTranscriptsMock.mockReset(); - listRecallTranscriptsMock.mockResolvedValue({ - ok: true, - transcripts: [], - }); - createAsyncRecallTranscriptMock.mockReset(); - createAsyncRecallTranscriptMock.mockResolvedValue({ - ok: false, - status: null, - errorMessage: 'transcript request disabled in test', - }); - retrieveRecallTranscriptMock.mockReset(); - retrieveRecallTranscriptMock.mockResolvedValue({ - ok: false, - status: null, - errorMessage: 'transcript retrieval disabled in test', - }); - ingestCallRecordingMediaMock.mockReset(); - ingestCallRecordingMediaMock.mockResolvedValue({}); - chargeCompletedCallRecordingMock.mockReset(); - chargeCompletedCallRecordingMock.mockResolvedValue(undefined); - }); - - it('updates a call recording from bot metadata on status change events', async () => { - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'JOINING', - externalBotId: 'recall-bot-1', - }, - ]); - - const result = await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'bot.status_change', - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyCallRecordingId: 'call-recording-1', - }, - }, - status: { - code: 'in_call_recording', - }, - }, - }, - }); - - expect(result).toEqual({ - status: 'updated', - event: 'bot.status_change', - callRecordingId: 'call-recording-1', - callRecordingStatus: 'RECORDING', - }); - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - status: 'RECORDING', - externalBotId: 'recall-bot-1', - }, - }, - ]); - }); - - it('reads bot metadata nested under data when a top-level bot has none', async () => { - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'JOINING', - externalBotId: 'recall-bot-1', - }, - ]); - - const result = await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'bot.status_change', - bot: { - id: 'recall-bot-1', - }, - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyCallRecordingId: 'call-recording-1', - }, - }, - status: { - code: 'in_call_recording', - }, - }, - }, - }); - - expect(result).toEqual({ - status: 'updated', - event: 'bot.status_change', - callRecordingId: 'call-recording-1', - callRecordingStatus: 'RECORDING', - }); - }); - - it('matches by metadata id when the recording carries no external bot id', async () => { - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'SCHEDULED', - externalBotId: null, - }, - ]); - - const result = await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'bot.status_change', - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyCallRecordingId: 'call-recording-1', - }, - }, - status: { - code: 'in_call_recording', - }, - }, - }, - }); - - expect(result).toEqual({ - status: 'updated', - event: 'bot.status_change', - callRecordingId: 'call-recording-1', - callRecordingStatus: 'RECORDING', - }); - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - status: 'RECORDING', - externalBotId: 'recall-bot-1', - }, - }, - ]); - }); - - it('prefers the metadata id over a different recording carrying the bot id', async () => { - const client = new FakeCoreApiClient([ - { - id: 'call-recording-stale', - status: 'SCHEDULED', - externalBotId: 'recall-bot-1', - }, - { - id: 'call-recording-current', - status: 'SCHEDULED', - externalBotId: null, - }, - ]); - - const result = await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'bot.status_change', - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyCallRecordingId: 'call-recording-current', - }, - }, - status: { - code: 'in_call_recording', - }, - }, - }, - }); - - expect(result).toEqual({ - status: 'updated', - event: 'bot.status_change', - callRecordingId: 'call-recording-current', - callRecordingStatus: 'RECORDING', - }); - expect(client.mutations).toEqual([ - { - id: 'call-recording-current', - data: { - status: 'RECORDING', - externalBotId: 'recall-bot-1', - }, - }, - ]); - }); - - it('falls back to external bot id matching when call recording metadata is absent', async () => { - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - }, - ]); - - const result = await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'recording.done', - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyWorkspaceId: WORKSPACE_ID, - }, - }, - recording: { - id: 'recall-recording-1', - }, - }, - }, - }); - - expect(result).toEqual({ - status: 'updated', - event: 'recording.done', - callRecordingId: 'call-recording-1', - callRecordingStatus: 'PROCESSING', - }); - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - externalRecordingId: 'recall-recording-1', - }, - }, - ]); - }); - - it('fills startedAt from the status timestamp when the bot starts recording', async () => { - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'JOINING', - externalBotId: 'recall-bot-1', - }, - ]); - - const result = await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'bot.status_change', - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyCallRecordingId: 'call-recording-1', - }, - }, - status: { - code: 'in_call_recording', - created_at: '2026-01-01T13:02:00.000Z', - }, - }, - }, - }); - - expect(result).toEqual({ - status: 'updated', - event: 'bot.status_change', - callRecordingId: 'call-recording-1', - callRecordingStatus: 'RECORDING', - }); - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - status: 'RECORDING', - externalBotId: 'recall-bot-1', - startedAt: '2026-01-01T13:02:00.000Z', - }, - }, - ]); - }); - - it('fills endedAt from the status timestamp when the recording is done', async () => { - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - startedAt: '2026-01-01T13:02:00.000Z', - }, - ]); - - const result = await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'bot.status_change', - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyCallRecordingId: 'call-recording-1', - }, - }, - status: { - code: 'done', - created_at: '2026-01-01T14:05:00.000Z', - }, - }, - }, - }); - - expect(result).toEqual({ - status: 'updated', - event: 'bot.status_change', - callRecordingId: 'call-recording-1', - callRecordingStatus: 'PROCESSING', - }); - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - endedAt: '2026-01-01T14:05:00.000Z', - }, - }, - ]); - }); - - it('normalizes microsecond-precision Recall timestamps before writing them', async () => { - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - startedAt: '2026-06-10T11:02:00.000Z', - }, - ]); - - await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'bot.status_change', - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyCallRecordingId: 'call-recording-1', - }, - }, - status: { - code: 'done', - created_at: '2026-06-10T12:17:28.281597+00:00', - }, - }, - }, - }); - - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - endedAt: '2026-06-10T12:17:28.281Z', - }, - }, - ]); - }); - - it('does not overwrite an already-set startedAt on a redelivered recording event', async () => { - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'RECORDING', - externalBotId: 'recall-bot-1', - startedAt: '2026-01-01T13:02:00.000Z', - }, - ]); - - await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'bot.status_change', - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyCallRecordingId: 'call-recording-1', - }, - }, - status: { - code: 'in_call_recording', - created_at: '2026-01-01T13:09:00.000Z', - }, - }, - }, - }); - - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - status: 'RECORDING', - externalBotId: 'recall-bot-1', - }, - }, - ]); - }); - - it('does not overwrite an already-set endedAt on a redelivered done event', async () => { - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - startedAt: '2026-01-01T13:02:00.000Z', - endedAt: '2026-01-01T14:05:00.000Z', - transcript: { - recallTranscriptId: 'recall-transcript-1', - status: 'PENDING', - requestedAt: '2026-01-01T14:06:00.000Z', - }, - }, - ]); - - await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'bot.status_change', - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyCallRecordingId: 'call-recording-1', - }, - }, - status: { - code: 'done', - created_at: '2026-01-01T14:11:00.000Z', - }, - }, - }, - }); - - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - }, - }, - ]); - }); - - it('skips a late done event once the recording is COMPLETED', async () => { - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'COMPLETED', - externalBotId: 'recall-bot-1', - startedAt: '2026-01-01T13:02:00.000Z', - endedAt: '2026-01-01T14:05:00.000Z', - }, - ]); - - const result = await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'bot.status_change', - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyCallRecordingId: 'call-recording-1', - }, - }, - status: { - code: 'done', - created_at: '2026-01-01T14:11:00.000Z', - }, - }, - }, - }); - - expect(result).toEqual({ - status: 'skipped', - event: 'bot.status_change', - reason: 'stale status event (COMPLETED -> PROCESSING)', - }); - expect(client.mutations).toEqual([]); - }); - - it('skips out-of-order events that would move the status backwards', async () => { - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'COMPLETED', - externalBotId: 'recall-bot-1', - }, - ]); - - const result = await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'bot.status_change', - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyCallRecordingId: 'call-recording-1', - }, - }, - status: { - code: 'in_call_recording', - }, - }, - }, - }); - - expect(result).toEqual({ - status: 'skipped', - event: 'bot.status_change', - reason: 'stale status event (COMPLETED -> RECORDING)', - }); - expect(client.mutations).toEqual([]); - }); - - it('skips events whose metadata points at a missing call recording', async () => { - const client = new FakeCoreApiClient([]); - - const result = await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'bot.status_change', - data: { - bot: { - metadata: { - twentyCallRecordingId: 'call-recording-deleted', - }, - }, - status: { - code: 'in_call_recording', - }, - }, - }, - }); - - expect(result).toEqual({ - status: 'skipped', - event: 'bot.status_change', - reason: 'no matching call recording', - }); - expect(client.mutations).toEqual([]); - }); - - it('skips unsupported events', async () => { - const client = new FakeCoreApiClient([]); - - const result = await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'participant_events.done', - data: {}, - }, - }); - - expect(result).toEqual({ - status: 'skipped', - event: 'participant_events.done', - reason: 'unsupported Recall event status participant_events.done', - }); - expect(client.mutations).toEqual([]); - }); - - it('requests a transcript once when the recording first completes', async () => { - createAsyncRecallTranscriptMock.mockResolvedValue({ - ok: true, - transcriptId: 'recall-transcript-1', - }); - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - transcript: null, - }, - ]); - - await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: buildRecordingDoneWebhookBody(), - }); - - expect(createAsyncRecallTranscriptMock).toHaveBeenCalledTimes(1); - expect(createAsyncRecallTranscriptMock).toHaveBeenCalledWith({ - externalRecordingId: 'recall-recording-1', - callRecordingId: 'call-recording-1', - }); - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - externalRecordingId: 'recall-recording-1', - transcript: { - recallTranscriptId: 'recall-transcript-1', - status: 'PENDING', - requestedAt: expect.any(String), - }, - }, - }, - ]); - }); - - it('does not re-request a transcript on a redelivered done event while Recall list is stale', async () => { - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - externalRecordingId: 'recall-recording-1', - transcript: { - recallTranscriptId: 'recall-transcript-1', - status: 'PENDING', - requestedAt: '2026-01-01T14:06:00.000Z', - }, - }, - ]); - - await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: buildRecordingDoneWebhookBody(), - }); - - expect(createAsyncRecallTranscriptMock).not.toHaveBeenCalled(); - expect(listRecallTranscriptsMock).toHaveBeenCalledWith({ - externalRecordingId: 'recall-recording-1', - }); - expect(retrieveRecallTranscriptMock).toHaveBeenCalledWith({ - transcriptId: 'recall-transcript-1', - }); - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - externalRecordingId: 'recall-recording-1', - }, - }, - ]); - }); - - it('resolves the recording id from the bot when the payload and record lack one', async () => { - getRecallBotMock.mockResolvedValue({ - ok: true, - bot: { - recordings: [{ id: 'recall-recording-9' }], - }, - }); - createAsyncRecallTranscriptMock.mockResolvedValue({ - ok: true, - transcriptId: 'recall-transcript-9', - }); - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - transcript: null, - }, - ]); - - await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'bot.status_change', - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyCallRecordingId: 'call-recording-1', - }, - }, - status: { - code: 'done', - }, - }, - }, - }); - - expect(getRecallBotMock).toHaveBeenCalledWith({ - externalBotId: 'recall-bot-1', - }); - expect(createAsyncRecallTranscriptMock).toHaveBeenCalledWith({ - externalRecordingId: 'recall-recording-9', - callRecordingId: 'call-recording-1', - }); - expect(client.mutations).toEqual([ - expect.objectContaining({ - id: 'call-recording-1', - data: expect.objectContaining({ - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - externalRecordingId: 'recall-recording-9', - }), - }), - ]); - }); - - it('ingests media on recording.done and completes once all artifacts are present', async () => { - getRecallBotMock.mockResolvedValue({ - ok: true, - bot: { id: 'recall-bot-1' }, - }); - ingestCallRecordingMediaMock.mockResolvedValue({ - audio: [{ fileId: 'file-audio-1', label: 'audio.mp3' }], - video: [{ fileId: 'file-video-1', label: 'video.mp4' }], - }); - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - externalRecordingId: 'recall-recording-1', - startedAt: '2026-01-01T13:02:00.000Z', - endedAt: '2026-01-01T14:05:00.000Z', - transcript: [{ participant: { id: 1 }, words: [] }], - }, - ]); - - await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: buildRecordingDoneWebhookBody(), - }); - - expect(ingestCallRecordingMediaMock).toHaveBeenCalledWith({ - callRecordingId: 'call-recording-1', - externalRecordingId: 'recall-recording-1', - hasAudio: false, - hasVideo: false, - }); - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - externalBotId: 'recall-bot-1', - externalRecordingId: 'recall-recording-1', - audio: [{ fileId: 'file-audio-1', label: 'audio.mp3' }], - video: [{ fileId: 'file-video-1', label: 'video.mp4' }], - }, - }, - { - id: 'call-recording-1', - data: { status: 'COMPLETED' }, - }, - ]); - expect(chargeCompletedCallRecordingMock).toHaveBeenCalledWith({ - callRecordingId: 'call-recording-1', - startedAt: '2026-01-01T13:02:00.000Z', - endedAt: '2026-01-01T14:05:00.000Z', - }); - }); - - it('stays PROCESSING on recording.done while artifacts are missing', async () => { - getRecallBotMock.mockResolvedValue({ - ok: true, - bot: { id: 'recall-bot-1' }, - }); - ingestCallRecordingMediaMock.mockResolvedValue({ - audio: [{ fileId: 'file-audio-1', label: 'audio.mp3' }], - }); - createAsyncRecallTranscriptMock.mockResolvedValue({ - ok: true, - transcriptId: 'recall-transcript-1', - }); - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - startedAt: '2026-01-01T13:02:00.000Z', - endedAt: '2026-01-01T14:05:00.000Z', - transcript: null, - }, - ]); - - await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: buildRecordingDoneWebhookBody(), - }); - - expect(createAsyncRecallTranscriptMock).toHaveBeenCalledWith({ - externalRecordingId: 'recall-recording-1', - callRecordingId: 'call-recording-1', - }); - expect(client.mutations).toEqual([ - expect.objectContaining({ - id: 'call-recording-1', - data: expect.objectContaining({ - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - externalRecordingId: 'recall-recording-1', - audio: [{ fileId: 'file-audio-1', label: 'audio.mp3' }], - }), - }), - ]); - expect(chargeCompletedCallRecordingMock).not.toHaveBeenCalled(); - }); - - it('marks FAILED on recording.done when no recording artifact path exists', async () => { - getRecallBotMock.mockResolvedValue({ - ok: true, - bot: { id: 'recall-bot-1', recordings: [] }, - }); - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - startedAt: '2026-01-01T13:02:00.000Z', - endedAt: '2026-01-01T14:05:00.000Z', - transcript: null, - }, - ]); - - const result = await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'recording.done', - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyWorkspaceId: WORKSPACE_ID, - }, - }, - }, - }, - }); - - expect(result).toEqual({ - status: 'updated', - event: 'recording.done', - callRecordingId: 'call-recording-1', - callRecordingStatus: 'FAILED', - }); - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - status: 'FAILED', - externalBotId: 'recall-bot-1', - meetingBotFailureReason: 'recording_artifacts_unavailable', - }, - }, - ]); - expect(chargeCompletedCallRecordingMock).not.toHaveBeenCalled(); - }); - - it('completes and charges on transcript.done when media is already ingested', async () => { - const transcriptContent = [ - { - participant: { id: 1, name: 'Alice' }, - words: [{ text: 'hello', start_timestamp: { relative: 0.5 } }], - }, - ]; - - retrieveRecallTranscriptMock.mockResolvedValue({ - ok: true, - transcript: { - downloadUrl: 'https://recall-transcripts.example.com/transcript-1', - statusCode: 'done', - statusSubCode: null, - }, - }); - vi.stubGlobal( - 'fetch', - vi.fn().mockResolvedValue({ - ok: true, - json: async () => transcriptContent, - }), - ); - - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - externalRecordingId: 'recall-recording-1', - startedAt: '2026-01-01T13:02:00.000Z', - endedAt: '2026-01-01T14:05:00.000Z', - transcript: { - recallTranscriptId: 'recall-transcript-1', - status: 'PENDING', - requestedAt: '2026-01-01T14:06:00.000Z', - }, - audio: [{ fileId: 'file-audio-1', label: 'audio.mp3' }], - video: [{ fileId: 'file-video-1', label: 'video.mp4' }], - }, - ]); - - const result = await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'transcript.done', - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyCallRecordingId: 'call-recording-1', - }, - }, - transcript: { - id: 'recall-transcript-1', - }, - }, - }, - }); - - expect(result).toEqual({ - status: 'updated', - event: 'transcript.done', - callRecordingId: 'call-recording-1', - transcriptOutcome: 'FILLED', - }); - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { transcript: transcriptContent }, - }, - { - id: 'call-recording-1', - data: { status: 'COMPLETED' }, - }, - ]); - expect(chargeCompletedCallRecordingMock).toHaveBeenCalledWith({ - callRecordingId: 'call-recording-1', - startedAt: '2026-01-01T13:02:00.000Z', - endedAt: '2026-01-01T14:05:00.000Z', - }); - - vi.unstubAllGlobals(); - }); - - it('fills the transcript from the download URL on transcript.done', async () => { - const transcriptContent = [ - { - participant: { id: 1, name: 'Alice' }, - words: [{ text: 'hello', start_timestamp: { relative: 0.5 } }], - }, - ]; - - retrieveRecallTranscriptMock.mockResolvedValue({ - ok: true, - transcript: { - downloadUrl: 'https://recall-transcripts.example.com/transcript-1', - statusCode: 'done', - statusSubCode: null, - }, - }); - vi.stubGlobal( - 'fetch', - vi.fn().mockResolvedValue({ - ok: true, - json: async () => transcriptContent, - }), - ); - - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'COMPLETED', - externalBotId: 'recall-bot-1', - transcript: { - recallTranscriptId: 'recall-transcript-1', - status: 'PENDING', - requestedAt: '2026-01-01T14:06:00.000Z', - }, - }, - ]); - - const result = await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'transcript.done', - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyCallRecordingId: 'call-recording-1', - }, - }, - transcript: { - id: 'recall-transcript-1', - }, - recording: { - id: 'recall-recording-1', - }, - }, - }, - }); - - expect(result).toEqual({ - status: 'updated', - event: 'transcript.done', - callRecordingId: 'call-recording-1', - transcriptOutcome: 'FILLED', - }); - expect(retrieveRecallTranscriptMock).toHaveBeenCalledWith({ - transcriptId: 'recall-transcript-1', - }); - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - transcript: transcriptContent, - externalRecordingId: 'recall-recording-1', - }, - }, - ]); - expect(chargeCompletedCallRecordingMock).not.toHaveBeenCalled(); - - vi.unstubAllGlobals(); - }); - - it('writes a FAILED marker on transcript.failed', async () => { - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'PROCESSING', - externalBotId: 'recall-bot-1', - externalRecordingId: 'recall-recording-1', - transcript: { - recallTranscriptId: 'recall-transcript-1', - status: 'PENDING', - requestedAt: '2026-01-01T14:06:00.000Z', - }, - }, - ]); - - const result = await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'transcript.failed', - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyCallRecordingId: 'call-recording-1', - }, - }, - transcript: { - id: 'recall-transcript-1', - }, - status: { - sub_code: 'transcription_failed', - }, - }, - }, - }); - - expect(result).toEqual({ - status: 'updated', - event: 'transcript.failed', - callRecordingId: 'call-recording-1', - transcriptOutcome: 'FAILED', - }); - expect(client.mutations).toEqual([ - { - id: 'call-recording-1', - data: { - transcript: { - recallTranscriptId: 'recall-transcript-1', - status: 'FAILED', - subCode: 'transcription_failed', - }, - meetingBotFailureReason: 'transcript_failed:transcription_failed', - status: 'FAILED', - }, - }, - ]); - expect(console.warn).toHaveBeenCalled(); - }); - - it('does not clobber a downloaded transcript with a late transcript.failed', async () => { - const client = new FakeCoreApiClient([ - { - id: 'call-recording-1', - status: 'COMPLETED', - externalBotId: 'recall-bot-1', - transcript: [{ participant: { id: 1 }, words: [] }], - }, - ]); - - const result = await handleRecallWebhook({ - client: client as unknown as CoreApiClient, - body: { - event: 'transcript.failed', - data: { - bot: { - id: 'recall-bot-1', - metadata: { - twentyCallRecordingId: 'call-recording-1', - }, - }, - transcript: { - id: 'recall-transcript-1', - }, - status: { - sub_code: 'transcription_failed', - }, - }, - }, - }); - - expect(result).toEqual({ - status: 'skipped', - event: 'transcript.failed', - reason: 'transcript already filled', - }); - expect(client.mutations).toEqual([]); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/heal-call-recordings-missing-bot.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/heal-call-recordings-missing-bot.test.ts deleted file mode 100644 index 4d732bd9c1c7b..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/heal-call-recordings-missing-bot.test.ts +++ /dev/null @@ -1,225 +0,0 @@ -import { type CoreApiClient } from 'twenty-client-sdk/core'; -import { beforeEach, describe, expect, it, vi } from 'vitest'; - -import { healCallRecordingsMissingBot } from 'src/logic-functions/flows/heal-call-recordings-missing-bot.util'; - -const scheduleRecallBotMock = vi.hoisted(() => vi.fn()); -const getCurrentWorkspaceIdMock = vi.hoisted(() => vi.fn()); - -vi.mock('src/logic-functions/data/get-current-workspace-id.util', () => ({ - getCurrentWorkspaceId: getCurrentWorkspaceIdMock, -})); - -vi.mock('src/logic-functions/recall-api/schedule-recall-bot.util', () => ({ - scheduleRecallBot: scheduleRecallBotMock, -})); - -const NOW = new Date('2026-01-01T12:00:00.000Z'); -const WORKSPACE_ID = '123e4567-e89b-12d3-a456-426614174000'; -const UPCOMING_STARTS_AT = '2026-01-01T13:00:00.000Z'; -const UPCOMING_ENDS_AT = '2026-01-01T14:00:00.000Z'; -const PAST_STARTS_AT = '2026-01-01T10:00:00.000Z'; -const PAST_ENDS_AT = '2026-01-01T11:00:00.000Z'; - -type CallRecordingNode = { - id: string; - status?: string; - recordingRequestStatus?: string | null; - calendarEventId?: string | null; - externalBotId?: string | null; -}; - -type CalendarEventNode = { - id: string; - startsAt?: string | null; - endsAt?: string | null; - iCalUid?: string | null; - conferenceLink?: { primaryLinkUrl?: string | null } | null; -}; - -class FakeCoreApiClient { - callRecordings: CallRecordingNode[]; - calendarEvents: CalendarEventNode[]; - - constructor({ - callRecordings = [], - calendarEvents = [], - }: { - callRecordings?: CallRecordingNode[]; - calendarEvents?: CalendarEventNode[]; - }) { - this.callRecordings = callRecordings; - this.calendarEvents = calendarEvents; - } - - async query(query: any): Promise { - if (query.callRecordings !== undefined) { - const filter = query.callRecordings.__args.filter; - const matches = - filter.id?.in !== undefined - ? this.callRecordings.filter((callRecording) => - filter.id.in.includes(callRecording.id), - ) - : this.callRecordings.filter( - (callRecording) => - callRecording.recordingRequestStatus === - filter.recordingRequestStatus.eq && - callRecording.status === filter.status.eq, - ); - - return { callRecordings: buildConnection(matches) }; - } - - if (query.calendarEvents !== undefined) { - const calendarEventIds = query.calendarEvents.__args.filter.id.in; - - return { - calendarEvents: buildConnection( - this.calendarEvents.filter((calendarEvent) => - calendarEventIds.includes(calendarEvent.id), - ), - ), - }; - } - - throw new Error(`Unhandled query: ${JSON.stringify(query)}`); - } - - async mutation(mutation: any): Promise { - if (mutation.updateCallRecording !== undefined) { - const { id, data } = mutation.updateCallRecording.__args; - const callRecording = this.callRecordings.find( - (candidate) => candidate.id === id, - ); - - if (callRecording !== undefined) { - Object.assign(callRecording, data); - } - - return { updateCallRecording: { id } }; - } - - throw new Error(`Unhandled mutation: ${JSON.stringify(mutation)}`); - } -} - -const buildConnection = (nodes: Node[]) => ({ - pageInfo: { hasNextPage: false, endCursor: undefined }, - edges: nodes.map((node) => ({ node })), -}); - -const buildBotlessCallRecording = ( - overrides: Partial = {}, -): CallRecordingNode => ({ - id: 'call-recording-1', - status: 'SCHEDULED', - recordingRequestStatus: 'REQUESTED', - calendarEventId: 'calendar-event-1', - externalBotId: null, - ...overrides, -}); - -const buildCalendarEvent = ( - overrides: Partial = {}, -): CalendarEventNode => ({ - id: 'calendar-event-1', - startsAt: UPCOMING_STARTS_AT, - endsAt: UPCOMING_ENDS_AT, - iCalUid: 'calendar-event-uid', - conferenceLink: { primaryLinkUrl: 'https://meet.example.com/customer-sync' }, - ...overrides, -}); - -describe('healCallRecordingsMissingBot', () => { - beforeEach(() => { - vi.spyOn(console, 'warn').mockImplementation(() => {}); - getCurrentWorkspaceIdMock.mockReset(); - getCurrentWorkspaceIdMock.mockReturnValue(WORKSPACE_ID); - scheduleRecallBotMock.mockReset(); - scheduleRecallBotMock.mockResolvedValue({ - ok: true, - externalBotId: 'recall-bot-1', - }); - }); - - it('schedules a bot and writes the id for an upcoming botless recording', async () => { - const client = new FakeCoreApiClient({ - callRecordings: [buildBotlessCallRecording()], - calendarEvents: [buildCalendarEvent()], - }); - - const result = await healCallRecordingsMissingBot({ - client: client as unknown as CoreApiClient, - now: NOW, - }); - - expect(result.scheduledCallRecordingIds).toEqual(['call-recording-1']); - expect(scheduleRecallBotMock).toHaveBeenCalledTimes(1); - expect(scheduleRecallBotMock).toHaveBeenCalledWith( - expect.objectContaining({ - metadata: expect.objectContaining({ - twentyWorkspaceId: WORKSPACE_ID, - }), - }), - ); - expect(client.callRecordings[0].externalBotId).toBe('recall-bot-1'); - }); - - it('does not report a recording as scheduled when Recall scheduling fails', async () => { - scheduleRecallBotMock.mockResolvedValue({ - ok: false, - status: 500, - errorMessage: 'Recall API responded with HTTP 500', - }); - const client = new FakeCoreApiClient({ - callRecordings: [buildBotlessCallRecording()], - calendarEvents: [buildCalendarEvent()], - }); - - const result = await healCallRecordingsMissingBot({ - client: client as unknown as CoreApiClient, - now: NOW, - }); - - expect(result.scheduledCallRecordingIds).toEqual([]); - expect(scheduleRecallBotMock).toHaveBeenCalledTimes(1); - expect(client.callRecordings[0].externalBotId).toBeNull(); - }); - - it('skips a recording whose meeting has already ended', async () => { - const client = new FakeCoreApiClient({ - callRecordings: [buildBotlessCallRecording()], - calendarEvents: [ - buildCalendarEvent({ - startsAt: PAST_STARTS_AT, - endsAt: PAST_ENDS_AT, - }), - ], - }); - - const result = await healCallRecordingsMissingBot({ - client: client as unknown as CoreApiClient, - now: NOW, - }); - - expect(result.scheduledCallRecordingIds).toEqual([]); - expect(scheduleRecallBotMock).not.toHaveBeenCalled(); - }); - - it('does nothing when every scheduled recording already has a bot', async () => { - const client = new FakeCoreApiClient({ - callRecordings: [ - buildBotlessCallRecording({ externalBotId: 'recall-bot-existing' }), - ], - calendarEvents: [buildCalendarEvent()], - }); - - const result = await healCallRecordingsMissingBot({ - client: client as unknown as CoreApiClient, - now: NOW, - }); - - expect(result.scheduledCallRecordingIds).toEqual([]); - expect(scheduleRecallBotMock).not.toHaveBeenCalled(); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/ingest-call-recording-media.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/ingest-call-recording-media.test.ts deleted file mode 100644 index 3506fd250552a..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/ingest-call-recording-media.test.ts +++ /dev/null @@ -1,153 +0,0 @@ -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; - -import { ingestCallRecordingMedia } from 'src/logic-functions/flows/ingest-call-recording-media.util'; - -const uploadFileMock = vi.hoisted(() => vi.fn()); -const getRecallRecordingMock = vi.hoisted(() => vi.fn()); - -vi.mock('twenty-client-sdk/metadata', () => ({ - MetadataApiClient: class { - uploadFile = uploadFileMock; - }, -})); - -vi.mock('src/logic-functions/recall-api/get-recall-recording.util', () => ({ - getRecallRecording: getRecallRecordingMock, -})); - -const RECORDING_WITH_MEDIA = { - id: 'recall-recording-1', - media_shortcuts: { - video_mixed: { download_url: 'https://media.example.com/video.mp4' }, - audio_mixed: { download_url: 'https://media.example.com/audio.mp3' }, - }, -}; - -const buildFetchResponse = () => ({ - ok: true, - headers: { get: () => 'video/mp4' }, - arrayBuffer: async () => new ArrayBuffer(8), -}); - -describe('ingestCallRecordingMedia', () => { - beforeEach(() => { - vi.spyOn(console, 'warn').mockImplementation(() => {}); - uploadFileMock.mockReset(); - getRecallRecordingMock.mockReset(); - getRecallRecordingMock.mockResolvedValue({ - ok: true, - recording: RECORDING_WITH_MEDIA, - }); - vi.stubGlobal('fetch', vi.fn().mockResolvedValue(buildFetchResponse())); - }); - - afterEach(() => { - vi.unstubAllGlobals(); - }); - - it('downloads and uploads every missing artifact', async () => { - uploadFileMock - .mockResolvedValueOnce({ id: 'file-video-1' }) - .mockResolvedValueOnce({ id: 'file-audio-1' }); - - const updateFields = await ingestCallRecordingMedia({ - callRecordingId: 'call-recording-1', - externalRecordingId: 'recall-recording-1', - hasAudio: false, - hasVideo: false, - }); - - expect(updateFields).toEqual({ - video: [{ fileId: 'file-video-1', label: 'video.mp4' }], - audio: [{ fileId: 'file-audio-1', label: 'audio.mp3' }], - }); - expect(uploadFileMock).toHaveBeenCalledTimes(2); - }); - - it('skips artifacts already on the record', async () => { - uploadFileMock.mockResolvedValue({ id: 'file-audio-1' }); - - const updateFields = await ingestCallRecordingMedia({ - callRecordingId: 'call-recording-1', - externalRecordingId: 'recall-recording-1', - hasAudio: false, - hasVideo: true, - }); - - expect(updateFields).toEqual({ - audio: [{ fileId: 'file-audio-1', label: 'audio.mp3' }], - }); - expect(uploadFileMock).toHaveBeenCalledTimes(1); - }); - - it('does not fetch the recording when both artifacts are present', async () => { - const updateFields = await ingestCallRecordingMedia({ - callRecordingId: 'call-recording-1', - externalRecordingId: 'recall-recording-1', - hasAudio: true, - hasVideo: true, - }); - - expect(updateFields).toEqual({}); - expect(getRecallRecordingMock).not.toHaveBeenCalled(); - expect(uploadFileMock).not.toHaveBeenCalled(); - }); - - it('omits an artifact and warns when its transfer fails', async () => { - uploadFileMock.mockRejectedValueOnce(new Error('upload exploded')); - uploadFileMock.mockResolvedValueOnce({ id: 'file-audio-1' }); - - const updateFields = await ingestCallRecordingMedia({ - callRecordingId: 'call-recording-1', - externalRecordingId: 'recall-recording-1', - hasAudio: false, - hasVideo: false, - }); - - expect(updateFields).toEqual({ - audio: [{ fileId: 'file-audio-1', label: 'audio.mp3' }], - }); - expect(Object.keys(updateFields)).toEqual(['audio']); - expect(console.warn).toHaveBeenCalledWith( - expect.stringContaining('upload exploded'), - ); - }); - - it('returns nothing when the recording exposes no media urls', async () => { - getRecallRecordingMock.mockResolvedValue({ - ok: true, - recording: { id: 'recall-recording-1' }, - }); - - const updateFields = await ingestCallRecordingMedia({ - callRecordingId: 'call-recording-1', - externalRecordingId: 'recall-recording-1', - hasAudio: false, - hasVideo: false, - }); - - expect(updateFields).toEqual({}); - expect(uploadFileMock).not.toHaveBeenCalled(); - }); - - it('warns and returns nothing when the recording fetch fails', async () => { - getRecallRecordingMock.mockResolvedValue({ - ok: false, - status: 500, - errorMessage: 'recording boom', - }); - - const updateFields = await ingestCallRecordingMedia({ - callRecordingId: 'call-recording-1', - externalRecordingId: 'recall-recording-1', - hasAudio: false, - hasVideo: false, - }); - - expect(updateFields).toEqual({}); - expect(uploadFileMock).not.toHaveBeenCalled(); - expect(console.warn).toHaveBeenCalledWith( - expect.stringContaining('recording boom'), - ); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/reap-orphaned-meeting-bots.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/reap-orphaned-meeting-bots.test.ts deleted file mode 100644 index e99d6d66a5092..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/reap-orphaned-meeting-bots.test.ts +++ /dev/null @@ -1,425 +0,0 @@ -import { type CoreApiClient } from 'twenty-client-sdk/core'; -import { beforeEach, describe, expect, it, vi } from 'vitest'; - -import { reapOrphanedMeetingBots } from 'src/logic-functions/flows/reap-orphaned-meeting-bots.util'; - -const listScheduledRecallBotsMock = vi.hoisted(() => vi.fn()); -const cancelRecallBotMock = vi.hoisted(() => vi.fn()); -const ejectRecallBotMock = vi.hoisted(() => vi.fn()); -const getCurrentWorkspaceIdMock = vi.hoisted(() => vi.fn()); - -vi.mock('src/logic-functions/data/get-current-workspace-id.util', () => ({ - getCurrentWorkspaceId: getCurrentWorkspaceIdMock, -})); - -vi.mock( - 'src/logic-functions/recall-api/list-scheduled-recall-bots.util', - () => ({ - listScheduledRecallBots: listScheduledRecallBotsMock, - }), -); - -vi.mock('src/logic-functions/recall-api/cancel-recall-bot.util', () => ({ - cancelRecallBot: cancelRecallBotMock, -})); - -vi.mock('src/logic-functions/recall-api/eject-recall-bot.util', () => ({ - ejectRecallBot: ejectRecallBotMock, -})); - -const JOIN_AT_AFTER = '2026-01-01T08:00:00.000Z'; -const JOIN_AT_BEFORE = '2026-01-02T12:00:00.000Z'; -const CURRENT_WORKSPACE_ID = '123e4567-e89b-12d3-a456-426614174000'; -const OTHER_WORKSPACE_ID = '123e4567-e89b-12d3-a456-426614174999'; - -type CallRecordingNode = { - id: string; - recordingRequestStatus?: string | null; - externalBotId?: string | null; -}; - -class FakeCoreApiClient { - constructor(private callRecordings: CallRecordingNode[]) {} - - async query(query: any): Promise { - const callRecordingIds = query.callRecordings.__args.filter.id.in; - - return { - callRecordings: { - pageInfo: { hasNextPage: false, endCursor: undefined }, - edges: this.callRecordings - .filter((callRecording) => - callRecordingIds.includes(callRecording.id), - ) - .map((node) => ({ node })), - }, - }; - } -} - -const buildClient = (callRecordings: CallRecordingNode[]): CoreApiClient => - new FakeCoreApiClient(callRecordings) as unknown as CoreApiClient; - -const buildBot = ({ - id, - twentyCallRecordingId, - twentyWorkspaceId, -}: { - id: string; - twentyCallRecordingId?: string; - twentyWorkspaceId?: string; -}) => ({ - id, - metadata: { - ...(twentyCallRecordingId === undefined ? {} : { twentyCallRecordingId }), - ...(twentyWorkspaceId === undefined ? {} : { twentyWorkspaceId }), - }, -}); - -const buildCurrentWorkspaceBot = ({ - id, - twentyCallRecordingId, -}: { - id: string; - twentyCallRecordingId: string; -}) => - buildBot({ - id, - twentyCallRecordingId, - twentyWorkspaceId: CURRENT_WORKSPACE_ID, - }); - -describe('reapOrphanedMeetingBots', () => { - beforeEach(() => { - vi.spyOn(console, 'warn').mockImplementation(() => {}); - getCurrentWorkspaceIdMock.mockReset(); - getCurrentWorkspaceIdMock.mockReturnValue(CURRENT_WORKSPACE_ID); - listScheduledRecallBotsMock.mockReset(); - cancelRecallBotMock.mockReset(); - cancelRecallBotMock.mockResolvedValue({ ok: true }); - ejectRecallBotMock.mockReset(); - ejectRecallBotMock.mockResolvedValue({ ok: true }); - }); - - it('keeps bots that their call recording still references', async () => { - listScheduledRecallBotsMock.mockResolvedValue({ - ok: true, - bots: [ - buildCurrentWorkspaceBot({ - id: 'claimed-bot', - twentyCallRecordingId: 'call-recording-1', - }), - ], - }); - - const result = await reapOrphanedMeetingBots({ - client: buildClient([ - { - id: 'call-recording-1', - recordingRequestStatus: 'REQUESTED', - externalBotId: 'claimed-bot', - }, - ]), - joinAtAfter: JOIN_AT_AFTER, - joinAtBefore: JOIN_AT_BEFORE, - }); - - expect(result).toEqual({ - scannedBotCount: 1, - canceledExternalBotIds: [], - }); - expect(cancelRecallBotMock).not.toHaveBeenCalled(); - }); - - it('cancels bots whose call recording request was canceled locally', async () => { - listScheduledRecallBotsMock.mockResolvedValue({ - ok: true, - bots: [ - buildCurrentWorkspaceBot({ - id: 'stale-cancel-bot', - twentyCallRecordingId: 'call-recording-1', - }), - ], - }); - - const result = await reapOrphanedMeetingBots({ - client: buildClient([ - { - id: 'call-recording-1', - recordingRequestStatus: 'CANCELED', - externalBotId: 'stale-cancel-bot', - }, - ]), - joinAtAfter: JOIN_AT_AFTER, - joinAtBefore: JOIN_AT_BEFORE, - }); - - expect(result).toEqual({ - scannedBotCount: 1, - canceledExternalBotIds: ['stale-cancel-bot'], - }); - expect(cancelRecallBotMock).toHaveBeenCalledWith({ - externalBotId: 'stale-cancel-bot', - }); - }); - - it('cancels bots whose call recording references another bot', async () => { - listScheduledRecallBotsMock.mockResolvedValue({ - ok: true, - bots: [ - buildCurrentWorkspaceBot({ - id: 'superseded-bot', - twentyCallRecordingId: 'call-recording-1', - }), - buildCurrentWorkspaceBot({ - id: 'claimed-bot', - twentyCallRecordingId: 'call-recording-1', - }), - ], - }); - - const result = await reapOrphanedMeetingBots({ - client: buildClient([ - { - id: 'call-recording-1', - recordingRequestStatus: 'REQUESTED', - externalBotId: 'claimed-bot', - }, - ]), - joinAtAfter: JOIN_AT_AFTER, - joinAtBefore: JOIN_AT_BEFORE, - }); - - expect(result).toEqual({ - scannedBotCount: 2, - canceledExternalBotIds: ['superseded-bot'], - }); - expect(cancelRecallBotMock).toHaveBeenCalledTimes(1); - expect(cancelRecallBotMock).toHaveBeenCalledWith({ - externalBotId: 'superseded-bot', - }); - }); - - it('cancels bots whose call recording no longer exists', async () => { - listScheduledRecallBotsMock.mockResolvedValue({ - ok: true, - bots: [ - buildCurrentWorkspaceBot({ - id: 'orphan-bot', - twentyCallRecordingId: 'call-recording-gone', - }), - ], - }); - - const result = await reapOrphanedMeetingBots({ - client: buildClient([]), - joinAtAfter: JOIN_AT_AFTER, - joinAtBefore: JOIN_AT_BEFORE, - }); - - expect(result).toEqual({ - scannedBotCount: 1, - canceledExternalBotIds: ['orphan-bot'], - }); - }); - - it('grants a grace round to requested recordings without a bot id yet', async () => { - listScheduledRecallBotsMock.mockResolvedValue({ - ok: true, - bots: [ - buildCurrentWorkspaceBot({ - id: 'pending-bot', - twentyCallRecordingId: 'call-recording-1', - }), - ], - }); - - const result = await reapOrphanedMeetingBots({ - client: buildClient([ - { - id: 'call-recording-1', - recordingRequestStatus: 'REQUESTED', - externalBotId: null, - }, - ]), - joinAtAfter: JOIN_AT_AFTER, - joinAtBefore: JOIN_AT_BEFORE, - }); - - expect(result).toEqual({ - scannedBotCount: 1, - canceledExternalBotIds: [], - }); - expect(cancelRecallBotMock).not.toHaveBeenCalled(); - }); - - it('ignores bots that were not created by this app', async () => { - listScheduledRecallBotsMock.mockResolvedValue({ - ok: true, - bots: [buildBot({ id: 'unrelated-bot' })], - }); - - const result = await reapOrphanedMeetingBots({ - client: buildClient([]), - joinAtAfter: JOIN_AT_AFTER, - joinAtBefore: JOIN_AT_BEFORE, - }); - - expect(result).toEqual({ - scannedBotCount: 1, - canceledExternalBotIds: [], - }); - expect(cancelRecallBotMock).not.toHaveBeenCalled(); - }); - - it('ignores untagged bots even when they carry call recording metadata', async () => { - listScheduledRecallBotsMock.mockResolvedValue({ - ok: true, - bots: [ - buildBot({ - id: 'untagged-bot', - twentyCallRecordingId: 'call-recording-gone', - }), - ], - }); - - const result = await reapOrphanedMeetingBots({ - client: buildClient([]), - joinAtAfter: JOIN_AT_AFTER, - joinAtBefore: JOIN_AT_BEFORE, - }); - - expect(result).toEqual({ - scannedBotCount: 1, - canceledExternalBotIds: [], - }); - expect(cancelRecallBotMock).not.toHaveBeenCalled(); - }); - - it('ignores bots claimed by another workspace', async () => { - listScheduledRecallBotsMock.mockResolvedValue({ - ok: true, - bots: [ - buildBot({ - id: 'other-workspace-bot', - twentyCallRecordingId: 'call-recording-gone', - twentyWorkspaceId: OTHER_WORKSPACE_ID, - }), - ], - }); - - const result = await reapOrphanedMeetingBots({ - client: buildClient([]), - joinAtAfter: JOIN_AT_AFTER, - joinAtBefore: JOIN_AT_BEFORE, - }); - - expect(result).toEqual({ - scannedBotCount: 1, - canceledExternalBotIds: [], - }); - expect(cancelRecallBotMock).not.toHaveBeenCalled(); - }); - - it('cancels orphaned bots claimed by this workspace', async () => { - listScheduledRecallBotsMock.mockResolvedValue({ - ok: true, - bots: [ - buildCurrentWorkspaceBot({ - id: 'same-workspace-bot', - twentyCallRecordingId: 'call-recording-gone', - }), - ], - }); - - const result = await reapOrphanedMeetingBots({ - client: buildClient([]), - joinAtAfter: JOIN_AT_AFTER, - joinAtBefore: JOIN_AT_BEFORE, - }); - - expect(result).toEqual({ - scannedBotCount: 1, - canceledExternalBotIds: ['same-workspace-bot'], - }); - expect(cancelRecallBotMock).toHaveBeenCalledWith({ - externalBotId: 'same-workspace-bot', - }); - }); - - it('ejects an orphaned bot that already joined when deletion is rejected', async () => { - listScheduledRecallBotsMock.mockResolvedValue({ - ok: true, - bots: [ - buildCurrentWorkspaceBot({ - id: 'in-call-orphan', - twentyCallRecordingId: 'call-recording-gone', - }), - ], - }); - cancelRecallBotMock.mockResolvedValue({ - ok: false, - status: 409, - errorMessage: 'Recall API responded with HTTP 409', - }); - - const result = await reapOrphanedMeetingBots({ - client: buildClient([]), - joinAtAfter: JOIN_AT_AFTER, - joinAtBefore: JOIN_AT_BEFORE, - }); - - expect(result).toEqual({ - scannedBotCount: 1, - canceledExternalBotIds: ['in-call-orphan'], - }); - expect(ejectRecallBotMock).toHaveBeenCalledWith({ - externalBotId: 'in-call-orphan', - }); - }); - - it('reports nothing reaped when listing Recall bots fails', async () => { - listScheduledRecallBotsMock.mockResolvedValue({ - ok: false, - status: 500, - errorMessage: 'Recall API responded with HTTP 500', - }); - - const result = await reapOrphanedMeetingBots({ - client: buildClient([]), - joinAtAfter: JOIN_AT_AFTER, - joinAtBefore: JOIN_AT_BEFORE, - }); - - expect(result).toEqual({ - scannedBotCount: 0, - canceledExternalBotIds: [], - }); - expect(cancelRecallBotMock).not.toHaveBeenCalled(); - }); - - it('skips reaping when the current workspace cannot be resolved', async () => { - getCurrentWorkspaceIdMock.mockReturnValue(undefined); - listScheduledRecallBotsMock.mockResolvedValue({ - ok: true, - bots: [ - buildCurrentWorkspaceBot({ - id: 'same-workspace-bot', - twentyCallRecordingId: 'call-recording-gone', - }), - ], - }); - - const result = await reapOrphanedMeetingBots({ - client: buildClient([]), - joinAtAfter: JOIN_AT_AFTER, - joinAtBefore: JOIN_AT_BEFORE, - }); - - expect(result).toEqual({ - scannedBotCount: 1, - canceledExternalBotIds: [], - }); - expect(cancelRecallBotMock).not.toHaveBeenCalled(); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/reconcile-meeting-bot.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/reconcile-meeting-bot.test.ts deleted file mode 100644 index 6729dcd74fa78..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/__tests__/reconcile-meeting-bot.test.ts +++ /dev/null @@ -1,1013 +0,0 @@ -import { type CoreApiClient } from 'twenty-client-sdk/core'; -import { beforeEach, describe, expect, it, vi } from 'vitest'; - -import { computeCallRecordingIdForMeeting } from 'src/logic-functions/domain/compute-call-recording-id-for-meeting.util'; -import { reconcileMeetingBotForCalendarEventIds } from 'src/logic-functions/flows/reconcile-meeting-bot.util'; - -const scheduleRecallBotMock = vi.hoisted(() => vi.fn()); -const rescheduleRecallBotMock = vi.hoisted(() => vi.fn()); -const cancelRecallBotMock = vi.hoisted(() => vi.fn()); -const getCurrentWorkspaceIdMock = vi.hoisted(() => vi.fn()); - -vi.mock('src/logic-functions/data/get-current-workspace-id.util', () => ({ - getCurrentWorkspaceId: getCurrentWorkspaceIdMock, -})); - -vi.mock('src/logic-functions/recall-api/schedule-recall-bot.util', () => ({ - scheduleRecallBot: scheduleRecallBotMock, -})); - -vi.mock('src/logic-functions/recall-api/reschedule-recall-bot.util', () => ({ - rescheduleRecallBot: rescheduleRecallBotMock, -})); - -vi.mock('src/logic-functions/recall-api/cancel-recall-bot.util', () => ({ - cancelRecallBot: cancelRecallBotMock, -})); - -const NOW = new Date('2026-01-01T12:00:00.000Z'); -const WORKSPACE_ID = '123e4567-e89b-12d3-a456-426614174000'; -const FUTURE_STARTS_AT = '2026-01-01T13:00:00.000Z'; -const FUTURE_RECALL_BOT_JOIN_AT = '2026-01-01T12:59:00.000Z'; -const FUTURE_ENDS_AT = '2026-01-01T14:00:00.000Z'; - -const buildCustomerSyncCallRecordingId = ( - startsAt: string = FUTURE_STARTS_AT, -): string => - computeCallRecordingIdForMeeting( - `link:meet.example.com/customer-sync:${startsAt}`, - ); - -type CalendarEventNode = { - id: string; - title?: string | null; - isCanceled?: boolean | null; - startsAt?: string | null; - endsAt?: string | null; - iCalUid?: string | null; - conferenceLink?: { primaryLinkUrl?: string | null } | null; - meetingBotPreference?: string | null; -}; - -type CallRecordingNode = { - id: string; - title?: string | null; - status?: string | null; - recordingRequestStatus?: string | null; - startedAt?: string | null; - endedAt?: string | null; - calendarEventId?: string | null; - externalBotId?: string | null; - externalRecordingId?: string | null; -}; - -type FakeCoreApiClientFixture = { - calendarEvents: CalendarEventNode[]; - callRecordings?: CallRecordingNode[]; -}; - -class FakeCoreApiClient { - calendarEvents: CalendarEventNode[]; - callRecordings: CallRecordingNode[]; - mutations: Array<{ name: string; args: unknown }> = []; - - constructor({ - calendarEvents, - callRecordings = [], - }: FakeCoreApiClientFixture) { - this.calendarEvents = calendarEvents; - this.callRecordings = callRecordings; - } - - async query(query: any): Promise { - if (query.calendarEvents !== undefined) { - return { - calendarEvents: buildConnection( - this.filterCalendarEvents(query.calendarEvents.__args.filter), - ), - }; - } - - if (query.callRecordings !== undefined) { - const filter = query.callRecordings.__args.filter; - - if (filter.id?.in !== undefined) { - return { - callRecordings: buildConnection( - this.callRecordings.filter((callRecording) => - filter.id.in.includes(callRecording.id), - ), - ), - }; - } - - return { - callRecordings: buildConnection( - this.callRecordings.filter((callRecording) => - filter.calendarEventId.in.includes(callRecording.calendarEventId), - ), - ), - }; - } - - throw new Error(`Unhandled query: ${JSON.stringify(query)}`); - } - - async mutation(mutation: any): Promise { - if (mutation.createCallRecording !== undefined) { - const data = mutation.createCallRecording.__args.data; - - if (this.callRecordings.some((candidate) => candidate.id === data.id)) { - throw new Error(`Duplicate call recording id ${data.id}`); - } - - const createdCallRecording = { ...data }; - - this.callRecordings.push(createdCallRecording); - this.mutations.push({ - name: 'createCallRecording', - args: data, - }); - - return { - createCallRecording: { - id: createdCallRecording.id, - }, - }; - } - - if (mutation.updateCallRecording !== undefined) { - const { id, data } = mutation.updateCallRecording.__args; - const callRecording = this.callRecordings.find( - (candidate) => candidate.id === id, - ); - - if (callRecording === undefined) { - throw new Error(`Could not find call recording ${id}`); - } - - Object.assign(callRecording, data); - this.mutations.push({ - name: 'updateCallRecording', - args: { id, data }, - }); - - return { - updateCallRecording: { - id, - }, - }; - } - - throw new Error(`Unhandled mutation: ${JSON.stringify(mutation)}`); - } - - private filterCalendarEvents(filter: any): CalendarEventNode[] { - if (filter.id?.in !== undefined) { - return this.calendarEvents.filter((calendarEvent) => - filter.id.in.includes(calendarEvent.id), - ); - } - - if (filter.startsAt?.in !== undefined) { - return this.calendarEvents.filter((calendarEvent) => - filter.startsAt.in.includes(calendarEvent.startsAt), - ); - } - - throw new Error( - `Unhandled calendar event filter: ${JSON.stringify(filter)}`, - ); - } -} - -const buildConnection = (nodes: Node[]) => ({ - pageInfo: { - hasNextPage: false, - endCursor: undefined, - }, - edges: nodes.map((node) => ({ node })), -}); - -const buildCalendarEvent = ( - overrides: Partial = {}, -): CalendarEventNode => ({ - id: 'calendar-event-1', - title: 'Customer Sync', - isCanceled: false, - startsAt: FUTURE_STARTS_AT, - endsAt: FUTURE_ENDS_AT, - iCalUid: 'calendar-event-uid', - conferenceLink: { - primaryLinkUrl: 'https://meet.example.com/customer-sync', - }, - meetingBotPreference: 'ON', - ...overrides, -}); - -const buildFakeCoreApiClient = ( - fixture: FakeCoreApiClientFixture, -): FakeCoreApiClient => new FakeCoreApiClient(fixture); - -describe('reconcileMeetingBotForCalendarEventIds', () => { - beforeEach(() => { - vi.spyOn(console, 'warn').mockImplementation(() => {}); - vi.spyOn(console, 'error').mockImplementation(() => {}); - getCurrentWorkspaceIdMock.mockReset(); - getCurrentWorkspaceIdMock.mockReturnValue(WORKSPACE_ID); - scheduleRecallBotMock.mockReset(); - scheduleRecallBotMock.mockResolvedValue({ - ok: true, - externalBotId: 'recall-bot-1', - }); - rescheduleRecallBotMock.mockReset(); - rescheduleRecallBotMock.mockResolvedValue({ - ok: true, - externalBotId: 'recall-bot-1', - }); - cancelRecallBotMock.mockReset(); - cancelRecallBotMock.mockResolvedValue({ - ok: true, - externalBotId: null, - }); - }); - - it('creates a scheduled call recording when the policy requests a bot', async () => { - const client = buildFakeCoreApiClient({ - calendarEvents: [buildCalendarEvent()], - }); - - const result = await reconcileMeetingBotForCalendarEventIds({ - client: client as unknown as CoreApiClient, - calendarEventIds: ['calendar-event-1'], - now: NOW, - }); - - expect(result).toEqual([ - expect.objectContaining({ - action: 'CREATED', - callRecordingId: buildCustomerSyncCallRecordingId(), - }), - ]); - expect(client.callRecordings).toEqual([ - { - id: buildCustomerSyncCallRecordingId(), - title: 'Customer Sync', - status: 'SCHEDULED', - recordingRequestStatus: 'REQUESTED', - calendarEventId: 'calendar-event-1', - externalBotId: 'recall-bot-1', - }, - ]); - expect(scheduleRecallBotMock).toHaveBeenCalledWith({ - meetingUrl: 'https://meet.example.com/customer-sync', - joinAt: FUTURE_RECALL_BOT_JOIN_AT, - metadata: { - twentyWorkspaceId: WORKSPACE_ID, - twentyCallRecordingId: buildCustomerSyncCallRecordingId(), - twentyCalendarEventId: 'calendar-event-1', - twentyRealMeetingKey: - 'link:meet.example.com/customer-sync:2026-01-01T13:00:00.000Z', - }, - }); - }); - - it('creates a scheduled call recording for the default ON preference', async () => { - const client = buildFakeCoreApiClient({ - calendarEvents: [buildCalendarEvent({ meetingBotPreference: null })], - }); - - const result = await reconcileMeetingBotForCalendarEventIds({ - client: client as unknown as CoreApiClient, - calendarEventIds: ['calendar-event-1'], - now: NOW, - }); - - expect(result).toEqual([ - expect.objectContaining({ - action: 'CREATED', - callRecordingId: buildCustomerSyncCallRecordingId(), - }), - ]); - expect(scheduleRecallBotMock).toHaveBeenCalledTimes(1); - }); - - it('creates a recording for an in-progress meeting that has not ended', async () => { - const client = buildFakeCoreApiClient({ - calendarEvents: [ - buildCalendarEvent({ - meetingBotPreference: null, - startsAt: '2026-01-01T11:30:00.000Z', - endsAt: '2026-01-01T13:00:00.000Z', - }), - ], - }); - - const result = await reconcileMeetingBotForCalendarEventIds({ - client: client as unknown as CoreApiClient, - calendarEventIds: ['calendar-event-1'], - now: NOW, - }); - - expect(result).toEqual([ - expect.objectContaining({ - action: 'CREATED', - callRecordingId: buildCustomerSyncCallRecordingId( - '2026-01-01T11:30:00.000Z', - ), - }), - ]); - expect(scheduleRecallBotMock).toHaveBeenCalledTimes(1); - }); - - it('updates an existing in-progress recording', async () => { - const client = buildFakeCoreApiClient({ - calendarEvents: [ - buildCalendarEvent({ - meetingBotPreference: null, - title: 'Updated Customer Sync', - startsAt: '2026-01-01T11:30:00.000Z', - endsAt: '2026-01-01T13:00:00.000Z', - }), - ], - callRecordings: [ - { - id: buildCustomerSyncCallRecordingId('2026-01-01T11:30:00.000Z'), - title: 'Old Customer Sync', - status: 'SCHEDULED', - recordingRequestStatus: 'REQUESTED', - calendarEventId: 'calendar-event-1', - externalBotId: 'recall-bot-1', - }, - ], - }); - - const result = await reconcileMeetingBotForCalendarEventIds({ - client: client as unknown as CoreApiClient, - calendarEventIds: ['calendar-event-1'], - now: NOW, - }); - - expect(result).toEqual([ - expect.objectContaining({ - action: 'UPDATED', - callRecordingId: buildCustomerSyncCallRecordingId( - '2026-01-01T11:30:00.000Z', - ), - }), - ]); - expect(client.callRecordings).toEqual([ - expect.objectContaining({ - title: 'Updated Customer Sync', - recordingRequestStatus: 'REQUESTED', - }), - ]); - }); - - it('updates an existing policy-managed scheduled call recording', async () => { - const client = buildFakeCoreApiClient({ - calendarEvents: [ - buildCalendarEvent({ - title: 'Updated Customer Sync', - }), - ], - callRecordings: [ - { - id: buildCustomerSyncCallRecordingId(), - title: 'Old Customer Sync', - status: 'SCHEDULED', - recordingRequestStatus: 'REQUESTED', - startedAt: FUTURE_STARTS_AT, - endedAt: FUTURE_ENDS_AT, - calendarEventId: 'calendar-event-1', - externalBotId: 'recall-bot-1', - }, - ], - }); - - const result = await reconcileMeetingBotForCalendarEventIds({ - client: client as unknown as CoreApiClient, - calendarEventIds: ['calendar-event-1'], - now: NOW, - }); - - expect(result).toEqual([ - expect.objectContaining({ - action: 'UPDATED', - callRecordingId: buildCustomerSyncCallRecordingId(), - }), - ]); - expect(client.callRecordings).toEqual([ - expect.objectContaining({ - id: buildCustomerSyncCallRecordingId(), - title: 'Updated Customer Sync', - status: 'SCHEDULED', - recordingRequestStatus: 'REQUESTED', - startedAt: FUTURE_STARTS_AT, - endedAt: FUTURE_ENDS_AT, - calendarEventId: 'calendar-event-1', - externalBotId: 'recall-bot-1', - }), - ]); - expect(rescheduleRecallBotMock).toHaveBeenCalledWith({ - externalBotId: 'recall-bot-1', - meetingUrl: 'https://meet.example.com/customer-sync', - joinAt: FUTURE_RECALL_BOT_JOIN_AT, - metadata: { - twentyWorkspaceId: WORKSPACE_ID, - twentyCallRecordingId: buildCustomerSyncCallRecordingId(), - twentyCalendarEventId: 'calendar-event-1', - twentyRealMeetingKey: - 'link:meet.example.com/customer-sync:2026-01-01T13:00:00.000Z', - }, - }); - }); - - it('cancels an existing scheduled request when the policy no longer requests a bot', async () => { - const client = buildFakeCoreApiClient({ - calendarEvents: [ - buildCalendarEvent({ - meetingBotPreference: 'OFF', - }), - ], - callRecordings: [ - { - id: 'call-recording-1', - title: 'Customer Sync', - status: 'SCHEDULED', - recordingRequestStatus: 'REQUESTED', - startedAt: FUTURE_STARTS_AT, - endedAt: FUTURE_ENDS_AT, - calendarEventId: 'calendar-event-1', - externalBotId: 'recall-bot-1', - }, - ], - }); - - const result = await reconcileMeetingBotForCalendarEventIds({ - client: client as unknown as CoreApiClient, - calendarEventIds: ['calendar-event-1'], - now: NOW, - }); - - expect(result).toEqual([ - expect.objectContaining({ - action: 'CANCELED', - callRecordingId: 'call-recording-1', - }), - ]); - expect(client.callRecordings).toEqual([ - expect.objectContaining({ - id: 'call-recording-1', - recordingRequestStatus: 'CANCELED', - externalBotId: null, - }), - ]); - expect(cancelRecallBotMock).toHaveBeenCalledWith({ - externalBotId: 'recall-bot-1', - }); - }); - - it('persists the cancel intent and leaves the bot for the planned stale-state cron when the Recall cancel fails', async () => { - cancelRecallBotMock.mockResolvedValue({ - ok: false, - status: 500, - errorMessage: 'Recall API responded with HTTP 500', - }); - - const client = buildFakeCoreApiClient({ - calendarEvents: [ - buildCalendarEvent({ - meetingBotPreference: 'OFF', - }), - ], - callRecordings: [ - { - id: 'call-recording-1', - title: 'Customer Sync', - status: 'SCHEDULED', - recordingRequestStatus: 'REQUESTED', - startedAt: FUTURE_STARTS_AT, - endedAt: FUTURE_ENDS_AT, - calendarEventId: 'calendar-event-1', - externalBotId: 'recall-bot-1', - }, - ], - }); - - const result = await reconcileMeetingBotForCalendarEventIds({ - client: client as unknown as CoreApiClient, - calendarEventIds: ['calendar-event-1'], - now: NOW, - }); - - expect(result).toEqual([ - expect.objectContaining({ - action: 'CANCELED', - callRecordingId: 'call-recording-1', - }), - ]); - expect(client.callRecordings).toEqual([ - expect.objectContaining({ - id: 'call-recording-1', - recordingRequestStatus: 'CANCELED', - externalBotId: 'recall-bot-1', - }), - ]); - }); - - it('does not reset the status of a recording whose bot is already live', async () => { - const client = buildFakeCoreApiClient({ - calendarEvents: [ - buildCalendarEvent({ - title: 'Renamed Customer Sync', - }), - ], - callRecordings: [ - { - id: buildCustomerSyncCallRecordingId(), - title: 'Customer Sync', - status: 'JOINING', - recordingRequestStatus: 'REQUESTED', - startedAt: FUTURE_STARTS_AT, - endedAt: FUTURE_ENDS_AT, - calendarEventId: 'calendar-event-1', - externalBotId: 'recall-bot-1', - }, - ], - }); - - const result = await reconcileMeetingBotForCalendarEventIds({ - client: client as unknown as CoreApiClient, - calendarEventIds: ['calendar-event-1'], - now: NOW, - }); - - expect(result).toEqual([ - expect.objectContaining({ - action: 'UPDATED', - callRecordingId: buildCustomerSyncCallRecordingId(), - }), - ]); - expect(client.callRecordings).toEqual([ - expect.objectContaining({ - id: buildCustomerSyncCallRecordingId(), - title: 'Renamed Customer Sync', - status: 'JOINING', - }), - ]); - }); - - it('creates a single recording when duplicate synced rows share the same real meeting', async () => { - const client = buildFakeCoreApiClient({ - calendarEvents: [ - buildCalendarEvent(), - buildCalendarEvent({ - id: 'calendar-event-2', - iCalUid: 'calendar-event-uid-from-other-channel', - }), - ], - }); - - const result = await reconcileMeetingBotForCalendarEventIds({ - client: client as unknown as CoreApiClient, - calendarEventIds: ['calendar-event-1'], - now: NOW, - }); - - expect(result).toEqual([ - expect.objectContaining({ - action: 'CREATED', - callRecordingId: buildCustomerSyncCallRecordingId(), - }), - ]); - expect(client.callRecordings).toHaveLength(1); - expect(scheduleRecallBotMock).toHaveBeenCalledTimes(1); - }); - - it('does not create a duplicate when a non-policy-managed open recording already exists', async () => { - const client = buildFakeCoreApiClient({ - calendarEvents: [buildCalendarEvent()], - callRecordings: [ - { - id: 'call-recording-1', - title: 'Manual Recording', - status: 'SCHEDULED', - recordingRequestStatus: null, - startedAt: FUTURE_STARTS_AT, - endedAt: FUTURE_ENDS_AT, - calendarEventId: 'calendar-event-1', - }, - ], - }); - - const result = await reconcileMeetingBotForCalendarEventIds({ - client: client as unknown as CoreApiClient, - calendarEventIds: ['calendar-event-1'], - now: NOW, - }); - - expect(result).toEqual([ - expect.objectContaining({ - action: 'SKIPPED', - callRecordingId: 'call-recording-1', - }), - ]); - expect(client.callRecordings).toHaveLength(1); - expect(client.mutations).toEqual([]); - expect(scheduleRecallBotMock).not.toHaveBeenCalled(); - }); - - it('cancels the scheduled request when the calendar event is deleted', async () => { - const client = buildFakeCoreApiClient({ - calendarEvents: [], - callRecordings: [ - { - id: 'call-recording-1', - title: 'Customer Sync', - status: 'SCHEDULED', - recordingRequestStatus: 'REQUESTED', - startedAt: FUTURE_STARTS_AT, - endedAt: FUTURE_ENDS_AT, - calendarEventId: 'calendar-event-1', - externalBotId: 'recall-bot-1', - }, - ], - }); - - const result = await reconcileMeetingBotForCalendarEventIds({ - client: client as unknown as CoreApiClient, - calendarEventIds: [], - removedOccurrences: [ - { - calendarEventId: 'calendar-event-1', - realMeetingKey: `link:meet.example.com/customer-sync:${FUTURE_STARTS_AT}`, - startsAt: FUTURE_STARTS_AT, - }, - ], - now: NOW, - }); - - expect(result).toEqual([ - expect.objectContaining({ - action: 'CANCELED', - callRecordingId: 'call-recording-1', - }), - ]); - expect(client.callRecordings).toEqual([ - expect.objectContaining({ - id: 'call-recording-1', - recordingRequestStatus: 'CANCELED', - externalBotId: null, - }), - ]); - expect(cancelRecallBotMock).toHaveBeenCalledWith({ - externalBotId: 'recall-bot-1', - }); - }); - - it('cancels the old occurrence and creates a fresh recording when the meeting moves to a new time', async () => { - const NEW_STARTS_AT = '2026-01-02T13:00:00.000Z'; - const NEW_RECALL_BOT_JOIN_AT = '2026-01-02T12:59:00.000Z'; - const NEW_ENDS_AT = '2026-01-02T14:00:00.000Z'; - const client = buildFakeCoreApiClient({ - calendarEvents: [ - buildCalendarEvent({ - startsAt: NEW_STARTS_AT, - endsAt: NEW_ENDS_AT, - }), - ], - callRecordings: [ - { - id: buildCustomerSyncCallRecordingId(), - title: 'Customer Sync', - status: 'SCHEDULED', - recordingRequestStatus: 'REQUESTED', - startedAt: FUTURE_STARTS_AT, - endedAt: FUTURE_ENDS_AT, - calendarEventId: 'calendar-event-1', - externalBotId: 'recall-bot-old', - }, - ], - }); - - const result = await reconcileMeetingBotForCalendarEventIds({ - client: client as unknown as CoreApiClient, - calendarEventIds: ['calendar-event-1'], - removedOccurrences: [ - { - calendarEventId: 'calendar-event-1', - realMeetingKey: `link:meet.example.com/customer-sync:${FUTURE_STARTS_AT}`, - startsAt: FUTURE_STARTS_AT, - }, - ], - now: NOW, - }); - - expect(result).toEqual([ - expect.objectContaining({ - action: 'CANCELED', - callRecordingId: buildCustomerSyncCallRecordingId(), - }), - expect.objectContaining({ - action: 'CREATED', - callRecordingId: buildCustomerSyncCallRecordingId(NEW_STARTS_AT), - }), - ]); - expect(cancelRecallBotMock).toHaveBeenCalledExactlyOnceWith({ - externalBotId: 'recall-bot-old', - }); - expect(scheduleRecallBotMock).toHaveBeenCalledExactlyOnceWith( - expect.objectContaining({ joinAt: NEW_RECALL_BOT_JOIN_AT }), - ); - expect(client.callRecordings).toEqual([ - expect.objectContaining({ - id: buildCustomerSyncCallRecordingId(), - recordingRequestStatus: 'CANCELED', - externalBotId: null, - }), - expect.objectContaining({ - id: buildCustomerSyncCallRecordingId(NEW_STARTS_AT), - recordingRequestStatus: 'REQUESTED', - externalBotId: 'recall-bot-1', - }), - ]); - }); - - it('reconciles the remaining meetings when one meeting fails', async () => { - cancelRecallBotMock.mockRejectedValue(new Error('recall exploded')); - - const client = buildFakeCoreApiClient({ - calendarEvents: [ - buildCalendarEvent({ - meetingBotPreference: 'OFF', - }), - buildCalendarEvent({ - id: 'calendar-event-2', - iCalUid: 'other-meeting-uid', - conferenceLink: { - primaryLinkUrl: 'https://meet.example.com/other-sync', - }, - }), - ], - callRecordings: [ - { - id: 'call-recording-1', - title: 'Customer Sync', - status: 'SCHEDULED', - recordingRequestStatus: 'REQUESTED', - startedAt: FUTURE_STARTS_AT, - endedAt: FUTURE_ENDS_AT, - calendarEventId: 'calendar-event-1', - externalBotId: 'recall-bot-1', - }, - ], - }); - - const result = await reconcileMeetingBotForCalendarEventIds({ - client: client as unknown as CoreApiClient, - calendarEventIds: ['calendar-event-1', 'calendar-event-2'], - now: NOW, - }); - - expect(result).toEqual([ - expect.objectContaining({ - action: 'FAILED', - realMeetingKey: `link:meet.example.com/customer-sync:${FUTURE_STARTS_AT}`, - errorMessage: 'recall exploded', - }), - expect.objectContaining({ action: 'CREATED' }), - ]); - expect(client.callRecordings).toEqual([ - expect.objectContaining({ - id: 'call-recording-1', - recordingRequestStatus: 'CANCELED', - externalBotId: 'recall-bot-1', - }), - expect.objectContaining({ - calendarEventId: 'calendar-event-2', - status: 'SCHEDULED', - }), - ]); - }); - - it('cancels the scheduled request when the conference link is removed', async () => { - const client = buildFakeCoreApiClient({ - calendarEvents: [ - buildCalendarEvent({ - conferenceLink: null, - }), - ], - callRecordings: [ - { - id: 'call-recording-1', - title: 'Customer Sync', - status: 'SCHEDULED', - recordingRequestStatus: 'REQUESTED', - startedAt: FUTURE_STARTS_AT, - endedAt: FUTURE_ENDS_AT, - calendarEventId: 'calendar-event-1', - externalBotId: 'recall-bot-1', - }, - ], - }); - - const result = await reconcileMeetingBotForCalendarEventIds({ - client: client as unknown as CoreApiClient, - calendarEventIds: ['calendar-event-1'], - now: NOW, - }); - - expect(result).toEqual([ - expect.objectContaining({ - action: 'CANCELED', - callRecordingId: 'call-recording-1', - }), - ]); - expect(client.callRecordings).toEqual([ - expect.objectContaining({ - id: 'call-recording-1', - recordingRequestStatus: 'CANCELED', - externalBotId: null, - }), - ]); - }); - - it('clears the stale bot id for the stale-state cron to re-create when the existing Recall bot no longer exists', async () => { - rescheduleRecallBotMock.mockResolvedValue({ - ok: false, - status: 404, - errorMessage: 'Recall API responded with HTTP 404', - }); - - const client = buildFakeCoreApiClient({ - calendarEvents: [buildCalendarEvent()], - callRecordings: [ - { - id: buildCustomerSyncCallRecordingId(), - title: 'Customer Sync', - status: 'SCHEDULED', - recordingRequestStatus: 'REQUESTED', - startedAt: FUTURE_STARTS_AT, - endedAt: FUTURE_ENDS_AT, - calendarEventId: 'calendar-event-1', - externalBotId: 'recall-bot-stale', - }, - ], - }); - - const result = await reconcileMeetingBotForCalendarEventIds({ - client: client as unknown as CoreApiClient, - calendarEventIds: ['calendar-event-1'], - now: NOW, - }); - - expect(result).toEqual([ - expect.objectContaining({ - action: 'UPDATED', - callRecordingId: buildCustomerSyncCallRecordingId(), - }), - ]); - expect(rescheduleRecallBotMock).toHaveBeenCalledWith( - expect.objectContaining({ externalBotId: 'recall-bot-stale' }), - ); - // The event path no longer re-creates the bot; the stale id is cleared and the cron heals the botless row. - expect(scheduleRecallBotMock).not.toHaveBeenCalled(); - expect(client.callRecordings).toEqual([ - expect.objectContaining({ - id: buildCustomerSyncCallRecordingId(), - externalBotId: null, - }), - ]); - }); - - it('adopts the concurrently created recording when it loses the deterministic-id insert race', async () => { - class InsertRaceFakeCoreApiClient extends FakeCoreApiClient { - override async mutation(mutation: any): Promise { - if (mutation.createCallRecording !== undefined) { - const concurrentlyInsertedId = - mutation.createCallRecording.__args.data.id; - - if ( - !this.callRecordings.some( - (candidate) => candidate.id === concurrentlyInsertedId, - ) - ) { - this.callRecordings.push({ - id: concurrentlyInsertedId, - status: 'SCHEDULED', - recordingRequestStatus: 'REQUESTED', - calendarEventId: 'calendar-event-1', - externalBotId: 'sibling-bot', - }); - } - } - - return super.mutation(mutation); - } - } - - const client = new InsertRaceFakeCoreApiClient({ - calendarEvents: [buildCalendarEvent()], - }); - - const result = await reconcileMeetingBotForCalendarEventIds({ - client: client as unknown as CoreApiClient, - calendarEventIds: ['calendar-event-1'], - now: NOW, - }); - - expect(result).toEqual([ - expect.objectContaining({ - action: 'UPDATED', - callRecordingId: buildCustomerSyncCallRecordingId(), - }), - ]); - expect(client.callRecordings).toHaveLength(1); - expect(scheduleRecallBotMock).not.toHaveBeenCalled(); - expect(rescheduleRecallBotMock).toHaveBeenCalledWith( - expect.objectContaining({ externalBotId: 'sibling-bot' }), - ); - }); - - it('fails the meeting when the create conflicts without a readable recording', async () => { - class TombstoneFakeCoreApiClient extends FakeCoreApiClient { - override async mutation(mutation: any): Promise { - if (mutation.createCallRecording !== undefined) { - throw new Error('Duplicate id on a soft-deleted record'); - } - - return super.mutation(mutation); - } - } - - const client = new TombstoneFakeCoreApiClient({ - calendarEvents: [buildCalendarEvent()], - }); - - const result = await reconcileMeetingBotForCalendarEventIds({ - client: client as unknown as CoreApiClient, - calendarEventIds: ['calendar-event-1'], - now: NOW, - }); - - expect(result).toEqual([ - expect.objectContaining({ - action: 'FAILED', - errorMessage: 'Duplicate id on a soft-deleted record', - }), - ]); - expect(scheduleRecallBotMock).not.toHaveBeenCalled(); - }); - - it('schedules exactly one bot when concurrent reconciles race for the same meeting', async () => { - const client = buildFakeCoreApiClient({ - calendarEvents: [buildCalendarEvent()], - }); - - await Promise.all( - Array.from({ length: 4 }, () => - reconcileMeetingBotForCalendarEventIds({ - client: client as unknown as CoreApiClient, - calendarEventIds: ['calendar-event-1'], - now: NOW, - }), - ), - ); - - expect(client.callRecordings).toHaveLength(1); - expect(scheduleRecallBotMock).toHaveBeenCalledTimes(1); - expect(client.callRecordings[0].externalBotId).toBe('recall-bot-1'); - }); - - it('does not schedule a bot when the recording is canceled between decide and schedule', async () => { - class CancelRaceFakeCoreApiClient extends FakeCoreApiClient { - override async query(query: any): Promise { - if (query.callRecordings?.__args.filter.id?.in !== undefined) { - const callRecording = this.callRecordings.find((candidate) => - query.callRecordings.__args.filter.id.in.includes(candidate.id), - ); - - if (callRecording !== undefined) { - callRecording.recordingRequestStatus = 'CANCELED'; - } - } - - return super.query(query); - } - } - - const client = new CancelRaceFakeCoreApiClient({ - calendarEvents: [buildCalendarEvent()], - }); - - const result = await reconcileMeetingBotForCalendarEventIds({ - client: client as unknown as CoreApiClient, - calendarEventIds: ['calendar-event-1'], - now: NOW, - }); - - expect(result).toEqual([expect.objectContaining({ action: 'CREATED' })]); - expect(scheduleRecallBotMock).not.toHaveBeenCalled(); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/cancel-call-recording-request.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/cancel-call-recording-request.util.ts deleted file mode 100644 index 8184955a534f9..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/cancel-call-recording-request.util.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { CallRecordingRequestStatus } from 'src/logic-functions/constants/call-recording-request-status'; -import { type CallRecordingRecord } from 'src/logic-functions/types/call-recording-record.type'; -import { cancelRecallBot } from 'src/logic-functions/recall-api/cancel-recall-bot.util'; -import { updateCallRecording } from 'src/logic-functions/data/update-call-recording.util'; - -// Intent-first: the stale-state cron finishes the Recall half when this call fails. -export const cancelCallRecordingRequest = async ({ - client, - callRecording, -}: { - client: CoreApiClient; - callRecording: CallRecordingRecord; -}): Promise => { - await updateCallRecording(client, { - id: callRecording.id, - data: { - recordingRequestStatus: CallRecordingRequestStatus.CANCELED, - }, - }); - - if (isUndefined(callRecording.externalBotId)) { - return; - } - - const cancelResult = await cancelRecallBot({ - externalBotId: callRecording.externalBotId, - }); - - if (!cancelResult.ok) { - console.warn( - `[twenty-meeting-bot] failed to cancel Recall bot for callRecording ${callRecording.id}, leaving it for the stale-state cron: ${cancelResult.errorMessage}`, - ); - - return; - } - - await updateCallRecording(client, { - id: callRecording.id, - data: { - externalBotId: null, - }, - }); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/charge-completed-call-recording.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/charge-completed-call-recording.util.ts deleted file mode 100644 index dd1a02be0f8dc..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/charge-completed-call-recording.util.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; -import { chargeCredits } from 'twenty-sdk/billing'; - -import { computeCallRecordingCharge } from 'src/logic-functions/domain/compute-call-recording-charge.util'; - -export const chargeCompletedCallRecording = async ({ - callRecordingId, - startedAt, - endedAt, -}: { - callRecordingId: string; - startedAt: string | undefined; - endedAt: string | undefined; -}): Promise => { - const charge = computeCallRecordingCharge({ startedAt, endedAt }); - - if (isUndefined(charge)) { - console.warn( - `[twenty-meeting-bot] call recording ${callRecordingId} completed without usable recording timestamps; it will not be billed`, - ); - - return; - } - - await chargeCredits({ - creditsUsedMicro: charge.creditsUsedMicro, - quantity: charge.quantityMinutes, - operationType: 'CALL_RECORDING', - resourceContext: 'recall', - }); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/complete-and-charge-call-recording.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/complete-and-charge-call-recording.util.ts deleted file mode 100644 index 1c1dff964b80c..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/complete-and-charge-call-recording.util.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { completeCallRecordingIngestion } from 'src/logic-functions/data/complete-call-recording-ingestion.util'; -import { chargeCompletedCallRecording } from 'src/logic-functions/flows/charge-completed-call-recording.util'; - -export const completeAndChargeCallRecording = async ( - client: CoreApiClient, - { - id, - startedAt, - endedAt, - }: { - id: string; - startedAt: string | undefined; - endedAt: string | undefined; - }, -): Promise => { - const claimed = await completeCallRecordingIngestion(client, { id }); - - if (claimed) { - await chargeCompletedCallRecording({ - callRecordingId: id, - startedAt, - endedAt, - }); - } - - return claimed; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/converge-diverged-call-recordings-result.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/converge-diverged-call-recordings-result.type.ts deleted file mode 100644 index d76740720d778..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/converge-diverged-call-recordings-result.type.ts +++ /dev/null @@ -1,8 +0,0 @@ -export type ConvergeDivergedCallRecordingsResult = { - candidateCount: number; - updatedCallRecordingIds: string[]; - markedFailedCallRecordingIds: string[]; - requestedTranscriptCallRecordingIds: string[]; - unconvergeableCallRecordingIds: string[]; - skippedNotStartedCallRecordingIds: string[]; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/converge-diverged-call-recordings.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/converge-diverged-call-recordings.util.ts deleted file mode 100644 index 0e27173f4e418..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/converge-diverged-call-recordings.util.ts +++ /dev/null @@ -1,449 +0,0 @@ -import { isNonEmptyArray, isUndefined } from '@sniptt/guards'; -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { CallRecordingRequestStatus } from 'src/logic-functions/constants/call-recording-request-status'; -import { CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status'; -import { NON_TERMINAL_CALL_RECORDING_STATUSES } from 'src/logic-functions/constants/non-terminal-call-recording-statuses'; -import { TWENTY_PAGE_SIZE } from 'src/logic-functions/constants/twenty-page-size'; -import { type FilesFieldValue } from 'src/logic-functions/types/files-field-value.type'; -import { - extractRecallBotConvergence, - type RecallBotConvergence, -} from 'src/logic-functions/recall-api/extract-recall-bot-convergence.util'; -import { - fetchAllNodes, - type ConnectionPage, -} from 'src/logic-functions/data/fetch-all-nodes.util'; -import { getRecallBot } from 'src/logic-functions/recall-api/get-recall-bot.util'; -import { ingestCallRecordingMedia } from 'src/logic-functions/flows/ingest-call-recording-media.util'; -import { isCallRecordingStatusDowngrade } from 'src/logic-functions/domain/is-call-recording-status-downgrade.util'; -import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util'; -import { parseTranscriptMarker } from 'src/logic-functions/domain/parse-transcript-marker.util'; -import { persistCallRecordingProgress } from 'src/logic-functions/flows/persist-call-recording-progress.util'; -import { reconcileCallRecordingTranscriptArtifact } from 'src/logic-functions/flows/reconcile-call-recording-transcript-artifact.util'; -import { type ConvergeDivergedCallRecordingsResult } from 'src/logic-functions/flows/converge-diverged-call-recordings-result.type'; -import { shouldCompleteCallRecordingIngestion } from 'src/logic-functions/domain/should-complete-call-recording-ingestion.util'; -import { - updateCallRecording, - type CallRecordingUpdateFields, -} from 'src/logic-functions/data/update-call-recording.util'; - -const CONVERGENCE_LOOKBACK_DAYS = 7; - -type DivergedCallRecordingCandidate = { - id: string; - status: string | undefined; - startedAt: string | undefined; - endedAt: string | undefined; - externalBotId: string | undefined; - externalRecordingId: string | undefined; - transcript: unknown; - audio: FilesFieldValue | undefined; - video: FilesFieldValue | undefined; - createdAt: string | undefined; - calendarEventStartsAt: string | undefined; - calendarEventEndsAt: string | undefined; -}; - -type DivergedCallRecordingNode = { - id: string; - status?: string | null; - startedAt?: string | null; - endedAt?: string | null; - externalBotId?: string | null; - externalRecordingId?: string | null; - transcript?: unknown; - audio?: FilesFieldValue | null; - video?: FilesFieldValue | null; - createdAt?: string | null; - calendarEvent?: { startsAt?: string | null; endsAt?: string | null } | null; -}; - -// Webhook deliveries get lost; this pull pass re-derives state from Recall. -export const convergeDivergedCallRecordings = async ({ - client, - now, -}: { - client: CoreApiClient; - now: Date; -}): Promise => { - const candidates = await fetchDivergedCallRecordingCandidates(client); - const convergenceLowerBound = new Date( - now.getTime() - CONVERGENCE_LOOKBACK_DAYS * 24 * 60 * 60 * 1000, - ); - const result: ConvergeDivergedCallRecordingsResult = { - candidateCount: candidates.length, - updatedCallRecordingIds: [], - markedFailedCallRecordingIds: [], - requestedTranscriptCallRecordingIds: [], - unconvergeableCallRecordingIds: [], - skippedNotStartedCallRecordingIds: [], - }; - - for (const candidate of candidates) { - if (isOutsideConvergenceBound(candidate, convergenceLowerBound)) { - console.warn( - `[twenty-meeting-bot] call recording ${candidate.id} diverged but its meeting ended more than ${CONVERGENCE_LOOKBACK_DAYS} days ago; it will not converge automatically`, - ); - result.unconvergeableCallRecordingIds.push(candidate.id); - continue; - } - - if (isUndefined(candidate.externalBotId)) { - console.warn( - `[twenty-meeting-bot] call recording ${candidate.id} diverged but has no Recall bot id; it will not converge automatically`, - ); - result.unconvergeableCallRecordingIds.push(candidate.id); - continue; - } - - if (isBeforeMeetingStart(candidate, now)) { - result.skippedNotStartedCallRecordingIds.push(candidate.id); - continue; - } - - await convergeCallRecording({ - client, - candidate, - externalBotId: candidate.externalBotId, - now, - result, - }); - } - - return result; -}; - -const fetchDivergedCallRecordingCandidates = async ( - client: CoreApiClient, -): Promise => { - // No createdAt bound: older-than-lookback candidates must surface in logs. - const filter: Record = { - or: [ - { - recordingRequestStatus: { eq: CallRecordingRequestStatus.REQUESTED }, - status: { in: NON_TERMINAL_CALL_RECORDING_STATUSES }, - externalBotId: { is: 'NOT_NULL' }, - }, - { - status: { eq: CallRecordingStatus.COMPLETED }, - or: [{ startedAt: { is: 'NULL' } }, { endedAt: { is: 'NULL' } }], - }, - ], - }; - const candidateNodes = await fetchAllNodes( - async (afterCursor) => { - const queryResult = await client.query({ - callRecordings: { - __args: { - filter, - first: TWENTY_PAGE_SIZE, - ...(isUndefined(afterCursor) ? {} : { after: afterCursor }), - }, - pageInfo: { - hasNextPage: true, - endCursor: true, - }, - edges: { - node: { - id: true, - status: true, - startedAt: true, - endedAt: true, - externalBotId: true, - externalRecordingId: true, - transcript: true, - audio: { fileId: true }, - video: { fileId: true }, - createdAt: true, - calendarEvent: { - startsAt: true, - endsAt: true, - }, - }, - }, - }, - }); - - return (queryResult.callRecordings ?? undefined) as - | ConnectionPage - | undefined; - }, - ); - - return candidateNodes.map((node) => ({ - id: node.id, - status: node.status ?? undefined, - startedAt: node.startedAt ?? undefined, - endedAt: node.endedAt ?? undefined, - externalBotId: isNonEmptyString(node.externalBotId) - ? node.externalBotId - : undefined, - externalRecordingId: isNonEmptyString(node.externalRecordingId) - ? node.externalRecordingId - : undefined, - transcript: node.transcript ?? undefined, - audio: node.audio ?? undefined, - video: node.video ?? undefined, - createdAt: node.createdAt ?? undefined, - calendarEventStartsAt: node.calendarEvent?.startsAt ?? undefined, - calendarEventEndsAt: node.calendarEvent?.endsAt ?? undefined, - })); -}; - -// Anchored to meeting end: createdAt is scheduling time and can predate the meeting by weeks. -const isOutsideConvergenceBound = ( - candidate: DivergedCallRecordingCandidate, - convergenceLowerBound: Date, -): boolean => { - const meetingEndReference = - candidate.calendarEventEndsAt ?? candidate.createdAt; - - return ( - !isUndefined(meetingEndReference) && - new Date(meetingEndReference).getTime() < convergenceLowerBound.getTime() - ); -}; - -// Until the meeting starts the bot has recorded nothing, so there is nothing to pull yet. -const isBeforeMeetingStart = ( - candidate: DivergedCallRecordingCandidate, - now: Date, -): boolean => - !isUndefined(candidate.calendarEventStartsAt) && - new Date(candidate.calendarEventStartsAt).getTime() > now.getTime(); - -const convergeCallRecording = async ({ - client, - candidate, - externalBotId, - now, - result, -}: { - client: CoreApiClient; - candidate: DivergedCallRecordingCandidate; - externalBotId: string; - now: Date; - result: ConvergeDivergedCallRecordingsResult; -}): Promise => { - const botResult = await getRecallBot({ externalBotId }); - - if (!botResult.ok) { - if (botResult.status === 404) { - await markCallRecordingFailedAfterBotLoss({ - client, - candidate, - externalBotId, - result, - }); - - return; - } - - console.warn( - `[twenty-meeting-bot] failed to fetch Recall bot ${externalBotId} for call recording ${candidate.id}: ${botResult.errorMessage}`, - ); - - return; - } - - const convergence = extractRecallBotConvergence(botResult.bot); - const updateData = buildConvergenceFieldUpdates({ candidate, convergence }); - - const externalRecordingId = - candidate.externalRecordingId ?? convergence.externalRecordingId; - - if (convergence.isRecallRecordingDone && !isUndefined(externalRecordingId)) { - const transcriptArtifactResult = - await reconcileCallRecordingTranscriptArtifact({ - callRecordingId: candidate.id, - currentStatus: candidate.status, - externalRecordingId, - requestedAt: now.toISOString(), - transcript: candidate.transcript, - }); - - Object.assign(updateData, transcriptArtifactResult.updateData); - - if (transcriptArtifactResult.requestedTranscript) { - result.requestedTranscriptCallRecordingIds.push(candidate.id); - } - - Object.assign( - updateData, - await ingestCallRecordingMedia({ - callRecordingId: candidate.id, - externalRecordingId, - hasAudio: isNonEmptyArray(candidate.audio), - hasVideo: isNonEmptyArray(candidate.video), - }), - ); - } - - const terminalArtifactGateFailureUpdate = - buildTerminalArtifactGateFailureUpdate({ - candidate, - convergence, - externalRecordingId, - updateData, - }); - - if (!isUndefined(terminalArtifactGateFailureUpdate)) { - Object.assign(updateData, terminalArtifactGateFailureUpdate); - } - - const completesIngestion = shouldCompleteCallRecordingIngestion({ - current: candidate, - updateData, - }); - - if (Object.keys(updateData).length === 0 && !completesIngestion) { - return; - } - - await persistCallRecordingProgress(client, { - id: candidate.id, - current: candidate, - updateData, - }); - - result.updatedCallRecordingIds.push(candidate.id); -}; - -// Pure merge: fill only unset candidate fields and never downgrade status. -const buildConvergenceFieldUpdates = ({ - candidate, - convergence, -}: { - candidate: DivergedCallRecordingCandidate; - convergence: RecallBotConvergence; -}): CallRecordingUpdateFields => { - const updateData: CallRecordingUpdateFields = {}; - - if ( - !isUndefined(convergence.status) && - convergence.status !== candidate.status && - !isCallRecordingStatusDowngrade({ - fromStatus: candidate.status, - toStatus: convergence.status, - }) - ) { - updateData.status = convergence.status; - - if (convergence.status === CallRecordingStatus.FAILED) { - updateData.meetingBotFailureReason = - convergence.failureReason ?? 'recall_bot_failed'; - } - } - - if (isUndefined(candidate.startedAt) && !isUndefined(convergence.startedAt)) { - updateData.startedAt = convergence.startedAt; - } - - if (isUndefined(candidate.endedAt) && !isUndefined(convergence.endedAt)) { - updateData.endedAt = convergence.endedAt; - } - - if ( - isUndefined(candidate.externalRecordingId) && - !isUndefined(convergence.externalRecordingId) - ) { - updateData.externalRecordingId = convergence.externalRecordingId; - } - - return updateData; -}; - -type TerminalArtifactGateFailureUpdate = { - status: CallRecordingStatus.FAILED; - meetingBotFailureReason: string; -}; - -const buildTerminalArtifactGateFailureUpdate = ({ - candidate, - convergence, - externalRecordingId, - updateData, -}: { - candidate: DivergedCallRecordingCandidate; - convergence: RecallBotConvergence; - externalRecordingId: string | undefined; - updateData: CallRecordingUpdateFields; -}): TerminalArtifactGateFailureUpdate | undefined => { - if ( - candidate.status === CallRecordingStatus.COMPLETED || - updateData.status === CallRecordingStatus.FAILED || - !convergence.isRecallRecordingDone || - !isUndefined(externalRecordingId) || - hasRecordingArtifactPath({ candidate, updateData }) - ) { - return undefined; - } - - return { - status: CallRecordingStatus.FAILED, - meetingBotFailureReason: - convergence.failureReason ?? 'recording_artifacts_unavailable', - }; -}; - -const hasRecordingArtifactPath = ({ - candidate, - updateData, -}: { - candidate: DivergedCallRecordingCandidate; - updateData: CallRecordingUpdateFields; -}): boolean => { - return ( - isNonEmptyArray(updateData.audio ?? candidate.audio) || - isNonEmptyArray(updateData.video ?? candidate.video) || - hasReachableTranscript(updateData.transcript ?? candidate.transcript) - ); -}; - -const hasReachableTranscript = (transcript: unknown): boolean => { - if (isUndefined(transcript)) { - return false; - } - - const marker = parseTranscriptMarker(transcript); - - return isUndefined(marker) || marker.status === 'PENDING'; -}; - -const markCallRecordingFailedAfterBotLoss = async ({ - client, - candidate, - externalBotId, - result, -}: { - client: CoreApiClient; - candidate: DivergedCallRecordingCandidate; - externalBotId: string; - result: ConvergeDivergedCallRecordingsResult; -}): Promise => { - // externalBotId is kept for audit even though the bot is gone at Recall. - console.warn( - `[twenty-meeting-bot] Recall bot ${externalBotId} for call recording ${candidate.id} no longer exists; it will not converge automatically`, - ); - - if ( - isCallRecordingStatusDowngrade({ - fromStatus: candidate.status, - toStatus: CallRecordingStatus.FAILED, - }) - ) { - result.unconvergeableCallRecordingIds.push(candidate.id); - - return; - } - - await updateCallRecording(client, { - id: candidate.id, - data: { - status: CallRecordingStatus.FAILED, - meetingBotFailureReason: 'recall_bot_not_found', - }, - }); - result.markedFailedCallRecordingIds.push(candidate.id); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/download-transcript.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/download-transcript.util.ts deleted file mode 100644 index f4a69ea813854..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/download-transcript.util.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; - -import { retrieveRecallTranscript } from 'src/logic-functions/recall-api/retrieve-recall-transcript.util'; - -const TRANSCRIPT_DOWNLOAD_TIMEOUT_MS = 20_000; - -export type DownloadTranscriptResult = - | { outcome: 'filled'; content: unknown } - | { outcome: 'failed'; subCode: string | null } - | { outcome: 'pending' } - | { outcome: 'error'; errorMessage: string }; - -export const downloadTranscript = async ({ - transcriptId, -}: { - transcriptId: string; -}): Promise => { - const retrieveResult = await retrieveRecallTranscript({ transcriptId }); - - if (!retrieveResult.ok) { - return { outcome: 'error', errorMessage: retrieveResult.errorMessage }; - } - - const { downloadUrl, statusCode, statusSubCode } = retrieveResult.transcript; - - if (!isUndefined(downloadUrl)) { - return downloadTranscriptContent(downloadUrl); - } - - if (statusCode === 'error' || statusCode === 'failed') { - return { outcome: 'failed', subCode: statusSubCode ?? null }; - } - - return { outcome: 'pending' }; -}; - -const downloadTranscriptContent = async ( - downloadUrl: string, -): Promise => { - try { - const response = await fetch(downloadUrl, { - signal: AbortSignal.timeout(TRANSCRIPT_DOWNLOAD_TIMEOUT_MS), - }); - - if (!response.ok) { - console.warn( - `[twenty-meeting-bot] transcript download responded with HTTP ${response.status}`, - ); - - return { - outcome: 'error', - errorMessage: 'transcript download failed', - }; - } - - return { outcome: 'filled', content: await response.json() }; - } catch (error) { - console.warn( - `[twenty-meeting-bot] transcript download failed: ${error instanceof Error ? error.message : String(error)}`, - ); - - return { - outcome: 'error', - errorMessage: 'transcript download failed', - }; - } -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/ensure-meeting-bot.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/ensure-meeting-bot.util.ts deleted file mode 100644 index 165e9a88ae8cc..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/ensure-meeting-bot.util.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { CallRecordingRequestStatus } from 'src/logic-functions/constants/call-recording-request-status'; -import { type MeetingRecording } from 'src/logic-functions/types/meeting-recording.type'; -import { buildRecallBotMetadata } from 'src/logic-functions/domain/build-recall-bot-metadata.util'; -import { computeRecallBotJoinAt } from 'src/logic-functions/domain/compute-recall-bot-join-at.util'; -import { findCallRecordingsByIds } from 'src/logic-functions/data/find-call-recordings-by-ids.util'; -import { getCurrentWorkspaceId } from 'src/logic-functions/data/get-current-workspace-id.util'; -import { scheduleRecallBot } from 'src/logic-functions/recall-api/schedule-recall-bot.util'; -import { updateCallRecording } from 'src/logic-functions/data/update-call-recording.util'; - -// The sole place a Recall bot is created. Only the deterministic-create winner and the stale-state cron call it, so one writer per meeting POSTs exactly one bot. -export const ensureMeetingBot = async ( - client: CoreApiClient, - { callRecording, calendarEvent }: MeetingRecording, -): Promise => { - const meetingUrl = calendarEvent.conferenceLinkUrl; - const meetingStartsAt = calendarEvent.startsAt; - - if (isUndefined(meetingUrl) || isUndefined(meetingStartsAt)) { - return false; - } - - const joinAt = computeRecallBotJoinAt(meetingStartsAt); - - const freshCallRecording = ( - await findCallRecordingsByIds(client, [callRecording.id]) - )[0]; - - if ( - isUndefined(freshCallRecording) || - freshCallRecording.recordingRequestStatus !== - CallRecordingRequestStatus.REQUESTED || - !isUndefined(freshCallRecording.externalBotId) - ) { - return false; - } - - const workspaceId = getCurrentWorkspaceId(); - - if (isUndefined(workspaceId)) { - console.error( - `[twenty-meeting-bot] cannot schedule Recall bot for callRecording ${callRecording.id}: workspace id unavailable, the shared webhook could not be routed back`, - ); - - return false; - } - - const scheduleResult = await scheduleRecallBot({ - meetingUrl, - joinAt, - metadata: buildRecallBotMetadata({ - callRecording, - calendarEvent, - workspaceId, - }), - }); - - if (!scheduleResult.ok) { - console.warn( - `[twenty-meeting-bot] failed to schedule Recall bot for callRecording ${callRecording.id}: ${scheduleResult.errorMessage}`, - ); - - return false; - } - - await updateCallRecording(client, { - id: callRecording.id, - data: { externalBotId: scheduleResult.externalBotId }, - }); - - return true; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/handle-recall-webhook.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/handle-recall-webhook.util.ts deleted file mode 100644 index 3ef4ed12af76f..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/handle-recall-webhook.util.ts +++ /dev/null @@ -1,673 +0,0 @@ -import { isNonEmptyArray, isNull, isUndefined } from '@sniptt/guards'; -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status'; -import { type FilesFieldValue } from 'src/logic-functions/types/files-field-value.type'; -import { buildFailedTranscriptMarker } from 'src/logic-functions/domain/build-failed-transcript-marker.util'; -import { buildTranscriptFailureReason } from 'src/logic-functions/domain/build-transcript-failure-reason.util'; -import { downloadTranscript } from 'src/logic-functions/flows/download-transcript.util'; -import { extractRecallBotConvergence } from 'src/logic-functions/recall-api/extract-recall-bot-convergence.util'; -import { getRecallBot } from 'src/logic-functions/recall-api/get-recall-bot.util'; -import { getString } from 'src/logic-functions/utils/get-string.util'; -import { ingestCallRecordingMedia } from 'src/logic-functions/flows/ingest-call-recording-media.util'; -import { isCallRecordingStatusDowngrade } from 'src/logic-functions/domain/is-call-recording-status-downgrade.util'; -import { isRecallRecordingDoneSignal } from 'src/logic-functions/domain/is-recall-recording-done-signal.util'; -import { mapRecallStatusCodeToCallRecordingStatus } from 'src/logic-functions/domain/map-recall-status-code-to-call-recording-status.util'; -import { - parseRecallWebhookEvent, - type RecallWebhookBody, - type RecallWebhookEvent, -} from 'src/logic-functions/recall-api/parse-recall-webhook-event.util'; -import { parseTranscriptMarker } from 'src/logic-functions/domain/parse-transcript-marker.util'; -import { persistCallRecordingProgress } from 'src/logic-functions/flows/persist-call-recording-progress.util'; -import { reconcileCallRecordingTranscriptArtifact } from 'src/logic-functions/flows/reconcile-call-recording-transcript-artifact.util'; -import { - updateCallRecording, - type CallRecordingUpdateFields, -} from 'src/logic-functions/data/update-call-recording.util'; - -type MatchedCallRecording = { - id: string; - status?: string; - startedAt?: string; - endedAt?: string; - externalRecordingId?: string; - transcript?: unknown; - audio?: FilesFieldValue; - video?: FilesFieldValue; -}; - -type ExternalRecordingIdResolution = { - externalRecordingId: string | undefined; - providerLookupFailed: boolean; -}; - -type RecallWebhookHandlerResult = - | { - status: 'updated'; - callRecordingId: string; - event: string; - callRecordingStatus: string; - } - | { - status: 'updated'; - callRecordingId: string; - event: string; - transcriptOutcome: 'FILLED' | 'FAILED'; - } - | { - status: 'skipped'; - event: string | null; - reason: string; - }; - -export const handleRecallWebhook = async ({ - client, - body, -}: { - client: CoreApiClient; - body: RecallWebhookBody; -}): Promise => { - const webhookEvent = parseRecallWebhookEvent(body); - - if (isUndefined(webhookEvent)) { - return { - status: 'skipped', - event: null, - reason: 'missing event type', - }; - } - - const { event } = webhookEvent; - - if (event === 'transcript.done' || event === 'transcript.failed') { - return handleRecallTranscriptEvent({ client, webhookEvent, event }); - } - - return handleRecallStatusEvent({ client, webhookEvent }); -}; - -const handleRecallStatusEvent = async ({ - client, - webhookEvent, -}: { - client: CoreApiClient; - webhookEvent: RecallWebhookEvent; -}): Promise => { - const { event, statusCode } = webhookEvent; - const callRecordingStatus = mapRecallEventToCallRecordingStatus({ - event, - statusCode, - }); - - if (isUndefined(callRecordingStatus)) { - return { - status: 'skipped', - event, - reason: `unsupported Recall event status ${statusCode ?? event}`, - }; - } - - const callRecording = await findMatchingCallRecording({ - client, - webhookEvent, - }); - - if (isUndefined(callRecording)) { - return { - status: 'skipped', - event, - reason: 'no matching call recording', - }; - } - - if ( - isCallRecordingStatusDowngrade({ - fromStatus: callRecording.status, - toStatus: callRecordingStatus, - }) - ) { - return { - status: 'skipped', - event, - reason: `stale status event (${callRecording.status} -> ${callRecordingStatus})`, - }; - } - - const updateData: CallRecordingUpdateFields = { - ...(isUndefined(webhookEvent.externalBotId) - ? {} - : { externalBotId: webhookEvent.externalBotId }), - ...buildExternalRecordingIdUpdate(webhookEvent), - ...buildCallRecordingStatusUpdate({ - reason: getRecallWebhookFailureReason(webhookEvent), - status: callRecordingStatus, - }), - ...buildRecordingTimestampsUpdate({ webhookEvent, callRecording }), - }; - - if (isRecallRecordingDoneSignal({ event, statusCode })) { - const externalRecordingIdResolution = await resolveExternalRecordingId({ - callRecording, - webhookEvent, - }); - - Object.assign( - updateData, - await buildTranscriptArtifactUpdate({ - callRecording, - externalRecordingId: externalRecordingIdResolution.externalRecordingId, - }), - ); - - Object.assign( - updateData, - await buildMediaIngestionUpdate({ - callRecording, - externalRecordingId: externalRecordingIdResolution.externalRecordingId, - }), - ); - - const terminalArtifactGateFailureUpdate = - buildTerminalArtifactGateFailureUpdate({ - callRecording, - providerLookupFailed: - externalRecordingIdResolution.providerLookupFailed, - updateData, - webhookEvent, - }); - - if (!isUndefined(terminalArtifactGateFailureUpdate)) { - Object.assign(updateData, terminalArtifactGateFailureUpdate); - } - } - - const { completesIngestion } = await persistCallRecordingProgress(client, { - id: callRecording.id, - current: callRecording, - updateData, - }); - - return { - status: 'updated', - event, - callRecordingId: callRecording.id, - callRecordingStatus: completesIngestion - ? CallRecordingStatus.COMPLETED - : (updateData.status ?? callRecordingStatus), - }; -}; - -const findMatchingCallRecording = async ({ - client, - webhookEvent, -}: { - client: CoreApiClient; - webhookEvent: RecallWebhookEvent; -}): Promise => { - if (!isUndefined(webhookEvent.callRecordingIdFromMetadata)) { - return findCallRecordingByFilter(client, { - id: { eq: webhookEvent.callRecordingIdFromMetadata }, - }); - } - - if (isUndefined(webhookEvent.externalBotId)) { - return undefined; - } - - return findCallRecordingByFilter(client, { - externalBotId: { eq: webhookEvent.externalBotId }, - }); -}; - -const findCallRecordingByFilter = async ( - client: CoreApiClient, - filter: Record, -): Promise => { - const queryResult = await client.query({ - callRecordings: { - __args: { - filter, - first: 1, - }, - edges: { - node: { - id: true, - status: true, - startedAt: true, - endedAt: true, - externalRecordingId: true, - transcript: true, - audio: { fileId: true }, - video: { fileId: true }, - }, - }, - }, - }); - - const node = queryResult.callRecordings?.edges?.[0]?.node; - - if (isUndefined(node) || isNull(node)) { - return undefined; - } - - return { - id: node.id, - status: getString(node.status), - startedAt: getString(node.startedAt), - endedAt: getString(node.endedAt), - externalRecordingId: getString(node.externalRecordingId), - transcript: node.transcript ?? undefined, - audio: node.audio ?? undefined, - video: node.video ?? undefined, - }; -}; - -const mapRecallEventToCallRecordingStatus = ({ - event, - statusCode, -}: { - event: string; - statusCode: string | undefined; -}): CallRecordingStatus | undefined => { - if (event === 'recording.done') { - return CallRecordingStatus.PROCESSING; - } - - if (event === 'recording.failed') { - return CallRecordingStatus.FAILED; - } - - return mapRecallStatusCodeToCallRecordingStatus(statusCode); -}; - -const buildRecordingTimestampsUpdate = ({ - webhookEvent, - callRecording, -}: { - webhookEvent: RecallWebhookEvent; - callRecording: MatchedCallRecording; -}): { startedAt?: string; endedAt?: string } => { - const { event, statusCode, statusTimestamp } = webhookEvent; - - const impliesRecordingStarted = statusCode === 'in_call_recording'; - const impliesRecordingEnded = - event === 'recording.done' || - statusCode === 'call_ended' || - statusCode === 'done'; - - const startedAt = - webhookEvent.recordingStartedAt ?? - (impliesRecordingStarted ? statusTimestamp : undefined); - const endedAt = - webhookEvent.recordingEndedAt ?? - (impliesRecordingEnded ? statusTimestamp : undefined); - - return { - ...(!isUndefined(startedAt) && isUndefined(callRecording.startedAt) - ? { startedAt } - : {}), - ...(!isUndefined(endedAt) && isUndefined(callRecording.endedAt) - ? { endedAt } - : {}), - }; -}; - -const buildExternalRecordingIdUpdate = ( - webhookEvent: RecallWebhookEvent, -): { externalRecordingId?: string } => - isUndefined(webhookEvent.externalRecordingId) - ? {} - : { externalRecordingId: webhookEvent.externalRecordingId }; - -type NonFailedCallRecordingStatus = Exclude< - CallRecordingStatus, - CallRecordingStatus.FAILED ->; - -type CallRecordingStatusUpdate = - | { - status: NonFailedCallRecordingStatus; - } - | { - status: CallRecordingStatus.FAILED; - meetingBotFailureReason: string; - }; - -type TerminalArtifactGateFailureUpdate = { - status: CallRecordingStatus.FAILED; - meetingBotFailureReason: string; -}; - -const buildCallRecordingStatusUpdate = ({ - reason, - status, -}: { - reason: string; - status: CallRecordingStatus; -}): CallRecordingStatusUpdate => { - if (status === CallRecordingStatus.FAILED) { - return { status, meetingBotFailureReason: reason }; - } - - return { status }; -}; - -const buildTerminalArtifactGateFailureUpdate = ({ - callRecording, - providerLookupFailed, - updateData, - webhookEvent, -}: { - callRecording: MatchedCallRecording; - providerLookupFailed: boolean; - updateData: CallRecordingUpdateFields; - webhookEvent: RecallWebhookEvent; -}): TerminalArtifactGateFailureUpdate | undefined => { - if (updateData.status === CallRecordingStatus.FAILED) { - return isUndefined(updateData.meetingBotFailureReason) - ? { - status: CallRecordingStatus.FAILED, - meetingBotFailureReason: getRecallWebhookFailureReason(webhookEvent), - } - : undefined; - } - - if ( - providerLookupFailed || - hasRecordingArtifactPath({ callRecording, updateData }) - ) { - return undefined; - } - - return { - status: CallRecordingStatus.FAILED, - meetingBotFailureReason: 'recording_artifacts_unavailable', - }; -}; - -const getRecallWebhookFailureReason = ({ - event, - statusCode, -}: RecallWebhookEvent): string => statusCode ?? event; - -const hasRecordingArtifactPath = ({ - callRecording, - updateData, -}: { - callRecording: MatchedCallRecording; - updateData: CallRecordingUpdateFields; -}): boolean => { - return ( - !isUndefined( - updateData.externalRecordingId ?? callRecording.externalRecordingId, - ) || - isNonEmptyArray(updateData.audio ?? callRecording.audio) || - isNonEmptyArray(updateData.video ?? callRecording.video) || - hasReachableTranscript(updateData.transcript ?? callRecording.transcript) - ); -}; - -const hasReachableTranscript = (transcript: unknown): boolean => { - if (isNull(transcript) || isUndefined(transcript)) { - return false; - } - - const marker = parseTranscriptMarker(transcript); - - return isUndefined(marker) || marker.status === 'PENDING'; -}; - -const isTranscriptUnset = (callRecording: MatchedCallRecording): boolean => - isUndefined(callRecording.transcript); - -const buildMediaIngestionUpdate = async ({ - callRecording, - externalRecordingId, -}: { - callRecording: MatchedCallRecording; - externalRecordingId: string | undefined; -}): Promise> => { - const hasAudio = isNonEmptyArray(callRecording.audio); - const hasVideo = isNonEmptyArray(callRecording.video); - - if (hasAudio && hasVideo) { - return {}; - } - - if (isUndefined(externalRecordingId)) { - console.warn( - `[twenty-meeting-bot] cannot ingest media for call recording ${callRecording.id}: no Recall recording id available`, - ); - - return {}; - } - - return ingestCallRecordingMedia({ - callRecordingId: callRecording.id, - externalRecordingId, - hasAudio, - hasVideo, - }); -}; - -const buildTranscriptArtifactUpdate = async ({ - callRecording, - externalRecordingId, -}: { - callRecording: MatchedCallRecording; - externalRecordingId: string | undefined; -}): Promise => { - if (isUndefined(externalRecordingId)) { - console.warn( - `[twenty-meeting-bot] cannot reconcile transcript for call recording ${callRecording.id}: no Recall recording id available`, - ); - - return {}; - } - - const transcriptArtifactResult = - await reconcileCallRecordingTranscriptArtifact({ - callRecordingId: callRecording.id, - currentStatus: callRecording.status, - externalRecordingId, - requestedAt: new Date().toISOString(), - transcript: callRecording.transcript, - }); - - return { - ...(isUndefined(callRecording.externalRecordingId) - ? { externalRecordingId } - : {}), - ...transcriptArtifactResult.updateData, - }; -}; - -const resolveExternalRecordingId = async ({ - callRecording, - webhookEvent, -}: { - callRecording: MatchedCallRecording; - webhookEvent: RecallWebhookEvent; -}): Promise => { - const externalRecordingId = - webhookEvent.externalRecordingId ?? callRecording.externalRecordingId; - - if (!isUndefined(externalRecordingId)) { - return { externalRecordingId, providerLookupFailed: false }; - } - - if (isUndefined(webhookEvent.externalBotId)) { - return { externalRecordingId: undefined, providerLookupFailed: false }; - } - - return fetchExternalRecordingIdFromRecallBot(webhookEvent.externalBotId); -}; - -const fetchExternalRecordingIdFromRecallBot = async ( - externalBotId: string, -): Promise => { - const botResult = await getRecallBot({ externalBotId }); - - if (!botResult.ok) { - console.warn( - `[twenty-meeting-bot] failed to fetch Recall bot ${externalBotId} while resolving a recording id: ${botResult.errorMessage}`, - ); - - return { externalRecordingId: undefined, providerLookupFailed: true }; - } - - return { - externalRecordingId: extractRecallBotConvergence(botResult.bot) - .externalRecordingId, - providerLookupFailed: false, - }; -}; - -const handleRecallTranscriptEvent = async ({ - client, - webhookEvent, - event, -}: { - client: CoreApiClient; - webhookEvent: RecallWebhookEvent; - event: 'transcript.done' | 'transcript.failed'; -}): Promise => { - const callRecording = await findMatchingCallRecording({ - client, - webhookEvent, - }); - - if (isUndefined(callRecording)) { - return { - status: 'skipped', - event, - reason: 'no matching call recording', - }; - } - - const { transcriptId } = webhookEvent; - - if (event === 'transcript.failed') { - return applyTranscriptFailure({ - client, - callRecording, - event, - transcriptId, - subCode: webhookEvent.transcriptFailureSubCode ?? null, - }); - } - - if (isUndefined(transcriptId)) { - return { - status: 'skipped', - event, - reason: 'missing transcript id', - }; - } - - const downloadResult = await downloadTranscript({ transcriptId }); - - switch (downloadResult.outcome) { - case 'filled': { - const updateData: CallRecordingUpdateFields = { - transcript: downloadResult.content as Record, - ...(isUndefined(callRecording.externalRecordingId) - ? buildExternalRecordingIdUpdate(webhookEvent) - : {}), - }; - - await persistCallRecordingProgress(client, { - id: callRecording.id, - current: callRecording, - updateData, - }); - - return { - status: 'updated', - event, - callRecordingId: callRecording.id, - transcriptOutcome: 'FILLED', - }; - } - case 'failed': - return applyTranscriptFailure({ - client, - callRecording, - event, - transcriptId, - subCode: downloadResult.subCode, - }); - case 'pending': - case 'error': { - // 200-acked either way, Svix never redelivers; the cron re-check retries this. - const reason = - downloadResult.outcome === 'pending' - ? 'transcript not downloadable yet' - : downloadResult.errorMessage; - - console.warn( - `[twenty-meeting-bot] could not fill transcript for call recording ${callRecording.id}: ${reason}`, - ); - - return { - status: 'skipped', - event, - reason, - }; - } - } -}; - -const applyTranscriptFailure = async ({ - client, - callRecording, - event, - transcriptId, - subCode, -}: { - client: CoreApiClient; - callRecording: MatchedCallRecording; - event: string; - transcriptId: string | undefined; - subCode: string | null; -}): Promise => { - const existingMarker = parseTranscriptMarker(callRecording.transcript); - - if (!isTranscriptUnset(callRecording) && isUndefined(existingMarker)) { - return { - status: 'skipped', - event, - reason: 'transcript already filled', - }; - } - - console.warn( - `[twenty-meeting-bot] transcript failed for call recording ${callRecording.id}${isNull(subCode) ? '' : ` (${subCode})`}`, - ); - - await updateCallRecording(client, { - id: callRecording.id, - data: { - transcript: buildFailedTranscriptMarker({ - recallTranscriptId: - transcriptId ?? existingMarker?.recallTranscriptId ?? null, - subCode, - }), - meetingBotFailureReason: buildTranscriptFailureReason(subCode), - ...(isCallRecordingStatusDowngrade({ - fromStatus: callRecording.status, - toStatus: CallRecordingStatus.FAILED, - }) - ? {} - : { status: CallRecordingStatus.FAILED }), - }, - }); - - return { - status: 'updated', - event, - callRecordingId: callRecording.id, - transcriptOutcome: 'FAILED', - }; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/heal-call-recordings-missing-bot.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/heal-call-recordings-missing-bot.util.ts deleted file mode 100644 index a445a00a2acee..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/heal-call-recordings-missing-bot.util.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { type CalendarEventRecord } from 'src/logic-functions/types/calendar-event-record.type'; -import { ensureMeetingBot } from 'src/logic-functions/flows/ensure-meeting-bot.util'; -import { fetchCalendarEventsByIds } from 'src/logic-functions/data/fetch-calendar-events-by-ids.util'; -import { findOpenScheduledCallRecordings } from 'src/logic-functions/data/find-open-scheduled-call-recordings.util'; -import { getUniqueSortedIds } from 'src/logic-functions/utils/get-unique-sorted-ids.util'; - -export type HealCallRecordingsMissingBotResult = { - scheduledCallRecordingIds: string[]; -}; - -// Closes the create-winner crash gap: a run that inserted the row but died before POSTing leaves a botless recording, and the cron is the single writer that re-POSTs it. -export const healCallRecordingsMissingBot = async ({ - client, - now, -}: { - client: CoreApiClient; - now: Date; -}): Promise => { - const botlessCallRecordings = ( - await findOpenScheduledCallRecordings(client) - ).filter((callRecording) => isUndefined(callRecording.externalBotId)); - - if (botlessCallRecordings.length === 0) { - return { scheduledCallRecordingIds: [] }; - } - - const calendarEventsById = new Map( - ( - await fetchCalendarEventsByIds( - client, - getUniqueSortedIds( - botlessCallRecordings.map( - (callRecording) => callRecording.calendarEventId, - ), - ), - ) - ).map((calendarEvent) => [calendarEvent.id, calendarEvent]), - ); - const scheduledCallRecordingIds: string[] = []; - - for (const callRecording of botlessCallRecordings) { - const calendarEvent = isUndefined(callRecording.calendarEventId) - ? undefined - : calendarEventsById.get(callRecording.calendarEventId); - - if (isUndefined(calendarEvent) || hasMeetingEnded({ calendarEvent, now })) { - continue; - } - - const didScheduleMeetingBot = await ensureMeetingBot(client, { - callRecording, - calendarEvent, - }); - - if (didScheduleMeetingBot) { - scheduledCallRecordingIds.push(callRecording.id); - } - } - - return { scheduledCallRecordingIds }; -}; - -const hasMeetingEnded = ({ - calendarEvent, - now, -}: { - calendarEvent: CalendarEventRecord; - now: Date; -}): boolean => { - const reference = calendarEvent.endsAt ?? calendarEvent.startsAt; - - if (isUndefined(reference)) { - return false; - } - - const referenceTime = new Date(reference).getTime(); - - return !Number.isNaN(referenceTime) && referenceTime <= now.getTime(); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/ingest-call-recording-media.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/ingest-call-recording-media.util.ts deleted file mode 100644 index 79259d9ce26c8..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/ingest-call-recording-media.util.ts +++ /dev/null @@ -1,127 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; -import { MetadataApiClient } from 'twenty-client-sdk/metadata'; - -import { CALL_RECORDING_AUDIO_FIELD_UNIVERSAL_IDENTIFIER } from 'src/constants/call-recording-audio-field-universal-identifier'; -import { CALL_RECORDING_VIDEO_FIELD_UNIVERSAL_IDENTIFIER } from 'src/constants/call-recording-video-field-universal-identifier'; -import { extractRecallMediaUrls } from 'src/logic-functions/recall-api/extract-recall-media-urls.util'; -import { getRecallRecording } from 'src/logic-functions/recall-api/get-recall-recording.util'; -import { type CallRecordingUpdateFields } from 'src/logic-functions/data/update-call-recording.util'; - -type CallRecordingMediaUpdateFields = Pick< - CallRecordingUpdateFields, - 'audio' | 'video' ->; - -const MEDIA_DOWNLOAD_TIMEOUT_MS = 120_000; - -export const ingestCallRecordingMedia = async ({ - callRecordingId, - externalRecordingId, - hasAudio, - hasVideo, -}: { - callRecordingId: string; - externalRecordingId: string; - hasAudio: boolean; - hasVideo: boolean; -}): Promise => { - if (hasAudio && hasVideo) { - return {}; - } - - const recordingResult = await getRecallRecording({ externalRecordingId }); - - if (!recordingResult.ok) { - console.warn( - `[twenty-meeting-bot] failed to fetch Recall recording ${externalRecordingId} while ingesting media for call recording ${callRecordingId}: ${recordingResult.errorMessage}`, - ); - - return {}; - } - - const mediaUrls = extractRecallMediaUrls(recordingResult.recording); - const metadataClient = new MetadataApiClient(); - const updateFields: CallRecordingMediaUpdateFields = {}; - - if (!hasVideo && !isUndefined(mediaUrls.videoUrl)) { - const video = await ingestMediaArtifact({ - callRecordingId, - metadataClient, - url: mediaUrls.videoUrl, - fileName: 'video.mp4', - fieldMetadataUniversalIdentifier: - CALL_RECORDING_VIDEO_FIELD_UNIVERSAL_IDENTIFIER, - }); - - if (!isUndefined(video)) { - updateFields.video = video; - } - } - - if (!hasAudio && !isUndefined(mediaUrls.audioUrl)) { - const audio = await ingestMediaArtifact({ - callRecordingId, - metadataClient, - url: mediaUrls.audioUrl, - fileName: 'audio.mp3', - fieldMetadataUniversalIdentifier: - CALL_RECORDING_AUDIO_FIELD_UNIVERSAL_IDENTIFIER, - }); - - if (!isUndefined(audio)) { - updateFields.audio = audio; - } - } - - return updateFields; -}; - -const ingestMediaArtifact = async ({ - callRecordingId, - metadataClient, - url, - fileName, - fieldMetadataUniversalIdentifier, -}: { - callRecordingId: string; - metadataClient: InstanceType; - url: string; - fileName: string; - fieldMetadataUniversalIdentifier: string; -}): Promise<{ fileId: string; label: string }[] | undefined> => { - try { - const { buffer, contentType } = await downloadMediaFile(url); - const uploadedFile = await metadataClient.uploadFile( - buffer, - fileName, - contentType, - fieldMetadataUniversalIdentifier, - ); - - return [{ fileId: uploadedFile.id, label: fileName }]; - } catch (error) { - console.warn( - `[twenty-meeting-bot] failed to ingest ${fileName} for call recording ${callRecordingId}: ${error instanceof Error ? error.message : String(error)}`, - ); - - return undefined; - } -}; - -const downloadMediaFile = async ( - url: string, -): Promise<{ buffer: Buffer; contentType: string }> => { - const response = await fetch(url, { - signal: AbortSignal.timeout(MEDIA_DOWNLOAD_TIMEOUT_MS), - }); - - if (!response.ok) { - throw new Error(`download failed with status ${response.status}`); - } - - return { - buffer: Buffer.from(await response.arrayBuffer()), - contentType: - response.headers.get('content-type') ?? 'application/octet-stream', - }; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/persist-call-recording-progress.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/persist-call-recording-progress.util.ts deleted file mode 100644 index d72f9c402cd62..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/persist-call-recording-progress.util.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { type FilesFieldValue } from 'src/logic-functions/types/files-field-value.type'; -import { completeAndChargeCallRecording } from 'src/logic-functions/flows/complete-and-charge-call-recording.util'; -import { shouldCompleteCallRecordingIngestion } from 'src/logic-functions/domain/should-complete-call-recording-ingestion.util'; -import { - updateCallRecording, - type CallRecordingUpdateFields, -} from 'src/logic-functions/data/update-call-recording.util'; - -type PersistCallRecordingProgressCurrent = { - status?: string; - startedAt?: string; - endedAt?: string; - transcript?: unknown; - audio?: FilesFieldValue; - video?: FilesFieldValue; -}; - -export const persistCallRecordingProgress = async ( - client: CoreApiClient, - { - id, - current, - updateData, - }: { - id: string; - current: PersistCallRecordingProgressCurrent; - updateData: CallRecordingUpdateFields; - }, -): Promise<{ completesIngestion: boolean }> => { - const completesIngestion = shouldCompleteCallRecordingIngestion({ - current, - updateData, - }); - - if (!completesIngestion) { - await updateCallRecording(client, { id, data: updateData }); - - return { completesIngestion: false }; - } - - // Strip status so COMPLETED is written only by the atomic claim — its single winner bills once. - const nonStatusUpdate: CallRecordingUpdateFields = { ...updateData }; - - delete nonStatusUpdate.status; - delete nonStatusUpdate.meetingBotFailureReason; - - if (Object.keys(nonStatusUpdate).length > 0) { - await updateCallRecording(client, { id, data: nonStatusUpdate }); - } - - await completeAndChargeCallRecording(client, { - id, - startedAt: updateData.startedAt ?? current.startedAt, - endedAt: updateData.endedAt ?? current.endedAt, - }); - - return { completesIngestion: true }; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reap-orphaned-meeting-bots.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reap-orphaned-meeting-bots.util.ts deleted file mode 100644 index f7c8a35cbbdf2..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reap-orphaned-meeting-bots.util.ts +++ /dev/null @@ -1,185 +0,0 @@ -import { isNull, isUndefined } from '@sniptt/guards'; -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { CallRecordingRequestStatus } from 'src/logic-functions/constants/call-recording-request-status'; -import { type CallRecordingRecord } from 'src/logic-functions/types/call-recording-record.type'; -import { cancelRecallBot } from 'src/logic-functions/recall-api/cancel-recall-bot.util'; -import { ejectRecallBot } from 'src/logic-functions/recall-api/eject-recall-bot.util'; -import { findCallRecordingsByIds } from 'src/logic-functions/data/find-call-recordings-by-ids.util'; -import { getCurrentWorkspaceId } from 'src/logic-functions/data/get-current-workspace-id.util'; -import { getUniqueSortedIds } from 'src/logic-functions/utils/get-unique-sorted-ids.util'; -import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util'; -import { - listScheduledRecallBots, - type RecallScheduledBot, -} from 'src/logic-functions/recall-api/list-scheduled-recall-bots.util'; - -export type ReapOrphanedMeetingBotsResult = { - scannedBotCount: number; - canceledExternalBotIds: string[]; -}; - -// Bots no open CallRecording request claims would still join; cancel them on Recall. -export const reapOrphanedMeetingBots = async ({ - client, - joinAtAfter, - joinAtBefore, -}: { - client: CoreApiClient; - joinAtAfter: string; - joinAtBefore: string; -}): Promise => { - const listResult = await listScheduledRecallBots({ - joinAtAfter, - joinAtBefore, - }); - - if (!listResult.ok) { - console.warn( - `[twenty-meeting-bot] failed to list Recall bots for orphan reaping: ${listResult.errorMessage}`, - ); - - return { scannedBotCount: 0, canceledExternalBotIds: [] }; - } - - const currentWorkspaceId = getCurrentWorkspaceId(); - - if (isUndefined(currentWorkspaceId)) { - console.warn( - '[twenty-meeting-bot] cannot reap orphaned Recall bots: workspace id unavailable', - ); - - return { - scannedBotCount: listResult.bots.length, - canceledExternalBotIds: [], - }; - } - - const workspaceManagedBots = listResult.bots.filter((bot) => - isCurrentWorkspaceManagedBot({ bot, currentWorkspaceId }), - ); - - if (workspaceManagedBots.length === 0) { - return { - scannedBotCount: listResult.bots.length, - canceledExternalBotIds: [], - }; - } - - const callRecordings = await findCallRecordingsByIds( - client, - getUniqueSortedIds( - workspaceManagedBots.map((bot) => getClaimedCallRecordingId(bot)), - ), - ); - const callRecordingsById = new Map( - callRecordings.map((callRecording) => [callRecording.id, callRecording]), - ); - const canceledExternalBotIds: string[] = []; - - for (const bot of workspaceManagedBots) { - const claimedCallRecordingId = getClaimedCallRecordingId(bot); - const callRecording = isUndefined(claimedCallRecordingId) - ? undefined - : callRecordingsById.get(claimedCallRecordingId); - - if (isBotClaimed({ bot, callRecording })) { - continue; - } - - console.warn( - `[twenty-meeting-bot] canceling orphaned Recall bot ${bot.id} (claimed callRecording: ${claimedCallRecordingId})`, - ); - - if (await cancelOrEjectRecallBot(bot.id)) { - canceledExternalBotIds.push(bot.id); - } - } - - return { - scannedBotCount: listResult.bots.length, - canceledExternalBotIds, - }; -}; - -const getClaimedCallRecordingId = ( - bot: RecallScheduledBot, -): string | undefined => { - const claimedCallRecordingId = bot.metadata.twentyCallRecordingId; - - return normalizeOptionalString(claimedCallRecordingId); -}; - -const getClaimedWorkspaceId = ( - bot: RecallScheduledBot, -): string | undefined => { - const claimedWorkspaceId = bot.metadata.twentyWorkspaceId; - - return normalizeOptionalString(claimedWorkspaceId); -}; - -const isCurrentWorkspaceManagedBot = ({ - bot, - currentWorkspaceId, -}: { - bot: RecallScheduledBot; - currentWorkspaceId: string; -}): boolean => { - if (isUndefined(getClaimedCallRecordingId(bot))) { - return false; - } - - const claimedWorkspaceId = getClaimedWorkspaceId(bot); - - return claimedWorkspaceId === currentWorkspaceId; -}; - -const isBotClaimed = ({ - bot, - callRecording, -}: { - bot: RecallScheduledBot; - callRecording: CallRecordingRecord | undefined; -}): boolean => { - if ( - callRecording?.recordingRequestStatus !== - CallRecordingRequestStatus.REQUESTED - ) { - return false; - } - - if (callRecording.externalBotId === bot.id) { - return true; - } - - // An id-less REQUESTED recording may have a bot-id write-back in flight; spare its bot. - return isUndefined(callRecording.externalBotId); -}; - -const cancelOrEjectRecallBot = async ( - externalBotId: string, -): Promise => { - const cancelResult = await cancelRecallBot({ externalBotId }); - - if (cancelResult.ok) { - return true; - } - - // Deleting only works for not-yet-joined bots; eject the ones already in a call. - if (!isNull(cancelResult.status)) { - const ejectResult = await ejectRecallBot({ externalBotId }); - - if (ejectResult.ok) { - return true; - } - } - - console.warn( - `[twenty-meeting-bot] failed to cancel orphaned Recall bot ${externalBotId}: ${cancelResult.errorMessage}`, - ); - - return false; -}; - -const normalizeOptionalString = (value: unknown): string | undefined => - isNonEmptyString(value) ? value.trim() : undefined; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reconcile-call-recording-transcript-artifact-result.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reconcile-call-recording-transcript-artifact-result.type.ts deleted file mode 100644 index d7226cd24353a..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reconcile-call-recording-transcript-artifact-result.type.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { type CallRecordingUpdateFields } from 'src/logic-functions/data/update-call-recording.util'; - -type CallRecordingTranscriptArtifactUpdateFields = Pick< - CallRecordingUpdateFields, - 'meetingBotFailureReason' | 'status' | 'transcript' ->; - -export type ReconcileCallRecordingTranscriptArtifactResult = { - updateData: CallRecordingTranscriptArtifactUpdateFields; - requestedTranscript: boolean; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reconcile-call-recording-transcript-artifact.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reconcile-call-recording-transcript-artifact.util.ts deleted file mode 100644 index a657ae961a20f..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reconcile-call-recording-transcript-artifact.util.ts +++ /dev/null @@ -1,183 +0,0 @@ -import { isNull, isUndefined } from '@sniptt/guards'; - -import { CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status'; -import { buildFailedTranscriptMarker } from 'src/logic-functions/domain/build-failed-transcript-marker.util'; -import { buildPendingTranscriptMarker } from 'src/logic-functions/domain/build-pending-transcript-marker.util'; -import { buildTranscriptFailureReason } from 'src/logic-functions/domain/build-transcript-failure-reason.util'; -import { isCallRecordingStatusDowngrade } from 'src/logic-functions/domain/is-call-recording-status-downgrade.util'; -import { parseTranscriptMarker } from 'src/logic-functions/domain/parse-transcript-marker.util'; -import { createAsyncRecallTranscript } from 'src/logic-functions/recall-api/create-async-recall-transcript.util'; -import { listRecallTranscripts } from 'src/logic-functions/recall-api/list-recall-transcripts.util'; -import { type RecallTranscriptSummary } from 'src/logic-functions/recall-api/recall-transcript-summary.type'; -import { downloadTranscript } from 'src/logic-functions/flows/download-transcript.util'; -import { type ReconcileCallRecordingTranscriptArtifactResult } from 'src/logic-functions/flows/reconcile-call-recording-transcript-artifact-result.type'; - -type CallRecordingTranscriptArtifactUpdateFields = - ReconcileCallRecordingTranscriptArtifactResult['updateData']; - -export const reconcileCallRecordingTranscriptArtifact = async ({ - callRecordingId, - currentStatus, - externalRecordingId, - requestedAt, - transcript, -}: { - callRecordingId: string; - currentStatus: string | undefined; - externalRecordingId: string; - requestedAt: string; - transcript: unknown; -}): Promise => { - const existingTranscriptMarker = parseTranscriptMarker(transcript); - - if ( - !isNull(transcript) && - !isUndefined(transcript) && - isUndefined(existingTranscriptMarker) - ) { - return buildEmptyTranscriptArtifactResult(); - } - - if (existingTranscriptMarker?.status === 'FAILED') { - return buildEmptyTranscriptArtifactResult(); - } - - const listResult = await listRecallTranscripts({ externalRecordingId }); - - if (!listResult.ok) { - console.warn( - `[twenty-meeting-bot] failed to list Recall transcripts for recording ${externalRecordingId}: ${listResult.errorMessage}`, - ); - - return buildEmptyTranscriptArtifactResult(); - } - - const transcriptArtifact = selectRecallTranscriptArtifact( - listResult.transcripts, - ); - const pendingTranscriptMarkerRecallTranscriptId = - existingTranscriptMarker?.status === 'PENDING' - ? (existingTranscriptMarker.recallTranscriptId ?? undefined) - : undefined; - const transcriptIdToDownload = - transcriptArtifact?.id ?? pendingTranscriptMarkerRecallTranscriptId; - - if ( - isUndefined(transcriptArtifact) && - isUndefined(pendingTranscriptMarkerRecallTranscriptId) - ) { - const createResult = await createAsyncRecallTranscript({ - externalRecordingId, - callRecordingId, - }); - - if (!createResult.ok) { - console.warn( - `[twenty-meeting-bot] failed to request transcript for Recall recording ${externalRecordingId}: ${createResult.errorMessage}`, - ); - - return buildEmptyTranscriptArtifactResult(); - } - - return { - updateData: { - transcript: buildPendingTranscriptMarker({ - recallTranscriptId: createResult.transcriptId, - requestedAt, - }), - }, - requestedTranscript: true, - }; - } - - if ( - !isUndefined(transcriptArtifact) && - (transcriptArtifact.statusCode === 'failed' || - transcriptArtifact.statusCode === 'error') - ) { - return { - updateData: buildTranscriptFailureUpdate({ - currentStatus, - transcriptId: transcriptArtifact.id, - subCode: transcriptArtifact.statusSubCode ?? null, - }), - requestedTranscript: false, - }; - } - - if ( - !isUndefined(transcriptArtifact) && - transcriptArtifact.statusCode !== 'done' - ) { - return buildEmptyTranscriptArtifactResult(); - } - - if (isUndefined(transcriptIdToDownload)) { - return buildEmptyTranscriptArtifactResult(); - } - - const downloadResult = await downloadTranscript({ - transcriptId: transcriptIdToDownload, - }); - - if (downloadResult.outcome === 'filled') { - return { - updateData: { - transcript: downloadResult.content as Record, - }, - requestedTranscript: false, - }; - } - - if (downloadResult.outcome === 'failed') { - return { - updateData: buildTranscriptFailureUpdate({ - currentStatus, - transcriptId: transcriptIdToDownload, - subCode: downloadResult.subCode, - }), - requestedTranscript: false, - }; - } - - if (downloadResult.outcome === 'error') { - console.warn( - `[twenty-meeting-bot] could not fill transcript for call recording ${callRecordingId}: ${downloadResult.errorMessage}`, - ); - } - - return buildEmptyTranscriptArtifactResult(); -}; - -const buildEmptyTranscriptArtifactResult = - (): ReconcileCallRecordingTranscriptArtifactResult => ({ - updateData: {}, - requestedTranscript: false, - }); - -const selectRecallTranscriptArtifact = ( - transcripts: RecallTranscriptSummary[], -): RecallTranscriptSummary | undefined => - transcripts.find((transcript) => transcript.statusCode !== 'deleted'); - -const buildTranscriptFailureUpdate = ({ - currentStatus, - transcriptId, - subCode, -}: { - currentStatus: string | undefined; - transcriptId: string; - subCode: string | null; -}): CallRecordingTranscriptArtifactUpdateFields => ({ - transcript: buildFailedTranscriptMarker({ - recallTranscriptId: transcriptId, - subCode, - }), - meetingBotFailureReason: buildTranscriptFailureReason(subCode), - ...(isCallRecordingStatusDowngrade({ - fromStatus: currentStatus, - toStatus: CallRecordingStatus.FAILED, - }) - ? {} - : { status: CallRecordingStatus.FAILED }), -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reconcile-meeting-bot.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reconcile-meeting-bot.util.ts deleted file mode 100644 index 052e3b96299f5..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reconcile-meeting-bot.util.ts +++ /dev/null @@ -1,496 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { CallRecordingRequestStatus } from 'src/logic-functions/constants/call-recording-request-status'; -import { CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status'; -import { type CalendarEventRecord } from 'src/logic-functions/types/calendar-event-record.type'; -import { type CallRecordingRecord } from 'src/logic-functions/types/call-recording-record.type'; -import { type MeetingBotPolicyResultForMeeting } from 'src/logic-functions/types/meeting-bot-policy-result-for-meeting.type'; -import { type MeetingBotReconciliationResult } from 'src/logic-functions/types/meeting-bot-reconciliation-result.type'; -import { type RemovedMeetingBotOccurrence } from 'src/logic-functions/types/removed-meeting-bot-occurrence.type'; -import { aggregateMeetingBotPolicyResultsByMeeting } from 'src/logic-functions/domain/aggregate-meeting-bot-policy-results-by-meeting.util'; -import { buildMeetingBotPolicyResult } from 'src/logic-functions/domain/build-meeting-bot-policy-result.util'; -import { cancelCallRecordingRequest } from 'src/logic-functions/flows/cancel-call-recording-request.util'; -import { computeCallRecordingIdForMeeting } from 'src/logic-functions/domain/compute-call-recording-id-for-meeting.util'; -import { - createCallRecording, - type ScheduledCallRecordingFields, -} from 'src/logic-functions/data/create-call-recording.util'; -import { ensureMeetingBot } from 'src/logic-functions/flows/ensure-meeting-bot.util'; -import { fetchCalendarEventsByIds } from 'src/logic-functions/data/fetch-calendar-events-by-ids.util'; -import { fetchCalendarEventsByStartsAtValues } from 'src/logic-functions/data/fetch-calendar-events-by-starts-at-values.util'; -import { findCallRecordingsByCalendarEventIds } from 'src/logic-functions/data/find-call-recordings-by-calendar-event-ids.util'; -import { findCallRecordingsByIds } from 'src/logic-functions/data/find-call-recordings-by-ids.util'; -import { getUniqueSortedIds } from 'src/logic-functions/utils/get-unique-sorted-ids.util'; -import { rescheduleCallRecordingBot } from 'src/logic-functions/flows/reschedule-call-recording-bot.util'; -import { - updateCallRecording, - type CallRecordingUpdateFields, -} from 'src/logic-functions/data/update-call-recording.util'; - -export const reconcileMeetingBotForCalendarEventIds = async ({ - client, - calendarEventIds, - removedOccurrences = [], - now = new Date(), -}: { - client: CoreApiClient; - calendarEventIds: string[]; - removedOccurrences?: RemovedMeetingBotOccurrence[]; - now?: Date; -}): Promise => { - const meetingPolicyResults = await resolveMeetingBotPolicyResultsForMeetings({ - client, - calendarEventIds, - removedOccurrences, - now, - }); - - return reconcileMeetingBotForMeetingOccurrences({ - client, - meetingPolicyResults, - removedOccurrences, - }); -}; - -const resolveMeetingBotPolicyResultsForMeetings = async ({ - client, - calendarEventIds, - removedOccurrences = [], - now = new Date(), -}: { - client: CoreApiClient; - calendarEventIds: string[]; - removedOccurrences?: RemovedMeetingBotOccurrence[]; - now?: Date; -}): Promise => { - const changedCalendarEvents = await fetchCalendarEventsByIds( - client, - getUniqueSortedIds(calendarEventIds), - ); - const affectedMeetingKeys = new Set(); - const occurrenceStartsAtAnchors = new Set(); - const changedCalendarEventPolicyResults = changedCalendarEvents.map( - (calendarEvent) => buildMeetingBotPolicyResult(calendarEvent, now), - ); - - for (const policyResult of changedCalendarEventPolicyResults) { - affectedMeetingKeys.add(policyResult.realMeetingKey); - } - - for (const calendarEvent of changedCalendarEvents) { - if (!isUndefined(calendarEvent.startsAt)) { - occurrenceStartsAtAnchors.add(calendarEvent.startsAt); - } - } - - for (const removedOccurrence of removedOccurrences) { - affectedMeetingKeys.add(removedOccurrence.realMeetingKey); - - if (!isUndefined(removedOccurrence.startsAt)) { - occurrenceStartsAtAnchors.add(removedOccurrence.startsAt); - } - } - - if (affectedMeetingKeys.size === 0) { - return []; - } - - const occurrenceSiblingEvents = await fetchCalendarEventsByStartsAtValues( - client, - [...occurrenceStartsAtAnchors], - ); - const policyResultsByCalendarEventId = new Map( - changedCalendarEventPolicyResults.map((policyResult) => [ - policyResult.calendarEventId, - policyResult, - ]), - ); - - for (const calendarEvent of occurrenceSiblingEvents) { - if (policyResultsByCalendarEventId.has(calendarEvent.id)) { - continue; - } - - policyResultsByCalendarEventId.set( - calendarEvent.id, - buildMeetingBotPolicyResult(calendarEvent, now), - ); - } - - const perCalendarEventPolicyResults = [ - ...policyResultsByCalendarEventId.values(), - ] - .filter((policyResult) => - affectedMeetingKeys.has(policyResult.realMeetingKey), - ) - .map((policyResult) => ({ - calendarEventId: policyResult.calendarEventId, - realMeetingKey: policyResult.realMeetingKey, - shouldRequestBot: policyResult.shouldRequestBot, - })); - const meetingPolicyResults = aggregateMeetingBotPolicyResultsByMeeting( - perCalendarEventPolicyResults, - ); - const meetingKeysWithPolicyResult = new Set( - meetingPolicyResults.map( - (meetingPolicyResult) => meetingPolicyResult.realMeetingKey, - ), - ); - - for (const meetingKey of [...affectedMeetingKeys].sort()) { - if (meetingKeysWithPolicyResult.has(meetingKey)) { - continue; - } - - meetingPolicyResults.push({ - realMeetingKey: meetingKey, - shouldRequestBot: false, - calendarEventIds: [], - requestingCalendarEventIds: [], - }); - } - - return meetingPolicyResults; -}; - -const reconcileMeetingBotForMeetingOccurrences = async ({ - client, - meetingPolicyResults, - removedOccurrences = [], -}: { - client: CoreApiClient; - meetingPolicyResults: MeetingBotPolicyResultForMeeting[]; - removedOccurrences?: RemovedMeetingBotOccurrence[]; -}): Promise => { - const removedCalendarEventIdsByMeetingKey = - buildRemovedCalendarEventIdsByMeetingKey(removedOccurrences); - const reconciliationResults: MeetingBotReconciliationResult[] = []; - const orderedMeetingPolicyResults = [ - ...meetingPolicyResults.filter( - (meetingPolicyResult) => !meetingPolicyResult.shouldRequestBot, - ), - ...meetingPolicyResults.filter( - (meetingPolicyResult) => meetingPolicyResult.shouldRequestBot, - ), - ]; - - for (const meetingPolicyResult of orderedMeetingPolicyResults) { - const removedCalendarEventIds = - removedCalendarEventIdsByMeetingKey.get( - meetingPolicyResult.realMeetingKey, - ) ?? []; - - try { - reconciliationResults.push( - meetingPolicyResult.shouldRequestBot - ? await reconcileActiveMeeting({ - client, - meetingPolicyResult, - removedCalendarEventIds, - }) - : await reconcileCanceledMeeting({ - client, - meetingPolicyResult, - removedCalendarEventIds, - }), - ); - } catch (error) { - const errorMessage = - error instanceof Error ? error.message : String(error); - - console.error( - `[twenty-meeting-bot] reconciliation failed for meeting ${meetingPolicyResult.realMeetingKey}: ${errorMessage}`, - ); - reconciliationResults.push({ - action: 'FAILED', - realMeetingKey: meetingPolicyResult.realMeetingKey, - errorMessage, - }); - } - } - - return reconciliationResults; -}; - -const reconcileActiveMeeting = async ({ - client, - meetingPolicyResult, - removedCalendarEventIds, -}: { - client: CoreApiClient; - meetingPolicyResult: MeetingBotPolicyResultForMeeting; - removedCalendarEventIds: string[]; -}): Promise => { - const representativeCalendarEventId = getUniqueSortedIds( - meetingPolicyResult.requestingCalendarEventIds, - )[0]; - - if (isUndefined(representativeCalendarEventId)) { - return buildSkippedResult(meetingPolicyResult.realMeetingKey); - } - - const representativeCalendarEvent = ( - await fetchCalendarEventsByIds(client, [representativeCalendarEventId]) - )[0]; - - if (isUndefined(representativeCalendarEvent)) { - return buildSkippedResult(meetingPolicyResult.realMeetingKey); - } - - const callRecordingId = computeCallRecordingIdForMeeting( - meetingPolicyResult.realMeetingKey, - ); - const existingCallRecording = ( - await findCallRecordingsByIds(client, [callRecordingId]) - )[0]; - - if (!isUndefined(existingCallRecording)) { - return updatePolicyManagedCallRecording({ - client, - existingCallRecording, - representativeCalendarEvent, - realMeetingKey: meetingPolicyResult.realMeetingKey, - }); - } - - const manualOpenCallRecording = await findManualOpenCallRecording({ - client, - meetingPolicyResult, - removedCalendarEventIds, - }); - - if (!isUndefined(manualOpenCallRecording)) { - return { - action: 'SKIPPED', - realMeetingKey: meetingPolicyResult.realMeetingKey, - callRecordingId: manualOpenCallRecording.id, - }; - } - - return createPolicyManagedCallRecording({ - client, - callRecordingId, - representativeCalendarEvent, - realMeetingKey: meetingPolicyResult.realMeetingKey, - }); -}; - -const updatePolicyManagedCallRecording = async ({ - client, - existingCallRecording, - representativeCalendarEvent, - realMeetingKey, -}: { - client: CoreApiClient; - existingCallRecording: CallRecordingRecord; - representativeCalendarEvent: CalendarEventRecord; - realMeetingKey: string; -}): Promise => { - await updateCallRecording(client, { - id: existingCallRecording.id, - data: buildPolicyManagedCallRecordingUpdateFields({ - existingCallRecording, - calendarEvent: representativeCalendarEvent, - }), - }); - await rescheduleCallRecordingBot(client, { - callRecording: existingCallRecording, - calendarEvent: representativeCalendarEvent, - }); - - return { - action: 'UPDATED', - realMeetingKey, - callRecordingId: existingCallRecording.id, - }; -}; - -const createPolicyManagedCallRecording = async ({ - client, - callRecordingId, - representativeCalendarEvent, - realMeetingKey, -}: { - client: CoreApiClient; - callRecordingId: string; - representativeCalendarEvent: CalendarEventRecord; - realMeetingKey: string; -}): Promise => { - const scheduledFields = buildScheduledCallRecordingFields( - representativeCalendarEvent, - ); - - try { - await createCallRecording(client, { - id: callRecordingId, - data: scheduledFields, - }); - } catch (error) { - // The id is deterministic, so a conflict means a concurrent run created the row first. - const concurrentlyCreatedCallRecording = ( - await findCallRecordingsByIds(client, [callRecordingId]) - )[0]; - - if (isUndefined(concurrentlyCreatedCallRecording)) { - throw error; - } - - return updatePolicyManagedCallRecording({ - client, - existingCallRecording: concurrentlyCreatedCallRecording, - representativeCalendarEvent, - realMeetingKey, - }); - } - - // Winning the deterministic-id insert elects this run as the single writer that creates the bot. - await ensureMeetingBot(client, { - callRecording: { - id: callRecordingId, - ...scheduledFields, - title: scheduledFields.title ?? undefined, - }, - calendarEvent: representativeCalendarEvent, - }); - - return { - action: 'CREATED', - realMeetingKey, - callRecordingId, - }; -}; - -const findManualOpenCallRecording = async ({ - client, - meetingPolicyResult, - removedCalendarEventIds, -}: { - client: CoreApiClient; - meetingPolicyResult: MeetingBotPolicyResultForMeeting; - removedCalendarEventIds: string[]; -}): Promise => { - const calendarEventIds = getUniqueSortedIds([ - ...meetingPolicyResult.calendarEventIds, - ...meetingPolicyResult.requestingCalendarEventIds, - ...removedCalendarEventIds, - ]); - const callRecordings = await findCallRecordingsByCalendarEventIds( - client, - calendarEventIds, - ); - - return [...callRecordings] - .sort((firstCallRecording, secondCallRecording) => - firstCallRecording.id.localeCompare(secondCallRecording.id), - ) - .find( - (callRecording) => - callRecording.status !== CallRecordingStatus.COMPLETED && - isUndefined(callRecording.recordingRequestStatus), - ); -}; - -const reconcileCanceledMeeting = async ({ - client, - meetingPolicyResult, - removedCalendarEventIds, -}: { - client: CoreApiClient; - meetingPolicyResult: MeetingBotPolicyResultForMeeting; - removedCalendarEventIds: string[]; -}): Promise => { - const calendarEventIds = getUniqueSortedIds([ - ...meetingPolicyResult.calendarEventIds, - ...removedCalendarEventIds, - ]); - const cancellableCallRecordings = ( - await findCallRecordingsByCalendarEventIds(client, calendarEventIds) - ).filter( - (callRecording) => - callRecording.status === CallRecordingStatus.SCHEDULED && - callRecording.recordingRequestStatus === - CallRecordingRequestStatus.REQUESTED, - ); - - if (cancellableCallRecordings.length === 0) { - return buildSkippedResult(meetingPolicyResult.realMeetingKey); - } - - for (const callRecording of cancellableCallRecordings) { - await cancelCallRecordingRequest({ - client, - callRecording, - }); - } - - return { - action: 'CANCELED', - realMeetingKey: meetingPolicyResult.realMeetingKey, - callRecordingId: cancellableCallRecordings[0].id, - }; -}; - -// startedAt/endedAt come from the webhook; calendar writes never touch them. -const buildCalendarDrivenCallRecordingFields = ( - calendarEvent: CalendarEventRecord, -): Omit => ({ - // Wire null clears a stale title when the calendar title is gone or restricted. - title: calendarEvent.title ?? null, - recordingRequestStatus: CallRecordingRequestStatus.REQUESTED, - calendarEventId: calendarEvent.id, -}); - -const buildScheduledCallRecordingFields = ( - calendarEvent: CalendarEventRecord, -): ScheduledCallRecordingFields => ({ - ...buildCalendarDrivenCallRecordingFields(calendarEvent), - status: CallRecordingStatus.SCHEDULED, -}); - -// A live or finished bot lifecycle must never be reset to SCHEDULED by a calendar-driven update. -const buildPolicyManagedCallRecordingUpdateFields = ({ - existingCallRecording, - calendarEvent, -}: { - existingCallRecording: CallRecordingRecord; - calendarEvent: CalendarEventRecord; -}): CallRecordingUpdateFields => - canResetCallRecordingStatusToScheduled(existingCallRecording.status) - ? { - ...buildScheduledCallRecordingFields(calendarEvent), - ...(isUndefined(existingCallRecording.meetingBotFailureReason) - ? {} - : { meetingBotFailureReason: null }), - } - : buildCalendarDrivenCallRecordingFields(calendarEvent); - -const canResetCallRecordingStatusToScheduled = ( - status: string | undefined, -): boolean => - status === CallRecordingStatus.SCHEDULED || - status === CallRecordingStatus.FAILED; - -const buildRemovedCalendarEventIdsByMeetingKey = ( - removedOccurrences: RemovedMeetingBotOccurrence[], -): Map => { - const calendarEventIdsByMeetingKey = new Map(); - - for (const removedOccurrence of removedOccurrences) { - calendarEventIdsByMeetingKey.set(removedOccurrence.realMeetingKey, [ - ...(calendarEventIdsByMeetingKey.get(removedOccurrence.realMeetingKey) ?? - []), - removedOccurrence.calendarEventId, - ]); - } - - return calendarEventIdsByMeetingKey; -}; - -const buildSkippedResult = ( - realMeetingKey: string, -): MeetingBotReconciliationResult => ({ - action: 'SKIPPED', - realMeetingKey, - callRecordingId: null, -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reschedule-call-recording-bot.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reschedule-call-recording-bot.util.ts deleted file mode 100644 index f3be32c694a6a..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/flows/reschedule-call-recording-bot.util.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; -import { type CoreApiClient } from 'twenty-client-sdk/core'; - -import { type MeetingRecording } from 'src/logic-functions/types/meeting-recording.type'; -import { buildRecallBotMetadata } from 'src/logic-functions/domain/build-recall-bot-metadata.util'; -import { computeRecallBotJoinAt } from 'src/logic-functions/domain/compute-recall-bot-join-at.util'; -import { getCurrentWorkspaceId } from 'src/logic-functions/data/get-current-workspace-id.util'; -import { rescheduleRecallBot } from 'src/logic-functions/recall-api/reschedule-recall-bot.util'; -import { updateCallRecording } from 'src/logic-functions/data/update-call-recording.util'; - -const RECALL_BOT_NOT_FOUND_STATUS = 404; - -export const rescheduleCallRecordingBot = async ( - client: CoreApiClient, - { callRecording, calendarEvent }: MeetingRecording, -): Promise => { - const externalBotId = callRecording.externalBotId; - - if (isUndefined(externalBotId)) { - return; - } - - const meetingUrl = calendarEvent.conferenceLinkUrl; - const meetingStartsAt = calendarEvent.startsAt; - - if (isUndefined(meetingUrl) || isUndefined(meetingStartsAt)) { - return; - } - - const joinAt = computeRecallBotJoinAt(meetingStartsAt); - - const workspaceId = getCurrentWorkspaceId(); - - if (isUndefined(workspaceId)) { - console.warn( - `[twenty-meeting-bot] cannot reschedule Recall bot for callRecording ${callRecording.id}: workspace id unavailable`, - ); - - return; - } - - const rescheduleResult = await rescheduleRecallBot({ - externalBotId, - meetingUrl, - joinAt, - metadata: buildRecallBotMetadata({ - callRecording, - calendarEvent, - workspaceId, - }), - }); - - if (rescheduleResult.ok) { - return; - } - - // The bot vanished externally; drop the id so the stale-state cron re-creates it as the single writer. - if (rescheduleResult.status === RECALL_BOT_NOT_FOUND_STATUS) { - await updateCallRecording(client, { - id: callRecording.id, - data: { externalBotId: null }, - }); - - return; - } - - console.warn( - `[twenty-meeting-bot] failed to update Recall bot for callRecording ${callRecording.id}: ${rescheduleResult.errorMessage}`, - ); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/__tests__/extract-recall-bot-convergence.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/__tests__/extract-recall-bot-convergence.test.ts deleted file mode 100644 index 0b2ece8240ccc..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/__tests__/extract-recall-bot-convergence.test.ts +++ /dev/null @@ -1,153 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -import { extractRecallBotConvergence } from 'src/logic-functions/recall-api/extract-recall-bot-convergence.util'; - -describe('extractRecallBotConvergence', () => { - it('maps the latest status change code to a call recording status', () => { - const convergence = extractRecallBotConvergence({ - status_changes: [ - { code: 'joining_call', created_at: '2026-01-01T12:58:00.000Z' }, - { code: 'in_call_recording', created_at: '2026-01-01T13:02:00.000Z' }, - { code: 'call_ended', created_at: '2026-01-01T14:00:00.000Z' }, - { code: 'done', created_at: '2026-01-01T14:05:00.000Z' }, - ], - }); - - // COMPLETED is reserved for full artifact ingestion, never bot state. - expect(convergence.status).toBe('PROCESSING'); - expect(convergence.isRecallRecordingDone).toBe(true); - }); - - it('uses created_at to find the latest status when Recall returns status changes out of order', () => { - const convergence = extractRecallBotConvergence({ - status_changes: [ - { code: 'done', created_at: '2026-01-01T14:05:00.000Z' }, - { code: 'joining_call', created_at: '2026-01-01T12:58:00.000Z' }, - { code: 'in_call_recording', created_at: '2026-01-01T13:02:00.000Z' }, - ], - }); - - expect(convergence.status).toBe('PROCESSING'); - }); - - it('prefers recording-object timestamps over status change entries', () => { - const convergence = extractRecallBotConvergence({ - status_changes: [ - { code: 'in_call_recording', created_at: '2026-01-01T13:02:30.000Z' }, - { code: 'call_ended', created_at: '2026-01-01T14:00:30.000Z' }, - ], - recordings: [ - { - id: 'recall-recording-1', - started_at: '2026-01-01T13:02:00.000Z', - completed_at: '2026-01-01T14:00:00.000Z', - }, - ], - }); - - expect(convergence).toEqual({ - status: 'PROCESSING', - failureReason: undefined, - startedAt: '2026-01-01T13:02:00.000Z', - endedAt: '2026-01-01T14:00:00.000Z', - externalRecordingId: 'recall-recording-1', - isRecallRecordingDone: true, - }); - }); - - it('falls back to status change timestamps when recordings carry none', () => { - const convergence = extractRecallBotConvergence({ - status_changes: [ - { code: 'in_call_recording', created_at: '2026-01-01T13:02:00.000Z' }, - { code: 'call_ended', created_at: '2026-01-01T14:00:00.000Z' }, - ], - recordings: [{ id: 'recall-recording-1' }], - }); - - expect(convergence).toEqual({ - status: 'PROCESSING', - failureReason: undefined, - startedAt: '2026-01-01T13:02:00.000Z', - endedAt: '2026-01-01T14:00:00.000Z', - externalRecordingId: 'recall-recording-1', - isRecallRecordingDone: false, - }); - }); - - it('normalizes microsecond-precision Recall timestamps to millisecond ISO', () => { - const convergence = extractRecallBotConvergence({ - status_changes: [ - { code: 'done', created_at: '2026-06-10T12:20:00.123456+00:00' }, - ], - recordings: [ - { - id: 'recall-recording-1', - started_at: '2026-06-10T11:02:28.281597+00:00', - completed_at: '2026-06-10T12:17:28.281597+00:00', - }, - ], - }); - - expect(convergence.startedAt).toBe('2026-06-10T11:02:28.281Z'); - expect(convergence.endedAt).toBe('2026-06-10T12:17:28.281Z'); - }); - - it('returns nothing derivable from an empty bot response', () => { - expect(extractRecallBotConvergence({})).toEqual({ - status: undefined, - failureReason: undefined, - startedAt: undefined, - endedAt: undefined, - externalRecordingId: undefined, - isRecallRecordingDone: false, - }); - }); - - it('skips malformed status change entries', () => { - const convergence = extractRecallBotConvergence({ - status_changes: [ - null, - 'not-an-object', - { created_at: '2026-01-01T13:00:00.000Z' }, - { code: 'in_call_recording', created_at: '2026-01-01T13:02:00.000Z' }, - ], - recordings: 'not-an-array', - }); - - expect(convergence).toEqual({ - status: 'RECORDING', - failureReason: undefined, - startedAt: '2026-01-01T13:02:00.000Z', - endedAt: undefined, - externalRecordingId: undefined, - isRecallRecordingDone: false, - }); - }); - - it('carries the failing Recall status code as the failure reason', () => { - const convergence = extractRecallBotConvergence({ - status_changes: [ - { code: 'joining_call', created_at: '2026-01-01T12:58:00.000Z' }, - { - code: 'recording_permission_denied', - created_at: '2026-01-01T13:02:00.000Z', - }, - ], - }); - - expect(convergence.status).toBe('FAILED'); - expect(convergence.failureReason).toBe('recording_permission_denied'); - }); - - it('leaves the status undefined for unknown latest codes', () => { - const convergence = extractRecallBotConvergence({ - status_changes: [ - { code: 'in_call_recording', created_at: '2026-01-01T13:02:00.000Z' }, - { code: 'some_future_code', created_at: '2026-01-01T13:30:00.000Z' }, - ], - }); - - expect(convergence.status).toBeUndefined(); - expect(convergence.startedAt).toBe('2026-01-01T13:02:00.000Z'); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/__tests__/extract-recall-media-urls.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/__tests__/extract-recall-media-urls.test.ts deleted file mode 100644 index 1f254c3cc9d86..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/__tests__/extract-recall-media-urls.test.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { describe, expect, it } from 'vitest'; - -import { extractRecallMediaUrls } from 'src/logic-functions/recall-api/extract-recall-media-urls.util'; - -describe('extractRecallMediaUrls', () => { - it('reads both download urls flat from the v1.11 media shortcuts', () => { - expect( - extractRecallMediaUrls({ - id: 'recall-recording-1', - media_shortcuts: { - video_mixed: { - download_url: 'https://media.example.com/video.mp4', - }, - audio_mixed: { - download_url: 'https://media.example.com/audio.mp3', - }, - }, - }), - ).toEqual({ - videoUrl: 'https://media.example.com/video.mp4', - audioUrl: 'https://media.example.com/audio.mp3', - }); - }); - - it('falls back to the nested data.download_url shape', () => { - expect( - extractRecallMediaUrls({ - id: 'recall-recording-1', - media_shortcuts: { - video_mixed: { - data: { download_url: 'https://media.example.com/video.mp4' }, - }, - audio_mixed: { - data: { download_url: 'https://media.example.com/audio.mp3' }, - }, - }, - }), - ).toEqual({ - videoUrl: 'https://media.example.com/video.mp4', - audioUrl: 'https://media.example.com/audio.mp3', - }); - }); - - it('returns undefined urls when artifacts are absent', () => { - expect( - extractRecallMediaUrls({ - id: 'recall-recording-1', - media_shortcuts: { - video_mixed: {}, - }, - }), - ).toEqual({ videoUrl: undefined, audioUrl: undefined }); - }); - - it('tolerates malformed recording payloads', () => { - expect(extractRecallMediaUrls({})).toEqual({ - videoUrl: undefined, - audioUrl: undefined, - }); - expect(extractRecallMediaUrls({ media_shortcuts: 'not-a-record' })).toEqual( - { - videoUrl: undefined, - audioUrl: undefined, - }, - ); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/__tests__/recall-bot-api.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/__tests__/recall-bot-api.test.ts deleted file mode 100644 index 8e301c55d9b49..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/__tests__/recall-bot-api.test.ts +++ /dev/null @@ -1,795 +0,0 @@ -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; - -import { cancelRecallBot } from 'src/logic-functions/recall-api/cancel-recall-bot.util'; -import { createAsyncRecallTranscript } from 'src/logic-functions/recall-api/create-async-recall-transcript.util'; -import { ejectRecallBot } from 'src/logic-functions/recall-api/eject-recall-bot.util'; -import { getRecallBot } from 'src/logic-functions/recall-api/get-recall-bot.util'; -import { listRecallTranscripts } from 'src/logic-functions/recall-api/list-recall-transcripts.util'; -import { listScheduledRecallBots } from 'src/logic-functions/recall-api/list-scheduled-recall-bots.util'; -import { rescheduleRecallBot } from 'src/logic-functions/recall-api/reschedule-recall-bot.util'; -import { retrieveRecallTranscript } from 'src/logic-functions/recall-api/retrieve-recall-transcript.util'; -import { scheduleRecallBot } from 'src/logic-functions/recall-api/schedule-recall-bot.util'; -import { MEETING_BOT_RECORDING_RETENTION_HOURS_ENV_VAR_NAME } from 'src/logic-functions/constants/meeting-bot-recording-retention-hours-env-var-name'; - -const getRecallApiConfigMock = vi.hoisted(() => vi.fn()); -const WORKSPACE_ID = '123e4567-e89b-12d3-a456-426614174000'; - -vi.mock('src/logic-functions/recall-api/get-recall-api-config.util', () => ({ - getRecallApiConfig: getRecallApiConfigMock, -})); - -describe('recall bot api', () => { - const fetchMock = vi.fn(); - - beforeEach(() => { - delete process.env[MEETING_BOT_RECORDING_RETENTION_HOURS_ENV_VAR_NAME]; - getRecallApiConfigMock.mockReset(); - getRecallApiConfigMock.mockReturnValue({ - success: true, - config: { - apiKey: 'recall-api-key', - baseUrl: 'https://ap-northeast-1.recall.ai/api/v1', - botName: 'Twenty Meeting Bot', - }, - }); - fetchMock.mockReset(); - fetchMock.mockResolvedValue({ - ok: true, - status: 201, - json: async () => ({ id: 'recall-bot-id' }), - }); - vi.stubGlobal('fetch', fetchMock); - }); - - it('creates Recall bot requests with the Token authorization scheme', async () => { - const result = await scheduleRecallBot({ - meetingUrl: 'https://meet.google.com/abc-defg-hij', - joinAt: '2026-01-01T13:00:00.000Z', - metadata: { - twentyWorkspaceId: WORKSPACE_ID, - twentyCallRecordingId: 'call-recording-id', - twentyCalendarEventId: 'calendar-event-id', - twentyRealMeetingKey: 'meeting-key', - }, - }); - - expect(result).toEqual({ ok: true, externalBotId: 'recall-bot-id' }); - expect(fetchMock).toHaveBeenCalledWith( - 'https://ap-northeast-1.recall.ai/api/v1/bot/', - expect.objectContaining({ - method: 'POST', - headers: expect.objectContaining({ - Authorization: 'Token recall-api-key', - 'Content-Type': 'application/json', - }), - }), - ); - expect(JSON.parse(fetchMock.mock.calls[0][1].body)).toEqual({ - meeting_url: 'https://meet.google.com/abc-defg-hij', - join_at: '2026-01-01T13:00:00.000Z', - bot_name: 'Twenty Meeting Bot', - recording_config: { - video_mixed_mp4: {}, - audio_mixed_mp3: {}, - retention: { type: 'timed', hours: 166 }, - }, - metadata: { - twentyWorkspaceId: WORKSPACE_ID, - twentyCallRecordingId: 'call-recording-id', - twentyCalendarEventId: 'calendar-event-id', - twentyRealMeetingKey: 'meeting-key', - }, - }); - }); - - it('uses the configured Recall recording retention hours when scheduling a bot', async () => { - process.env[MEETING_BOT_RECORDING_RETENTION_HOURS_ENV_VAR_NAME] = '240'; - - const result = await scheduleRecallBot({ - meetingUrl: 'https://meet.google.com/abc-defg-hij', - joinAt: '2026-01-01T13:00:00.000Z', - metadata: { - twentyWorkspaceId: WORKSPACE_ID, - twentyCallRecordingId: 'call-recording-id', - twentyCalendarEventId: 'calendar-event-id', - twentyRealMeetingKey: 'meeting-key', - }, - }); - - expect(result).toEqual({ ok: true, externalBotId: 'recall-bot-id' }); - expect(JSON.parse(fetchMock.mock.calls[0][1].body).recording_config).toEqual( - { - video_mixed_mp4: {}, - audio_mixed_mp3: {}, - retention: { type: 'timed', hours: 240 }, - }, - ); - }); - - it('falls back to safe Recall recording retention hours when the configured value is invalid', async () => { - process.env[MEETING_BOT_RECORDING_RETENTION_HOURS_ENV_VAR_NAME] = - 'seven-days'; - - const result = await scheduleRecallBot({ - meetingUrl: 'https://meet.google.com/abc-defg-hij', - joinAt: '2026-01-01T13:00:00.000Z', - metadata: { - twentyWorkspaceId: WORKSPACE_ID, - twentyCallRecordingId: 'call-recording-id', - twentyCalendarEventId: 'calendar-event-id', - twentyRealMeetingKey: 'meeting-key', - }, - }); - - expect(result).toEqual({ ok: true, externalBotId: 'recall-bot-id' }); - expect(JSON.parse(fetchMock.mock.calls[0][1].body).recording_config).toEqual( - { - video_mixed_mp4: {}, - audio_mixed_mp3: {}, - retention: { type: 'timed', hours: 166 }, - }, - ); - }); - - it('fails when the create response does not include a bot id', async () => { - fetchMock.mockResolvedValue({ - ok: true, - status: 201, - json: async () => ({}), - }); - - const result = await scheduleRecallBot({ - meetingUrl: 'https://meet.google.com/abc-defg-hij', - joinAt: '2026-01-01T13:00:00.000Z', - metadata: { - twentyWorkspaceId: WORKSPACE_ID, - twentyCallRecordingId: 'call-recording-id', - twentyCalendarEventId: 'calendar-event-id', - twentyRealMeetingKey: 'meeting-key', - }, - }); - - expect(result).toEqual({ - ok: false, - status: null, - errorMessage: - 'Recall API created a bot but the response did not include a bot id', - }); - }); - - it('reports the HTTP status when rescheduling a bot that no longer exists', async () => { - fetchMock.mockResolvedValue({ - ok: false, - status: 404, - json: async () => ({ detail: 'Not found.' }), - }); - - const result = await rescheduleRecallBot({ - externalBotId: 'recall-bot-gone', - meetingUrl: 'https://meet.google.com/abc-defg-hij', - joinAt: '2026-01-01T13:00:00.000Z', - metadata: { - twentyWorkspaceId: WORKSPACE_ID, - twentyCallRecordingId: 'call-recording-id', - twentyCalendarEventId: 'calendar-event-id', - twentyRealMeetingKey: 'meeting-key', - }, - }); - - expect(result).toEqual({ - ok: false, - status: 404, - errorMessage: - 'Recall API responded with HTTP 404: {"detail":"Not found."}', - }); - expect(JSON.parse(fetchMock.mock.calls[0][1].body).recording_config).toEqual( - { - video_mixed_mp4: {}, - audio_mixed_mp3: {}, - retention: { type: 'timed', hours: 166 }, - }, - ); - }); - - it('does not duplicate an existing Token authorization prefix', async () => { - getRecallApiConfigMock.mockReturnValue({ - success: true, - config: { - apiKey: 'Token recall-api-key', - baseUrl: 'https://ap-northeast-1.recall.ai/api/v1', - botName: 'Twenty Meeting Bot', - }, - }); - - await scheduleRecallBot({ - meetingUrl: 'https://meet.google.com/abc-defg-hij', - joinAt: '2026-01-01T13:00:00.000Z', - metadata: { - twentyWorkspaceId: WORKSPACE_ID, - twentyCallRecordingId: 'call-recording-id', - twentyCalendarEventId: 'calendar-event-id', - twentyRealMeetingKey: 'meeting-key', - }, - }); - - expect(fetchMock).toHaveBeenCalledWith( - expect.any(String), - expect.objectContaining({ - headers: expect.objectContaining({ - Authorization: 'Token recall-api-key', - }), - }), - ); - }); - - it('lists scheduled bots in a join-at window and follows pagination', async () => { - fetchMock - .mockResolvedValueOnce({ - ok: true, - status: 200, - json: async () => ({ - next: 'https://ap-northeast-1.recall.ai/api/v1/bot/?cursor=page-2', - results: [ - { id: 'bot-1', metadata: { twentyCallRecordingId: 'recording-1' } }, - ], - }), - }) - .mockResolvedValueOnce({ - ok: true, - status: 200, - json: async () => ({ - next: null, - results: [{ id: 'bot-2' }], - }), - }); - - const result = await listScheduledRecallBots({ - joinAtAfter: '2026-01-01T08:00:00.000Z', - joinAtBefore: '2026-01-02T12:00:00.000Z', - }); - - expect(result).toEqual({ - ok: true, - bots: [ - { id: 'bot-1', metadata: { twentyCallRecordingId: 'recording-1' } }, - { id: 'bot-2', metadata: {} }, - ], - }); - expect(fetchMock).toHaveBeenNthCalledWith( - 1, - 'https://ap-northeast-1.recall.ai/api/v1/bot/?join_at_after=2026-01-01T08%3A00%3A00.000Z&join_at_before=2026-01-02T12%3A00%3A00.000Z', - expect.objectContaining({ method: 'GET' }), - ); - expect(fetchMock).toHaveBeenNthCalledWith( - 2, - 'https://ap-northeast-1.recall.ai/api/v1/bot/?cursor=page-2', - expect.objectContaining({ method: 'GET' }), - ); - }); - - it('fails the scheduled bot list when the pagination cap would truncate results', async () => { - for (let pageIndex = 1; pageIndex <= 10; pageIndex++) { - fetchMock.mockResolvedValueOnce({ - ok: true, - status: 200, - json: async () => ({ - next: `https://ap-northeast-1.recall.ai/api/v1/bot/?cursor=page-${pageIndex + 1}`, - results: [{ id: `bot-${pageIndex}` }], - }), - }); - } - - const result = await listScheduledRecallBots({ - joinAtAfter: '2026-01-01T08:00:00.000Z', - joinAtBefore: '2026-01-02T12:00:00.000Z', - }); - - expect(result).toEqual({ - ok: false, - status: null, - errorMessage: 'Recall bot list exceeded 10 pages', - }); - expect(fetchMock).toHaveBeenCalledTimes(10); - }); - - it('stops paginating when the next link points outside the configured region', async () => { - fetchMock.mockResolvedValue({ - ok: true, - status: 200, - json: async () => ({ - next: 'https://evil.example.com/api/v1/bot/?cursor=page-2', - results: [{ id: 'bot-1' }], - }), - }); - - const result = await listScheduledRecallBots({ - joinAtAfter: '2026-01-01T08:00:00.000Z', - joinAtBefore: '2026-01-02T12:00:00.000Z', - }); - - expect(result).toEqual({ - ok: true, - bots: [{ id: 'bot-1', metadata: {} }], - }); - expect(fetchMock).toHaveBeenCalledTimes(1); - }); - - it('cancels a scheduled Recall bot request', async () => { - fetchMock.mockResolvedValue({ - ok: true, - status: 204, - json: async () => ({}), - }); - - const result = await cancelRecallBot({ - externalBotId: 'recall-bot-id', - }); - - expect(result).toEqual({ ok: true }); - expect(fetchMock).toHaveBeenCalledWith( - 'https://ap-northeast-1.recall.ai/api/v1/bot/recall-bot-id/', - expect.objectContaining({ method: 'DELETE' }), - ); - }); - - it('ejects a bot through the leave_call endpoint', async () => { - fetchMock.mockResolvedValue({ - ok: true, - status: 200, - json: async () => ({ id: 'recall-bot-id' }), - }); - - const result = await ejectRecallBot({ - externalBotId: 'recall-bot-id', - }); - - expect(result).toEqual({ ok: true }); - expect(fetchMock).toHaveBeenCalledWith( - 'https://ap-northeast-1.recall.ai/api/v1/bot/recall-bot-id/leave_call/', - expect.objectContaining({ method: 'POST' }), - ); - }); - - it('fetches a single bot and returns the raw response', async () => { - const botResponse = { - id: 'recall-bot-id', - status_changes: [{ code: 'done' }], - recordings: [{ id: 'recall-recording-id' }], - }; - - fetchMock.mockResolvedValue({ - ok: true, - status: 200, - json: async () => botResponse, - }); - - const result = await getRecallBot({ externalBotId: 'recall-bot-id' }); - - expect(result).toEqual({ ok: true, bot: botResponse }); - expect(fetchMock).toHaveBeenCalledWith( - 'https://ap-northeast-1.recall.ai/api/v1/bot/recall-bot-id/', - expect.objectContaining({ method: 'GET' }), - ); - }); - - it('reports the HTTP status when fetching a bot that no longer exists', async () => { - fetchMock.mockResolvedValue({ - ok: false, - status: 404, - json: async () => ({ detail: 'Not found.' }), - }); - - const result = await getRecallBot({ externalBotId: 'recall-bot-gone' }); - - expect(result).toEqual({ - ok: false, - status: 404, - errorMessage: - 'Recall API responded with HTTP 404: {"detail":"Not found."}', - }); - }); - - it('lists transcripts for a recording id and normalizes status fields', async () => { - fetchMock.mockResolvedValue({ - ok: true, - status: 200, - json: async () => ({ - next: null, - results: [ - { - id: 'recall-transcript-id', - status: { code: 'done', sub_code: null }, - }, - ], - }), - }); - - const result = await listRecallTranscripts({ - externalRecordingId: 'recall-recording-id', - }); - - expect(result).toEqual({ - ok: true, - transcripts: [ - { - id: 'recall-transcript-id', - statusCode: 'done', - statusSubCode: undefined, - }, - ], - }); - expect(fetchMock).toHaveBeenCalledWith( - 'https://ap-northeast-1.recall.ai/api/v1/transcript/?recording_id=recall-recording-id', - expect.objectContaining({ method: 'GET' }), - ); - }); - - it('follows transcript list pagination within the configured Recall region', async () => { - fetchMock - .mockResolvedValueOnce({ - ok: true, - status: 200, - json: async () => ({ - next: 'https://ap-northeast-1.recall.ai/api/v1/transcript/?cursor=page-2', - results: [ - { - id: 'recall-transcript-id-1', - status: { code: 'processing' }, - }, - ], - }), - }) - .mockResolvedValueOnce({ - ok: true, - status: 200, - json: async () => ({ - next: null, - results: [ - { - id: 'recall-transcript-id-2', - status: { code: 'failed', sub_code: 'audio_missing' }, - }, - ], - }), - }); - - const result = await listRecallTranscripts({ - externalRecordingId: 'recall-recording-id', - }); - - expect(result).toEqual({ - ok: true, - transcripts: [ - { - id: 'recall-transcript-id-1', - statusCode: 'processing', - statusSubCode: undefined, - }, - { - id: 'recall-transcript-id-2', - statusCode: 'failed', - statusSubCode: 'audio_missing', - }, - ], - }); - expect(fetchMock).toHaveBeenNthCalledWith( - 2, - 'https://ap-northeast-1.recall.ai/api/v1/transcript/?cursor=page-2', - expect.objectContaining({ method: 'GET' }), - ); - }); - - it('rejects malformed transcript lists', async () => { - fetchMock.mockResolvedValue({ - ok: true, - status: 200, - json: async () => ({ - next: null, - results: [{}], - }), - }); - - const result = await listRecallTranscripts({ - externalRecordingId: 'recall-recording-id', - }); - - expect(result).toEqual({ - ok: false, - status: 200, - errorMessage: 'Recall API returned malformed transcript list', - }); - }); - - it('creates an async transcript with the locked provider settings', async () => { - fetchMock.mockResolvedValue({ - ok: true, - status: 201, - json: async () => ({ id: 'recall-transcript-id' }), - }); - - const result = await createAsyncRecallTranscript({ - externalRecordingId: 'recall-recording-id', - }); - - expect(result).toEqual({ ok: true, transcriptId: 'recall-transcript-id' }); - expect(fetchMock).toHaveBeenCalledWith( - 'https://ap-northeast-1.recall.ai/api/v1/recording/recall-recording-id/create_transcript/', - expect.objectContaining({ method: 'POST' }), - ); - expect(JSON.parse(fetchMock.mock.calls[0][1].body)).toEqual({ - provider: { recallai_async: { language_code: 'auto' } }, - diarization: { use_separate_streams_when_available: true }, - }); - }); - - it('adds call recording metadata when convergence creates an async transcript', async () => { - fetchMock.mockResolvedValue({ - ok: true, - status: 201, - json: async () => ({ id: 'recall-transcript-id' }), - }); - - const result = await createAsyncRecallTranscript({ - externalRecordingId: 'recall-recording-id', - callRecordingId: 'call-recording-id', - }); - - expect(result).toEqual({ ok: true, transcriptId: 'recall-transcript-id' }); - expect(JSON.parse(fetchMock.mock.calls[0][1].body)).toEqual({ - provider: { recallai_async: { language_code: 'auto' } }, - diarization: { use_separate_streams_when_available: true }, - metadata: { twentyCallRecordingId: 'call-recording-id' }, - }); - }); - - it('does not retry async transcript creation failures', async () => { - fetchMock.mockResolvedValue({ - ok: false, - status: 503, - json: async () => ({ detail: 'service unavailable' }), - }); - - const result = await createAsyncRecallTranscript({ - externalRecordingId: 'recall-recording-id', - }); - - expect(result).toEqual({ - ok: false, - status: 503, - errorMessage: - 'Recall API responded with HTTP 503: {"detail":"service unavailable"}', - }); - expect(fetchMock).toHaveBeenCalledTimes(1); - }); - - it('fails when the transcript creation response has no id', async () => { - fetchMock.mockResolvedValue({ - ok: true, - status: 201, - json: async () => ({}), - }); - - const result = await createAsyncRecallTranscript({ - externalRecordingId: 'recall-recording-id', - }); - - expect(result).toEqual({ - ok: false, - status: null, - errorMessage: - 'Recall API created a transcript but the response did not include a transcript id', - }); - }); - - it('retrieves transcript details with the download URL and status', async () => { - fetchMock.mockResolvedValue({ - ok: true, - status: 200, - json: async () => ({ - id: 'recall-transcript-id', - status: { code: 'done', sub_code: null }, - data: { - download_url: 'https://recall-transcripts.example.com/transcript', - }, - }), - }); - - const result = await retrieveRecallTranscript({ - transcriptId: 'recall-transcript-id', - }); - - expect(result).toEqual({ - ok: true, - transcript: { - downloadUrl: 'https://recall-transcripts.example.com/transcript', - statusCode: 'done', - statusSubCode: undefined, - }, - }); - expect(fetchMock).toHaveBeenCalledWith( - 'https://ap-northeast-1.recall.ai/api/v1/transcript/recall-transcript-id/', - expect.objectContaining({ method: 'GET' }), - ); - }); - - it('surfaces the failure sub code of an errored transcript', async () => { - fetchMock.mockResolvedValue({ - ok: true, - status: 200, - json: async () => ({ - id: 'recall-transcript-id', - status: { code: 'error', sub_code: 'audio_missing' }, - data: {}, - }), - }); - - const result = await retrieveRecallTranscript({ - transcriptId: 'recall-transcript-id', - }); - - expect(result).toEqual({ - ok: true, - transcript: { - downloadUrl: undefined, - statusCode: 'error', - statusSubCode: 'audio_missing', - }, - }); - }); - - it('rejects malformed transcript details', async () => { - fetchMock - .mockResolvedValueOnce({ - ok: true, - status: 200, - json: async () => ({ - id: 'recall-transcript-id', - status: { code: 'done' }, - data: {}, - }), - }) - .mockResolvedValueOnce({ - ok: true, - status: 200, - json: async () => ({ - id: 'recall-transcript-id', - data: {}, - }), - }); - - await expect( - retrieveRecallTranscript({ transcriptId: 'recall-transcript-id' }), - ).resolves.toEqual({ - ok: false, - status: 200, - errorMessage: 'Recall API returned malformed transcript details', - }); - await expect( - retrieveRecallTranscript({ transcriptId: 'recall-transcript-id' }), - ).resolves.toEqual({ - ok: false, - status: 200, - errorMessage: 'Recall API returned malformed transcript details', - }); - }); - - describe('transient failure retries', () => { - beforeEach(() => { - vi.useFakeTimers(); - }); - - afterEach(() => { - vi.useRealTimers(); - }); - - it('retries a network failure and succeeds on the next attempt', async () => { - fetchMock.mockRejectedValueOnce(new Error('socket hang up')); - fetchMock.mockResolvedValueOnce({ - ok: true, - status: 200, - json: async () => ({ id: 'recall-bot-id' }), - }); - - const resultPromise = getRecallBot({ externalBotId: 'recall-bot-id' }); - - await vi.runAllTimersAsync(); - - expect(await resultPromise).toEqual({ - ok: true, - bot: { id: 'recall-bot-id' }, - }); - expect(fetchMock).toHaveBeenCalledTimes(2); - }); - - it('retries a 503 response and succeeds on the next attempt', async () => { - fetchMock.mockResolvedValueOnce({ - ok: false, - status: 503, - json: async () => ({ detail: 'service unavailable' }), - }); - fetchMock.mockResolvedValueOnce({ - ok: true, - status: 200, - json: async () => ({ id: 'recall-bot-id' }), - }); - - const resultPromise = getRecallBot({ externalBotId: 'recall-bot-id' }); - - await vi.runAllTimersAsync(); - - expect(await resultPromise).toEqual({ - ok: true, - bot: { id: 'recall-bot-id' }, - }); - expect(fetchMock).toHaveBeenCalledTimes(2); - }); - - it('gives up after the attempt budget on persistent server errors', async () => { - fetchMock.mockResolvedValue({ - ok: false, - status: 500, - json: async () => ({ detail: 'server error' }), - }); - - const resultPromise = getRecallBot({ externalBotId: 'recall-bot-id' }); - - await vi.runAllTimersAsync(); - - expect(await resultPromise).toEqual({ - ok: false, - status: 500, - errorMessage: - 'Recall API responded with HTTP 500: {"detail":"server error"}', - }); - expect(fetchMock).toHaveBeenCalledTimes(3); - }); - - it('does not retry client errors', async () => { - fetchMock.mockResolvedValue({ - ok: false, - status: 400, - json: async () => ({ detail: 'bad request' }), - }); - - const result = await getRecallBot({ externalBotId: 'recall-bot-id' }); - - expect(result).toEqual({ - ok: false, - status: 400, - errorMessage: - 'Recall API responded with HTTP 400: {"detail":"bad request"}', - }); - expect(fetchMock).toHaveBeenCalledTimes(1); - }); - - it('does not retry an allowed 404 on cancel', async () => { - fetchMock.mockResolvedValue({ - ok: false, - status: 404, - json: async () => ({ detail: 'not found' }), - }); - - const result = await cancelRecallBot({ - externalBotId: 'recall-bot-id', - }); - - expect(result).toEqual({ ok: true }); - expect(fetchMock).toHaveBeenCalledTimes(1); - }); - - it('does not retry an allowed 404 on eject', async () => { - fetchMock.mockResolvedValue({ - ok: false, - status: 404, - json: async () => ({ detail: 'not found' }), - }); - - const result = await ejectRecallBot({ - externalBotId: 'recall-bot-id', - }); - - expect(result).toEqual({ ok: true }); - expect(fetchMock).toHaveBeenCalledTimes(1); - }); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/__tests__/verify-recall-webhook-signature.test.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/__tests__/verify-recall-webhook-signature.test.ts deleted file mode 100644 index b70c0fb2cd241..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/__tests__/verify-recall-webhook-signature.test.ts +++ /dev/null @@ -1,122 +0,0 @@ -import { createHmac } from 'crypto'; - -import { describe, expect, it } from 'vitest'; - -import { verifyRecallWebhookSignature } from 'src/logic-functions/recall-api/verify-recall-webhook-signature.util'; - -const SECRET_BYTES = Buffer.from('test-secret-abc123'); -const SECRET = `whsec_${SECRET_BYTES.toString('base64')}`; -const WEBHOOK_ID = 'msg_123'; -const WEBHOOK_TIMESTAMP = '1760000000'; -const NOW = new Date(Number(WEBHOOK_TIMESTAMP) * 1000); - -const sign = (body: string): string => - createHmac('sha256', SECRET_BYTES) - .update(`${WEBHOOK_ID}.${WEBHOOK_TIMESTAMP}.${body}`) - .digest('base64'); - -describe('verifyRecallWebhookSignature', () => { - it('accepts valid Recall webhook-* signature headers', () => { - const body = JSON.stringify({ event: 'recording.done' }); - - const result = verifyRecallWebhookSignature({ - rawBody: body, - secret: SECRET, - now: NOW, - headers: { - 'webhook-id': WEBHOOK_ID, - 'webhook-timestamp': WEBHOOK_TIMESTAMP, - 'webhook-signature': `v1,${sign(body)}`, - }, - }); - - expect(result).toEqual({ valid: true }); - }); - - it('accepts valid svix-* signature headers', () => { - const body = JSON.stringify({ event: 'recording.done' }); - - const result = verifyRecallWebhookSignature({ - rawBody: body, - secret: SECRET, - now: NOW, - headers: { - 'svix-id': WEBHOOK_ID, - 'svix-timestamp': WEBHOOK_TIMESTAMP, - 'svix-signature': `v1,${sign(body)}`, - }, - }); - - expect(result).toEqual({ valid: true }); - }); - - it('rejects deliveries whose timestamp is outside of the tolerance', () => { - const body = JSON.stringify({ event: 'recording.done' }); - - const result = verifyRecallWebhookSignature({ - rawBody: body, - secret: SECRET, - now: new Date(Number(WEBHOOK_TIMESTAMP) * 1000 + 6 * 60 * 1000), - headers: { - 'webhook-id': WEBHOOK_ID, - 'webhook-timestamp': WEBHOOK_TIMESTAMP, - 'webhook-signature': `v1,${sign(body)}`, - }, - }); - - expect(result).toEqual({ - valid: false, - error: 'Webhook timestamp is outside of the allowed tolerance', - }); - }); - - it('rejects non-numeric timestamps', () => { - const body = JSON.stringify({ event: 'recording.done' }); - - const result = verifyRecallWebhookSignature({ - rawBody: body, - secret: SECRET, - now: NOW, - headers: { - 'webhook-id': WEBHOOK_ID, - 'webhook-timestamp': 'not-a-timestamp', - 'webhook-signature': `v1,${sign(body)}`, - }, - }); - - expect(result).toEqual({ - valid: false, - error: 'Invalid webhook timestamp', - }); - }); - - it('rejects missing signature headers', () => { - const result = verifyRecallWebhookSignature({ - rawBody: '{}', - secret: SECRET, - headers: {}, - }); - - expect(result).toEqual({ - valid: false, - error: 'Missing webhook signature headers', - }); - }); - - it('rejects signatures computed from a different body', () => { - const body = JSON.stringify({ event: 'recording.done' }); - - const result = verifyRecallWebhookSignature({ - rawBody: JSON.stringify({ event: 'recording.failed' }), - secret: SECRET, - now: NOW, - headers: { - 'webhook-id': WEBHOOK_ID, - 'webhook-timestamp': WEBHOOK_TIMESTAMP, - 'webhook-signature': `v1,${sign(body)}`, - }, - }); - - expect(result.valid).toBe(false); - }); -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/cancel-recall-bot.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/cancel-recall-bot.util.ts deleted file mode 100644 index 04d7bf5ee014e..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/cancel-recall-bot.util.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { type RecallBotRemovalResult } from 'src/logic-functions/types/recall-bot-operation-result.type'; -import { getRecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util'; -import { recallBotApiRequest } from 'src/logic-functions/recall-api/recall-bot-api-request.util'; - -export const cancelRecallBot = async ({ - externalBotId, -}: { - externalBotId: string; -}): Promise => { - const configResult = getRecallApiConfig(); - - if (!configResult.success) { - return { ok: false, status: null, errorMessage: configResult.error }; - } - - const result = await recallBotApiRequest({ - config: configResult.config, - path: `/bot/${externalBotId}/`, - method: 'DELETE', - allowNotFound: true, - }); - - if (!result.ok) { - return result; - } - - return { ok: true }; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/create-async-recall-transcript.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/create-async-recall-transcript.util.ts deleted file mode 100644 index c52ed514ee741..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/create-async-recall-transcript.util.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { isString } from '@sniptt/guards'; - -import { type RecallBotOperationFailure } from 'src/logic-functions/types/recall-bot-operation-result.type'; -import { getRecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util'; -import { recallBotApiRequest } from 'src/logic-functions/recall-api/recall-bot-api-request.util'; - -type CreateAsyncRecallTranscriptResult = - | { ok: true; transcriptId: string } - | RecallBotOperationFailure; - -export const createAsyncRecallTranscript = async ({ - externalRecordingId, - callRecordingId, -}: { - externalRecordingId: string; - callRecordingId?: string; -}): Promise => { - const configResult = getRecallApiConfig(); - - if (!configResult.success) { - return { ok: false, status: null, errorMessage: configResult.error }; - } - - const result = await recallBotApiRequest<{ id?: unknown }>({ - config: configResult.config, - path: `/recording/${externalRecordingId}/create_transcript/`, - method: 'POST', - body: { - provider: { recallai_async: { language_code: 'auto' } }, - diarization: { use_separate_streams_when_available: true }, - ...(callRecordingId === undefined - ? {} - : { metadata: { twentyCallRecordingId: callRecordingId } }), - }, - maxAttempts: 1, - }); - - if (!result.ok) { - return result; - } - - if (!isString(result.data?.id)) { - return { - ok: false, - status: null, - errorMessage: - 'Recall API created a transcript but the response did not include a transcript id', - }; - } - - return { ok: true, transcriptId: result.data.id }; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/eject-recall-bot.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/eject-recall-bot.util.ts deleted file mode 100644 index c1bd3fc5dc102..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/eject-recall-bot.util.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { type RecallBotRemovalResult } from 'src/logic-functions/types/recall-bot-operation-result.type'; -import { getRecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util'; -import { recallBotApiRequest } from 'src/logic-functions/recall-api/recall-bot-api-request.util'; - -export const ejectRecallBot = async ({ - externalBotId, -}: { - externalBotId: string; -}): Promise => { - const configResult = getRecallApiConfig(); - - if (!configResult.success) { - return { ok: false, status: null, errorMessage: configResult.error }; - } - - const result = await recallBotApiRequest({ - config: configResult.config, - path: `/bot/${externalBotId}/leave_call/`, - method: 'POST', - allowNotFound: true, - }); - - if (!result.ok) { - return result; - } - - return { ok: true }; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/extract-recall-bot-convergence.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/extract-recall-bot-convergence.util.ts deleted file mode 100644 index d6af6a3a160bb..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/extract-recall-bot-convergence.util.ts +++ /dev/null @@ -1,149 +0,0 @@ -import { isArray, isUndefined } from '@sniptt/guards'; - -import { CallRecordingStatus } from 'src/logic-functions/constants/call-recording-status'; -import { asRecord } from 'src/logic-functions/utils/as-record.util'; -import { getString } from 'src/logic-functions/utils/get-string.util'; -import { mapRecallStatusCodeToCallRecordingStatus } from 'src/logic-functions/domain/map-recall-status-code-to-call-recording-status.util'; -import { normalizeRecallTimestamp } from 'src/logic-functions/recall-api/normalize-recall-timestamp.util'; - -export type RecallBotConvergence = { - status: CallRecordingStatus | undefined; - failureReason: string | undefined; - startedAt: string | undefined; - endedAt: string | undefined; - externalRecordingId: string | undefined; - isRecallRecordingDone: boolean; -}; - -type RecallBotStatusChange = { - code: string; - createdAt: string | undefined; -}; - -// Derives the state a full webhook history would have produced from GET /bot. -export const extractRecallBotConvergence = ( - bot: Record, -): RecallBotConvergence => { - const statusChanges = extractStatusChanges(bot); - const latestStatusChange = getLatestStatusChange(statusChanges); - const status = mapRecallStatusCodeToCallRecordingStatus( - latestStatusChange?.code, - ); - const recording = extractFirstRecording(bot); - - return { - status, - failureReason: - status === CallRecordingStatus.FAILED - ? latestStatusChange?.code - : undefined, - startedAt: normalizeRecallTimestamp( - recording?.startedAt ?? - findStatusChangeTimestamp(statusChanges, 'in_call_recording'), - ), - endedAt: normalizeRecallTimestamp( - recording?.completedAt ?? - findStatusChangeTimestamp(statusChanges, 'call_ended'), - ), - externalRecordingId: recording?.id, - isRecallRecordingDone: - !isUndefined(recording?.completedAt) || - statusChanges.some((statusChange) => statusChange.code === 'done'), - }; -}; - -const extractStatusChanges = ( - bot: Record, -): RecallBotStatusChange[] => { - if (!isArray(bot.status_changes)) { - return []; - } - - return bot.status_changes.flatMap((statusChange: unknown) => { - const code = getString(asRecord(statusChange)?.code); - - if (isUndefined(code)) { - return []; - } - - return [{ code, createdAt: getString(asRecord(statusChange)?.created_at) }]; - }); -}; - -const getLatestStatusChange = ( - statusChanges: RecallBotStatusChange[], -): RecallBotStatusChange | undefined => - statusChanges.reduce( - (latestStatusChange, statusChange) => { - if (isUndefined(latestStatusChange)) { - return statusChange; - } - - const statusChangeTime = getStatusChangeTime(statusChange); - const latestStatusChangeTime = getStatusChangeTime(latestStatusChange); - - if ( - isUndefined(statusChangeTime) && - isUndefined(latestStatusChangeTime) - ) { - return statusChange; - } - - if (isUndefined(statusChangeTime)) { - return latestStatusChange; - } - - if (isUndefined(latestStatusChangeTime)) { - return statusChange; - } - - return statusChangeTime >= latestStatusChangeTime - ? statusChange - : latestStatusChange; - }, - undefined, - ); - -const getStatusChangeTime = ( - statusChange: RecallBotStatusChange, -): number | undefined => { - const normalizedTimestamp = normalizeRecallTimestamp(statusChange.createdAt); - - if (isUndefined(normalizedTimestamp)) { - return undefined; - } - - return new Date(normalizedTimestamp).getTime(); -}; - -const extractFirstRecording = ( - bot: Record, -): - | { - id: string | undefined; - startedAt: string | undefined; - completedAt: string | undefined; - } - | undefined => { - if (!isArray(bot.recordings)) { - return undefined; - } - - const recording = asRecord(bot.recordings[0]); - - if (isUndefined(recording)) { - return undefined; - } - - return { - id: getString(recording.id), - startedAt: getString(recording.started_at), - completedAt: getString(recording.completed_at), - }; -}; - -const findStatusChangeTimestamp = ( - statusChanges: RecallBotStatusChange[], - code: string, -): string | undefined => - statusChanges.find((statusChange) => statusChange.code === code)?.createdAt; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/extract-recall-bot-id.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/extract-recall-bot-id.util.ts deleted file mode 100644 index 165ba2d327bc3..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/extract-recall-bot-id.util.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { getString } from 'src/logic-functions/utils/get-string.util'; - -export type RecallBotResponse = { - id?: unknown; - bot_id?: unknown; -}; - -export const extractRecallBotId = ( - response: RecallBotResponse | undefined, -): string | undefined => getString(response?.id) ?? getString(response?.bot_id); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/extract-recall-media-urls.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/extract-recall-media-urls.util.ts deleted file mode 100644 index 83d4bdba7c209..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/extract-recall-media-urls.util.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { asRecord } from 'src/logic-functions/utils/as-record.util'; -import { getRecordAtPath } from 'src/logic-functions/utils/get-record-at-path.util'; -import { getString } from 'src/logic-functions/utils/get-string.util'; - -export type RecallMediaUrls = { - videoUrl: string | undefined; - audioUrl: string | undefined; -}; - -// Pre-signed URLs expire within hours; always re-extract from a fresh GET /recording. -export const extractRecallMediaUrls = ( - recording: Record, -): RecallMediaUrls => { - const mediaShortcuts = asRecord(recording.media_shortcuts); - - return { - videoUrl: extractArtifactDownloadUrl(mediaShortcuts, 'video_mixed'), - audioUrl: extractArtifactDownloadUrl(mediaShortcuts, 'audio_mixed'), - }; -}; - -// v1.11 exposes download_url flat on the artifact; older artifacts nest it under data. -const extractArtifactDownloadUrl = ( - mediaShortcuts: Record | undefined, - artifactKey: string, -): string | undefined => - getString(getRecordAtPath(mediaShortcuts, [artifactKey, 'download_url'])) ?? - getString( - getRecordAtPath(mediaShortcuts, [artifactKey, 'data', 'download_url']), - ); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/get-recall-api-config.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/get-recall-api-config.util.ts deleted file mode 100644 index 3bac96a932918..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/get-recall-api-config.util.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; - -import { DEFAULT_MEETING_BOT_NAME } from 'src/logic-functions/constants/default-meeting-bot-name'; -import { DEFAULT_RECALL_REGION } from 'src/logic-functions/constants/default-recall-region'; -import { MEETING_BOT_NAME_ENV_VAR_NAME } from 'src/logic-functions/constants/meeting-bot-name-env-var-name'; -import { RECALL_API_KEY_ENV_VAR_NAME } from 'src/logic-functions/constants/recall-api-key-env-var-name'; -import { RECALL_REGION_ENV_VAR_NAME } from 'src/logic-functions/constants/recall-region-env-var-name'; -import { getApplicationVariableValue } from 'src/logic-functions/utils/get-application-variable-value.util'; -import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util'; - -export type RecallApiConfig = { - apiKey: string; - baseUrl: string; - botName: string; -}; - -export const getRecallApiConfig = (): - | { - success: true; - config: RecallApiConfig; - } - | { - success: false; - error: string; - } => { - const apiKey = normalizeOptionalString( - getApplicationVariableValue(RECALL_API_KEY_ENV_VAR_NAME), - ); - - if (isUndefined(apiKey)) { - return { - success: false, - error: - 'RECALL_API_KEY server variable is not set. A server admin must set it on the Twenty Meeting Bot application registration before scheduling bots.', - }; - } - - const region = - normalizeOptionalString( - getApplicationVariableValue(RECALL_REGION_ENV_VAR_NAME), - ) ?? DEFAULT_RECALL_REGION; - const botName = - normalizeOptionalString( - getApplicationVariableValue(MEETING_BOT_NAME_ENV_VAR_NAME), - ) ?? DEFAULT_MEETING_BOT_NAME; - - return { - success: true, - config: { - apiKey, - baseUrl: `https://${region}.recall.ai/api/v1`, - botName, - }, - }; -}; - -const normalizeOptionalString = ( - value: string | undefined, -): string | undefined => (isNonEmptyString(value) ? value.trim() : undefined); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/get-recall-bot.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/get-recall-bot.util.ts deleted file mode 100644 index 7772622d6d973..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/get-recall-bot.util.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { type RecallBotOperationFailure } from 'src/logic-functions/types/recall-bot-operation-result.type'; -import { asRecord } from 'src/logic-functions/utils/as-record.util'; -import { getRecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util'; -import { recallBotApiRequest } from 'src/logic-functions/recall-api/recall-bot-api-request.util'; - -type GetRecallBotResult = - | { ok: true; bot: Record } - | RecallBotOperationFailure; - -export const getRecallBot = async ({ - externalBotId, -}: { - externalBotId: string; -}): Promise => { - const configResult = getRecallApiConfig(); - - if (!configResult.success) { - return { ok: false, status: null, errorMessage: configResult.error }; - } - - const result = await recallBotApiRequest>({ - config: configResult.config, - path: `/bot/${externalBotId}/`, - method: 'GET', - }); - - if (!result.ok) { - return result; - } - - const bot = asRecord(result.data); - - if (bot === undefined) { - return { - ok: false, - status: result.status, - errorMessage: 'Recall API returned an empty bot response', - }; - } - - return { ok: true, bot }; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/get-recall-recording.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/get-recall-recording.util.ts deleted file mode 100644 index a81133ec09bcb..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/get-recall-recording.util.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { type RecallBotOperationFailure } from 'src/logic-functions/types/recall-bot-operation-result.type'; -import { getRecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util'; -import { recallBotApiRequest } from 'src/logic-functions/recall-api/recall-bot-api-request.util'; - -type GetRecallRecordingResult = - | { ok: true; recording: Record } - | RecallBotOperationFailure; - -export const getRecallRecording = async ({ - externalRecordingId, -}: { - externalRecordingId: string; -}): Promise => { - const configResult = getRecallApiConfig(); - - if (!configResult.success) { - return { ok: false, status: null, errorMessage: configResult.error }; - } - - const result = await recallBotApiRequest>({ - config: configResult.config, - path: `/recording/${externalRecordingId}/`, - method: 'GET', - }); - - if (!result.ok) { - return result; - } - - return { ok: true, recording: result.data ?? {} }; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/list-recall-transcripts.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/list-recall-transcripts.util.ts deleted file mode 100644 index 21c6d925f2104..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/list-recall-transcripts.util.ts +++ /dev/null @@ -1,141 +0,0 @@ -import { isArray, isUndefined } from '@sniptt/guards'; - -import { type RecallBotOperationFailure } from 'src/logic-functions/types/recall-bot-operation-result.type'; -import { asRecord } from 'src/logic-functions/utils/as-record.util'; -import { getString } from 'src/logic-functions/utils/get-string.util'; -import { getRecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util'; -import { recallBotApiRequest } from 'src/logic-functions/recall-api/recall-bot-api-request.util'; -import { type RecallTranscriptSummary } from 'src/logic-functions/recall-api/recall-transcript-summary.type'; - -type ListRecallTranscriptsResult = - | { ok: true; transcripts: RecallTranscriptSummary[] } - | RecallBotOperationFailure; - -type RecallTranscriptListResponse = { - next?: unknown; - results?: unknown; -}; - -const RECALL_TRANSCRIPT_LIST_MAX_PAGES = 10; - -export const listRecallTranscripts = async ({ - externalRecordingId, -}: { - externalRecordingId: string; -}): Promise => { - const configResult = getRecallApiConfig(); - - if (!configResult.success) { - return { ok: false, status: null, errorMessage: configResult.error }; - } - - const transcripts: RecallTranscriptSummary[] = []; - let path: string | undefined = buildListRecallTranscriptsPath({ - externalRecordingId, - }); - - for ( - let pageIndex = 0; - !isUndefined(path) && pageIndex < RECALL_TRANSCRIPT_LIST_MAX_PAGES; - pageIndex++ - ) { - const result = await recallBotApiRequest({ - config: configResult.config, - path, - method: 'GET', - }); - - if (!result.ok) { - return result; - } - - const pageTranscripts = extractRecallTranscriptSummaries(result.data); - - if (isUndefined(pageTranscripts)) { - return { - ok: false, - status: result.status, - errorMessage: 'Recall API returned malformed transcript list', - }; - } - - transcripts.push(...pageTranscripts); - path = extractNextPath(result.data, configResult.config.baseUrl); - } - - if (!isUndefined(path)) { - return { - ok: false, - status: null, - errorMessage: `Recall transcript list exceeded ${RECALL_TRANSCRIPT_LIST_MAX_PAGES} pages`, - }; - } - - return { ok: true, transcripts }; -}; - -const buildListRecallTranscriptsPath = ({ - externalRecordingId, -}: { - externalRecordingId: string; -}): string => { - const searchParams = new URLSearchParams({ - recording_id: externalRecordingId, - }); - - return `/transcript/?${searchParams.toString()}`; -}; - -const extractRecallTranscriptSummaries = ( - response: RecallTranscriptListResponse | undefined, -): RecallTranscriptSummary[] | undefined => { - if (!isArray(response?.results)) { - return undefined; - } - - const transcripts: RecallTranscriptSummary[] = []; - - for (const result of response.results) { - const transcript = extractRecallTranscriptSummary(result); - - if (isUndefined(transcript)) { - return undefined; - } - - transcripts.push(transcript); - } - - return transcripts; -}; - -const extractRecallTranscriptSummary = ( - transcript: unknown, -): RecallTranscriptSummary | undefined => { - const transcriptRecord = asRecord(transcript); - const transcriptId = getString(transcriptRecord?.id); - - if (isUndefined(transcriptRecord) || isUndefined(transcriptId)) { - return undefined; - } - - const status = asRecord(transcriptRecord.status); - - return { - id: transcriptId, - statusCode: getString(status?.code), - statusSubCode: getString(status?.sub_code), - }; -}; - -const extractNextPath = ( - response: RecallTranscriptListResponse | undefined, - baseUrl: string, -): string | undefined => { - const nextPage = getString(response?.next); - - if (isUndefined(nextPage) || !nextPage.startsWith(baseUrl)) { - return undefined; - } - - return nextPage.slice(baseUrl.length); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/list-scheduled-recall-bots.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/list-scheduled-recall-bots.util.ts deleted file mode 100644 index 19fe22fae3645..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/list-scheduled-recall-bots.util.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { isString, isUndefined } from '@sniptt/guards'; - -import { type RecallBotOperationFailure } from 'src/logic-functions/types/recall-bot-operation-result.type'; -import { asRecord } from 'src/logic-functions/utils/as-record.util'; -import { getRecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util'; -import { recallBotApiRequest } from 'src/logic-functions/recall-api/recall-bot-api-request.util'; - -export type RecallScheduledBot = { - id: string; - metadata: Record; -}; - -type RecallBotListResponse = { - next?: unknown; - results?: unknown; -}; - -type ListScheduledRecallBotsResult = - | { ok: true; bots: RecallScheduledBot[] } - | RecallBotOperationFailure; - -const RECALL_BOT_LIST_MAX_PAGES = 10; - -export const listScheduledRecallBots = async ({ - joinAtAfter, - joinAtBefore, -}: { - joinAtAfter: string; - joinAtBefore: string; -}): Promise => { - const configResult = getRecallApiConfig(); - - if (!configResult.success) { - return { ok: false, status: null, errorMessage: configResult.error }; - } - - const bots: RecallScheduledBot[] = []; - let path: string | undefined = `/bot/?join_at_after=${encodeURIComponent( - joinAtAfter, - )}&join_at_before=${encodeURIComponent(joinAtBefore)}`; - - for ( - let pageIndex = 0; - !isUndefined(path) && pageIndex < RECALL_BOT_LIST_MAX_PAGES; - pageIndex++ - ) { - const result = await recallBotApiRequest({ - config: configResult.config, - path, - method: 'GET', - }); - - if (!result.ok) { - return result; - } - - bots.push(...extractRecallBots(result.data)); - path = extractNextPath(result.data, configResult.config.baseUrl); - } - - if (!isUndefined(path)) { - return { - ok: false, - status: null, - errorMessage: `Recall bot list exceeded ${RECALL_BOT_LIST_MAX_PAGES} pages`, - }; - } - - return { ok: true, bots }; -}; - -const extractRecallBots = ( - response: RecallBotListResponse | undefined, -): RecallScheduledBot[] => { - if (!Array.isArray(response?.results)) { - return []; - } - - return response.results.flatMap((candidate: unknown) => { - const bot = asRecord(candidate); - - if (isUndefined(bot) || !isString(bot.id)) { - return []; - } - - return [ - { - id: bot.id, - metadata: asRecord(bot.metadata) ?? {}, - }, - ]; - }); -}; - -const extractNextPath = ( - response: RecallBotListResponse | undefined, - baseUrl: string, -): string | undefined => { - const next = response?.next; - - if (!isString(next) || !next.startsWith(baseUrl)) { - return undefined; - } - - return next.slice(baseUrl.length); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/normalize-recall-timestamp.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/normalize-recall-timestamp.util.ts deleted file mode 100644 index 1c2dd44cde49d..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/normalize-recall-timestamp.util.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; - -// Twenty rejects Recall's microsecond precision; truncate to millisecond ISO. -export const normalizeRecallTimestamp = ( - value: string | undefined, -): string | undefined => { - if (isUndefined(value)) { - return undefined; - } - - const parsed = new Date(value); - - return Number.isNaN(parsed.getTime()) ? undefined : parsed.toISOString(); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/parse-recall-webhook-event.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/parse-recall-webhook-event.util.ts deleted file mode 100644 index e1752ac8c80ab..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/parse-recall-webhook-event.util.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; - -import { asRecord } from 'src/logic-functions/utils/as-record.util'; -import { getRecordAtPath } from 'src/logic-functions/utils/get-record-at-path.util'; -import { getString } from 'src/logic-functions/utils/get-string.util'; -import { normalizeRecallTimestamp } from 'src/logic-functions/recall-api/normalize-recall-timestamp.util'; - -export type RecallWebhookBody = { - event?: unknown; - type?: unknown; - data?: unknown; - bot?: unknown; -}; - -export type RecallWebhookEvent = { - event: string; - statusCode: string | undefined; - statusTimestamp: string | undefined; - externalBotId: string | undefined; - externalRecordingId: string | undefined; - callRecordingIdFromMetadata: string | undefined; - recordingStartedAt: string | undefined; - recordingEndedAt: string | undefined; - transcriptId: string | undefined; - transcriptFailureSubCode: string | undefined; -}; - -// The only reader of raw webhook payloads; Recall delivers several body shapes per event family. -export const parseRecallWebhookEvent = ( - body: RecallWebhookBody, -): RecallWebhookEvent | undefined => { - const event = getString(body.event) ?? getString(body.type); - - if (isUndefined(event)) { - return undefined; - } - - const data = asRecord(body.data); - const bot = asRecord(body.bot); - - return { - event, - statusCode: - getString(getRecordAtPath(data, ['status', 'code'])) ?? - getString(getRecordAtPath(data, ['data', 'code'])) ?? - getString(getRecordAtPath(bot, ['status', 'code'])) ?? - getStatusCodeFromEventName(event), - statusTimestamp: normalizeRecallTimestamp( - getString(getRecordAtPath(data, ['status', 'created_at'])) ?? - getString(getRecordAtPath(data, ['data', 'updated_at'])) ?? - getString(getRecordAtPath(bot, ['status', 'created_at'])), - ), - externalBotId: - getString(data?.bot_id) ?? - getString(getRecordAtPath(data, ['bot', 'id'])) ?? - getString(getRecordAtPath(data, ['recording', 'bot_id'])) ?? - getString(getRecordAtPath(data, ['recording', 'bot', 'id'])) ?? - getString(bot?.id), - externalRecordingId: - getString(getRecordAtPath(data, ['status', 'recording_id'])) ?? - getString(getRecordAtPath(data, ['recording', 'id'])) ?? - getString(data?.recording_id), - callRecordingIdFromMetadata: extractCallRecordingIdFromMetadata({ - data, - bot, - }), - recordingStartedAt: normalizeRecallTimestamp( - getString(getRecordAtPath(data, ['recording', 'started_at'])), - ), - recordingEndedAt: normalizeRecallTimestamp( - getString(getRecordAtPath(data, ['recording', 'completed_at'])), - ), - transcriptId: getString(getRecordAtPath(data, ['transcript', 'id'])), - transcriptFailureSubCode: getString( - getRecordAtPath(data, ['status', 'sub_code']), - ), - }; -}; - -const getStatusCodeFromEventName = (event: string): string | undefined => { - if (!event.startsWith('bot.')) { - return undefined; - } - - const statusCode = event.slice('bot.'.length); - - return statusCode === 'status_change' ? undefined : statusCode; -}; - -const extractCallRecordingIdFromMetadata = ({ - data, - bot, -}: { - data: Record | undefined; - bot: Record | undefined; -}): string | undefined => { - const metadata = - asRecord(bot?.metadata) ?? - asRecord(getRecordAtPath(data, ['bot', 'metadata'])) ?? - asRecord(getRecordAtPath(data, ['recording', 'metadata'])) ?? - asRecord(data?.metadata); - - return getString(metadata?.twentyCallRecordingId); -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/recall-bot-api-request.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/recall-bot-api-request.util.ts deleted file mode 100644 index 62374f7f4bf2d..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/recall-bot-api-request.util.ts +++ /dev/null @@ -1,165 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; - -import { RECALL_API_MAX_ATTEMPTS } from 'src/logic-functions/constants/recall-api-max-attempts'; -import { RECALL_API_RETRY_DELAY_MS } from 'src/logic-functions/constants/recall-api-retry-delay-ms'; -import { type RecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util'; - -type RecallBotApiRequestArgs = { - config: RecallApiConfig; - path: string; - method: 'GET' | 'POST' | 'PATCH' | 'DELETE'; - body?: unknown; - allowNotFound?: boolean; - maxAttempts?: number; -}; - -type RecallBotApiRequestResult = - | { - ok: true; - status: number; - data: TData; - } - | { - ok: false; - status: number | null; - errorMessage: string; - }; - -// Bot creates tolerate retries because duplicates stay unclaimed and get reaped. -// Callers that cannot retry idempotently can lower maxAttempts. -export const recallBotApiRequest = async ( - requestArgs: RecallBotApiRequestArgs, -): Promise> => { - const maxAttempts = requestArgs.maxAttempts ?? RECALL_API_MAX_ATTEMPTS; - - for (let attemptNumber = 1; ; attemptNumber++) { - const { result, isRetryable } = - await performRecallBotApiRequestAttempt(requestArgs); - - if (!isRetryable || attemptNumber >= maxAttempts) { - return result; - } - - await sleep(RECALL_API_RETRY_DELAY_MS * attemptNumber); - } -}; - -const performRecallBotApiRequestAttempt = async ({ - config, - path, - method, - body, - allowNotFound = false, -}: RecallBotApiRequestArgs): Promise<{ - result: RecallBotApiRequestResult; - isRetryable: boolean; -}> => { - let response: Response; - - try { - response = await fetch(`${config.baseUrl}${path}`, { - method, - headers: { - Authorization: buildRecallApiAuthorizationHeader(config.apiKey), - ...(isUndefined(body) ? {} : { 'Content-Type': 'application/json' }), - }, - ...(isUndefined(body) ? {} : { body: JSON.stringify(body) }), - }); - } catch (error) { - return { - isRetryable: true, - result: { - ok: false, - status: null, - errorMessage: `Recall API request failed: ${ - error instanceof Error ? error.message : String(error) - }`, - }, - }; - } - - if (allowNotFound && response.status === 404) { - return { - isRetryable: false, - result: { - ok: true, - status: response.status, - data: undefined as TData, - }, - }; - } - - if (response.status === 204) { - return { - isRetryable: false, - result: { - ok: true, - status: response.status, - data: undefined as TData, - }, - }; - } - - if (!response.ok) { - return { - isRetryable: isRetryableRecallApiStatus(response.status), - result: { - ok: false, - status: response.status, - errorMessage: await extractRecallApiErrorMessage(response), - }, - }; - } - - try { - return { - isRetryable: false, - result: { - ok: true, - status: response.status, - data: (await response.json()) as TData, - }, - }; - } catch (error) { - return { - isRetryable: false, - result: { - ok: false, - status: response.status, - errorMessage: `Recall API returned a non-JSON response: ${ - error instanceof Error ? error.message : String(error) - }`, - }, - }; - } -}; - -const isRetryableRecallApiStatus = (status: number): boolean => - status === 429 || status >= 500; - -const sleep = (delayMs: number): Promise => - new Promise((resolve) => { - setTimeout(resolve, delayMs); - }); - -const buildRecallApiAuthorizationHeader = (apiKey: string): string => { - const trimmedApiKey = apiKey.trim(); - - return trimmedApiKey.toLowerCase().startsWith('token ') - ? trimmedApiKey - : `Token ${trimmedApiKey}`; -}; - -const extractRecallApiErrorMessage = async ( - response: Response, -): Promise => { - const fallback = `Recall API responded with HTTP ${response.status}`; - - try { - const body = (await response.json()) as unknown; - - return `${fallback}: ${JSON.stringify(body)}`; - } catch { - return fallback; - } -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/recall-transcript-summary.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/recall-transcript-summary.type.ts deleted file mode 100644 index 32f2683c897d9..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/recall-transcript-summary.type.ts +++ /dev/null @@ -1,5 +0,0 @@ -export type RecallTranscriptSummary = { - id: string; - statusCode: string | undefined; - statusSubCode: string | undefined; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/reschedule-recall-bot.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/reschedule-recall-bot.util.ts deleted file mode 100644 index cf6cc2d0f8db6..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/reschedule-recall-bot.util.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; - -import { getRecallBotAutomaticLeave } from 'src/logic-functions/constants/recall-bot-automatic-leave'; -import { getRecallBotRecordingConfig } from 'src/logic-functions/constants/recall-bot-recording-config'; -import { type RecallBotScheduleResult } from 'src/logic-functions/types/recall-bot-operation-result.type'; -import { - extractRecallBotId, - type RecallBotResponse, -} from 'src/logic-functions/recall-api/extract-recall-bot-id.util'; -import { getRecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util'; -import { recallBotApiRequest } from 'src/logic-functions/recall-api/recall-bot-api-request.util'; -import { type ScheduleRecallBotArgs } from 'src/logic-functions/recall-api/schedule-recall-bot.util'; - -type RescheduleRecallBotArgs = ScheduleRecallBotArgs & { - externalBotId: string; -}; - -export const rescheduleRecallBot = async ({ - externalBotId, - meetingUrl, - joinAt, - metadata, -}: RescheduleRecallBotArgs): Promise => { - const configResult = getRecallApiConfig(); - - if (!configResult.success) { - return { ok: false, status: null, errorMessage: configResult.error }; - } - - const automaticLeave = getRecallBotAutomaticLeave(); - - const result = await recallBotApiRequest({ - config: configResult.config, - path: `/bot/${externalBotId}/`, - method: 'PATCH', - body: { - meeting_url: meetingUrl, - join_at: joinAt, - bot_name: configResult.config.botName, - ...(isUndefined(automaticLeave) ? {} : { automatic_leave: automaticLeave }), - recording_config: getRecallBotRecordingConfig(), - metadata, - }, - }); - - if (!result.ok) { - return result; - } - - return { - ok: true, - externalBotId: extractRecallBotId(result.data) ?? externalBotId, - }; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/retrieve-recall-transcript.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/retrieve-recall-transcript.util.ts deleted file mode 100644 index a096da7c62bbc..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/retrieve-recall-transcript.util.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; - -import { type RecallBotOperationFailure } from 'src/logic-functions/types/recall-bot-operation-result.type'; -import { asRecord } from 'src/logic-functions/utils/as-record.util'; -import { getRecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util'; -import { getString } from 'src/logic-functions/utils/get-string.util'; -import { recallBotApiRequest } from 'src/logic-functions/recall-api/recall-bot-api-request.util'; - -export type RecallTranscriptDetails = { - downloadUrl: string | undefined; - statusCode: string | undefined; - statusSubCode: string | undefined; -}; - -type RetrieveRecallTranscriptResult = - | { ok: true; transcript: RecallTranscriptDetails } - | RecallBotOperationFailure; - -export const retrieveRecallTranscript = async ({ - transcriptId, -}: { - transcriptId: string; -}): Promise => { - const configResult = getRecallApiConfig(); - - if (!configResult.success) { - return { ok: false, status: null, errorMessage: configResult.error }; - } - - const result = await recallBotApiRequest>({ - config: configResult.config, - path: `/transcript/${transcriptId}/`, - method: 'GET', - }); - - if (!result.ok) { - return result; - } - - const transcript = extractRecallTranscriptDetails(result.data); - - if (isMalformedRecallTranscriptDetails(transcript)) { - return { - ok: false, - status: result.status, - errorMessage: 'Recall API returned malformed transcript details', - }; - } - - return { ok: true, transcript }; -}; - -const extractRecallTranscriptDetails = ( - response: Record | undefined, -): RecallTranscriptDetails => { - const data = asRecord(response?.data); - const status = asRecord(response?.status); - - return { - downloadUrl: getString(data?.download_url), - statusCode: getString(status?.code), - statusSubCode: getString(status?.sub_code), - }; -}; - -const isMalformedRecallTranscriptDetails = ({ - downloadUrl, - statusCode, -}: RecallTranscriptDetails): boolean => - (isUndefined(downloadUrl) && isUndefined(statusCode)) || - (isUndefined(downloadUrl) && statusCode === 'done'); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/schedule-recall-bot.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/schedule-recall-bot.util.ts deleted file mode 100644 index 8de80b44e1d1d..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/schedule-recall-bot.util.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; - -import { getRecallBotAutomaticLeave } from 'src/logic-functions/constants/recall-bot-automatic-leave'; -import { getRecallBotRecordingConfig } from 'src/logic-functions/constants/recall-bot-recording-config'; -import { type RecallBotMetadata } from 'src/logic-functions/types/recall-bot-metadata.type'; -import { type RecallBotScheduleResult } from 'src/logic-functions/types/recall-bot-operation-result.type'; -import { - extractRecallBotId, - type RecallBotResponse, -} from 'src/logic-functions/recall-api/extract-recall-bot-id.util'; -import { getRecallApiConfig } from 'src/logic-functions/recall-api/get-recall-api-config.util'; -import { recallBotApiRequest } from 'src/logic-functions/recall-api/recall-bot-api-request.util'; - -export type ScheduleRecallBotArgs = { - meetingUrl: string; - joinAt: string; - metadata: RecallBotMetadata; -}; - -export const scheduleRecallBot = async ({ - meetingUrl, - joinAt, - metadata, -}: ScheduleRecallBotArgs): Promise => { - const configResult = getRecallApiConfig(); - - if (!configResult.success) { - return { ok: false, status: null, errorMessage: configResult.error }; - } - - const automaticLeave = getRecallBotAutomaticLeave(); - - const result = await recallBotApiRequest({ - config: configResult.config, - path: '/bot/', - method: 'POST', - body: { - meeting_url: meetingUrl, - join_at: joinAt, - bot_name: configResult.config.botName, - ...(isUndefined(automaticLeave) ? {} : { automatic_leave: automaticLeave }), - recording_config: getRecallBotRecordingConfig(), - metadata, - }, - }); - - if (!result.ok) { - return result; - } - - const externalBotId = extractRecallBotId(result.data); - - if (isUndefined(externalBotId)) { - return { - ok: false, - status: null, - errorMessage: - 'Recall API created a bot but the response did not include a bot id', - }; - } - - return { - ok: true, - externalBotId, - }; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/verify-recall-webhook-signature.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/verify-recall-webhook-signature.util.ts deleted file mode 100644 index f42106aae5f50..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-api/verify-recall-webhook-signature.util.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { createHmac, timingSafeEqual } from 'crypto'; - -import { isUndefined } from '@sniptt/guards'; - -const RECALL_WEBHOOK_SECRET_PREFIX = 'whsec_'; -const RECALL_WEBHOOK_TIMESTAMP_TOLERANCE_SECONDS = 5 * 60; - -export const verifyRecallWebhookSignature = ({ - rawBody, - headers, - secret, - now = new Date(), -}: { - rawBody: string; - headers: Record; - secret: string; - now?: Date; -}): { valid: true } | { valid: false; error: string } => { - if (!secret.startsWith(RECALL_WEBHOOK_SECRET_PREFIX)) { - return { - valid: false, - error: 'Webhook secret must start with whsec_', - }; - } - - const webhookId = headers['webhook-id'] ?? headers['svix-id']; - const webhookTimestamp = - headers['webhook-timestamp'] ?? headers['svix-timestamp']; - const webhookSignature = - headers['webhook-signature'] ?? headers['svix-signature']; - - if ( - isUndefined(webhookId) || - isUndefined(webhookTimestamp) || - isUndefined(webhookSignature) - ) { - return { - valid: false, - error: 'Missing webhook signature headers', - }; - } - - const webhookTimestampSeconds = Number(webhookTimestamp); - - if (!Number.isInteger(webhookTimestampSeconds)) { - return { - valid: false, - error: 'Invalid webhook timestamp', - }; - } - - const nowSeconds = Math.floor(now.getTime() / 1000); - - if ( - Math.abs(nowSeconds - webhookTimestampSeconds) > - RECALL_WEBHOOK_TIMESTAMP_TOLERANCE_SECONDS - ) { - return { - valid: false, - error: 'Webhook timestamp is outside of the allowed tolerance', - }; - } - - const secretBytes = Buffer.from( - secret.slice(RECALL_WEBHOOK_SECRET_PREFIX.length), - 'base64', - ); - const expectedSignature = createHmac('sha256', secretBytes) - .update(`${webhookId}.${webhookTimestamp}.${rawBody}`) - .digest('base64'); - const providedSignatures = webhookSignature - .split(' ') - .map((signaturePart) => signaturePart.trim()) - .filter((signaturePart) => signaturePart !== '') - .flatMap((signaturePart) => { - if (signaturePart.startsWith('v1,') || signaturePart.startsWith('v1=')) { - return [signaturePart.slice(3).trim()]; - } - - return []; - }) - .filter((signaturePart) => signaturePart !== ''); - - if (providedSignatures.length === 0) { - return { - valid: false, - error: 'Missing v1 signature', - }; - } - - const expectedSignatureBuffer = Buffer.from(expectedSignature, 'base64'); - - for (const providedSignature of providedSignatures) { - const providedSignatureBuffer = Buffer.from(providedSignature, 'base64'); - - if (providedSignatureBuffer.length !== expectedSignatureBuffer.length) { - continue; - } - - if (timingSafeEqual(providedSignatureBuffer, expectedSignatureBuffer)) { - return { valid: true }; - } - } - - return { - valid: false, - error: 'Signature verification failed', - }; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-webhook.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-webhook.ts deleted file mode 100644 index 770989bab12af..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/recall-webhook.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { isNull, isUndefined } from '@sniptt/guards'; -import { CoreApiClient } from 'twenty-client-sdk/core'; -import { defineLogicFunction, type RoutePayload } from 'twenty-sdk/define'; -import { Response } from 'twenty-sdk/logic-function'; - -import { RECALL_WEBHOOK_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER } from 'src/constants/recall-webhook-logic-function-universal-identifier'; -import { RECALL_WEBHOOK_SECRET_ENV_VAR_NAME } from 'src/logic-functions/constants/recall-webhook-secret-env-var-name'; -import { handleRecallWebhook } from 'src/logic-functions/flows/handle-recall-webhook.util'; -import { type RecallWebhookBody } from 'src/logic-functions/recall-api/parse-recall-webhook-event.util'; -import { verifyRecallWebhookSignature } from 'src/logic-functions/recall-api/verify-recall-webhook-signature.util'; -import { getApplicationVariableValue } from 'src/logic-functions/utils/get-application-variable-value.util'; -import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util'; - -// Non-2xx makes Svix retry; a returned plain object would 200-ack permanently. -const rejectWebhook = (status: number, error: string): Response => { - console.error(`[twenty-meeting-bot] webhook rejected: ${error}`); - - return new Response({ error }, { status }); -}; - -export const recallWebhookRouteHandler = async ( - routePayload: RoutePayload, -): Promise => { - const webhookSecret = getApplicationVariableValue( - RECALL_WEBHOOK_SECRET_ENV_VAR_NAME, - ); - - if (!isNonEmptyString(webhookSecret)) { - return rejectWebhook( - 500, - 'RECALL_WEBHOOK_SECRET server variable is not set. A server admin must copy it from the Recall webhook endpoint settings and set it on the Twenty Meeting Bot application registration.', - ); - } - - const { rawBody } = routePayload; - - if (isUndefined(rawBody)) { - return rejectWebhook( - 500, - 'Raw request body was not forwarded by the server; cannot verify the webhook signature', - ); - } - - const signatureCheck = verifyRecallWebhookSignature({ - rawBody, - headers: routePayload.headers, - secret: webhookSecret, - }); - - if (!signatureCheck.valid) { - return rejectWebhook( - 401, - `Invalid webhook signature: ${signatureCheck.error}`, - ); - } - - if (isUndefined(routePayload.body) || isNull(routePayload.body)) { - return rejectWebhook(400, 'Webhook payload was empty'); - } - - return handleRecallWebhook({ - client: new CoreApiClient(), - body: routePayload.body, - }); -}; - -export default defineLogicFunction({ - universalIdentifier: RECALL_WEBHOOK_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER, - name: 'recall-webhook', - description: - 'Receives Recall.ai webhook events and updates the matching CallRecording lifecycle status.', - timeoutSeconds: 30, - handler: recallWebhookRouteHandler, - serverWebhookTriggerSettings: { - workspaceIdResolver: { - source: 'body', - path: 'data.bot.metadata.twentyWorkspaceId', - }, - forwardedRequestHeaders: [ - 'webhook-id', - 'webhook-timestamp', - 'webhook-signature', - 'svix-id', - 'svix-timestamp', - 'svix-signature', - ], - }, -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/reconcile-meeting-bot-calendar-event.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/reconcile-meeting-bot-calendar-event.ts deleted file mode 100644 index e02333038399d..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/reconcile-meeting-bot-calendar-event.ts +++ /dev/null @@ -1,178 +0,0 @@ -import { isUndefined } from '@sniptt/guards'; -import { CoreApiClient } from 'twenty-client-sdk/core'; -import { - defineLogicFunction, - type DatabaseEventPayload, - type ObjectRecordBaseEvent, -} from 'twenty-sdk/define'; - -import { CALENDAR_EVENT_RECONCILIATION_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER } from 'src/constants/calendar-event-reconciliation-logic-function-universal-identifier'; -import { type RemovedMeetingBotOccurrence } from 'src/logic-functions/types/removed-meeting-bot-occurrence.type'; -import { computeRealMeetingKey } from 'src/logic-functions/domain/compute-real-meeting-key.util'; -import { getUniqueSortedIds } from 'src/logic-functions/utils/get-unique-sorted-ids.util'; -import { reconcileMeetingBotForCalendarEventIds } from 'src/logic-functions/flows/reconcile-meeting-bot.util'; - -const CALENDAR_EVENT_OBJECT_NAME = 'calendarEvent'; - -const MEETING_BOT_RELEVANT_CALENDAR_EVENT_FIELDS = [ - 'title', - 'meetingBotPreference', - 'conferenceLink', - 'startsAt', - 'endsAt', - 'isCanceled', - 'iCalUid', -]; - -const MEETING_BOT_KEY_CALENDAR_EVENT_FIELDS = [ - 'conferenceLink', - 'startsAt', - 'iCalUid', -]; - -type CalendarEventForDatabaseEvent = { - id: string; - conferenceLink?: { primaryLinkUrl?: string | null } | null; - iCalUid?: string | null; - startsAt?: string | null; -}; - -type CalendarEventDatabaseEvent = DatabaseEventPayload< - ObjectRecordBaseEvent ->; - -type CalendarEventReconciliationPayload = { - calendarEventIds: string[]; - removedOccurrences: RemovedMeetingBotOccurrence[]; -}; - -const handler = async ( - event: CalendarEventDatabaseEvent, -): Promise => { - const [objectName, action] = event.name.split('.'); - - if (objectName !== CALENDAR_EVENT_OBJECT_NAME) { - return { skipped: true, reason: 'not a calendar event' }; - } - - const reconciliationPayload = buildCalendarEventReconciliationPayload({ - event, - action, - }); - - if ( - reconciliationPayload.calendarEventIds.length === 0 && - reconciliationPayload.removedOccurrences.length === 0 - ) { - return { skipped: true, reason: 'no relevant calendar event change' }; - } - - const client = new CoreApiClient(); - const reconciliationResults = await reconcileMeetingBotForCalendarEventIds({ - client, - calendarEventIds: reconciliationPayload.calendarEventIds, - removedOccurrences: reconciliationPayload.removedOccurrences, - }); - - return { - reconciled: true, - calendarEventIds: reconciliationPayload.calendarEventIds, - removedOccurrenceCount: reconciliationPayload.removedOccurrences.length, - reconciliationResults, - }; -}; - -const buildCalendarEventReconciliationPayload = ({ - event, - action, -}: { - event: CalendarEventDatabaseEvent; - action: string | undefined; -}): CalendarEventReconciliationPayload => { - if (action === 'created') { - return { - calendarEventIds: getUniqueSortedIds([ - event.recordId, - event.properties.after?.id, - ]), - removedOccurrences: [], - }; - } - - if (action === 'updated') { - const updatedFields = event.properties.updatedFields ?? []; - - if (!hasRelevantFieldChange(updatedFields)) { - return { calendarEventIds: [], removedOccurrences: [] }; - } - - const removedOccurrence = hasKeyFieldChange(updatedFields) - ? buildRemovedOccurrence(event.properties.before) - : undefined; - - return { - calendarEventIds: getUniqueSortedIds([ - event.recordId, - event.properties.after?.id, - ]), - removedOccurrences: isUndefined(removedOccurrence) - ? [] - : [removedOccurrence], - }; - } - - if (action === 'deleted' || action === 'destroyed') { - const removedOccurrence = buildRemovedOccurrence(event.properties.before); - - return { - calendarEventIds: [], - removedOccurrences: isUndefined(removedOccurrence) - ? [] - : [removedOccurrence], - }; - } - - return { calendarEventIds: [], removedOccurrences: [] }; -}; - -const hasRelevantFieldChange = (updatedFields: string[]): boolean => - updatedFields.some((updatedField) => - MEETING_BOT_RELEVANT_CALENDAR_EVENT_FIELDS.includes(updatedField), - ); - -const hasKeyFieldChange = (updatedFields: string[]): boolean => - updatedFields.some((updatedField) => - MEETING_BOT_KEY_CALENDAR_EVENT_FIELDS.includes(updatedField), - ); - -const buildRemovedOccurrence = ( - calendarEvent: CalendarEventForDatabaseEvent | undefined, -): RemovedMeetingBotOccurrence | undefined => { - if (isUndefined(calendarEvent)) { - return undefined; - } - - return { - calendarEventId: calendarEvent.id, - realMeetingKey: computeRealMeetingKey({ - calendarEventId: calendarEvent.id, - conferenceLinkUrl: calendarEvent.conferenceLink?.primaryLinkUrl, - iCalUid: calendarEvent.iCalUid ?? undefined, - startsAt: calendarEvent.startsAt ?? undefined, - }), - startsAt: calendarEvent.startsAt ?? undefined, - }; -}; - -export default defineLogicFunction({ - universalIdentifier: - CALENDAR_EVENT_RECONCILIATION_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER, - name: 'reconcile-meeting-bot-calendar-event', - description: - 'Reconciles app-managed Recall bot recording requests when calendar events change.', - timeoutSeconds: 60, - handler, - databaseEventTriggerSettings: { - eventName: `${CALENDAR_EVENT_OBJECT_NAME}.*`, - }, -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/reconcile-stale-bot-state.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/reconcile-stale-bot-state.ts deleted file mode 100644 index e83b36477d712..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/reconcile-stale-bot-state.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { CoreApiClient } from 'twenty-client-sdk/core'; -import { defineLogicFunction } from 'twenty-sdk/define'; - -import { STALE_BOT_STATE_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER } from 'src/constants/stale-bot-state-logic-function-universal-identifier'; -import { STALE_BOT_STATE_CRON_PATTERN } from 'src/logic-functions/constants/stale-bot-state-cron-pattern'; -import { - convergeDivergedCallRecordings, -} from 'src/logic-functions/flows/converge-diverged-call-recordings.util'; -import { type ConvergeDivergedCallRecordingsResult } from 'src/logic-functions/flows/converge-diverged-call-recordings-result.type'; -import { - healCallRecordingsMissingBot, - type HealCallRecordingsMissingBotResult, -} from 'src/logic-functions/flows/heal-call-recordings-missing-bot.util'; -import { - reapOrphanedMeetingBots, - type ReapOrphanedMeetingBotsResult, -} from 'src/logic-functions/flows/reap-orphaned-meeting-bots.util'; - -// Every unwanted bot passes through this join_at window before it can attend. -const REAPER_JOIN_AT_LOOKBACK_HOURS = 4; -const REAPER_JOIN_AT_LOOKAHEAD_HOURS = 24; - -type StepFailure = { error: string }; - -const reconcileStaleBotStateHandler = async (): Promise => { - const now = new Date(); - const client = new CoreApiClient(); - - const botlessHealResult = await healCallRecordingsMissingBotSafely( - client, - now, - ); - const orphanedBotReapingResult = await reapOrphanedMeetingBotsInJoinAtWindow( - client, - now, - ); - const statusConvergenceResult = await convergeDivergedCallRecordingsSafely( - client, - now, - ); - - return { - botlessHealResult, - orphanedBotReapingResult, - statusConvergenceResult, - }; -}; - -const healCallRecordingsMissingBotSafely = async ( - client: CoreApiClient, - now: Date, -): Promise => { - try { - return await healCallRecordingsMissingBot({ client, now }); - } catch (error) { - return buildStepFailure('botless call recording healing', error); - } -}; - -const reapOrphanedMeetingBotsInJoinAtWindow = async ( - client: CoreApiClient, - now: Date, -): Promise => { - try { - return await reapOrphanedMeetingBots({ - client, - joinAtAfter: new Date( - now.getTime() - REAPER_JOIN_AT_LOOKBACK_HOURS * 60 * 60 * 1000, - ).toISOString(), - joinAtBefore: new Date( - now.getTime() + REAPER_JOIN_AT_LOOKAHEAD_HOURS * 60 * 60 * 1000, - ).toISOString(), - }); - } catch (error) { - return buildStepFailure('orphaned bot reaping', error); - } -}; - -const convergeDivergedCallRecordingsSafely = async ( - client: CoreApiClient, - now: Date, -): Promise => { - try { - return await convergeDivergedCallRecordings({ client, now }); - } catch (error) { - return buildStepFailure('call recording status convergence', error); - } -}; - -const buildStepFailure = (stepLabel: string, error: unknown): StepFailure => { - const errorMessage = error instanceof Error ? error.message : String(error); - - if (process.env.NODE_ENV !== 'test') { - console.error(`[twenty-meeting-bot] ${stepLabel} failed: ${errorMessage}`); - } - - return { error: `${stepLabel} failed` }; -}; - -export default defineLogicFunction({ - universalIdentifier: STALE_BOT_STATE_LOGIC_FUNCTION_UNIVERSAL_IDENTIFIER, - name: 'reconcile-stale-bot-state', - description: - 'Converges call recordings with Recall on a schedule: pulls stale bot statuses and overdue transcripts, finishes failed cancellations, schedules bots for recordings still missing one, and reaps unclaimed bots. Reads calendar events only to heal already-decided recordings, never to discover meetings.', - timeoutSeconds: 250, - handler: reconcileStaleBotStateHandler, - cronTriggerSettings: { - pattern: STALE_BOT_STATE_CRON_PATTERN, - }, -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/calendar-event-record.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/calendar-event-record.type.ts deleted file mode 100644 index 1871fee9a2214..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/calendar-event-record.type.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { type MeetingBotPolicyCalendarEventInput } from 'src/logic-functions/types/meeting-bot-policy-calendar-event-input.type'; - -export type CalendarEventRecord = MeetingBotPolicyCalendarEventInput & { - title: string | undefined; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/call-recording-record.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/call-recording-record.type.ts deleted file mode 100644 index 8d046052c8899..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/call-recording-record.type.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { type CallRecordingRequestStatus } from 'src/logic-functions/constants/call-recording-request-status'; - -// Domain read shape: absence is always undefined; null lives only on wire types. -export type CallRecordingRecord = { - id: string; - title?: string; - status?: string; - recordingRequestStatus?: CallRecordingRequestStatus; - startedAt?: string; - endedAt?: string; - calendarEventId?: string; - externalBotId?: string; - externalRecordingId?: string; - meetingBotFailureReason?: string; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/files-field-value.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/files-field-value.type.ts deleted file mode 100644 index e75a1bddd7c02..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/files-field-value.type.ts +++ /dev/null @@ -1 +0,0 @@ -export type FilesFieldValue = { fileId: string }[]; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-calendar-event-input.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-calendar-event-input.type.ts deleted file mode 100644 index 0a87c8114a550..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-calendar-event-input.type.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Domain read shape: wire composites are flattened and absence is undefined. -export type MeetingBotPolicyCalendarEventInput = { - id: string; - isCanceled: boolean; - startsAt: string | undefined; - endsAt: string | undefined; - iCalUid: string | undefined; - conferenceLinkUrl: string | undefined; - meetingBotPreference: string | undefined; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-input.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-input.type.ts deleted file mode 100644 index 5a90fd60f46b6..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-input.type.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { type MeetingBotPreference } from 'src/constants/meeting-bot-preference'; - -export type MeetingBotPolicyInput = { - meetingBotPreference: MeetingBotPreference | undefined; - isCanceled: boolean; - startsAt: string | undefined; - endsAt: string | undefined; - conferenceLinkUrl: string | undefined; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-not-required-reason.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-not-required-reason.type.ts deleted file mode 100644 index 748a5a5dc0f7e..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-not-required-reason.type.ts +++ /dev/null @@ -1,5 +0,0 @@ -export type MeetingBotPolicyNotRequiredReason = - | 'EVENT_CANCELED' - | 'PREFERENCE_OFF' - | 'MISSING_CONFERENCE_LINK' - | 'EVENT_NOT_UPCOMING'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-required-reason.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-required-reason.type.ts deleted file mode 100644 index ef80f8eaebf62..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-required-reason.type.ts +++ /dev/null @@ -1 +0,0 @@ -export type MeetingBotPolicyRequiredReason = 'RECORDING_ENABLED'; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-result-for-calendar-event.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-result-for-calendar-event.type.ts deleted file mode 100644 index a8c5b0762ef8d..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-result-for-calendar-event.type.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { type MeetingBotPreference } from 'src/constants/meeting-bot-preference'; -import { type MeetingBotPolicyResult } from 'src/logic-functions/types/meeting-bot-policy-result.type'; - -export type MeetingBotPolicyResultForCalendarEvent = MeetingBotPolicyResult & { - calendarEventId: string; - meetingBotPreference: MeetingBotPreference | undefined; - realMeetingKey: string; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-result-for-meeting.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-result-for-meeting.type.ts deleted file mode 100644 index 7091c0addba49..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-result-for-meeting.type.ts +++ /dev/null @@ -1,6 +0,0 @@ -export type MeetingBotPolicyResultForMeeting = { - realMeetingKey: string; - shouldRequestBot: boolean; - calendarEventIds: string[]; - requestingCalendarEventIds: string[]; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-result.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-result.type.ts deleted file mode 100644 index 2b420ff94f7ea..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-policy-result.type.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { type MeetingBotPolicyNotRequiredReason } from 'src/logic-functions/types/meeting-bot-policy-not-required-reason.type'; -import { type MeetingBotPolicyRequiredReason } from 'src/logic-functions/types/meeting-bot-policy-required-reason.type'; - -export type MeetingBotPolicyResult = - | { - shouldRequestBot: true; - reason: MeetingBotPolicyRequiredReason; - } - | { - shouldRequestBot: false; - reason: MeetingBotPolicyNotRequiredReason; - }; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-reconciliation-result.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-reconciliation-result.type.ts deleted file mode 100644 index ae463e04b5e9a..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-bot-reconciliation-result.type.ts +++ /dev/null @@ -1,16 +0,0 @@ -export type MeetingBotReconciliationResult = - | { - action: 'CREATED' | 'UPDATED' | 'CANCELED'; - realMeetingKey: string; - callRecordingId: string; - } - | { - action: 'SKIPPED'; - realMeetingKey: string; - callRecordingId: string | null; - } - | { - action: 'FAILED'; - realMeetingKey: string; - errorMessage: string; - }; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-recording.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-recording.type.ts deleted file mode 100644 index 4c672082f4c7a..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/meeting-recording.type.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { type CalendarEventRecord } from 'src/logic-functions/types/calendar-event-record.type'; -import { type CallRecordingRecord } from 'src/logic-functions/types/call-recording-record.type'; - -export type MeetingRecording = { - callRecording: CallRecordingRecord; - calendarEvent: CalendarEventRecord; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/recall-bot-metadata.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/recall-bot-metadata.type.ts deleted file mode 100644 index 196f08cf02d7e..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/recall-bot-metadata.type.ts +++ /dev/null @@ -1,6 +0,0 @@ -export type RecallBotMetadata = { - twentyWorkspaceId: string; - twentyCallRecordingId: string; - twentyCalendarEventId: string; - twentyRealMeetingKey: string; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/recall-bot-operation-result.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/recall-bot-operation-result.type.ts deleted file mode 100644 index 3279288413f5e..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/recall-bot-operation-result.type.ts +++ /dev/null @@ -1,19 +0,0 @@ -export type RecallBotOperationFailure = { - ok: false; - // null = no HTTP response (network failure), distinct from any status code. - status: number | null; - errorMessage: string; -}; - -export type RecallBotScheduleResult = - | { - ok: true; - externalBotId: string; - } - | RecallBotOperationFailure; - -export type RecallBotRemovalResult = - | { - ok: true; - } - | RecallBotOperationFailure; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/removed-meeting-bot-occurrence.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/removed-meeting-bot-occurrence.type.ts deleted file mode 100644 index 506a3490d5247..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/removed-meeting-bot-occurrence.type.ts +++ /dev/null @@ -1,6 +0,0 @@ -// An occurrence whose event was deleted/moved; key + start re-checks siblings. -export type RemovedMeetingBotOccurrence = { - calendarEventId: string; - realMeetingKey: string; - startsAt: string | undefined; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/transcript-marker.type.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/transcript-marker.type.ts deleted file mode 100644 index 205ce51d1c318..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/types/transcript-marker.type.ts +++ /dev/null @@ -1,6 +0,0 @@ -export type TranscriptMarker = { - recallTranscriptId: string | null; - status: 'PENDING' | 'FAILED'; - requestedAt?: string; - subCode?: string | null; -}; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/as-record.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/as-record.util.ts deleted file mode 100644 index 63e7cfcddd29b..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/as-record.util.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { isArray, isObject } from '@sniptt/guards'; - -export const asRecord = (value: unknown): Record | undefined => - isObject(value) && !isArray(value) - ? (value as Record) - : undefined; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/get-application-variable-value.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/get-application-variable-value.util.ts deleted file mode 100644 index 19a9c2c7cd20f..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/get-application-variable-value.util.ts +++ /dev/null @@ -1,3 +0,0 @@ -// Application and server variables are injected into process.env on every execution. -export const getApplicationVariableValue = (key: string): string | undefined => - process.env[key]; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/get-record-at-path.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/get-record-at-path.util.ts deleted file mode 100644 index 1ee635a334fcf..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/get-record-at-path.util.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { asRecord } from 'src/logic-functions/utils/as-record.util'; - -export const getRecordAtPath = ( - record: Record | undefined, - path: string[], -): unknown => - path.reduce( - (currentValue, pathPart) => asRecord(currentValue)?.[pathPart], - record, - ); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/get-string.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/get-string.util.ts deleted file mode 100644 index f222af01b1de1..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/get-string.util.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { isNonEmptyString } from 'src/logic-functions/utils/is-non-empty-string.util'; - -export const getString = (value: unknown): string | undefined => - isNonEmptyString(value) ? value : undefined; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/get-unique-sorted-ids.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/get-unique-sorted-ids.util.ts deleted file mode 100644 index a296142c0d397..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/get-unique-sorted-ids.util.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { isString } from '@sniptt/guards'; - -export const getUniqueSortedIds = ( - ids: Array, -): string[] => - [...new Set(ids.filter(isString))].sort((firstId, secondId) => - firstId.localeCompare(secondId), - ); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/is-non-empty-string.util.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/is-non-empty-string.util.ts deleted file mode 100644 index 175943f38363d..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/logic-functions/utils/is-non-empty-string.util.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { isString } from '@sniptt/guards'; - -// Trimming variant of @sniptt/guards isNonEmptyString, for normalizing at read boundaries. -export const isNonEmptyString = (value: unknown): value is string => - isString(value) && value.trim() !== ''; diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/page-layouts/calendar-event-recording-tab.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/page-layouts/calendar-event-recording-tab.ts deleted file mode 100644 index 90d63b714261f..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/page-layouts/calendar-event-recording-tab.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { - definePageLayoutTab, - PageLayoutTabLayoutMode, -} from 'twenty-sdk/define'; - -import { CALENDAR_EVENT_RECORD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIER } from 'src/constants/calendar-event-record-page-layout-universal-identifier'; -import { CALENDAR_EVENT_RECORDING_FRONT_COMPONENT_UNIVERSAL_IDENTIFIER } from 'src/constants/calendar-event-recording-front-component-universal-identifier'; -import { CALENDAR_EVENT_RECORDING_PAGE_LAYOUT_TAB_UNIVERSAL_IDENTIFIER } from 'src/constants/calendar-event-recording-page-layout-tab-universal-identifier'; -import { CALENDAR_EVENT_RECORDING_PAGE_LAYOUT_WIDGET_UNIVERSAL_IDENTIFIER } from 'src/constants/calendar-event-recording-page-layout-widget-universal-identifier'; - -export default definePageLayoutTab({ - universalIdentifier: - CALENDAR_EVENT_RECORDING_PAGE_LAYOUT_TAB_UNIVERSAL_IDENTIFIER, - title: 'Call Recording', - position: 25, - icon: 'IconVideo', - layoutMode: PageLayoutTabLayoutMode.CANVAS, - pageLayoutUniversalIdentifier: - CALENDAR_EVENT_RECORD_PAGE_LAYOUT_UNIVERSAL_IDENTIFIER, - widgets: [ - { - universalIdentifier: - CALENDAR_EVENT_RECORDING_PAGE_LAYOUT_WIDGET_UNIVERSAL_IDENTIFIER, - title: 'Transcript', - type: 'FRONT_COMPONENT', - configuration: { - configurationType: 'FRONT_COMPONENT', - frontComponentUniversalIdentifier: - CALENDAR_EVENT_RECORDING_FRONT_COMPONENT_UNIVERSAL_IDENTIFIER, - }, - }, - ], -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/src/view-fields/meeting-bot-preference-on-calendar-event.view-field.ts b/packages/twenty-apps/public/twenty-meeting-bot/src/view-fields/meeting-bot-preference-on-calendar-event.view-field.ts deleted file mode 100644 index 8cba6d1ae81fd..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/src/view-fields/meeting-bot-preference-on-calendar-event.view-field.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { defineViewField } from 'twenty-sdk/define'; - -import { MEETING_BOT_PREFERENCE_ON_CALENDAR_EVENT_FIELD_UNIVERSAL_IDENTIFIER } from 'src/constants/meeting-bot-preference-on-calendar-event-field-universal-identifier'; -import { MEETING_BOT_PREFERENCE_ON_CALENDAR_EVENT_VIEW_FIELD_UNIVERSAL_IDENTIFIER } from 'src/constants/meeting-bot-preference-on-calendar-event-view-field-universal-identifier'; - -// TODO: hardcoded because the published twenty-sdk (2.14.0) predates the -// calendarEventRecordPageFields view. Replace both with -// STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS.calendarEvent.views.calendarEventRecordPageFields -// once the SDK is republished with this view. -const CALENDAR_EVENT_RECORD_PAGE_FIELDS_VIEW_UNIVERSAL_IDENTIFIER = - 'c73668d1-022d-4eaf-b825-4e2548180db6'; -const CALENDAR_EVENT_RECORD_PAGE_FIELDS_GENERAL_GROUP_UNIVERSAL_IDENTIFIER = - 'aeadeb9e-3673-4c0c-8845-f59cb1e6ca42'; - -export default defineViewField({ - universalIdentifier: - MEETING_BOT_PREFERENCE_ON_CALENDAR_EVENT_VIEW_FIELD_UNIVERSAL_IDENTIFIER, - viewUniversalIdentifier: - CALENDAR_EVENT_RECORD_PAGE_FIELDS_VIEW_UNIVERSAL_IDENTIFIER, - viewFieldGroupUniversalIdentifier: - CALENDAR_EVENT_RECORD_PAGE_FIELDS_GENERAL_GROUP_UNIVERSAL_IDENTIFIER, - fieldMetadataUniversalIdentifier: - MEETING_BOT_PREFERENCE_ON_CALENDAR_EVENT_FIELD_UNIVERSAL_IDENTIFIER, - position: 8, - isVisible: true, - size: 150, -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/tsconfig.json b/packages/twenty-apps/public/twenty-meeting-bot/tsconfig.json deleted file mode 100644 index f71645f97ac85..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/tsconfig.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "compileOnSave": false, - "compilerOptions": { - "sourceMap": true, - "declaration": true, - "outDir": "./dist", - "rootDir": ".", - "jsx": "react-jsx", - "moduleResolution": "bundler", - "allowSyntheticDefaultImports": true, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "importHelpers": true, - "allowUnreachableCode": false, - "strict": true, - "alwaysStrict": true, - "noImplicitAny": true, - "strictBindCallApply": false, - "target": "es2018", - "module": "esnext", - "lib": ["es2020", "dom"], - "skipLibCheck": true, - "skipDefaultLibCheck": true, - "resolveJsonModule": true, - "paths": { - "src/*": ["./src/*"], - "~/*": ["./*"] - } - }, - "exclude": [ - "node_modules", - "dist", - "**/*.test.ts", - "**/*.spec.ts", - "**/*.integration-test.ts" - ], - "references": [ - { - "path": "./tsconfig.spec.json" - } - ] -} diff --git a/packages/twenty-apps/public/twenty-meeting-bot/tsconfig.spec.json b/packages/twenty-apps/public/twenty-meeting-bot/tsconfig.spec.json deleted file mode 100644 index ea69a6c0105e7..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/tsconfig.spec.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "composite": true, - "types": ["vitest/globals", "node"] - }, - "include": ["src/**/*.ts", "src/**/*.tsx"], - "exclude": ["node_modules", "dist"] -} diff --git a/packages/twenty-apps/public/twenty-meeting-bot/vitest.config.ts b/packages/twenty-apps/public/twenty-meeting-bot/vitest.config.ts deleted file mode 100644 index 055af77dbec35..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/vitest.config.ts +++ /dev/null @@ -1,31 +0,0 @@ -import tsconfigPaths from 'vite-tsconfig-paths'; -import { defineConfig } from 'vitest/config'; - -const TWENTY_API_URL = process.env.TWENTY_API_URL ?? 'http://localhost:2020'; -const TWENTY_API_KEY = - process.env.TWENTY_API_KEY ?? - 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIyMDIwMjAyMC0xYzI1LTRkMDItYmYyNS02YWVjY2Y3ZWE0MTkiLCJ0eXBlIjoiQVBJX0tFWSIsIndvcmtzcGFjZUlkIjoiMjAyMDIwMjAtMWMyNS00ZDAyLWJmMjUtNmFlY2NmN2VhNDE5IiwiaWF0IjoxNzM1Njg5NjAwLCJleHAiOjQ4OTE0NDk2MDAsImp0aSI6IjIwMjAyMDIwLWY0MDEtNGQ4YS1hNzMxLTY0ZDAwN2MyN2JhZCJ9.bfQjfyN0NEtTCLE_xPyNcwonDzlSXFoP8kdCQTdnuDc'; - -// Make env vars available to globalSetup (test.env only applies to workers) -process.env.TWENTY_API_URL = TWENTY_API_URL; -process.env.TWENTY_API_KEY = TWENTY_API_KEY; - -export default defineConfig({ - plugins: [ - tsconfigPaths({ - projects: ['tsconfig.spec.json'], - ignoreConfigErrors: true, - }), - ], - test: { - testTimeout: 120_000, - hookTimeout: 120_000, - fileParallelism: false, - include: ['src/**/*.integration-test.ts'], - globalSetup: ['src/__tests__/global-setup.ts'], - env: { - TWENTY_API_URL, - TWENTY_API_KEY, - }, - }, -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/vitest.unit.config.ts b/packages/twenty-apps/public/twenty-meeting-bot/vitest.unit.config.ts deleted file mode 100644 index e0d140015bb71..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/vitest.unit.config.ts +++ /dev/null @@ -1,14 +0,0 @@ -import tsconfigPaths from 'vite-tsconfig-paths'; -import { defineConfig } from 'vitest/config'; - -export default defineConfig({ - plugins: [ - tsconfigPaths({ - projects: ['tsconfig.spec.json'], - ignoreConfigErrors: true, - }), - ], - test: { - include: ['src/**/*.test.ts'], - }, -}); diff --git a/packages/twenty-apps/public/twenty-meeting-bot/yarn.lock b/packages/twenty-apps/public/twenty-meeting-bot/yarn.lock deleted file mode 100644 index 2282a5403f1ac..0000000000000 --- a/packages/twenty-apps/public/twenty-meeting-bot/yarn.lock +++ /dev/null @@ -1,3396 +0,0 @@ -# This file is generated by running "yarn install" inside your project. -# Manual changes might be lost - proceed with caution! - -__metadata: - version: 8 - cacheKey: 10c0 - -"@alcalzone/ansi-tokenize@npm:^0.2.4": - version: 0.2.5 - resolution: "@alcalzone/ansi-tokenize@npm:0.2.5" - dependencies: - ansi-styles: "npm:^6.2.1" - is-fullwidth-code-point: "npm:^5.0.0" - checksum: 10c0/dd8622288426b5b7dbf8b68d51d4b930cea591d0e3b9dbc3f523131464d78ac922c165fcb7ba5307f133d35dbcaa0e6648a1c3fb6a0dc2725546d6f867b70af4 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/code-frame@npm:7.29.7" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.29.7" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.1.1" - checksum: 10c0/169fc2080169a40c1760155eaaaf739bcb882df0bec76a83adbda5493645bc17270a3434b8848c494b1933e96fe1d147370001e3cda09a39f43ae30f08ef2069 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/generator@npm:7.29.7" - dependencies: - "@babel/parser": "npm:^7.29.7" - "@babel/types": "npm:^7.29.7" - "@jridgewell/gen-mapping": "npm:^0.3.12" - "@jridgewell/trace-mapping": "npm:^0.3.28" - jsesc: "npm:^3.0.2" - checksum: 10c0/9bf72b01b5bd0ea5b1288a0e37dbd360bff2f2b1ce73342c0d40fb3db2ec3dc004ada5ffa925c5e12939a416eed59e600d562b8ecd938ce0d27dfd0eb6c6c2b7 - languageName: node - linkType: hard - -"@babel/helper-globals@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/helper-globals@npm:7.29.7" - checksum: 10c0/f38417c40b1129a1b2b519ca961b9040c8827d1444fd74068702286b91b77089431dc76b6b9d5c1496e5da2a4f3ad329c6946e688ba3fa0d1d0b3d2b4f34f36a - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.16.7": - version: 7.29.7 - resolution: "@babel/helper-module-imports@npm:7.29.7" - dependencies: - "@babel/traverse": "npm:^7.29.7" - "@babel/types": "npm:^7.29.7" - checksum: 10c0/6adf60d97356027413342a092f818d9678c4f5caff716a33e3284b5ae14e47a9e88059d421dde4ee4894691260039a12602c0e7becadc175602194b40dfa345d - languageName: node - linkType: hard - -"@babel/helper-string-parser@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/helper-string-parser@npm:7.29.7" - checksum: 10c0/194bc0f1716e396d5ffde56ad6119745fb9557662c98611590e5e454906783a4ccb21ce93056b8eb69a4909044834e45d96e50ac695bbe9e3221648fe033c06c - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/helper-validator-identifier@npm:7.29.7" - checksum: 10c0/4795354e7ae0dcafa72de1cd04ec51252dc1498517170beaf019e03effc5b7bf13c6b21a3949a77e07b8125be7f106ed1131350d8ebd4566ae874094a726d62b - languageName: node - linkType: hard - -"@babel/parser@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/parser@npm:7.29.7" - dependencies: - "@babel/types": "npm:^7.29.7" - bin: - parser: ./bin/babel-parser.js - checksum: 10c0/65133038f80b54a714d6027cb77cee3f9a6b5c4c6842ce674301e13947cbcbfa8055e63acaf1b84c085d34226a14425b2c2b97b829e0e226d2e8f1299942a51d - languageName: node - linkType: hard - -"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3": - version: 7.29.7 - resolution: "@babel/runtime@npm:7.29.7" - checksum: 10c0/ca11572f7146b21e0bde6a9ed4bb6a89eafbee5f0944c7eb54d0d8a2dac962c33638a1d611e14faa71dfbb92b4b5f9236232208568a6b7d5c6f3f39ddb91771e - languageName: node - linkType: hard - -"@babel/template@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/template@npm:7.29.7" - dependencies: - "@babel/code-frame": "npm:^7.29.7" - "@babel/parser": "npm:^7.29.7" - "@babel/types": "npm:^7.29.7" - checksum: 10c0/8bb7f900dcab0e9e1c5ffbc33ca10e0d26b7b2e2ca804becb73ee771b9c4ed6e2908a4ae4a14c08560febb45d2b6b9a173955e42ad404d05f8b04840a14d9c58 - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/traverse@npm:7.29.7" - dependencies: - "@babel/code-frame": "npm:^7.29.7" - "@babel/generator": "npm:^7.29.7" - "@babel/helper-globals": "npm:^7.29.7" - "@babel/parser": "npm:^7.29.7" - "@babel/template": "npm:^7.29.7" - "@babel/types": "npm:^7.29.7" - debug: "npm:^4.3.1" - checksum: 10c0/e256a1fbdb956555b76f3c285b1e453f6bedec8b3afb61751d99d933efd11c7d79caf5ddf2493570058a9f7deaa1b48324380d7c1aa1443fd9508becbf56331a - languageName: node - linkType: hard - -"@babel/types@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/types@npm:7.29.7" - dependencies: - "@babel/helper-string-parser": "npm:^7.29.7" - "@babel/helper-validator-identifier": "npm:^7.29.7" - checksum: 10c0/b6623994c69717fa27294f5fa46d59140338e2d86c6c1c13085c84ef7d53086ee357fbf4fe9abe3dd3da75734dc77c4c0df2f90fb29e667558bb3b3fb705e88f - languageName: node - linkType: hard - -"@emnapi/core@npm:1.10.0": - version: 1.10.0 - resolution: "@emnapi/core@npm:1.10.0" - dependencies: - "@emnapi/wasi-threads": "npm:1.2.1" - tslib: "npm:^2.4.0" - checksum: 10c0/f51d08227857b60632de7714d708124f0e100a1462dde6df8221760939aa3204a73193830371830fac0716f3ccd2129f2cac1b17cd7d7958bc4da9018a296edb - languageName: node - linkType: hard - -"@emnapi/runtime@npm:1.10.0": - version: 1.10.0 - resolution: "@emnapi/runtime@npm:1.10.0" - dependencies: - tslib: "npm:^2.4.0" - checksum: 10c0/953f14991d1aefb92ee6f8eb27dea725e484791a53a0cb5f47d9e0087b9a2c929ff2e92adf95af15d6ad456db6300c6b761ebf72b50a875b874a83520b3ba093 - languageName: node - linkType: hard - -"@emnapi/wasi-threads@npm:1.2.1": - version: 1.2.1 - resolution: "@emnapi/wasi-threads@npm:1.2.1" - dependencies: - tslib: "npm:^2.4.0" - checksum: 10c0/32fcfa81ab396533b2ec1f4082b1ff779a05d9c836bbbd3f4398405b0e6814c0d9503b7993130e37bc6941dbc1ded49f55e9700ae9ca4e803bab2b5bc5deb331 - languageName: node - linkType: hard - -"@emotion/babel-plugin@npm:^11.13.5": - version: 11.13.5 - resolution: "@emotion/babel-plugin@npm:11.13.5" - dependencies: - "@babel/helper-module-imports": "npm:^7.16.7" - "@babel/runtime": "npm:^7.18.3" - "@emotion/hash": "npm:^0.9.2" - "@emotion/memoize": "npm:^0.9.0" - "@emotion/serialize": "npm:^1.3.3" - babel-plugin-macros: "npm:^3.1.0" - convert-source-map: "npm:^1.5.0" - escape-string-regexp: "npm:^4.0.0" - find-root: "npm:^1.1.0" - source-map: "npm:^0.5.7" - stylis: "npm:4.2.0" - checksum: 10c0/8ccbfec7defd0e513cb8a1568fa179eac1e20c35fda18aed767f6c59ea7314363ebf2de3e9d2df66c8ad78928dc3dceeded84e6fa8059087cae5c280090aeeeb - languageName: node - linkType: hard - -"@emotion/cache@npm:^11.14.0": - version: 11.14.0 - resolution: "@emotion/cache@npm:11.14.0" - dependencies: - "@emotion/memoize": "npm:^0.9.0" - "@emotion/sheet": "npm:^1.4.0" - "@emotion/utils": "npm:^1.4.2" - "@emotion/weak-memoize": "npm:^0.4.0" - stylis: "npm:4.2.0" - checksum: 10c0/3fa3e7a431ab6f8a47c67132a00ac8358f428c1b6c8421d4b20de9df7c18e95eec04a5a6ff5a68908f98d3280044f247b4965ac63df8302d2c94dba718769724 - languageName: node - linkType: hard - -"@emotion/hash@npm:^0.9.2": - version: 0.9.2 - resolution: "@emotion/hash@npm:0.9.2" - checksum: 10c0/0dc254561a3cc0a06a10bbce7f6a997883fd240c8c1928b93713f803a2e9153a257a488537012efe89dbe1246f2abfe2add62cdb3471a13d67137fcb808e81c2 - languageName: node - linkType: hard - -"@emotion/is-prop-valid@npm:^1.3.0": - version: 1.4.0 - resolution: "@emotion/is-prop-valid@npm:1.4.0" - dependencies: - "@emotion/memoize": "npm:^0.9.0" - checksum: 10c0/5f857814ec7d8c7e727727346dfb001af6b1fb31d621a3ce9c3edf944a484d8b0d619546c30899ae3ade2f317c76390ba4394449728e9bf628312defc2c41ac3 - languageName: node - linkType: hard - -"@emotion/memoize@npm:^0.9.0": - version: 0.9.0 - resolution: "@emotion/memoize@npm:0.9.0" - checksum: 10c0/13f474a9201c7f88b543e6ea42f55c04fb2fdc05e6c5a3108aced2f7e7aa7eda7794c56bba02985a46d8aaa914fcdde238727a98341a96e2aec750d372dadd15 - languageName: node - linkType: hard - -"@emotion/react@npm:^11.14.0": - version: 11.14.0 - resolution: "@emotion/react@npm:11.14.0" - dependencies: - "@babel/runtime": "npm:^7.18.3" - "@emotion/babel-plugin": "npm:^11.13.5" - "@emotion/cache": "npm:^11.14.0" - "@emotion/serialize": "npm:^1.3.3" - "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.2.0" - "@emotion/utils": "npm:^1.4.2" - "@emotion/weak-memoize": "npm:^0.4.0" - hoist-non-react-statics: "npm:^3.3.1" - peerDependencies: - react: ">=16.8.0" - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/d0864f571a9f99ec643420ef31fde09e2006d3943a6aba079980e4d5f6e9f9fecbcc54b8f617fe003c00092ff9d5241179149ffff2810cb05cf72b4620cfc031 - languageName: node - linkType: hard - -"@emotion/serialize@npm:^1.3.3": - version: 1.3.3 - resolution: "@emotion/serialize@npm:1.3.3" - dependencies: - "@emotion/hash": "npm:^0.9.2" - "@emotion/memoize": "npm:^0.9.0" - "@emotion/unitless": "npm:^0.10.0" - "@emotion/utils": "npm:^1.4.2" - csstype: "npm:^3.0.2" - checksum: 10c0/b28cb7de59de382021de2b26c0c94ebbfb16967a1b969a56fdb6408465a8993df243bfbd66430badaa6800e1834724e84895f5a6a9d97d0d224de3d77852acb4 - languageName: node - linkType: hard - -"@emotion/sheet@npm:^1.4.0": - version: 1.4.0 - resolution: "@emotion/sheet@npm:1.4.0" - checksum: 10c0/3ca72d1650a07d2fbb7e382761b130b4a887dcd04e6574b2d51ce578791240150d7072a9bcb4161933abbcd1e38b243a6fb4464a7fe991d700c17aa66bb5acc7 - languageName: node - linkType: hard - -"@emotion/styled@npm:^11.14.0": - version: 11.14.1 - resolution: "@emotion/styled@npm:11.14.1" - dependencies: - "@babel/runtime": "npm:^7.18.3" - "@emotion/babel-plugin": "npm:^11.13.5" - "@emotion/is-prop-valid": "npm:^1.3.0" - "@emotion/serialize": "npm:^1.3.3" - "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.2.0" - "@emotion/utils": "npm:^1.4.2" - peerDependencies: - "@emotion/react": ^11.0.0-rc.0 - react: ">=16.8.0" - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 10c0/2bbf8451df49c967e41fbcf8111a7f6dafe6757f0cc113f2f6e287206c45ac1d54dc8a95a483b7c0cee8614b8a8d08155bded6453d6721de1f8cc8d5b9216963 - languageName: node - linkType: hard - -"@emotion/unitless@npm:^0.10.0": - version: 0.10.0 - resolution: "@emotion/unitless@npm:0.10.0" - checksum: 10c0/150943192727b7650eb9a6851a98034ddb58a8b6958b37546080f794696141c3760966ac695ab9af97efe10178690987aee4791f9f0ad1ff76783cdca83c1d49 - languageName: node - linkType: hard - -"@emotion/use-insertion-effect-with-fallbacks@npm:^1.2.0": - version: 1.2.0 - resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.2.0" - peerDependencies: - react: ">=16.8.0" - checksum: 10c0/074dbc92b96bdc09209871070076e3b0351b6b47efefa849a7d9c37ab142130767609ca1831da0055988974e3b895c1de7606e4c421fecaa27c3e56a2afd3b08 - languageName: node - linkType: hard - -"@emotion/utils@npm:^1.4.2": - version: 1.4.2 - resolution: "@emotion/utils@npm:1.4.2" - checksum: 10c0/7d0010bf60a2a8c1a033b6431469de4c80e47aeb8fd856a17c1d1f76bbc3a03161a34aeaa78803566e29681ca551e7bf9994b68e9c5f5c796159923e44f78d9a - languageName: node - linkType: hard - -"@emotion/weak-memoize@npm:^0.4.0": - version: 0.4.0 - resolution: "@emotion/weak-memoize@npm:0.4.0" - checksum: 10c0/64376af11f1266042d03b3305c30b7502e6084868e33327e944b539091a472f089db307af69240f7188f8bc6b319276fd7b141a36613f1160d73d12a60f6ca1a - languageName: node - linkType: hard - -"@esbuild/aix-ppc64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/aix-ppc64@npm:0.28.1" - conditions: os=aix & cpu=ppc64 - languageName: node - linkType: hard - -"@esbuild/android-arm64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/android-arm64@npm:0.28.1" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/android-arm@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/android-arm@npm:0.28.1" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@esbuild/android-x64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/android-x64@npm:0.28.1" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/darwin-arm64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/darwin-arm64@npm:0.28.1" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/darwin-x64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/darwin-x64@npm:0.28.1" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/freebsd-arm64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/freebsd-arm64@npm:0.28.1" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/freebsd-x64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/freebsd-x64@npm:0.28.1" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/linux-arm64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/linux-arm64@npm:0.28.1" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/linux-arm@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/linux-arm@npm:0.28.1" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@esbuild/linux-ia32@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/linux-ia32@npm:0.28.1" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/linux-loong64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/linux-loong64@npm:0.28.1" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - -"@esbuild/linux-mips64el@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/linux-mips64el@npm:0.28.1" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - -"@esbuild/linux-ppc64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/linux-ppc64@npm:0.28.1" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - -"@esbuild/linux-riscv64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/linux-riscv64@npm:0.28.1" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - -"@esbuild/linux-s390x@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/linux-s390x@npm:0.28.1" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - -"@esbuild/linux-x64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/linux-x64@npm:0.28.1" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/netbsd-arm64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/netbsd-arm64@npm:0.28.1" - conditions: os=netbsd & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/netbsd-x64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/netbsd-x64@npm:0.28.1" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/openbsd-arm64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/openbsd-arm64@npm:0.28.1" - conditions: os=openbsd & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/openbsd-x64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/openbsd-x64@npm:0.28.1" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/openharmony-arm64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/openharmony-arm64@npm:0.28.1" - conditions: os=openharmony & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/sunos-x64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/sunos-x64@npm:0.28.1" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/win32-arm64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/win32-arm64@npm:0.28.1" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/win32-ia32@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/win32-ia32@npm:0.28.1" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/win32-x64@npm:0.28.1": - version: 0.28.1 - resolution: "@esbuild/win32-x64@npm:0.28.1" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@genql/runtime@npm:^2.10.0": - version: 2.10.0 - resolution: "@genql/runtime@npm:2.10.0" - dependencies: - "@types/qs": "npm:^6.9.0" - "@types/ws": "npm:^6.0.1" - graphql-query-batcher: "npm:^1.0.1" - isomorphic-unfetch: "npm:^3.0.0" - lodash: "npm:^4.17.20" - subscriptions-transport-ws: "npm:^0.9.16" - tslib: "npm:^2.0.0" - utility-types: "npm:^3.10.0" - ws: "npm:^6.1.4" - zen-observable-ts: "npm:^0.8.21" - peerDependencies: - graphql: "*" - checksum: 10c0/e2a886c2469c933681e2b0ddd6a5b7f4cb12932251ba460e3cf2db4246817da79313ea4ba9769ec7cbe53ab9c1cb81ad8fcce6a969cd241185b79398d2a4f3c6 - languageName: node - linkType: hard - -"@inquirer/ansi@npm:^2.0.7": - version: 2.0.7 - resolution: "@inquirer/ansi@npm:2.0.7" - checksum: 10c0/a574f97a899f0d9346fa26b528b3f4a9ba6dcb9172288efb6b4314d8486470ed53d2f538200f66a25b843c6e0cbf83688c6d5174a8dc6eca853b291b09609c5a - languageName: node - linkType: hard - -"@inquirer/checkbox@npm:^5.2.1": - version: 5.2.1 - resolution: "@inquirer/checkbox@npm:5.2.1" - dependencies: - "@inquirer/ansi": "npm:^2.0.7" - "@inquirer/core": "npm:^11.2.1" - "@inquirer/figures": "npm:^2.0.7" - "@inquirer/type": "npm:^4.0.7" - peerDependencies: - "@types/node": ">=18" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 10c0/e3a845156c718fbbec228a0e7fd2a4f10775185615eac1f405b3a2bb2ae607dda6baf178fbd6487db0e12e5e33014536e81acefe65de57cd476a7aeaea6fb35d - languageName: node - linkType: hard - -"@inquirer/confirm@npm:^6.1.1": - version: 6.1.1 - resolution: "@inquirer/confirm@npm:6.1.1" - dependencies: - "@inquirer/core": "npm:^11.2.1" - "@inquirer/type": "npm:^4.0.7" - peerDependencies: - "@types/node": ">=18" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 10c0/4684406161c09327df830b4026f3165b31e13831276d215051586408ed434423263b15686393ce95a4b55058c1b7f9b08aa4b66f5ac930b47523fff75051d36f - languageName: node - linkType: hard - -"@inquirer/core@npm:^11.2.1": - version: 11.2.1 - resolution: "@inquirer/core@npm:11.2.1" - dependencies: - "@inquirer/ansi": "npm:^2.0.7" - "@inquirer/figures": "npm:^2.0.7" - "@inquirer/type": "npm:^4.0.7" - cli-width: "npm:^4.1.0" - fast-wrap-ansi: "npm:^0.2.0" - mute-stream: "npm:^3.0.0" - signal-exit: "npm:^4.1.0" - peerDependencies: - "@types/node": ">=18" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 10c0/b5be386cecd9e441ac2f9d3417a6ae1c4658b3ee6cdf5dae791211400f4de158851f81fca2245e2062833716f95366b9e1717770828cb7365e756c16e822f0d2 - languageName: node - linkType: hard - -"@inquirer/editor@npm:^5.2.2": - version: 5.2.2 - resolution: "@inquirer/editor@npm:5.2.2" - dependencies: - "@inquirer/core": "npm:^11.2.1" - "@inquirer/external-editor": "npm:^3.0.3" - "@inquirer/type": "npm:^4.0.7" - peerDependencies: - "@types/node": ">=18" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 10c0/a75e7012aad3ccc3ec84893463ed689924515a6cbaee8e2a475769fb27c12bcf359fcdd5f62e92107fc4be88fd69444c15adf13071982efc140c7015a6604d9a - languageName: node - linkType: hard - -"@inquirer/expand@npm:^5.1.1": - version: 5.1.1 - resolution: "@inquirer/expand@npm:5.1.1" - dependencies: - "@inquirer/core": "npm:^11.2.1" - "@inquirer/type": "npm:^4.0.7" - peerDependencies: - "@types/node": ">=18" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 10c0/4de661a042147759ce351971a4f92010ab66cb76450424e7d8aec5de79b449d14e8751f54f557d0b047180bca2b76707626f4835ee46603c6200139c31b59652 - languageName: node - linkType: hard - -"@inquirer/external-editor@npm:^3.0.3": - version: 3.0.3 - resolution: "@inquirer/external-editor@npm:3.0.3" - dependencies: - chardet: "npm:^2.1.1" - iconv-lite: "npm:^0.7.2" - peerDependencies: - "@types/node": ">=18" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 10c0/fc24ddbff15f0874db6498c16d2fe153bb19a670d83605f480486d6ff0ea872ae2f32a548fd555797989db09850fa019a6b5e49a8d40cfee0d7deacad17edc1e - languageName: node - linkType: hard - -"@inquirer/figures@npm:^2.0.7": - version: 2.0.7 - resolution: "@inquirer/figures@npm:2.0.7" - checksum: 10c0/e0573dc9ad25fa3628d5164745e52852d8cd832a9918605b7716df2e37a0005a0aaf40b6d81cef2ca09cb708b200e61b82d1dcd17003f572577e233c19a9ec7b - languageName: node - linkType: hard - -"@inquirer/input@npm:^5.1.2": - version: 5.1.2 - resolution: "@inquirer/input@npm:5.1.2" - dependencies: - "@inquirer/core": "npm:^11.2.1" - "@inquirer/type": "npm:^4.0.7" - peerDependencies: - "@types/node": ">=18" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 10c0/9c3614f8d79fc2bec07a088858a58967a162046c9292b0c6f0c6f63396cf391181cfb54bb636f5b3dce8d23924c24ee4a0310183a493c94190e4750218f3744d - languageName: node - linkType: hard - -"@inquirer/number@npm:^4.1.1": - version: 4.1.1 - resolution: "@inquirer/number@npm:4.1.1" - dependencies: - "@inquirer/core": "npm:^11.2.1" - "@inquirer/type": "npm:^4.0.7" - peerDependencies: - "@types/node": ">=18" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 10c0/06210dd70bf89d35242af43009b5e3f76a5f07d6275a9d842bbed61536032f5f349ecba1c20012975d7b0362deb89746d5903e90f21516da10bfd8c2055829a9 - languageName: node - linkType: hard - -"@inquirer/password@npm:^5.1.1": - version: 5.1.1 - resolution: "@inquirer/password@npm:5.1.1" - dependencies: - "@inquirer/ansi": "npm:^2.0.7" - "@inquirer/core": "npm:^11.2.1" - "@inquirer/type": "npm:^4.0.7" - peerDependencies: - "@types/node": ">=18" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 10c0/e4cb3a53b56743808f83958a8fe85738d721599690a4bc7640eaa07fb8f4765bc6f174e40c16efcc8a5958a7169667e240714a706a36e831f9c7a6822cbe8b55 - languageName: node - linkType: hard - -"@inquirer/prompts@npm:^8.5.2": - version: 8.5.2 - resolution: "@inquirer/prompts@npm:8.5.2" - dependencies: - "@inquirer/checkbox": "npm:^5.2.1" - "@inquirer/confirm": "npm:^6.1.1" - "@inquirer/editor": "npm:^5.2.2" - "@inquirer/expand": "npm:^5.1.1" - "@inquirer/input": "npm:^5.1.2" - "@inquirer/number": "npm:^4.1.1" - "@inquirer/password": "npm:^5.1.1" - "@inquirer/rawlist": "npm:^5.3.1" - "@inquirer/search": "npm:^4.2.1" - "@inquirer/select": "npm:^5.2.1" - peerDependencies: - "@types/node": ">=18" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 10c0/253b92e31c6a1f8f00a778eda8196bb53fc931723f7db4a03937f38ccd4d07c987766d4f60b9250b5d90bfe30b04747dfa73927a9f6fb886bd48091ccb202535 - languageName: node - linkType: hard - -"@inquirer/rawlist@npm:^5.3.1": - version: 5.3.1 - resolution: "@inquirer/rawlist@npm:5.3.1" - dependencies: - "@inquirer/core": "npm:^11.2.1" - "@inquirer/type": "npm:^4.0.7" - peerDependencies: - "@types/node": ">=18" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 10c0/a05eb6a16633bd7b32b3b6b2c1f645e6e28d955475b21ba7222e7e66806b1be15be9f91235b2933e8d27e04fdad81ebfb2d64fc1fc0d4b8d82dcd2718817b2b9 - languageName: node - linkType: hard - -"@inquirer/search@npm:^4.2.1": - version: 4.2.1 - resolution: "@inquirer/search@npm:4.2.1" - dependencies: - "@inquirer/core": "npm:^11.2.1" - "@inquirer/figures": "npm:^2.0.7" - "@inquirer/type": "npm:^4.0.7" - peerDependencies: - "@types/node": ">=18" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 10c0/eae9b2d524aae58266f96987696be22ad62f608661d28763c413f2560094d571a39d72a40630d2470f503ad5e6e50d8c574a653cc028bf79b51104fa91f59a67 - languageName: node - linkType: hard - -"@inquirer/select@npm:^5.2.1": - version: 5.2.1 - resolution: "@inquirer/select@npm:5.2.1" - dependencies: - "@inquirer/ansi": "npm:^2.0.7" - "@inquirer/core": "npm:^11.2.1" - "@inquirer/figures": "npm:^2.0.7" - "@inquirer/type": "npm:^4.0.7" - peerDependencies: - "@types/node": ">=18" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 10c0/3c6d0151b5a29111254a58eaf8b93bb4c476e68b0751526d8bff61a4bea457bdbe782890ae33977c5d2015f436596b5d32a8bb0677bfdf610f5f5998e65f5a92 - languageName: node - linkType: hard - -"@inquirer/type@npm:^4.0.7": - version: 4.0.7 - resolution: "@inquirer/type@npm:4.0.7" - peerDependencies: - "@types/node": ">=18" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 10c0/80678ac1c6e19ce309909e4a54a69adc95697ea3abc2cb92f17b1bc52f4caadbcb4003ae7339fb5a70c0d36d3bde975e1bb4450069662f41c953a0d28695bb70 - languageName: node - linkType: hard - -"@isaacs/fs-minipass@npm:^4.0.0": - version: 4.0.1 - resolution: "@isaacs/fs-minipass@npm:4.0.1" - dependencies: - minipass: "npm:^7.0.4" - checksum: 10c0/c25b6dc1598790d5b55c0947a9b7d111cfa92594db5296c3b907e2f533c033666f692a3939eadac17b1c7c40d362d0b0635dc874cbfe3e70db7c2b07cc97a5d2 - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.3.12": - version: 0.3.13 - resolution: "@jridgewell/gen-mapping@npm:0.3.13" - dependencies: - "@jridgewell/sourcemap-codec": "npm:^1.5.0" - "@jridgewell/trace-mapping": "npm:^0.3.24" - checksum: 10c0/9a7d65fb13bd9aec1fbab74cda08496839b7e2ceb31f5ab922b323e94d7c481ce0fc4fd7e12e2610915ed8af51178bdc61e168e92a8c8b8303b030b03489b13b - languageName: node - linkType: hard - -"@jridgewell/resolve-uri@npm:^3.1.0": - version: 3.1.2 - resolution: "@jridgewell/resolve-uri@npm:3.1.2" - checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e - languageName: node - linkType: hard - -"@jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0, @jridgewell/sourcemap-codec@npm:^1.5.5": - version: 1.5.5 - resolution: "@jridgewell/sourcemap-codec@npm:1.5.5" - checksum: 10c0/f9e538f302b63c0ebc06eecb1dd9918dd4289ed36147a0ddce35d6ea4d7ebbda243cda7b2213b6a5e1d8087a298d5cf630fb2bd39329cdecb82017023f6081a0 - languageName: node - linkType: hard - -"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.28": - version: 0.3.31 - resolution: "@jridgewell/trace-mapping@npm:0.3.31" - dependencies: - "@jridgewell/resolve-uri": "npm:^3.1.0" - "@jridgewell/sourcemap-codec": "npm:^1.4.14" - checksum: 10c0/4b30ec8cd56c5fd9a661f088230af01e0c1a3888d11ffb6b47639700f71225be21d1f7e168048d6d4f9449207b978a235c07c8f15c07705685d16dc06280e9d9 - languageName: node - linkType: hard - -"@napi-rs/wasm-runtime@npm:^1.1.4": - version: 1.1.5 - resolution: "@napi-rs/wasm-runtime@npm:1.1.5" - dependencies: - "@tybys/wasm-util": "npm:^0.10.2" - peerDependencies: - "@emnapi/core": ^1.7.1 - "@emnapi/runtime": ^1.7.1 - checksum: 10c0/727f2b6ae0e68bbe5d39aeb68aa6f183314e9f03dc50bb55a962849535b2db53ecc3fbf1554d8656a54488a608df5a2634670595cf5874dc4af2ee59f817c65d - languageName: node - linkType: hard - -"@oxc-project/types@npm:=0.133.0": - version: 0.133.0 - resolution: "@oxc-project/types@npm:0.133.0" - checksum: 10c0/70c57ba58644f7ec217b670c301801f4d06995f4ccdba6b2bd106ea3e5ee49d616573e6ef8d55530b87571a960696543687f3850e87ad173d3f88965c30cdd63 - languageName: node - linkType: hard - -"@oxlint/darwin-arm64@npm:0.16.12": - version: 0.16.12 - resolution: "@oxlint/darwin-arm64@npm:0.16.12" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@oxlint/darwin-x64@npm:0.16.12": - version: 0.16.12 - resolution: "@oxlint/darwin-x64@npm:0.16.12" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@oxlint/linux-arm64-gnu@npm:0.16.12": - version: 0.16.12 - resolution: "@oxlint/linux-arm64-gnu@npm:0.16.12" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@oxlint/linux-arm64-musl@npm:0.16.12": - version: 0.16.12 - resolution: "@oxlint/linux-arm64-musl@npm:0.16.12" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@oxlint/linux-x64-gnu@npm:0.16.12": - version: 0.16.12 - resolution: "@oxlint/linux-x64-gnu@npm:0.16.12" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@oxlint/linux-x64-musl@npm:0.16.12": - version: 0.16.12 - resolution: "@oxlint/linux-x64-musl@npm:0.16.12" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@oxlint/win32-arm64@npm:0.16.12": - version: 0.16.12 - resolution: "@oxlint/win32-arm64@npm:0.16.12" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@oxlint/win32-x64@npm:0.16.12": - version: 0.16.12 - resolution: "@oxlint/win32-x64@npm:0.16.12" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@rolldown/binding-android-arm64@npm:1.0.3": - version: 1.0.3 - resolution: "@rolldown/binding-android-arm64@npm:1.0.3" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@rolldown/binding-darwin-arm64@npm:1.0.3": - version: 1.0.3 - resolution: "@rolldown/binding-darwin-arm64@npm:1.0.3" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@rolldown/binding-darwin-x64@npm:1.0.3": - version: 1.0.3 - resolution: "@rolldown/binding-darwin-x64@npm:1.0.3" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@rolldown/binding-freebsd-x64@npm:1.0.3": - version: 1.0.3 - resolution: "@rolldown/binding-freebsd-x64@npm:1.0.3" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.3": - version: 1.0.3 - resolution: "@rolldown/binding-linux-arm-gnueabihf@npm:1.0.3" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@rolldown/binding-linux-arm64-gnu@npm:1.0.3": - version: 1.0.3 - resolution: "@rolldown/binding-linux-arm64-gnu@npm:1.0.3" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@rolldown/binding-linux-arm64-musl@npm:1.0.3": - version: 1.0.3 - resolution: "@rolldown/binding-linux-arm64-musl@npm:1.0.3" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@rolldown/binding-linux-ppc64-gnu@npm:1.0.3": - version: 1.0.3 - resolution: "@rolldown/binding-linux-ppc64-gnu@npm:1.0.3" - conditions: os=linux & cpu=ppc64 & libc=glibc - languageName: node - linkType: hard - -"@rolldown/binding-linux-s390x-gnu@npm:1.0.3": - version: 1.0.3 - resolution: "@rolldown/binding-linux-s390x-gnu@npm:1.0.3" - conditions: os=linux & cpu=s390x & libc=glibc - languageName: node - linkType: hard - -"@rolldown/binding-linux-x64-gnu@npm:1.0.3": - version: 1.0.3 - resolution: "@rolldown/binding-linux-x64-gnu@npm:1.0.3" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@rolldown/binding-linux-x64-musl@npm:1.0.3": - version: 1.0.3 - resolution: "@rolldown/binding-linux-x64-musl@npm:1.0.3" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@rolldown/binding-openharmony-arm64@npm:1.0.3": - version: 1.0.3 - resolution: "@rolldown/binding-openharmony-arm64@npm:1.0.3" - conditions: os=openharmony & cpu=arm64 - languageName: node - linkType: hard - -"@rolldown/binding-wasm32-wasi@npm:1.0.3": - version: 1.0.3 - resolution: "@rolldown/binding-wasm32-wasi@npm:1.0.3" - dependencies: - "@emnapi/core": "npm:1.10.0" - "@emnapi/runtime": "npm:1.10.0" - "@napi-rs/wasm-runtime": "npm:^1.1.4" - conditions: cpu=wasm32 - languageName: node - linkType: hard - -"@rolldown/binding-win32-arm64-msvc@npm:1.0.3": - version: 1.0.3 - resolution: "@rolldown/binding-win32-arm64-msvc@npm:1.0.3" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@rolldown/binding-win32-x64-msvc@npm:1.0.3": - version: 1.0.3 - resolution: "@rolldown/binding-win32-x64-msvc@npm:1.0.3" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@rolldown/pluginutils@npm:^1.0.0": - version: 1.0.1 - resolution: "@rolldown/pluginutils@npm:1.0.1" - checksum: 10c0/99d9b06d90196823e4d8c841f258db7a16e5dbba5824a2962b05d907b79f1ba929d56f22dd744fd530936e568c865ee56a719dc31e57e13bc0a8eb4764a8d8dd - languageName: node - linkType: hard - -"@sniptt/guards@npm:^0.2.0": - version: 0.2.0 - resolution: "@sniptt/guards@npm:0.2.0" - checksum: 10c0/749bb0f550d1ddd4abdb23dc1076cba26e977659922b73d000bceeb253c09270aaced0d18e92f09d4ce2fdaae33e55f60f2142f5359bc90ba505422af0873526 - languageName: node - linkType: hard - -"@standard-schema/spec@npm:^1.1.0": - version: 1.1.0 - resolution: "@standard-schema/spec@npm:1.1.0" - checksum: 10c0/d90f55acde4b2deb983529c87e8025fa693de1a5e8b49ecc6eb84d1fd96328add0e03d7d551442156c7432fd78165b2c26ff561b970a9a881f046abb78d6a526 - languageName: node - linkType: hard - -"@tybys/wasm-util@npm:^0.10.2": - version: 0.10.2 - resolution: "@tybys/wasm-util@npm:0.10.2" - dependencies: - tslib: "npm:^2.4.0" - checksum: 10c0/26165bcd1fd7269f42d7fbe3de318f854a8968de8397e89fc9a423bb3e2da35a52150f382e6323b3367595beb16d9800a6f35971a5599daf76da1742ec3afc25 - languageName: node - linkType: hard - -"@types/chai@npm:^5.2.2": - version: 5.2.3 - resolution: "@types/chai@npm:5.2.3" - dependencies: - "@types/deep-eql": "npm:*" - assertion-error: "npm:^2.0.1" - checksum: 10c0/e0ef1de3b6f8045a5e473e867c8565788c444271409d155588504840ad1a53611011f85072188c2833941189400228c1745d78323dac13fcede9c2b28bacfb2f - languageName: node - linkType: hard - -"@types/deep-eql@npm:*": - version: 4.0.2 - resolution: "@types/deep-eql@npm:4.0.2" - checksum: 10c0/bf3f811843117900d7084b9d0c852da9a044d12eb40e6de73b552598a6843c21291a8a381b0532644574beecd5e3491c5ff3a0365ab86b15d59862c025384844 - languageName: node - linkType: hard - -"@types/estree@npm:^1.0.0": - version: 1.0.9 - resolution: "@types/estree@npm:1.0.9" - checksum: 10c0/3ad3286ca2988cd550dafb8f2ad599c8474868e954fa601a36655bdfefd8039f7c714b8c1c7f2ae219ffbd58bd4660e66fa7479a0120fc02d4777057d4865387 - languageName: node - linkType: hard - -"@types/node@npm:*": - version: 25.9.3 - resolution: "@types/node@npm:25.9.3" - dependencies: - undici-types: "npm:>=7.24.0 <7.24.7" - checksum: 10c0/72d3aece9d42c2c641bcd3f3cb2dc2828b4bd384dfcbd910c404b8859a68bd69d50c4769ce7defd4ff5e049768e23e615f09407ea2cbbb5f44b90d75a7c6b8ca - languageName: node - linkType: hard - -"@types/node@npm:^24.7.2": - version: 24.13.2 - resolution: "@types/node@npm:24.13.2" - dependencies: - undici-types: "npm:~7.18.0" - checksum: 10c0/d7d48a88a4feb0a6aac3cbfaf9ef3b12752b4b09447f88dd0b4c77c03b281e3d4330fe6982a99aedcd63fc16c7540a0c248b91eb2abb0b3edd884d7fe684e9ea - languageName: node - linkType: hard - -"@types/parse-json@npm:^4.0.0": - version: 4.0.2 - resolution: "@types/parse-json@npm:4.0.2" - checksum: 10c0/b1b863ac34a2c2172fbe0807a1ec4d5cb684e48d422d15ec95980b81475fac4fdb3768a8b13eef39130203a7c04340fc167bae057c7ebcafd7dec9fe6c36aeb1 - languageName: node - linkType: hard - -"@types/qs@npm:^6.9.0": - version: 6.15.1 - resolution: "@types/qs@npm:6.15.1" - checksum: 10c0/1dfdbcb4cf2a8f66d57f0b9a9fe6b1c7091cb816687b6698c1351eaf31f62e412cea9b7453a9637b570cd5fad8dced527e5a9e69b4fcc6e318daacd8b749f094 - languageName: node - linkType: hard - -"@types/react@npm:^19.0.0": - version: 19.2.17 - resolution: "@types/react@npm:19.2.17" - dependencies: - csstype: "npm:^3.2.2" - checksum: 10c0/bc2c4af96b3e480604424de70d5ebda90c5f4b485df471858c0bc2d7d70364b606ec3c4d8579f94f01aa0c6c0591f56bcf14cba5689f5eea4b74250ccdc3a232 - languageName: node - linkType: hard - -"@types/ws@npm:^6.0.1": - version: 6.0.4 - resolution: "@types/ws@npm:6.0.4" - dependencies: - "@types/node": "npm:*" - checksum: 10c0/fa958e64596ca9487c3ed6012834de70b47f25d971f1950cfb8e6a99cb77ff340ae82ac7627744e01b58010674ef8ede07d5a2ac29ca9ad0d67a430fcc69ae14 - languageName: node - linkType: hard - -"@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20260619.1": - version: 7.0.0-dev.20260619.1 - resolution: "@typescript/native-preview-darwin-arm64@npm:7.0.0-dev.20260619.1" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20260619.1": - version: 7.0.0-dev.20260619.1 - resolution: "@typescript/native-preview-darwin-x64@npm:7.0.0-dev.20260619.1" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20260619.1": - version: 7.0.0-dev.20260619.1 - resolution: "@typescript/native-preview-linux-arm64@npm:7.0.0-dev.20260619.1" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"@typescript/native-preview-linux-arm@npm:7.0.0-dev.20260619.1": - version: 7.0.0-dev.20260619.1 - resolution: "@typescript/native-preview-linux-arm@npm:7.0.0-dev.20260619.1" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@typescript/native-preview-linux-x64@npm:7.0.0-dev.20260619.1": - version: 7.0.0-dev.20260619.1 - resolution: "@typescript/native-preview-linux-x64@npm:7.0.0-dev.20260619.1" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20260619.1": - version: 7.0.0-dev.20260619.1 - resolution: "@typescript/native-preview-win32-arm64@npm:7.0.0-dev.20260619.1" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@typescript/native-preview-win32-x64@npm:7.0.0-dev.20260619.1": - version: 7.0.0-dev.20260619.1 - resolution: "@typescript/native-preview-win32-x64@npm:7.0.0-dev.20260619.1" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@typescript/native-preview@npm:^7.0.0-dev.20260116.1": - version: 7.0.0-dev.20260619.1 - resolution: "@typescript/native-preview@npm:7.0.0-dev.20260619.1" - dependencies: - "@typescript/native-preview-darwin-arm64": "npm:7.0.0-dev.20260619.1" - "@typescript/native-preview-darwin-x64": "npm:7.0.0-dev.20260619.1" - "@typescript/native-preview-linux-arm": "npm:7.0.0-dev.20260619.1" - "@typescript/native-preview-linux-arm64": "npm:7.0.0-dev.20260619.1" - "@typescript/native-preview-linux-x64": "npm:7.0.0-dev.20260619.1" - "@typescript/native-preview-win32-arm64": "npm:7.0.0-dev.20260619.1" - "@typescript/native-preview-win32-x64": "npm:7.0.0-dev.20260619.1" - dependenciesMeta: - "@typescript/native-preview-darwin-arm64": - optional: true - "@typescript/native-preview-darwin-x64": - optional: true - "@typescript/native-preview-linux-arm": - optional: true - "@typescript/native-preview-linux-arm64": - optional: true - "@typescript/native-preview-linux-x64": - optional: true - "@typescript/native-preview-win32-arm64": - optional: true - "@typescript/native-preview-win32-x64": - optional: true - bin: - tsgo: bin/tsgo.js - checksum: 10c0/e8bc6cf171ee29131934f662c9b3577374d7e872247831da36a5723abe175998f1318a134ed8eb0ee5213887dbb1f1209fac5555cdf5b6b19d0d7da044d0cdc9 - languageName: node - linkType: hard - -"@vitest/expect@npm:4.1.9": - version: 4.1.9 - resolution: "@vitest/expect@npm:4.1.9" - dependencies: - "@standard-schema/spec": "npm:^1.1.0" - "@types/chai": "npm:^5.2.2" - "@vitest/spy": "npm:4.1.9" - "@vitest/utils": "npm:4.1.9" - chai: "npm:^6.2.2" - tinyrainbow: "npm:^3.1.0" - checksum: 10c0/243bacaed2cba5e0ea4ec7465662fcec465a358a0e06381e337fac49426aa67a73b104fbb9d65d8bccadfba8f70e27f57ffb897aacfa140f579a556367357875 - languageName: node - linkType: hard - -"@vitest/mocker@npm:4.1.9": - version: 4.1.9 - resolution: "@vitest/mocker@npm:4.1.9" - dependencies: - "@vitest/spy": "npm:4.1.9" - estree-walker: "npm:^3.0.3" - magic-string: "npm:^0.30.21" - peerDependencies: - msw: ^2.4.9 - vite: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true - checksum: 10c0/707353b7435bbfd441cc754e4ee7bc5921b70d07b051c6e414b6bbe4ca369154702b0ddeb603389469fe87ca1983e002eb2d55044582661f54a1945dd27e5c82 - languageName: node - linkType: hard - -"@vitest/pretty-format@npm:4.1.9": - version: 4.1.9 - resolution: "@vitest/pretty-format@npm:4.1.9" - dependencies: - tinyrainbow: "npm:^3.1.0" - checksum: 10c0/5b96295f25ab885616230ad1355fc82f490bebb39cc707688d7c8969c08270d7e076ed8a10af4e762ed57145193c6061a1f549f136f0ded344f8db0c2b3fb3de - languageName: node - linkType: hard - -"@vitest/runner@npm:4.1.9": - version: 4.1.9 - resolution: "@vitest/runner@npm:4.1.9" - dependencies: - "@vitest/utils": "npm:4.1.9" - pathe: "npm:^2.0.3" - checksum: 10c0/d206b4891a64b1f55c346f832b0a7b489108094d8ae34438d3b53e78be7b45b139fa95ffa027c98c357bd532268ee573168de1943235b7eed32a9236ed5978bb - languageName: node - linkType: hard - -"@vitest/snapshot@npm:4.1.9": - version: 4.1.9 - resolution: "@vitest/snapshot@npm:4.1.9" - dependencies: - "@vitest/pretty-format": "npm:4.1.9" - "@vitest/utils": "npm:4.1.9" - magic-string: "npm:^0.30.21" - pathe: "npm:^2.0.3" - checksum: 10c0/c3099df12ad1f9c1e180441856c9eb82f1990f87ff16aafedd6fa19978eaff20bc59220b692a99fcc822daef86eab256ba3dadb49544b7bd625b57c49cd9d995 - languageName: node - linkType: hard - -"@vitest/spy@npm:4.1.9": - version: 4.1.9 - resolution: "@vitest/spy@npm:4.1.9" - checksum: 10c0/e51f328f55b76e8ba66e5e18f183484a8dc0a092685b101112d3e9fb8e989ddca162c98ddf00254476502c25bc05c4ec1e277fd6ad8bfc702464c08f6b5dd115 - languageName: node - linkType: hard - -"@vitest/utils@npm:4.1.9": - version: 4.1.9 - resolution: "@vitest/utils@npm:4.1.9" - dependencies: - "@vitest/pretty-format": "npm:4.1.9" - convert-source-map: "npm:^2.0.0" - tinyrainbow: "npm:^3.1.0" - checksum: 10c0/d55506c077fd72c091eb66f02926f0abf72801c87a085f565698289562f47befa114ae2c680ab8736dfe46abab0cfd6b8031f2ac519bafeb37578aa6e5ad03c5 - languageName: node - linkType: hard - -"abbrev@npm:^4.0.0": - version: 4.0.0 - resolution: "abbrev@npm:4.0.0" - checksum: 10c0/b4cc16935235e80702fc90192e349e32f8ef0ed151ef506aa78c81a7c455ec18375c4125414b99f84b2e055199d66383e787675f0bcd87da7a4dbd59f9eac1d5 - languageName: node - linkType: hard - -"agent-base@npm:6": - version: 6.0.2 - resolution: "agent-base@npm:6.0.2" - dependencies: - debug: "npm:4" - checksum: 10c0/dc4f757e40b5f3e3d674bc9beb4f1048f4ee83af189bae39be99f57bf1f48dde166a8b0a5342a84b5944ee8e6ed1e5a9d801858f4ad44764e84957122fe46261 - languageName: node - linkType: hard - -"ansi-escapes@npm:^7.3.0": - version: 7.3.0 - resolution: "ansi-escapes@npm:7.3.0" - dependencies: - environment: "npm:^1.0.0" - checksum: 10c0/068961d99f0ef28b661a4a9f84a5d645df93ccf3b9b93816cc7d46bbe1913321d4cdf156bb842a4e1e4583b7375c631fa963efb43001c4eb7ff9ab8f78fc0679 - languageName: node - linkType: hard - -"ansi-regex@npm:^6.2.2": - version: 6.2.2 - resolution: "ansi-regex@npm:6.2.2" - checksum: 10c0/05d4acb1d2f59ab2cf4b794339c7b168890d44dda4bf0ce01152a8da0213aca207802f930442ce8cd22d7a92f44907664aac6508904e75e038fa944d2601b30f - languageName: node - linkType: hard - -"ansi-styles@npm:^6.2.1, ansi-styles@npm:^6.2.3": - version: 6.2.3 - resolution: "ansi-styles@npm:6.2.3" - checksum: 10c0/23b8a4ce14e18fb854693b95351e286b771d23d8844057ed2e7d083cd3e708376c3323707ec6a24365f7d7eda3ca00327fe04092e29e551499ec4c8b7bfac868 - languageName: node - linkType: hard - -"assertion-error@npm:^2.0.1": - version: 2.0.1 - resolution: "assertion-error@npm:2.0.1" - checksum: 10c0/bbbcb117ac6480138f8c93cf7f535614282dea9dc828f540cdece85e3c665e8f78958b96afac52f29ff883c72638e6a87d469ecc9fe5bc902df03ed24a55dba8 - languageName: node - linkType: hard - -"async-function@npm:^1.0.0": - version: 1.0.0 - resolution: "async-function@npm:1.0.0" - checksum: 10c0/669a32c2cb7e45091330c680e92eaeb791bc1d4132d827591e499cd1f776ff5a873e77e5f92d0ce795a8d60f10761dec9ddfe7225a5de680f5d357f67b1aac73 - languageName: node - linkType: hard - -"async-generator-function@npm:^1.0.0": - version: 1.0.0 - resolution: "async-generator-function@npm:1.0.0" - checksum: 10c0/2c50ef856c543ad500d8d8777d347e3c1ba623b93e99c9263ecc5f965c1b12d2a140e2ab6e43c3d0b85366110696f28114649411cbcd10b452a92a2318394186 - languageName: node - linkType: hard - -"async-limiter@npm:~1.0.0": - version: 1.0.1 - resolution: "async-limiter@npm:1.0.1" - checksum: 10c0/0693d378cfe86842a70d4c849595a0bb50dc44c11649640ca982fa90cbfc74e3cc4753b5a0847e51933f2e9c65ce8e05576e75e5e1fd963a086e673735b35969 - languageName: node - linkType: hard - -"asynckit@npm:^0.4.0": - version: 0.4.0 - resolution: "asynckit@npm:0.4.0" - checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d - languageName: node - linkType: hard - -"auto-bind@npm:^5.0.1": - version: 5.0.1 - resolution: "auto-bind@npm:5.0.1" - checksum: 10c0/a703375350ea7b6e92405d8e6bcc6dbfb84b0d7c7172b33e5788a7593929a18227999ff9aa9c32436741d06d021e6672457b1cec73287efe3fab95cff6627eaf - languageName: node - linkType: hard - -"axios@npm:^1.16.0": - version: 1.17.0 - resolution: "axios@npm:1.17.0" - dependencies: - follow-redirects: "npm:^1.16.0" - form-data: "npm:^4.0.5" - https-proxy-agent: "npm:^5.0.1" - proxy-from-env: "npm:^2.1.0" - checksum: 10c0/c4fa19ff3a3a63bde48beec03ad816b133b9a6385cccffffe172577ab18c6a70e299280d57f12c80c867fe25df41f92cb91d3a8258708a6d2be3e9e085f92650 - languageName: node - linkType: hard - -"babel-plugin-macros@npm:^3.1.0": - version: 3.1.0 - resolution: "babel-plugin-macros@npm:3.1.0" - dependencies: - "@babel/runtime": "npm:^7.12.5" - cosmiconfig: "npm:^7.0.0" - resolve: "npm:^1.19.0" - checksum: 10c0/c6dfb15de96f67871d95bd2e8c58b0c81edc08b9b087dc16755e7157f357dc1090a8dc60ebab955e92587a9101f02eba07e730adc253a1e4cf593ca3ebd3839c - languageName: node - linkType: hard - -"backo2@npm:^1.0.2": - version: 1.0.2 - resolution: "backo2@npm:1.0.2" - checksum: 10c0/a9e825a6a38a6d1c4a94476eabc13d6127dfaafb0967baf104affbb67806ae26abbb58dab8d572d2cd21ef06634ff57c3ad48dff14b904e18de1474cc2f22bf3 - languageName: node - linkType: hard - -"call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": - version: 1.0.2 - resolution: "call-bind-apply-helpers@npm:1.0.2" - dependencies: - es-errors: "npm:^1.3.0" - function-bind: "npm:^1.1.2" - checksum: 10c0/47bd9901d57b857590431243fea704ff18078b16890a6b3e021e12d279bbf211d039155e27d7566b374d49ee1f8189344bac9833dec7a20cdec370506361c938 - languageName: node - linkType: hard - -"callsites@npm:^3.0.0": - version: 3.1.0 - resolution: "callsites@npm:3.1.0" - checksum: 10c0/fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301 - languageName: node - linkType: hard - -"chai@npm:^6.2.2": - version: 6.2.2 - resolution: "chai@npm:6.2.2" - checksum: 10c0/e6c69e5f0c11dffe6ea13d0290936ebb68fcc1ad688b8e952e131df6a6d5797d5e860bc55cef1aca2e950c3e1f96daf79e9d5a70fb7dbaab4e46355e2635ed53 - languageName: node - linkType: hard - -"chalk@npm:^5.3.0, chalk@npm:^5.6.0": - version: 5.6.2 - resolution: "chalk@npm:5.6.2" - checksum: 10c0/99a4b0f0e7991796b1e7e3f52dceb9137cae2a9dfc8fc0784a550dc4c558e15ab32ed70b14b21b52beb2679b4892b41a0aa44249bcb996f01e125d58477c6976 - languageName: node - linkType: hard - -"chardet@npm:^2.1.1": - version: 2.1.1 - resolution: "chardet@npm:2.1.1" - checksum: 10c0/d8391dd412338442b3de0d3a488aa9327f8bcf74b62b8723d6bd0b85c4084d50b731320e0a7c710edb1d44de75969995d2784b80e4c13b004a6c7a0db4c6e793 - languageName: node - linkType: hard - -"chokidar@npm:^4.0.0": - version: 4.0.3 - resolution: "chokidar@npm:4.0.3" - dependencies: - readdirp: "npm:^4.0.1" - checksum: 10c0/a58b9df05bb452f7d105d9e7229ac82fa873741c0c40ddcc7bb82f8a909fbe3f7814c9ebe9bc9a2bef9b737c0ec6e2d699d179048ef06ad3ec46315df0ebe6ad - languageName: node - linkType: hard - -"chownr@npm:^3.0.0": - version: 3.0.0 - resolution: "chownr@npm:3.0.0" - checksum: 10c0/43925b87700f7e3893296c8e9c56cc58f926411cce3a6e5898136daaf08f08b9a8eb76d37d3267e707d0dcc17aed2e2ebdf5848c0c3ce95cf910a919935c1b10 - languageName: node - linkType: hard - -"cli-boxes@npm:^3.0.0": - version: 3.0.0 - resolution: "cli-boxes@npm:3.0.0" - checksum: 10c0/4db3e8fbfaf1aac4fb3a6cbe5a2d3fa048bee741a45371b906439b9ffc821c6e626b0f108bdcd3ddf126a4a319409aedcf39a0730573ff050fdd7b6731e99fb9 - languageName: node - linkType: hard - -"cli-cursor@npm:^4.0.0": - version: 4.0.0 - resolution: "cli-cursor@npm:4.0.0" - dependencies: - restore-cursor: "npm:^4.0.0" - checksum: 10c0/e776e8c3c6727300d0539b0d25160b2bb56aed1a63942753ba1826b012f337a6f4b7ace3548402e4f2f13b5e16bfd751be672c44b203205e7eca8be94afec42c - languageName: node - linkType: hard - -"cli-truncate@npm:^5.1.1": - version: 5.2.0 - resolution: "cli-truncate@npm:5.2.0" - dependencies: - slice-ansi: "npm:^8.0.0" - string-width: "npm:^8.2.0" - checksum: 10c0/0d4ec94702ca85b64522ac93633837fb5ea7db17b79b1322a60f6045e6ae2b8cd7bd4c1d19ac7d1f9e10e3bbda1112e172e439b68c02b785ee00da8d6a5c5471 - languageName: node - linkType: hard - -"cli-width@npm:^4.1.0": - version: 4.1.0 - resolution: "cli-width@npm:4.1.0" - checksum: 10c0/1fbd56413578f6117abcaf858903ba1f4ad78370a4032f916745fa2c7e390183a9d9029cf837df320b0fdce8137668e522f60a30a5f3d6529ff3872d265a955f - languageName: node - linkType: hard - -"code-excerpt@npm:^4.0.0": - version: 4.0.0 - resolution: "code-excerpt@npm:4.0.0" - dependencies: - convert-to-spaces: "npm:^2.0.1" - checksum: 10c0/b6c5a06e039cecd2ab6a0e10ee0831de8362107d1f298ca3558b5f9004cb8e0260b02dd6c07f57b9a0e346c76864d2873311ee1989809fdeb05bd5fbbadde773 - languageName: node - linkType: hard - -"combined-stream@npm:^1.0.8": - version: 1.0.8 - resolution: "combined-stream@npm:1.0.8" - dependencies: - delayed-stream: "npm:~1.0.0" - checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5 - languageName: node - linkType: hard - -"commander@npm:^12.0.0": - version: 12.1.0 - resolution: "commander@npm:12.1.0" - checksum: 10c0/6e1996680c083b3b897bfc1cfe1c58dfbcd9842fd43e1aaf8a795fbc237f65efcc860a3ef457b318e73f29a4f4a28f6403c3d653d021d960e4632dd45bde54a9 - languageName: node - linkType: hard - -"convert-source-map@npm:^1.5.0": - version: 1.9.0 - resolution: "convert-source-map@npm:1.9.0" - checksum: 10c0/281da55454bf8126cbc6625385928c43479f2060984180c42f3a86c8b8c12720a24eac260624a7d1e090004028d2dee78602330578ceec1a08e27cb8bb0a8a5b - languageName: node - linkType: hard - -"convert-source-map@npm:^2.0.0": - version: 2.0.0 - resolution: "convert-source-map@npm:2.0.0" - checksum: 10c0/8f2f7a27a1a011cc6cc88cc4da2d7d0cfa5ee0369508baae3d98c260bb3ac520691464e5bbe4ae7cdf09860c1d69ecc6f70c63c6e7c7f7e3f18ec08484dc7d9b - languageName: node - linkType: hard - -"convert-to-spaces@npm:^2.0.1": - version: 2.0.1 - resolution: "convert-to-spaces@npm:2.0.1" - checksum: 10c0/d90aa0e3b6a27f9d5265a8d32def3c5c855b3e823a9db1f26d772f8146d6b91020a2fdfd905ce8048a73fad3aaf836fef8188c67602c374405e2ae8396c4ac46 - languageName: node - linkType: hard - -"cosmiconfig@npm:^7.0.0": - version: 7.1.0 - resolution: "cosmiconfig@npm:7.1.0" - dependencies: - "@types/parse-json": "npm:^4.0.0" - import-fresh: "npm:^3.2.1" - parse-json: "npm:^5.0.0" - path-type: "npm:^4.0.0" - yaml: "npm:^1.10.0" - checksum: 10c0/b923ff6af581638128e5f074a5450ba12c0300b71302398ea38dbeabd33bbcaa0245ca9adbedfcf284a07da50f99ede5658c80bb3e39e2ce770a99d28a21ef03 - languageName: node - linkType: hard - -"csstype@npm:^3.0.2, csstype@npm:^3.2.2": - version: 3.2.3 - resolution: "csstype@npm:3.2.3" - checksum: 10c0/cd29c51e70fa822f1cecd8641a1445bed7063697469d35633b516e60fe8c1bde04b08f6c5b6022136bb669b64c63d4173af54864510fbb4ee23281801841a3ce - languageName: node - linkType: hard - -"debug@npm:4, debug@npm:^4.1.1, debug@npm:^4.3.1": - version: 4.4.3 - resolution: "debug@npm:4.4.3" - dependencies: - ms: "npm:^2.1.3" - peerDependenciesMeta: - supports-color: - optional: true - checksum: 10c0/d79136ec6c83ecbefd0f6a5593da6a9c91ec4d7ddc4b54c883d6e71ec9accb5f67a1a5e96d00a328196b5b5c86d365e98d8a3a70856aaf16b4e7b1985e67f5a6 - languageName: node - linkType: hard - -"delayed-stream@npm:~1.0.0": - version: 1.0.0 - resolution: "delayed-stream@npm:1.0.0" - checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19 - languageName: node - linkType: hard - -"detect-libc@npm:^2.0.3": - version: 2.1.2 - resolution: "detect-libc@npm:2.1.2" - checksum: 10c0/acc675c29a5649fa1fb6e255f993b8ee829e510b6b56b0910666949c80c364738833417d0edb5f90e4e46be17228b0f2b66a010513984e18b15deeeac49369c4 - languageName: node - linkType: hard - -"dunder-proto@npm:^1.0.1": - version: 1.0.1 - resolution: "dunder-proto@npm:1.0.1" - dependencies: - call-bind-apply-helpers: "npm:^1.0.1" - es-errors: "npm:^1.3.0" - gopd: "npm:^1.2.0" - checksum: 10c0/199f2a0c1c16593ca0a145dbf76a962f8033ce3129f01284d48c45ed4e14fea9bbacd7b3610b6cdc33486cef20385ac054948fefc6272fcce645c09468f93031 - languageName: node - linkType: hard - -"emoji-regex@npm:^10.3.0": - version: 10.6.0 - resolution: "emoji-regex@npm:10.6.0" - checksum: 10c0/1e4aa097bb007301c3b4b1913879ae27327fdc48e93eeefefe3b87e495eb33c5af155300be951b4349ff6ac084f4403dc9eff970acba7c1c572d89396a9a32d7 - languageName: node - linkType: hard - -"env-paths@npm:^2.2.0": - version: 2.2.1 - resolution: "env-paths@npm:2.2.1" - checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 - languageName: node - linkType: hard - -"environment@npm:^1.0.0": - version: 1.1.0 - resolution: "environment@npm:1.1.0" - checksum: 10c0/fb26434b0b581ab397039e51ff3c92b34924a98b2039dcb47e41b7bca577b9dbf134a8eadb364415c74464b682e2d3afe1a4c0eb9873dc44ea814c5d3103331d - languageName: node - linkType: hard - -"error-ex@npm:^1.3.1": - version: 1.3.4 - resolution: "error-ex@npm:1.3.4" - dependencies: - is-arrayish: "npm:^0.2.1" - checksum: 10c0/b9e34ff4778b8f3b31a8377e1c654456f4c41aeaa3d10a1138c3b7635d8b7b2e03eb2475d46d8ae055c1f180a1063e100bffabf64ea7e7388b37735df5328664 - languageName: node - linkType: hard - -"es-define-property@npm:^1.0.1": - version: 1.0.1 - resolution: "es-define-property@npm:1.0.1" - checksum: 10c0/3f54eb49c16c18707949ff25a1456728c883e81259f045003499efba399c08bad00deebf65cccde8c0e07908c1a225c9d472b7107e558f2a48e28d530e34527c - languageName: node - linkType: hard - -"es-errors@npm:^1.3.0": - version: 1.3.0 - resolution: "es-errors@npm:1.3.0" - checksum: 10c0/0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85 - languageName: node - linkType: hard - -"es-module-lexer@npm:^2.0.0": - version: 2.1.0 - resolution: "es-module-lexer@npm:2.1.0" - checksum: 10c0/93bcf2454fa72d67fe3ccd0abef8ce7933f5840a319513418a643dd8e9c6aa8f49709cecfae02ded722805dd327232d30723a807cc52e6809d6ac697c62c29fb - languageName: node - linkType: hard - -"es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1": - version: 1.1.2 - resolution: "es-object-atoms@npm:1.1.2" - dependencies: - es-errors: "npm:^1.3.0" - checksum: 10c0/1772861f094f739d6f41b579cfb9a18579daffeb434552a370a5fbef50a32d22227e27b63fdbb757b7ddd429d1b42fe52ccae7966d9302a2ec221b6f1b41bbc4 - languageName: node - linkType: hard - -"es-set-tostringtag@npm:^2.1.0": - version: 2.1.0 - resolution: "es-set-tostringtag@npm:2.1.0" - dependencies: - es-errors: "npm:^1.3.0" - get-intrinsic: "npm:^1.2.6" - has-tostringtag: "npm:^1.0.2" - hasown: "npm:^2.0.2" - checksum: 10c0/ef2ca9ce49afe3931cb32e35da4dcb6d86ab02592cfc2ce3e49ced199d9d0bb5085fc7e73e06312213765f5efa47cc1df553a6a5154584b21448e9fb8355b1af - languageName: node - linkType: hard - -"es-toolkit@npm:^1.39.10": - version: 1.47.0 - resolution: "es-toolkit@npm:1.47.0" - dependenciesMeta: - "@trivago/prettier-plugin-sort-imports@4.3.0": - unplugged: true - prettier-plugin-sort-re-exports@0.0.1: - unplugged: true - vitepress-plugin-sandpack@1.1.4: - unplugged: true - checksum: 10c0/6edc9709fccc409fa4adddd318971d8a18335de9225f2dc99021aacba44fe66a2437a831923589c643865caab261a087bd974338294a60bb5a74932caa102901 - languageName: node - linkType: hard - -"esbuild@npm:^0.28.1": - version: 0.28.1 - resolution: "esbuild@npm:0.28.1" - dependencies: - "@esbuild/aix-ppc64": "npm:0.28.1" - "@esbuild/android-arm": "npm:0.28.1" - "@esbuild/android-arm64": "npm:0.28.1" - "@esbuild/android-x64": "npm:0.28.1" - "@esbuild/darwin-arm64": "npm:0.28.1" - "@esbuild/darwin-x64": "npm:0.28.1" - "@esbuild/freebsd-arm64": "npm:0.28.1" - "@esbuild/freebsd-x64": "npm:0.28.1" - "@esbuild/linux-arm": "npm:0.28.1" - "@esbuild/linux-arm64": "npm:0.28.1" - "@esbuild/linux-ia32": "npm:0.28.1" - "@esbuild/linux-loong64": "npm:0.28.1" - "@esbuild/linux-mips64el": "npm:0.28.1" - "@esbuild/linux-ppc64": "npm:0.28.1" - "@esbuild/linux-riscv64": "npm:0.28.1" - "@esbuild/linux-s390x": "npm:0.28.1" - "@esbuild/linux-x64": "npm:0.28.1" - "@esbuild/netbsd-arm64": "npm:0.28.1" - "@esbuild/netbsd-x64": "npm:0.28.1" - "@esbuild/openbsd-arm64": "npm:0.28.1" - "@esbuild/openbsd-x64": "npm:0.28.1" - "@esbuild/openharmony-arm64": "npm:0.28.1" - "@esbuild/sunos-x64": "npm:0.28.1" - "@esbuild/win32-arm64": "npm:0.28.1" - "@esbuild/win32-ia32": "npm:0.28.1" - "@esbuild/win32-x64": "npm:0.28.1" - dependenciesMeta: - "@esbuild/aix-ppc64": - optional: true - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-arm64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-arm64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/openharmony-arm64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 10c0/29cd456a79ce35ac2c7e05fe871330416b2c395c045d849653f843e51378d6e0d6e774d6dcd01b35f4e83238a29bf8decd04fcd34b3780c589a250b21e5f92bb - languageName: node - linkType: hard - -"escape-string-regexp@npm:^2.0.0": - version: 2.0.0 - resolution: "escape-string-regexp@npm:2.0.0" - checksum: 10c0/2530479fe8db57eace5e8646c9c2a9c80fa279614986d16dcc6bcaceb63ae77f05a851ba6c43756d816c61d7f4534baf56e3c705e3e0d884818a46808811c507 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^4.0.0": - version: 4.0.0 - resolution: "escape-string-regexp@npm:4.0.0" - checksum: 10c0/9497d4dd307d845bd7f75180d8188bb17ea8c151c1edbf6b6717c100e104d629dc2dfb687686181b0f4b7d732c7dfdc4d5e7a8ff72de1b0ca283a75bbb3a9cd9 - languageName: node - linkType: hard - -"estree-walker@npm:^3.0.3": - version: 3.0.3 - resolution: "estree-walker@npm:3.0.3" - dependencies: - "@types/estree": "npm:^1.0.0" - checksum: 10c0/c12e3c2b2642d2bcae7d5aa495c60fa2f299160946535763969a1c83fc74518ffa9c2cd3a8b69ac56aea547df6a8aac25f729a342992ef0bbac5f1c73e78995d - languageName: node - linkType: hard - -"eventemitter3@npm:^3.1.0": - version: 3.1.2 - resolution: "eventemitter3@npm:3.1.2" - checksum: 10c0/c67262eccbf85848b7cc6d4abb6c6e34155e15686db2a01c57669fd0d44441a574a19d44d25948b442929e065774cbe5003d8e77eed47674fbf876ac77887793 - languageName: node - linkType: hard - -"expect-type@npm:^1.3.0": - version: 1.3.0 - resolution: "expect-type@npm:1.3.0" - checksum: 10c0/8412b3fe4f392c420ab41dae220b09700e4e47c639a29ba7ba2e83cc6cffd2b4926f7ac9e47d7e277e8f4f02acda76fd6931cb81fd2b382fa9477ef9ada953fd - languageName: node - linkType: hard - -"exponential-backoff@npm:^3.1.1": - version: 3.1.3 - resolution: "exponential-backoff@npm:3.1.3" - checksum: 10c0/77e3ae682b7b1f4972f563c6dbcd2b0d54ac679e62d5d32f3e5085feba20483cf28bd505543f520e287a56d4d55a28d7874299941faf637e779a1aa5994d1267 - languageName: node - linkType: hard - -"fast-string-truncated-width@npm:^3.0.2": - version: 3.0.3 - resolution: "fast-string-truncated-width@npm:3.0.3" - checksum: 10c0/043b8663397d14a3880ce4f3407bcda60b40db9bbeafe62863a35d1f9c69ea17c8da3fcd72de235553e6c9cd053128cde9e24ca0d4a7463208f48db3cd23d981 - languageName: node - linkType: hard - -"fast-string-width@npm:^3.0.2": - version: 3.0.2 - resolution: "fast-string-width@npm:3.0.2" - dependencies: - fast-string-truncated-width: "npm:^3.0.2" - checksum: 10c0/c8822d175315bb353ebe782b65214ac53b13e3bf704e03b132ea7bdfa8de6a636375b3ab7a4097545393d109381c37c4f387c72a462c90b61412dbc4632f39a7 - languageName: node - linkType: hard - -"fast-wrap-ansi@npm:^0.2.0": - version: 0.2.2 - resolution: "fast-wrap-ansi@npm:0.2.2" - dependencies: - fast-string-width: "npm:^3.0.2" - checksum: 10c0/1aa7be4f7cb86f4bdb14691cb6bcc0b8df8b3b89df142ade3ae1602332dcf6f990cd750a923cd581ca0847808cb4ec1aa5afaafa7a72f849e87a2a62c98fa370 - languageName: node - linkType: hard - -"fdir@npm:^6.5.0": - version: 6.5.0 - resolution: "fdir@npm:6.5.0" - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - checksum: 10c0/e345083c4306b3aed6cb8ec551e26c36bab5c511e99ea4576a16750ddc8d3240e63826cc624f5ae17ad4dc82e68a253213b60d556c11bfad064b7607847ed07f - languageName: node - linkType: hard - -"find-root@npm:^1.1.0": - version: 1.1.0 - resolution: "find-root@npm:1.1.0" - checksum: 10c0/1abc7f3bf2f8d78ff26d9e00ce9d0f7b32e5ff6d1da2857bcdf4746134c422282b091c672cde0572cac3840713487e0a7a636af9aa1b74cb11894b447a521efa - languageName: node - linkType: hard - -"follow-redirects@npm:^1.16.0": - version: 1.16.0 - resolution: "follow-redirects@npm:1.16.0" - peerDependenciesMeta: - debug: - optional: true - checksum: 10c0/a1e2900163e6f1b4d1ed5c221b607f41decbab65534c63fe7e287e40a5d552a6496e7d9d7d976fa4ba77b4c51c11e5e9f683f10b43011ea11e442ff128d0e181 - languageName: node - linkType: hard - -"form-data@npm:^4.0.5": - version: 4.0.6 - resolution: "form-data@npm:4.0.6" - dependencies: - asynckit: "npm:^0.4.0" - combined-stream: "npm:^1.0.8" - es-set-tostringtag: "npm:^2.1.0" - hasown: "npm:^2.0.4" - mime-types: "npm:^2.1.35" - checksum: 10c0/43947a77bf0ff45c6ceed789778982d47a3f3e720a74b71721174ebf3310a5f1a8be1d6b38a3ee3688e8a18a2c4273073ec0844cd37efda3eaf46d41c9c318ff - languageName: node - linkType: hard - -"fsevents@npm:~2.3.3": - version: 2.3.3 - resolution: "fsevents@npm:2.3.3" - dependencies: - node-gyp: "npm:latest" - checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 - conditions: os=darwin - languageName: node - linkType: hard - -"fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": - version: 2.3.3 - resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" - dependencies: - node-gyp: "npm:latest" - conditions: os=darwin - languageName: node - linkType: hard - -"function-bind@npm:^1.1.2": - version: 1.1.2 - resolution: "function-bind@npm:1.1.2" - checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5 - languageName: node - linkType: hard - -"generator-function@npm:^2.0.0": - version: 2.0.1 - resolution: "generator-function@npm:2.0.1" - checksum: 10c0/8a9f59df0f01cfefafdb3b451b80555e5cf6d76487095db91ac461a0e682e4ff7a9dbce15f4ecec191e53586d59eece01949e05a4b4492879600bbbe8e28d6b8 - languageName: node - linkType: hard - -"get-east-asian-width@npm:^1.0.0, get-east-asian-width@npm:^1.3.1, get-east-asian-width@npm:^1.5.0": - version: 1.6.0 - resolution: "get-east-asian-width@npm:1.6.0" - checksum: 10c0/7e72e9550fd49ca5b246f9af6bb2afc129c96412845ff6556b3274fd44817a381702ca17028efe9866b261a3d44254cbf21e6c90cf05b4b61675630af776d431 - languageName: node - linkType: hard - -"get-intrinsic@npm:^1.2.6": - version: 1.3.1 - resolution: "get-intrinsic@npm:1.3.1" - dependencies: - async-function: "npm:^1.0.0" - async-generator-function: "npm:^1.0.0" - call-bind-apply-helpers: "npm:^1.0.2" - es-define-property: "npm:^1.0.1" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.1.1" - function-bind: "npm:^1.1.2" - generator-function: "npm:^2.0.0" - get-proto: "npm:^1.0.1" - gopd: "npm:^1.2.0" - has-symbols: "npm:^1.1.0" - hasown: "npm:^2.0.2" - math-intrinsics: "npm:^1.1.0" - checksum: 10c0/9f4ab0cf7efe0fd2c8185f52e6f637e708f3a112610c88869f8f041bb9ecc2ce44bf285dfdbdc6f4f7c277a5b88d8e94a432374d97cca22f3de7fc63795deb5d - languageName: node - linkType: hard - -"get-proto@npm:^1.0.1": - version: 1.0.1 - resolution: "get-proto@npm:1.0.1" - dependencies: - dunder-proto: "npm:^1.0.1" - es-object-atoms: "npm:^1.0.0" - checksum: 10c0/9224acb44603c5526955e83510b9da41baf6ae73f7398875fba50edc5e944223a89c4a72b070fcd78beb5f7bdda58ecb6294adc28f7acfc0da05f76a2399643c - languageName: node - linkType: hard - -"globrex@npm:^0.1.2": - version: 0.1.2 - resolution: "globrex@npm:0.1.2" - checksum: 10c0/a54c029520cf58bda1d8884f72bd49b4cd74e977883268d931fd83bcbd1a9eb96d57c7dbd4ad80148fb9247467ebfb9b215630b2ed7563b2a8de02e1ff7f89d1 - languageName: node - linkType: hard - -"gopd@npm:^1.2.0": - version: 1.2.0 - resolution: "gopd@npm:1.2.0" - checksum: 10c0/50fff1e04ba2b7737c097358534eacadad1e68d24cccee3272e04e007bed008e68d2614f3987788428fd192a5ae3889d08fb2331417e4fc4a9ab366b2043cead - languageName: node - linkType: hard - -"graceful-fs@npm:^4.2.6": - version: 4.2.11 - resolution: "graceful-fs@npm:4.2.11" - checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 - languageName: node - linkType: hard - -"graphql-query-batcher@npm:^1.0.1": - version: 1.0.1 - resolution: "graphql-query-batcher@npm:1.0.1" - checksum: 10c0/804d0f4064721a2116a16b9eac422e9233e85f4ab5b250cb8f83662725658ffde35779a8ae8211037f3dd2f9717de8cb63b394ad8057ce22171a83db2471196a - languageName: node - linkType: hard - -"graphql-sse@npm:^2.5.4": - version: 2.6.0 - resolution: "graphql-sse@npm:2.6.0" - peerDependencies: - graphql: ">=0.11 <=16" - checksum: 10c0/e05f0b5c8539d61e5ce34af8e0bb418c02bf922d6a7f9232a9abd53c77df5654684ca14f674ac771645c8fba9c37ce666c5d06f46eef54ea07e63653468065b0 - languageName: node - linkType: hard - -"graphql@npm:^16.8.1": - version: 16.14.2 - resolution: "graphql@npm:16.14.2" - checksum: 10c0/a95a96961eaff55cc9fe9d31fae6f33499ac988b972d07ea5085024cb1333f515b902f376e7393a5489aa82200a8aff3eb96580e4d1b69d702ed19b6eb1ce97a - languageName: node - linkType: hard - -"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": - version: 1.1.0 - resolution: "has-symbols@npm:1.1.0" - checksum: 10c0/dde0a734b17ae51e84b10986e651c664379018d10b91b6b0e9b293eddb32f0f069688c841fb40f19e9611546130153e0a2a48fd7f512891fb000ddfa36f5a20e - languageName: node - linkType: hard - -"has-tostringtag@npm:^1.0.2": - version: 1.0.2 - resolution: "has-tostringtag@npm:1.0.2" - dependencies: - has-symbols: "npm:^1.0.3" - checksum: 10c0/a8b166462192bafe3d9b6e420a1d581d93dd867adb61be223a17a8d6dad147aa77a8be32c961bb2f27b3ef893cae8d36f564ab651f5e9b7938ae86f74027c48c - languageName: node - linkType: hard - -"hasown@npm:^2.0.2, hasown@npm:^2.0.3, hasown@npm:^2.0.4": - version: 2.0.4 - resolution: "hasown@npm:2.0.4" - dependencies: - function-bind: "npm:^1.1.2" - checksum: 10c0/2d8de939e270b70618f8cebb69746620db10617dbb495bc66ddad326955ea24d3ca4af133aff3eb7c1853e0218f867bc2b050ec26fe02e3aea58f880ffc5e506 - languageName: node - linkType: hard - -"hoist-non-react-statics@npm:^3.3.1": - version: 3.3.2 - resolution: "hoist-non-react-statics@npm:3.3.2" - dependencies: - react-is: "npm:^16.7.0" - checksum: 10c0/fe0889169e845d738b59b64badf5e55fa3cf20454f9203d1eb088df322d49d4318df774828e789898dcb280e8a5521bb59b3203385662ca5e9218a6ca5820e74 - languageName: node - linkType: hard - -"https-proxy-agent@npm:^5.0.1": - version: 5.0.1 - resolution: "https-proxy-agent@npm:5.0.1" - dependencies: - agent-base: "npm:6" - debug: "npm:4" - checksum: 10c0/6dd639f03434003577c62b27cafdb864784ef19b2de430d8ae2a1d45e31c4fd60719e5637b44db1a88a046934307da7089e03d6089ec3ddacc1189d8de8897d1 - languageName: node - linkType: hard - -"iconv-lite@npm:^0.7.2": - version: 0.7.2 - resolution: "iconv-lite@npm:0.7.2" - dependencies: - safer-buffer: "npm:>= 2.1.2 < 3.0.0" - checksum: 10c0/3c228920f3bd307f56bf8363706a776f4a060eb042f131cd23855ceca962951b264d0997ab38a1ad340e1c5df8499ed26e1f4f0db6b2a2ad9befaff22f14b722 - languageName: node - linkType: hard - -"import-fresh@npm:^3.2.1": - version: 3.3.1 - resolution: "import-fresh@npm:3.3.1" - dependencies: - parent-module: "npm:^1.0.0" - resolve-from: "npm:^4.0.0" - checksum: 10c0/bf8cc494872fef783249709385ae883b447e3eb09db0ebd15dcead7d9afe7224dad7bd7591c6b73b0b19b3c0f9640eb8ee884f01cfaf2887ab995b0b36a0cbec - languageName: node - linkType: hard - -"indent-string@npm:^5.0.0": - version: 5.0.0 - resolution: "indent-string@npm:5.0.0" - checksum: 10c0/8ee77b57d92e71745e133f6f444d6fa3ed503ad0e1bcd7e80c8da08b42375c07117128d670589725ed07b1978065803fa86318c309ba45415b7fe13e7f170220 - languageName: node - linkType: hard - -"ink@npm:^6.8.0": - version: 6.8.0 - resolution: "ink@npm:6.8.0" - dependencies: - "@alcalzone/ansi-tokenize": "npm:^0.2.4" - ansi-escapes: "npm:^7.3.0" - ansi-styles: "npm:^6.2.1" - auto-bind: "npm:^5.0.1" - chalk: "npm:^5.6.0" - cli-boxes: "npm:^3.0.0" - cli-cursor: "npm:^4.0.0" - cli-truncate: "npm:^5.1.1" - code-excerpt: "npm:^4.0.0" - es-toolkit: "npm:^1.39.10" - indent-string: "npm:^5.0.0" - is-in-ci: "npm:^2.0.0" - patch-console: "npm:^2.0.0" - react-reconciler: "npm:^0.33.0" - scheduler: "npm:^0.27.0" - signal-exit: "npm:^3.0.7" - slice-ansi: "npm:^8.0.0" - stack-utils: "npm:^2.0.6" - string-width: "npm:^8.1.1" - terminal-size: "npm:^4.0.1" - type-fest: "npm:^5.4.1" - widest-line: "npm:^6.0.0" - wrap-ansi: "npm:^9.0.0" - ws: "npm:^8.18.0" - yoga-layout: "npm:~3.2.1" - peerDependencies: - "@types/react": ">=19.0.0" - react: ">=19.0.0" - react-devtools-core: ">=6.1.2" - peerDependenciesMeta: - "@types/react": - optional: true - react-devtools-core: - optional: true - checksum: 10c0/50500e547fdf6a1f1d836d6befbd4770e3ab649ef0be1884500a6da411fb68a90e22dd7dcc9c404911d30e9f87506b3b9d8e997c6c6ceac85ee054b4dadefaff - languageName: node - linkType: hard - -"inquirer@npm:^14.0.0": - version: 14.0.2 - resolution: "inquirer@npm:14.0.2" - dependencies: - "@inquirer/ansi": "npm:^2.0.7" - "@inquirer/core": "npm:^11.2.1" - "@inquirer/prompts": "npm:^8.5.2" - "@inquirer/type": "npm:^4.0.7" - mute-stream: "npm:^3.0.0" - run-async: "npm:^4.0.6" - peerDependencies: - "@types/node": ">=18" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 10c0/31ec80b7d599dcb19568540d694865b1da116f701b75503a23ed38189d96fca70eb1fb6ccb1dbd994f6f79d407d51dc1a94d06dcef5370644ce736792414781b - languageName: node - linkType: hard - -"is-arrayish@npm:^0.2.1": - version: 0.2.1 - resolution: "is-arrayish@npm:0.2.1" - checksum: 10c0/e7fb686a739068bb70f860b39b67afc62acc62e36bb61c5f965768abce1873b379c563e61dd2adad96ebb7edf6651111b385e490cf508378959b0ed4cac4e729 - languageName: node - linkType: hard - -"is-core-module@npm:^2.16.1": - version: 2.16.2 - resolution: "is-core-module@npm:2.16.2" - dependencies: - hasown: "npm:^2.0.3" - checksum: 10c0/14b4258390283709c15476d023ec173e27458d5d014ccdb8ed39d576e551c3fa45498b7c9fe178f1529c4cb2648ddd58852a6a62107a019f6e349529f277518a - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^5.0.0, is-fullwidth-code-point@npm:^5.1.0": - version: 5.1.0 - resolution: "is-fullwidth-code-point@npm:5.1.0" - dependencies: - get-east-asian-width: "npm:^1.3.1" - checksum: 10c0/c1172c2e417fb73470c56c431851681591f6a17233603a9e6f94b7ba870b2e8a5266506490573b607fb1081318589372034aa436aec07b465c2029c0bc7f07a4 - languageName: node - linkType: hard - -"is-in-ci@npm:^2.0.0": - version: 2.0.0 - resolution: "is-in-ci@npm:2.0.0" - bin: - is-in-ci: cli.js - checksum: 10c0/1e1d1056939a681e8206035de5ad84e0404556eaa7622bb55f0f1868b9788bff3df427bc0b1ed5a172623154a90fcb1e759a230817cd73d09435543ae3c71feb - languageName: node - linkType: hard - -"isexe@npm:^4.0.0": - version: 4.0.0 - resolution: "isexe@npm:4.0.0" - checksum: 10c0/5884815115bceac452877659a9c7726382531592f43dc29e5d48b7c4100661aed54018cb90bd36cb2eaeba521092570769167acbb95c18d39afdccbcca06c5ce - languageName: node - linkType: hard - -"isomorphic-unfetch@npm:^3.0.0": - version: 3.1.0 - resolution: "isomorphic-unfetch@npm:3.1.0" - dependencies: - node-fetch: "npm:^2.6.1" - unfetch: "npm:^4.2.0" - checksum: 10c0/d3b61fca06304db692b7f76bdfd3a00f410e42cfa7403c3b250546bf71589d18cf2f355922f57198e4cc4a9872d3647b20397a5c3edf1a347c90d57c83cf2a89 - languageName: node - linkType: hard - -"iterall@npm:^1.2.1": - version: 1.3.0 - resolution: "iterall@npm:1.3.0" - checksum: 10c0/40de624e5fe937c4c0e511981b91caea9ff2142bfc0316cccc8506eaa03aa253820cc17c5bc5f0a98706c7268a373e5ebee9af9a0c8a359730cf7c05938b57b5 - languageName: node - linkType: hard - -"js-tokens@npm:^4.0.0": - version: 4.0.0 - resolution: "js-tokens@npm:4.0.0" - checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed - languageName: node - linkType: hard - -"jsesc@npm:^3.0.2": - version: 3.1.0 - resolution: "jsesc@npm:3.1.0" - bin: - jsesc: bin/jsesc - checksum: 10c0/531779df5ec94f47e462da26b4cbf05eb88a83d9f08aac2ba04206508fc598527a153d08bd462bae82fc78b3eaa1a908e1a4a79f886e9238641c4cdefaf118b1 - languageName: node - linkType: hard - -"json-parse-even-better-errors@npm:^2.3.0": - version: 2.3.1 - resolution: "json-parse-even-better-errors@npm:2.3.1" - checksum: 10c0/140932564c8f0b88455432e0f33c4cb4086b8868e37524e07e723f4eaedb9425bdc2bafd71bd1d9765bd15fd1e2d126972bc83990f55c467168c228c24d665f3 - languageName: node - linkType: hard - -"jsonc-parser@npm:^3.2.0": - version: 3.3.1 - resolution: "jsonc-parser@npm:3.3.1" - checksum: 10c0/269c3ae0a0e4f907a914bf334306c384aabb9929bd8c99f909275ebd5c2d3bc70b9bcd119ad794f339dec9f24b6a4ee9cd5a8ab2e6435e730ad4075388fc2ab6 - languageName: node - linkType: hard - -"lightningcss-android-arm64@npm:1.32.0": - version: 1.32.0 - resolution: "lightningcss-android-arm64@npm:1.32.0" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"lightningcss-darwin-arm64@npm:1.32.0": - version: 1.32.0 - resolution: "lightningcss-darwin-arm64@npm:1.32.0" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"lightningcss-darwin-x64@npm:1.32.0": - version: 1.32.0 - resolution: "lightningcss-darwin-x64@npm:1.32.0" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"lightningcss-freebsd-x64@npm:1.32.0": - version: 1.32.0 - resolution: "lightningcss-freebsd-x64@npm:1.32.0" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"lightningcss-linux-arm-gnueabihf@npm:1.32.0": - version: 1.32.0 - resolution: "lightningcss-linux-arm-gnueabihf@npm:1.32.0" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"lightningcss-linux-arm64-gnu@npm:1.32.0": - version: 1.32.0 - resolution: "lightningcss-linux-arm64-gnu@npm:1.32.0" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"lightningcss-linux-arm64-musl@npm:1.32.0": - version: 1.32.0 - resolution: "lightningcss-linux-arm64-musl@npm:1.32.0" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"lightningcss-linux-x64-gnu@npm:1.32.0": - version: 1.32.0 - resolution: "lightningcss-linux-x64-gnu@npm:1.32.0" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"lightningcss-linux-x64-musl@npm:1.32.0": - version: 1.32.0 - resolution: "lightningcss-linux-x64-musl@npm:1.32.0" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"lightningcss-win32-arm64-msvc@npm:1.32.0": - version: 1.32.0 - resolution: "lightningcss-win32-arm64-msvc@npm:1.32.0" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"lightningcss-win32-x64-msvc@npm:1.32.0": - version: 1.32.0 - resolution: "lightningcss-win32-x64-msvc@npm:1.32.0" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"lightningcss@npm:^1.32.0": - version: 1.32.0 - resolution: "lightningcss@npm:1.32.0" - dependencies: - detect-libc: "npm:^2.0.3" - lightningcss-android-arm64: "npm:1.32.0" - lightningcss-darwin-arm64: "npm:1.32.0" - lightningcss-darwin-x64: "npm:1.32.0" - lightningcss-freebsd-x64: "npm:1.32.0" - lightningcss-linux-arm-gnueabihf: "npm:1.32.0" - lightningcss-linux-arm64-gnu: "npm:1.32.0" - lightningcss-linux-arm64-musl: "npm:1.32.0" - lightningcss-linux-x64-gnu: "npm:1.32.0" - lightningcss-linux-x64-musl: "npm:1.32.0" - lightningcss-win32-arm64-msvc: "npm:1.32.0" - lightningcss-win32-x64-msvc: "npm:1.32.0" - dependenciesMeta: - lightningcss-android-arm64: - optional: true - lightningcss-darwin-arm64: - optional: true - lightningcss-darwin-x64: - optional: true - lightningcss-freebsd-x64: - optional: true - lightningcss-linux-arm-gnueabihf: - optional: true - lightningcss-linux-arm64-gnu: - optional: true - lightningcss-linux-arm64-musl: - optional: true - lightningcss-linux-x64-gnu: - optional: true - lightningcss-linux-x64-musl: - optional: true - lightningcss-win32-arm64-msvc: - optional: true - lightningcss-win32-x64-msvc: - optional: true - checksum: 10c0/70945bd55097af46fc9fab7f5ed09cd5869d85940a2acab7ee06d0117004a1d68155708a2d462531cea2fc3c67aefc9333a7068c80b0b78dd404c16838809e03 - languageName: node - linkType: hard - -"lines-and-columns@npm:^1.1.6": - version: 1.2.4 - resolution: "lines-and-columns@npm:1.2.4" - checksum: 10c0/3da6ee62d4cd9f03f5dc90b4df2540fb85b352081bee77fe4bbcd12c9000ead7f35e0a38b8d09a9bb99b13223446dd8689ff3c4959807620726d788701a83d2d - languageName: node - linkType: hard - -"lodash@npm:^4.17.20, lodash@npm:^4.17.21": - version: 4.18.1 - resolution: "lodash@npm:4.18.1" - checksum: 10c0/757228fc68805c59789e82185135cf85f05d0b2d3d54631d680ca79ec21944ec8314d4533639a14b8bcfbd97a517e78960933041a5af17ecb693ec6eecb99a27 - languageName: node - linkType: hard - -"magic-string@npm:^0.30.21": - version: 0.30.21 - resolution: "magic-string@npm:0.30.21" - dependencies: - "@jridgewell/sourcemap-codec": "npm:^1.5.5" - checksum: 10c0/299378e38f9a270069fc62358522ddfb44e94244baa0d6a8980ab2a9b2490a1d03b236b447eee309e17eb3bddfa482c61259d47960eb018a904f0ded52780c4a - languageName: node - linkType: hard - -"math-intrinsics@npm:^1.1.0": - version: 1.1.0 - resolution: "math-intrinsics@npm:1.1.0" - checksum: 10c0/7579ff94e899e2f76ab64491d76cf606274c874d8f2af4a442c016bd85688927fcfca157ba6bf74b08e9439dc010b248ce05b96cc7c126a354c3bae7fcb48b7f - languageName: node - linkType: hard - -"mime-db@npm:1.52.0": - version: 1.52.0 - resolution: "mime-db@npm:1.52.0" - checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa - languageName: node - linkType: hard - -"mime-types@npm:^2.1.35": - version: 2.1.35 - resolution: "mime-types@npm:2.1.35" - dependencies: - mime-db: "npm:1.52.0" - checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 - languageName: node - linkType: hard - -"mimic-fn@npm:^2.1.0": - version: 2.1.0 - resolution: "mimic-fn@npm:2.1.0" - checksum: 10c0/b26f5479d7ec6cc2bce275a08f146cf78f5e7b661b18114e2506dd91ec7ec47e7a25bf4360e5438094db0560bcc868079fb3b1fb3892b833c1ecbf63f80c95a4 - languageName: node - linkType: hard - -"minipass@npm:^7.0.4, minipass@npm:^7.1.2": - version: 7.1.3 - resolution: "minipass@npm:7.1.3" - checksum: 10c0/539da88daca16533211ea5a9ee98dc62ff5742f531f54640dd34429e621955e91cc280a91a776026264b7f9f6735947629f920944e9c1558369e8bf22eb33fbb - languageName: node - linkType: hard - -"minizlib@npm:^3.1.0": - version: 3.1.0 - resolution: "minizlib@npm:3.1.0" - dependencies: - minipass: "npm:^7.1.2" - checksum: 10c0/5aad75ab0090b8266069c9aabe582c021ae53eb33c6c691054a13a45db3b4f91a7fb1bd79151e6b4e9e9a86727b522527c0a06ec7d45206b745d54cd3097bcec - languageName: node - linkType: hard - -"ms@npm:^2.1.3": - version: 2.1.3 - resolution: "ms@npm:2.1.3" - checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 - languageName: node - linkType: hard - -"mute-stream@npm:^3.0.0": - version: 3.0.0 - resolution: "mute-stream@npm:3.0.0" - checksum: 10c0/12cdb36a101694c7a6b296632e6d93a30b74401873cf7507c88861441a090c71c77a58f213acadad03bc0c8fa186639dec99d68a14497773a8744320c136e701 - languageName: node - linkType: hard - -"nanoid@npm:^3.3.12": - version: 3.3.12 - resolution: "nanoid@npm:3.3.12" - bin: - nanoid: bin/nanoid.cjs - checksum: 10c0/ba142b7b39e11e80c16dd74b0365d407880c87c1cf7e1480956981ae940ee36060fa5b6f092cd1e315184dd19244c657bd017d03327bd3c62247d691c5e8edfb - languageName: node - linkType: hard - -"node-fetch@npm:^2.6.1": - version: 2.7.0 - resolution: "node-fetch@npm:2.7.0" - dependencies: - whatwg-url: "npm:^5.0.0" - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - checksum: 10c0/b55786b6028208e6fbe594ccccc213cab67a72899c9234eb59dba51062a299ea853210fcf526998eaa2867b0963ad72338824450905679ff0fa304b8c5093ae8 - languageName: node - linkType: hard - -"node-gyp@npm:latest": - version: 12.4.0 - resolution: "node-gyp@npm:12.4.0" - dependencies: - env-paths: "npm:^2.2.0" - exponential-backoff: "npm:^3.1.1" - graceful-fs: "npm:^4.2.6" - nopt: "npm:^9.0.0" - proc-log: "npm:^6.0.0" - semver: "npm:^7.3.5" - tar: "npm:^7.5.4" - tinyglobby: "npm:^0.2.12" - undici: "npm:^6.25.0" - which: "npm:^6.0.0" - bin: - node-gyp: bin/node-gyp.js - checksum: 10c0/9acb7c798e124275a6f9c1f7eb64b5abd6196bb885a3945fb44ee0dccf435514e88cdfb0f228ee7ff76ef25107c1f39ff37a067bf92fd00b9aff9234db29ff9e - languageName: node - linkType: hard - -"nopt@npm:^9.0.0": - version: 9.0.0 - resolution: "nopt@npm:9.0.0" - dependencies: - abbrev: "npm:^4.0.0" - bin: - nopt: bin/nopt.js - checksum: 10c0/1822eb6f9b020ef6f7a7516d7b64a8036e09666ea55ac40416c36e4b2b343122c3cff0e2f085675f53de1d2db99a2a89a60ccea1d120bcd6a5347bf6ceb4a7fd - languageName: node - linkType: hard - -"obug@npm:^2.1.1": - version: 2.1.3 - resolution: "obug@npm:2.1.3" - checksum: 10c0/cb8187fed0a5fc8445507c950e89f3c1bd43895658c398b5803f6b7804dfa0c562975ecce1e67f3d9247d521452a5bfade9e0e951cc0326b7444272f7c24d25f - languageName: node - linkType: hard - -"onetime@npm:^5.1.0": - version: 5.1.2 - resolution: "onetime@npm:5.1.2" - dependencies: - mimic-fn: "npm:^2.1.0" - checksum: 10c0/ffcef6fbb2692c3c40749f31ea2e22677a876daea92959b8a80b521d95cca7a668c884d8b2045d1d8ee7d56796aa405c405462af112a1477594cc63531baeb8f - languageName: node - linkType: hard - -"oxlint@npm:^0.16.0": - version: 0.16.12 - resolution: "oxlint@npm:0.16.12" - dependencies: - "@oxlint/darwin-arm64": "npm:0.16.12" - "@oxlint/darwin-x64": "npm:0.16.12" - "@oxlint/linux-arm64-gnu": "npm:0.16.12" - "@oxlint/linux-arm64-musl": "npm:0.16.12" - "@oxlint/linux-x64-gnu": "npm:0.16.12" - "@oxlint/linux-x64-musl": "npm:0.16.12" - "@oxlint/win32-arm64": "npm:0.16.12" - "@oxlint/win32-x64": "npm:0.16.12" - dependenciesMeta: - "@oxlint/darwin-arm64": - optional: true - "@oxlint/darwin-x64": - optional: true - "@oxlint/linux-arm64-gnu": - optional: true - "@oxlint/linux-arm64-musl": - optional: true - "@oxlint/linux-x64-gnu": - optional: true - "@oxlint/linux-x64-musl": - optional: true - "@oxlint/win32-arm64": - optional: true - "@oxlint/win32-x64": - optional: true - bin: - oxc_language_server: bin/oxc_language_server - oxlint: bin/oxlint - checksum: 10c0/209c3484039c4f1fdd340689e81be93a70fdf74e8c111731e70d81580d223b0029439107c95fa4118cec3c9b03ba6c56624d3dcb8cdc79af222da3561122b3e7 - languageName: node - linkType: hard - -"parent-module@npm:^1.0.0": - version: 1.0.1 - resolution: "parent-module@npm:1.0.1" - dependencies: - callsites: "npm:^3.0.0" - checksum: 10c0/c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556 - languageName: node - linkType: hard - -"parse-json@npm:^5.0.0": - version: 5.2.0 - resolution: "parse-json@npm:5.2.0" - dependencies: - "@babel/code-frame": "npm:^7.0.0" - error-ex: "npm:^1.3.1" - json-parse-even-better-errors: "npm:^2.3.0" - lines-and-columns: "npm:^1.1.6" - checksum: 10c0/77947f2253005be7a12d858aedbafa09c9ae39eb4863adf330f7b416ca4f4a08132e453e08de2db46459256fb66afaac5ee758b44fe6541b7cdaf9d252e59585 - languageName: node - linkType: hard - -"patch-console@npm:^2.0.0": - version: 2.0.0 - resolution: "patch-console@npm:2.0.0" - checksum: 10c0/486602591a0af7af8d4c76d8eea42cad32b6de7200488819c6383c75e43733ca7bdc80e30f2e68ce05f06a1607cce1683a1706c6672ca27dada1921b366e8f1c - languageName: node - linkType: hard - -"path-parse@npm:^1.0.7": - version: 1.0.7 - resolution: "path-parse@npm:1.0.7" - checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1 - languageName: node - linkType: hard - -"path-type@npm:^4.0.0": - version: 4.0.0 - resolution: "path-type@npm:4.0.0" - checksum: 10c0/666f6973f332f27581371efaf303fd6c272cc43c2057b37aa99e3643158c7e4b2626549555d88626e99ea9e046f82f32e41bbde5f1508547e9a11b149b52387c - languageName: node - linkType: hard - -"pathe@npm:^2.0.3": - version: 2.0.3 - resolution: "pathe@npm:2.0.3" - checksum: 10c0/c118dc5a8b5c4166011b2b70608762e260085180bb9e33e80a50dcdb1e78c010b1624f4280c492c92b05fc276715a4c357d1f9edc570f8f1b3d90b6839ebaca1 - languageName: node - linkType: hard - -"picocolors@npm:^1.1.1": - version: 1.1.1 - resolution: "picocolors@npm:1.1.1" - checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 - languageName: node - linkType: hard - -"picomatch@npm:^4.0.3, picomatch@npm:^4.0.4": - version: 4.0.4 - resolution: "picomatch@npm:4.0.4" - checksum: 10c0/e2c6023372cc7b5764719a5ffb9da0f8e781212fa7ca4bd0562db929df8e117460f00dff3cb7509dacfc06b86de924b247f504d0ce1806a37fac4633081466b0 - languageName: node - linkType: hard - -"postcss@npm:^8.5.15": - version: 8.5.15 - resolution: "postcss@npm:8.5.15" - dependencies: - nanoid: "npm:^3.3.12" - picocolors: "npm:^1.1.1" - source-map-js: "npm:^1.2.1" - checksum: 10c0/7f2e63ae22fbe43aace1bf652bd99da4e90737c64194d49e51ddc9cd0f9e51ff2861a7d734379b494deffa03a880a5c65eec70bc29ee9ebaa7136dde3eee8f31 - languageName: node - linkType: hard - -"preact@npm:^10.28.3": - version: 10.29.2 - resolution: "preact@npm:10.29.2" - checksum: 10c0/2ee161274e475804524608d42bba8c79920636b322293248796a9e5bf4c3332336f8c0eca1b1566ed09cdee95e408eb20b5b7613d95820ea6b6eb8fc090ef60a - languageName: node - linkType: hard - -"prettier@npm:^3.8.3": - version: 3.8.4 - resolution: "prettier@npm:3.8.4" - bin: - prettier: bin/prettier.cjs - checksum: 10c0/b90a0cbe75b88ac0af9c13fe0f359bd19926fabccd88483227b21f71f0c1cc42da056fc1ac3a361e665577c568371d5ccfb2c62c31c8a1186f8d1bd531a063e9 - languageName: node - linkType: hard - -"proc-log@npm:^6.0.0": - version: 6.1.0 - resolution: "proc-log@npm:6.1.0" - checksum: 10c0/4f178d4062733ead9d71a9b1ab24ebcecdfe2250916a5b1555f04fe2eda972a0ec76fbaa8df1ad9c02707add6749219d118a4fc46dc56bdfe4dde4b47d80bb82 - languageName: node - linkType: hard - -"proxy-from-env@npm:^2.1.0": - version: 2.1.0 - resolution: "proxy-from-env@npm:2.1.0" - checksum: 10c0/ed01729fd4d094eab619cd7e17ce3698b3413b31eb102c4904f9875e677cd207392795d5b4adee9cec359dfd31c44d5ad7595a3a3ad51c40250e141512281c58 - languageName: node - linkType: hard - -"react-dom@npm:^19.0.0, react-dom@npm:^19.2.0": - version: 19.2.7 - resolution: "react-dom@npm:19.2.7" - dependencies: - scheduler: "npm:^0.27.0" - peerDependencies: - react: ^19.2.7 - checksum: 10c0/970ff600f6e80d47d39e2f226f12f226173b3cba3382efc97c5f0cd663de9af38c7a4c11c213fb936094faeac83060d660247accaa96b752180d5b951b9cfecb - languageName: node - linkType: hard - -"react-is@npm:^16.7.0": - version: 16.13.1 - resolution: "react-is@npm:16.13.1" - checksum: 10c0/33977da7a5f1a287936a0c85639fec6ca74f4f15ef1e59a6bc20338fc73dc69555381e211f7a3529b8150a1f71e4225525b41b60b52965bda53ce7d47377ada1 - languageName: node - linkType: hard - -"react-reconciler@npm:^0.33.0": - version: 0.33.0 - resolution: "react-reconciler@npm:0.33.0" - dependencies: - scheduler: "npm:^0.27.0" - peerDependencies: - react: ^19.2.0 - checksum: 10c0/3f7b27ea8d0ff4c8bf0e402a285e1af9b7d0e6f4c1a70a28f4384938bc1130bc82a90a31df0b79ef5e380e2e55e2598bd90b4dbf802b1203d735ba0355817d3a - languageName: node - linkType: hard - -"react@npm:^19.0.0, react@npm:^19.2.0": - version: 19.2.7 - resolution: "react@npm:19.2.7" - checksum: 10c0/0bd0e2f1bbd4ba97561c6597bf8a5fec05e6476fe61e165c1065598d16668efc6715205599c94d3ddd49d36cb0f21cbf1b9bcc18ee840b805ce222c3e8d558ac - languageName: node - linkType: hard - -"readdirp@npm:^4.0.1": - version: 4.1.2 - resolution: "readdirp@npm:4.1.2" - checksum: 10c0/60a14f7619dec48c9c850255cd523e2717001b0e179dc7037cfa0895da7b9e9ab07532d324bfb118d73a710887d1e35f79c495fa91582784493e085d18c72c62 - languageName: node - linkType: hard - -"resolve-from@npm:^4.0.0": - version: 4.0.0 - resolution: "resolve-from@npm:4.0.0" - checksum: 10c0/8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190 - languageName: node - linkType: hard - -"resolve@npm:^1.19.0": - version: 1.22.12 - resolution: "resolve@npm:1.22.12" - dependencies: - es-errors: "npm:^1.3.0" - is-core-module: "npm:^2.16.1" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10c0/b16dc9b537c02e8c3388f7d3dcff9741d3071625f9a97ac1c885f2b0ca51e78df22328fb6d6ef214dd9101fb7cfc19aa2836fe3410402a94f3f7b8639c7149bf - languageName: node - linkType: hard - -"resolve@patch:resolve@npm%3A^1.19.0#optional!builtin": - version: 1.22.12 - resolution: "resolve@patch:resolve@npm%3A1.22.12#optional!builtin::version=1.22.12&hash=c3c19d" - dependencies: - es-errors: "npm:^1.3.0" - is-core-module: "npm:^2.16.1" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10c0/fc6519984ae1f894d877c0060ba8b1f5ba3bc0e85a02f74e141929c118c23d74d9735619a9cc2965397387e514884245c65d72a40731dcb6cfc84c7bcdc8321e - languageName: node - linkType: hard - -"restore-cursor@npm:^4.0.0": - version: 4.0.0 - resolution: "restore-cursor@npm:4.0.0" - dependencies: - onetime: "npm:^5.1.0" - signal-exit: "npm:^3.0.2" - checksum: 10c0/6f7da8c5e422ac26aa38354870b1afac09963572cf2879443540449068cb43476e9cbccf6f8de3e0171e0d6f7f533c2bc1a0a008003c9a525bbc098e89041318 - languageName: node - linkType: hard - -"rolldown@npm:1.0.3": - version: 1.0.3 - resolution: "rolldown@npm:1.0.3" - dependencies: - "@oxc-project/types": "npm:=0.133.0" - "@rolldown/binding-android-arm64": "npm:1.0.3" - "@rolldown/binding-darwin-arm64": "npm:1.0.3" - "@rolldown/binding-darwin-x64": "npm:1.0.3" - "@rolldown/binding-freebsd-x64": "npm:1.0.3" - "@rolldown/binding-linux-arm-gnueabihf": "npm:1.0.3" - "@rolldown/binding-linux-arm64-gnu": "npm:1.0.3" - "@rolldown/binding-linux-arm64-musl": "npm:1.0.3" - "@rolldown/binding-linux-ppc64-gnu": "npm:1.0.3" - "@rolldown/binding-linux-s390x-gnu": "npm:1.0.3" - "@rolldown/binding-linux-x64-gnu": "npm:1.0.3" - "@rolldown/binding-linux-x64-musl": "npm:1.0.3" - "@rolldown/binding-openharmony-arm64": "npm:1.0.3" - "@rolldown/binding-wasm32-wasi": "npm:1.0.3" - "@rolldown/binding-win32-arm64-msvc": "npm:1.0.3" - "@rolldown/binding-win32-x64-msvc": "npm:1.0.3" - "@rolldown/pluginutils": "npm:^1.0.0" - dependenciesMeta: - "@rolldown/binding-android-arm64": - optional: true - "@rolldown/binding-darwin-arm64": - optional: true - "@rolldown/binding-darwin-x64": - optional: true - "@rolldown/binding-freebsd-x64": - optional: true - "@rolldown/binding-linux-arm-gnueabihf": - optional: true - "@rolldown/binding-linux-arm64-gnu": - optional: true - "@rolldown/binding-linux-arm64-musl": - optional: true - "@rolldown/binding-linux-ppc64-gnu": - optional: true - "@rolldown/binding-linux-s390x-gnu": - optional: true - "@rolldown/binding-linux-x64-gnu": - optional: true - "@rolldown/binding-linux-x64-musl": - optional: true - "@rolldown/binding-openharmony-arm64": - optional: true - "@rolldown/binding-wasm32-wasi": - optional: true - "@rolldown/binding-win32-arm64-msvc": - optional: true - "@rolldown/binding-win32-x64-msvc": - optional: true - bin: - rolldown: ./bin/cli.mjs - checksum: 10c0/5f9dd47b7abf203b16bc600db68542f245e974c800e59ff50b76157d1dada1403657690435b036fabca88e93d13a67c31abe5cfaa6f61ce33717f61720204cdf - languageName: node - linkType: hard - -"run-async@npm:^4.0.6": - version: 4.0.6 - resolution: "run-async@npm:4.0.6" - checksum: 10c0/3e512c689d356238a06a59839deddeb09aec23bc66f780fe970fcf12b64bfc00c6880e9530ea22b8cf88a927145561f5a43343d8be87166e849ec0daaa3d4cf4 - languageName: node - linkType: hard - -"safer-buffer@npm:>= 2.1.2 < 3.0.0": - version: 2.1.2 - resolution: "safer-buffer@npm:2.1.2" - checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 - languageName: node - linkType: hard - -"scheduler@npm:^0.27.0": - version: 0.27.0 - resolution: "scheduler@npm:0.27.0" - checksum: 10c0/4f03048cb05a3c8fddc45813052251eca00688f413a3cee236d984a161da28db28ba71bd11e7a3dd02f7af84ab28d39fb311431d3b3772fed557945beb00c452 - languageName: node - linkType: hard - -"semver@npm:7.6.3": - version: 7.6.3 - resolution: "semver@npm:7.6.3" - bin: - semver: bin/semver.js - checksum: 10c0/88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf - languageName: node - linkType: hard - -"semver@npm:^7.3.5": - version: 7.8.4 - resolution: "semver@npm:7.8.4" - bin: - semver: bin/semver.js - checksum: 10c0/81b7c296fd7927b80f67fa516b75fa1017caac8167795320de28e76ccbc6f7f01763c30ecd10d6a0d8fd089708ab0548a5aebb94b0870e99c2a2b4600a46389b - languageName: node - linkType: hard - -"siginfo@npm:^2.0.0": - version: 2.0.0 - resolution: "siginfo@npm:2.0.0" - checksum: 10c0/3def8f8e516fbb34cb6ae415b07ccc5d9c018d85b4b8611e3dc6f8be6d1899f693a4382913c9ed51a06babb5201639d76453ab297d1c54a456544acf5c892e34 - languageName: node - linkType: hard - -"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.7": - version: 3.0.7 - resolution: "signal-exit@npm:3.0.7" - checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 - languageName: node - linkType: hard - -"signal-exit@npm:^4.1.0": - version: 4.1.0 - resolution: "signal-exit@npm:4.1.0" - checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 - languageName: node - linkType: hard - -"slice-ansi@npm:^8.0.0": - version: 8.0.0 - resolution: "slice-ansi@npm:8.0.0" - dependencies: - ansi-styles: "npm:^6.2.3" - is-fullwidth-code-point: "npm:^5.1.0" - checksum: 10c0/0ce4aa91febb7cea4a00c2c27bb820fa53b6d2862ce0f80f7120134719f7914fc416b0ed966cf35250a3169e152916392f35917a2d7cad0fcc5d8b841010fa9a - languageName: node - linkType: hard - -"source-map-js@npm:^1.2.1": - version: 1.2.1 - resolution: "source-map-js@npm:1.2.1" - checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf - languageName: node - linkType: hard - -"source-map@npm:^0.5.7": - version: 0.5.7 - resolution: "source-map@npm:0.5.7" - checksum: 10c0/904e767bb9c494929be013017380cbba013637da1b28e5943b566031e29df04fba57edf3f093e0914be094648b577372bd8ad247fa98cfba9c600794cd16b599 - languageName: node - linkType: hard - -"stack-utils@npm:^2.0.6": - version: 2.0.6 - resolution: "stack-utils@npm:2.0.6" - dependencies: - escape-string-regexp: "npm:^2.0.0" - checksum: 10c0/651c9f87667e077584bbe848acaecc6049bc71979f1e9a46c7b920cad4431c388df0f51b8ad7cfd6eed3db97a2878d0fc8b3122979439ea8bac29c61c95eec8a - languageName: node - linkType: hard - -"stackback@npm:0.0.2": - version: 0.0.2 - resolution: "stackback@npm:0.0.2" - checksum: 10c0/89a1416668f950236dd5ac9f9a6b2588e1b9b62b1b6ad8dff1bfc5d1a15dbf0aafc9b52d2226d00c28dffff212da464eaeebfc6b7578b9d180cef3e3782c5983 - languageName: node - linkType: hard - -"std-env@npm:^4.0.0-rc.1": - version: 4.1.0 - resolution: "std-env@npm:4.1.0" - checksum: 10c0/2e14b6b490db34cb969a48d9cf7c35bca4a47653914aac2814221baae7b867a5b15940d133625c391621971f98cd2266a5dc7036669960e883f1081db2a56558 - languageName: node - linkType: hard - -"string-width@npm:^7.0.0": - version: 7.2.0 - resolution: "string-width@npm:7.2.0" - dependencies: - emoji-regex: "npm:^10.3.0" - get-east-asian-width: "npm:^1.0.0" - strip-ansi: "npm:^7.1.0" - checksum: 10c0/eb0430dd43f3199c7a46dcbf7a0b34539c76fe3aa62763d0b0655acdcbdf360b3f66f3d58ca25ba0205f42ea3491fa00f09426d3b7d3040e506878fc7664c9b9 - languageName: node - linkType: hard - -"string-width@npm:^8.1.0, string-width@npm:^8.1.1, string-width@npm:^8.2.0": - version: 8.2.1 - resolution: "string-width@npm:8.2.1" - dependencies: - get-east-asian-width: "npm:^1.5.0" - strip-ansi: "npm:^7.1.2" - checksum: 10c0/d467b4eaf4c40a01bb438a2620e77badd2456ffd5131c9973abe4f3acf7c802d5b21f3b6a00a5e33a7fc28ca8f9c103226e01bac61e9f259659c6f46d78e353a - languageName: node - linkType: hard - -"strip-ansi@npm:^7.1.0, strip-ansi@npm:^7.1.2": - version: 7.2.0 - resolution: "strip-ansi@npm:7.2.0" - dependencies: - ansi-regex: "npm:^6.2.2" - checksum: 10c0/544d13b7582f8254811ea97db202f519e189e59d35740c46095897e254e4f1aa9fe1524a83ad6bc5ad67d4dd6c0281d2e0219ed62b880a6238a16a17d375f221 - languageName: node - linkType: hard - -"stylis@npm:4.2.0": - version: 4.2.0 - resolution: "stylis@npm:4.2.0" - checksum: 10c0/a7128ad5a8ed72652c6eba46bed4f416521bc9745a460ef5741edc725252cebf36ee45e33a8615a7057403c93df0866ab9ee955960792db210bb80abd5ac6543 - languageName: node - linkType: hard - -"subscriptions-transport-ws@npm:^0.9.16": - version: 0.9.19 - resolution: "subscriptions-transport-ws@npm:0.9.19" - dependencies: - backo2: "npm:^1.0.2" - eventemitter3: "npm:^3.1.0" - iterall: "npm:^1.2.1" - symbol-observable: "npm:^1.0.4" - ws: "npm:^5.2.0 || ^6.0.0 || ^7.0.0" - peerDependencies: - graphql: ">=0.10.0" - checksum: 10c0/6f2ade56865f0ba291d3ff82c79781b051c2374873bac853286fedfdbc05001b8c4018ab7cba44af667ead7f573e48d18892d58a8f9ca8d90dfb4bff5c125045 - languageName: node - linkType: hard - -"supports-preserve-symlinks-flag@npm:^1.0.0": - version: 1.0.0 - resolution: "supports-preserve-symlinks-flag@npm:1.0.0" - checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39 - languageName: node - linkType: hard - -"symbol-observable@npm:^1.0.4": - version: 1.2.0 - resolution: "symbol-observable@npm:1.2.0" - checksum: 10c0/009fee50798ef80ed4b8195048288f108b03de162db07493f2e1fd993b33fafa72d659e832b584da5a2427daa78e5a738fb2a9ab027ee9454252e0bedbcd1fdc - languageName: node - linkType: hard - -"tagged-tag@npm:^1.0.0": - version: 1.0.0 - resolution: "tagged-tag@npm:1.0.0" - checksum: 10c0/91d25c9ffb86a91f20522cefb2cbec9b64caa1febe27ad0df52f08993ff60888022d771e868e6416cf2e72dab68449d2139e8709ba009b74c6c7ecd4000048d1 - languageName: node - linkType: hard - -"tar@npm:^7.5.4": - version: 7.5.16 - resolution: "tar@npm:7.5.16" - dependencies: - "@isaacs/fs-minipass": "npm:^4.0.0" - chownr: "npm:^3.0.0" - minipass: "npm:^7.1.2" - minizlib: "npm:^3.1.0" - yallist: "npm:^5.0.0" - checksum: 10c0/4f37f3c4bd2ca2755fd736a5df1d573c1a868ec1b1e893346aeafa95ac510f9e2fd1469420bd866cc7904799e5bd4ac62b5d4f03fe27747d6e1e373b44505c5c - languageName: node - linkType: hard - -"terminal-size@npm:^4.0.1": - version: 4.0.1 - resolution: "terminal-size@npm:4.0.1" - checksum: 10c0/89afd9d816dd9dbfe4499da9aeea70491bbde4ff4592226a9c8ac71074a7580afead6a78e95ecc35f6d42e09087b55ffcb1019302cd55e0cc957b6ce5c4847e8 - languageName: node - linkType: hard - -"tinybench@npm:^2.9.0": - version: 2.9.0 - resolution: "tinybench@npm:2.9.0" - checksum: 10c0/c3500b0f60d2eb8db65250afe750b66d51623057ee88720b7f064894a6cb7eb93360ca824a60a31ab16dab30c7b1f06efe0795b352e37914a9d4bad86386a20c - languageName: node - linkType: hard - -"tinyexec@npm:^1.0.2": - version: 1.2.4 - resolution: "tinyexec@npm:1.2.4" - checksum: 10c0/153b8db6b080194b558ff145b9cffc36b80a6e07babd644dcfbe49c807eee668c876049d28bdee90b96304476f883352f2dad91b3f86bc23832532f4363e66ff - languageName: node - linkType: hard - -"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.15, tinyglobby@npm:^0.2.17": - version: 0.2.17 - resolution: "tinyglobby@npm:0.2.17" - dependencies: - fdir: "npm:^6.5.0" - picomatch: "npm:^4.0.4" - checksum: 10c0/7f7bb0f197c88bc4b20c231e0deca4240ca3bf313a88f5a7fee93a872b84966a4d50220947c0455ad07a60b3b360961c5b7fd979222aeb716a9f99b412002e4c - languageName: node - linkType: hard - -"tinyrainbow@npm:^3.1.0": - version: 3.1.0 - resolution: "tinyrainbow@npm:3.1.0" - checksum: 10c0/f11cf387a26c5c9255bec141a90ac511b26172981b10c3e50053bc6700ea7d2336edcc4a3a21dbb8412fe7c013477d2ba4d7e4877800f3f8107be5105aad6511 - languageName: node - linkType: hard - -"tr46@npm:~0.0.3": - version: 0.0.3 - resolution: "tr46@npm:0.0.3" - checksum: 10c0/047cb209a6b60c742f05c9d3ace8fa510bff609995c129a37ace03476a9b12db4dbf975e74600830ef0796e18882b2381fb5fb1f6b4f96b832c374de3ab91a11 - languageName: node - linkType: hard - -"tsconfck@npm:^3.0.3": - version: 3.1.6 - resolution: "tsconfck@npm:3.1.6" - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - bin: - tsconfck: bin/tsconfck.js - checksum: 10c0/269c3c513540be44844117bb9b9258fe6f8aeab026d32aeebf458d5299125f330711429dbb556dbf125a0bc25f4a81e6c24ac96de2740badd295c3fb400f66c4 - languageName: node - linkType: hard - -"tslib@npm:^1.9.3": - version: 1.14.1 - resolution: "tslib@npm:1.14.1" - checksum: 10c0/69ae09c49eea644bc5ebe1bca4fa4cc2c82b7b3e02f43b84bd891504edf66dbc6b2ec0eef31a957042de2269139e4acff911e6d186a258fb14069cd7f6febce2 - languageName: node - linkType: hard - -"tslib@npm:^2.0.0, tslib@npm:^2.4.0": - version: 2.8.1 - resolution: "tslib@npm:2.8.1" - checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 - languageName: node - linkType: hard - -"twenty-client-sdk@npm:2.15.0": - version: 2.15.0 - resolution: "twenty-client-sdk@npm:2.15.0" - dependencies: - "@genql/runtime": "npm:^2.10.0" - esbuild: "npm:^0.28.1" - graphql: "npm:^16.8.1" - lodash: "npm:^4.17.21" - prettier: "npm:^3.8.3" - checksum: 10c0/ea5143511ec3d42a0c2eaabda8833bac5c73c25fe04ba967d76b47b22c67468dd59d9e748a00e99a8085ffdb02d6cc5f41556f9e85a9785b2909b63adcb4205f - languageName: node - linkType: hard - -"twenty-meeting-bot@workspace:.": - version: 0.0.0-use.local - resolution: "twenty-meeting-bot@workspace:." - dependencies: - "@emotion/react": "npm:^11.14.0" - "@emotion/styled": "npm:^11.14.0" - "@sniptt/guards": "npm:^0.2.0" - "@types/node": "npm:^24.7.2" - "@types/react": "npm:^19.0.0" - "@typescript/native-preview": "npm:^7.0.0-dev.20260116.1" - oxlint: "npm:^0.16.0" - react: "npm:^19.0.0" - react-dom: "npm:^19.0.0" - twenty-client-sdk: "npm:2.15.0" - twenty-sdk: "npm:2.15.0" - typescript: "npm:^5.9.3" - vite-tsconfig-paths: "npm:^4.2.1" - vitest: "npm:^4.1.9" - languageName: unknown - linkType: soft - -"twenty-sdk@npm:2.15.0": - version: 2.15.0 - resolution: "twenty-sdk@npm:2.15.0" - dependencies: - "@sniptt/guards": "npm:^0.2.0" - axios: "npm:^1.16.0" - chalk: "npm:^5.3.0" - chokidar: "npm:^4.0.0" - commander: "npm:^12.0.0" - esbuild: "npm:^0.28.1" - graphql: "npm:^16.8.1" - graphql-sse: "npm:^2.5.4" - ink: "npm:^6.8.0" - inquirer: "npm:^14.0.0" - jsonc-parser: "npm:^3.2.0" - preact: "npm:^10.28.3" - react: "npm:^19.2.0" - react-dom: "npm:^19.2.0" - semver: "npm:7.6.3" - tinyglobby: "npm:^0.2.15" - twenty-client-sdk: "npm:2.15.0" - typescript: "npm:^5.9.3" - uuid: "npm:^13.0.2" - bin: - twenty: dist/cli.cjs - checksum: 10c0/0fe9a3653f3adaa54eb8398e520328ed2fd51b4c4284b4ed4105dfd92e3c866f2e9b5c6933f952e974684cd38169cdb26d64cfe06f058f4f4cb5bb1f6be7d2fc - languageName: node - linkType: hard - -"type-fest@npm:^5.4.1": - version: 5.7.0 - resolution: "type-fest@npm:5.7.0" - dependencies: - tagged-tag: "npm:^1.0.0" - checksum: 10c0/f71ed17b753649421e419db8cc2e140f930333a1467b1d9cca2e0e4052900fd442f2360bae73f3a6bf9340d949ac46d9a1598c709b4c8089272e7624df9c8716 - languageName: node - linkType: hard - -"typescript@npm:^5.9.3": - version: 5.9.3 - resolution: "typescript@npm:5.9.3" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/6bd7552ce39f97e711db5aa048f6f9995b53f1c52f7d8667c1abdc1700c68a76a308f579cd309ce6b53646deb4e9a1be7c813a93baaf0a28ccd536a30270e1c5 - languageName: node - linkType: hard - -"typescript@patch:typescript@npm%3A^5.9.3#optional!builtin": - version: 5.9.3 - resolution: "typescript@patch:typescript@npm%3A5.9.3#optional!builtin::version=5.9.3&hash=5786d5" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/ad09fdf7a756814dce65bc60c1657b40d44451346858eea230e10f2e95a289d9183b6e32e5c11e95acc0ccc214b4f36289dcad4bf1886b0adb84d711d336a430 - languageName: node - linkType: hard - -"undici-types@npm:>=7.24.0 <7.24.7": - version: 7.24.6 - resolution: "undici-types@npm:7.24.6" - checksum: 10c0/d9cd8befb643ac904615c280a095ba4240531f6bb4a5e75a22a7483630ca8d3f1016d2ab6ace6ceda1f63b3a2db2fe037fafe121d6917a0187573aa548ff78ca - languageName: node - linkType: hard - -"undici-types@npm:~7.18.0": - version: 7.18.2 - resolution: "undici-types@npm:7.18.2" - checksum: 10c0/85a79189113a238959d7a647368e4f7c5559c3a404ebdb8fc4488145ce9426fcd82252a844a302798dfc0e37e6fb178ff481ed03bc4caf634c5757d9ef43521d - languageName: node - linkType: hard - -"undici@npm:^6.25.0": - version: 6.27.0 - resolution: "undici@npm:6.27.0" - checksum: 10c0/f88c3dae3957dbf9d93cb481440aced317bd3c4941b5914fea5efba516d51138988cdb5c76006f0bb1337e41d56c3443351055d492e73af2428521c37ba2a76f - languageName: node - linkType: hard - -"unfetch@npm:^4.2.0": - version: 4.2.0 - resolution: "unfetch@npm:4.2.0" - checksum: 10c0/a5c0a896a6f09f278b868075aea65652ad185db30e827cb7df45826fe5ab850124bf9c44c4dafca4bf0c55a0844b17031e8243467fcc38dd7a7d435007151f1b - languageName: node - linkType: hard - -"utility-types@npm:^3.10.0": - version: 3.11.0 - resolution: "utility-types@npm:3.11.0" - checksum: 10c0/2f1580137b0c3e6cf5405f37aaa8f5249961a76d26f1ca8efc0ff49a2fc0e0b2db56de8e521a174d075758e0c7eb3e590edec0832eb44478b958f09914920f19 - languageName: node - linkType: hard - -"uuid@npm:^13.0.2": - version: 13.0.2 - resolution: "uuid@npm:13.0.2" - bin: - uuid: dist-node/bin/uuid - checksum: 10c0/32c7ee84fa7c7966cc09b3a1514a752a8e2f609f15c00033fbaedc0255d577d1877b839f11ee537f37e587bbc620bbb98c3b3a1482931b8ed47d79497cd7a7cd - languageName: node - linkType: hard - -"vite-tsconfig-paths@npm:^4.2.1": - version: 4.3.2 - resolution: "vite-tsconfig-paths@npm:4.3.2" - dependencies: - debug: "npm:^4.1.1" - globrex: "npm:^0.1.2" - tsconfck: "npm:^3.0.3" - peerDependencies: - vite: "*" - peerDependenciesMeta: - vite: - optional: true - checksum: 10c0/f390ac1d1c3992fc5ac50f9274c1090f8b55ab34a89ea88893db9a6924a3b26c9f64bc1163615150ad100749db73b6b2cf1d57f6cd60df6e762ceb5b8ad30024 - languageName: node - linkType: hard - -"vite@npm:^6.0.0 || ^7.0.0 || ^8.0.0": - version: 8.0.16 - resolution: "vite@npm:8.0.16" - dependencies: - fsevents: "npm:~2.3.3" - lightningcss: "npm:^1.32.0" - picomatch: "npm:^4.0.4" - postcss: "npm:^8.5.15" - rolldown: "npm:1.0.3" - tinyglobby: "npm:^0.2.17" - peerDependencies: - "@types/node": ^20.19.0 || >=22.12.0 - "@vitejs/devtools": ^0.1.18 - esbuild: ^0.27.0 || ^0.28.0 - jiti: ">=1.21.0" - less: ^4.0.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: ">=0.54.8" - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - dependenciesMeta: - fsevents: - optional: true - peerDependenciesMeta: - "@types/node": - optional: true - "@vitejs/devtools": - optional: true - esbuild: - optional: true - jiti: - optional: true - less: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - bin: - vite: bin/vite.js - checksum: 10c0/d75be3fbe2f63e6a8145325970338afaf0dd4d96ba9175c13f9a286fd5f95afc489401b693e4fa6c0899a4dd0e137be91cdf9401a40a635563911ad5036e3467 - languageName: node - linkType: hard - -"vitest@npm:^4.1.9": - version: 4.1.9 - resolution: "vitest@npm:4.1.9" - dependencies: - "@vitest/expect": "npm:4.1.9" - "@vitest/mocker": "npm:4.1.9" - "@vitest/pretty-format": "npm:4.1.9" - "@vitest/runner": "npm:4.1.9" - "@vitest/snapshot": "npm:4.1.9" - "@vitest/spy": "npm:4.1.9" - "@vitest/utils": "npm:4.1.9" - es-module-lexer: "npm:^2.0.0" - expect-type: "npm:^1.3.0" - magic-string: "npm:^0.30.21" - obug: "npm:^2.1.1" - pathe: "npm:^2.0.3" - picomatch: "npm:^4.0.3" - std-env: "npm:^4.0.0-rc.1" - tinybench: "npm:^2.9.0" - tinyexec: "npm:^1.0.2" - tinyglobby: "npm:^0.2.15" - tinyrainbow: "npm:^3.1.0" - vite: "npm:^6.0.0 || ^7.0.0 || ^8.0.0" - why-is-node-running: "npm:^2.3.0" - peerDependencies: - "@edge-runtime/vm": "*" - "@opentelemetry/api": ^1.9.0 - "@types/node": ^20.0.0 || ^22.0.0 || >=24.0.0 - "@vitest/browser-playwright": 4.1.9 - "@vitest/browser-preview": 4.1.9 - "@vitest/browser-webdriverio": 4.1.9 - "@vitest/coverage-istanbul": 4.1.9 - "@vitest/coverage-v8": 4.1.9 - "@vitest/ui": 4.1.9 - happy-dom: "*" - jsdom: "*" - vite: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - "@edge-runtime/vm": - optional: true - "@opentelemetry/api": - optional: true - "@types/node": - optional: true - "@vitest/browser-playwright": - optional: true - "@vitest/browser-preview": - optional: true - "@vitest/browser-webdriverio": - optional: true - "@vitest/coverage-istanbul": - optional: true - "@vitest/coverage-v8": - optional: true - "@vitest/ui": - optional: true - happy-dom: - optional: true - jsdom: - optional: true - vite: - optional: false - bin: - vitest: ./vitest.mjs - checksum: 10c0/1ac80ef4991be82822a52aea48415f1bc64ddf8fd88ee24c172ec368f1d480fefacbde622c3c951982f7961a1d07313e18deaafc774d29e42ad6f6ffa63334a7 - languageName: node - linkType: hard - -"webidl-conversions@npm:^3.0.0": - version: 3.0.1 - resolution: "webidl-conversions@npm:3.0.1" - checksum: 10c0/5612d5f3e54760a797052eb4927f0ddc01383550f542ccd33d5238cfd65aeed392a45ad38364970d0a0f4fea32e1f4d231b3d8dac4a3bdd385e5cf802ae097db - languageName: node - linkType: hard - -"whatwg-url@npm:^5.0.0": - version: 5.0.0 - resolution: "whatwg-url@npm:5.0.0" - dependencies: - tr46: "npm:~0.0.3" - webidl-conversions: "npm:^3.0.0" - checksum: 10c0/1588bed84d10b72d5eec1d0faa0722ba1962f1821e7539c535558fb5398d223b0c50d8acab950b8c488b4ba69043fd833cc2697056b167d8ad46fac3995a55d5 - languageName: node - linkType: hard - -"which@npm:^6.0.0": - version: 6.0.1 - resolution: "which@npm:6.0.1" - dependencies: - isexe: "npm:^4.0.0" - bin: - node-which: bin/which.js - checksum: 10c0/7e710e54ea36d2d6183bee2f9caa27a3b47b9baf8dee55a199b736fcf85eab3b9df7556fca3d02b50af7f3dfba5ea3a45644189836df06267df457e354da66d5 - languageName: node - linkType: hard - -"why-is-node-running@npm:^2.3.0": - version: 2.3.0 - resolution: "why-is-node-running@npm:2.3.0" - dependencies: - siginfo: "npm:^2.0.0" - stackback: "npm:0.0.2" - bin: - why-is-node-running: cli.js - checksum: 10c0/1cde0b01b827d2cf4cb11db962f3958b9175d5d9e7ac7361d1a7b0e2dc6069a263e69118bd974c4f6d0a890ef4eedfe34cf3d5167ec14203dbc9a18620537054 - languageName: node - linkType: hard - -"widest-line@npm:^6.0.0": - version: 6.0.0 - resolution: "widest-line@npm:6.0.0" - dependencies: - string-width: "npm:^8.1.0" - checksum: 10c0/735f1fdcd97fe765a07bb8b5e73c020bed8e53ab34e83ce0ef01693ba3c914d9e7977fe5f5facf0d0b670297a82dd5e376d3efa0896860dfcdaf7cd6924c0fb7 - languageName: node - linkType: hard - -"wrap-ansi@npm:^9.0.0": - version: 9.0.2 - resolution: "wrap-ansi@npm:9.0.2" - dependencies: - ansi-styles: "npm:^6.2.1" - string-width: "npm:^7.0.0" - strip-ansi: "npm:^7.1.0" - checksum: 10c0/3305839b9a0d6fb930cb63a52f34d3936013d8b0682ff3ec133c9826512620f213800ffa19ea22904876d5b7e9a3c1f40682f03597d986a4ca881fa7b033688c - languageName: node - linkType: hard - -"ws@npm:^5.2.0 || ^6.0.0 || ^7.0.0": - version: 7.5.11 - resolution: "ws@npm:7.5.11" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 10c0/7972670b676fb1ccba73b0899ca3c2e04e8c2075629c2614cced7f556536f96a672bbf4619fc5a06c8b8720bb839a47ca88c69c95dc14c9c61a99fbecba1c866 - languageName: node - linkType: hard - -"ws@npm:^6.1.4": - version: 6.2.4 - resolution: "ws@npm:6.2.4" - dependencies: - async-limiter: "npm:~1.0.0" - checksum: 10c0/5c2b9474164f9cb68c7776a1d10b0461c186f3a69bffb1028fca33eba5ab7206a09173fb0b311d6c5a81c8cf148406f8deb0b7d899542ab8ca67407d99717dad - languageName: node - linkType: hard - -"ws@npm:^8.18.0": - version: 8.21.0 - resolution: "ws@npm:8.21.0" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 10c0/ef4a243476283fc49bc7550966c4af4aa0eef56273837211e700de3b664e08604a760cdddcb5ba43c049140e74ccfec5b0ee0bb439e08c2adf9138902fdde5f9 - languageName: node - linkType: hard - -"yallist@npm:^5.0.0": - version: 5.0.0 - resolution: "yallist@npm:5.0.0" - checksum: 10c0/a499c81ce6d4a1d260d4ea0f6d49ab4da09681e32c3f0472dee16667ed69d01dae63a3b81745a24bd78476ec4fcf856114cb4896ace738e01da34b2c42235416 - languageName: node - linkType: hard - -"yaml@npm:^1.10.0": - version: 1.10.3 - resolution: "yaml@npm:1.10.3" - checksum: 10c0/c309ff85a0a569a981d71ab9cf0fef68672a16b9cdf40639d1c3b30034f6cd16ee428602bd6d64ecf006f8c8bee499023cac236538f79898aa99fb5db529a2ed - languageName: node - linkType: hard - -"yoga-layout@npm:~3.2.1": - version: 3.2.1 - resolution: "yoga-layout@npm:3.2.1" - checksum: 10c0/9001e51be993c85e03757e5a04a2b61b8b30c9e5a7865d0156ca87a6431a3b717d51eb4990bfe588189fcfeac688dd9c3de707bbd50d1c344a84e63974cc54a8 - languageName: node - linkType: hard - -"zen-observable-ts@npm:^0.8.21": - version: 0.8.21 - resolution: "zen-observable-ts@npm:0.8.21" - dependencies: - tslib: "npm:^1.9.3" - zen-observable: "npm:^0.8.0" - checksum: 10c0/fe4a02f862b5f7e8ae0f86230c37b84c7d5611f5c206981afb4043e732d04cf7067a6cbe1ba82d20f18b735a3387937195a12542158a631d308ae3959a1d93c4 - languageName: node - linkType: hard - -"zen-observable@npm:^0.8.0": - version: 0.8.15 - resolution: "zen-observable@npm:0.8.15" - checksum: 10c0/71cc2f2bbb537300c3f569e25693d37b3bc91f225cefce251a71c30bc6bb3e7f8e9420ca0eb57f2ac9e492b085b8dfa075fd1e8195c40b83c951dd59c6e4fbf8 - languageName: node - linkType: hard