@koda-sl/baker-cli 0.306.3-dev.bb28562ac → 0.306.6-dev.368ebfa99
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 +8 -1
- package/dist/{chunk-A2VZOTCV.js → chunk-AEU5X443.js} +3 -3
- package/dist/{chunk-2IUN3S3E.js → chunk-FOWT5AS4.js} +2 -2
- package/dist/{chunk-4YF56EGK.js → chunk-KMQHIAYG.js} +4 -4
- package/dist/{chunk-3TEVIAAV.js → chunk-PY7R67NE.js} +8 -9
- package/dist/chunk-PY7R67NE.js.map +1 -0
- package/dist/{chunk-KDTHRRAC.js → chunk-TTIGSGXE.js} +3 -3
- package/dist/{chunk-WFWU3CHS.js → chunk-UIQJZGBG.js} +9 -1
- package/dist/{chunk-WFWU3CHS.js.map → chunk-UIQJZGBG.js.map} +1 -1
- package/dist/cli.js +95 -74
- package/dist/cli.js.map +1 -1
- package/dist/{client-6KQHCXS2.js → client-QFJHI3FX.js} +4 -4
- package/dist/engine/index.js +3 -3
- package/dist/{env-C7YXL6C6.js → env-PJSBLG56.js} +6 -2
- package/dist/{output-RBM32FKJ.js → output-PAE5S7RI.js} +5 -5
- package/dist/{shared-WJIJTWST.js → shared-J6GGQDIL.js} +6 -6
- package/package.json +1 -1
- package/dist/chunk-3TEVIAAV.js.map +0 -1
- /package/dist/{chunk-A2VZOTCV.js.map → chunk-AEU5X443.js.map} +0 -0
- /package/dist/{chunk-2IUN3S3E.js.map → chunk-FOWT5AS4.js.map} +0 -0
- /package/dist/{chunk-4YF56EGK.js.map → chunk-KMQHIAYG.js.map} +0 -0
- /package/dist/{chunk-KDTHRRAC.js.map → chunk-TTIGSGXE.js.map} +0 -0
- /package/dist/{client-6KQHCXS2.js.map → client-QFJHI3FX.js.map} +0 -0
- /package/dist/{env-C7YXL6C6.js.map → env-PJSBLG56.js.map} +0 -0
- /package/dist/{output-RBM32FKJ.js.map → output-PAE5S7RI.js.map} +0 -0
- /package/dist/{shared-WJIJTWST.js.map → shared-J6GGQDIL.js.map} +0 -0
package/README.md
CHANGED
|
@@ -3898,10 +3898,16 @@ paid for by the time it runs — and the findings come back as `review` and `hin
|
|
|
3898
3898
|
Each per-frame finding names the **scene file** that produced that second, so a defect is
|
|
3899
3899
|
an edit rather than a hunt — and re-running re-renders only the scenes you changed.
|
|
3900
3900
|
|
|
3901
|
-
It needs `
|
|
3901
|
+
It needs `OPENROUTER_API_KEY` (the Runtime receives it automatically). Without one the run
|
|
3902
3902
|
says the video was **not** reviewed rather than reporting it clean, and a frame that
|
|
3903
3903
|
could not be read is reported as unchecked for the same reason.
|
|
3904
3904
|
|
|
3905
|
+
The review goes through OpenRouter like every other model call on the platform, so what
|
|
3906
|
+
it costs comes back with the answer and is billed against the run. The models float
|
|
3907
|
+
(`~google/gemini-flash-latest` watches, `~google/gemini-pro-latest` reads the stills) —
|
|
3908
|
+
safe to float precisely because nothing here holds a price list that could go stale
|
|
3909
|
+
against them.
|
|
3910
|
+
|
|
3905
3911
|
|
|
3906
3912
|
> Scaffolded canvases use **workspace-relative** composition/asset paths and are validated
|
|
3907
3913
|
> against the engine's hyperframe pre-render gate at `validate` time, so a broken overlay
|
|
@@ -6157,6 +6163,7 @@ Pushing to `main` with changes in `packages/cli/` triggers the GitHub Actions wo
|
|
|
6157
6163
|
|
|
6158
6164
|
- **0.291.0**: **the image handover Task no longer depends on having uploaded the images.** It was built only from staged `asset.create` image ops, so a Session that audited a live account — found the brand campaign carrying 22 image extensions and the generic one carrying none, and reached for `assets attach` on assets that were *already in the library* — got Google's refusal and nothing else: no upload to hang a Task on, and a CLI hint telling the agent not to raise one by hand because "Baker stages it itself". The one step only the user can take reached them as a sentence in a chat that scrolls away. An image `assets attach` is now **skipped rather than refused**: it still never reaches Google (re-verified live with `validate_only` on v23 *and* v25 against 3865083115, against a control op that validates clean in the same request — `AD_IMAGE` → `UNSUPPORTED_FIELD_TYPE` at customer and campaign level, `MARKETING_IMAGE` → `FIELD_TYPE_INCOMPATIBLE_WITH_CAMPAIGN_TYPE`, `BUSINESS_LOGO` → `CUSTOMER_NOT_VERIFIED`, which is what proves the field type is the objection; **we are not on Google's allowlist for it**), but the skip carries the image and campaign names, recorded on the draft so the next staged op cannot recompute the Task away, and a batch that also carries sitelinks keeps them instead of failing whole. The schema stopped refusing the field type for the same reason: a boundary refusal has no chat to record a handover against.
|
|
6159
6165
|
|
|
6166
|
+
- **0.306.6**: the render review moved onto OpenRouter, where every other model call on this platform already goes. It was calling Gemini directly on the stated grounds that the watch pass uploads the finished mp4 inline and OpenRouter had no route that takes one — it does: a `video_url` content part accepts a base64 data URL, verified end to end (HTTP 200, video tokens counted, the model describing the clip it was sent). That one wrong premise had cost a hand-maintained price table in the backend, token counts round-tripping through the run record to be priced there, a second credential in every Runtime, and a model id pinned to `gemini-3.7-flash` so the table's key would not drift — which is also why the review had quietly stayed off `gemini-3.8-flash`. Now the reply carries `usage.cost`, the Runtime relays the gateway's figure instead of computing one, and the models float (`~google/gemini-flash-latest`, `~google/gemini-pro-latest`). The key it reads is `OPENROUTER_API_KEY`; `GEMINI_API_KEY` is still shipped for HyperFrames' own `snapshot --describe` pass, which is a third-party tool and reads that name.
|
|
6160
6167
|
- **0.306.0**: review fixes across the avatar and ad paths. **A silent clip is 5 seconds again** — the 8s speaking floor was applied to every `studio animate` call, not just ones that cast an avatar, so plain b-roll was lengthened by three seconds and billed for them. **`scaffold-ad` validates the mark it will actually draw**: the logo gates read the path the spec named rather than the one `fetchClientLogo` had just put there, so a fetched mark either skipped both checks or was refused as unreadable. **The render review is told where the ad is set, who it is for and what the script says** — read off the blueprint beside the canvas; without them the watch pass judged an accent against nothing and still graded the verdict as blocking. **A beat is "too short" by its LINE, not by the clip floor** — the old test needed a 25-word clause, so it fired on all three beats of this command's own documented example. **A voiceover stays a voiceover** — a phrase nobody is shown speaking was being folded into the presenter's clip and said on camera, words that shot was never generated for; the fold now applies only where there is a mouth for the words to contradict. `--voice-id` / `--voice-description` are gone from `baker avatars create` (0.252.0 said so; the flags were still declared and still sent), `end_card.cta` is documented as having no default, and the dead Veo/Omni content-block fallbacks are removed.
|
|
6161
6168
|
|
|
6162
6169
|
### Testing a pre-release in sandboxes
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ApiError,
|
|
3
3
|
apiGet
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-TTIGSGXE.js";
|
|
5
5
|
import {
|
|
6
6
|
getEnv
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-UIQJZGBG.js";
|
|
8
8
|
|
|
9
9
|
// src/error-handler.ts
|
|
10
10
|
var REQUEST_CONNECTION_PLATFORM = {
|
|
@@ -294,4 +294,4 @@ export {
|
|
|
294
294
|
writeAdsOutput,
|
|
295
295
|
resolveCustomerId
|
|
296
296
|
};
|
|
297
|
-
//# sourceMappingURL=chunk-
|
|
297
|
+
//# sourceMappingURL=chunk-AEU5X443.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
debugLogSetting
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-UIQJZGBG.js";
|
|
4
4
|
|
|
5
5
|
// src/debugLog.ts
|
|
6
6
|
import { appendFileSync, mkdirSync, renameSync, statSync } from "fs";
|
|
@@ -150,4 +150,4 @@ export {
|
|
|
150
150
|
readBodyForLog,
|
|
151
151
|
installStreamTaps
|
|
152
152
|
};
|
|
153
|
-
//# sourceMappingURL=chunk-
|
|
153
|
+
//# sourceMappingURL=chunk-FOWT5AS4.js.map
|
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
handleConnectionError,
|
|
3
3
|
needsConnectionFix,
|
|
4
4
|
writeAdsJson
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-AEU5X443.js";
|
|
6
6
|
import {
|
|
7
7
|
ApiError
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-TTIGSGXE.js";
|
|
9
9
|
import {
|
|
10
10
|
getEnv
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-UIQJZGBG.js";
|
|
12
12
|
|
|
13
13
|
// src/commands/ads/meta/shared.ts
|
|
14
14
|
var DAY_MS = 864e5;
|
|
@@ -108,4 +108,4 @@ export {
|
|
|
108
108
|
csvOrJson,
|
|
109
109
|
resolveEffectiveStatus
|
|
110
110
|
};
|
|
111
|
-
//# sourceMappingURL=chunk-
|
|
111
|
+
//# sourceMappingURL=chunk-KMQHIAYG.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
debugLogHttp,
|
|
3
3
|
readBodyForLog
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-FOWT5AS4.js";
|
|
5
5
|
import {
|
|
6
6
|
DIRECT_ROUTE,
|
|
7
7
|
__commonJS,
|
|
@@ -15,11 +15,11 @@ import {
|
|
|
15
15
|
plannedRoutes,
|
|
16
16
|
refuseNonPublicUrl,
|
|
17
17
|
shouldEscalate
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-UIQJZGBG.js";
|
|
19
19
|
|
|
20
|
-
// ../../.pnpm-store/v10/links/@/safe-stable-stringify/2.5.0/
|
|
20
|
+
// ../../.pnpm-store/v10/links/@/safe-stable-stringify/2.5.0/509a695c9237c6e3727f1f1f99169917f329e3ff3f7877be290b684e24bf153d/node_modules/safe-stable-stringify/index.js
|
|
21
21
|
var require_safe_stable_stringify = __commonJS({
|
|
22
|
-
"../../.pnpm-store/v10/links/@/safe-stable-stringify/2.5.0/
|
|
22
|
+
"../../.pnpm-store/v10/links/@/safe-stable-stringify/2.5.0/509a695c9237c6e3727f1f1f99169917f329e3ff3f7877be290b684e24bf153d/node_modules/safe-stable-stringify/index.js"(exports, module) {
|
|
23
23
|
"use strict";
|
|
24
24
|
var { hasOwnProperty } = Object.prototype;
|
|
25
25
|
var stringify = configure2();
|
|
@@ -1111,7 +1111,7 @@ function resolveAdaptFormats(params) {
|
|
|
1111
1111
|
return params.formats ?? [];
|
|
1112
1112
|
}
|
|
1113
1113
|
|
|
1114
|
-
// ../../.pnpm-store/v10/links/@/safe-stable-stringify/2.5.0/
|
|
1114
|
+
// ../../.pnpm-store/v10/links/@/safe-stable-stringify/2.5.0/509a695c9237c6e3727f1f1f99169917f329e3ff3f7877be290b684e24bf153d/node_modules/safe-stable-stringify/esm/wrapper.js
|
|
1115
1115
|
var import__ = __toESM(require_safe_stable_stringify(), 1);
|
|
1116
1116
|
var configure = import__.default.configure;
|
|
1117
1117
|
var wrapper_default = import__.default;
|
|
@@ -2204,11 +2204,10 @@ function supportsParam(kind, model, param) {
|
|
|
2204
2204
|
}
|
|
2205
2205
|
var DEFAULT_CLIP_DURATION_S = 5;
|
|
2206
2206
|
var SPOKEN_WORDS_PER_SECOND = 2.5;
|
|
2207
|
+
var SPOKEN_LINE = new RegExp(`(?<![\\p{L}\\p{N}])['"\\u201c\\u201d\\u2018\\u2019]((?:[^'"\\u201c\\u201d\\u2018\\u2019]|(?<=\\p{L})['\\u2019](?=\\p{L})){8,})['"\\u201c\\u201d\\u2018\\u2019](?![\\p{L}\\p{N}])`, "gu");
|
|
2207
2208
|
function spokenWordsIn(prompt) {
|
|
2208
2209
|
if (!prompt) return 0;
|
|
2209
|
-
const quoted = [
|
|
2210
|
-
...prompt.matchAll(/['"\u201c\u201d\u2018\u2019]([^'"\u201c\u201d\u2018\u2019]{8,})['"\u201c\u201d\u2018\u2019]/g)
|
|
2211
|
-
].map((m) => m[1] ?? "");
|
|
2210
|
+
const quoted = [...prompt.matchAll(SPOKEN_LINE)].map((m) => m[1] ?? "");
|
|
2212
2211
|
const text = quoted.join(" ").trim();
|
|
2213
2212
|
return text ? text.split(/\s+/).filter(Boolean).length : 0;
|
|
2214
2213
|
}
|
|
@@ -9662,4 +9661,4 @@ export {
|
|
|
9662
9661
|
defaultRegistry,
|
|
9663
9662
|
createEngineFromEnv
|
|
9664
9663
|
};
|
|
9665
|
-
//# sourceMappingURL=chunk-
|
|
9664
|
+
//# sourceMappingURL=chunk-PY7R67NE.js.map
|