Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions apps/whispering/src/lib/query/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { transcription } from './transcription';
import { transformations } from './transformations';
import { transformer } from './transformer';
import { vadRecorder } from './vad-recorder';
import { rpc } from './';
import { rpc } from '$lib/query';

// Track manual recording start time for duration calculation
let manualRecordingStartTime: number | null = null;
Expand Down Expand Up @@ -387,7 +387,7 @@ export const commands = {
validFiles.map(async (file) => {
const arrayBuffer = await file.arrayBuffer();
const audioBlob = new Blob([arrayBuffer], { type: file.type });

// Log file upload event
rpc.analytics.logEvent.execute({
type: 'file_uploaded',
Expand Down
2 changes: 1 addition & 1 deletion apps/whispering/src/lib/query/transcription.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { Err, Ok, type Result, partitionResults } from 'wellcrafted/result';
import { defineMutation, queryClient } from './_client';
import { notify } from './notify';
import { recordings } from './recordings';
import { rpc } from './';
import { rpc } from '$lib/query';

const transcriptionKeys = {
isTranscribing: ['transcription', 'isTranscribing'] as const,
Expand Down
10 changes: 5 additions & 5 deletions apps/whispering/src/lib/services/db/index.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { DownloadServiceLive } from '../download';
import { createDbServiceDexie } from './dexie';
import { DownloadServiceLive } from '$lib/services/download';
import { createDbServiceDexie } from '$lib/services/db/dexie';

export { createDbServiceDexie, DbServiceErr } from './dexie';
export { createDbServiceDexie, DbServiceErr } from '$lib/services/db/dexie';
export {
generateDefaultTransformation,
generateDefaultTransformationStep,
TRANSFORMATION_STEP_TYPES,
TRANSFORMATION_STEP_TYPES_TO_LABELS,
} from './models';
} from '$lib/services/db/models';
export type {
InsertTransformationStep,
Recording,
Expand All @@ -17,7 +17,7 @@ export type {
TransformationRunFailed,
TransformationStep,
TransformationStepRun,
} from './models';
} from '$lib/services/db/models';

export const DbServiceLive = createDbServiceDexie({
DownloadService: DownloadServiceLive,
Expand Down
12 changes: 8 additions & 4 deletions apps/whispering/src/lib/services/ffmpeg/desktop.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
import { IS_WINDOWS } from '$lib/constants/platform';
import { extractErrorMessage } from 'wellcrafted/error';
import { Err, Ok, tryAsync } from 'wellcrafted/result';
import { type FfmpegService, FfmpegServiceErr } from './types';
import {
type FfmpegService,
FfmpegServiceErr,
} from '$lib/services/ffmpeg/types';

export function createFfmpegService(): FfmpegService {
return {
Expand All @@ -10,9 +13,10 @@ export function createFfmpegService(): FfmpegService {
await tryAsync({
try: async () => {
const { Command } = await import('@tauri-apps/plugin-shell');
const output = await (IS_WINDOWS
? Command.create('cmd', ['/c', 'ffmpeg -version'])
: Command.create('sh', ['-c', 'ffmpeg -version'])
const output = await (
IS_WINDOWS
? Command.create('cmd', ['/c', 'ffmpeg -version'])
: Command.create('sh', ['-c', 'ffmpeg -version'])
).execute();
return output;
},
Expand Down
6 changes: 3 additions & 3 deletions apps/whispering/src/lib/services/ffmpeg/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
export type { FfmpegService } from './types';
import { createFfmpegService } from './desktop';
import { createFfmpegServiceWeb } from './web';
export type { FfmpegService } from '$lib/services/ffmpeg/types';
import { createFfmpegService } from '$lib/services/ffmpeg/desktop';
import { createFfmpegServiceWeb } from '$lib/services/ffmpeg/web';

export const FfmpegServiceLive = window.__TAURI_INTERNALS__
? createFfmpegService()
Expand Down
2 changes: 1 addition & 1 deletion apps/whispering/src/lib/services/ffmpeg/web.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Ok, type Result } from 'wellcrafted/result';
import type { WhisperingError } from '$lib/result';
import type { FfmpegService } from './types';
import type { FfmpegService } from '$lib/services/ffmpeg/types';

export function createFfmpegServiceWeb(): FfmpegService {
return {
Expand Down
8 changes: 4 additions & 4 deletions apps/whispering/src/lib/services/recorder/desktop.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import type { CancelRecordingResult } from '$lib/constants/audio';
import { invoke as tauriInvoke } from '@tauri-apps/api/core';
import { Err, Ok, type Result, tryAsync } from 'wellcrafted/result';
import type { Device, DeviceAcquisitionOutcome } from '../types';
import { asDeviceIdentifier } from '../types';
import type { Device, DeviceAcquisitionOutcome } from '$lib/services/types';
import { asDeviceIdentifier } from '$lib/services/types';
import type {
RecorderService,
RecorderServiceError,
StartRecordingParams,
} from './types';
import { RecorderServiceErr } from './types';
} from '$lib/services/recorder/types';
import { RecorderServiceErr } from '$lib/services/recorder/types';
import { readFile } from '@tauri-apps/plugin-fs';
import { remove } from '@tauri-apps/plugin-fs';

Expand Down
6 changes: 3 additions & 3 deletions apps/whispering/src/lib/services/text/desktop.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { invoke } from '@tauri-apps/api/core';
import { writeText } from '@tauri-apps/plugin-clipboard-manager';
import { type } from '@tauri-apps/plugin-os';
import { Err, Ok, tryAsync } from 'wellcrafted/result';
import type { TextService } from './types';
import { TextServiceErr } from './types';
import type { TextService } from '$lib/services/text/types';
import { TextServiceErr } from '$lib/services/text/types';

export function createTextServiceDesktop(): TextService {
return {
Expand Down Expand Up @@ -32,4 +32,4 @@ export function createTextServiceDesktop(): TextService {
}),
}),
};
}
}
4 changes: 2 additions & 2 deletions apps/whispering/src/lib/services/text/extension.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { tryAsync } from 'wellcrafted/result';
import { type TextService, TextServiceErr } from './types';
import { type TextService, TextServiceErr } from '$lib/services/text/types';

export function createTextServiceExtension(): TextService {
return {
Expand Down Expand Up @@ -91,4 +91,4 @@ function appendTextToContentEditableElement(
text: string,
): void {
element.innerHTML += text;
}
}
6 changes: 3 additions & 3 deletions apps/whispering/src/lib/services/text/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { createTextServiceDesktop } from './desktop';
import { createTextServiceWeb } from './web';
import { createTextServiceDesktop } from '$lib/services/text/desktop';
import { createTextServiceWeb } from '$lib/services/text/web';

export type { TextService, TextServiceError } from './types';
export type { TextService, TextServiceError } from '$lib/services/text/types';

export const TextServiceLive = window.__TAURI_INTERNALS__
? createTextServiceDesktop()
Expand Down
6 changes: 3 additions & 3 deletions apps/whispering/src/lib/services/text/web.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Ok, tryAsync } from 'wellcrafted/result';
import type { TextService } from './types';
import { TextServiceErr } from './types';
import type { TextService } from '$lib/services/text/types';
import { TextServiceErr } from '$lib/services/text/types';

export function createTextServiceWeb(): TextService {
return {
Expand Down Expand Up @@ -36,4 +36,4 @@ export function createTextServiceWeb(): TextService {
});
},
};
}
}
14 changes: 7 additions & 7 deletions apps/whispering/src/lib/services/transcription/index.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { DeepgramTranscriptionServiceLive } from './deepgram';
import { ElevenlabsTranscriptionServiceLive } from './elevenlabs';
import { GroqTranscriptionServiceLive } from './groq';
import { OpenaiTranscriptionServiceLive } from './openai';
import { SpeachesTranscriptionServiceLive } from './speaches';
import { WhisperCppTranscriptionServiceLive } from './whispercpp';
import { DeepgramTranscriptionServiceLive } from '$lib/services/transcription/deepgram';
import { ElevenlabsTranscriptionServiceLive } from '$lib/services/transcription/elevenlabs';
import { GroqTranscriptionServiceLive } from '$lib/services/transcription/groq';
import { OpenaiTranscriptionServiceLive } from '$lib/services/transcription/openai';
import { SpeachesTranscriptionServiceLive } from '$lib/services/transcription/speaches';
import { WhisperCppTranscriptionServiceLive } from '$lib/services/transcription/whispercpp';

export {
ElevenlabsTranscriptionServiceLive as elevenlabs,
Expand All @@ -19,4 +19,4 @@ export type { GroqTranscriptionService } from './groq';
export type { OpenaiTranscriptionService } from './openai';
export type { SpeachesTranscriptionService } from './speaches';
export type { DeepgramTranscriptionService } from './deepgram';
export type { WhisperCppTranscriptionService } from './whispercpp';
export type { WhisperCppTranscriptionService } from './whispercpp';
7 changes: 5 additions & 2 deletions apps/whispering/src/lib/services/vad-recorder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@ import type { VadState } from '$lib/constants/audio';
import { MicVAD, utils } from '@ricky0123/vad-web';
import { createTaggedError, extractErrorMessage } from 'wellcrafted/error';
import { Err, Ok, tryAsync, trySync } from 'wellcrafted/result';
import { cleanupRecordingStream, getRecordingStream } from './device-stream';
import type { DeviceIdentifier } from './types';
import {
cleanupRecordingStream,
getRecordingStream,
} from '$lib/services/device-stream';
import type { DeviceIdentifier } from '$lib/services/types';

const { VadRecorderServiceError, VadRecorderServiceErr } = createTaggedError(
'VadRecorderServiceError',
Expand Down
2 changes: 1 addition & 1 deletion apps/whispering/src/lib/stores/settings.svelte.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { createPersistedState } from '@repo/svelte-utils';
import {
syncGlobalShortcutsWithSettings,
syncLocalShortcutsWithSettings,
} from '../../routes/+layout/register-commands';
} from '$lib/utils/register-commands';
import { extractErrorMessage } from 'wellcrafted/error';

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import {
isUsingNativeBackendWithCloudTranscription,
isUsingNativeBackendAtWrongSampleRate,
} from '../../../+layout/check-ffmpeg';
} from '$lib/utils/check-ffmpeg';
import { IS_MACOS } from '$lib/constants/platform';

const { data } = $props();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
import {
isUsingWhisperCppWithBrowserBackend,
isUsingNativeBackendAtWrongSampleRate,
} from '../../../+layout/check-ffmpeg';
} from '$lib/utils/check-ffmpeg';
</script>

<svelte:head>
Expand Down
10 changes: 5 additions & 5 deletions apps/whispering/src/routes/+layout/AppShell.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@
resetLocalShortcutsToDefaultIfDuplicates,
syncGlobalShortcutsWithSettings,
syncLocalShortcutsWithSettings,
} from './register-commands';
} from '$lib/utils/register-commands';
import { registerOnboarding } from './register-onboarding';
import { checkFfmpeg } from './check-ffmpeg';
import {
import { checkFfmpeg } from '$lib/utils/check-ffmpeg';
import {
registerAccessibilityPermission,
registerMicrophonePermission
registerMicrophonePermission,
} from './register-permissions';
import { syncIconWithRecorderState } from './syncIconWithRecorderState.svelte';

Expand All @@ -52,7 +52,7 @@
// await extension.notifyWhisperingTabReady(undefined);
}
registerOnboarding();

// Register permission checkers separately
cleanupAccessibilityPermission = registerAccessibilityPermission();
cleanupMicrophonePermission = registerMicrophonePermission();
Expand Down