diff --git a/.github/images/compare-gemini-3.0-pro.png b/.github/images/compare-gemini-3.0-pro.png new file mode 100644 index 0000000..50c77a2 Binary files /dev/null and b/.github/images/compare-gemini-3.0-pro.png differ diff --git a/.github/images/compare-gemini-3.1-pro-preview.png b/.github/images/compare-gemini-3.1-pro-preview.png new file mode 100644 index 0000000..a179653 Binary files /dev/null and b/.github/images/compare-gemini-3.1-pro-preview.png differ diff --git a/skills/baoyu-danger-gemini-web/SKILL.md b/skills/baoyu-danger-gemini-web/SKILL.md index 16dc881..9bab9ba 100644 --- a/skills/baoyu-danger-gemini-web/SKILL.md +++ b/skills/baoyu-danger-gemini-web/SKILL.md @@ -76,7 +76,7 @@ test -f "$HOME/.baoyu-skills/baoyu-danger-gemini-web/EXTEND.md" && echo "user" ```bash # Text generation npx -y bun ${SKILL_DIR}/scripts/main.ts "Your prompt" -npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "Your prompt" --model gemini-2.5-pro +npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "Your prompt" --model gemini-3-flash # Image generation npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "A cute cat" --image cat.png @@ -100,7 +100,7 @@ npx -y bun ${SKILL_DIR}/scripts/main.ts "Hello" --json |--------|-------------| | `--prompt`, `-p` | Prompt text | | `--promptfiles` | Read prompt from files (concatenated) | -| `--model`, `-m` | Model: gemini-3-pro (default), gemini-2.5-pro, gemini-2.5-flash | +| `--model`, `-m` | Model: gemini-3-pro (default), gemini-3-flash, gemini-3-flash-thinking, gemini-3.1-pro-preview | | `--image [path]` | Generate image (default: generated.png) | | `--reference`, `--ref` | Reference images for vision input | | `--sessionId` | Session ID for multi-turn conversation | @@ -114,9 +114,10 @@ npx -y bun ${SKILL_DIR}/scripts/main.ts "Hello" --json | Model | Description | |-------|-------------| -| `gemini-3-pro` | Default, latest | -| `gemini-2.5-pro` | Previous pro | -| `gemini-2.5-flash` | Fast, lightweight | +| `gemini-3-pro` | Default, latest 3.0 Pro | +| `gemini-3-flash` | Fast, lightweight 3.0 Flash | +| `gemini-3-flash-thinking` | 3.0 Flash with thinking | +| `gemini-3.1-pro-preview` | 3.1 Pro preview (empty header, auto-routed) | ## Authentication diff --git a/skills/baoyu-danger-gemini-web/scripts/gemini-webapi/constants.ts b/skills/baoyu-danger-gemini-web/scripts/gemini-webapi/constants.ts index 73916f9..1d42e1f 100644 --- a/skills/baoyu-danger-gemini-web/scripts/gemini-webapi/constants.ts +++ b/skills/baoyu-danger-gemini-web/scripts/gemini-webapi/constants.ts @@ -47,17 +47,22 @@ export class Model { static readonly UNSPECIFIED = new Model('unspecified', {}, false); static readonly G_3_0_PRO = new Model( 'gemini-3.0-pro', - { 'x-goog-ext-525001261-jspb': '[1,null,null,null,"9d8ca3786ebdfbea",null,null,0,[4]]' }, + { 'x-goog-ext-525001261-jspb': '[1,null,null,null,"9d8ca3786ebdfbea",null,null,0,[4],null,null,1]' }, false, ); - static readonly G_2_5_PRO = new Model( - 'gemini-2.5-pro', - { 'x-goog-ext-525001261-jspb': '[1,null,null,null,"4af6c7f5da75d65d",null,null,0,[4]]' }, + static readonly G_3_0_FLASH = new Model( + 'gemini-3.0-flash', + { 'x-goog-ext-525001261-jspb': '[1,null,null,null,"fbb127bbb056c959",null,null,0,[4],null,null,1]' }, false, ); - static readonly G_2_5_FLASH = new Model( - 'gemini-2.5-flash', - { 'x-goog-ext-525001261-jspb': '[1,null,null,null,"9ec249fc9ad08861",null,null,0,[4]]' }, + static readonly G_3_0_FLASH_THINKING = new Model( + 'gemini-3.0-flash-thinking', + { 'x-goog-ext-525001261-jspb': '[1,null,null,null,"5bf011840784117a",null,null,0,[4],null,null,1]' }, + false, + ); + static readonly G_3_1_PRO_PREVIEW = new Model( + 'gemini-3.1-pro-preview', + {}, false, ); @@ -68,12 +73,12 @@ export class Model { ) {} static from_name(name: string): Model { - for (const model of [Model.UNSPECIFIED, Model.G_3_0_PRO, Model.G_2_5_PRO, Model.G_2_5_FLASH]) { + for (const model of [Model.UNSPECIFIED, Model.G_3_0_PRO, Model.G_3_0_FLASH, Model.G_3_0_FLASH_THINKING, Model.G_3_1_PRO_PREVIEW]) { if (model.model_name === name) return model; } throw new Error( - `Unknown model name: ${name}. Available models: ${[Model.UNSPECIFIED, Model.G_3_0_PRO, Model.G_2_5_PRO, Model.G_2_5_FLASH] + `Unknown model name: ${name}. Available models: ${[Model.UNSPECIFIED, Model.G_3_0_PRO, Model.G_3_0_FLASH, Model.G_3_0_FLASH_THINKING, Model.G_3_1_PRO_PREVIEW] .map((m) => m.model_name) .join(', ')}`, ); diff --git a/skills/baoyu-danger-gemini-web/scripts/main.ts b/skills/baoyu-danger-gemini-web/scripts/main.ts index a9cf6f1..7b89a5e 100644 --- a/skills/baoyu-danger-gemini-web/scripts/main.ts +++ b/skills/baoyu-danger-gemini-web/scripts/main.ts @@ -73,7 +73,7 @@ Multi-turn conversation (agent generates unique sessionId): Options: -p, --prompt Prompt text --promptfiles Read prompt from one or more files (concatenated in order) - -m, --model gemini-3-pro | gemini-2.5-pro | gemini-2.5-flash (default: gemini-3-pro) + -m, --model gemini-3-pro | gemini-3-flash | gemini-3-flash-thinking | gemini-3.1-pro-preview (default: gemini-3-pro) --json Output JSON --image [path] Generate an image and save it (default: ./generated.png) --reference Reference images for vision input @@ -227,8 +227,11 @@ function resolveModel(id: string): Model { const k = id.trim(); if (k === 'gemini-3-pro') return Model.G_3_0_PRO; if (k === 'gemini-3.0-pro') return Model.G_3_0_PRO; - if (k === 'gemini-2.5-pro') return Model.G_2_5_PRO; - if (k === 'gemini-2.5-flash') return Model.G_2_5_FLASH; + if (k === 'gemini-3-flash') return Model.G_3_0_FLASH; + if (k === 'gemini-3.0-flash') return Model.G_3_0_FLASH; + if (k === 'gemini-3-flash-thinking') return Model.G_3_0_FLASH_THINKING; + if (k === 'gemini-3.0-flash-thinking') return Model.G_3_0_FLASH_THINKING; + if (k === 'gemini-3.1-pro-preview') return Model.G_3_1_PRO_PREVIEW; return Model.from_name(k); }