@koda-sl/baker-cli 0.353.0-dev.5d1d795f9 → 0.353.0-dev.847cbae62
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 +0 -3
- package/dist/{chunk-PHHQLFY3.js → chunk-B7MLH3K6.js} +3 -28
- package/dist/chunk-B7MLH3K6.js.map +1 -0
- package/dist/cli.js +22 -8
- package/dist/cli.js.map +1 -1
- package/dist/engine/index.d.ts +0 -7
- package/dist/engine/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-PHHQLFY3.js.map +0 -1
package/README.md
CHANGED
|
@@ -5057,11 +5057,8 @@ Cast an ElevenLabs voice from a natural-language description (e.g. a blueprint's
|
|
|
5057
5057
|
|---|---|---|---|
|
|
5058
5058
|
| `description` | string | yes | the casting brief |
|
|
5059
5059
|
| `gender` / `age` / `accent` / `language` | string | no | structured hints that sharpen the ranking |
|
|
5060
|
-
| `voice_id` | string | no | a voice already chosen — skips the ranking and emits it as-is |
|
|
5061
5060
|
| `limit` | number | no | how many `candidates` to return (default 5) |
|
|
5062
5061
|
|
|
5063
|
-
`language` is strict: when no voice on the account speaks it, the node fails (`voice_language_unavailable`) before anything downstream is voiced. `gender` is strict within that language unless nobody there has it — then it is dropped and `baker canvas run` prints a `[warn]` naming the voice cast instead.
|
|
5064
|
-
|
|
5065
5062
|
**Outputs** — `voice_id` (text, bare id) + `candidates` (json, ranked shortlist). Wire `voice_id` into a `tts` node: set `inputs.voice_ref: $ref:<this>.voice_id` and `params.voice: "{{voice_ref}}"` — the engine splices the id in at run time.
|
|
5066
5063
|
|
|
5067
5064
|
**Cost** — free (voice listing). Generation is billed under `tts`/`dialogue`.
|
|
@@ -5191,7 +5191,6 @@ var Engine = class {
|
|
|
5191
5191
|
outputs[node.id] = hit.outputs;
|
|
5192
5192
|
await this.materializeNodeOutputs(node.id, hit.outputs, writer);
|
|
5193
5193
|
this.log(`[exec ] ${node.id.padEnd(20)} ${node.type.padEnd(20)} cached`);
|
|
5194
|
-
this.logOutputWarnings(node.id, hit.outputs);
|
|
5195
5194
|
return { cached: true, credits: 0, durationMs: Date.now() - cacheT0 };
|
|
5196
5195
|
}
|
|
5197
5196
|
}
|
|
@@ -5234,18 +5233,8 @@ var Engine = class {
|
|
|
5234
5233
|
}
|
|
5235
5234
|
await this.materializeNodeOutputs(node.id, outputsObj, writer);
|
|
5236
5235
|
this.log(`[exec ] ${node.id.padEnd(20)} ${node.type.padEnd(20)} fresh (${(elapsed / 1e3).toFixed(1)}s)`);
|
|
5237
|
-
this.logOutputWarnings(node.id, outputsObj);
|
|
5238
5236
|
return { cached: false, credits, durationMs: elapsed };
|
|
5239
5237
|
}
|
|
5240
|
-
/**
|
|
5241
|
-
* Print the warnings a node left on its outputs' metadata — a `voice_select` that
|
|
5242
|
-
* could not honor the requested gender, say. Left in the metadata alone they were
|
|
5243
|
-
* read only after the render was paid for and somebody listened. Printed on a
|
|
5244
|
-
* cached replay too: the output still carries the compromise.
|
|
5245
|
-
*/
|
|
5246
|
-
logOutputWarnings(nodeId, outputs) {
|
|
5247
|
-
for (const warning of outputWarnings(outputs)) this.log(`[warn ] ${nodeId}: ${warning}`);
|
|
5248
|
-
}
|
|
5249
5238
|
async materializeNodeOutputs(nodeId, outputs, writer) {
|
|
5250
5239
|
for (const [name, value] of Object.entries(outputs)) {
|
|
5251
5240
|
if (isAssetRef(value)) {
|
|
@@ -5290,16 +5279,6 @@ var Engine = class {
|
|
|
5290
5279
|
return await fix(inputs);
|
|
5291
5280
|
}
|
|
5292
5281
|
};
|
|
5293
|
-
function refWarnings(ref) {
|
|
5294
|
-
if (!isAssetRef(ref)) return [];
|
|
5295
|
-
const warnings = ref.metadata?.warnings;
|
|
5296
|
-
if (!Array.isArray(warnings)) return [];
|
|
5297
|
-
return warnings.filter((w) => typeof w === "string" && w.length > 0);
|
|
5298
|
-
}
|
|
5299
|
-
function outputWarnings(outputs) {
|
|
5300
|
-
const refs = Object.values(outputs).flatMap((value) => Array.isArray(value) ? value : [value]);
|
|
5301
|
-
return [...new Set(refs.flatMap(refWarnings))];
|
|
5302
|
-
}
|
|
5303
5282
|
function resolveRegenerateToken(node, forced, runId) {
|
|
5304
5283
|
if (forced?.has(node.id)) return `run:${runId}`;
|
|
5305
5284
|
if (node.regenerate !== void 0) return `node:${String(node.regenerate)}`;
|
|
@@ -9584,14 +9563,10 @@ var voiceSelectNode = delegated({
|
|
|
9584
9563
|
// to move with it: the cache key is built from this string, so entries written under
|
|
9585
9564
|
// 1.0.0 kept replaying the broken shape long after the fix was deployed. A node whose
|
|
9586
9565
|
// OUTPUT shape changes has to bump, not only one whose behaviour does.
|
|
9587
|
-
|
|
9588
|
-
// fails the node instead of casting a voice of another language, and a gender nobody
|
|
9589
|
-
// in the language has is relaxed with a printed warning. Bumped so a 1.1.0 cache entry
|
|
9590
|
-
// holding a wrong-language cast stops replaying.
|
|
9591
|
-
version: "1.2.0",
|
|
9566
|
+
version: "1.1.0",
|
|
9592
9567
|
category: "audio",
|
|
9593
9568
|
summary: 'Cast an ElevenLabs voice from a natural-language description (e.g. "warm, authoritative female narrator, American accent"). Lists the account\'s voices and ranks them against the brief, emitting the best `voice_id` as a bare-string text asset plus a ranked `candidates` JSON.',
|
|
9594
|
-
when_to_use: 'Use to turn a voice description (e.g. from a `video_deconstruct` blueprint\'s `voice_description`) into a usable ElevenLabs voice id, then feed it into a `tts` node by wiring `inputs.voice_ref: $ref:<this>.voice_id` and setting `params.voice: "{{voice_ref}}"` \u2014 the engine splices the id in at run time. Review `candidates` (json) to pick a different voice. Optional `gender`/`age`/`accent`/`language` hints sharpen the ranking.
|
|
9569
|
+
when_to_use: 'Use to turn a voice description (e.g. from a `video_deconstruct` blueprint\'s `voice_description`) into a usable ElevenLabs voice id, then feed it into a `tts` node by wiring `inputs.voice_ref: $ref:<this>.voice_id` and setting `params.voice: "{{voice_ref}}"` \u2014 the engine splices the id in at run time. Review `candidates` (json) to pick a different voice. Optional `gender`/`age`/`accent`/`language` hints sharpen the ranking.',
|
|
9595
9570
|
inputs: z34.object({}).loose(),
|
|
9596
9571
|
params: z34.object({
|
|
9597
9572
|
description: z34.string().min(1),
|
|
@@ -9903,4 +9878,4 @@ export {
|
|
|
9903
9878
|
defaultRegistry,
|
|
9904
9879
|
createEngineFromEnv
|
|
9905
9880
|
};
|
|
9906
|
-
//# sourceMappingURL=chunk-
|
|
9881
|
+
//# sourceMappingURL=chunk-B7MLH3K6.js.map
|