@molecule/api-resource-ai-models 1.8.0 → 1.9.1
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 +32 -18
- package/dist/models.d.ts +7 -0
- package/dist/models.d.ts.map +1 -1
- package/dist/models.js +91 -46
- package/dist/types.d.ts +24 -17
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
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-
|
|
6
|
+
Generated: 2026-09-26T01:44:48.732Z
|
|
7
7
|
-->
|
|
8
8
|
|
|
9
9
|
# @molecule/api-resource-ai-models
|
|
@@ -139,24 +139,18 @@ interface ModelDefinition {
|
|
|
139
139
|
/** Whether the model supports tool use / function calling. */
|
|
140
140
|
supportsTools: boolean
|
|
141
141
|
/**
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
142
|
+
* Tool-less utility calls (commit messages) run this model with reasoning
|
|
143
|
+
* explicitly off (`effort: 'none'`); tool-carrying turns use the turn's
|
|
144
|
+
* reasoning effort like any other model. Set for the OpenAI gpt-5.4+ entries
|
|
145
|
+
* that accept `'none'`. (A temperature on those that reject one is handled
|
|
146
|
+
* by `rejectsTemperature`, not by this.)
|
|
145
147
|
*
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
-
* This is a per-model API fact, so it lives in the catalogue rather than as a
|
|
154
|
-
* model-name branch inside a bond.
|
|
155
|
-
*
|
|
156
|
-
* **This is a workaround, not the fix.** Pinning reasoning off means an agentic
|
|
157
|
-
* caller — which always carries tools — never gets reasoning from these models.
|
|
158
|
-
* The real fix is migrating the OpenAI bond to `/v1/responses`, which supports
|
|
159
|
-
* both together; until then, working-without-reasoning beats 400.
|
|
148
|
+
* The name is historical: on /v1/chat/completions these models also rejected
|
|
149
|
+
* function tools combined with reasoning, so tool-carrying calls were pinned
|
|
150
|
+
* off too. The OpenAI bond calls /v1/responses, where tools and reasoning
|
|
151
|
+
* combine, and that pin was lifted — reasoning off with web search made the
|
|
152
|
+
* model search again and repeat its tool call on every turn. Kept under this
|
|
153
|
+
* name because renaming a published field breaks consumers.
|
|
160
154
|
*/
|
|
161
155
|
toolsRequireReasoningOff?: boolean
|
|
162
156
|
/**
|
|
@@ -188,8 +182,21 @@ interface ModelDefinition {
|
|
|
188
182
|
* Provider-specific server tool type for web search (e.g. `'web_search_20250305'`).
|
|
189
183
|
* When set, the chat handler sends this as a ServerTool alongside custom tools.
|
|
190
184
|
* Omit if the model / provider does not support native web search.
|
|
185
|
+
*
|
|
186
|
+
* Set it only when a search actually runs on a Synthase-shaped request
|
|
187
|
+
* (function tools present, streaming) — some providers accept the tool and
|
|
188
|
+
* silently never search in that shape. Requires {@link webSearchPricePer1k}.
|
|
191
189
|
*/
|
|
192
190
|
webSearchToolType?: string
|
|
191
|
+
/**
|
|
192
|
+
* USD per 1,000 web searches the provider bills on top of tokens, applied to
|
|
193
|
+
* `TokenUsage.webSearchRequests`. Required whenever `webSearchToolType` is
|
|
194
|
+
* set (enforced by the catalog tests) — a search tool with no price is
|
|
195
|
+
* unmetered spend. Search-result tokens are billed as ordinary input tokens
|
|
196
|
+
* and need nothing here. Free monthly allowances are account-wide, not
|
|
197
|
+
* per-user, so they are not modeled: every search is metered at list price.
|
|
198
|
+
*/
|
|
199
|
+
webSearchPricePer1k?: number
|
|
193
200
|
/**
|
|
194
201
|
* Provider-specific server tool type for code execution (e.g. `'code_execution_20250825'`).
|
|
195
202
|
* Omit if the model / provider does not support native code execution.
|
|
@@ -830,6 +837,13 @@ Sources (verified 2026-07-28; OpenAI re-verified 2026-07-31 after the
|
|
|
830
837
|
2026-07-30 GPT-5.6 repricing — cross-check prices against models.dev with
|
|
831
838
|
`npm run check:model-freshness` from the workspace root):
|
|
832
839
|
|
|
840
|
+
- Web search (`webSearchPricePer1k`, billed per search on top of tokens;
|
|
841
|
+
verified 2026-09-25 on each provider's pricing page): Anthropic $10 per
|
|
842
|
+
1,000 searches (failed searches are not billed); OpenAI $10 per 1,000
|
|
843
|
+
web_search_call items on reasoning models; Google $14 per 1,000 search
|
|
844
|
+
queries after 5,000/month free, shared across the account, so not
|
|
845
|
+
modeled; Z.ai $0.01 per use, but its search never runs on a Synthase-shaped
|
|
846
|
+
request, so GLM entries carry no webSearchToolType.
|
|
833
847
|
- Anthropic: https://platform.claude.com/docs/en/about-claude/models/overview
|
|
834
848
|
- /docs/en/build-with-claude/effort (fable-5-1 / opus-5-5 / sonnet-5
|
|
835
849
|
current as of 2026-09-23 — see the dated notes below; historically fable-5 / opus-5 / sonnet-5 current;
|
package/dist/models.d.ts
CHANGED
|
@@ -53,6 +53,13 @@ import type { ModelDefinition } from './types.js';
|
|
|
53
53
|
* Sources (verified 2026-07-28; OpenAI re-verified 2026-07-31 after the
|
|
54
54
|
* 2026-07-30 GPT-5.6 repricing — cross-check prices against models.dev with
|
|
55
55
|
* `npm run check:model-freshness` from the workspace root):
|
|
56
|
+
* - Web search (`webSearchPricePer1k`, billed per search on top of tokens;
|
|
57
|
+
* verified 2026-09-25 on each provider's pricing page): Anthropic $10 per
|
|
58
|
+
* 1,000 searches (failed searches are not billed); OpenAI $10 per 1,000
|
|
59
|
+
* web_search_call items on reasoning models; Google $14 per 1,000 search
|
|
60
|
+
* queries after 5,000/month free, shared across the account, so not
|
|
61
|
+
* modeled; Z.ai $0.01 per use, but its search never runs on a Synthase-shaped
|
|
62
|
+
* request, so GLM entries carry no webSearchToolType.
|
|
56
63
|
* - Anthropic: https://platform.claude.com/docs/en/about-claude/models/overview
|
|
57
64
|
* + /docs/en/build-with-claude/effort (fable-5-1 / opus-5-5 / sonnet-5
|
|
58
65
|
* current as of 2026-09-23 — see the dated notes below; historically fable-5 / opus-5 / sonnet-5 current;
|
package/dist/models.d.ts.map
CHANGED
|
@@ -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
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2QG;AACH,eAAO,MAAM,MAAM,EAAE,SAAS,eAAe,EA2mEnC,CAAA"}
|
package/dist/models.js
CHANGED
|
@@ -102,6 +102,13 @@ const CHINA_PUBLIC_HOLIDAYS = [
|
|
|
102
102
|
* Sources (verified 2026-07-28; OpenAI re-verified 2026-07-31 after the
|
|
103
103
|
* 2026-07-30 GPT-5.6 repricing — cross-check prices against models.dev with
|
|
104
104
|
* `npm run check:model-freshness` from the workspace root):
|
|
105
|
+
* - Web search (`webSearchPricePer1k`, billed per search on top of tokens;
|
|
106
|
+
* verified 2026-09-25 on each provider's pricing page): Anthropic $10 per
|
|
107
|
+
* 1,000 searches (failed searches are not billed); OpenAI $10 per 1,000
|
|
108
|
+
* web_search_call items on reasoning models; Google $14 per 1,000 search
|
|
109
|
+
* queries after 5,000/month free, shared across the account, so not
|
|
110
|
+
* modeled; Z.ai $0.01 per use, but its search never runs on a Synthase-shaped
|
|
111
|
+
* request, so GLM entries carry no webSearchToolType.
|
|
105
112
|
* - Anthropic: https://platform.claude.com/docs/en/about-claude/models/overview
|
|
106
113
|
* + /docs/en/build-with-claude/effort (fable-5-1 / opus-5-5 / sonnet-5
|
|
107
114
|
* current as of 2026-09-23 — see the dated notes below; historically fable-5 / opus-5 / sonnet-5 current;
|
|
@@ -354,6 +361,7 @@ export const MODELS = [
|
|
|
354
361
|
supportsPromptCaching: true,
|
|
355
362
|
supportsTools: true,
|
|
356
363
|
webSearchToolType: 'web_search_20260209',
|
|
364
|
+
webSearchPricePer1k: 10,
|
|
357
365
|
// Dynamic-filtering server tools, same as the rest of the 4.6+ Anthropic
|
|
358
366
|
// fleet. Not currently sent by Synthase beyond webSearchToolType
|
|
359
367
|
// (request-shape.ts forwards only that one).
|
|
@@ -392,6 +400,7 @@ export const MODELS = [
|
|
|
392
400
|
supportsPromptCaching: true,
|
|
393
401
|
supportsTools: true,
|
|
394
402
|
webSearchToolType: 'web_search_20260209',
|
|
403
|
+
webSearchPricePer1k: 10,
|
|
395
404
|
// Current server-tool type per the API reference (verified 2026-08-28);
|
|
396
405
|
// 'code_execution_20250825' was the BETA HEADER date (code-execution-2025-08-25),
|
|
397
406
|
// not a tool type — sending it as one is a 400. Not currently sent by
|
|
@@ -448,6 +457,7 @@ export const MODELS = [
|
|
|
448
457
|
supportsPromptCaching: true,
|
|
449
458
|
supportsTools: true,
|
|
450
459
|
webSearchToolType: 'web_search_20260209',
|
|
460
|
+
webSearchPricePer1k: 10,
|
|
451
461
|
// Same server-tool versions as the rest of the 4.6+ Anthropic fleet. Not
|
|
452
462
|
// currently sent by Synthase beyond webSearchToolType.
|
|
453
463
|
codeExecutionToolType: 'code_execution_20260521',
|
|
@@ -495,6 +505,7 @@ export const MODELS = [
|
|
|
495
505
|
supportsPromptCaching: true,
|
|
496
506
|
supportsTools: true,
|
|
497
507
|
webSearchToolType: 'web_search_20260209',
|
|
508
|
+
webSearchPricePer1k: 10,
|
|
498
509
|
// Current server-tool type per the API reference (verified 2026-08-28);
|
|
499
510
|
// 'code_execution_20250825' was the BETA HEADER date (code-execution-2025-08-25),
|
|
500
511
|
// not a tool type — sending it as one is a 400. Not currently sent by
|
|
@@ -536,6 +547,7 @@ export const MODELS = [
|
|
|
536
547
|
supportsPromptCaching: true,
|
|
537
548
|
supportsTools: true,
|
|
538
549
|
webSearchToolType: 'web_search_20260209',
|
|
550
|
+
webSearchPricePer1k: 10,
|
|
539
551
|
// Current server-tool type per the API reference (verified 2026-08-28);
|
|
540
552
|
// 'code_execution_20250825' was the BETA HEADER date (code-execution-2025-08-25),
|
|
541
553
|
// not a tool type — sending it as one is a 400. Not currently sent by
|
|
@@ -577,6 +589,7 @@ export const MODELS = [
|
|
|
577
589
|
supportsPromptCaching: true,
|
|
578
590
|
supportsTools: true,
|
|
579
591
|
webSearchToolType: 'web_search_20260209',
|
|
592
|
+
webSearchPricePer1k: 10,
|
|
580
593
|
// Current server-tool type per the API reference (verified 2026-08-28);
|
|
581
594
|
// 'code_execution_20250825' was the BETA HEADER date (code-execution-2025-08-25),
|
|
582
595
|
// not a tool type — sending it as one is a 400. Not currently sent by
|
|
@@ -616,6 +629,7 @@ export const MODELS = [
|
|
|
616
629
|
supportsPromptCaching: true,
|
|
617
630
|
supportsTools: true,
|
|
618
631
|
webSearchToolType: 'web_search_20260209',
|
|
632
|
+
webSearchPricePer1k: 10,
|
|
619
633
|
// Current server-tool type per the API reference (verified 2026-08-28);
|
|
620
634
|
// 'code_execution_20250825' was the BETA HEADER date (code-execution-2025-08-25),
|
|
621
635
|
// not a tool type — sending it as one is a 400. Not currently sent by
|
|
@@ -655,6 +669,7 @@ export const MODELS = [
|
|
|
655
669
|
supportsPromptCaching: true,
|
|
656
670
|
supportsTools: true,
|
|
657
671
|
webSearchToolType: 'web_search_20260209',
|
|
672
|
+
webSearchPricePer1k: 10,
|
|
658
673
|
// Current server-tool type per the API reference (verified 2026-08-28);
|
|
659
674
|
// 'code_execution_20250825' was the BETA HEADER date (code-execution-2025-08-25),
|
|
660
675
|
// not a tool type — sending it as one is a 400. Not currently sent by
|
|
@@ -690,6 +705,7 @@ export const MODELS = [
|
|
|
690
705
|
supportsPromptCaching: true,
|
|
691
706
|
supportsTools: true,
|
|
692
707
|
webSearchToolType: 'web_search_20260209',
|
|
708
|
+
webSearchPricePer1k: 10,
|
|
693
709
|
// Current server-tool type per the API reference (verified 2026-08-28);
|
|
694
710
|
// 'code_execution_20250825' was the BETA HEADER date (code-execution-2025-08-25),
|
|
695
711
|
// not a tool type — sending it as one is a 400. Not currently sent by
|
|
@@ -726,6 +742,7 @@ export const MODELS = [
|
|
|
726
742
|
supportsPromptCaching: true,
|
|
727
743
|
supportsTools: true,
|
|
728
744
|
webSearchToolType: 'web_search_20250305',
|
|
745
|
+
webSearchPricePer1k: 10,
|
|
729
746
|
webFetchToolType: 'web_fetch_20250910',
|
|
730
747
|
inputPricePerMTok: 1,
|
|
731
748
|
outputPricePerMTok: 5,
|
|
@@ -787,8 +804,10 @@ export const MODELS = [
|
|
|
787
804
|
supportsVision: true,
|
|
788
805
|
supportsPromptCaching: true,
|
|
789
806
|
supportsTools: true,
|
|
790
|
-
|
|
791
|
-
//
|
|
807
|
+
webSearchToolType: 'web_search',
|
|
808
|
+
// $10 per 1,000 web_search_call items on reasoning models (the bond counts
|
|
809
|
+
// them); search-result tokens bill as input.
|
|
810
|
+
webSearchPricePer1k: 10,
|
|
792
811
|
codeExecutionToolType: 'code_interpreter',
|
|
793
812
|
// Standard tier; >272K band ($20/$75, cached $2, writes $25) not modeled.
|
|
794
813
|
inputPricePerMTok: 10,
|
|
@@ -813,12 +832,14 @@ export const MODELS = [
|
|
|
813
832
|
supportsVision: true,
|
|
814
833
|
supportsPromptCaching: true,
|
|
815
834
|
supportsTools: true,
|
|
816
|
-
//
|
|
817
|
-
//
|
|
818
|
-
|
|
835
|
+
// temperature → 400 "not supported with this model" unless reasoning is
|
|
836
|
+
// off (probed live on /v1/responses 2026-09-26); callers omit it.
|
|
837
|
+
rejectsTemperature: true,
|
|
838
|
+
// Tool-less utility calls (commit messages) run with reasoning off. See the
|
|
839
|
+
// field's type docs.
|
|
819
840
|
toolsRequireReasoningOff: true,
|
|
820
|
-
|
|
821
|
-
|
|
841
|
+
webSearchToolType: 'web_search',
|
|
842
|
+
webSearchPricePer1k: 10,
|
|
822
843
|
codeExecutionToolType: 'code_interpreter',
|
|
823
844
|
// Standard tier. A long-context band above 272K prompt tokens reprices the
|
|
824
845
|
// whole request ($4/$15, cached $0.40, cache writes $5) — not modeled, same
|
|
@@ -844,11 +865,14 @@ export const MODELS = [
|
|
|
844
865
|
supportsVision: true,
|
|
845
866
|
supportsPromptCaching: true,
|
|
846
867
|
supportsTools: true,
|
|
847
|
-
//
|
|
848
|
-
//
|
|
849
|
-
|
|
868
|
+
// temperature → 400 "not supported with this model" unless reasoning is
|
|
869
|
+
// off (probed live on /v1/responses 2026-09-26); callers omit it.
|
|
870
|
+
rejectsTemperature: true,
|
|
871
|
+
// Tool-less utility calls (commit messages) run with reasoning off. See the
|
|
872
|
+
// field's type docs.
|
|
850
873
|
toolsRequireReasoningOff: true,
|
|
851
|
-
|
|
874
|
+
webSearchToolType: 'web_search',
|
|
875
|
+
webSearchPricePer1k: 10,
|
|
852
876
|
codeExecutionToolType: 'code_interpreter',
|
|
853
877
|
// Standard tier; >272K band ($0.20/$0.75, cached $0.02, writes $0.25) not
|
|
854
878
|
// modeled.
|
|
@@ -875,12 +899,14 @@ export const MODELS = [
|
|
|
875
899
|
supportsVision: true,
|
|
876
900
|
supportsPromptCaching: true,
|
|
877
901
|
supportsTools: true,
|
|
878
|
-
//
|
|
879
|
-
//
|
|
880
|
-
|
|
902
|
+
// temperature → 400 "not supported with this model" unless reasoning is
|
|
903
|
+
// off (probed live on /v1/responses 2026-09-26); callers omit it.
|
|
904
|
+
rejectsTemperature: true,
|
|
905
|
+
// Tool-less utility calls (commit messages) run with reasoning off. See the
|
|
906
|
+
// field's type docs.
|
|
881
907
|
toolsRequireReasoningOff: true,
|
|
882
|
-
|
|
883
|
-
|
|
908
|
+
webSearchToolType: 'web_search',
|
|
909
|
+
webSearchPricePer1k: 10,
|
|
884
910
|
codeExecutionToolType: 'code_interpreter',
|
|
885
911
|
// LIST price. OpenAI ran a >20% PROMO from 2026-08-22 ($4/$20, cache read
|
|
886
912
|
// $0.40, cache write $5) — "GPT-5.6 Sol's promotional pricing is available
|
|
@@ -915,12 +941,14 @@ export const MODELS = [
|
|
|
915
941
|
supportsVision: true,
|
|
916
942
|
supportsPromptCaching: true,
|
|
917
943
|
supportsTools: true,
|
|
918
|
-
//
|
|
919
|
-
//
|
|
920
|
-
|
|
944
|
+
// temperature → 400 "not supported with this model" unless reasoning is
|
|
945
|
+
// off (probed live on /v1/responses 2026-09-26); callers omit it.
|
|
946
|
+
rejectsTemperature: true,
|
|
947
|
+
// Tool-less utility calls (commit messages) run with reasoning off. See the
|
|
948
|
+
// field's type docs.
|
|
921
949
|
toolsRequireReasoningOff: true,
|
|
922
|
-
|
|
923
|
-
|
|
950
|
+
webSearchToolType: 'web_search',
|
|
951
|
+
webSearchPricePer1k: 10,
|
|
924
952
|
codeExecutionToolType: 'code_interpreter',
|
|
925
953
|
// Repriced 2026-07-30 (20% cut from $2.50/$15).
|
|
926
954
|
inputPricePerMTok: 2,
|
|
@@ -950,12 +978,14 @@ export const MODELS = [
|
|
|
950
978
|
supportsVision: true,
|
|
951
979
|
supportsPromptCaching: true,
|
|
952
980
|
supportsTools: true,
|
|
953
|
-
//
|
|
954
|
-
//
|
|
955
|
-
|
|
981
|
+
// temperature → 400 "not supported with this model" unless reasoning is
|
|
982
|
+
// off (probed live on /v1/responses 2026-09-26); callers omit it.
|
|
983
|
+
rejectsTemperature: true,
|
|
984
|
+
// Tool-less utility calls (commit messages) run with reasoning off. See the
|
|
985
|
+
// field's type docs.
|
|
956
986
|
toolsRequireReasoningOff: true,
|
|
957
|
-
|
|
958
|
-
|
|
987
|
+
webSearchToolType: 'web_search',
|
|
988
|
+
webSearchPricePer1k: 10,
|
|
959
989
|
codeExecutionToolType: 'code_interpreter',
|
|
960
990
|
// Repriced 2026-07-30 (80% cut from $1/$6).
|
|
961
991
|
inputPricePerMTok: 0.2,
|
|
@@ -991,12 +1021,14 @@ export const MODELS = [
|
|
|
991
1021
|
supportsVision: true,
|
|
992
1022
|
supportsPromptCaching: true,
|
|
993
1023
|
supportsTools: true,
|
|
994
|
-
//
|
|
995
|
-
//
|
|
996
|
-
|
|
1024
|
+
// temperature → 400 "not supported with this model" unless reasoning is
|
|
1025
|
+
// off (probed live on /v1/responses 2026-09-26); callers omit it.
|
|
1026
|
+
rejectsTemperature: true,
|
|
1027
|
+
// Tool-less utility calls (commit messages) run with reasoning off. See the
|
|
1028
|
+
// field's type docs.
|
|
997
1029
|
toolsRequireReasoningOff: true,
|
|
998
|
-
|
|
999
|
-
|
|
1030
|
+
webSearchToolType: 'web_search',
|
|
1031
|
+
webSearchPricePer1k: 10,
|
|
1000
1032
|
codeExecutionToolType: 'code_interpreter',
|
|
1001
1033
|
inputPricePerMTok: 5,
|
|
1002
1034
|
outputPricePerMTok: 30,
|
|
@@ -1025,12 +1057,11 @@ export const MODELS = [
|
|
|
1025
1057
|
supportsVision: true,
|
|
1026
1058
|
supportsPromptCaching: true,
|
|
1027
1059
|
supportsTools: true,
|
|
1028
|
-
//
|
|
1029
|
-
//
|
|
1030
|
-
// lifting this pin changes reasoning quality/cost, so it waits for a model eval.
|
|
1060
|
+
// Tool-less utility calls (commit messages) run with reasoning off. See the
|
|
1061
|
+
// field's type docs.
|
|
1031
1062
|
toolsRequireReasoningOff: true,
|
|
1032
|
-
|
|
1033
|
-
|
|
1063
|
+
webSearchToolType: 'web_search',
|
|
1064
|
+
webSearchPricePer1k: 10,
|
|
1034
1065
|
codeExecutionToolType: 'code_interpreter',
|
|
1035
1066
|
inputPricePerMTok: 2.5,
|
|
1036
1067
|
outputPricePerMTok: 15,
|
|
@@ -1061,12 +1092,11 @@ export const MODELS = [
|
|
|
1061
1092
|
supportsVision: true,
|
|
1062
1093
|
supportsPromptCaching: true,
|
|
1063
1094
|
supportsTools: true,
|
|
1064
|
-
//
|
|
1065
|
-
//
|
|
1066
|
-
// lifting this pin changes reasoning quality/cost, so it waits for a model eval.
|
|
1095
|
+
// Tool-less utility calls (commit messages) run with reasoning off. See the
|
|
1096
|
+
// field's type docs.
|
|
1067
1097
|
toolsRequireReasoningOff: true,
|
|
1068
|
-
|
|
1069
|
-
|
|
1098
|
+
webSearchToolType: 'web_search',
|
|
1099
|
+
webSearchPricePer1k: 10,
|
|
1070
1100
|
codeExecutionToolType: 'code_interpreter',
|
|
1071
1101
|
inputPricePerMTok: 0.75,
|
|
1072
1102
|
outputPricePerMTok: 4.5,
|
|
@@ -1113,6 +1143,7 @@ export const MODELS = [
|
|
|
1113
1143
|
supportsPromptCaching: true,
|
|
1114
1144
|
supportsTools: true,
|
|
1115
1145
|
webSearchToolType: 'google_search',
|
|
1146
|
+
webSearchPricePer1k: 14,
|
|
1116
1147
|
codeExecutionToolType: 'code_execution',
|
|
1117
1148
|
webFetchToolType: 'url_context',
|
|
1118
1149
|
// "New Stable" 2026-09-02. LIST price $1.50/$7.50 — same card as 3.7- and
|
|
@@ -1149,6 +1180,7 @@ export const MODELS = [
|
|
|
1149
1180
|
supportsPromptCaching: true,
|
|
1150
1181
|
supportsTools: true,
|
|
1151
1182
|
webSearchToolType: 'google_search',
|
|
1183
|
+
webSearchPricePer1k: 14,
|
|
1152
1184
|
codeExecutionToolType: 'code_execution',
|
|
1153
1185
|
webFetchToolType: 'url_context',
|
|
1154
1186
|
// "New Stable" 2026-08-13. LIST price $1.50/$7.50 — same as 3.6-flash.
|
|
@@ -1191,6 +1223,7 @@ export const MODELS = [
|
|
|
1191
1223
|
supportsPromptCaching: true,
|
|
1192
1224
|
supportsTools: true,
|
|
1193
1225
|
webSearchToolType: 'google_search',
|
|
1226
|
+
webSearchPricePer1k: 14,
|
|
1194
1227
|
codeExecutionToolType: 'code_execution',
|
|
1195
1228
|
webFetchToolType: 'url_context',
|
|
1196
1229
|
// GA 2026-07-21 — same input price as 3.5-flash, CHEAPER output ($7.50 vs $9).
|
|
@@ -1235,6 +1268,7 @@ export const MODELS = [
|
|
|
1235
1268
|
supportsPromptCaching: true,
|
|
1236
1269
|
supportsTools: true,
|
|
1237
1270
|
webSearchToolType: 'google_search',
|
|
1271
|
+
webSearchPricePer1k: 14,
|
|
1238
1272
|
codeExecutionToolType: 'code_execution',
|
|
1239
1273
|
webFetchToolType: 'url_context',
|
|
1240
1274
|
inputPricePerMTok: 1.5,
|
|
@@ -1269,6 +1303,7 @@ export const MODELS = [
|
|
|
1269
1303
|
supportsPromptCaching: true,
|
|
1270
1304
|
supportsTools: true,
|
|
1271
1305
|
webSearchToolType: 'google_search',
|
|
1306
|
+
webSearchPricePer1k: 14,
|
|
1272
1307
|
codeExecutionToolType: 'code_execution',
|
|
1273
1308
|
webFetchToolType: 'url_context',
|
|
1274
1309
|
// ≤200K-token prompts; >200K bills $4/$18 (tiering not modeled).
|
|
@@ -2245,7 +2280,9 @@ export const MODELS = [
|
|
|
2245
2280
|
// The chat-completion reference gates web_search per model only in its
|
|
2246
2281
|
// VISION section; for text models the tool is listed unconditionally, as it
|
|
2247
2282
|
// was when glm-5.2 was cataloged.
|
|
2248
|
-
webSearchToolType: 'web_search
|
|
2283
|
+
// NO webSearchToolType: Zhipu's web_search never runs alongside function
|
|
2284
|
+
// tools or on a stream (see @molecule/api-ai-zhipu), so it cannot serve
|
|
2285
|
+
// Synthase — sending it only told the model it had a tool that never ran.
|
|
2249
2286
|
inputPricePerMTok: 1.4,
|
|
2250
2287
|
outputPricePerMTok: 4.4,
|
|
2251
2288
|
// GLM context cache: read ≈0.19× input, no write premium.
|
|
@@ -2287,7 +2324,9 @@ export const MODELS = [
|
|
|
2287
2324
|
supportsVision: true,
|
|
2288
2325
|
supportsPromptCaching: true,
|
|
2289
2326
|
supportsTools: true,
|
|
2290
|
-
webSearchToolType: 'web_search
|
|
2327
|
+
// NO webSearchToolType: Zhipu's web_search never runs alongside function
|
|
2328
|
+
// tools or on a stream (see @molecule/api-ai-zhipu), so it cannot serve
|
|
2329
|
+
// Synthase — sending it only told the model it had a tool that never ran.
|
|
2291
2330
|
// List card, verified 2026-09-23 on the Z.ai pricing page.
|
|
2292
2331
|
inputPricePerMTok: 0.37,
|
|
2293
2332
|
outputPricePerMTok: 1.25,
|
|
@@ -2321,7 +2360,9 @@ export const MODELS = [
|
|
|
2321
2360
|
supportsVision: true,
|
|
2322
2361
|
supportsPromptCaching: true,
|
|
2323
2362
|
supportsTools: true,
|
|
2324
|
-
webSearchToolType: 'web_search
|
|
2363
|
+
// NO webSearchToolType: Zhipu's web_search never runs alongside function
|
|
2364
|
+
// tools or on a stream (see @molecule/api-ai-zhipu), so it cannot serve
|
|
2365
|
+
// Synthase — sending it only told the model it had a tool that never ran.
|
|
2325
2366
|
// List card, re-verified 2026-09-10 on the Z.ai pricing page after the
|
|
2326
2367
|
// 50%-off launch promo ($0.075/$0.25, cached $0.015) ended on schedule
|
|
2327
2368
|
// 2026-09-09 24:00 UTC+8 — this IS what the provider bills now; models.dev
|
|
@@ -2363,7 +2404,9 @@ export const MODELS = [
|
|
|
2363
2404
|
supportsVision: false,
|
|
2364
2405
|
supportsPromptCaching: true,
|
|
2365
2406
|
supportsTools: true,
|
|
2366
|
-
webSearchToolType: 'web_search
|
|
2407
|
+
// NO webSearchToolType: Zhipu's web_search never runs alongside function
|
|
2408
|
+
// tools or on a stream (see @molecule/api-ai-zhipu), so it cannot serve
|
|
2409
|
+
// Synthase — sending it only told the model it had a tool that never ran.
|
|
2367
2410
|
inputPricePerMTok: 1.4,
|
|
2368
2411
|
outputPricePerMTok: 4.4,
|
|
2369
2412
|
// GLM context cache: read ≈0.19× input, no write premium.
|
|
@@ -2403,7 +2446,9 @@ export const MODELS = [
|
|
|
2403
2446
|
supportsVision: false,
|
|
2404
2447
|
supportsPromptCaching: true,
|
|
2405
2448
|
supportsTools: true,
|
|
2406
|
-
webSearchToolType: 'web_search
|
|
2449
|
+
// NO webSearchToolType: Zhipu's web_search never runs alongside function
|
|
2450
|
+
// tools or on a stream (see @molecule/api-ai-zhipu), so it cannot serve
|
|
2451
|
+
// Synthase — sending it only told the model it had a tool that never ran.
|
|
2407
2452
|
// Repriced by Z.ai around the GLM-5.1 launch (was $0.72/$2.30).
|
|
2408
2453
|
inputPricePerMTok: 1,
|
|
2409
2454
|
outputPricePerMTok: 3.2,
|
package/dist/types.d.ts
CHANGED
|
@@ -111,24 +111,18 @@ export interface ModelDefinition {
|
|
|
111
111
|
/** Whether the model supports tool use / function calling. */
|
|
112
112
|
supportsTools: boolean;
|
|
113
113
|
/**
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
114
|
+
* Tool-less utility calls (commit messages) run this model with reasoning
|
|
115
|
+
* explicitly off (`effort: 'none'`); tool-carrying turns use the turn's
|
|
116
|
+
* reasoning effort like any other model. Set for the OpenAI gpt-5.4+ entries
|
|
117
|
+
* that accept `'none'`. (A temperature on those that reject one is handled
|
|
118
|
+
* by `rejectsTemperature`, not by this.)
|
|
117
119
|
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
* This is a per-model API fact, so it lives in the catalogue rather than as a
|
|
126
|
-
* model-name branch inside a bond.
|
|
127
|
-
*
|
|
128
|
-
* **This is a workaround, not the fix.** Pinning reasoning off means an agentic
|
|
129
|
-
* caller — which always carries tools — never gets reasoning from these models.
|
|
130
|
-
* The real fix is migrating the OpenAI bond to `/v1/responses`, which supports
|
|
131
|
-
* both together; until then, working-without-reasoning beats 400.
|
|
120
|
+
* The name is historical: on /v1/chat/completions these models also rejected
|
|
121
|
+
* function tools combined with reasoning, so tool-carrying calls were pinned
|
|
122
|
+
* off too. The OpenAI bond calls /v1/responses, where tools and reasoning
|
|
123
|
+
* combine, and that pin was lifted — reasoning off with web search made the
|
|
124
|
+
* model search again and repeat its tool call on every turn. Kept under this
|
|
125
|
+
* name because renaming a published field breaks consumers.
|
|
132
126
|
*/
|
|
133
127
|
toolsRequireReasoningOff?: boolean;
|
|
134
128
|
/**
|
|
@@ -160,8 +154,21 @@ export interface ModelDefinition {
|
|
|
160
154
|
* Provider-specific server tool type for web search (e.g. `'web_search_20250305'`).
|
|
161
155
|
* When set, the chat handler sends this as a ServerTool alongside custom tools.
|
|
162
156
|
* Omit if the model / provider does not support native web search.
|
|
157
|
+
*
|
|
158
|
+
* Set it only when a search actually runs on a Synthase-shaped request
|
|
159
|
+
* (function tools present, streaming) — some providers accept the tool and
|
|
160
|
+
* silently never search in that shape. Requires {@link webSearchPricePer1k}.
|
|
163
161
|
*/
|
|
164
162
|
webSearchToolType?: string;
|
|
163
|
+
/**
|
|
164
|
+
* USD per 1,000 web searches the provider bills on top of tokens, applied to
|
|
165
|
+
* `TokenUsage.webSearchRequests`. Required whenever `webSearchToolType` is
|
|
166
|
+
* set (enforced by the catalog tests) — a search tool with no price is
|
|
167
|
+
* unmetered spend. Search-result tokens are billed as ordinary input tokens
|
|
168
|
+
* and need nothing here. Free monthly allowances are account-wide, not
|
|
169
|
+
* per-user, so they are not modeled: every search is metered at list price.
|
|
170
|
+
*/
|
|
171
|
+
webSearchPricePer1k?: number;
|
|
165
172
|
/**
|
|
166
173
|
* Provider-specific server tool type for code execution (e.g. `'code_execution_20250825'`).
|
|
167
174
|
* Omit if the model / provider does not support native code execution.
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACpB,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,UAAU,GACV,MAAM,GACN,UAAU,GACV,SAAS,GACT,SAAS,GACT,OAAO;AACT;;;;;GAKG;GACD,QAAQ,CAAA;AAEZ;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAA;AAEhC;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAA;IACV,2CAA2C;IAC3C,QAAQ,EAAE,YAAY,CAAA;IACtB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAA;IACb,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAA;IACnB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAA;IACrB,0CAA0C;IAC1C,eAAe,EAAE,MAAM,CAAA;IACvB,uEAAuE;IACvE,gBAAgB,EAAE,OAAO,CAAA;IACzB,yFAAyF;IACzF,oBAAoB,EAAE,MAAM,CAAA;IAC5B;;;OAGG;IACH,oBAAoB,EAAE,OAAO,CAAA;IAC7B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,qBAAqB,CAAC,EAAE,WAAW,EAAE,CAAA;IACrC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,WAAW,CAAA;IAChC;;;;;;;;;;;OAWG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC3C,mEAAmE;IACnE,cAAc,EAAE,OAAO,CAAA;IACvB,iDAAiD;IACjD,qBAAqB,EAAE,OAAO,CAAA;IAC9B,8DAA8D;IAC9D,aAAa,EAAE,OAAO,CAAA;IACtB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED