@shop-os/modelkit 0.2.18 → 0.2.20

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/CHANGELOG.md CHANGED
@@ -9,6 +9,25 @@ header in the release PR.
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [0.2.20] - Unreleased
13
+
14
+ ### Added
15
+ - `constraints.audio` (`"always" | "optional" | "never"`): whether a video row's output has sound. Every video row sets it; `supports: ["generateAudio"]` still means only that sound can be switched. Read it with `outputAudio(row)`.
16
+ - `constraints.prompt` (`{ referenceSyntax: "numbered" | "caption" | "descriptive"; maxChars? }`): how a prompt should point at reference N. Gemini image rows and the Gemini Omni rows use `caption` (their adapters send `MediaRef.label`); every other row reads as `numbered`. Read it with `promptConventions(row)`.
17
+ - Both keys are strict on write (`CatalogModelSchema`, pro-backend's pro-admin validation) and tolerant on read: `load.ts` keeps a row with an invalid value and the accessors read it as not set.
18
+ - On read, `load.ts` removes an invalid `constraints.audio` and normalises an invalid `constraints.prompt` (with one warning per row), so a loaded row never carries an invalid value typed as valid. `CatalogSchema` normalises the same way (via `normaliseConventions`, exported from `conventions.ts`); the write schema `CatalogModelSchema` stays strict.
19
+
20
+ ### Fixed
21
+ - `minimax-h3-reference` / `minimax-h3-max-reference`: `capabilities.framesExcludeReferences: true`. A start frame sent with references was silently lost (fal's reference-to-video endpoint ignores frames); the resolver now keeps the frame and drops the references with a warning (coerce) or rejects the pair (error).
22
+ - `flux-2-pro`: `references.images: 8`. The row declared no limit, so every reference reached Prodia.
23
+
24
+ Mirror every row change on the pro-backend `model_catalog` rows in each environment, after pro-backend is on 0.2.20 (apps read the rows, not this file), and set `constraints.audio: "always"` on the pro-admin-only `p-video-2-pro` row.
25
+
26
+ ## [0.2.19] - Unreleased
27
+
28
+ ### Changed
29
+ - `gemini-3.1-flash-image-preview` (Nano Banana 2) description says "concept boards" instead of "moodboards": Sloosh has no moodboards and shows this text in its model picker. Mirror the change on the pro-backend `model_catalog` row (`display.description`) in each environment; apps read the row, not this file.
30
+
12
31
  ## [0.2.18] - Unreleased
13
32
 
14
33
  ### Changed
package/README.md CHANGED
@@ -259,7 +259,7 @@ const defaultKit = createDefaultModelKit({ keys: { pro: keysFromEnv(process.env)
259
259
  ## Consumers
260
260
 
261
261
  Every app takes the published package from npm, not a `workspace:*` link. This is a
262
- deliberate decision (AGENTS.md §3.1): consumers span three repos and must agree on one
262
+ deliberate decision (AGENTS.md §3): consumers span three repos and must agree on one
263
263
  version, the package bundles provider SDKs the Docker whitelist recipe would have to
264
264
  rebuild per app, and the Trigger.dev deploys have no `packages/` in their build context.
265
265
  The accepted cost: a kit change and its consumer change never land in one PR, and a