@koda-sl/baker-cli 0.348.0 → 0.349.0-dev.dd7bb23c3
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 +16 -8
- package/dist/{chunk-YBD3W4M7.js → chunk-4QG7SF4U.js} +83 -10
- package/dist/chunk-4QG7SF4U.js.map +1 -0
- package/dist/cli.js +40 -16
- package/dist/cli.js.map +1 -1
- package/dist/engine/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-YBD3W4M7.js.map +0 -1
package/README.md
CHANGED
|
@@ -3926,8 +3926,9 @@ baker canvas sync-definition src/creatives/<slug>/
|
|
|
3926
3926
|
# 3. Inspect a finished run (per-node timing, file list, optional video thumbs)
|
|
3927
3927
|
baker canvas inspect <run_id>
|
|
3928
3928
|
|
|
3929
|
-
# 4. Discover what's available
|
|
3930
|
-
baker canvas catalog
|
|
3929
|
+
# 4. Discover what's available: a one-line index of every node, then one node's full schema
|
|
3930
|
+
baker canvas catalog
|
|
3931
|
+
baker canvas catalog --node video_generate
|
|
3931
3932
|
|
|
3932
3933
|
# 5. Safely edit a node's prompt without hand-jq (UTF-8 safe — use --text-file for
|
|
3933
3934
|
# multi-line / accented copy; the edit is re-validated before it is written back)
|
|
@@ -4067,7 +4068,7 @@ The top-level `output` declares the canvas's final result — the engine returns
|
|
|
4067
4068
|
|
|
4068
4069
|
Every node shares the envelope `{ id, type, inputs?, params? }`. `inputs` wires other nodes' output slots in; `params` configures the node. The validator enforces required input kinds and per-model param shape **before** anything is billed.
|
|
4069
4070
|
|
|
4070
|
-
`baker canvas catalog` prints
|
|
4071
|
+
`baker canvas catalog` prints a one-line index of every node; `baker canvas catalog --node <id>` prints that node's always-current machine-readable schema (params, inputs, outputs, every model), and `--full` prints every node's. The tables below mirror the catalog at time of write.
|
|
4071
4072
|
|
|
4072
4073
|
In every table:
|
|
4073
4074
|
|
|
@@ -5230,8 +5231,8 @@ The tables above mirror `packages/canvas-contract/src/registry.ts` at the time o
|
|
|
5230
5231
|
|
|
5231
5232
|
```bash
|
|
5232
5233
|
baker canvas catalog | jq '.categories | keys'
|
|
5233
|
-
baker canvas catalog | jq '.
|
|
5234
|
-
baker canvas catalog | jq '.
|
|
5234
|
+
baker canvas catalog --node image_generate | jq '.entries[0].params'
|
|
5235
|
+
baker canvas catalog --node video_generate | jq '.entries[0].params'
|
|
5235
5236
|
```
|
|
5236
5237
|
|
|
5237
5238
|
The validator surfaces unknown models / illegal aspect ratios / out-of-range params / missing required inputs with `did_you_mean` hints **before** the run starts.
|
|
@@ -5551,11 +5552,18 @@ Resolves the run dir against `--outputs-dir` (default `./canvas`) or accepts an
|
|
|
5551
5552
|
|
|
5552
5553
|
#### `baker canvas catalog`
|
|
5553
5554
|
|
|
5554
|
-
Prints the agent-facing node
|
|
5555
|
+
Prints the agent-facing node catalog. By default it is a compact index (a few KB): `categories` (category → node ids) and `nodes` (node id → one line), plus `hints`. Ask for full JSON Schemas by name:
|
|
5556
|
+
|
|
5557
|
+
- `--node <id>[,<id>…]` — those nodes' full entries: `id`, `version`, `location`, `category`, `summary`, `when_to_use`, `inputs`/`params`/`outputs` schemas, `cost_estimate_credits`, `runtime_estimate_seconds`.
|
|
5558
|
+
- `--category <name>` — narrow the index to one category; add `--full` for that category's full entries.
|
|
5559
|
+
- `--full` — every node's full entry (~160 KB).
|
|
5560
|
+
|
|
5561
|
+
An unknown node or category exits 1 with `{ ok: false, error: { code: "NOT_FOUND", fix } }` naming the valid ones.
|
|
5555
5562
|
|
|
5556
5563
|
```bash
|
|
5557
|
-
baker canvas catalog
|
|
5558
|
-
baker canvas catalog
|
|
5564
|
+
baker canvas catalog
|
|
5565
|
+
baker canvas catalog --node video_generate
|
|
5566
|
+
baker canvas catalog --category audio --full
|
|
5559
5567
|
```
|
|
5560
5568
|
|
|
5561
5569
|
---
|
|
@@ -20,9 +20,9 @@ import {
|
|
|
20
20
|
shouldEscalate
|
|
21
21
|
} from "./chunk-2OKSJNLA.js";
|
|
22
22
|
|
|
23
|
-
//
|
|
23
|
+
// ../../.pnpm-store/v10/links/@/safe-stable-stringify/2.5.0/766ad107c42df28eeadaf0ac2f9089c8a9e200f6ba0b2b1a817b8d536cbdcc49/node_modules/safe-stable-stringify/index.js
|
|
24
24
|
var require_safe_stable_stringify = __commonJS({
|
|
25
|
-
"
|
|
25
|
+
"../../.pnpm-store/v10/links/@/safe-stable-stringify/2.5.0/766ad107c42df28eeadaf0ac2f9089c8a9e200f6ba0b2b1a817b8d536cbdcc49/node_modules/safe-stable-stringify/index.js"(exports, module) {
|
|
26
26
|
"use strict";
|
|
27
27
|
var { hasOwnProperty } = Object.prototype;
|
|
28
28
|
var stringify = configure2();
|
|
@@ -1114,7 +1114,7 @@ function resolveAdaptFormats(params) {
|
|
|
1114
1114
|
return params.formats ?? [];
|
|
1115
1115
|
}
|
|
1116
1116
|
|
|
1117
|
-
//
|
|
1117
|
+
// ../../.pnpm-store/v10/links/@/safe-stable-stringify/2.5.0/766ad107c42df28eeadaf0ac2f9089c8a9e200f6ba0b2b1a817b8d536cbdcc49/node_modules/safe-stable-stringify/esm/wrapper.js
|
|
1118
1118
|
var import__ = __toESM(require_safe_stable_stringify(), 1);
|
|
1119
1119
|
var configure = import__.default.configure;
|
|
1120
1120
|
var wrapper_default = import__.default;
|
|
@@ -9605,6 +9605,83 @@ function generateCatalog(registry, opts = {}) {
|
|
|
9605
9605
|
runtime_estimate_seconds: cost?.seconds_estimate
|
|
9606
9606
|
};
|
|
9607
9607
|
}).sort((a, b) => a.id.localeCompare(b.id));
|
|
9608
|
+
return {
|
|
9609
|
+
schema: "baker-canvas-catalog/2",
|
|
9610
|
+
generated_at: opts.generatedAt ?? (/* @__PURE__ */ new Date()).toISOString(),
|
|
9611
|
+
categories: groupIds(entries),
|
|
9612
|
+
entries
|
|
9613
|
+
};
|
|
9614
|
+
}
|
|
9615
|
+
var INDEX_SUMMARY_MAX = 160;
|
|
9616
|
+
var sentences = new Intl.Segmenter("en", { granularity: "sentence" });
|
|
9617
|
+
function oneLine(summary) {
|
|
9618
|
+
const first = sentences.segment(summary)[Symbol.iterator]().next().value?.segment.trim() ?? summary;
|
|
9619
|
+
if (first.length <= INDEX_SUMMARY_MAX) return first;
|
|
9620
|
+
const cut = first.slice(0, INDEX_SUMMARY_MAX);
|
|
9621
|
+
const lastSpace = cut.lastIndexOf(" ");
|
|
9622
|
+
return `${(lastSpace > 0 ? cut.slice(0, lastSpace) : cut).replace(/[\s,;:—-]+$/u, "")}\u2026`;
|
|
9623
|
+
}
|
|
9624
|
+
function listIds(value) {
|
|
9625
|
+
return (value ?? "").split(",").map((id) => id.trim()).filter((id) => id.length > 0);
|
|
9626
|
+
}
|
|
9627
|
+
function catalogView(catalog, opts) {
|
|
9628
|
+
const knownIds = catalog.entries.map((e) => e.id);
|
|
9629
|
+
const knownCategories = Object.keys(catalog.categories);
|
|
9630
|
+
if (opts.category !== void 0 && !catalog.categories[opts.category]) {
|
|
9631
|
+
return {
|
|
9632
|
+
ok: false,
|
|
9633
|
+
error: {
|
|
9634
|
+
code: "NOT_FOUND",
|
|
9635
|
+
message: `No node category "${opts.category}".`,
|
|
9636
|
+
fix: `Pass one of: ${knownCategories.join(", ")}.`
|
|
9637
|
+
}
|
|
9638
|
+
};
|
|
9639
|
+
}
|
|
9640
|
+
const requestedIds = listIds(opts.node);
|
|
9641
|
+
if (opts.node !== void 0 && requestedIds.length === 0) {
|
|
9642
|
+
return {
|
|
9643
|
+
ok: false,
|
|
9644
|
+
error: {
|
|
9645
|
+
code: "VALIDATION_ERROR",
|
|
9646
|
+
message: "--node needs a node id.",
|
|
9647
|
+
fix: "Run `baker canvas catalog` for the ids, then pass one (or several, comma-separated)."
|
|
9648
|
+
}
|
|
9649
|
+
};
|
|
9650
|
+
}
|
|
9651
|
+
const unknownIds = requestedIds.filter((id) => !knownIds.includes(id));
|
|
9652
|
+
if (unknownIds.length > 0) {
|
|
9653
|
+
return {
|
|
9654
|
+
ok: false,
|
|
9655
|
+
error: {
|
|
9656
|
+
code: "NOT_FOUND",
|
|
9657
|
+
message: `No node named ${unknownIds.map((id) => `"${id}"`).join(", ")}.`,
|
|
9658
|
+
fix: `Pass one of: ${knownIds.join(", ")}.`
|
|
9659
|
+
}
|
|
9660
|
+
};
|
|
9661
|
+
}
|
|
9662
|
+
const inCategory = (e) => opts.category === void 0 || e.category === opts.category;
|
|
9663
|
+
const categories = opts.category === void 0 ? catalog.categories : { [opts.category]: catalog.categories[opts.category] ?? [] };
|
|
9664
|
+
if (requestedIds.length > 0) {
|
|
9665
|
+
const entries = catalog.entries.filter((e) => requestedIds.includes(e.id));
|
|
9666
|
+
return { ok: true, schema: catalog.schema, categories: groupIds(entries), entries };
|
|
9667
|
+
}
|
|
9668
|
+
if (opts.full) {
|
|
9669
|
+
return { ok: true, schema: catalog.schema, categories, entries: catalog.entries.filter(inCategory) };
|
|
9670
|
+
}
|
|
9671
|
+
const nodes = {};
|
|
9672
|
+
for (const e of catalog.entries.filter(inCategory)) nodes[e.id] = oneLine(e.summary);
|
|
9673
|
+
return {
|
|
9674
|
+
ok: true,
|
|
9675
|
+
schema: catalog.schema,
|
|
9676
|
+
categories,
|
|
9677
|
+
nodes,
|
|
9678
|
+
hints: [
|
|
9679
|
+
"One node's params, inputs, outputs, models and when to use it: baker canvas catalog --node <id> (comma-separate several).",
|
|
9680
|
+
"Every schema in a category: --category <name> --full. Every node: --full (large; prefer --node)."
|
|
9681
|
+
]
|
|
9682
|
+
};
|
|
9683
|
+
}
|
|
9684
|
+
function groupIds(entries) {
|
|
9608
9685
|
const categories = {};
|
|
9609
9686
|
for (const e of entries) {
|
|
9610
9687
|
let bucket = categories[e.category];
|
|
@@ -9614,12 +9691,7 @@ function generateCatalog(registry, opts = {}) {
|
|
|
9614
9691
|
}
|
|
9615
9692
|
bucket.push(e.id);
|
|
9616
9693
|
}
|
|
9617
|
-
return
|
|
9618
|
-
schema: "baker-canvas-catalog/2",
|
|
9619
|
-
generated_at: opts.generatedAt ?? (/* @__PURE__ */ new Date()).toISOString(),
|
|
9620
|
-
categories,
|
|
9621
|
-
entries
|
|
9622
|
-
};
|
|
9694
|
+
return categories;
|
|
9623
9695
|
}
|
|
9624
9696
|
function safeCost(def) {
|
|
9625
9697
|
if (!def.cost) return null;
|
|
@@ -9795,6 +9867,7 @@ export {
|
|
|
9795
9867
|
durationSeconds,
|
|
9796
9868
|
canonicalUrl,
|
|
9797
9869
|
toModelSafeImage,
|
|
9870
|
+
catalogView,
|
|
9798
9871
|
BackendClient2,
|
|
9799
9872
|
Engine2 as Engine,
|
|
9800
9873
|
LocalAssetStore2 as LocalAssetStore,
|
|
@@ -9805,4 +9878,4 @@ export {
|
|
|
9805
9878
|
defaultRegistry,
|
|
9806
9879
|
createEngineFromEnv
|
|
9807
9880
|
};
|
|
9808
|
-
//# sourceMappingURL=chunk-
|
|
9881
|
+
//# sourceMappingURL=chunk-4QG7SF4U.js.map
|