refactor: break monorepo into 3 standalone services (gateway, backend, frontend)
Build & Deploy / build-and-push (backend) (push) Failing after 35s
Build & Deploy / build-and-push (discord-gateway) (push) Failing after 25s
Build & Deploy / build-and-push (proxy) (push) Failing after 25s

- Remove pnpm workspace, moon repo, and all monorepo tooling
- Delete packages/shared/, embed shared code directly into each service
- Copy packages/shared/src/* -> services/backend/src/shared/ and services/discord-gateway/src/shared/
- Replace all @bete/shared imports with @/shared/ path alias
- Remove @bete/shared workspace dependency from both services
- Update root package.json scripts from --filter to --prefix
- Rewrite Dockerfiles to build each service standalone
- Clean up biome.json, .gitignore, remove root drizzle.config.ts
This commit is contained in:
Developer
2026-07-30 11:50:48 +07:00
parent 8eb7fa49e4
commit dcd13482c2
167 changed files with 1886 additions and 533 deletions
@@ -17,7 +17,7 @@
* simpler, unified worker that combines both layers.
*/
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { config } from "../../shared/config/config.js";
import { initializeDatabase } from "../../shared/database/drizzle.js";
import { messageStore } from "../message-capture/messageStore.js";
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import type { Client } from "discord.js-selfbot-v13";
import { config } from "../../shared/config/config.js";
import type { EventBroadcaster } from "../event-broadcaster/index.js";
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { config } from "../../shared/config/config.js";
import { initializeDatabase } from "../../shared/database/drizzle.js";
import { extractMessageMediaEvidence } from "../message-capture/messageMetadata.js";
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { config } from "../../shared/config/config.js";
import type {
AnalysisResult,
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import type { Guild } from "discord.js-selfbot-v13";
import { config } from "../../shared/config/config.js";
import type { MessageRecord } from "../message-capture/types.js";
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import type { Client, PermissionString } from "discord.js-selfbot-v13";
import { config } from "../../shared/config/config.js";
import { messageStore } from "../message-capture/messageStore.js";
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import type { Client } from "discord.js-selfbot-v13";
import { config } from "../../shared/config/config.js";
import type { MessageRecord } from "../message-capture/types.js";
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { config } from "../../shared/config/config.js";
import { isAgeRestrictedMetadata } from "../message-capture/messageMetadata.js";
import { messageStore } from "../message-capture/messageStore.js";
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { config } from "../../shared/config/config.js";
import { messageStore } from "../message-capture/messageStore.js";
import type { MessageRecord } from "../message-capture/types.js";
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { eq } from "drizzle-orm";
import { getDatabase } from "../../shared/database/drizzle.js";
import {
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { encoding_for_model as encodingForModel } from "tiktoken";
import { formatMediaEvidenceForPrompt } from "../message-capture/messageMetadata.js";
import type { MessageRecord } from "../message-capture/types.js";
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { LRUCache } from "lru-cache";
import { config } from "../../shared/config/config.js";
import { LAST_ERROR } from "./moderationState.js";
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { and, desc, eq, sql } from "drizzle-orm";
import { config } from "../../shared/config/config.js";
import { getDatabase } from "../../shared/database/drizzle.js";
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { LRUCache } from "lru-cache";
import { config } from "../../shared/config/config.js";
import { messageStore } from "../message-capture/messageStore.js";
@@ -9,8 +9,8 @@
*
* Both sides now import from this module instead.
*/
import { createChildLogger } from "@bete/shared/logger";
import { delay, retryWithBackoff } from "@bete/shared/utils";
import { createChildLogger } from "@/shared/logger/index";
import { delay, retryWithBackoff } from "@/shared/utils/index";
import type { ChatCompletion } from "openai/resources/chat/completions";
import { config } from "../../shared/config/config.js";
import type { AnalysisResult } from "../message-capture/types.js";
@@ -6,8 +6,8 @@
* defaults are maintained in one place.
*/
import { createChildLogger } from "@bete/shared/logger";
import { retryWithBackoff } from "@bete/shared/utils";
import { createChildLogger } from "@/shared/logger/index";
import { retryWithBackoff } from "@/shared/utils/index";
import OpenAI from "openai";
import pLimit from "p-limit";
import { config } from "../../shared/config/config.js";
@@ -5,7 +5,7 @@
* analysis, and calls the LLM for a batched moderation response. Extracted from
* moderationOrchestrator.ts.
*/
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { config } from "../../shared/config/config.js";
import type {
AnalysisResult,
@@ -10,8 +10,8 @@ import { mkdtemp, readFile, rm, unlink, writeFile } from "node:fs/promises";
import { tmpdir } from "node:os";
import path from "node:path";
import { promisify } from "node:util";
import { createChildLogger } from "@bete/shared/logger";
import { createAbortControllerWithTimeout } from "@bete/shared/utils";
import { createChildLogger } from "@/shared/logger/index";
import { createAbortControllerWithTimeout } from "@/shared/utils/index";
import { resizeImageForVision } from "../attachment-upload/imageResizer.js";
import type { MessageMediaEvidence } from "../message-capture/messageMetadata.js";
import type { AttachmentRecord } from "../message-capture/types.js";
@@ -4,7 +4,7 @@
* Orchestrates LLM-based moderation analysis — manages batch splitting,
* parallel text+media analysis, LLM calls with retry, and cache handling.
*/
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { config } from "../../shared/config/config.js";
import { extractMessageMediaEvidence } from "../message-capture/messageMetadata.js";
import type {
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import type { z } from "zod";
import type { AnalysisResult } from "../message-capture/types.js";
import type {
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { z } from "zod";
const log = createChildLogger("moderationSchemas");
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import type { Client } from "discord.js-selfbot-v13";
import { LRUCache } from "lru-cache";
import { config } from "../../shared/config/config.js";
@@ -10,7 +10,7 @@
* Enables full audit trail and debugging of moderation decisions.
*/
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import type { AnalysisResult } from "../message-capture/types.js";
const logger = createChildLogger("response-logger");
@@ -1,5 +1,5 @@
import { createChildLogger } from "@bete/shared/logger";
import { createAbortControllerWithTimeout } from "@bete/shared/utils";
import { createChildLogger } from "@/shared/logger/index";
import { createAbortControllerWithTimeout } from "@/shared/utils/index";
import Redis from "ioredis";
const log = createChildLogger("searxng-search");
@@ -6,7 +6,7 @@
* Step 2: Real analysis text (only if not clean).
* Extracted from moderationOrchestrator.ts.
*/
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import type {
AnalysisResult,
MessageRecord,
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { config } from "../../shared/config/config.js";
import { executeAll, executeGet } from "../../shared/database/drizzle.js";
import { uploadToTele } from "../../shared/uploader.js";
@@ -5,7 +5,7 @@
* searches, deduplicates short messages, splits into sub-batches, and calls
* the LLM for analysis. Extracted from moderationOrchestrator.ts.
*/
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { config } from "../../shared/config/config.js";
import type {
AnalysisResult,
@@ -1,5 +1,5 @@
import { createHash } from "node:crypto";
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { executeAll, executeGet } from "../../shared/database/drizzle.js";
const logger = createChildLogger("text-cache-store");
@@ -1,7 +1,7 @@
import { resolve } from "node:dns/promises";
import { isIP } from "node:net";
import { createChildLogger } from "@bete/shared/logger";
import { createAbortControllerWithTimeout } from "@bete/shared/utils";
import { createChildLogger } from "@/shared/logger/index";
import { createAbortControllerWithTimeout } from "@/shared/utils/index";
const _log = createChildLogger("urlFetcher");
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { and, desc, eq, sql } from "drizzle-orm";
import { config } from "../../shared/config/config.js";
import { getDatabase } from "../../shared/database/drizzle.js";
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { eq } from "drizzle-orm";
import { getDatabase } from "../../shared/database/drizzle.js";
import {
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { and, desc, eq } from "drizzle-orm";
import { getDatabase } from "../../shared/database/drizzle.js";
import {
@@ -5,8 +5,8 @@
* moderation pipeline, runs single-image vision LLM analysis with
* multi-layer caching, and detects whether a message has media content.
*/
import { createChildLogger } from "@bete/shared/logger";
import { delay } from "@bete/shared/utils";
import { createChildLogger } from "@/shared/logger/index";
import { delay } from "@/shared/utils/index";
import { config } from "../../shared/config/config.js";
import { extractMessageMediaEvidence } from "../message-capture/messageMetadata.js";
import type {
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { config } from "../../shared/config/config.js";
import { uploadToTele } from "../../shared/uploader.js";
import { messageStore } from "../message-capture/messageStore.js";
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import sharp from "sharp";
const log = createChildLogger("imageResizer");
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import type { Client, TextChannel } from "discord.js-selfbot-v13";
import { config } from "../../shared/config/config.js";
import type { EventBroadcaster } from "../event-broadcaster/eventBroadcaster.js";
@@ -4,8 +4,8 @@ import {
type CommandReply,
MEDIA_STATUS_KEY,
VOICE_STATUS_KEY,
} from "@bete/shared";
import { createChildLogger } from "@bete/shared/logger";
} from "../../shared/index.js";
import { createChildLogger } from "../../shared/logger/index.js";
import type { Client } from "discord.js-selfbot-v13";
import Redis from "ioredis";
import { config } from "../../shared/config/config.js";
@@ -1,5 +1,5 @@
import type { CommandMessage, CommandReply } from "@bete/shared";
import { createChildLogger } from "@bete/shared/logger";
import type { CommandMessage, CommandReply } from "../../shared/index.js";
import { createChildLogger } from "../../shared/logger/index.js";
import type { Client } from "discord.js-selfbot-v13";
// ---------------------------------------------------------------------------
@@ -14,7 +14,7 @@ import {
COMMAND_VOICE_TRANSMIT_STOP,
type CommandMessage,
type CommandReply,
} from "@bete/shared";
} from "../../shared/index.js";
import type { GuildHandler } from "./guild.handler.js";
import type { MediaHandler } from "./media.handler.js";
import type { ModerationHandler } from "./moderation.handler.js";
@@ -1,6 +1,6 @@
import { randomUUID } from "node:crypto";
import type { CommandMessage, CommandReply } from "@bete/shared";
import { createChildLogger } from "@bete/shared/logger";
import type { CommandMessage, CommandReply } from "../../shared/index.js";
import { createChildLogger } from "../../shared/logger/index.js";
import { StreamType } from "@discordjs/voice";
import {
extractMediaInfo,
@@ -1,5 +1,5 @@
import type { CommandMessage, CommandReply } from "@bete/shared";
import { createChildLogger } from "@bete/shared/logger";
import type { CommandMessage, CommandReply } from "../../shared/index.js";
import { createChildLogger } from "../../shared/logger/index.js";
import type { Client } from "discord.js-selfbot-v13";
import { messageStore } from "../message-capture/messageStore.js";
@@ -1,5 +1,5 @@
import type { CommandMessage, CommandReply } from "@bete/shared";
import { createChildLogger } from "@bete/shared/logger";
import type { CommandMessage, CommandReply } from "../../shared/index.js";
import { createChildLogger } from "../../shared/logger/index.js";
import type { Client } from "discord.js-selfbot-v13";
import { config } from "../../shared/config/config.js";
import { discordPlayer } from "../voice-recording/player.js";
@@ -1,5 +1,5 @@
import type { AttachmentRecord, MessageRecord } from "@bete/shared";
import { type CustomLogger, createChildLogger } from "@bete/shared/logger";
import type { AttachmentRecord, MessageRecord } from "../../shared/index.js";
import { type CustomLogger, createChildLogger } from "../../shared/logger/index.js";
import Redis from "ioredis";
import { type DiscordGatewayEvent, EventChannels } from "./eventTypes.js";
@@ -22,7 +22,7 @@ import {
DISCORD_VOICE_STOPPED,
DISCORD_VOICE_UPLOADED,
type DiscordGatewayEvent,
} from "@bete/shared";
} from "../../shared/index.js";
export type { DiscordGatewayEvent };
@@ -1,5 +1,5 @@
import http from "node:http";
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { config } from "../../shared/config/config.js";
const logger = createChildLogger("gateway-metrics");
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import type {
Client,
GuildMember,
@@ -1,4 +1,4 @@
import { createChildLogger, type Logger } from "@bete/shared/logger";
import { createChildLogger, type Logger } from "@/shared/logger/index";
import { and, desc, eq, inArray, type SQL } from "drizzle-orm";
import type { NodePgDatabase } from "drizzle-orm/node-postgres";
import type * as schema from "../../shared/database/schema.js";
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import type { Client, Message } from "discord.js-selfbot-v13";
import { config } from "../../shared/config/config.js";
import { queueMessageAnalysis } from "../ai-moderation/aiAnalyzer.js";
@@ -1,4 +1,4 @@
import { createChildLogger, type Logger } from "@bete/shared/logger";
import { createChildLogger, type Logger } from "@/shared/logger/index";
import type { NodePgDatabase } from "drizzle-orm/node-postgres";
import { getDatabase } from "../../shared/database/drizzle.js";
import type * as schema from "../../shared/database/schema.js";
@@ -1,4 +1,4 @@
import { createChildLogger, type Logger } from "@bete/shared/logger";
import { createChildLogger, type Logger } from "@/shared/logger/index";
import { and, asc, desc, eq, inArray, isNull, or, sql } from "drizzle-orm";
import type { NodePgDatabase } from "drizzle-orm/node-postgres";
import type * as schema from "../../shared/database/schema.js";
@@ -1,4 +1,4 @@
import { createChildLogger, type Logger } from "@bete/shared/logger";
import { createChildLogger, type Logger } from "@/shared/logger/index";
import { and, eq, isNull, sql } from "drizzle-orm";
import type { NodePgDatabase } from "drizzle-orm/node-postgres";
import type * as schema from "../../shared/database/schema.js";
@@ -1,4 +1,4 @@
import { createChildLogger, type Logger } from "@bete/shared/logger";
import { createChildLogger, type Logger } from "@/shared/logger/index";
import { and, desc, eq, or, type SQL } from "drizzle-orm";
import type { NodePgDatabase } from "drizzle-orm/node-postgres";
import type * as schema from "../../shared/database/schema.js";
@@ -1,4 +1,4 @@
import { createChildLogger, type Logger } from "@bete/shared/logger";
import { createChildLogger, type Logger } from "@/shared/logger/index";
import type { NodePgDatabase } from "drizzle-orm/node-postgres";
import type * as schema from "../../shared/database/schema.js";
import type {
@@ -1,5 +1,5 @@
import { buildCursorCondition, pageResult } from "@bete/shared";
import { createChildLogger, type Logger } from "@bete/shared/logger";
import { buildCursorCondition, pageResult } from "../../shared/index.js";
import { createChildLogger, type Logger } from "../../shared/logger/index.js";
import { and, desc, eq, inArray, type SQL, sql } from "drizzle-orm";
import type { NodePgDatabase } from "drizzle-orm/node-postgres";
import type * as schema from "../../shared/database/schema.js";
@@ -1,4 +1,4 @@
import { createChildLogger, type Logger } from "@bete/shared/logger";
import { createChildLogger, type Logger } from "@/shared/logger/index";
import { and, desc, eq, isNull, or, type SQL, sql } from "drizzle-orm";
import type { NodePgDatabase } from "drizzle-orm/node-postgres";
import type * as schema from "../../shared/database/schema.js";
@@ -1,5 +1,5 @@
import { buildCursorCondition, pageResult } from "@bete/shared";
import { createChildLogger, type Logger } from "@bete/shared/logger";
import { buildCursorCondition, pageResult } from "../../shared/index.js";
import { createChildLogger, type Logger } from "../../shared/logger/index.js";
import { and, desc, eq, inArray, type SQL, sql } from "drizzle-orm";
import type { NodePgDatabase } from "drizzle-orm/node-postgres";
import type * as schema from "../../shared/database/schema.js";
@@ -1,4 +1,4 @@
import { createChildLogger, type Logger } from "@bete/shared/logger";
import { createChildLogger, type Logger } from "@/shared/logger/index";
import { and, eq, isNull, or } from "drizzle-orm";
import type { NodePgDatabase } from "drizzle-orm/node-postgres";
import type * as schema from "../../shared/database/schema.js";
@@ -1,5 +1,5 @@
import { buildCursorCondition, pageResult } from "@bete/shared";
import { createChildLogger, type Logger } from "@bete/shared/logger";
import { buildCursorCondition, pageResult } from "../../shared/index.js";
import { createChildLogger, type Logger } from "../../shared/logger/index.js";
import { and, desc, eq, inArray, type SQL, sql } from "drizzle-orm";
import type { NodePgDatabase } from "drizzle-orm/node-postgres";
import type * as schema from "../../shared/database/schema.js";
@@ -5,7 +5,7 @@ import type {
MessageRecord,
UserMetadata,
VoiceRecordingUploadData,
} from "@bete/shared";
} from "../../shared/index.js";
import type prism from "prism-media";
// Re-export all shared types for backward compatibility
@@ -31,7 +31,7 @@ export type {
UserMetadata,
VoiceRecordingUploadData,
VoiceSegmentRecord,
} from "@bete/shared";
} from "../../shared/index.js";
// Types that are LOCAL ONLY (not in shared) — keep here
export interface SegmentState {
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import type {
Client,
MessageReaction,
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import type { Client, ThreadChannel } from "discord.js-selfbot-v13";
import { config } from "../../shared/config/config.js";
import type { EventBroadcaster } from "../event-broadcaster/eventBroadcaster.js";
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import type { Client, Presence } from "discord.js-selfbot-v13";
import { config } from "../../shared/config/config.js";
import type { EventBroadcaster } from "../event-broadcaster/eventBroadcaster.js";
@@ -7,7 +7,7 @@
* The backend forwards these unchanged to frontend clients.
*/
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import WebSocket from "ws";
const logger = createChildLogger("voice-pcm-ws");
@@ -1,5 +1,5 @@
import { spawn } from "node:child_process";
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
const logger = createChildLogger("ffmpeg-process");
@@ -1,6 +1,6 @@
import { type ChildProcess, spawn } from "node:child_process";
import { PassThrough, type Readable } from "node:stream";
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { StreamType } from "@discordjs/voice";
const logger = createChildLogger("media-source");
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { eq } from "drizzle-orm";
import type { NodePgDatabase } from "drizzle-orm/node-postgres";
import { getDatabase } from "../../shared/database/drizzle.js";
@@ -1,5 +1,5 @@
import { Transform, type TransformCallback } from "node:stream";
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
const _logger = createChildLogger("packet-filter");
@@ -1,5 +1,5 @@
import type { Readable } from "node:stream";
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import {
type AudioPlayer,
AudioPlayerStatus,
@@ -1,6 +1,6 @@
import { promises as fsPromises } from "node:fs";
import { createChildLogger } from "@bete/shared/logger";
import { retryWithBackoff } from "@bete/shared/utils";
import { createChildLogger } from "@/shared/logger/index";
import { retryWithBackoff } from "@/shared/utils/index";
import {
type DiscordGatewayAdapterCreator,
entersState,
@@ -1,5 +1,5 @@
import { createRequire } from "node:module";
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import * as prism from "prism-media";
import { config } from "../../../shared/config/config.js";
@@ -1,5 +1,5 @@
import path from "node:path";
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import type { Client, VoiceChannel } from "discord.js-selfbot-v13";
import { config } from "../../../shared/config/config.js";
import type {
@@ -1,6 +1,6 @@
import fs from "node:fs";
import path from "node:path";
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import * as prism from "prism-media";
import type { SegmentState } from "../../message-capture/types.js";
@@ -1,5 +1,5 @@
import { promises as fsPromises } from "node:fs";
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { config } from "../../../shared/config/config.js";
import type {
SegmentState,
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import type { UserMetadata } from "../../message-capture/types.js";
const logger = createChildLogger("recording-session");
@@ -1,6 +1,6 @@
import { promises as fsPromises } from "node:fs";
import path from "node:path";
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import type { VoiceConnection } from "@discordjs/voice";
import type { Client, VoiceChannel } from "discord.js-selfbot-v13";
import type { EventBroadcaster } from "../../event-broadcaster/eventBroadcaster.js";
@@ -1,4 +1,4 @@
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import type { VoiceConnection } from "@discordjs/voice";
import { EndBehaviorType } from "@discordjs/voice";
import { config } from "../../../shared/config/config.js";
@@ -1,6 +1,6 @@
import fs from "node:fs";
import path from "node:path";
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import { config } from "../../../shared/config/config.js";
import {
insertVoiceRecording,
@@ -1,7 +1,7 @@
import { spawn } from "node:child_process";
import { PassThrough } from "node:stream";
import { BACKEND_VOICE_TRANSMIT } from "@bete/shared";
import { createChildLogger } from "@bete/shared/logger";
import { BACKEND_VOICE_TRANSMIT } from "../../shared/index.js";
import { createChildLogger } from "../../shared/logger/index.js";
import { StreamType } from "@discordjs/voice";
import type Redis from "ioredis";
import { discordPlayer } from "./player.js";
@@ -1,5 +1,5 @@
import { AppError } from "@bete/shared/errors";
import { createChildLogger } from "@bete/shared/logger";
import { AppError } from "@/shared/errors/index";
import { createChildLogger } from "@/shared/logger/index";
import type { VoiceConnection } from "@discordjs/voice";
import type { Client, Guild, VoiceChannel } from "discord.js-selfbot-v13";
import { discordPlayer } from "./player.js";
@@ -1,7 +1,7 @@
// ─── Voice Transcription — AI-powered speech-to-text for voice recordings ────
import { createReadStream } from "node:fs";
import { createChildLogger } from "@bete/shared/logger";
import { createChildLogger } from "@/shared/logger/index";
import OpenAI from "openai";
import { config } from "../../shared/config/config.js";