@rydr/game-sdk 3.9.0 → 3.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +64 -0
- package/dist/client/PlatformClient.d.ts +6 -0
- package/dist/client/PlatformClient.d.ts.map +1 -1
- package/dist/client/PlatformClient.js +18 -0
- package/dist/client/PlatformClient.js.map +1 -1
- package/dist/conversations/index.d.ts +76 -38
- package/dist/conversations/index.d.ts.map +1 -1
- package/dist/conversations/index.js +136 -58
- package/dist/conversations/index.js.map +1 -1
- package/dist/conversations/voice-samples.d.ts +45 -0
- package/dist/conversations/voice-samples.d.ts.map +1 -0
- package/dist/conversations/voice-samples.js +63 -0
- package/dist/conversations/voice-samples.js.map +1 -0
- package/dist/conversations/voices.d.ts +33 -5
- package/dist/conversations/voices.d.ts.map +1 -1
- package/dist/conversations/voices.js +59 -31
- package/dist/conversations/voices.js.map +1 -1
- package/dist/protocol/conversations.d.ts +12 -7
- package/dist/protocol/conversations.d.ts.map +1 -1
- package/dist/protocol/conversations.js.map +1 -1
- package/dist/protocol/version.d.ts +1 -1
- package/dist/protocol/version.d.ts.map +1 -1
- package/dist/protocol/version.js +1 -1
- package/dist/protocol/version.js.map +1 -1
- package/dist/ui/README.md +2 -0
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +2 -0
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/power-race.d.ts +125 -0
- package/dist/ui/power-race.d.ts.map +1 -0
- package/dist/ui/power-race.js +726 -0
- package/dist/ui/power-race.js.map +1 -0
- package/dist/ui/showcase/index.d.ts.map +1 -1
- package/dist/ui/showcase/index.js +45 -1
- package/dist/ui/showcase/index.js.map +1 -1
- package/dist/ui/styles.js +13 -0
- package/dist/ui/styles.js.map +1 -1
- package/dist/ui/subtitle.d.ts +27 -0
- package/dist/ui/subtitle.d.ts.map +1 -0
- package/dist/ui/subtitle.js +77 -0
- package/dist/ui/subtitle.js.map +1 -0
- package/dist/voice-gallery/index.d.ts +31 -0
- package/dist/voice-gallery/index.d.ts.map +1 -0
- package/dist/voice-gallery/index.js +276 -0
- package/dist/voice-gallery/index.js.map +1 -0
- package/dist/voiceover-editor/index.d.ts +8 -5
- package/dist/voiceover-editor/index.d.ts.map +1 -1
- package/dist/voiceover-editor/index.js +158 -76
- package/dist/voiceover-editor/index.js.map +1 -1
- package/package.json +5 -1
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { CONVERSATIONS_COLLECTION, VOICE_CAST_COLLECTION, DEFAULT_VOICEOVER_SPEED, synthDirection, } from "../protocol/conversations.js";
|
|
2
2
|
import { lineHash } from "./hash.js";
|
|
3
3
|
import { mountDialogueCard, } from "../ui/dialogue-card.js";
|
|
4
|
+
import { mountSubtitle } from "../ui/subtitle.js";
|
|
4
5
|
export * from "./hash.js";
|
|
5
6
|
export * from "./voices.js";
|
|
7
|
+
export * from "./voice-samples.js";
|
|
6
8
|
export { CONVERSATIONS_COLLECTION, VOICE_CAST_COLLECTION, DEFAULT_VOICEOVER_SPEED, synthDirection, } from "../protocol/conversations.js";
|
|
7
9
|
/** Normalize authored spec lines to {@link ConversationLine}s (authored fields only). */
|
|
8
10
|
function normalize(id, spec) {
|
|
@@ -36,12 +38,25 @@ async function resolveCast(session, lines) {
|
|
|
36
38
|
}
|
|
37
39
|
return out;
|
|
38
40
|
}
|
|
39
|
-
/**
|
|
40
|
-
|
|
41
|
+
/** The EFFECTIVE content of a line for playback/synthesis — the editor-owned stored values when present,
|
|
42
|
+
* else the code-declared fallback. This is the crux of the inverted model: gamedata (edited in the
|
|
43
|
+
* voice-over editor) is the source of truth at runtime; the code `defineConversation` text/style/speed
|
|
44
|
+
* are only the seed + git copy (refreshed by "eject to code"). */
|
|
45
|
+
function effectiveContent(code, stored) {
|
|
46
|
+
return {
|
|
47
|
+
characterId: stored?.characterId ?? code.characterId,
|
|
48
|
+
text: stored?.text ?? code.text,
|
|
49
|
+
style: stored?.style ?? code.style,
|
|
50
|
+
speed: stored?.speed ?? code.speed,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/** Resolve a line's effective voice, delivery direction, and speed from cast → catalog → defaults, given
|
|
54
|
+
* its already-resolved effective content (see {@link effectiveContent}). */
|
|
55
|
+
function resolveLine(eff, character, cast) {
|
|
41
56
|
const voice = cast?.voice ?? character?.voice;
|
|
42
57
|
const context = cast?.context ?? character?.voiceStyle;
|
|
43
|
-
const speed =
|
|
44
|
-
return { voice, direction: synthDirection(context,
|
|
58
|
+
const speed = eff.speed ?? cast?.speed ?? DEFAULT_VOICEOVER_SPEED;
|
|
59
|
+
return { voice, direction: synthDirection(context, eff.style), speed };
|
|
45
60
|
}
|
|
46
61
|
/** Default `"auto"` hold factor — visible time = factor × audio duration. */
|
|
47
62
|
const DEFAULT_HOLD_FACTOR = 1.5;
|
|
@@ -81,62 +96,56 @@ class PausableTimer {
|
|
|
81
96
|
this.done = true;
|
|
82
97
|
}
|
|
83
98
|
}
|
|
84
|
-
export function defineConversation(id, spec) {
|
|
99
|
+
export function defineConversation(id, spec, opts) {
|
|
85
100
|
const lines = normalize(id, spec);
|
|
86
101
|
/** Resolve each line to its display name + CURRENT audio URL (stored audio whose hash still matches).
|
|
87
102
|
* Shared by open() (card sequence) and player()/audio() (imperative playback). */
|
|
88
103
|
const resolveDialogue = async (session) => {
|
|
89
|
-
const [chars, cast] = await Promise.all([resolveCharacters(session, lines), resolveCast(session, lines)]);
|
|
90
104
|
const stored = (await session.getContent(CONVERSATIONS_COLLECTION, id).catch(() => null));
|
|
91
105
|
const storedLines = new Map();
|
|
92
106
|
for (const l of stored?.data?.lines ?? [])
|
|
93
107
|
storedLines.set(l.id, l);
|
|
108
|
+
// Resolve characters/cast against the EFFECTIVE speakers (a line's speaker may be recast in the editor),
|
|
109
|
+
// not just the code speakers — otherwise a recast line's voice wouldn't resolve.
|
|
110
|
+
const effLines = lines.map((l) => ({ ...l, characterId: effectiveContent(l, storedLines.get(l.id)).characterId }));
|
|
111
|
+
const [chars, cast] = await Promise.all([resolveCharacters(session, effLines), resolveCast(session, effLines)]);
|
|
94
112
|
const out = [];
|
|
95
113
|
for (const l of lines) {
|
|
96
|
-
const
|
|
97
|
-
const
|
|
114
|
+
const s = storedLines.get(l.id);
|
|
115
|
+
const eff = effectiveContent(l, s); // gamedata content wins; code is the fallback
|
|
116
|
+
const ch = chars.get(eff.characterId) ?? null;
|
|
117
|
+
const { voice, direction, speed } = resolveLine(eff, ch, cast.get(eff.characterId) ?? null);
|
|
98
118
|
let audioUrl;
|
|
99
119
|
if (voice) {
|
|
100
|
-
|
|
101
|
-
const
|
|
120
|
+
// Hash the EFFECTIVE content so editor-edited audio (generated from the stored text) still matches.
|
|
121
|
+
const hash = await lineHash({ text: eff.text, voice, style: direction, speed, lang: l.lang });
|
|
102
122
|
if (s?.audioUrl && s.audioHash === hash)
|
|
103
123
|
audioUrl = s.audioUrl;
|
|
104
124
|
}
|
|
105
|
-
out.push({ id: l.id, characterId:
|
|
125
|
+
out.push({ id: l.id, characterId: eff.characterId, name: ch?.label ?? eff.characterId, text: eff.text, audioUrl });
|
|
106
126
|
}
|
|
107
127
|
return out;
|
|
108
128
|
};
|
|
109
129
|
const register = async (session) => {
|
|
110
130
|
if (!session.identity.isAdmin)
|
|
111
131
|
return; // shell gates `shared` writes; don't even try as a player
|
|
112
|
-
const [chars, cast] = await Promise.all([resolveCharacters(session, lines), resolveCast(session, lines)]);
|
|
113
132
|
const existing = (await session.getContent(CONVERSATIONS_COLLECTION, id).catch(() => null));
|
|
114
133
|
const prevData = existing?.data;
|
|
115
134
|
const prev = new Map();
|
|
116
135
|
for (const l of prevData?.lines ?? [])
|
|
117
136
|
prev.set(l.id, l);
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
out.audioUrl = p.audioUrl;
|
|
127
|
-
out.audioHash = p.audioHash;
|
|
128
|
-
out.generatedAt = p.generatedAt;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
merged.push(out);
|
|
132
|
-
}
|
|
137
|
+
// ADDITIVE SEED. Code owns STRUCTURE (which line ids exist + their order); the editor owns CONTENT
|
|
138
|
+
// (text/style/speed + generated audio), which is the runtime source of truth. So we keep every stored
|
|
139
|
+
// line VERBATIM (never clobber an edit or drop its audio) and only SEED lines that don't exist in
|
|
140
|
+
// gamedata yet, from the code fallback. Lines whose id left the code fall away (structural cleanup).
|
|
141
|
+
const merged = lines.map((l) => {
|
|
142
|
+
const p = prev.get(l.id);
|
|
143
|
+
return p ?? { id: l.id, characterId: l.characterId, text: l.text, style: l.style, speed: l.speed, lang: l.lang };
|
|
144
|
+
});
|
|
133
145
|
const doc = { id, label: prevData?.label ?? id, lines: merged, origin: "code" };
|
|
134
146
|
await session.saveContent(CONVERSATIONS_COLLECTION, id, doc);
|
|
135
147
|
};
|
|
136
148
|
const open = async (host, session, opts) => {
|
|
137
|
-
if (session.identity.isAdmin && !opts?.noRegister) {
|
|
138
|
-
await register(session).catch(() => { });
|
|
139
|
-
}
|
|
140
149
|
const resolved = await resolveDialogue(session);
|
|
141
150
|
const dlg = resolved.map((r) => ({ text: r.text, name: r.name, audioUrl: r.audioUrl }));
|
|
142
151
|
const card = mountDialogueCard(host, opts);
|
|
@@ -151,25 +160,32 @@ export function defineConversation(id, spec) {
|
|
|
151
160
|
const player = (host, session, opts) => {
|
|
152
161
|
const defaultDisplay = opts?.display ?? (host ? "card" : "none");
|
|
153
162
|
const defaultFactor = opts?.holdFactor ?? DEFAULT_HOLD_FACTOR;
|
|
154
|
-
//
|
|
155
|
-
|
|
156
|
-
//
|
|
157
|
-
|
|
163
|
+
// Code text is available NOW (sync fallback); the EDITED text + audio need a gamedata read, so they
|
|
164
|
+
// resolve in the BACKGROUND. `text(id)` returns the code fallback until then, the resolved (edited)
|
|
165
|
+
// text after; `ready` lets a scene await the resolved text before it paints cards (see below).
|
|
166
|
+
const codeById = new Map(lines.map((l) => [l.id, l]));
|
|
167
|
+
const resolvedText = new Map(); // gamedata → code, filled once resolved
|
|
168
|
+
const resolvedName = new Map(); // speaker display label, filled once resolved
|
|
158
169
|
const pool = new Map();
|
|
159
170
|
let disposed = false;
|
|
171
|
+
let markReady;
|
|
172
|
+
const ready = new Promise((res) => { markReady = res; });
|
|
160
173
|
void (async () => {
|
|
161
|
-
if (session.identity.isAdmin && !opts?.noRegister)
|
|
162
|
-
await register(session).catch(() => { });
|
|
163
174
|
const resolved = await resolveDialogue(session).catch(() => []);
|
|
164
|
-
if (disposed)
|
|
175
|
+
if (disposed) {
|
|
176
|
+
markReady();
|
|
165
177
|
return;
|
|
178
|
+
}
|
|
166
179
|
for (const r of resolved) {
|
|
180
|
+
resolvedText.set(r.id, r.text);
|
|
181
|
+
resolvedName.set(r.id, r.name);
|
|
167
182
|
if (r.audioUrl) {
|
|
168
183
|
const a = new Audio(r.audioUrl);
|
|
169
184
|
a.preload = "auto";
|
|
170
185
|
pool.set(r.id, a);
|
|
171
186
|
}
|
|
172
187
|
}
|
|
188
|
+
markReady();
|
|
173
189
|
})();
|
|
174
190
|
// The card is our TEXT surface only (audio:false) — the controller owns audio so it can time it.
|
|
175
191
|
const cardOpts = {
|
|
@@ -184,11 +200,20 @@ export function defineConversation(id, spec) {
|
|
|
184
200
|
card = mountDialogueCard(host, cardOpts);
|
|
185
201
|
return card;
|
|
186
202
|
};
|
|
203
|
+
// The `"auto"` mode's surface: a boxless, self-dismissing subtitle (position + name from opts.subtitle).
|
|
204
|
+
let subtitle = null;
|
|
205
|
+
const ensureSubtitle = () => {
|
|
206
|
+
if (!host)
|
|
207
|
+
return null;
|
|
208
|
+
if (!subtitle)
|
|
209
|
+
subtitle = mountSubtitle(host, opts?.subtitle ?? {});
|
|
210
|
+
return subtitle;
|
|
211
|
+
};
|
|
187
212
|
let unlocked = false;
|
|
188
213
|
let current = null; // the line the caller is currently awaiting (the "gate")
|
|
189
214
|
let pending = null; // a line whose autoplay was blocked, awaiting unlock()
|
|
190
215
|
const detached = new Set(); // lines that gated early (waitMs) and keep playing out
|
|
191
|
-
let
|
|
216
|
+
let surfaceOwner = null; // at most one beat's text shows on screen at a time (card OR subtitle)
|
|
192
217
|
/** Resolve the gate promise exactly once (does NOT stop the presentation). */
|
|
193
218
|
const settle = (b, done) => {
|
|
194
219
|
if (b.settled)
|
|
@@ -210,9 +235,12 @@ export function defineConversation(id, spec) {
|
|
|
210
235
|
}
|
|
211
236
|
catch { /* ignore */ }
|
|
212
237
|
}
|
|
213
|
-
if (b.
|
|
214
|
-
card
|
|
215
|
-
|
|
238
|
+
if (b.surface && surfaceOwner === b) {
|
|
239
|
+
if (b.surface === "card")
|
|
240
|
+
card?.close();
|
|
241
|
+
else
|
|
242
|
+
subtitle?.close();
|
|
243
|
+
surfaceOwner = null;
|
|
216
244
|
}
|
|
217
245
|
if (current === b)
|
|
218
246
|
current = null;
|
|
@@ -257,15 +285,19 @@ export function defineConversation(id, spec) {
|
|
|
257
285
|
const play = (lineId, pOpts) => {
|
|
258
286
|
if (current)
|
|
259
287
|
finish(current, "interrupted"); // supersede the gating line (detached lines keep going)
|
|
260
|
-
const line =
|
|
288
|
+
const line = codeById.get(lineId); // speaker + code-text fallback (sync)
|
|
289
|
+
const shownText = resolvedText.get(lineId) ?? line?.text ?? ""; // edited text once resolved, else code
|
|
290
|
+
const speaker = resolvedName.get(lineId) ?? line?.characterId ?? ""; // display label once resolved, else id
|
|
261
291
|
const want = pOpts?.display ?? defaultDisplay;
|
|
262
|
-
|
|
263
|
-
// A
|
|
264
|
-
const
|
|
292
|
+
// Resolve the on-screen surface for this mode: "card" → dialogue card, "auto" → boxless subtitle.
|
|
293
|
+
// A visual mode with no host degrades to audio-only "none".
|
|
294
|
+
const surface = want === "card" ? ensureCard() : want === "auto" ? ensureSubtitle() : null;
|
|
295
|
+
const surfaceKind = want === "card" && surface ? "card" : want === "auto" && surface ? "subtitle" : null;
|
|
296
|
+
const mode = want !== "none" && !surface ? "none" : want;
|
|
265
297
|
const factor = pOpts?.holdFactor ?? defaultFactor;
|
|
266
298
|
const audio = pool.get(lineId) ?? null; // background-resolved; null until the clip lands / if silent
|
|
267
299
|
return new Promise((resolve) => {
|
|
268
|
-
const b = { resolve, settled: false, timer: null, gateTimer: null, audio, offs: [],
|
|
300
|
+
const b = { resolve, settled: false, timer: null, gateTimer: null, audio, offs: [], surface: surfaceKind, pausedByVis: false };
|
|
269
301
|
current = b;
|
|
270
302
|
if (pOpts?.signal) {
|
|
271
303
|
if (pOpts.signal.aborted) {
|
|
@@ -277,10 +309,17 @@ export function defineConversation(id, spec) {
|
|
|
277
309
|
signal.addEventListener("abort", onAbort, { once: true });
|
|
278
310
|
b.offs.push(() => signal.removeEventListener("abort", onAbort));
|
|
279
311
|
}
|
|
280
|
-
// Taking
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
312
|
+
// Taking a surface closes whatever the OTHER surface was showing (incl. a detached line) — one
|
|
313
|
+
// text on screen at a time, across both the card and the subtitle.
|
|
314
|
+
if (surfaceKind === "card") {
|
|
315
|
+
subtitle?.close();
|
|
316
|
+
surfaceOwner = b;
|
|
317
|
+
surface.open(speaker, [{ text: shownText }]);
|
|
318
|
+
}
|
|
319
|
+
else if (surfaceKind === "subtitle") {
|
|
320
|
+
card?.close();
|
|
321
|
+
surfaceOwner = b;
|
|
322
|
+
surface.open(speaker, shownText);
|
|
284
323
|
}
|
|
285
324
|
const startAudio = () => {
|
|
286
325
|
if (!audio)
|
|
@@ -337,19 +376,21 @@ export function defineConversation(id, spec) {
|
|
|
337
376
|
const b = current;
|
|
338
377
|
if (!b)
|
|
339
378
|
return false;
|
|
340
|
-
if (b.
|
|
379
|
+
if (b.surface === "card" && card && surfaceOwner === b) {
|
|
341
380
|
const more = card.advance(); // first press finishes the typewriter, next closes the single-line card
|
|
342
381
|
if (more)
|
|
343
382
|
return true;
|
|
344
383
|
finish(b, "ended");
|
|
345
384
|
return false;
|
|
346
385
|
}
|
|
347
|
-
finish(b, "skipped"); // auto/none → A skips early
|
|
386
|
+
finish(b, "skipped"); // auto (subtitle) / none → A skips early
|
|
348
387
|
return false;
|
|
349
388
|
};
|
|
350
389
|
return {
|
|
351
390
|
get card() { return card; },
|
|
352
|
-
|
|
391
|
+
get subtitle() { return subtitle; },
|
|
392
|
+
ready,
|
|
393
|
+
text: (lineId) => resolvedText.get(lineId) ?? codeById.get(lineId)?.text ?? "",
|
|
353
394
|
play,
|
|
354
395
|
advance,
|
|
355
396
|
stop: () => { if (current)
|
|
@@ -371,6 +412,8 @@ export function defineConversation(id, spec) {
|
|
|
371
412
|
document.removeEventListener("visibilitychange", onVisibility);
|
|
372
413
|
card?.dispose();
|
|
373
414
|
card = null;
|
|
415
|
+
subtitle?.dispose();
|
|
416
|
+
subtitle = null;
|
|
374
417
|
for (const a of pool.values()) {
|
|
375
418
|
a.pause();
|
|
376
419
|
a.removeAttribute("src");
|
|
@@ -385,21 +428,56 @@ export function defineConversation(id, spec) {
|
|
|
385
428
|
return;
|
|
386
429
|
await session.deleteContent(CONVERSATIONS_COLLECTION, id).catch(() => { });
|
|
387
430
|
};
|
|
388
|
-
const def = { id, lines, register, delete: del, open, player, audio };
|
|
431
|
+
const def = { id, varName: opts?.varName, lines, register, delete: del, open, player, audio };
|
|
389
432
|
REGISTRY.set(id, def); // track for syncConversations() (re-defining an id replaces it)
|
|
390
433
|
return def;
|
|
391
434
|
}
|
|
392
435
|
/** Every conversation defined via {@link defineConversation} this session, for {@link syncConversations}. */
|
|
393
436
|
const REGISTRY = new Map();
|
|
437
|
+
/**
|
|
438
|
+
* "Eject to code": render a stored (editor-edited) {@link Conversation} back into the TypeScript
|
|
439
|
+
* `defineConversation` call you paste into your game's conversations module — the one deliberate
|
|
440
|
+
* gamedata → code snapshot that refreshes the code fallback text/style/speed for version control and
|
|
441
|
+
* fresh-environment seeding. It emits ONLY the authored spec (id/speaker/text/style/speed); generated
|
|
442
|
+
* audio stays in gamedata. `speaker` is the line's current `characterId`; `varName` names the export.
|
|
443
|
+
*
|
|
444
|
+
* The runtime already reads the edited text from gamedata (see {@link VoicePlayer.text}); ejecting is how
|
|
445
|
+
* you commit that text to git so a diff/review/rollback exists and a brand-new deploy ships good defaults.
|
|
446
|
+
*/
|
|
447
|
+
export function ejectConversationSource(conv, opts) {
|
|
448
|
+
const q = (s) => JSON.stringify(s); // valid TS double-quoted string w/ escaping
|
|
449
|
+
const rows = conv.lines.map((l) => {
|
|
450
|
+
const parts = [`id: ${q(l.id)}`, `speaker: ${q(l.characterId)}`, `text: ${q(l.text)}`];
|
|
451
|
+
if (l.style?.trim())
|
|
452
|
+
parts.push(`style: ${q(l.style.trim())}`);
|
|
453
|
+
if (l.speed != null)
|
|
454
|
+
parts.push(`speed: ${l.speed}`);
|
|
455
|
+
return ` { ${parts.join(", ")} },`;
|
|
456
|
+
});
|
|
457
|
+
const varName = opts?.varName ?? camelId(conv.id);
|
|
458
|
+
// Re-emit the `{ varName }` option when one was given so the ejected call is a byte-for-byte drop-in
|
|
459
|
+
// over the hand-written `defineConversation(..., { varName })` — and so the next eject round-trips it.
|
|
460
|
+
const tail = opts?.varName ? `, { varName: ${q(opts.varName)} }` : "";
|
|
461
|
+
return (`export const ${varName} = defineConversation(${q(conv.id)}, [\n` +
|
|
462
|
+
`${rows.join("\n")}\n` +
|
|
463
|
+
`]${tail});\n`);
|
|
464
|
+
}
|
|
465
|
+
/** `"vivax-intro-farm"` → `"vivaxIntroFarm"` — a sensible default export name for {@link ejectConversationSource}. */
|
|
466
|
+
function camelId(id) {
|
|
467
|
+
const camel = id.replace(/[^a-zA-Z0-9]+(.)?/g, (_, c) => (c ? c.toUpperCase() : ""));
|
|
468
|
+
return /^[a-zA-Z_]/.test(camel) ? camel : `conv_${camel}`;
|
|
469
|
+
}
|
|
394
470
|
/** All conversations declared in code so far. */
|
|
395
471
|
export function listDefinedConversations() {
|
|
396
472
|
return [...REGISTRY.values()];
|
|
397
473
|
}
|
|
398
474
|
/**
|
|
399
|
-
*
|
|
400
|
-
*
|
|
401
|
-
*
|
|
402
|
-
* Admin only (no-op otherwise). Returns the ids
|
|
475
|
+
* Additively seed ALL code-declared conversations into the game's `shared` gamedata in one call — for the
|
|
476
|
+
* editor's "Seed from code" button. Runs each {@link ConversationDef.register} (create missing lines from
|
|
477
|
+
* the code fallback; never overwrite editor-edited content); with `prune`, deletes stored code-origin
|
|
478
|
+
* conversations whose id no longer exists in code. Admin only (no-op otherwise). Returns the ids seeded
|
|
479
|
+
* (`pushed`) and pruned. This is the code → gamedata direction; for gamedata → code use
|
|
480
|
+
* {@link ejectConversationSource}.
|
|
403
481
|
*/
|
|
404
482
|
export async function syncConversations(session, opts) {
|
|
405
483
|
if (!session.identity.isAdmin)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/conversations/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/conversations/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type VoiceSampleLang } from "./voices.js";
|
|
2
|
+
/** Speaking rate every sample is generated at (matches the platform default so it sounds in-game). */
|
|
3
|
+
export declare const VOICE_SAMPLE_SPEED = 1.2;
|
|
4
|
+
/** Stable manifest/generation key for a single (voice, language, emotion) sample. */
|
|
5
|
+
export declare function voiceSampleKey(voice: string, lang: VoiceSampleLang, emotion: string): string;
|
|
6
|
+
/** One unit of work: the exact inputs to synthesise a single sample. */
|
|
7
|
+
export interface VoiceSampleJob {
|
|
8
|
+
key: string;
|
|
9
|
+
voice: string;
|
|
10
|
+
lang: VoiceSampleLang;
|
|
11
|
+
emotion: string;
|
|
12
|
+
/** The spoken line (French or English) for this emotion. */
|
|
13
|
+
text: string;
|
|
14
|
+
/** English delivery direction fed to the TTS as `prompt`. */
|
|
15
|
+
style: string;
|
|
16
|
+
speed: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Every sample the catalogue covers: `voices × langs × emotions` (currently 30 × 2 × 3 = 180).
|
|
20
|
+
* Drives both the gallery grid and the "Generate all" run — the single source of what "complete" means.
|
|
21
|
+
*/
|
|
22
|
+
export declare function voiceSampleJobs(): VoiceSampleJob[];
|
|
23
|
+
/** A generated clip: the public R2 URL and its content hash (for dedup/debugging). */
|
|
24
|
+
export interface VoiceSampleClip {
|
|
25
|
+
url: string;
|
|
26
|
+
hash: string;
|
|
27
|
+
}
|
|
28
|
+
export interface VoiceSampleManifest {
|
|
29
|
+
/** Epoch ms of the last full generation run, or `null` if never generated. */
|
|
30
|
+
generatedAt: number | null;
|
|
31
|
+
/** The speed the clips were generated at (for reference/regeneration). */
|
|
32
|
+
speed: number;
|
|
33
|
+
/** {@link voiceSampleKey} → clip. A missing key means "not generated yet". */
|
|
34
|
+
clips: Record<string, VoiceSampleClip>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The committed catalogue. Populated by the voice-gallery "Generate all" run — until then `clips` is
|
|
38
|
+
* empty and the gallery renders every cell as "not generated". Do not hand-edit URLs; regenerate.
|
|
39
|
+
*/
|
|
40
|
+
export declare const VOICE_SAMPLES: VoiceSampleManifest;
|
|
41
|
+
/** The whole manifest (e.g. to render a picker). */
|
|
42
|
+
export declare function getVoiceSamples(): VoiceSampleManifest;
|
|
43
|
+
/** The clip for one (voice, language, emotion), or `undefined` if it hasn't been generated. */
|
|
44
|
+
export declare function getVoiceSample(voice: string, lang: VoiceSampleLang, emotion: string): VoiceSampleClip | undefined;
|
|
45
|
+
//# sourceMappingURL=voice-samples.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice-samples.d.ts","sourceRoot":"","sources":["../../src/conversations/voice-samples.ts"],"names":[],"mappings":"AAYA,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AAErB,sGAAsG;AACtG,eAAO,MAAM,kBAAkB,MAA0B,CAAC;AAE1D,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5F;AAED,wEAAwE;AACxE,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,cAAc,EAAE,CAoBlD;AAED,sFAAsF;AACtF,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,8EAA8E;IAC9E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CACxC;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,mBAI3B,CAAC;AAEF,oDAAoD;AACpD,wBAAgB,eAAe,IAAI,mBAAmB,CAErD;AAED,+FAA+F;AAC/F,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,MAAM,GACd,eAAe,GAAG,SAAS,CAE7B"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The "generate once, play anywhere" voice-sample catalogue.
|
|
3
|
+
*
|
|
4
|
+
* Every prebuilt voice ({@link GEMINI_VOICES}) is sampled in each language ({@link VOICE_SAMPLE_LANGS})
|
|
5
|
+
* with each emotion ({@link VOICE_SAMPLE_EMOTIONS}) — one short line per emotion. The clips are
|
|
6
|
+
* generated ONCE by the voice-gallery ("Generate all") and content-addressed in R2, so any consumer
|
|
7
|
+
* plays them with a plain `<audio>`: no TTS key, no runtime generation, no per-game duplication.
|
|
8
|
+
*
|
|
9
|
+
* The URLs live in {@link VOICE_SAMPLES} below, committed to the SDK. To (re)populate them, open the
|
|
10
|
+
* voice gallery as an admin, click "Generate all", then paste its exported block over `VOICE_SAMPLES`.
|
|
11
|
+
*/
|
|
12
|
+
import { DEFAULT_VOICEOVER_SPEED } from "../protocol/conversations.js";
|
|
13
|
+
import { GEMINI_VOICES, VOICE_SAMPLE_EMOTIONS, VOICE_SAMPLE_LANGS, VOICE_SAMPLE_TEXT, } from "./voices.js";
|
|
14
|
+
/** Speaking rate every sample is generated at (matches the platform default so it sounds in-game). */
|
|
15
|
+
export const VOICE_SAMPLE_SPEED = DEFAULT_VOICEOVER_SPEED;
|
|
16
|
+
/** Stable manifest/generation key for a single (voice, language, emotion) sample. */
|
|
17
|
+
export function voiceSampleKey(voice, lang, emotion) {
|
|
18
|
+
return `${voice}|${lang}|${emotion}`;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Every sample the catalogue covers: `voices × langs × emotions` (currently 30 × 2 × 3 = 180).
|
|
22
|
+
* Drives both the gallery grid and the "Generate all" run — the single source of what "complete" means.
|
|
23
|
+
*/
|
|
24
|
+
export function voiceSampleJobs() {
|
|
25
|
+
const jobs = [];
|
|
26
|
+
for (const voice of GEMINI_VOICES) {
|
|
27
|
+
for (const lang of VOICE_SAMPLE_LANGS) {
|
|
28
|
+
for (const emotion of VOICE_SAMPLE_EMOTIONS) {
|
|
29
|
+
const line = VOICE_SAMPLE_TEXT[emotion.id];
|
|
30
|
+
if (!line)
|
|
31
|
+
continue;
|
|
32
|
+
jobs.push({
|
|
33
|
+
key: voiceSampleKey(voice.id, lang, emotion.id),
|
|
34
|
+
voice: voice.id,
|
|
35
|
+
lang,
|
|
36
|
+
emotion: emotion.id,
|
|
37
|
+
text: line[lang],
|
|
38
|
+
style: emotion.style,
|
|
39
|
+
speed: VOICE_SAMPLE_SPEED,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return jobs;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* The committed catalogue. Populated by the voice-gallery "Generate all" run — until then `clips` is
|
|
48
|
+
* empty and the gallery renders every cell as "not generated". Do not hand-edit URLs; regenerate.
|
|
49
|
+
*/
|
|
50
|
+
export const VOICE_SAMPLES = {
|
|
51
|
+
generatedAt: null,
|
|
52
|
+
speed: VOICE_SAMPLE_SPEED,
|
|
53
|
+
clips: {},
|
|
54
|
+
};
|
|
55
|
+
/** The whole manifest (e.g. to render a picker). */
|
|
56
|
+
export function getVoiceSamples() {
|
|
57
|
+
return VOICE_SAMPLES;
|
|
58
|
+
}
|
|
59
|
+
/** The clip for one (voice, language, emotion), or `undefined` if it hasn't been generated. */
|
|
60
|
+
export function getVoiceSample(voice, lang, emotion) {
|
|
61
|
+
return VOICE_SAMPLES.clips[voiceSampleKey(voice, lang, emotion)];
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=voice-samples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice-samples.js","sourceRoot":"","sources":["../../src/conversations/voice-samples.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,GAElB,MAAM,aAAa,CAAC;AAErB,sGAAsG;AACtG,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AAE1D,qFAAqF;AACrF,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,IAAqB,EAAE,OAAe;IAClF,OAAO,GAAG,KAAK,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;AACvC,CAAC;AAeD;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,IAAI,GAAqB,EAAE,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;YACtC,KAAK,MAAM,OAAO,IAAI,qBAAqB,EAAE,CAAC;gBAC5C,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC3C,IAAI,CAAC,IAAI;oBAAE,SAAS;gBACpB,IAAI,CAAC,IAAI,CAAC;oBACR,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;oBAC/C,KAAK,EAAE,KAAK,CAAC,EAAE;oBACf,IAAI;oBACJ,OAAO,EAAE,OAAO,CAAC,EAAE;oBACnB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;oBAChB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,KAAK,EAAE,kBAAkB;iBAC1B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAiBD;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAwB;IAChD,WAAW,EAAE,IAAI;IACjB,KAAK,EAAE,kBAAkB;IACzB,KAAK,EAAE,EAAE;CACV,CAAC;AAEF,oDAAoD;AACpD,MAAM,UAAU,eAAe;IAC7B,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,cAAc,CAC5B,KAAa,EACb,IAAqB,EACrB,OAAe;IAEf,OAAO,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AACnE,CAAC"}
|
|
@@ -1,16 +1,44 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The prebuilt Gemini TTS voices, for character/voice pickers (Character Studio, the VO editor)
|
|
3
|
-
* The names are Gemini's own; `label` adds the documented timbre
|
|
4
|
-
*
|
|
2
|
+
* The prebuilt Gemini TTS voices, for character/voice pickers (Character Studio, the VO editor)
|
|
3
|
+
* and the voice-sample gallery. The names are Gemini's own; `label` adds the documented timbre
|
|
4
|
+
* hint, `gender` is Google's published designation, and `persona` is a short pick-helper blurb.
|
|
5
|
+
* Language is chosen at synthesis (French or English), so a voice is a timbre, not a locale.
|
|
5
6
|
*/
|
|
6
7
|
export interface GeminiVoice {
|
|
7
8
|
/** The exact voice name passed to the TTS API (also stored on {@link CatalogCharacter.voice}). */
|
|
8
9
|
id: string;
|
|
9
|
-
/** Human hint for pickers. */
|
|
10
|
+
/** Human hint for pickers, e.g. "Kore · firm". */
|
|
10
11
|
label: string;
|
|
12
|
+
/** Google's published voice gender;helps a consumer cast the right character. */
|
|
13
|
+
gender: "male" | "female";
|
|
14
|
+
/** Short evocative blurb (timbre + suggested casting) shown in the gallery. */
|
|
15
|
+
persona: string;
|
|
11
16
|
}
|
|
12
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* The 30 prebuilt voices (Gemini 2.5/3.1 flash TTS). `gender` is from Google's Chirp 3: HD /
|
|
19
|
+
* Gemini-TTS voice roster (docs.cloud.google.com/text-to-speech/docs/chirp3-hd), not inferred.
|
|
20
|
+
*/
|
|
13
21
|
export declare const GEMINI_VOICES: readonly GeminiVoice[];
|
|
14
22
|
/** Default voice when a character has none set. */
|
|
15
23
|
export declare const DEFAULT_VOICE = "Charon";
|
|
24
|
+
/** Languages the sample gallery renders a column for. Mirrors the widened `VoiceoverLang`. */
|
|
25
|
+
export type VoiceSampleLang = "fr" | "en";
|
|
26
|
+
export declare const VOICE_SAMPLE_LANGS: readonly VoiceSampleLang[];
|
|
27
|
+
/**
|
|
28
|
+
* The emotion palette every voice is sampled with. `style` is the English direction fed to Gemini
|
|
29
|
+
* as the synthesis `prompt`; `label` is what the gallery shows.
|
|
30
|
+
*/
|
|
31
|
+
export interface VoiceSampleEmotion {
|
|
32
|
+
id: string;
|
|
33
|
+
label: string;
|
|
34
|
+
/** English delivery direction → Gemini `input.prompt`. */
|
|
35
|
+
style: string;
|
|
36
|
+
}
|
|
37
|
+
export declare const VOICE_SAMPLE_EMOTIONS: readonly VoiceSampleEmotion[];
|
|
38
|
+
/**
|
|
39
|
+
* The sentence each emotion is spoken with, per language. One line per emotion (the words carry the
|
|
40
|
+
* emotion) so a listener hears each voice's take on the same brief. French lines avoid first-person
|
|
41
|
+
* gendered agreement so they read correctly for both male and female voices.
|
|
42
|
+
*/
|
|
43
|
+
export declare const VOICE_SAMPLE_TEXT: Record<string, Record<VoiceSampleLang, string>>;
|
|
16
44
|
//# sourceMappingURL=voices.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voices.d.ts","sourceRoot":"","sources":["../../src/conversations/voices.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"voices.d.ts","sourceRoot":"","sources":["../../src/conversations/voices.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,kGAAkG;IAClG,EAAE,EAAE,MAAM,CAAC;IACX,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EA+B/C,CAAC;AAEF,mDAAmD;AACnD,eAAO,MAAM,aAAa,WAAW,CAAC;AAEtC,8FAA8F;AAC9F,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;AAC1C,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EAAiB,CAAC;AAE3E;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,qBAAqB,EAAE,SAAS,kBAAkB,EAI9D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAa7E,CAAC"}
|