@google/gemini-cli 0.40.0-preview.4 → 0.41.0-nightly.20260427.g42587de73

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.
Files changed (69) hide show
  1. package/README.md +2 -0
  2. package/bundle/{chunk-F73F75XM.js → chunk-6YXSPC34.js} +15 -2
  3. package/bundle/{chunk-BV2W6YE6.js → chunk-AAGEU3BL.js} +2 -2
  4. package/bundle/{chunk-M76FWZ5L.js → chunk-AN7B4FAU.js} +90 -2
  5. package/bundle/{chunk-4XVBQQNJ.js → chunk-DIBSCCT7.js} +38 -11
  6. package/bundle/{chunk-CJQVVQSH.js → chunk-DIGDAAM2.js} +90 -2
  7. package/bundle/{chunk-G356GKHH.js → chunk-DXV2GNZK.js} +1 -1
  8. package/bundle/{chunk-PRZIW6SM.js → chunk-E2PVGI7T.js} +2 -2
  9. package/bundle/{chunk-H7F2VOIJ.js → chunk-EBIQLUW4.js} +38 -11
  10. package/bundle/{chunk-WSTHO4WR.js → chunk-EDS2U2K6.js} +3 -3
  11. package/bundle/{chunk-LMVZLINC.js → chunk-JBPYZI4D.js} +3 -3
  12. package/bundle/{chunk-H4NQBTXN.js → chunk-LFQEL3VY.js} +90 -2
  13. package/bundle/{chunk-KG7ZFMJL.js → chunk-MAZR7GNG.js} +2108 -1100
  14. package/bundle/{chunk-UHHRGNIO.js → chunk-MTD736U4.js} +15 -2
  15. package/bundle/{chunk-LODNDE3S.js → chunk-MWLCQDAR.js} +90 -2
  16. package/bundle/{chunk-547AWTTH.js → chunk-NVZUCT4Q.js} +38 -11
  17. package/bundle/{chunk-CIO3GUGQ.js → chunk-PZYK66PS.js} +2051 -1085
  18. package/bundle/{chunk-HGFADN5A.js → chunk-QAPWMN3Q.js} +1 -1
  19. package/bundle/{chunk-SYPUOR3U.js → chunk-QP7T3P6C.js} +2 -2
  20. package/bundle/{chunk-NV6UCR4K.js → chunk-QU37OIJC.js} +2051 -1085
  21. package/bundle/{chunk-HF7X35D3.js → chunk-QYUVW7FS.js} +38 -11
  22. package/bundle/{chunk-LVHUYMBU.js → chunk-SEC46BJI.js} +2 -2
  23. package/bundle/{chunk-VQ7N6NVX.js → chunk-SVPUDLWF.js} +1 -1
  24. package/bundle/{chunk-63PTTRTA.js → chunk-TIAUGLTD.js} +3 -3
  25. package/bundle/{chunk-ATGIEBEB.js → chunk-UXOWV6CJ.js} +1 -1
  26. package/bundle/{chunk-RENFZ63F.js → chunk-XCXC2RZD.js} +2051 -1085
  27. package/bundle/{chunk-ZQNX6OWU.js → chunk-ZZD6EUQN.js} +3 -3
  28. package/bundle/{cleanup-4EFDM2N7.js → cleanup-5PASNNC4.js} +3 -3
  29. package/bundle/{cleanup-4RRVO4GO.js → cleanup-PWIRVAHI.js} +3 -3
  30. package/bundle/{cleanup-DNS7PXYC.js → cleanup-UX5NEMHM.js} +3 -3
  31. package/bundle/{cleanup-DXHNV2J6.js → cleanup-WBATOWCX.js} +3 -3
  32. package/bundle/{core-WQSFCPEO.js → core-WGFYLLRK.js} +20 -2
  33. package/bundle/{devtoolsService-LPEBYJVD.js → devtoolsService-HNKMOA2D.js} +3 -3
  34. package/bundle/{devtoolsService-S2LBUUZU.js → devtoolsService-PQ7YMVWH.js} +3 -3
  35. package/bundle/{devtoolsService-YCRNWWXE.js → devtoolsService-RNGSRQOZ.js} +3 -3
  36. package/bundle/{devtoolsService-JWET4G6G.js → devtoolsService-Z2MCWSBF.js} +3 -3
  37. package/bundle/{dist-ANTOB3YW.js → dist-D34AS2GG.js} +20 -2
  38. package/bundle/{dist-RIVCP5ZD.js → dist-F2OAYYD2.js} +20 -2
  39. package/bundle/{dist-UH565MTG.js → dist-Q5VBZUT5.js} +20 -2
  40. package/bundle/docs/changelogs/index.md +18 -0
  41. package/bundle/docs/changelogs/latest.md +243 -255
  42. package/bundle/docs/cli/settings.md +19 -13
  43. package/bundle/docs/reference/configuration.md +71 -0
  44. package/bundle/docs/reference/keyboard-shortcuts.md +1 -0
  45. package/bundle/{gemini-JAZVYRDD.js → gemini-BS6JGNC2.js} +24 -179
  46. package/bundle/{gemini-27FQ5BI4.js → gemini-CXXHYL4F.js} +24 -179
  47. package/bundle/{gemini-57EC2ZF7.js → gemini-MWN6XEN7.js} +24 -179
  48. package/bundle/{gemini-TQZRS37Q.js → gemini-R6JM2CNM.js} +24 -179
  49. package/bundle/gemini.js +3 -3
  50. package/bundle/{interactiveCli-L3EK4XEX.js → interactiveCli-ACDBXCG6.js} +1640 -1041
  51. package/bundle/{interactiveCli-MVHR4VV7.js → interactiveCli-FT2L7RG2.js} +1640 -1041
  52. package/bundle/{interactiveCli-E35R6QQC.js → interactiveCli-IRAPLA3H.js} +1640 -1041
  53. package/bundle/{interactiveCli-FPHSBRV3.js → interactiveCli-QIIVZL7W.js} +1640 -1041
  54. package/bundle/{liteRtServerManager-LXEAYAUP.js → liteRtServerManager-2CTTNDIB.js} +4 -4
  55. package/bundle/{liteRtServerManager-ORSW3R4F.js → liteRtServerManager-2LYBQPVS.js} +4 -4
  56. package/bundle/{liteRtServerManager-PI4ZNFB5.js → liteRtServerManager-4DF3SCTA.js} +4 -4
  57. package/bundle/{liteRtServerManager-YYXO5Q3I.js → liteRtServerManager-IU3WCNE6.js} +4 -4
  58. package/bundle/{memoryDiscovery-CZURD35O.js → memoryDiscovery-FPAA4X4J.js} +1 -1
  59. package/bundle/{memoryDiscovery-GZLXKRGB.js → memoryDiscovery-NSOLCG4U.js} +1 -1
  60. package/bundle/node_modules/@google/gemini-cli-devtools/package.json +1 -1
  61. package/bundle/{oauth2-provider-B3NTBNAM.js → oauth2-provider-6TVMKDRI.js} +2 -2
  62. package/bundle/{oauth2-provider-ENF2D4Q7.js → oauth2-provider-HNCA53KG.js} +2 -2
  63. package/bundle/{oauth2-provider-I3G773GE.js → oauth2-provider-V267DDF5.js} +2 -2
  64. package/bundle/{oauth2-provider-WTF7AHQ2.js → oauth2-provider-ZU6AP7MT.js} +2 -2
  65. package/bundle/{start-CRIFZ3SW.js → start-CZ5EM6AM.js} +6 -6
  66. package/bundle/{start-KVFKS3IT.js → start-GOO2DWTA.js} +6 -6
  67. package/bundle/{start-OTLGMCNH.js → start-OVFDMBOO.js} +6 -6
  68. package/bundle/{start-S3REI3X2.js → start-P6Q5N7CP.js} +6 -6
  69. package/package.json +1 -1
