pullfrog 0.1.34 → 0.1.35
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/dist/agents/opencodeShared.d.ts +1 -1
- package/dist/cli.mjs +84 -53
- package/dist/index.js +83 -52
- package/dist/internal.js +82 -51
- package/dist/models.d.ts +7 -2
- package/package.json +1 -1
|
@@ -22,7 +22,7 @@ export declare function geminiHighThinkingOverrides(): Record<string, {
|
|
|
22
22
|
*
|
|
23
23
|
* Per-subagent `model:` override is driven by the registry in
|
|
24
24
|
* `action/models.ts` via each alias's `subagentModel` field. Currently wired:
|
|
25
|
-
* Anthropic opus → sonnet, OpenAI gpt-pro → gpt and gpt → gpt-
|
|
25
|
+
* Anthropic opus → sonnet, OpenAI gpt-pro → gpt and gpt → gpt-terra, Google
|
|
26
26
|
* gemini-pro → gemini-flash. Other providers inherit (no override).
|
|
27
27
|
*/
|
|
28
28
|
export declare function buildReviewerAgentConfig(orchestratorModel: string | undefined): Record<string, unknown>;
|
package/dist/cli.mjs
CHANGED
|
@@ -101788,37 +101788,40 @@ var providers = {
|
|
|
101788
101788
|
managedCredentials: ["CODEX_AUTH_JSON"],
|
|
101789
101789
|
models: {
|
|
101790
101790
|
gpt: {
|
|
101791
|
-
displayName: "GPT",
|
|
101792
|
-
resolve: "openai/gpt-5.
|
|
101793
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
101791
|
+
displayName: "GPT Sol",
|
|
101792
|
+
resolve: "openai/gpt-5.6-sol",
|
|
101793
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-sol",
|
|
101794
101794
|
preferred: true,
|
|
101795
|
-
subagentModel: "gpt-
|
|
101795
|
+
subagentModel: "gpt-terra"
|
|
101796
101796
|
},
|
|
101797
|
+
// Sol served at reasoning.mode=pro — same $/token as Sol, just more tokens
|
|
101798
|
+
// burned; not a pricier premium tier. models.dev has no -pro id, so direct-key
|
|
101799
|
+
// (BYOK) resolves to plain Sol; only the Router/OpenRouter path gets sol-pro.
|
|
101797
101800
|
"gpt-pro": {
|
|
101798
|
-
displayName: "GPT Pro",
|
|
101799
|
-
|
|
101800
|
-
|
|
101801
|
+
displayName: "GPT Sol Pro",
|
|
101802
|
+
description: "Maximum reasoning effort",
|
|
101803
|
+
resolve: "openai/gpt-5.6-sol",
|
|
101804
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-sol-pro",
|
|
101801
101805
|
subagentModel: "gpt"
|
|
101802
101806
|
},
|
|
101803
|
-
//
|
|
101804
|
-
//
|
|
101805
|
-
//
|
|
101806
|
-
"gpt-
|
|
101807
|
-
displayName: "GPT
|
|
101808
|
-
resolve: "openai/gpt-5.
|
|
101809
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
101810
|
-
hidden: true
|
|
101807
|
+
// gpt-5.6's balanced mid-tier (Sol/Terra/Luna are durable capability tiers,
|
|
101808
|
+
// not version bumps). selectable on its own and doubles as `gpt`'s cheaper
|
|
101809
|
+
// lens-fanout subagent — replaces the old hidden gpt-5.4 subagent target.
|
|
101810
|
+
"gpt-terra": {
|
|
101811
|
+
displayName: "GPT Terra",
|
|
101812
|
+
resolve: "openai/gpt-5.6-terra",
|
|
101813
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-terra"
|
|
101811
101814
|
},
|
|
101812
101815
|
"gpt-mini": {
|
|
101813
|
-
displayName: "GPT
|
|
101814
|
-
resolve: "openai/gpt-5.
|
|
101815
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
101816
|
+
displayName: "GPT Luna",
|
|
101817
|
+
resolve: "openai/gpt-5.6-luna",
|
|
101818
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-luna"
|
|
101816
101819
|
},
|
|
101817
101820
|
// legacy aliases — openai unified the codex line into the main GPT family
|
|
101818
101821
|
// and is shutting down every "-codex" snapshot on 2026-07-23. transparently
|
|
101819
101822
|
// upgrade existing users via the fallback chain. UI display sites resolve
|
|
101820
101823
|
// to the terminal alias's label (so dropdown trigger + PR footers show
|
|
101821
|
-
// "GPT" / "GPT
|
|
101824
|
+
// "GPT Sol" / "GPT Luna", not the historical name).
|
|
101822
101825
|
"gpt-codex": {
|
|
101823
101826
|
displayName: "GPT Codex",
|
|
101824
101827
|
resolve: "openai/gpt-5.3-codex",
|
|
@@ -101831,6 +101834,13 @@ var providers = {
|
|
|
101831
101834
|
openRouterResolve: "openrouter/openai/gpt-5.1-codex-mini",
|
|
101832
101835
|
fallback: "openai/gpt-mini"
|
|
101833
101836
|
},
|
|
101837
|
+
// dropped hidden subagent tier — folds stored pins forward to gpt (Sol).
|
|
101838
|
+
"gpt-5.4": {
|
|
101839
|
+
displayName: "GPT 5.4",
|
|
101840
|
+
resolve: "openai/gpt-5.4",
|
|
101841
|
+
openRouterResolve: "openrouter/openai/gpt-5.4",
|
|
101842
|
+
fallback: "openai/gpt"
|
|
101843
|
+
},
|
|
101834
101844
|
o3: {
|
|
101835
101845
|
displayName: "O3",
|
|
101836
101846
|
resolve: "openai/o3",
|
|
@@ -101960,28 +101970,29 @@ var providers = {
|
|
|
101960
101970
|
openRouterResolve: "openrouter/anthropic/claude-haiku-4.5"
|
|
101961
101971
|
},
|
|
101962
101972
|
gpt: {
|
|
101963
|
-
displayName: "GPT",
|
|
101964
|
-
resolve: "opencode/gpt-5.
|
|
101965
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
101966
|
-
subagentModel: "gpt-
|
|
101973
|
+
displayName: "GPT Sol",
|
|
101974
|
+
resolve: "opencode/gpt-5.6-sol",
|
|
101975
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-sol",
|
|
101976
|
+
subagentModel: "gpt-terra"
|
|
101967
101977
|
},
|
|
101978
|
+
// see openai/gpt-pro — Zen has no -pro id, so direct resolves to plain Sol.
|
|
101968
101979
|
"gpt-pro": {
|
|
101969
|
-
displayName: "GPT Pro",
|
|
101970
|
-
|
|
101971
|
-
|
|
101980
|
+
displayName: "GPT Sol Pro",
|
|
101981
|
+
description: "Maximum reasoning effort",
|
|
101982
|
+
resolve: "opencode/gpt-5.6-sol",
|
|
101983
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-sol-pro",
|
|
101972
101984
|
subagentModel: "gpt"
|
|
101973
101985
|
},
|
|
101974
|
-
//
|
|
101975
|
-
"gpt-
|
|
101976
|
-
displayName: "GPT
|
|
101977
|
-
resolve: "opencode/gpt-5.
|
|
101978
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
101979
|
-
hidden: true
|
|
101986
|
+
// gpt-5.6 balanced mid-tier — selectable + `gpt`'s subagent. see openai above.
|
|
101987
|
+
"gpt-terra": {
|
|
101988
|
+
displayName: "GPT Terra",
|
|
101989
|
+
resolve: "opencode/gpt-5.6-terra",
|
|
101990
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-terra"
|
|
101980
101991
|
},
|
|
101981
101992
|
"gpt-mini": {
|
|
101982
|
-
displayName: "GPT
|
|
101983
|
-
resolve: "opencode/gpt-5.
|
|
101984
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
101993
|
+
displayName: "GPT Luna",
|
|
101994
|
+
resolve: "opencode/gpt-5.6-luna",
|
|
101995
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-luna"
|
|
101985
101996
|
},
|
|
101986
101997
|
// legacy aliases — see openai provider above for context.
|
|
101987
101998
|
"gpt-codex": {
|
|
@@ -101996,6 +102007,13 @@ var providers = {
|
|
|
101996
102007
|
openRouterResolve: "openrouter/openai/gpt-5.1-codex-mini",
|
|
101997
102008
|
fallback: "opencode/gpt-mini"
|
|
101998
102009
|
},
|
|
102010
|
+
// dropped hidden subagent tier — folds stored pins forward to gpt (Sol).
|
|
102011
|
+
"gpt-5.4": {
|
|
102012
|
+
displayName: "GPT 5.4",
|
|
102013
|
+
resolve: "opencode/gpt-5.4",
|
|
102014
|
+
openRouterResolve: "openrouter/openai/gpt-5.4",
|
|
102015
|
+
fallback: "opencode/gpt"
|
|
102016
|
+
},
|
|
101999
102017
|
"gemini-pro": {
|
|
102000
102018
|
displayName: "Gemini Pro",
|
|
102001
102019
|
resolve: "opencode/gemini-3.1-pro",
|
|
@@ -102112,29 +102130,34 @@ var providers = {
|
|
|
102112
102130
|
resolve: "openrouter/~anthropic/claude-haiku-latest",
|
|
102113
102131
|
openRouterResolve: "openrouter/~anthropic/claude-haiku-latest"
|
|
102114
102132
|
},
|
|
102133
|
+
// pinned to the explicit gpt-5.6 tiers (not the ~openai/gpt-latest rolling
|
|
102134
|
+
// alias): after the Sol/Terra/Luna rename, ~gpt-mini-latest no longer maps
|
|
102135
|
+
// to Luna, so rolling aliases would silently diverge `gpt`/`gpt-mini` from
|
|
102136
|
+
// the chosen tiers across funding paths.
|
|
102115
102137
|
gpt: {
|
|
102116
|
-
displayName: "GPT",
|
|
102117
|
-
resolve: "openrouter
|
|
102118
|
-
openRouterResolve: "openrouter
|
|
102119
|
-
subagentModel: "gpt-
|
|
102138
|
+
displayName: "GPT Sol",
|
|
102139
|
+
resolve: "openrouter/openai/gpt-5.6-sol",
|
|
102140
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-sol",
|
|
102141
|
+
subagentModel: "gpt-terra"
|
|
102120
102142
|
},
|
|
102143
|
+
// see openai/gpt-pro. openrouter serves sol-pro directly on both routes.
|
|
102121
102144
|
"gpt-pro": {
|
|
102122
|
-
displayName: "GPT Pro",
|
|
102123
|
-
|
|
102124
|
-
|
|
102145
|
+
displayName: "GPT Sol Pro",
|
|
102146
|
+
description: "Maximum reasoning effort",
|
|
102147
|
+
resolve: "openrouter/openai/gpt-5.6-sol-pro",
|
|
102148
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-sol-pro",
|
|
102125
102149
|
subagentModel: "gpt"
|
|
102126
102150
|
},
|
|
102127
|
-
//
|
|
102128
|
-
"gpt-
|
|
102129
|
-
displayName: "GPT
|
|
102130
|
-
resolve: "openrouter/openai/gpt-5.
|
|
102131
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
102132
|
-
hidden: true
|
|
102151
|
+
// gpt-5.6 balanced mid-tier — selectable + `gpt`'s subagent. see openai above.
|
|
102152
|
+
"gpt-terra": {
|
|
102153
|
+
displayName: "GPT Terra",
|
|
102154
|
+
resolve: "openrouter/openai/gpt-5.6-terra",
|
|
102155
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-terra"
|
|
102133
102156
|
},
|
|
102134
102157
|
"gpt-mini": {
|
|
102135
|
-
displayName: "GPT
|
|
102136
|
-
resolve: "openrouter
|
|
102137
|
-
openRouterResolve: "openrouter
|
|
102158
|
+
displayName: "GPT Luna",
|
|
102159
|
+
resolve: "openrouter/openai/gpt-5.6-luna",
|
|
102160
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-luna"
|
|
102138
102161
|
},
|
|
102139
102162
|
// legacy aliases — see openai provider for context.
|
|
102140
102163
|
"gpt-codex": {
|
|
@@ -102149,6 +102172,13 @@ var providers = {
|
|
|
102149
102172
|
openRouterResolve: "openrouter/openai/gpt-5.1-codex-mini",
|
|
102150
102173
|
fallback: "openrouter/gpt-mini"
|
|
102151
102174
|
},
|
|
102175
|
+
// dropped hidden subagent tier — folds stored pins forward to gpt (Sol).
|
|
102176
|
+
"gpt-5.4": {
|
|
102177
|
+
displayName: "GPT 5.4",
|
|
102178
|
+
resolve: "openrouter/openai/gpt-5.4",
|
|
102179
|
+
openRouterResolve: "openrouter/openai/gpt-5.4",
|
|
102180
|
+
fallback: "openrouter/gpt"
|
|
102181
|
+
},
|
|
102152
102182
|
"o4-mini": {
|
|
102153
102183
|
displayName: "O4 Mini",
|
|
102154
102184
|
resolve: "openrouter/openai/o4-mini",
|
|
@@ -102228,6 +102258,7 @@ var modelAliases = Object.entries(providers).flatMap(
|
|
|
102228
102258
|
slug: `${providerKey}/${modelId}`,
|
|
102229
102259
|
provider: providerKey,
|
|
102230
102260
|
displayName: def.displayName,
|
|
102261
|
+
description: def.description,
|
|
102231
102262
|
resolve: def.resolve,
|
|
102232
102263
|
openRouterResolve: def.openRouterResolve,
|
|
102233
102264
|
preferred: def.preferred ?? false,
|
|
@@ -102970,7 +103001,7 @@ var import_semver = __toESM(require_semver2(), 1);
|
|
|
102970
103001
|
// package.json
|
|
102971
103002
|
var package_default = {
|
|
102972
103003
|
name: "pullfrog",
|
|
102973
|
-
version: "0.1.
|
|
103004
|
+
version: "0.1.35",
|
|
102974
103005
|
type: "module",
|
|
102975
103006
|
bin: {
|
|
102976
103007
|
pullfrog: "dist/cli.mjs",
|
|
@@ -168022,7 +168053,7 @@ async function runCli4(input) {
|
|
|
168022
168053
|
}
|
|
168023
168054
|
|
|
168024
168055
|
// cli.ts
|
|
168025
|
-
var VERSION10 = "0.1.
|
|
168056
|
+
var VERSION10 = "0.1.35";
|
|
168026
168057
|
var bin = basename2(process.argv[1] || "");
|
|
168027
168058
|
var PROG = bin === "pf" || bin === "pullfrog" ? bin : "pullfrog";
|
|
168028
168059
|
var rawArgs = process.argv.slice(2);
|
package/dist/index.js
CHANGED
|
@@ -99859,37 +99859,40 @@ var providers = {
|
|
|
99859
99859
|
managedCredentials: ["CODEX_AUTH_JSON"],
|
|
99860
99860
|
models: {
|
|
99861
99861
|
gpt: {
|
|
99862
|
-
displayName: "GPT",
|
|
99863
|
-
resolve: "openai/gpt-5.
|
|
99864
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
99862
|
+
displayName: "GPT Sol",
|
|
99863
|
+
resolve: "openai/gpt-5.6-sol",
|
|
99864
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-sol",
|
|
99865
99865
|
preferred: true,
|
|
99866
|
-
subagentModel: "gpt-
|
|
99866
|
+
subagentModel: "gpt-terra"
|
|
99867
99867
|
},
|
|
99868
|
+
// Sol served at reasoning.mode=pro — same $/token as Sol, just more tokens
|
|
99869
|
+
// burned; not a pricier premium tier. models.dev has no -pro id, so direct-key
|
|
99870
|
+
// (BYOK) resolves to plain Sol; only the Router/OpenRouter path gets sol-pro.
|
|
99868
99871
|
"gpt-pro": {
|
|
99869
|
-
displayName: "GPT Pro",
|
|
99870
|
-
|
|
99871
|
-
|
|
99872
|
+
displayName: "GPT Sol Pro",
|
|
99873
|
+
description: "Maximum reasoning effort",
|
|
99874
|
+
resolve: "openai/gpt-5.6-sol",
|
|
99875
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-sol-pro",
|
|
99872
99876
|
subagentModel: "gpt"
|
|
99873
99877
|
},
|
|
99874
|
-
//
|
|
99875
|
-
//
|
|
99876
|
-
//
|
|
99877
|
-
"gpt-
|
|
99878
|
-
displayName: "GPT
|
|
99879
|
-
resolve: "openai/gpt-5.
|
|
99880
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
99881
|
-
hidden: true
|
|
99878
|
+
// gpt-5.6's balanced mid-tier (Sol/Terra/Luna are durable capability tiers,
|
|
99879
|
+
// not version bumps). selectable on its own and doubles as `gpt`'s cheaper
|
|
99880
|
+
// lens-fanout subagent — replaces the old hidden gpt-5.4 subagent target.
|
|
99881
|
+
"gpt-terra": {
|
|
99882
|
+
displayName: "GPT Terra",
|
|
99883
|
+
resolve: "openai/gpt-5.6-terra",
|
|
99884
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-terra"
|
|
99882
99885
|
},
|
|
99883
99886
|
"gpt-mini": {
|
|
99884
|
-
displayName: "GPT
|
|
99885
|
-
resolve: "openai/gpt-5.
|
|
99886
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
99887
|
+
displayName: "GPT Luna",
|
|
99888
|
+
resolve: "openai/gpt-5.6-luna",
|
|
99889
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-luna"
|
|
99887
99890
|
},
|
|
99888
99891
|
// legacy aliases — openai unified the codex line into the main GPT family
|
|
99889
99892
|
// and is shutting down every "-codex" snapshot on 2026-07-23. transparently
|
|
99890
99893
|
// upgrade existing users via the fallback chain. UI display sites resolve
|
|
99891
99894
|
// to the terminal alias's label (so dropdown trigger + PR footers show
|
|
99892
|
-
// "GPT" / "GPT
|
|
99895
|
+
// "GPT Sol" / "GPT Luna", not the historical name).
|
|
99893
99896
|
"gpt-codex": {
|
|
99894
99897
|
displayName: "GPT Codex",
|
|
99895
99898
|
resolve: "openai/gpt-5.3-codex",
|
|
@@ -99902,6 +99905,13 @@ var providers = {
|
|
|
99902
99905
|
openRouterResolve: "openrouter/openai/gpt-5.1-codex-mini",
|
|
99903
99906
|
fallback: "openai/gpt-mini"
|
|
99904
99907
|
},
|
|
99908
|
+
// dropped hidden subagent tier — folds stored pins forward to gpt (Sol).
|
|
99909
|
+
"gpt-5.4": {
|
|
99910
|
+
displayName: "GPT 5.4",
|
|
99911
|
+
resolve: "openai/gpt-5.4",
|
|
99912
|
+
openRouterResolve: "openrouter/openai/gpt-5.4",
|
|
99913
|
+
fallback: "openai/gpt"
|
|
99914
|
+
},
|
|
99905
99915
|
o3: {
|
|
99906
99916
|
displayName: "O3",
|
|
99907
99917
|
resolve: "openai/o3",
|
|
@@ -100031,28 +100041,29 @@ var providers = {
|
|
|
100031
100041
|
openRouterResolve: "openrouter/anthropic/claude-haiku-4.5"
|
|
100032
100042
|
},
|
|
100033
100043
|
gpt: {
|
|
100034
|
-
displayName: "GPT",
|
|
100035
|
-
resolve: "opencode/gpt-5.
|
|
100036
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
100037
|
-
subagentModel: "gpt-
|
|
100044
|
+
displayName: "GPT Sol",
|
|
100045
|
+
resolve: "opencode/gpt-5.6-sol",
|
|
100046
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-sol",
|
|
100047
|
+
subagentModel: "gpt-terra"
|
|
100038
100048
|
},
|
|
100049
|
+
// see openai/gpt-pro — Zen has no -pro id, so direct resolves to plain Sol.
|
|
100039
100050
|
"gpt-pro": {
|
|
100040
|
-
displayName: "GPT Pro",
|
|
100041
|
-
|
|
100042
|
-
|
|
100051
|
+
displayName: "GPT Sol Pro",
|
|
100052
|
+
description: "Maximum reasoning effort",
|
|
100053
|
+
resolve: "opencode/gpt-5.6-sol",
|
|
100054
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-sol-pro",
|
|
100043
100055
|
subagentModel: "gpt"
|
|
100044
100056
|
},
|
|
100045
|
-
//
|
|
100046
|
-
"gpt-
|
|
100047
|
-
displayName: "GPT
|
|
100048
|
-
resolve: "opencode/gpt-5.
|
|
100049
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
100050
|
-
hidden: true
|
|
100057
|
+
// gpt-5.6 balanced mid-tier — selectable + `gpt`'s subagent. see openai above.
|
|
100058
|
+
"gpt-terra": {
|
|
100059
|
+
displayName: "GPT Terra",
|
|
100060
|
+
resolve: "opencode/gpt-5.6-terra",
|
|
100061
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-terra"
|
|
100051
100062
|
},
|
|
100052
100063
|
"gpt-mini": {
|
|
100053
|
-
displayName: "GPT
|
|
100054
|
-
resolve: "opencode/gpt-5.
|
|
100055
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
100064
|
+
displayName: "GPT Luna",
|
|
100065
|
+
resolve: "opencode/gpt-5.6-luna",
|
|
100066
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-luna"
|
|
100056
100067
|
},
|
|
100057
100068
|
// legacy aliases — see openai provider above for context.
|
|
100058
100069
|
"gpt-codex": {
|
|
@@ -100067,6 +100078,13 @@ var providers = {
|
|
|
100067
100078
|
openRouterResolve: "openrouter/openai/gpt-5.1-codex-mini",
|
|
100068
100079
|
fallback: "opencode/gpt-mini"
|
|
100069
100080
|
},
|
|
100081
|
+
// dropped hidden subagent tier — folds stored pins forward to gpt (Sol).
|
|
100082
|
+
"gpt-5.4": {
|
|
100083
|
+
displayName: "GPT 5.4",
|
|
100084
|
+
resolve: "opencode/gpt-5.4",
|
|
100085
|
+
openRouterResolve: "openrouter/openai/gpt-5.4",
|
|
100086
|
+
fallback: "opencode/gpt"
|
|
100087
|
+
},
|
|
100070
100088
|
"gemini-pro": {
|
|
100071
100089
|
displayName: "Gemini Pro",
|
|
100072
100090
|
resolve: "opencode/gemini-3.1-pro",
|
|
@@ -100183,29 +100201,34 @@ var providers = {
|
|
|
100183
100201
|
resolve: "openrouter/~anthropic/claude-haiku-latest",
|
|
100184
100202
|
openRouterResolve: "openrouter/~anthropic/claude-haiku-latest"
|
|
100185
100203
|
},
|
|
100204
|
+
// pinned to the explicit gpt-5.6 tiers (not the ~openai/gpt-latest rolling
|
|
100205
|
+
// alias): after the Sol/Terra/Luna rename, ~gpt-mini-latest no longer maps
|
|
100206
|
+
// to Luna, so rolling aliases would silently diverge `gpt`/`gpt-mini` from
|
|
100207
|
+
// the chosen tiers across funding paths.
|
|
100186
100208
|
gpt: {
|
|
100187
|
-
displayName: "GPT",
|
|
100188
|
-
resolve: "openrouter
|
|
100189
|
-
openRouterResolve: "openrouter
|
|
100190
|
-
subagentModel: "gpt-
|
|
100209
|
+
displayName: "GPT Sol",
|
|
100210
|
+
resolve: "openrouter/openai/gpt-5.6-sol",
|
|
100211
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-sol",
|
|
100212
|
+
subagentModel: "gpt-terra"
|
|
100191
100213
|
},
|
|
100214
|
+
// see openai/gpt-pro. openrouter serves sol-pro directly on both routes.
|
|
100192
100215
|
"gpt-pro": {
|
|
100193
|
-
displayName: "GPT Pro",
|
|
100194
|
-
|
|
100195
|
-
|
|
100216
|
+
displayName: "GPT Sol Pro",
|
|
100217
|
+
description: "Maximum reasoning effort",
|
|
100218
|
+
resolve: "openrouter/openai/gpt-5.6-sol-pro",
|
|
100219
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-sol-pro",
|
|
100196
100220
|
subagentModel: "gpt"
|
|
100197
100221
|
},
|
|
100198
|
-
//
|
|
100199
|
-
"gpt-
|
|
100200
|
-
displayName: "GPT
|
|
100201
|
-
resolve: "openrouter/openai/gpt-5.
|
|
100202
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
100203
|
-
hidden: true
|
|
100222
|
+
// gpt-5.6 balanced mid-tier — selectable + `gpt`'s subagent. see openai above.
|
|
100223
|
+
"gpt-terra": {
|
|
100224
|
+
displayName: "GPT Terra",
|
|
100225
|
+
resolve: "openrouter/openai/gpt-5.6-terra",
|
|
100226
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-terra"
|
|
100204
100227
|
},
|
|
100205
100228
|
"gpt-mini": {
|
|
100206
|
-
displayName: "GPT
|
|
100207
|
-
resolve: "openrouter
|
|
100208
|
-
openRouterResolve: "openrouter
|
|
100229
|
+
displayName: "GPT Luna",
|
|
100230
|
+
resolve: "openrouter/openai/gpt-5.6-luna",
|
|
100231
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-luna"
|
|
100209
100232
|
},
|
|
100210
100233
|
// legacy aliases — see openai provider for context.
|
|
100211
100234
|
"gpt-codex": {
|
|
@@ -100220,6 +100243,13 @@ var providers = {
|
|
|
100220
100243
|
openRouterResolve: "openrouter/openai/gpt-5.1-codex-mini",
|
|
100221
100244
|
fallback: "openrouter/gpt-mini"
|
|
100222
100245
|
},
|
|
100246
|
+
// dropped hidden subagent tier — folds stored pins forward to gpt (Sol).
|
|
100247
|
+
"gpt-5.4": {
|
|
100248
|
+
displayName: "GPT 5.4",
|
|
100249
|
+
resolve: "openrouter/openai/gpt-5.4",
|
|
100250
|
+
openRouterResolve: "openrouter/openai/gpt-5.4",
|
|
100251
|
+
fallback: "openrouter/gpt"
|
|
100252
|
+
},
|
|
100223
100253
|
"o4-mini": {
|
|
100224
100254
|
displayName: "O4 Mini",
|
|
100225
100255
|
resolve: "openrouter/openai/o4-mini",
|
|
@@ -100299,6 +100329,7 @@ var modelAliases = Object.entries(providers).flatMap(
|
|
|
100299
100329
|
slug: `${providerKey}/${modelId}`,
|
|
100300
100330
|
provider: providerKey,
|
|
100301
100331
|
displayName: def.displayName,
|
|
100332
|
+
description: def.description,
|
|
100302
100333
|
resolve: def.resolve,
|
|
100303
100334
|
openRouterResolve: def.openRouterResolve,
|
|
100304
100335
|
preferred: def.preferred ?? false,
|
|
@@ -101041,7 +101072,7 @@ var import_semver = __toESM(require_semver2(), 1);
|
|
|
101041
101072
|
// package.json
|
|
101042
101073
|
var package_default = {
|
|
101043
101074
|
name: "pullfrog",
|
|
101044
|
-
version: "0.1.
|
|
101075
|
+
version: "0.1.35",
|
|
101045
101076
|
type: "module",
|
|
101046
101077
|
bin: {
|
|
101047
101078
|
pullfrog: "dist/cli.mjs",
|
package/dist/internal.js
CHANGED
|
@@ -50,37 +50,40 @@ var providers = {
|
|
|
50
50
|
managedCredentials: ["CODEX_AUTH_JSON"],
|
|
51
51
|
models: {
|
|
52
52
|
gpt: {
|
|
53
|
-
displayName: "GPT",
|
|
54
|
-
resolve: "openai/gpt-5.
|
|
55
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
53
|
+
displayName: "GPT Sol",
|
|
54
|
+
resolve: "openai/gpt-5.6-sol",
|
|
55
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-sol",
|
|
56
56
|
preferred: true,
|
|
57
|
-
subagentModel: "gpt-
|
|
57
|
+
subagentModel: "gpt-terra"
|
|
58
58
|
},
|
|
59
|
+
// Sol served at reasoning.mode=pro — same $/token as Sol, just more tokens
|
|
60
|
+
// burned; not a pricier premium tier. models.dev has no -pro id, so direct-key
|
|
61
|
+
// (BYOK) resolves to plain Sol; only the Router/OpenRouter path gets sol-pro.
|
|
59
62
|
"gpt-pro": {
|
|
60
|
-
displayName: "GPT Pro",
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
displayName: "GPT Sol Pro",
|
|
64
|
+
description: "Maximum reasoning effort",
|
|
65
|
+
resolve: "openai/gpt-5.6-sol",
|
|
66
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-sol-pro",
|
|
63
67
|
subagentModel: "gpt"
|
|
64
68
|
},
|
|
65
|
-
//
|
|
66
|
-
//
|
|
67
|
-
//
|
|
68
|
-
"gpt-
|
|
69
|
-
displayName: "GPT
|
|
70
|
-
resolve: "openai/gpt-5.
|
|
71
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
72
|
-
hidden: true
|
|
69
|
+
// gpt-5.6's balanced mid-tier (Sol/Terra/Luna are durable capability tiers,
|
|
70
|
+
// not version bumps). selectable on its own and doubles as `gpt`'s cheaper
|
|
71
|
+
// lens-fanout subagent — replaces the old hidden gpt-5.4 subagent target.
|
|
72
|
+
"gpt-terra": {
|
|
73
|
+
displayName: "GPT Terra",
|
|
74
|
+
resolve: "openai/gpt-5.6-terra",
|
|
75
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-terra"
|
|
73
76
|
},
|
|
74
77
|
"gpt-mini": {
|
|
75
|
-
displayName: "GPT
|
|
76
|
-
resolve: "openai/gpt-5.
|
|
77
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
78
|
+
displayName: "GPT Luna",
|
|
79
|
+
resolve: "openai/gpt-5.6-luna",
|
|
80
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-luna"
|
|
78
81
|
},
|
|
79
82
|
// legacy aliases — openai unified the codex line into the main GPT family
|
|
80
83
|
// and is shutting down every "-codex" snapshot on 2026-07-23. transparently
|
|
81
84
|
// upgrade existing users via the fallback chain. UI display sites resolve
|
|
82
85
|
// to the terminal alias's label (so dropdown trigger + PR footers show
|
|
83
|
-
// "GPT" / "GPT
|
|
86
|
+
// "GPT Sol" / "GPT Luna", not the historical name).
|
|
84
87
|
"gpt-codex": {
|
|
85
88
|
displayName: "GPT Codex",
|
|
86
89
|
resolve: "openai/gpt-5.3-codex",
|
|
@@ -93,6 +96,13 @@ var providers = {
|
|
|
93
96
|
openRouterResolve: "openrouter/openai/gpt-5.1-codex-mini",
|
|
94
97
|
fallback: "openai/gpt-mini"
|
|
95
98
|
},
|
|
99
|
+
// dropped hidden subagent tier — folds stored pins forward to gpt (Sol).
|
|
100
|
+
"gpt-5.4": {
|
|
101
|
+
displayName: "GPT 5.4",
|
|
102
|
+
resolve: "openai/gpt-5.4",
|
|
103
|
+
openRouterResolve: "openrouter/openai/gpt-5.4",
|
|
104
|
+
fallback: "openai/gpt"
|
|
105
|
+
},
|
|
96
106
|
o3: {
|
|
97
107
|
displayName: "O3",
|
|
98
108
|
resolve: "openai/o3",
|
|
@@ -222,28 +232,29 @@ var providers = {
|
|
|
222
232
|
openRouterResolve: "openrouter/anthropic/claude-haiku-4.5"
|
|
223
233
|
},
|
|
224
234
|
gpt: {
|
|
225
|
-
displayName: "GPT",
|
|
226
|
-
resolve: "opencode/gpt-5.
|
|
227
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
228
|
-
subagentModel: "gpt-
|
|
235
|
+
displayName: "GPT Sol",
|
|
236
|
+
resolve: "opencode/gpt-5.6-sol",
|
|
237
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-sol",
|
|
238
|
+
subagentModel: "gpt-terra"
|
|
229
239
|
},
|
|
240
|
+
// see openai/gpt-pro — Zen has no -pro id, so direct resolves to plain Sol.
|
|
230
241
|
"gpt-pro": {
|
|
231
|
-
displayName: "GPT Pro",
|
|
232
|
-
|
|
233
|
-
|
|
242
|
+
displayName: "GPT Sol Pro",
|
|
243
|
+
description: "Maximum reasoning effort",
|
|
244
|
+
resolve: "opencode/gpt-5.6-sol",
|
|
245
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-sol-pro",
|
|
234
246
|
subagentModel: "gpt"
|
|
235
247
|
},
|
|
236
|
-
//
|
|
237
|
-
"gpt-
|
|
238
|
-
displayName: "GPT
|
|
239
|
-
resolve: "opencode/gpt-5.
|
|
240
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
241
|
-
hidden: true
|
|
248
|
+
// gpt-5.6 balanced mid-tier — selectable + `gpt`'s subagent. see openai above.
|
|
249
|
+
"gpt-terra": {
|
|
250
|
+
displayName: "GPT Terra",
|
|
251
|
+
resolve: "opencode/gpt-5.6-terra",
|
|
252
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-terra"
|
|
242
253
|
},
|
|
243
254
|
"gpt-mini": {
|
|
244
|
-
displayName: "GPT
|
|
245
|
-
resolve: "opencode/gpt-5.
|
|
246
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
255
|
+
displayName: "GPT Luna",
|
|
256
|
+
resolve: "opencode/gpt-5.6-luna",
|
|
257
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-luna"
|
|
247
258
|
},
|
|
248
259
|
// legacy aliases — see openai provider above for context.
|
|
249
260
|
"gpt-codex": {
|
|
@@ -258,6 +269,13 @@ var providers = {
|
|
|
258
269
|
openRouterResolve: "openrouter/openai/gpt-5.1-codex-mini",
|
|
259
270
|
fallback: "opencode/gpt-mini"
|
|
260
271
|
},
|
|
272
|
+
// dropped hidden subagent tier — folds stored pins forward to gpt (Sol).
|
|
273
|
+
"gpt-5.4": {
|
|
274
|
+
displayName: "GPT 5.4",
|
|
275
|
+
resolve: "opencode/gpt-5.4",
|
|
276
|
+
openRouterResolve: "openrouter/openai/gpt-5.4",
|
|
277
|
+
fallback: "opencode/gpt"
|
|
278
|
+
},
|
|
261
279
|
"gemini-pro": {
|
|
262
280
|
displayName: "Gemini Pro",
|
|
263
281
|
resolve: "opencode/gemini-3.1-pro",
|
|
@@ -374,29 +392,34 @@ var providers = {
|
|
|
374
392
|
resolve: "openrouter/~anthropic/claude-haiku-latest",
|
|
375
393
|
openRouterResolve: "openrouter/~anthropic/claude-haiku-latest"
|
|
376
394
|
},
|
|
395
|
+
// pinned to the explicit gpt-5.6 tiers (not the ~openai/gpt-latest rolling
|
|
396
|
+
// alias): after the Sol/Terra/Luna rename, ~gpt-mini-latest no longer maps
|
|
397
|
+
// to Luna, so rolling aliases would silently diverge `gpt`/`gpt-mini` from
|
|
398
|
+
// the chosen tiers across funding paths.
|
|
377
399
|
gpt: {
|
|
378
|
-
displayName: "GPT",
|
|
379
|
-
resolve: "openrouter
|
|
380
|
-
openRouterResolve: "openrouter
|
|
381
|
-
subagentModel: "gpt-
|
|
400
|
+
displayName: "GPT Sol",
|
|
401
|
+
resolve: "openrouter/openai/gpt-5.6-sol",
|
|
402
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-sol",
|
|
403
|
+
subagentModel: "gpt-terra"
|
|
382
404
|
},
|
|
405
|
+
// see openai/gpt-pro. openrouter serves sol-pro directly on both routes.
|
|
383
406
|
"gpt-pro": {
|
|
384
|
-
displayName: "GPT Pro",
|
|
385
|
-
|
|
386
|
-
|
|
407
|
+
displayName: "GPT Sol Pro",
|
|
408
|
+
description: "Maximum reasoning effort",
|
|
409
|
+
resolve: "openrouter/openai/gpt-5.6-sol-pro",
|
|
410
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-sol-pro",
|
|
387
411
|
subagentModel: "gpt"
|
|
388
412
|
},
|
|
389
|
-
//
|
|
390
|
-
"gpt-
|
|
391
|
-
displayName: "GPT
|
|
392
|
-
resolve: "openrouter/openai/gpt-5.
|
|
393
|
-
openRouterResolve: "openrouter/openai/gpt-5.
|
|
394
|
-
hidden: true
|
|
413
|
+
// gpt-5.6 balanced mid-tier — selectable + `gpt`'s subagent. see openai above.
|
|
414
|
+
"gpt-terra": {
|
|
415
|
+
displayName: "GPT Terra",
|
|
416
|
+
resolve: "openrouter/openai/gpt-5.6-terra",
|
|
417
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-terra"
|
|
395
418
|
},
|
|
396
419
|
"gpt-mini": {
|
|
397
|
-
displayName: "GPT
|
|
398
|
-
resolve: "openrouter
|
|
399
|
-
openRouterResolve: "openrouter
|
|
420
|
+
displayName: "GPT Luna",
|
|
421
|
+
resolve: "openrouter/openai/gpt-5.6-luna",
|
|
422
|
+
openRouterResolve: "openrouter/openai/gpt-5.6-luna"
|
|
400
423
|
},
|
|
401
424
|
// legacy aliases — see openai provider for context.
|
|
402
425
|
"gpt-codex": {
|
|
@@ -411,6 +434,13 @@ var providers = {
|
|
|
411
434
|
openRouterResolve: "openrouter/openai/gpt-5.1-codex-mini",
|
|
412
435
|
fallback: "openrouter/gpt-mini"
|
|
413
436
|
},
|
|
437
|
+
// dropped hidden subagent tier — folds stored pins forward to gpt (Sol).
|
|
438
|
+
"gpt-5.4": {
|
|
439
|
+
displayName: "GPT 5.4",
|
|
440
|
+
resolve: "openrouter/openai/gpt-5.4",
|
|
441
|
+
openRouterResolve: "openrouter/openai/gpt-5.4",
|
|
442
|
+
fallback: "openrouter/gpt"
|
|
443
|
+
},
|
|
414
444
|
"o4-mini": {
|
|
415
445
|
displayName: "O4 Mini",
|
|
416
446
|
resolve: "openrouter/openai/o4-mini",
|
|
@@ -499,6 +529,7 @@ var modelAliases = Object.entries(providers).flatMap(
|
|
|
499
529
|
slug: `${providerKey}/${modelId}`,
|
|
500
530
|
provider: providerKey,
|
|
501
531
|
displayName: def.displayName,
|
|
532
|
+
description: def.description,
|
|
502
533
|
resolve: def.resolve,
|
|
503
534
|
openRouterResolve: def.openRouterResolve,
|
|
504
535
|
preferred: def.preferred ?? false,
|
package/dist/models.d.ts
CHANGED
|
@@ -28,6 +28,9 @@ export interface ModelAlias {
|
|
|
28
28
|
provider: string;
|
|
29
29
|
/** human-readable name shown in dropdowns */
|
|
30
30
|
displayName: string;
|
|
31
|
+
/** optional one-line picker sub-label clarifying what the alias is (e.g.
|
|
32
|
+
* gpt-pro = "Maximum reasoning effort"). undefined for most aliases. */
|
|
33
|
+
description: string | undefined;
|
|
31
34
|
/** concrete models.dev specifier, e.g. "anthropic/claude-opus-4-6". sentinel for routing entries — never passed to a CLI directly. */
|
|
32
35
|
resolve: string;
|
|
33
36
|
/** full models.dev specifier for the OpenRouter equivalent (undefined for free models and routing entries) */
|
|
@@ -48,12 +51,14 @@ export interface ModelAlias {
|
|
|
48
51
|
* use as its lens-fanout subagent. e.g. claude-opus → "claude-sonnet". */
|
|
49
52
|
subagentModel: string | undefined;
|
|
50
53
|
/** hide from selectable lists (UI dropdowns, CLI pickers). does NOT affect
|
|
51
|
-
* resolution — for that use `fallback`. used
|
|
52
|
-
* (e.g.
|
|
54
|
+
* resolution — for that use `fallback`. used to keep a redundant alias out of
|
|
55
|
+
* pickers (e.g. the free `minimax-m2.5-free` duplicate). */
|
|
53
56
|
hidden: boolean;
|
|
54
57
|
}
|
|
55
58
|
interface ModelDef {
|
|
56
59
|
displayName: string;
|
|
60
|
+
/** optional one-line picker sub-label (e.g. "Maximum reasoning effort"). */
|
|
61
|
+
description?: string;
|
|
57
62
|
/** concrete models.dev specifier, e.g. "anthropic/claude-opus-4-6" */
|
|
58
63
|
resolve: string;
|
|
59
64
|
/** full models.dev specifier for the OpenRouter equivalent, e.g. "openrouter/anthropic/claude-opus-4.6" */
|