PageSourceSearch

https://sindhuja.notion.site/_assets/meeting-notes-failover-recovery-8aac3dcfc286c9d8.js

js sindhuja.notion.site collected 2026-10-09 23:24:50 UTC 30,151 bytes, 1 lines download raw bytes

1"use strict";(globalThis.rspackChunknotion_next=globalThis.rspackChunknotion_next||[]).push([[12968],{767159(e,t,r){let o;r(176765),r(851344),r(866491);class a{remoteMeetingNotesFailoverWorker=r(216430).LV(new Worker(new URL(r.p+r.u(77527),r.b),Object.assign({},{type:"module"},{type:void 0})));async createSession(e){return this.remoteMeetingNotesFailoverWorker.createSession(e)}async appendAudio(e){return this.remoteMeetingNotesFailoverWorker.appendAudio(e)}async finalizeSession(e){return this.remoteMeetingNotesFailoverWorker.finalizeSession(e)}async listSessions(){return this.remoteMeetingNotesFailoverWorker.listSessions()}async listSessionsForUserAndBlock(e){return(0,r(480534).LF)({sessionKeys:await this.listSessions(),userId:e.userId,blockId:e.blockId})}async readMetadata(e){return this.remoteMeetingNotesFailoverWorker.readMetadata(e)}async readAudioBuffer(e){return this.remoteMeetingNotesFailoverWorker.readAudioBuffer(e)}async getSessionSize(e){return this.remoteMeetingNotesFailoverWorker.getSessionSize(e)}async writeCoordinatorText(e){return this.remoteMeetingNotesFailoverWorker.writeCoordinatorText(e)}async deleteSession(e){return this.remoteMeetingNotesFailoverWorker.deleteSession(e)}async close(){return this.remoteMeetingNotesFailoverWorker.close()}}function i(){return o||((0,r(894062).n)()?o=new a:void 0)}(0,r(887789).exposeDebugEnvironmentValue)("OPFSMeetingNotesFailoverCache",()=>i()),r.d(t,{getOPFSMeetingNotesFailoverCache:()=>i})},102543(e,t,r){r.r(t),r(533958),r(435368),r(244767),r(479534),r(718602),r(430278),r(452929),r(953716),r(946415),r(972733),r(417290),r(890015);var o=()=>r(480534);let a=r(286762).nD;class i extends Error{stage;retryable;unrecoverableReason;constructor(e){super(e.message),this.name="MeetingNotesFailoverRecoveryError",this.stage=e.stage,this.retryable=e.retryable,this.unrecoverableReason=e.unrecoverableReason}}async function s(e){let t,o={environment:e.environment,blockStore:e.blockStore,requestedDictationSessionId:e.dictationSessionId,trigger:e.trigger,stateUpdatedFrom:e.stateUpdatedFrom??"circuit_breaker_failover",minSessionActivityAtMs:e.minSessionActivityAtMs,onRecoveryStateCommitted:e.onRecoveryStateCommitted,dependencies:e.dependencies},a=e=>{var t,r;return t=o,r=e,F({kind:"recovery_attempt",trigger:t.trigger,blockId:t.blockStore.id,spaceId:t.blockStore.pointer.spaceId,dictationSessionId:t.requestedDictationSessionId,result:r.result,reclaimed:r.reclaimed??!1,recoveredVia:r.recoveredVia,stateBefore:r.stateBefore,stateAfter:r.stateAfter}),e.result};if(!(0,r(540544).pX)({environment:o.environment,blockStore:o.blockStore}))return a({result:{outcome:"skipped",reason:"gate_disabled"}});let s=o.environment.currentUser.id;if(void 0===s)return a({result:{outcome:"failed",error:new i({message:"Cannot recover failover audio without a current user",stage:"waiting_for_finalized_opfs",retryable:!1})}});try{t=await n(o,s)}catch(e){return a({result:{outcome:"failed",error:I({error:e,stage:"waiting_for_finalized_opfs"})}})}try{let e=await (0,r(681711).BS)(t.sessionKey,()=>l(o,t));if("claim_held_elsewhere"===e)return a({result:{outcome:"skipped",reason:"claimed_elsewhere"}});return a(e)}catch(e){return a({result:{outcome:"failed",error:I({error:e,stage:"waiting_for_finalized_opfs"})}})}}async function n(e,t){var o,a;let{blockStore:s,requestedDictationSessionId:n,trigger:l,dependencies:d}=e,c=(null==d?void 0:d.cache)??k(),u=(0,r(741899).Z$)(s);if(void 0===u)throw new i({message:"Cannot recover failover audio without a transcription block space",stage:"waiting_for_finalized_opfs",retryable:!1});return b({cache:c,userId:t,blockId:s.id,spaceId:u,dictationSessionId:n,allowBlockSessionFallback:"cutover_stop"===l,...void 0!==e.minSessionActivityAtMs?{minSessionActivityAtMs:e.minSessionActivityAtMs}:{},now:(null==d||null==(o=d._internalsForTests)?void 0:o.now)??Date.now,sleep:(null==d||null==(a=d._internalsForTests)?void 0:a.sleep)??r(419681).Mb})}async function l(e,t){var o,a,i,s;let n,{sessionKey:l}=t,c=(0,r(741899).Z$)(e.blockStore),u=await (0,r(681711).cB)(l),f=(null==u?void 0:u.state)??"pending";
1switch(f){case"recovered":return{result:{outcome:"skipped",reason:"already_recovered"},stateBefore:f,stateAfter:f};case"failed_permanent":return{result:{outcome:"skipped",reason:"permanently_failed"},stateBefore:f,stateAfter:f}}let g="in_progress"===f;if(g&&(o=e.blockStore,a=t.dictationSessionId,(null==(n=null==(i=o.getFormat())?void 0:i.transcription_state)?void 0:n.state)==="recorded_audio_transcribing"&&(null==(s=n.failover_recovery)?void 0:s.dictation_session_id)===a))return await (0,r(681711).Z)({sessionKey:l,trigger:e.trigger,outcome:"recovered",spaceId:c,now:Date.now(),alreadyHoldingSessionLock:!0}),{result:{outcome:"recovered"},reclaimed:g,recoveredVia:"block_state",stateBefore:f,stateAfter:"recovered"};await (0,r(681711).xn)({sessionKey:l,trigger:e.trigger,spaceId:c,now:Date.now(),alreadyHoldingSessionLock:!0});try{return await d({environment:e.environment,blockStore:e.blockStore,dictationSessionId:e.requestedDictationSessionId,resolvedSessionTarget:t,trigger:e.trigger,stateUpdatedFrom:e.stateUpdatedFrom,...void 0!==e.minSessionActivityAtMs?{minSessionActivityAtMs:e.minSessionActivityAtMs}:{},...void 0!==e.onRecoveryStateCommitted?{onRecoveryStateCommitted:e.onRecoveryStateCommitted}:{},...void 0!==e.dependencies?{dependencies:e.dependencies}:{}}),await (0,r(681711).Z)({sessionKey:l,trigger:e.trigger,outcome:"recovered",spaceId:c,now:Date.now(),alreadyHoldingSessionLock:!0}),{result:{outcome:"recovered"},reclaimed:g,recoveredVia:"pipeline",stateBefore:f,stateAfter:"recovered"}}catch(a){let t=I({error:a,stage:"waiting_for_finalized_opfs"}),o=!t.retryable&&void 0!==t.unrecoverableReason;return await (0,r(681711).Z)({sessionKey:l,trigger:e.trigger,outcome:o?"failed_permanent":"failed_retryable",...void 0!==t.unrecoverableReason?{unrecoverableReason:t.unrecoverableReason}:{},spaceId:c,now:Date.now(),alreadyHoldingSessionLock:!0}),{result:{outcome:"failed",error:t},reclaimed:g,stateBefore:f,stateAfter:o?"failed_permanent":"pending"}}}async function d(e){var t,o,a,s,n,l,d;let{environment:c,blockStore:y,dictationSessionId:h,trigger:S,minSessionActivityAtMs:A,resolvedSessionTarget:M,stateUpdatedFrom:R="circuit_breaker_failover",onRecoveryStateCommitted:E,onStageChange:T,onUploadProgress:D,dependencies:U}=e,W=(null==U||null==(t=U._internalsForTests)?void 0:t.now)??Date.now,L=(null==U||null==(o=U._internalsForTests)?void 0:o.sleep)??r(419681).Mb,C=(null==U||null==(a=U._internalsForTests)?void 0:a.uploadStallTimeoutMs)??6e4,B=null==U||null==(s=U._internalsForTests)?void 0:s.uploadProgressTimeoutMs,x=null==U||null==(n=U._internalsForTests)?void 0:n.uploadCeilingMs,N=(null==U?void 0:U.uploadRecordedAudio)??r(310196).uploadRecordedAudioToTemporary,q=(null==U?void 0:U.enqueueTranscribeAudioTask)??v,z=c.currentUser.id,V=(0,r(741899).Z$)(y),P=W(),O={currentStage:"waiting_for_finalized_opfs",resolvedDictationSessionId:h,usedBlockSessionFallback:!1},X=!1,K=e=>{(function(e){switch(e){case"waiting_for_finalized_opfs":case"encoding_wav":case"uploading_to_s3":case"enqueuing_transcribe_audio":return!0;case"transcribing":case"failed_retryable":case"failed_permanent":return!1}})(e)&&(O.currentStage=e),null==T||T(e)};try{K("waiting_for_finalized_opfs");let e=(null==U?void 0:U.cache)??k();if(void 0===z)throw new i({message:"Cannot recover failover audio without a current user",stage:O.currentStage,retryable:!1});if(void 0===V)throw new i({message:"Cannot recover failover audio without a transcription block space",stage:O.currentStage,retryable:!1});if(!(0,r(540544).pX)({environment:c,blockStore:y}))throw new i({message:"Meeting Notes failover recovery is not enabled",stage:O.currentStage,retryable:!1});if(!y.isMeetingNoteBlock())throw new i({message:"Target block is not a transcription block",stage:O.currentStage,retryable:!1});let t=M??await b({cache:e,userId:z,blockId:y.id,spaceId:V,dictationSessionId:h,now:W,sleep:L,allowBlockSessionFallback:"cutover_stop"===S,minSessionActivityAtMs:A});O.resolvedDictationSessionId=t.dictationSessionId,O.usedBlockSessionFallback=t.usedBlockSessionFallback,d={trigger:S,blockId:y.id,spaceId:V,dictationSessionId:O.resolvedDictationSessionId,requestedDictationSessionId:h,usedBlockSe
1ssionFallback:O.usedBlockSessionFallback},(0,r(104310).u)({event:{eventName:"audio_processor.client.failover_recovery_started",eventProperties:{trigger:d.trigger,block_id:d.blockId,space_id:d.spaceId,dictation_session_id:d.dictationSessionId,requested_dictation_session_id:d.requestedDictationSessionId,used_block_session_fallback:d.usedBlockSessionFallback}}}),m({environment:c,blockStore:y,userId:z,dictationSessionId:O.resolvedDictationSessionId,result:"in_progress",timestamp:W(),from:R}),X=!0,null==E||E();let o=await w({cache:e,sessionKey:t.sessionKey,blockId:y.id,spaceId:V,dictationSessionId:O.resolvedDictationSessionId,now:W,sleep:L});O.metadata=o,O.opfsBytesWritten=o.bytesWritten,K("encoding_wav");let a=await e.readAudioBuffer(t.sessionKey),s=(0,r(600644).Fw)({metadata:o,pcmBuffer:a});if(O.wavFileSizeBytes=s.byteLength,K("uploading_to_s3"),!(0,r(17806).k)())throw new i({message:"Cannot upload failover audio while the browser is offline",stage:"uploading_to_s3",retryable:!0});let n=W(),v=await u({startUpload:e=>N({environment:c,spaceId:V,file:s.file,signal:e.signal,onProgress:e.onProgress}),onProgress:D,stallTimeoutMs:C,progressTimeoutMs:B??g(s.byteLength),ceilingMs:x??f(s.byteLength),now:(null==U||null==(l=U._internalsForTests)?void 0:l.now)??(()=>performance.now()),sleep:L});O.uploadDurationMs=W()-n,F({kind:"stage_succeeded",trigger:S,stage:"uploading_to_s3",metadata:o,requestedDictationSessionId:h,attempt:O}),K("enqueuing_transcribe_audio");let I=W(),T=await q({environment:c,audioUrls:[v.fileUrl],blockStore:y,recordingStartedAtEpochMs:o.createdAt,spaceId:V});return O.enqueueDurationMs=W()-I,O.enqueueTaskStatusObserved=T.taskStatusObserved,F({kind:"stage_succeeded",trigger:S,stage:"enqueuing_transcribe_audio",metadata:o,requestedDictationSessionId:h,attempt:O}),K("transcribing"),p({trigger:S,outcome:"succeeded",stageReached:"transcribing",blockId:y.id,spaceId:V,dictationSessionId:O.resolvedDictationSessionId,durationMs:W()-P,bytesUploaded:O.wavFileSizeBytes,audioDurationMs:_(o)}),F({kind:"outcome_succeeded",trigger:S,metadata:o,requestedDictationSessionId:h,attempt:O}),{sessionKey:t.sessionKey,metadata:o,wavFileName:s.fileName,wavFileSizeBytes:s.byteLength,uploadedFileUrl:v.fileUrl,enqueueTaskStatusObserved:T.taskStatusObserved}}catch(r){let e=I({error:r,stage:O.currentStage});X&&void 0!==z&&m({environment:c,blockStore:y,userId:z,dictationSessionId:O.resolvedDictationSessionId,result:"failed",timestamp:W(),from:R,failure:e.retryable?{retryable:!0}:{retryable:!1,unrecoverableReason:e.unrecoverableReason}});let t=e.retryable?"failed_retryable":"failed_permanent";throw null==T||T(t),p({trigger:S,outcome:"failed",stageReached:e.stage,blockId:y.id,spaceId:V,dictationSessionId:O.resolvedDictationSessionId,durationMs:W()-P,bytesUploaded:O.wavFileSizeBytes,audioDurationMs:void 0!==O.metadata?_(O.metadata):void 0,retryable:e.retryable,unrecoverableReason:e.unrecoverableReason}),F({kind:"outcome_failed",trigger:S,metadata:O.metadata,blockId:y.id,spaceId:V,requestedDictationSessionId:h,attempt:O,error:e}),e}}function c(e){let{audioUrls:t,blockId:o,recordingStartedAtEpochMs:a,spaceId:i,userId:s}=e;return{audioUrls:t,transcriptionBlockPointer:{table:"block",id:o,spaceId:i},language:(0,r(400986).getDictationLanguageValue)((0,r(533096).getPreferredDictationLanguage)(s)),kickoffSummary:!0,keepExistingTranscription:!1,recordingStartedAtEpochMs:a}}async function u(e){let t,o,{startUpload:a,onProgress:s,stallTimeoutMs:n,progressTimeoutMs:l,ceilingMs:d,now:c,sleep:u}=e,f=new AbortController,g=c(),v=g,m=g,p=a({signal:f.signal,onProgress:e=>{v=c(),(void 0===t||e>t)&&(t=e,m=v),null==s||s(e)}}).then(e=>{o={result:e}},e=>{o={error:e}}),_=e=>{if("error"in e)throw e.error;return e.result},b=e=>{throw new i({message:`Failover audio upload ${e} (${c()-g}ms elapsed, last progress ${t??0}%)`,stage:"uploading_to_s3",retryable:!0})},y=(0,r(419681).qE)({value:1e3,min:1,max:Math.max(n,1)});try{for(;c()-g<d;){if(await Promise.race([p,u(y)]),void 0!==o)return _(o);let e=c()-v;e>=n&&b(`stalled: no progress events for ${e}ms`);let t=c()-m;t>=l&&b(`stalled: no new progress for ${t}ms`)}if(void 0!==o)return _(o);return b(`exceeded its ${d}ms ceiling`)}finally{(void 0===o||"error"in o)&&f.abort()}}function f(e){return(0,r(419681).qE)({value:e/16e3*1e3,min:12e4,max:a})}function g(e){return Math.max(e/100/16e3*2e3,6e4)}async function v(e){let{environment:t,audioUrls:o,blockStore:a,recordingStartedAtEpoc
1hMs:i,spaceId:s}=e,n=t.currentUser.id,l=c({audioUrls:o,blockId:a.id,recordingStartedAtEpochMs:i,spaceId:s,userId:n}),d=await t.api.callCellCompatibleApi({eventName:"enqueueTask",environment:t,data:{task:{eventName:r(284620).d,request:l,cellRouting:{spaceIds:[s]}}},cellNavigation:{spaceId:s}});if("failed"===d.type)throw d.error;return r(259242).fJ.add(d.data.taskId),{taskStatusObserved:!1}}function m(e){let{environment:t,blockStore:o,userId:a,dictationSessionId:i,result:s,timestamp:n,from:l,failure:d}=e;(0,r(699427).KX)({environment:t,blockStore:o,state:{state:"recorded_audio_file_uploading",result:s,timestamp:n,transcriber_id:a,...void 0!==i?{failover_recovery:{dictation_session_id:i,...void 0!==d?{retryable:d.retryable,...void 0!==d.unrecoverableReason?{unrecoverable_reason:d.unrecoverableReason}:{}}:{}}}:{}},from:l})}function p(e){(0,r(104310).u)({event:{eventName:"audio_processor.client.failover_recovery_completed",eventProperties:{trigger:e.trigger,outcome:e.outcome,stage_reached:e.stageReached,block_id:e.blockId,space_id:e.spaceId,dictation_session_id:e.dictationSessionId,duration_ms:e.durationMs,bytes_uploaded:e.bytesUploaded,audio_duration_ms:e.audioDurationMs,...void 0!==e.retryable?{retryable:e.retryable}:{},...void 0!==e.unrecoverableReason?{unrecoverable_reason:e.unrecoverableReason}:{}}}})}function _(e){return e.bytesWritten/Float32Array.BYTES_PER_ELEMENT/e.channels/e.sampleRate*1e3}async function b(e){let{cache:t,userId:r,blockId:a,spaceId:i,dictationSessionId:s,allowBlockSessionFallback:n,minSessionActivityAtMs:l,now:d,sleep:c}=e,u=(0,o().wm)({userId:r,blockId:a,dictationSessionId:s}),f={sessionKey:u,dictationSessionId:s,usedBlockSessionFallback:!1};return n?await S({timeoutMs:5e3,intervalMs:250,now:d,sleep:c,getResult:async()=>{let e;try{e=await t.listSessionsForUserAndBlock({userId:r,blockId:a})}catch(e){return F({kind:"session_resolution_skipped",blockId:a,spaceId:i,dictationSessionId:s,error:e}),f}let o=await y({cache:t,sessionKeys:e,blockId:a,spaceId:i,requestedDictationSessionId:s,minSessionActivityAtMs:l});if(void 0!==o)return{sessionKey:o.sessionKey,dictationSessionId:o.metadata.dictationSessionId,usedBlockSessionFallback:o.sessionKey!==u}}})??f:f}async function y(e){let{cache:t,sessionKeys:r,blockId:a,spaceId:i,requestedDictationSessionId:s,minSessionActivityAtMs:n}=e,l=[];for(let e of r){let r=(0,o().dz)(e);if(r instanceof Error){F({kind:"session_resolution_skipped",blockId:a,spaceId:i,dictationSessionId:s,error:r});continue}try{let[o,s]=await Promise.all([t.readMetadata(e),t.getSessionSize(e)]);if(void 0!==n&&h({sessionKey:e,metadata:o,sizeBytes:s})<n)continue;o.blockId===a&&o.spaceId===i&&o.dictationSessionId===r.dictationSessionId&&s>0&&l.push({sessionKey:e,metadata:o,sizeBytes:s})}catch(e){F({kind:"session_resolution_skipped",blockId:a,spaceId:i,dictationSessionId:s,error:e})}}return l.sort((e,t)=>h(t)-h(e)),l[0]}function h(e){return e.metadata.finalFlushAt??e.metadata.lastWriteAt}async function w(e){let{cache:t,sessionKey:r,blockId:o,spaceId:a,dictationSessionId:s,now:n,sleep:l}=e,d=await S({timeoutMs:15e3,intervalMs:250,now:n,sleep:l,getResult:async()=>{let e;try{e=await t.readMetadata(r)}catch(e){throw new i({message:e instanceof Error?e.message:"Failover OPFS session is not readable",stage:"waiting_for_finalized_opfs",retryable:!1,unrecoverableReason:"opfs_session_missing"})}if(function(e){let{metadata:t,blockId:r,spaceId:o,dictationSessionId:a}=e;if(t.blockId!==r||t.spaceId!==o||t.dictationSessionId!==a)throw new i({message:"Failover audio metadata does not match the recovery target",stage:"waiting_for_finalized_opfs",retryable:!1,unrecoverableReason:"opfs_metadata_invalid"})}({metadata:e,blockId:o,spaceId:a,dictationSessionId:s}),e.endedCleanly&&void 0!==e.finalFlushAt)return e}});if(void 0===d)throw new i({message:"Failover audio has not finished its final OPFS flush",stage:"waiting_for_finalized_opfs",retryable:!0});return d}async function S(e){let{timeoutMs:t,intervalMs:r,now:o,sleep:a,getResult:i}=e,s=o(),n=0;for(;n<t;){let e=await i();if(void 0!==e)return e;if((n=o()-s)>=t)break;await a(r)}}function k(){let e=(0,r(767159).getOPFSMeetingNotesFailoverCache)();if(void 0===e)throw new i({message:"OPFS failover cache is not available in this browser",stage:"waiting_for_finalized_opfs",retryable:!1});return e}function I(e){let{error:t,stage:o}=e;return t instanceof i?t:new i(t instanceof r(310196).RecordedAudioValidationError?{message:t.message,stage:o,retryable:!1,unrecoverableReason:function(e){switch(e.reason){case"file_size_exceeded":return"audio_exceeds_size_limit";case"not_audio_file":return;default:e.reason;return}}(t)}:{message:t instanceof Error?t.message:"Failover recovery failed",stage:o,retryable:"uploading_to_s3"===o||"enqueuing_transcribe_audio"===o})}function F(e){switch(e.kind){case"stage_succeeded":(0,r(208318).t)().log({level:"info",from:"meetingNotesFailoverRecovery",type:"audio_processor.client.failover_upload_progress",data:{miscDataToConvertToString:{...A(e.attempt,e.metadata),trigger:e.trigger,stage:e.stage,status:"succeeded",requested_dictation_session_id:e.requestedDictationSessionId}}});return;case"outcome_succeeded":(0,r(208318).t)().log({level:"info",from:"meetingNotesFailoverRecovery",type:"audio_processor.client.failover_upload_outcome",data:{miscDataToConvertToString:{...A(e.attempt,e.metadata),trigger:e.trigger,outcome:"success",requested_dictation_session_id:e.requestedDictationSessionId}}});return;case"outcome_failed":(0,r(208318).t)().log({level:"error",from:"meetingNotesFailoverRecovery",type:"audio_processor.client.failover_upload_outcome",error:(0,r(952977).convertErrorToLog)(e.error),data:{miscDataToConvertToString:{...A(e.attempt,e.metadata,{blockId:e.blockId,spaceId:e.spaceId}),trigger:e.trigger,outcome:"failed",requested_dictation_session_id:e.requestedDictationSessionId,failure_stage:e.error.stage,error_type:e.error.name,is_retryable:e.error.retryable,unrecoverable_reason:e.error.unrecoverableReason}}});break;
1case"recovery_attempt":(0,r(208318).t)().log({level:"failed"===e.result.outcome?"error":"info",from:"meetingNotesFailoverRecovery",type:"audio_processor.client.failover_recovery_attempt",..."failed"===e.result.outcome?{error:(0,r(952977).convertErrorToLog)(e.result.error)}:{},data:{miscDataToConvertToString:{trigger:e.trigger,block_id:e.blockId,space_id:e.spaceId,dictation_session_id:e.dictationSessionId,outcome:e.result.outcome,skip_reason:"skipped"===e.result.outcome?e.result.reason:void 0,failure_stage:"failed"===e.result.outcome?e.result.error.stage:void 0,is_retryable:"failed"===e.result.outcome?e.result.error.retryable:void 0,unrecoverable_reason:"failed"===e.result.outcome?e.result.error.unrecoverableReason:void 0,reclaimed:e.reclaimed,recovered_via:e.recoveredVia,state_before:e.stateBefore,state_after:e.stateAfter}}});return;case"session_resolution_skipped":(0,r(208318).t)().log({level:"warning",from:"meetingNotesFailoverRecovery",type:"audio_processor.client.failover_session_resolution_skipped",error:(0,r(952977).convertErrorToLog)(e.error),data:{miscDataToConvertToString:{block_id:e.blockId,space_id:e.spaceId,dictation_session_id:e.dictationSessionId}}});break;default:(0,r(48697).HB)(e)}}function A(e,t,r){return{dictation_session_id:(null==t?void 0:t.dictationSessionId)??e.resolvedDictationSessionId,block_id:(null==t?void 0:t.blockId)??(null==r?void 0:r.blockId),space_id:(null==t?void 0:t.spaceId)??(null==r?void 0:r.spaceId),used_block_session_fallback:e.usedBlockSessionFallback,opfs_bytes_written:e.opfsBytesWritten,wav_file_size_bytes:e.wavFileSizeBytes,upload_duration_ms:e.uploadDurationMs,enqueue_duration_ms:e.enqueueDurationMs,enqueue_task_status_observed:e.enqueueTaskStatusObserved}}r.d(t,{MeetingNotesFailoverRecoveryError:()=>i,attemptFailoverRecovery:()=>s,createTranscribeAudioRecoveryRequest:()=>c,recoverMeetingNotesFailoverSession:()=>d},{TEST_ONLY_computeUploadCeilingMs:f,TEST_ONLY_computeUploadProgressTimeoutMs:g})},310196(e,t,r){r.r(t),r(533958);class o extends Error{reason;constructor(e,t){super(e),this.name="RecordedAudioValidationError",this.reason=t}}async function a(e){let{environment:t,spaceId:a,file:i,signal:s,onProgress:n,onError:l}=e,d=function(e){let{file:t,spaceId:a}=e;if(t.size>0x40000000){let e=new o("Audio file exceeds 1 GB limit","file_size_exceeded");return function(e){let{error:t,file:o,reason:a,spaceId:i}=e;(0,r(208318).t)().log({level:"error",from:"meetingNotesUploadActions",type:"recordedAudioTemporaryUploadRejected",error:(0,r(952977).convertErrorToLog)(t),data:{miscDataToConvertToString:{reason:a,space_id:i,file_size_bytes:o.size,max_file_size_bytes:0x40000000,content_type:o.type,file_extension:function(e){let t=e.lastIndexOf(".");if(-1!==t&&t!==e.length-1)return e.slice(t+1).toLowerCase()}(o.name)}}})}({error:e,file:t,reason:"file_size_exceeded",spaceId:a}),e}if(!function(e,t){if(e&&e.startsWith("audio/"))return!0;let r=t.toLowerCase();return r.endsWith(".m4a")||r.endsWith(".aac")||r.endsWith(".mp4")||r.endsWith(".mp3")||r.endsWith(".wav")||r.endsWith(".caf")||r.endsWith(".ogg")}(t.type,t.name))return new o("Selected file does not appear to be an audio file","not_audio_file")}({file:i,spaceId:a});if(void 0!==d)throw null==l||l(d),d;return await new Promise((e,o)=>{r(401558).Zn({environment:t,files:[i],bucket:"temporary",bypassFreeFileUploadLimitCheck:!0,spaceId:a,uploadContext:"transcription_audio",signal:s,onBatchProgress:e=>{"number"==typeof e.progressPercent&&(null==n||n(e.progressPercent))},onBatchCompleteWithToken:t=>{let r=t[0];r?e({fileUrl:r.fileUrl,signedToken:r.signedToken}):o(Error("Upload failed: no URL returned"))},onBatchError:e=>{null==l||l(e),o(e)}})})}r.d(t,{RecordedAudioValidationError:()=>o,uploadRecordedAudioToTemporary:()=>a})},228327(e,t,r){var o=()=>r(101787);class a extends o().WX{constructor(e){super({level:"error",status:500,name:"DictationAudioRecorderFailedError",message:e||"Audio recorder failed",retryable:!1})}}class i extends o().WX{constructor(e){super({level:"error",status:500,name:"DictationAudioCaptureStalledError",message:e||"Audio capture stalled: no PCM frames received",retryable:!1})}}o().WX;class s extends o().WX{constructor(){super({level:"error",status:500,name:"DictationSystemAudioHardwareError",message:"System audio hardware error",retryable:!1})}}class n extends o().WX{constructor(){super({level:"error",status:500,name:"DictationStartTimeoutError",message:"Dictation start timeout",retryable:!0})}}class l extends o().WX{constructor(e){super({level:"error",status:429,name:"DictationRateLimitError",message:e||"Rate limit exceeded",retryable:!1})}}class d extends o().WX{constructor(e){super({level:"error",status:403,name:"DictationForbiddenError",message:e||"Access forbidden",retryable:!1})}}class c extends o().WX{reason;constructor(e){super({level:"error",status:503,name:"DictationLiveTranscriptionUnrecoverableError",message:e||"Live transcription became unavailable for this session",retryable:!1}),this.reason=e}}class u extends o().WX{constructor(e){super({level:"error",status:403,name:"DictationUpgradeRequiredError",message:e||"Workspace upgrade required",retryable:!1})}}class f extends o().WX{constructor(e,t){super({level:"error",status:t&&(0,r(654070).Mh)(t)?t:500,name:"DictationOpenAIError",message:e,retryable:!0})}}class g extends o().WX{constructor(e){super({level:"error",status:400,name:"DictationMissingUserOrSpaceError",message:e||"Missing user or space information",retryable:!1})}}r.d(t,{$W:()=>s,Dg:()=>u,Dl:()=>i,E6:()=>f,Rv:()=>d,Tn:()=>n,XG:()=>l,d1:()=>a,eY:()=>g,rx:()=>c})},17806(e,t,r){function o(){return"u"<typeof navigator||navigator.onLine}r.d(t,{k:()=>o})},400986(e,t,r){function o(){let e=r(218744).default.checkGate({gateName:"show_beta_dictation_languages"}),t=r(218744).default.checkGate({gateName:"transcription_auto_language_option_enabled"});return Object.entries((0,r(144662).k9)({includeBeta:e,includeAuto:t}))}function a(e){var t;return(null==(t=(0,r(144662).k9)({includeBeta:!0,includeAuto:!0})[e])?void 0:t[1])??"en"}r.r(t),r.d(t,{getDictationLanguageEntries:()=>o,getDictationLanguageValue:()=>a})},600644(e,t,r){r(533958),r(244767),r(479534),r(718602),r(430278),r(452929),r(953716),r(946415),r(972733),r(417290),r(890015),r(730330),r(159952),r(1310);let o=Float32Array.BYTES_PER_ELEMENT;
1class a extends Error{constructor(e){super(e),this.name="MeetingNotesFailoverWavEncodingError"}}function i(e){let{pcmBuffer:t,sampleRate:i,channels:s}=e;!function(e){let{pcmBuffer:t,sampleRate:r,channels:i}=e;if(0===t.byteLength)throw new a("Cannot encode empty failover audio");if(t.byteLength%o!=0)throw new a("Failover audio byte length is not aligned to Float32 samples");if(!Number.isInteger(r)||r<=0)throw new a("Failover audio sample rate must be a positive integer");if(!Number.isInteger(i)||i<=0)throw new a("Failover audio channel count must be a positive integer");if(t.byteLength/o%i!=0)throw new a("Failover audio samples are not aligned to complete channel frames")}({pcmBuffer:t,sampleRate:i,channels:s});let n=new Float32Array(t),l=r(703528).Lh.encodeFloatArrayToPCM16WAV({samples:n,sampleRate:i,numChannels:s});return{buffer:l,byteLength:l.byteLength,sampleCount:n.length,durationMs:n.length/s/i*1e3}}function s(e){let t=[...e.sessions].sort((e,t)=>e.metadata.createdAt-t.metadata.createdAt),r=t[0];if(void 0===r)throw new a("Cannot encode failover audio without sessions");for(let e of t)if(l(e.metadata),e.metadata.sampleRate!==r.metadata.sampleRate||e.metadata.channels!==r.metadata.channels)throw new a("Failover audio sessions have mismatched sample formats");let o=i({pcmBuffer:function(e){if(1===e.length&&void 0!==e[0])return e[0];let t=new Uint8Array(e.reduce((e,t)=>e+t.byteLength,0)),r=0;for(let o of e)t.set(new Uint8Array(o),r),r+=o.byteLength;return t.buffer}(t.map(e=>e.pcmBuffer)),sampleRate:r.metadata.sampleRate,channels:r.metadata.channels}),s=d(r.metadata),n=new File([o.buffer],s,{type:"audio/wav"});return{...o,file:n,fileName:s,orderedDictationSessionIds:t.map(e=>e.metadata.dictationSessionId)}}function n(e){let{metadata:t,pcmBuffer:r}=e;l(t);let o=i({pcmBuffer:r,sampleRate:t.sampleRate,channels:t.channels}),a=d(t),s=new File([o.buffer],a,{type:"audio/wav"});return{...o,file:s,fileName:a}}function l(e){if(1!==e.schemaVersion||e.encoding!==r(20506).AH)throw new a("Failover audio metadata is not supported by the WAV encoder")}function d(e){return`meeting-notes-failover-${e.blockId}-${e.dictationSessionId}.wav`}r.d(t,{Fw:()=>n,g3:()=>s})},284771(e,t,r){var o=()=>r(546605);class a extends o().Store{constructor(){super()}getInitialState(){}}let i=new a;r.d(t,{},{A:i})},703528(e,t,r){r(533958),r(435368),r(244767),r(479534),r(718602);class o{static parseWavHeader(e){if(e.length<44)throw Error("Invalid WAV file: header too short");if("RIFF"!==e.subarray(0,4).toString("ascii"))throw Error("Invalid WAV file: missing RIFF header");if("WAVE"!==e.subarray(8,12).toString("ascii"))throw Error("Invalid WAV file: missing WAVE format");let t=0,r=0,o=0,a=0,i=0,s=!1,n=!1,l=12;for(;l<e.length-8;){let d=e.subarray(l,l+4).toString("ascii"),c=e.readUInt32LE(l+4),u=l+8;if("fmt "===d){if(c<16)throw Error("Invalid WAV file: fmt chunk too small");t=e.readUInt16LE(u+2),r=e.readUInt32LE(u+4),o=e.readUInt32LE(u+8),a=e.readUInt16LE(u+14),s=!0}else if("data"===d){i=c,n=!0;break}l+=8+(c+c%2)}if(!s)throw Error("Invalid WAV file: no fmt chunk found");if(!n)throw Error("Invalid WAV file: no data chunk found");if(0===o)throw Error("Invalid WAV file: byteRate is 0");let d=i/o;return{sampleRate:r,channels:t,bitDepth:a,byteRate:o,dataSize:i,durationSeconds:d}}static convertFloatArrayToPCM16(e){let t=Buffer.alloc(2*e.length);for(let r=0;r<e.length;r++){let o=Math.round(32767*Math.max(-1,Math.min(1,e[r])));t.writeInt16LE(o,2*r)}return t}static readFloatArrayFromFloat32PCM(e){let t=[];for(let r=0;r<=e.length-4;r+=4)try{t.push(e.readFloatLE(r))}catch{t.push(0)}return t}static encodeFloatArrayToWAV({samples:e,sampleRate:t,numChannels:r,bitDepth:o}){let i=o/8,s=r*i,n=new ArrayBuffer(44+e.length*i),l=new DataView(n);return a(l,0,"RIFF"),l.setUint32(4,36+e.length*i,!0),a(l,8,"WAVE"),a(l,12,"fmt "),l.setUint32(16,16,!0),l.setUint16(20,3,!0),l.setUint16(22,r,!0),l.setUint32(24,t,!0),l.setUint32(28,t*s,!0),l.setUint16(32,s,!0),l.setUint16(34,o,!0),a(l,36,"data"),l.setUint32(40,e.length*i,!0),function(e,t,r){for(let o=0;o<r.length;o++,t+=4)e.setFloat32(t,r[o],!0)}(l,44,e),n}
1static encodeFloatArrayToPCM16WAV({samples:e,sampleRate:t,numChannels:r}){let o=2*r,i=2*e.length,s=new ArrayBuffer(44+i),n=new DataView(s);a(n,0,"RIFF"),n.setUint32(4,36+i,!0),a(n,8,"WAVE"),a(n,12,"fmt "),n.setUint32(16,16,!0),n.setUint16(20,1,!0),n.setUint16(22,r,!0),n.setUint32(24,t,!0),n.setUint32(28,t*o,!0),n.setUint16(32,o,!0),n.setUint16(34,16,!0),a(n,36,"data"),n.setUint32(40,i,!0);let l=44;for(let t=0;t<e.length;t+=1){let r=Math.max(-1,Math.min(1,e[t]));n.setInt16(l,Math.round(32767*r),!0),l+=2}return s}}function a(e,t,r){for(let o=0;o<r.length;o++)e.setUint8(t+o,r.charCodeAt(o))}r.d(t,{Lh:()=>o})},284620(e,t,r){let o=(0,r(477465).Dv)("transcribeAudio");r.d(t,{},{d:o})},610344(e,t,r){function o(e){return{all:e=e||new Map,on:function(t,r){var o=e.get(t);o?o.push(r):e.set(t,[r])},off:function(t,r){var o=e.get(t);o&&(r?o.splice(o.indexOf(r)>>>0,1):e.set(t,[]))},emit:function(t,r){var o=e.get(t);o&&o.slice().map(function(e){e(r)}),(o=e.get("*"))&&o.slice().map(function(e){e(t,r)})}}}r.d(t,{A:()=>o})}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.