package/README.md CHANGED
@@ -371,6 +371,8 @@ for planned features and priorities.
371
371
 
372
372
  ## 📖 Resources
373
373
 
374
+ - **[Free Course](https://learn.deeplearning.ai/courses/gemini-cli-code-and-create-with-an-open-source-agent/information)** -
375
+ Learn the basics.
374
376
  - **[Official Roadmap](./ROADMAP.md)** - See what's coming next.
375
377
  - **[Changelog](https://www.geminicli.com/docs/changelogs)** - See recent
376
378
  notable updates.
@@ -43413,6 +43413,8 @@ var PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL = "gemini-3.1-flash-lite-preview";
43413
43413
  var DEFAULT_GEMINI_MODEL = "gemini-2.5-pro";
43414
43414
  var DEFAULT_GEMINI_FLASH_MODEL = "gemini-2.5-flash";
43415
43415
  var DEFAULT_GEMINI_FLASH_LITE_MODEL = "gemini-2.5-flash-lite";
43416
+ var GEMMA_4_31B_IT_MODEL = "gemma-4-31b-it";
43417
+ var GEMMA_4_26B_A4B_IT_MODEL = "gemma-4-26b-a4b-it";
43416
43418
  var VALID_GEMINI_MODELS = /* @__PURE__ */ new Set([
43417
43419
  PREVIEW_GEMINI_MODEL,
43418
43420
  PREVIEW_GEMINI_3_1_MODEL,
@@ -43421,7 +43423,9 @@ var VALID_GEMINI_MODELS = /* @__PURE__ */ new Set([
43421
43423
  PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL,
43422
43424
  DEFAULT_GEMINI_MODEL,
43423
43425
  DEFAULT_GEMINI_FLASH_MODEL,
43424
- DEFAULT_GEMINI_FLASH_LITE_MODEL
43426
+ DEFAULT_GEMINI_FLASH_LITE_MODEL,
43427
+ GEMMA_4_31B_IT_MODEL,
43428
+ GEMMA_4_26B_A4B_IT_MODEL
43425
43429
  ]);
43426
43430
  var PREVIEW_GEMINI_MODEL_AUTO = "auto-gemini-3";
43427
43431
  var DEFAULT_GEMINI_MODEL_AUTO = "auto-gemini-2.5";
@@ -43534,6 +43538,10 @@ function getDisplayString(model, config) {
43534
43538
  return "Auto (Gemini 3)";
43535
43539
  case DEFAULT_GEMINI_MODEL_AUTO:
43536
43540
  return "Auto (Gemini 2.5)";
43541
+ case GEMMA_4_31B_IT_MODEL:
43542
+ return GEMMA_4_31B_IT_MODEL;
43543
+ case GEMMA_4_26B_A4B_IT_MODEL:
43544
+ return GEMMA_4_26B_A4B_IT_MODEL;
43537
43545
  case GEMINI_MODEL_ALIAS_PRO:
43538
43546
  return PREVIEW_GEMINI_MODEL;
43539
43547
  case GEMINI_MODEL_ALIAS_FLASH:
@@ -43594,10 +43602,13 @@ function supportsMultimodalFunctionResponse(model, config) {
43594
43602
  }
43595
43603
  return model.startsWith("gemini-3-");
43596
43604
  }
43597
- function isActiveModel(model, useGemini3_1 = false, useGemini3_1FlashLite = false, useCustomToolModel = false) {
43605
+ function isActiveModel(model, useGemini3_1 = false, useGemini3_1FlashLite = false, useCustomToolModel = false, experimentalGemma = false) {
43598
43606
  if (!VALID_GEMINI_MODELS.has(model)) {
43599
43607
  return false;
43600
43608
  }
43609
+ if (model === GEMMA_4_31B_IT_MODEL || model === GEMMA_4_26B_A4B_IT_MODEL) {
43610
+ return experimentalGemma;
43611
+ }
43601
43612
  if (model === PREVIEW_GEMINI_3_1_FLASH_LITE_MODEL) {
43602
43613
  return useGemini3_1FlashLite;
43603
43614
  }
@@ -52303,6 +52314,8 @@ export {
52303
52314
  DEFAULT_GEMINI_MODEL,
52304
52315
  DEFAULT_GEMINI_FLASH_MODEL,
52305
52316
  DEFAULT_GEMINI_FLASH_LITE_MODEL,
52317
+ GEMMA_4_31B_IT_MODEL,
52318
+ GEMMA_4_26B_A4B_IT_MODEL,
52306
52319
  VALID_GEMINI_MODELS,
52307
52320
  PREVIEW_GEMINI_MODEL_AUTO,
52308
52321
  DEFAULT_GEMINI_MODEL_AUTO,
@@ -4,10 +4,10 @@ import {
4
4
  isTelemetrySdkInitialized,
5
5
  resetBrowserSession,
6
6
  shutdownTelemetry
7
- } from "./chunk-NV6UCR4K.js";
7
+ } from "./chunk-QU37OIJC.js";
8
8
  import {
9
9
  Storage
10
- } from "./chunk-F73F75XM.js";
10
+ } from "./chunk-6YXSPC34.js";
11
11
 
12
12
  // packages/cli/src/utils/cleanup.ts
13
13
  import { promises as fs } from "node:fs";
@@ -20,7 +20,7 @@ import {
20
20
  require_strip_json_comments,
21
21
  sanitizeFilenamePart,
22
22
  stripAnsi
23
- } from "./chunk-KG7ZFMJL.js";
23
+ } from "./chunk-MAZR7GNG.js";
24
24
  import {
25
25
  FatalConfigError,
26
26
  GEMINI_DIR,
@@ -30,7 +30,7 @@ import {
30
30
  external_exports,
31
31
  getErrorMessage,
32
32
  homedir
33
- } from "./chunk-UHHRGNIO.js";
33
+ } from "./chunk-MTD736U4.js";
34
34
  import {
35
35
  __commonJS,
36
36
  __require,
@@ -14596,6 +14596,94 @@ var SETTINGS_SCHEMA = {
14596
14596
  description: "Setting to enable experimental features",
14597
14597
  showInDialog: false,
14598
14598
  properties: {
14599
+ gemma: {
14600
+ type: "boolean",
14601
+ label: "Gemma Models",
14602
+ category: "Experimental",
14603
+ requiresRestart: true,
14604
+ default: false,
14605
+ description: "Enable access to Gemma 4 models (experimental).",
14606
+ showInDialog: true
14607
+ },
14608
+ voiceMode: {
14609
+ type: "boolean",
14610
+ label: "Voice Mode",
14611
+ category: "Experimental",
14612
+ requiresRestart: false,
14613
+ default: false,
14614
+ description: "Enable experimental voice dictation and commands (/voice, /voice model).",
14615
+ showInDialog: true
14616
+ },
14617
+ voice: {
14618
+ type: "object",
14619
+ label: "Voice",
14620
+ category: "Experimental",
14621
+ requiresRestart: false,
14622
+ default: {},
14623
+ description: "Settings for voice mode and transcription.",
14624
+ showInDialog: false,
14625
+ properties: {
14626
+ activationMode: {
14627
+ type: "enum",
14628
+ label: "Voice Activation Mode",
14629
+ category: "Experimental",
14630
+ requiresRestart: false,
14631
+ default: "push-to-talk",
14632
+ description: "How to trigger voice recording with the Space key.",
14633
+ showInDialog: true,
14634
+ options: [
14635
+ { value: "push-to-talk", label: "Push-To-Talk (Hold Space)" },
14636
+ { value: "toggle", label: "Toggle (Press Space to start/stop)" }
14637
+ ]
14638
+ },
14639
+ backend: {
14640
+ type: "enum",
14641
+ label: "Voice Transcription Backend",
14642
+ category: "Experimental",
14643
+ requiresRestart: false,
14644
+ default: "gemini-live",
14645
+ description: "The backend to use for voice transcription.",
14646
+ showInDialog: true,
14647
+ options: [
14648
+ { value: "gemini-live", label: "Gemini Live API (Cloud)" },
14649
+ { value: "whisper", label: "Whisper (Local)" }
14650
+ ]
14651
+ },
14652
+ whisperModel: {
14653
+ type: "enum",
14654
+ label: "Whisper Model",
14655
+ category: "Experimental",
14656
+ requiresRestart: false,
14657
+ default: "ggml-base.en.bin",
14658
+ description: "The Whisper model to use for local transcription.",
14659
+ showInDialog: true,
14660
+ options: [
14661
+ { value: "ggml-tiny.en.bin", label: "Tiny (EN) - Fast (~75MB)" },
14662
+ {
14663
+ value: "ggml-base.en.bin",
14664
+ label: "Base (EN) - Balanced (~142MB)"
14665
+ },
14666
+ {
14667
+ value: "ggml-large-v3-turbo-q5_0.bin",
14668
+ label: "Large v3 Turbo (Q5_0) - High Accuracy (~547MB)"
14669
+ },
14670
+ {
14671
+ value: "ggml-large-v3-turbo-q8_0.bin",
14672
+ label: "Large v3 Turbo (Q8_0) - Max Accuracy (~834MB)"
14673
+ }
14674
+ ]
14675
+ },
14676
+ stopGracePeriodMs: {
14677
+ type: "number",
14678
+ label: "Voice Stop Grace Period (ms)",
14679
+ category: "Experimental",
14680
+ requiresRestart: false,
14681
+ default: 1e3,
14682
+ description: "How long to wait for final transcription after stopping recording.",
14683
+ showInDialog: true
14684
+ }
14685
+ }
14686
+ },
14599
14687
  adk: {
14600
14688
  type: "object",
14601
14689
  label: "ADK",
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  exitCli,
8
8
  require_source
9
- } from "./chunk-ATGIEBEB.js";
9
+ } from "./chunk-SVPUDLWF.js";
10
10
  import {
11
11
  DEFAULT_BACKGROUND_OPACITY,
12
12
  DEFAULT_BORDER_OPACITY,
@@ -59,10 +59,10 @@ import {
59
59
  stripUnsafeCharacters,
60
60
  toCodePoints,
61
61
  validateCustomTheme
62
- } from "./chunk-H4NQBTXN.js";
62
+ } from "./chunk-LFQEL3VY.js";
63
63
  import {
64
64
  runExitCleanup
65
- } from "./chunk-LVHUYMBU.js";
65
+ } from "./chunk-E2PVGI7T.js";
66
66
  import {
67
67
  AsyncFzf,
68
68
  AuthType,
@@ -208,7 +208,7 @@ import {
208
208
  stripAnsi,
209
209
  tokenLimit,
210
210
  uiTelemetryService
211
- } from "./chunk-CIO3GUGQ.js";
211
+ } from "./chunk-PZYK66PS.js";
212
212
  import {
213
213
  ApprovalMode,
214
214
  CoreEvent,
@@ -235,7 +235,7 @@ import {
235
235
  shortenPath,
236
236
  tildeifyPath,
237
237
  unescapePath
238
- } from "./chunk-F73F75XM.js";
238
+ } from "./chunk-6YXSPC34.js";
239
239
  import {
240
240
  require_src
241
241
  } from "./chunk-RJTRUG2J.js";
@@ -35421,6 +35421,7 @@ var Command = /* @__PURE__ */ ((Command2) => {
35421
35421
  Command2["RESTART_APP"] = "app.restart";
35422
35422
  Command2["SUSPEND_APP"] = "app.suspend";
35423
35423
  Command2["SHOW_SHELL_INPUT_UNFOCUS_WARNING"] = "app.showShellUnfocusWarning";
35424
+ Command2["VOICE_MODE_PTT"] = "app.voiceModePTT";
35424
35425
  Command2["BACKGROUND_SHELL_ESCAPE"] = "background.escape";
35425
35426
  Command2["BACKGROUND_SHELL_SELECT"] = "background.select";
35426
35427
  Command2["TOGGLE_BACKGROUND_SHELL"] = "background.toggle";
@@ -35684,9 +35685,7 @@ var defaultKeyBindingConfig = /* @__PURE__ */ new Map([
35684
35685
  ["app.restart" /* RESTART_APP */, [new KeyBinding("r"), new KeyBinding("shift+r")]],
35685
35686
  ["app.suspend" /* SUSPEND_APP */, [new KeyBinding("ctrl+z")]],
35686
35687
  ["app.showShellUnfocusWarning" /* SHOW_SHELL_INPUT_UNFOCUS_WARNING */, [new KeyBinding("tab")]],
35687
- ["app.dumpFrame" /* DUMP_FRAME */, [new KeyBinding("f8")]],
35688
- ["app.startRecording" /* START_RECORDING */, [new KeyBinding("f6")]],
35689
- ["app.stopRecording" /* STOP_RECORDING */, [new KeyBinding("f7")]],
35688
+ ["app.voiceModePTT" /* VOICE_MODE_PTT */, [new KeyBinding("space")]],
35690
35689
  // Background Shell Controls
35691
35690
  ["background.escape" /* BACKGROUND_SHELL_ESCAPE */, [new KeyBinding("escape")]],
35692
35691
  ["background.select" /* BACKGROUND_SHELL_SELECT */, [new KeyBinding("enter")]],
@@ -35698,7 +35697,10 @@ var defaultKeyBindingConfig = /* @__PURE__ */ new Map([
35698
35697
  ["background.unfocusWarning" /* SHOW_BACKGROUND_SHELL_UNFOCUS_WARNING */, [new KeyBinding("tab")]],
35699
35698
  // Extension Controls
35700
35699
  ["extension.update" /* UPDATE_EXTENSION */, [new KeyBinding("i")]],
35701
- ["extension.link" /* LINK_EXTENSION */, [new KeyBinding("l")]]
35700
+ ["extension.link" /* LINK_EXTENSION */, [new KeyBinding("l")]],
35701
+ ["app.dumpFrame" /* DUMP_FRAME */, [new KeyBinding("f8")]],
35702
+ ["app.startRecording" /* START_RECORDING */, [new KeyBinding("f6")]],
35703
+ ["app.stopRecording" /* STOP_RECORDING */, [new KeyBinding("f7")]]
35702
35704
  ]);
35703
35705
  var keybindingsSchema = external_exports.array(
35704
35706
  external_exports.object({
@@ -55004,7 +55006,7 @@ var authCommand = {
55004
55006
  import process29 from "node:process";
55005
55007
 
55006
55008
  // packages/cli/src/generated/git-commit.ts
55007
- var GIT_COMMIT_INFO = "31bdf112d";
55009
+ var GIT_COMMIT_INFO = "42587de73";
55008
55010
 
55009
55011
  // packages/cli/src/ui/utils/historyExportUtils.ts
55010
55012
  import * as fsPromises from "node:fs/promises";
@@ -60489,7 +60491,7 @@ Use /mcp auth <server-name> to authenticate.`
60489
60491
  type: "info",
60490
60492
  text: `Starting OAuth authentication for MCP server '${serverName}'...`
60491
60493
  });
60492
- const { MCPOAuthProvider } = await import("./dist-UH565MTG.js");
60494
+ const { MCPOAuthProvider } = await import("./dist-F2OAYYD2.js");
60493
60495
  let oauthConfig = server.oauth;
60494
60496
  if (!oauthConfig) {
60495
60497
  oauthConfig = { enabled: false };
@@ -78865,6 +78867,30 @@ var gemmaStatusCommand = {
78865
78867
  }
78866
78868
  };
78867
78869
 
78870
+ // packages/cli/src/ui/commands/voiceCommand.ts
78871
+ var voiceCommand = {
78872
+ name: "voice",
78873
+ altNames: [],
78874
+ description: "Toggle voice dictation mode",
78875
+ kind: "built-in" /* BUILT_IN */,
78876
+ autoExecute: true,
78877
+ action: (context) => {
78878
+ context.ui.toggleVoiceMode();
78879
+ },
78880
+ subCommands: [
78881
+ {
78882
+ name: "model",
78883
+ description: "Manage voice transcription models",
78884
+ kind: "built-in" /* BUILT_IN */,
78885
+ autoExecute: true,
78886
+ action: async () => ({
78887
+ type: "dialog",
78888
+ dialog: "voice-model"
78889
+ })
78890
+ }
78891
+ ]
78892
+ };
78893
+
78868
78894
  // packages/cli/src/services/BuiltinCommandLoader.ts
78869
78895
  var BuiltinCommandLoader = class {
78870
78896
  constructor(config) {
@@ -79001,6 +79027,7 @@ var BuiltinCommandLoader = class {
79001
79027
  vimCommand,
79002
79028
  setupGithubCommand,
79003
79029
  terminalSetupCommand,
79030
+ ...this.config?.isVoiceModeEnabled() ? [voiceCommand] : [],
79004
79031
  ...this.config?.getContentGeneratorConfig()?.authType === AuthType.LOGIN_WITH_GOOGLE ? [upgradeCommand] : []
79005
79032
  ];
79006
79033
  handle?.end();
@@ -21,7 +21,7 @@ import {
21
21
  require_strip_json_comments,
22
22
  sanitizeFilenamePart,
23
23
  stripAnsi
24
- } from "./chunk-NV6UCR4K.js";
24
+ } from "./chunk-XCXC2RZD.js";
25
25
  import {
26
26
  CoreEvent,
27
27
  FatalConfigError,
@@ -32,7 +32,7 @@ import {
32
32
  external_exports,
33
33
  getErrorMessage,
34
34
  homedir
35
- } from "./chunk-F73F75XM.js";
35
+ } from "./chunk-6YXSPC34.js";
36
36
  import {
37
37
  __commonJS,
38
38
  __require,
@@ -14598,6 +14598,94 @@ var SETTINGS_SCHEMA = {
14598
14598
  description: "Setting to enable experimental features",
14599
14599
  showInDialog: false,
14600
14600
  properties: {
14601
+ gemma: {
14602
+ type: "boolean",
14603
+ label: "Gemma Models",
14604
+ category: "Experimental",
14605
+ requiresRestart: true,
14606
+ default: false,
14607
+ description: "Enable access to Gemma 4 models (experimental).",
14608
+ showInDialog: true
14609
+ },
14610
+ voiceMode: {
14611
+ type: "boolean",
14612
+ label: "Voice Mode",
14613
+ category: "Experimental",
14614
+ requiresRestart: false,
14615
+ default: false,
14616
+ description: "Enable experimental voice dictation and commands (/voice, /voice model).",
14617
+ showInDialog: true
14618
+ },
14619
+ voice: {
14620
+ type: "object",
14621
+ label: "Voice",
14622
+ category: "Experimental",
14623
+ requiresRestart: false,
14624
+ default: {},
14625
+ description: "Settings for voice mode and transcription.",
14626
+ showInDialog: false,
14627
+ properties: {
14628
+ activationMode: {
14629
+ type: "enum",
14630
+ label: "Voice Activation Mode",
14631
+ category: "Experimental",
14632
+ requiresRestart: false,
14633
+ default: "push-to-talk",
14634
+ description: "How to trigger voice recording with the Space key.",
14635
+ showInDialog: true,
14636
+ options: [
14637
+ { value: "push-to-talk", label: "Push-To-Talk (Hold Space)" },
14638
+ { value: "toggle", label: "Toggle (Press Space to start/stop)" }
14639
+ ]
14640
+ },
14641
+ backend: {
14642
+ type: "enum",
14643
+ label: "Voice Transcription Backend",
14644
+ category: "Experimental",
14645
+ requiresRestart: false,
14646
+ default: "gemini-live",
14647
+ description: "The backend to use for voice transcription.",
14648
+ showInDialog: true,
14649
+ options: [
14650
+ { value: "gemini-live", label: "Gemini Live API (Cloud)" },
14651
+ { value: "whisper", label: "Whisper (Local)" }
14652
+ ]
14653
+ },
14654
+ whisperModel: {
14655
+ type: "enum",
14656
+ label: "Whisper Model",
14657
+ category: "Experimental",
14658
+ requiresRestart: false,
14659
+ default: "ggml-base.en.bin",
14660
+ description: "The Whisper model to use for local transcription.",
14661
+ showInDialog: true,
14662
+ options: [
14663
+ { value: "ggml-tiny.en.bin", label: "Tiny (EN) - Fast (~75MB)" },
14664
+ {
14665
+ value: "ggml-base.en.bin",
14666
+ label: "Base (EN) - Balanced (~142MB)"
14667
+ },
14668
+ {
14669
+ value: "ggml-large-v3-turbo-q5_0.bin",
14670
+ label: "Large v3 Turbo (Q5_0) - High Accuracy (~547MB)"
14671
+ },
14672
+ {
14673
+ value: "ggml-large-v3-turbo-q8_0.bin",
14674
+ label: "Large v3 Turbo (Q8_0) - Max Accuracy (~834MB)"
14675
+ }
14676
+ ]
14677
+ },
14678
+ stopGracePeriodMs: {
14679
+ type: "number",
14680
+ label: "Voice Stop Grace Period (ms)",
14681
+ category: "Experimental",
14682
+ requiresRestart: false,
14683
+ default: 1e3,
14684
+ description: "How long to wait for final transcription after stopping recording.",
14685
+ showInDialog: true
14686
+ }
14687
+ }
14688
+ },
14601
14689
  adk: {
14602
14690
  type: "object",
14603
14691
  label: "ADK",
@@ -1,7 +1,7 @@
1
1
  const require = (await import('node:module')).createRequire(import.meta.url); const __chunk_filename = (await import('node:url')).fileURLToPath(import.meta.url); const __chunk_dirname = (await import('node:path')).dirname(__chunk_filename);
2
2
  import {
3
3
  runExitCleanup
4
- } from "./chunk-BV2W6YE6.js";
4
+ } from "./chunk-QP7T3P6C.js";
5
5
  import {
6
6
  __commonJS,
7
7
  __require
@@ -4,10 +4,10 @@ import {
4
4
  isTelemetrySdkInitialized,
5
5
  resetBrowserSession,
6
6
  shutdownTelemetry
7
- } from "./chunk-KG7ZFMJL.js";
7
+ } from "./chunk-PZYK66PS.js";
8
8
  import {
9
9
  Storage
10
- } from "./chunk-UHHRGNIO.js";
10
+ } from "./chunk-6YXSPC34.js";
11
11
 
12
12
  // packages/cli/src/utils/cleanup.ts
13
13
  import { promises as fs } from "node:fs";
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  exitCli,
8
8
  require_source
9
- } from "./chunk-VQ7N6NVX.js";
9
+ } from "./chunk-DXV2GNZK.js";
10
10
  import {
11
11
  DEFAULT_BACKGROUND_OPACITY,
12
12
  DEFAULT_BORDER_OPACITY,
@@ -59,10 +59,10 @@ import {
59
59
  stripUnsafeCharacters,
60
60
  toCodePoints,
61
61
  validateCustomTheme
62
- } from "./chunk-M76FWZ5L.js";
62
+ } from "./chunk-AN7B4FAU.js";
63
63
  import {
64
64
  runExitCleanup
65
- } from "./chunk-PRZIW6SM.js";
65
+ } from "./chunk-QP7T3P6C.js";
66
66
  import {
67
67
  AsyncFzf,
68
68
  Config,
@@ -196,7 +196,7 @@ import {
196
196
  stripAnsi,
197
197
  tokenLimit,
198
198
  uiTelemetryService
199
- } from "./chunk-KG7ZFMJL.js";
199
+ } from "./chunk-MAZR7GNG.js";
200
200
  import {
201
201
  ApprovalMode,
202
202
  CoreEvent,
@@ -222,7 +222,7 @@ import {
222
222
  shortenPath,
223
223
  tildeifyPath,
224
224
  unescapePath
225
- } from "./chunk-UHHRGNIO.js";
225
+ } from "./chunk-MTD736U4.js";
226
226
  import {
227
227
  require_src
228
228
  } from "./chunk-RJTRUG2J.js";
@@ -35408,6 +35408,7 @@ var Command = /* @__PURE__ */ ((Command2) => {
35408
35408
  Command2["RESTART_APP"] = "app.restart";
35409
35409
  Command2["SUSPEND_APP"] = "app.suspend";
35410
35410
  Command2["SHOW_SHELL_INPUT_UNFOCUS_WARNING"] = "app.showShellUnfocusWarning";
35411
+ Command2["VOICE_MODE_PTT"] = "app.voiceModePTT";
35411
35412
  Command2["BACKGROUND_SHELL_ESCAPE"] = "background.escape";
35412
35413
  Command2["BACKGROUND_SHELL_SELECT"] = "background.select";
35413
35414
  Command2["TOGGLE_BACKGROUND_SHELL"] = "background.toggle";
@@ -35671,9 +35672,7 @@ var defaultKeyBindingConfig = /* @__PURE__ */ new Map([
35671
35672
  ["app.restart" /* RESTART_APP */, [new KeyBinding("r"), new KeyBinding("shift+r")]],
35672
35673
  ["app.suspend" /* SUSPEND_APP */, [new KeyBinding("ctrl+z")]],
35673
35674
  ["app.showShellUnfocusWarning" /* SHOW_SHELL_INPUT_UNFOCUS_WARNING */, [new KeyBinding("tab")]],
35674
- ["app.dumpFrame" /* DUMP_FRAME */, [new KeyBinding("f8")]],
35675
- ["app.startRecording" /* START_RECORDING */, [new KeyBinding("f6")]],
35676
- ["app.stopRecording" /* STOP_RECORDING */, [new KeyBinding("f7")]],
35675
+ ["app.voiceModePTT" /* VOICE_MODE_PTT */, [new KeyBinding("space")]],
35677
35676
  // Background Shell Controls
35678
35677
  ["background.escape" /* BACKGROUND_SHELL_ESCAPE */, [new KeyBinding("escape")]],
35679
35678
  ["background.select" /* BACKGROUND_SHELL_SELECT */, [new KeyBinding("enter")]],
@@ -35685,7 +35684,10 @@ var defaultKeyBindingConfig = /* @__PURE__ */ new Map([
35685
35684
  ["background.unfocusWarning" /* SHOW_BACKGROUND_SHELL_UNFOCUS_WARNING */, [new KeyBinding("tab")]],
35686
35685
  // Extension Controls
35687
35686
  ["extension.update" /* UPDATE_EXTENSION */, [new KeyBinding("i")]],
35688
- ["extension.link" /* LINK_EXTENSION */, [new KeyBinding("l")]]
35687
+ ["extension.link" /* LINK_EXTENSION */, [new KeyBinding("l")]],
35688
+ ["app.dumpFrame" /* DUMP_FRAME */, [new KeyBinding("f8")]],
35689
+ ["app.startRecording" /* START_RECORDING */, [new KeyBinding("f6")]],
35690
+ ["app.stopRecording" /* STOP_RECORDING */, [new KeyBinding("f7")]]
35689
35691
  ]);
35690
35692
  var keybindingsSchema = external_exports.array(
35691
35693
  external_exports.object({
@@ -54991,7 +54993,7 @@ var authCommand = {
54991
54993
  import process29 from "node:process";
54992
54994
 
54993
54995
  // packages/cli/src/generated/git-commit.ts
54994
- var GIT_COMMIT_INFO = "31bdf112d";
54996
+ var GIT_COMMIT_INFO = "42587de73";
54995
54997
 
54996
54998
  // packages/cli/src/ui/utils/historyExportUtils.ts
54997
54999
  import * as fsPromises from "node:fs/promises";
@@ -60476,7 +60478,7 @@ Use /mcp auth <server-name> to authenticate.`
60476
60478
  type: "info",
60477
60479
  text: `Starting OAuth authentication for MCP server '${serverName}'...`
60478
60480
  });
60479
- const { MCPOAuthProvider } = await import("./core-WQSFCPEO.js");
60481
+ const { MCPOAuthProvider } = await import("./core-WGFYLLRK.js");
60480
60482
  let oauthConfig = server.oauth;
60481
60483
  if (!oauthConfig) {
60482
60484
  oauthConfig = { enabled: false };
@@ -78852,6 +78854,30 @@ var gemmaStatusCommand = {
78852
78854
  }
78853
78855
  };
78854
78856
 
78857
+ // packages/cli/src/ui/commands/voiceCommand.ts
78858
+ var voiceCommand = {
78859
+ name: "voice",
78860
+ altNames: [],
78861
+ description: "Toggle voice dictation mode",
78862
+ kind: "built-in" /* BUILT_IN */,
78863
+ autoExecute: true,
78864
+ action: (context) => {
78865
+ context.ui.toggleVoiceMode();
78866
+ },
78867
+ subCommands: [
78868
+ {
78869
+ name: "model",
78870
+ description: "Manage voice transcription models",
78871
+ kind: "built-in" /* BUILT_IN */,
78872
+ autoExecute: true,
78873
+ action: async () => ({
78874
+ type: "dialog",
78875
+ dialog: "voice-model"
78876
+ })
78877
+ }
78878
+ ]
78879
+ };
78880
+
78855
78881
  // packages/cli/src/services/BuiltinCommandLoader.ts
78856
78882
  var BuiltinCommandLoader = class {
78857
78883
  constructor(config) {
@@ -78988,6 +79014,7 @@ var BuiltinCommandLoader = class {
78988
79014
  vimCommand,
78989
79015
  setupGithubCommand,
78990
79016
  terminalSetupCommand,
79017
+ ...this.config?.isVoiceModeEnabled() ? [voiceCommand] : [],
78991
79018
  ...this.config?.getContentGeneratorConfig()?.authType === "oauth-personal" /* LOGIN_WITH_GOOGLE */ ? [upgradeCommand] : []
78992
79019
  ];
78993
79020
  handle?.end();
@@ -2,7 +2,7 @@ const require = (await import('node:module')).createRequire(import.meta.url); co
2
2
  import {
3
3
  exitCli,
4
4
  require_source
5
- } from "./chunk-ATGIEBEB.js";
5
+ } from "./chunk-DXV2GNZK.js";
6
6
  import {
7
7
  DEFAULT_PORT,
8
8
  SERVER_START_WAIT_MS,
@@ -14,10 +14,10 @@ import {
14
14
  isServerRunning,
15
15
  resolveGemmaConfig,
16
16
  writeServerProcessInfo
17
- } from "./chunk-H4NQBTXN.js";
17
+ } from "./chunk-AN7B4FAU.js";
18
18
  import {
19
19
  debugLogger
20
- } from "./chunk-F73F75XM.js";
20
+ } from "./chunk-MTD736U4.js";
21
21
  import {
22
22
  __toESM
23
23
  } from "./chunk-34MYV7JD.js";
@@ -2,7 +2,7 @@ const require = (await import('node:module')).createRequire(import.meta.url); co
2
2
  import {
3
3
  exitCli,
4
4
  require_source
5
- } from "./chunk-G356GKHH.js";
5
+ } from "./chunk-QAPWMN3Q.js";
6
6
  import {
7
7
  DEFAULT_PORT,
8
8
  SERVER_START_WAIT_MS,
@@ -14,10 +14,10 @@ import {
14
14
  isServerRunning,
15
15
  resolveGemmaConfig,
16
16
  writeServerProcessInfo
17
- } from "./chunk-CJQVVQSH.js";
17
+ } from "./chunk-MWLCQDAR.js";
18
18
  import {
19
19
  debugLogger
20
- } from "./chunk-F73F75XM.js";
20
+ } from "./chunk-6YXSPC34.js";
21
21
  import {
22
22
  __toESM
23
23
  } from "./chunk-34MYV7JD.js";