diff --git a/apps/mana/apps/web/src/hooks.server.ts b/apps/mana/apps/web/src/hooks.server.ts index 0ab749241..906453ecf 100644 --- a/apps/mana/apps/web/src/hooks.server.ts +++ b/apps/mana/apps/web/src/hooks.server.ts @@ -45,6 +45,8 @@ const PUBLIC_MANA_EVENTS_URL_CLIENT = process.env.PUBLIC_MANA_EVENTS_URL_CLIENT || process.env.PUBLIC_MANA_EVENTS_URL || ''; const PUBLIC_MANA_API_URL_CLIENT = process.env.PUBLIC_MANA_API_URL_CLIENT || process.env.PUBLIC_MANA_API_URL || ''; +const PUBLIC_MANA_CREDITS_URL_CLIENT = + process.env.PUBLIC_MANA_CREDITS_URL_CLIENT || process.env.PUBLIC_MANA_CREDITS_URL || ''; // Map of app subdomains to internal paths const APP_SUBDOMAINS = new Set([ @@ -95,6 +97,7 @@ window.__PUBLIC_MANA_MEDIA_URL__ = ${JSON.stringify(PUBLIC_MANA_MEDIA_URL_CLIENT window.__PUBLIC_MANA_LLM_URL__ = ${JSON.stringify(PUBLIC_MANA_LLM_URL_CLIENT)}; window.__PUBLIC_MANA_EVENTS_URL__ = ${JSON.stringify(PUBLIC_MANA_EVENTS_URL_CLIENT)}; window.__PUBLIC_MANA_API_URL__ = ${JSON.stringify(PUBLIC_MANA_API_URL_CLIENT)}; +window.__PUBLIC_MANA_CREDITS_URL__ = ${JSON.stringify(PUBLIC_MANA_CREDITS_URL_CLIENT)}; window.__PUBLIC_GLITCHTIP_DSN__ = ${JSON.stringify(PUBLIC_GLITCHTIP_DSN)}; `; return injectUmamiAnalytics(html.replace('
', `${envScript}`)); @@ -123,6 +126,7 @@ window.__PUBLIC_GLITCHTIP_DSN__ = ${JSON.stringify(PUBLIC_GLITCHTIP_DSN)}; PUBLIC_MANA_LLM_URL_CLIENT, PUBLIC_MANA_EVENTS_URL_CLIENT, PUBLIC_MANA_API_URL_CLIENT, + PUBLIC_MANA_CREDITS_URL_CLIENT, 'wss://sync.mana.how', // transformers.js *also* fetch()es the .wasm binary and the .mjs // loader factory directly to pre-warm the runtime — those go diff --git a/apps/mana/apps/web/src/lib/api/config.ts b/apps/mana/apps/web/src/lib/api/config.ts index 456ec2d54..f257743f8 100644 --- a/apps/mana/apps/web/src/lib/api/config.ts +++ b/apps/mana/apps/web/src/lib/api/config.ts @@ -46,3 +46,16 @@ export function getManaApiUrl(): string { } return process.env.PUBLIC_MANA_API_URL || 'http://localhost:3060'; } + +/** + * Get the mana-credits service URL. + * Hosts credit balance, packages, transactions, gift codes, sync billing. + */ +export function getManaCreditsUrl(): string { + if (browser && typeof window !== 'undefined') { + const injected = (window as unknown as { __PUBLIC_MANA_CREDITS_URL__?: string }) + .__PUBLIC_MANA_CREDITS_URL__; + return injected || 'http://localhost:3061'; + } + return process.env.PUBLIC_MANA_CREDITS_URL || 'http://localhost:3061'; +} diff --git a/apps/mana/apps/web/src/lib/api/credits.ts b/apps/mana/apps/web/src/lib/api/credits.ts index b1425caf9..fb87744b3 100644 --- a/apps/mana/apps/web/src/lib/api/credits.ts +++ b/apps/mana/apps/web/src/lib/api/credits.ts @@ -4,7 +4,7 @@ */ import { authStore } from '$lib/stores/auth.svelte'; -import { getManaAuthUrl } from './config'; +import { getManaCreditsUrl } from './config'; // Types export interface CreditBalance { @@ -58,7 +58,7 @@ export interface CreditPurchase { async function fetchWithAuth