@koda-sl/baker-cli 0.353.0-dev.5d1d795f9 → 0.353.0-dev.8bdd8f915

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 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`.
@@ -5333,6 +5330,11 @@ and the canvas file is saved, before anything else reads it. `normalized_paths`
5333
5330
  wrote it, so validate, run, and the preview all pass, and only the publish build — a different checkout
5334
5331
  root, a different session — ever sees the break.
5335
5332
 
5333
+ **A URL in an ingest's `path` is healed the same way.** A `source: "path"` ingest whose `path` is an
5334
+ http(s) URL already runs as `source: "url"`; `validate` and `run` rewrite the file to say so
5335
+ (`normalized_paths` lists it as `{ param: "source", from: "path", to: "url" }`), so the commit gate,
5336
+ which reads the file, agrees with what rendered.
5337
+
5336
5338
  Two roots count as "this workspace": the current one, and `/home/user/repo` (`REPO_PATH`), the fixed path
5337
5339
  every Session's workspace is checked out at. A path under either names the same file in any checkout, so
5338
5340
  remapping it is a proof rather than a guess — which is what lets an already-committed canvas heal in the
@@ -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
- // 1.2.0: `language` is a hard constraint — a language no voice on the account speaks
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. `language` is strict: when no voice on the account speaks it the node fails before anything is voiced (add a voice in that language, or pass its `voice_id`). A `gender` nobody in that language has is dropped and `baker canvas run` prints a `[warn]` naming the voice cast instead.',
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),
@@ -9891,6 +9866,7 @@ export {
9891
9866
  isAudioOnly,
9892
9867
  durationSeconds,
9893
9868
  canonicalUrl,
9869
+ coercePathUrlToUrl,
9894
9870
  toModelSafeImage,
9895
9871
  catalogView,
9896
9872
  BackendClient2,
@@ -9903,4 +9879,4 @@ export {
9903
9879
  defaultRegistry,
9904
9880
  createEngineFromEnv
9905
9881
  };
9906
- //# sourceMappingURL=chunk-PHHQLFY3.js.map
9882
+ //# sourceMappingURL=chunk-YBLNCFK4.js.map