@molecule/api-resource-ai-models 1.13.0 → 1.15.0

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
@@ -3,7 +3,7 @@ AUTO-GENERATED — DO NOT EDIT THIS FILE.
3
3
  Generated by `mlcl sync-docs` from the package's src/index.ts JSDoc + mlcl/registry.json.
4
4
  Edits here are overwritten on the next commit (molecule's pre-commit hook regenerates).
5
5
  To change this document, edit the module-level JSDoc in src/index.ts.
6
- Generated: 2026-09-30T04:56:41.977Z
6
+ Generated: 2026-10-08T16:53:19.950Z
7
7
  -->
8
8
 
9
9
  # @molecule/api-resource-ai-models
@@ -343,7 +343,16 @@ interface ModelDefinition {
343
343
  * unchanged. To schedule the END of peak pricing, declare an explicit
344
344
  * `{ windows: [], multiplier: 1 }`.
345
345
  *
346
- * Resolution is `effectiveBaseRates()` / `effectivePeakPricing()`, and every
346
+ * `longContextPricing` here, when declared, replaces the model's long-context
347
+ * band from the same instant; when omitted, the existing band carries through
348
+ * unchanged. The band that bills AFTER the instant (declared here, or the
349
+ * carried-through one) must stay strictly dearer than the scheduled base
350
+ * rates — the catalog invariant test enforces that at staging time, so a
351
+ * banded model's price change can never land with a stale band silently
352
+ * under-metering its most expensive prompts.
353
+ *
354
+ * Resolution is `effectiveBaseRates()` / `effectivePeakPricing()` /
355
+ * `effectiveLongContextPricing()`, and every
347
356
  * consumer reaches it through `modelRegionRates()` / `priceMultiplierAt()` /
348
357
  * the `withEffectivePricing()` projection the list handler serves — so a
349
358
  * scheduled change lands everywhere at once with no follow-up edit. Once the
@@ -368,6 +377,12 @@ interface ModelDefinition {
368
377
  excludedDatesUtc?: string[]
369
378
  rule?: { url: string; text: string }
370
379
  }
380
+ /**
381
+ * Long-context band from `effectiveFrom` (omitted → the model's existing
382
+ * band carries through unchanged). Indexed off the model-level field so
383
+ * the two shapes can never drift apart.
384
+ */
385
+ longContextPricing?: ModelDefinition['longContextPricing']
371
386
  /** Where the change was announced, for the re-verify pass after it lands. */
372
387
  source?: string
373
388
  }
@@ -392,6 +407,27 @@ interface ModelDefinition {
392
407
  /** Fast-mode prompt-cache write price per million tokens in USD. */
393
408
  cacheWritePricePerMTok: number
394
409
  }
410
+ /**
411
+ * Long-context pricing — models priced BY PROMPT LENGTH (Claude Haiku 5.5: 5× above 100K prompt tokens). A request
412
+ * whose prompt (fresh input + cache read + cache write tokens) EXCEEDS `aboveInputTokens` bills ALL of its tokens at
413
+ * these rates, not just the excess. Resolved by `modelRegionRates(model, region, at, promptTokens)`; callers must pass
414
+ * ONE provider call's prompt size, never a multi-call sum. All four rates are required for the same never-under-meter
415
+ * reasons as the base rates. A staged `scheduledPricing` change can carry its own replacement band from the same
416
+ * instant (omitted → this band carries through) — resolved by `effectiveLongContextPricing()`. A `regionPricing`
417
+ * override is a different host's complete rate card, so the band never applies on top of an override.
418
+ */
419
+ longContextPricing?: {
420
+ /** A prompt larger than this many tokens bills at the long-context rates. */
421
+ aboveInputTokens: number
422
+ /** Long-context input price per million uncached tokens in USD. */
423
+ inputPricePerMTok: number
424
+ /** Long-context output price per million tokens in USD. */
425
+ outputPricePerMTok: number
426
+ /** Long-context prompt-cache read price per million tokens in USD. */
427
+ cacheReadPricePerMTok: number
428
+ /** Long-context prompt-cache write price per million tokens in USD. */
429
+ cacheWritePricePerMTok: number
430
+ }
395
431
  /** Reliable knowledge cutoff date (YYYY-MM-DD). */
396
432
  knowledgeCutoff: string
397
433
  /**
@@ -561,6 +597,40 @@ function effectiveBaseRates(modelDef: ModelDefinition, at?: Date): ModelTokenRat
561
597
 
562
598
  **Returns:** The base rates in effect at that instant.
563
599
 
600
+ #### `effectiveLongContextPricing(modelDef, at)`
601
+
602
+ A model's long-context band in effect at a given instant: the staged
603
+ {@link ModelDefinition.scheduledPricing} `longContextPricing` once its
604
+ `effectiveFrom` has passed (when that entry declares one — an omitted one
605
+ leaves the model's existing band in force), else the model's own
606
+ {@link ModelDefinition.longContextPricing}.
607
+
608
+ This is what lets a banded model's price change move BOTH cards at once:
609
+ resolving the static band against landed scheduled base rates would leave
610
+
611
+ > threshold prompts on a stale card (possibly cheaper than the new base —
612
+ > silently under-metering the most expensive traffic).
613
+
614
+ ```typescript
615
+ function effectiveLongContextPricing(
616
+ modelDef: ModelDefinition,
617
+ at?: Date,
618
+ ):
619
+ | {
620
+ aboveInputTokens: number
621
+ inputPricePerMTok: number
622
+ outputPricePerMTok: number
623
+ cacheReadPricePerMTok: number
624
+ cacheWritePricePerMTok: number
625
+ }
626
+ | undefined
627
+ ```
628
+
629
+ - `modelDef` — The model definition.
630
+ - `at` — The instant to evaluate (defaults to now).
631
+
632
+ **Returns:** The long-context band in effect, or `undefined` when none is.
633
+
564
634
  #### `effectiveModelRegion(modelDef, requested)`
565
635
 
566
636
  Resolve a model's effective processing region: the requested region when the
@@ -683,7 +753,7 @@ function list(_req: MoleculeRequest, res: MoleculeResponse): Promise<void>
683
753
  - `_req` — The request object (unused).
684
754
  - `res` — The response object.
685
755
 
686
- #### `modelRegionRates(modelDef, requested, at)`
756
+ #### `modelRegionRates(modelDef, requested, at, promptTokens)`
687
757
 
688
758
  The token rates for a model in a given processing region: the model's
689
759
  {@link ModelDefinition.regionPricing} override for the region when one
@@ -699,13 +769,26 @@ keep billing a superseded rate by omitting it — metering should still pass
699
769
  each request's own timestamp, the same way it must for
700
770
  {@link priceMultiplierAt}.
701
771
 
772
+ A model priced by prompt length ({@link ModelDefinition.longContextPricing}) bills a request whose
773
+ `promptTokens` EXCEED the threshold at the long-context rates (all of its tokens, not the excess). Pass ONE
774
+ provider call's prompt size (fresh input + cache read + cache write); omit it and the base rates apply. The
775
+ band itself is resolved at `at` via {@link effectiveLongContextPricing} — a landed
776
+ {@link ModelDefinition.scheduledPricing} change that declares its own band replaces the static one from
777
+ the same instant (an omitted one carries the static band through).
778
+
702
779
  ```typescript
703
- function modelRegionRates(modelDef: ModelDefinition, requested?: string, at?: Date): ModelTokenRates
780
+ function modelRegionRates(
781
+ modelDef: ModelDefinition,
782
+ requested?: string,
783
+ at?: Date,
784
+ promptTokens?: number,
785
+ ): ModelTokenRates
704
786
  ```
705
787
 
706
788
  - `modelDef` — The model definition.
707
789
  - `requested` — The user's per-model region choice, if any.
708
790
  - `at` — The instant to price at (defaults to now).
791
+ - `promptTokens` — The request's prompt size in tokens, when the caller knows it.
709
792
 
710
793
  **Returns:** The region-effective rates.
711
794
 
@@ -897,6 +980,28 @@ Sources (verified 2026-07-28; OpenAI re-verified 2026-07-31 after the
897
980
  pages: non-default temperature 400, tool_choice any/tool 400,
898
981
  thinking "disabled" replaced by "between_tools" — Synthase sends none of
899
982
  those. Every other Anthropic price on the pricing page is unchanged.)
983
+ (re-verified 2026-10-08 on /docs/en/about-claude/pricing: sonnet-5-5 cache
984
+ hits are $0.10 — footnote 2 prices Opus 5.5 AND Sonnet 5.5 cache hits at
985
+ 0.05× input — not the $0.20 recorded at its add; catalog corrected. Every
986
+ other cataloged Anthropic price on that page is unchanged.)
987
+ (verified 2026-10-08 — ADDED claude-haiku-5-5, released 2026-10-07 and
988
+ listed "Active (latest)" on /docs/en/models/haiku-5-5/overview, which
989
+ moves claude-haiku-4-5 to "Legacy models (still available)" → superseded.
990
+ Model page + pricing page: $0.10/$0.50 per MTok for prompts up to 100K
991
+ tokens — the first Anthropic model priced BY PROMPT LENGTH (over 100K:
992
+ $0.50/$2.50, cache read $0.05, 5m write $0.625 — modeled by
993
+ `longContextPricing`; the Gemini/Grok >200K and GPT-6 >272K bands are
994
+ NOT) — 5m cache write $0.125, cache
995
+ hits $0.01 (standard 0.1×), web search $10/1k. 1M ctx / 128K out, text +
996
+ image input, reliable knowledge cutoff Jun 2026. Effort page: all five
997
+ levels, default MEDIUM. Model page "Good to know": non-default
998
+ temperature/top_p/top_k → 400 (rejectsTemperature). Unlike
999
+ opus-5-5/sonnet-5.5, forced tool_choice any/tool still works — the
1000
+ pricing page's tool-token table carries an any/tool count for it (406)
1001
+ where those two have none — and thinking {type:"disabled"} is accepted at
1002
+ high-or-below effort; Synthase sends neither disabled nor a temperature.
1003
+ Adaptive thinking only, budget_tokens is the legacy path. Every other
1004
+ Anthropic price on the pricing page is unchanged.)
900
1005
  - OpenAI: https://developers.openai.com/api/docs/pricing (GPT-5.6 family GA
901
1006
  2026-07-09; REPRICED 2026-07-30: -luna cut 80% to $0.20/$1.20, -terra cut
902
1007
  20% to $2/$12, -sol unchanged $5/$30; cache read 0.1× input; gpt-5.5/
package/dist/lookup.d.ts CHANGED
@@ -91,6 +91,23 @@ export declare function effectiveBaseRates(modelDef: ModelDefinition, at?: Date)
91
91
  * @returns The peak-pricing config in effect, or `undefined` when none is.
92
92
  */
93
93
  export declare function effectivePeakPricing(modelDef: ModelDefinition, at?: Date): ModelDefinition['peakPricing'];
94
+ /**
95
+ * A model's long-context band in effect at a given instant: the staged
96
+ * {@link ModelDefinition.scheduledPricing} `longContextPricing` once its
97
+ * `effectiveFrom` has passed (when that entry declares one — an omitted one
98
+ * leaves the model's existing band in force), else the model's own
99
+ * {@link ModelDefinition.longContextPricing}.
100
+ *
101
+ * This is what lets a banded model's price change move BOTH cards at once:
102
+ * resolving the static band against landed scheduled base rates would leave
103
+ * >threshold prompts on a stale card (possibly cheaper than the new base —
104
+ * silently under-metering the most expensive traffic).
105
+ *
106
+ * @param modelDef - The model definition.
107
+ * @param at - The instant to evaluate (defaults to now).
108
+ * @returns The long-context band in effect, or `undefined` when none is.
109
+ */
110
+ export declare function effectiveLongContextPricing(modelDef: ModelDefinition, at?: Date): ModelDefinition['longContextPricing'];
94
111
  /**
95
112
  * A model projected onto the pricing in effect at a given instant: the staged
96
113
  * {@link ModelDefinition.scheduledPricing} rates folded into the base fields
@@ -170,10 +187,18 @@ export interface ModelTokenRates {
170
187
  * each request's own timestamp, the same way it must for
171
188
  * {@link priceMultiplierAt}.
172
189
  *
190
+ * A model priced by prompt length ({@link ModelDefinition.longContextPricing}) bills a request whose
191
+ * `promptTokens` EXCEED the threshold at the long-context rates (all of its tokens, not the excess). Pass ONE
192
+ * provider call's prompt size (fresh input + cache read + cache write); omit it and the base rates apply. The
193
+ * band itself is resolved at `at` via {@link effectiveLongContextPricing} — a landed
194
+ * {@link ModelDefinition.scheduledPricing} change that declares its own band replaces the static one from
195
+ * the same instant (an omitted one carries the static band through).
196
+ *
173
197
  * @param modelDef - The model definition.
174
198
  * @param requested - The user's per-model region choice, if any.
175
199
  * @param at - The instant to price at (defaults to now).
200
+ * @param promptTokens - The request's prompt size in tokens, when the caller knows it.
176
201
  * @returns The region-effective rates.
177
202
  */
178
- export declare function modelRegionRates(modelDef: ModelDefinition, requested?: string, at?: Date): ModelTokenRates;
203
+ export declare function modelRegionRates(modelDef: ModelDefinition, requested?: string, at?: Date, promptTokens?: number): ModelTokenRates;
179
204
  //# sourceMappingURL=lookup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../src/lookup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE/D;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,cAAc,CAAC,GACxD,OAAO,CAET;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CASvE;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,MAAM,CAEzC,CAAA;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,eAAe,EAAE,CAEtF;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,kBAAkB,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,SAAS,YAAY,EAAE,GACtE,SAAS,eAAe,EAAE,CAI5B;AAoBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,EACzB,EAAE,GAAE,IAAiB,GACpB,eAAe,CAgBjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,eAAe,EACzB,EAAE,GAAE,IAAiB,GACpB,eAAe,CAAC,aAAa,CAAC,CAMhC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,eAAe,EACzB,EAAE,GAAE,IAAiB,GACpB,eAAe,CASjB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,eAAe,GAAG,SAAS,EACrC,EAAE,EAAE,IAAI,EACR,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CA2BR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,eAAe,GAAG,SAAS,EACrC,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAGR;AAED,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,iBAAiB,EAAE,MAAM,CAAA;IACzB,8CAA8C;IAC9C,kBAAkB,EAAE,MAAM,CAAA;IAC1B,yDAAyD;IACzD,qBAAqB,EAAE,MAAM,CAAA;IAC7B,0DAA0D;IAC1D,sBAAsB,EAAE,MAAM,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,eAAe,EACzB,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,GAAE,IAAiB,GACpB,eAAe,CAYjB"}
1
+ {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../src/lookup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE/D;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,cAAc,CAAC,GACxD,OAAO,CAET;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CASvE;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,MAAM,CAEzC,CAAA;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,eAAe,EAAE,CAEtF;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,kBAAkB,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,SAAS,YAAY,EAAE,GACtE,SAAS,eAAe,EAAE,CAI5B;AAoBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,EACzB,EAAE,GAAE,IAAiB,GACpB,eAAe,CAgBjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,eAAe,EACzB,EAAE,GAAE,IAAiB,GACpB,eAAe,CAAC,aAAa,CAAC,CAMhC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,eAAe,EACzB,EAAE,GAAE,IAAiB,GACpB,eAAe,CAAC,oBAAoB,CAAC,CAMvC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,eAAe,EACzB,EAAE,GAAE,IAAiB,GACpB,eAAe,CAWjB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,eAAe,GAAG,SAAS,EACrC,EAAE,EAAE,IAAI,EACR,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CA2BR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,eAAe,GAAG,SAAS,EACrC,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAGR;AAED,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,iBAAiB,EAAE,MAAM,CAAA;IACzB,8CAA8C;IAC9C,kBAAkB,EAAE,MAAM,CAAA;IAC1B,yDAAyD;IACzD,qBAAqB,EAAE,MAAM,CAAA;IAC7B,0DAA0D;IAC1D,sBAAsB,EAAE,MAAM,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,eAAe,EACzB,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,GAAE,IAAiB,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,eAAe,CAqBjB"}
package/dist/lookup.js CHANGED
@@ -151,6 +151,29 @@ export function effectivePeakPricing(modelDef, at = new Date()) {
151
151
  }
152
152
  return modelDef.peakPricing;
153
153
  }
154
+ /**
155
+ * A model's long-context band in effect at a given instant: the staged
156
+ * {@link ModelDefinition.scheduledPricing} `longContextPricing` once its
157
+ * `effectiveFrom` has passed (when that entry declares one — an omitted one
158
+ * leaves the model's existing band in force), else the model's own
159
+ * {@link ModelDefinition.longContextPricing}.
160
+ *
161
+ * This is what lets a banded model's price change move BOTH cards at once:
162
+ * resolving the static band against landed scheduled base rates would leave
163
+ * >threshold prompts on a stale card (possibly cheaper than the new base —
164
+ * silently under-metering the most expensive traffic).
165
+ *
166
+ * @param modelDef - The model definition.
167
+ * @param at - The instant to evaluate (defaults to now).
168
+ * @returns The long-context band in effect, or `undefined` when none is.
169
+ */
170
+ export function effectiveLongContextPricing(modelDef, at = new Date()) {
171
+ const scheduled = modelDef.scheduledPricing;
172
+ if (scheduled?.longContextPricing && scheduledPricingApplies(modelDef, at)) {
173
+ return scheduled.longContextPricing;
174
+ }
175
+ return modelDef.longContextPricing;
176
+ }
154
177
  /**
155
178
  * A model projected onto the pricing in effect at a given instant: the staged
156
179
  * {@link ModelDefinition.scheduledPricing} rates folded into the base fields
@@ -171,10 +194,12 @@ export function withEffectivePricing(modelDef, at = new Date()) {
171
194
  return modelDef;
172
195
  const { scheduledPricing: _scheduledPricing, ...rest } = modelDef;
173
196
  const peakPricing = effectivePeakPricing(modelDef, at);
197
+ const longContextPricing = effectiveLongContextPricing(modelDef, at);
174
198
  return {
175
199
  ...rest,
176
200
  ...effectiveBaseRates(modelDef, at),
177
201
  ...(peakPricing ? { peakPricing } : {}),
202
+ ...(longContextPricing ? { longContextPricing } : {}),
178
203
  };
179
204
  }
180
205
  /**
@@ -265,15 +290,32 @@ export function effectiveModelRegion(modelDef, requested) {
265
290
  * each request's own timestamp, the same way it must for
266
291
  * {@link priceMultiplierAt}.
267
292
  *
293
+ * A model priced by prompt length ({@link ModelDefinition.longContextPricing}) bills a request whose
294
+ * `promptTokens` EXCEED the threshold at the long-context rates (all of its tokens, not the excess). Pass ONE
295
+ * provider call's prompt size (fresh input + cache read + cache write); omit it and the base rates apply. The
296
+ * band itself is resolved at `at` via {@link effectiveLongContextPricing} — a landed
297
+ * {@link ModelDefinition.scheduledPricing} change that declares its own band replaces the static one from
298
+ * the same instant (an omitted one carries the static band through).
299
+ *
268
300
  * @param modelDef - The model definition.
269
301
  * @param requested - The user's per-model region choice, if any.
270
302
  * @param at - The instant to price at (defaults to now).
303
+ * @param promptTokens - The request's prompt size in tokens, when the caller knows it.
271
304
  * @returns The region-effective rates.
272
305
  */
273
- export function modelRegionRates(modelDef, requested, at = new Date()) {
306
+ export function modelRegionRates(modelDef, requested, at = new Date(), promptTokens) {
274
307
  const region = effectiveModelRegion(modelDef, requested);
275
308
  const override = modelDef.regionPricing?.[region];
276
309
  if (!override) {
310
+ const longBand = effectiveLongContextPricing(modelDef, at);
311
+ if (longBand && typeof promptTokens === 'number' && promptTokens > longBand.aboveInputTokens) {
312
+ return {
313
+ inputPricePerMTok: longBand.inputPricePerMTok,
314
+ outputPricePerMTok: longBand.outputPricePerMTok,
315
+ cacheReadPricePerMTok: longBand.cacheReadPricePerMTok,
316
+ cacheWritePricePerMTok: longBand.cacheWritePricePerMTok,
317
+ };
318
+ }
277
319
  return effectiveBaseRates(modelDef, at);
278
320
  }
279
321
  return {
package/dist/models.d.ts CHANGED
@@ -113,6 +113,28 @@ import type { ModelDefinition } from './types.js';
113
113
  * pages: non-default temperature 400, tool_choice any/tool 400,
114
114
  * thinking "disabled" replaced by "between_tools" — Synthase sends none of
115
115
  * those. Every other Anthropic price on the pricing page is unchanged.)
116
+ * (re-verified 2026-10-08 on /docs/en/about-claude/pricing: sonnet-5-5 cache
117
+ * hits are $0.10 — footnote 2 prices Opus 5.5 AND Sonnet 5.5 cache hits at
118
+ * 0.05× input — not the $0.20 recorded at its add; catalog corrected. Every
119
+ * other cataloged Anthropic price on that page is unchanged.)
120
+ * (verified 2026-10-08 — ADDED claude-haiku-5-5, released 2026-10-07 and
121
+ * listed "Active (latest)" on /docs/en/models/haiku-5-5/overview, which
122
+ * moves claude-haiku-4-5 to "Legacy models (still available)" → superseded.
123
+ * Model page + pricing page: $0.10/$0.50 per MTok for prompts up to 100K
124
+ * tokens — the first Anthropic model priced BY PROMPT LENGTH (over 100K:
125
+ * $0.50/$2.50, cache read $0.05, 5m write $0.625 — modeled by
126
+ * `longContextPricing`; the Gemini/Grok >200K and GPT-6 >272K bands are
127
+ * NOT) — 5m cache write $0.125, cache
128
+ * hits $0.01 (standard 0.1×), web search $10/1k. 1M ctx / 128K out, text +
129
+ * image input, reliable knowledge cutoff Jun 2026. Effort page: all five
130
+ * levels, default MEDIUM. Model page "Good to know": non-default
131
+ * temperature/top_p/top_k → 400 (rejectsTemperature). Unlike
132
+ * opus-5-5/sonnet-5.5, forced tool_choice any/tool still works — the
133
+ * pricing page's tool-token table carries an any/tool count for it (406)
134
+ * where those two have none — and thinking {type:"disabled"} is accepted at
135
+ * high-or-below effort; Synthase sends neither disabled nor a temperature.
136
+ * Adaptive thinking only, budget_tokens is the legacy path. Every other
137
+ * Anthropic price on the pricing page is unchanged.)
116
138
  * - OpenAI: https://developers.openai.com/api/docs/pricing (GPT-5.6 family GA
117
139
  * 2026-07-09; REPRICED 2026-07-30: -luna cut 80% to $0.20/$1.20, -terra cut
118
140
  * 20% to $2/$12, -sol unchanged $5/$30; cache read 0.1× input; gpt-5.5/
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAwDjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsSG;AACH,eAAO,MAAM,MAAM,EAAE,SAAS,eAAe,EAgxEnC,CAAA"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAwDjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4TG;AACH,eAAO,MAAM,MAAM,EAAE,SAAS,eAAe,EA80EnC,CAAA"}
package/dist/models.js CHANGED
@@ -162,6 +162,28 @@ const CHINA_PUBLIC_HOLIDAYS = [
162
162
  * pages: non-default temperature 400, tool_choice any/tool 400,
163
163
  * thinking "disabled" replaced by "between_tools" — Synthase sends none of
164
164
  * those. Every other Anthropic price on the pricing page is unchanged.)
165
+ * (re-verified 2026-10-08 on /docs/en/about-claude/pricing: sonnet-5-5 cache
166
+ * hits are $0.10 — footnote 2 prices Opus 5.5 AND Sonnet 5.5 cache hits at
167
+ * 0.05× input — not the $0.20 recorded at its add; catalog corrected. Every
168
+ * other cataloged Anthropic price on that page is unchanged.)
169
+ * (verified 2026-10-08 — ADDED claude-haiku-5-5, released 2026-10-07 and
170
+ * listed "Active (latest)" on /docs/en/models/haiku-5-5/overview, which
171
+ * moves claude-haiku-4-5 to "Legacy models (still available)" → superseded.
172
+ * Model page + pricing page: $0.10/$0.50 per MTok for prompts up to 100K
173
+ * tokens — the first Anthropic model priced BY PROMPT LENGTH (over 100K:
174
+ * $0.50/$2.50, cache read $0.05, 5m write $0.625 — modeled by
175
+ * `longContextPricing`; the Gemini/Grok >200K and GPT-6 >272K bands are
176
+ * NOT) — 5m cache write $0.125, cache
177
+ * hits $0.01 (standard 0.1×), web search $10/1k. 1M ctx / 128K out, text +
178
+ * image input, reliable knowledge cutoff Jun 2026. Effort page: all five
179
+ * levels, default MEDIUM. Model page "Good to know": non-default
180
+ * temperature/top_p/top_k → 400 (rejectsTemperature). Unlike
181
+ * opus-5-5/sonnet-5.5, forced tool_choice any/tool still works — the
182
+ * pricing page's tool-token table carries an any/tool count for it (406)
183
+ * where those two have none — and thinking {type:"disabled"} is accepted at
184
+ * high-or-below effort; Synthase sends neither disabled nor a temperature.
185
+ * Adaptive thinking only, budget_tokens is the legacy path. Every other
186
+ * Anthropic price on the pricing page is unchanged.)
165
187
  * - OpenAI: https://developers.openai.com/api/docs/pricing (GPT-5.6 family GA
166
188
  * 2026-07-09; REPRICED 2026-07-30: -luna cut 80% to $0.20/$1.20, -terra cut
167
189
  * 20% to $2/$12, -sol unchanged $5/$30; cache read 0.1× input; gpt-5.5/
@@ -631,9 +653,10 @@ export const MODELS = [
631
653
  webFetchToolType: 'web_fetch_20260209',
632
654
  inputPricePerMTok: 2,
633
655
  outputPricePerMTok: 10,
634
- // Standard Anthropic ratios (pricing page: $0.20 cache hits, $2.50 5m
635
- // cache write, verified 2026-09-29).
636
- cacheReadPricePerMTok: 0.2,
656
+ // Cache hits are 0.05× input = $0.10 (pricing page footnote 2, shared
657
+ // with Opus 5.5; re-verified 2026-10-08 — the 2026-09-29 add carried the
658
+ // standard 0.1× $0.20); 5m cache write is the usual 1.25× $2.50.
659
+ cacheReadPricePerMTok: 0.1,
637
660
  cacheWritePricePerMTok: 2.5,
638
661
  // Reliable knowledge cutoff Jun 2026 (model page "Specifications").
639
662
  knowledgeCutoff: '2026-06-01',
@@ -799,6 +822,61 @@ export const MODELS = [
799
822
  deprecatedAt: '2026-07-07',
800
823
  supersededBy: 'claude-sonnet-5-5',
801
824
  },
825
+ {
826
+ id: 'claude-haiku-5-5',
827
+ provider: 'anthropic',
828
+ // Model page "Good to know": omit temperature/top_p/top_k — a non-default
829
+ // value for ANY of them returns a 400 (verified 2026-10-08); callers omit
830
+ // it (request-shape.ts temperatureParam).
831
+ rejectsTemperature: true,
832
+ label: 'Claude Haiku 5.5',
833
+ description: 'Fastest Anthropic — high-volume classification, extraction & subagents',
834
+ contextWindow: 1_000_000,
835
+ maxOutputTokens: 128_000,
836
+ supportsThinking: true,
837
+ thinkingBudgetTokens: 16_000,
838
+ thinkingConfigurable: true,
839
+ supportedEffortLevels: ['low', 'medium', 'high', 'xhigh', 'max'],
840
+ defaultEffortLevel: 'medium',
841
+ // Adaptive thinking only — budget_tokens is the legacy Haiku-4.5 path;
842
+ // effort is the depth control, all five levels with API default MEDIUM
843
+ // (effort page, verified 2026-10-08). Two WAYS this differs from
844
+ // opus-5-5 / sonnet-5-5, both per first-party pages: thinking
845
+ // {type:"disabled"} is ACCEPTED here (at high-or-below effort) — the bond
846
+ // never sends it — and forced tool_choice any/tool still WORKS (the
847
+ // pricing page's tool-token table lists an any/tool count for Haiku 5.5,
848
+ // 406 tokens, where opus-5-5 / sonnet-5-5 have none), so NO
849
+ // rejectsForcedToolChoice pin — discovery/selection force their tool call.
850
+ supportsVision: true,
851
+ supportsPromptCaching: true,
852
+ supportsTools: true,
853
+ webSearchToolType: 'web_search_20260209',
854
+ webSearchPricePer1k: 10,
855
+ // Same server-tool versions as the rest of the 4.6+ Anthropic fleet —
856
+ // dynamic-filtering web search is "Claude 4.6 and later models" (web
857
+ // search docs, verified 2026-10-08; Haiku 4.5 predates 4.6, hence its
858
+ // basic variant). Not currently sent by Synthase beyond webSearchToolType.
859
+ codeExecutionToolType: 'code_execution_20260521',
860
+ webFetchToolType: 'web_fetch_20260209',
861
+ inputPricePerMTok: 0.1,
862
+ outputPricePerMTok: 0.5,
863
+ // Standard 0.1× cache read = $0.01; 5m cache write the usual 1.25× =
864
+ // $0.125 (pricing page, verified 2026-10-08). The FIRST Anthropic model
865
+ // priced BY PROMPT LENGTH: prompts over 100K tokens pay 5× ($0.50/$2.50,
866
+ // cache $0.05/$0.625) for the WHOLE request — modeled by longContextPricing,
867
+ // which metering applies from the call's prompt size.
868
+ cacheReadPricePerMTok: 0.01,
869
+ cacheWritePricePerMTok: 0.125,
870
+ longContextPricing: {
871
+ aboveInputTokens: 100_000,
872
+ inputPricePerMTok: 0.5,
873
+ outputPricePerMTok: 2.5,
874
+ cacheReadPricePerMTok: 0.05,
875
+ cacheWritePricePerMTok: 0.625,
876
+ },
877
+ // Reliable + training-data cutoff Jun 2026 (model page "Specifications").
878
+ knowledgeCutoff: '2026-06-01',
879
+ },
802
880
  {
803
881
  id: 'claude-haiku-4-5-20251001',
804
882
  provider: 'anthropic',
@@ -827,6 +905,12 @@ export const MODELS = [
827
905
  cacheReadPricePerMTok: 0.1,
828
906
  cacheWritePricePerMTok: 1.25,
829
907
  knowledgeCutoff: '2025-02-01',
908
+ // Superseded by claude-haiku-5-5 (released 2026-10-07, same Haiku tier at
909
+ // ~1/10 the price with 5× the context); the models overview now lists
910
+ // haiku-4-5 under "Legacy models (still available)". Still served and
911
+ // priceable, just not OFFERED.
912
+ deprecatedAt: '2026-10-07',
913
+ supersededBy: 'claude-haiku-5-5',
830
914
  },
831
915
  // ---------------------------------------------------------------------------
832
916
  // OpenAI
package/dist/types.d.ts CHANGED
@@ -319,7 +319,16 @@ export interface ModelDefinition {
319
319
  * unchanged. To schedule the END of peak pricing, declare an explicit
320
320
  * `{ windows: [], multiplier: 1 }`.
321
321
  *
322
- * Resolution is `effectiveBaseRates()` / `effectivePeakPricing()`, and every
322
+ * `longContextPricing` here, when declared, replaces the model's long-context
323
+ * band from the same instant; when omitted, the existing band carries through
324
+ * unchanged. The band that bills AFTER the instant (declared here, or the
325
+ * carried-through one) must stay strictly dearer than the scheduled base
326
+ * rates — the catalog invariant test enforces that at staging time, so a
327
+ * banded model's price change can never land with a stale band silently
328
+ * under-metering its most expensive prompts.
329
+ *
330
+ * Resolution is `effectiveBaseRates()` / `effectivePeakPricing()` /
331
+ * `effectiveLongContextPricing()`, and every
323
332
  * consumer reaches it through `modelRegionRates()` / `priceMultiplierAt()` /
324
333
  * the `withEffectivePricing()` projection the list handler serves — so a
325
334
  * scheduled change lands everywhere at once with no follow-up edit. Once the
@@ -351,6 +360,12 @@ export interface ModelDefinition {
351
360
  text: string;
352
361
  };
353
362
  };
363
+ /**
364
+ * Long-context band from `effectiveFrom` (omitted → the model's existing
365
+ * band carries through unchanged). Indexed off the model-level field so
366
+ * the two shapes can never drift apart.
367
+ */
368
+ longContextPricing?: ModelDefinition['longContextPricing'];
354
369
  /** Where the change was announced, for the re-verify pass after it lands. */
355
370
  source?: string;
356
371
  };
@@ -375,6 +390,27 @@ export interface ModelDefinition {
375
390
  /** Fast-mode prompt-cache write price per million tokens in USD. */
376
391
  cacheWritePricePerMTok: number;
377
392
  };
393
+ /**
394
+ * Long-context pricing — models priced BY PROMPT LENGTH (Claude Haiku 5.5: 5× above 100K prompt tokens). A request
395
+ * whose prompt (fresh input + cache read + cache write tokens) EXCEEDS `aboveInputTokens` bills ALL of its tokens at
396
+ * these rates, not just the excess. Resolved by `modelRegionRates(model, region, at, promptTokens)`; callers must pass
397
+ * ONE provider call's prompt size, never a multi-call sum. All four rates are required for the same never-under-meter
398
+ * reasons as the base rates. A staged `scheduledPricing` change can carry its own replacement band from the same
399
+ * instant (omitted → this band carries through) — resolved by `effectiveLongContextPricing()`. A `regionPricing`
400
+ * override is a different host's complete rate card, so the band never applies on top of an override.
401
+ */
402
+ longContextPricing?: {
403
+ /** A prompt larger than this many tokens bills at the long-context rates. */
404
+ aboveInputTokens: number;
405
+ /** Long-context input price per million uncached tokens in USD. */
406
+ inputPricePerMTok: number;
407
+ /** Long-context output price per million tokens in USD. */
408
+ outputPricePerMTok: number;
409
+ /** Long-context prompt-cache read price per million tokens in USD. */
410
+ cacheReadPricePerMTok: number;
411
+ /** Long-context prompt-cache write price per million tokens in USD. */
412
+ cacheWritePricePerMTok: number;
413
+ };
378
414
  /** Reliable knowledge cutoff date (YYYY-MM-DD). */
379
415
  knowledgeCutoff: string;
380
416
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@molecule/api-resource-ai-models",
3
- "version": "1.13.0",
3
+ "version": "1.15.0",
4
4
  "description": "AI model catalog — server-side source of truth plus an authentication-gated discovery endpoint",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",