feat: add HyprnoteCloud batch transcription provider #2200
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
feat: add HyprnoteCloud batch transcription provider
Summary
This PR adds support for batch audio transcription via Hyprnote Cloud (Restate-powered) from the desktop app. When users select the "hyprnote" provider (non-AM model), the desktop app will upload the audio file to Supabase storage and use the apps/api
/file-transcriptionendpoints to process it through Restate.Key changes:
HyprnoteCloudprovider variant with HTTP polling logic to check transcription statususeRunBatchhook to upload files to Supabase and pass cloud-specific paramstranscripttoproviderResponsefield to support full provider responsesUpdates since last revision
voidprefix on promise resolve/reject calls in stt-file.ts)speakerfield additions to Token/VttWord typesReview & Testing Checklist for Human
BatchCloudResponseevent handling - A new event type is emitted but the frontend handler for converting the rawprovider_responseJSON string to word-level data may be missing. CheckuseListenerand related stores.transcripttoproviderResponse. Verify this doesn't break the existing web file transcription feature.{userId}/{timestamp}-{fileName}BatchCloudResponseevent is received with full provider dataRecommended test plan:
Notes
extractSonioxTranscriptTextfunction was added but is currently unused - it's available for future use when implementing client-side segmentationLink to Devin run: https://app.devin.ai/sessions/2152bd5364914957acd19c22b22965ab
Requested by: yujonglee (@yujonglee)