llm-cli-gateway 2.5.0 → 2.6.3

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.
@@ -36,8 +36,20 @@ function subcommand(commandPath, summary, risk, flags = [], options = {}) {
36
36
  tokenCost: options.tokenCost ?? "small",
37
37
  summary,
38
38
  conformanceFixtures: options.fixtures ?? [],
39
+ acknowledgedUpstreamFlags: options.acknowledgedUpstreamFlags ?? [],
39
40
  };
40
41
  }
42
+ function acknowledgeSubcommandFlags(subcommands, flags) {
43
+ return Object.fromEntries(Object.entries(subcommands).map(([name, contract]) => [
44
+ name,
45
+ {
46
+ ...contract,
47
+ acknowledgedUpstreamFlags: Array.from(new Set([...(contract.acknowledgedUpstreamFlags ?? []), ...flags])),
48
+ children: acknowledgeSubcommandFlags(contract.children ?? {}, flags),
49
+ },
50
+ ]));
51
+ }
52
+ const GROK_DEBUG_HELP_FLAGS = ["--debug", "--debug-file"];
41
53
  export const UPSTREAM_CLI_CONTRACTS = {
42
54
  claude: {
43
55
  cli: "claude",
@@ -779,53 +791,37 @@ export const UPSTREAM_CLI_CONTRACTS = {
779
791
  },
780
792
  gemini: {
781
793
  cli: "gemini",
782
- executable: "gemini",
783
- upstream: "Google Gemini CLI",
794
+ executable: "agy",
795
+ upstream: "Google Antigravity CLI",
784
796
  upstreamMetadata: {
785
797
  sourceUrls: [
786
- "https://geminicli.com/docs/changelogs/",
787
- "https://github.com/google-gemini/gemini-cli/releases",
798
+ "https://antigravity.google/docs/cli-overview",
799
+ "https://github.com/google-antigravity/antigravity-cli/releases",
788
800
  ],
789
- packageName: "@google/gemini-cli",
790
- repo: "https://github.com/google-gemini/gemini-cli",
791
- installDocsUrl: "https://geminicli.com/docs/",
792
- releaseChannel: "npm",
793
- watchCategories: ["flags", "approval-modes", "output-formats", "session-resume"],
801
+ repo: "https://github.com/google-antigravity/antigravity-cli",
802
+ installDocsUrl: "https://antigravity.google/docs/cli-getting-started",
803
+ releaseChannel: "vendor",
804
+ watchCategories: ["flags", "permissions", "session-resume", "subcommands"],
794
805
  },
795
806
  helpArgs: [["--help"]],
796
807
  subcommands: {
797
- mcp: subcommand(["mcp"], "Manage Gemini MCP server configuration.", "writes_local_config", ["--debug"], {
798
- flagArities: { "--debug": "none" },
799
- }),
800
- extensions: subcommand(["extensions"], "Manage Gemini extensions.", "writes_local_config", ["--debug"], {
801
- aliases: ["extension"],
802
- flagArities: { "--debug": "none" },
803
- }),
804
- extension: subcommand(["extension"], "Alias for Gemini extension management.", "writes_local_config", ["--debug"], {
805
- aliases: ["extensions"],
806
- flagArities: { "--debug": "none" },
808
+ changelog: subcommand(["changelog"], "Show Antigravity CLI changelog and release notes.", "read_only", [], { tokenCost: "small" }),
809
+ install: subcommand(["install"], "Configure Antigravity CLI environment paths and shell settings.", "writes_local_config", ["--dir", "--skip-aliases", "--skip-path"], {
810
+ flagArities: { "--dir": "one", "--skip-aliases": "none", "--skip-path": "none" },
807
811
  }),
808
- skills: subcommand(["skills"], "Manage Gemini skills.", "writes_local_config", ["--debug"], {
809
- aliases: ["skill"],
810
- flagArities: { "--debug": "none" },
812
+ models: subcommand(["models"], "List available Antigravity models.", "read_only", [], {
813
+ exposure: "mcp_readonly",
814
+ tokenCost: "small",
811
815
  }),
812
- skill: subcommand(["skill"], "Alias for Gemini skill management.", "writes_local_config", ["--debug"], {
813
- aliases: ["skills"],
814
- flagArities: { "--debug": "none" },
815
- }),
816
- hooks: subcommand(["hooks"], "Manage Gemini hooks.", "writes_local_config", ["--debug"], {
817
- aliases: ["hook"],
818
- flagArities: { "--debug": "none" },
819
- }),
820
- hook: subcommand(["hook"], "Alias for Gemini hook management.", "writes_local_config", ["--debug"], {
821
- aliases: ["hooks"],
822
- flagArities: { "--debug": "none" },
816
+ plugin: subcommand(["plugin"], "Manage Antigravity plugins.", "writes_local_config", [], {
817
+ aliases: ["plugins"],
823
818
  }),
824
- gemma: subcommand(["gemma"], "Run Gemini Gemma local-model helper surfaces.", "executes_agent", ["--debug"], {
825
- flagArities: { "--debug": "none" },
819
+ plugins: subcommand(["plugins"], "Alias for Antigravity plugin management.", "writes_local_config", [], {
820
+ aliases: ["plugin"],
826
821
  }),
822
+ update: subcommand(["update"], "Update Antigravity CLI to the current release.", "writes_local_config", [], { tokenCost: "small" }),
827
823
  },
828
- maxPositionals: 0,
824
+ maxPositionals: 1,
829
825
  mcpTools: ["gemini_request", "gemini_request_async"],
830
826
  mcpParameters: [
831
827
  "prompt",
@@ -847,90 +843,63 @@ export const UPSTREAM_CLI_CONTRACTS = {
847
843
  "yolo",
848
844
  ],
849
845
  flags: {
850
- "-p": { arity: "one", description: "Prompt text" },
846
+ "--print": { arity: "none", description: "Run a single prompt non-interactively" },
847
+ "-p": { arity: "none", description: "Short alias for --print" },
848
+ "--prompt": { arity: "none", description: "Alias for --print" },
851
849
  "--model": { arity: "one", description: "Model selector" },
852
- "--approval-mode": {
853
- arity: "one",
854
- values: ["default", "auto_edit", "yolo", "plan"],
855
- description: "Approval mode",
856
- },
857
- "--allowed-tools": { arity: "one", description: "Allowed tool" },
858
- "--allowed-mcp-server-names": { arity: "one", description: "Allowed MCP server" },
859
- "--include-directories": { arity: "one", description: "Included directory" },
860
- "-s": { arity: "none", description: "Sandbox mode" },
861
- "--policy": { arity: "one", description: "Policy file path" },
862
- "--admin-policy": { arity: "one", description: "Admin policy file path" },
863
- "-o": {
864
- arity: "one",
865
- values: ["json", "stream-json"],
866
- description: "Output format (Phase 4 slice ε adds stream-json)",
867
- },
868
- "--resume": { arity: "one", description: "Resume session" },
869
- "--skip-trust": {
870
- arity: "none",
871
- description: "Trust workspace for this session (Phase 4 slice γ)",
872
- },
873
- "--yolo": {
850
+ "--add-dir": { arity: "one", description: "Additional workspace directory" },
851
+ "--sandbox": { arity: "none", description: "Run with terminal sandbox restrictions" },
852
+ "--dangerously-skip-permissions": {
874
853
  arity: "none",
875
- description: "Auto-approve all actions (gemini -y/--yolo). Functionally equivalent to --approval-mode yolo; the gateway emits at most one of the two.",
854
+ description: "Auto-approve all tool permission requests without prompting",
876
855
  },
856
+ "--conversation": { arity: "one", description: "Resume a previous conversation by ID" },
857
+ "--continue": { arity: "none", description: "Continue the most recent conversation" },
858
+ "-c": { arity: "none", description: "Short alias for --continue" },
877
859
  },
878
860
  acknowledgedUpstreamFlags: [
879
- "--accept-raw-output-risk",
880
- "--acp",
881
- "--debug",
882
- "--delete-session",
883
- "--experimental-acp",
884
- "--extensions",
885
- "--list-extensions",
886
- "--list-sessions",
887
- "--output-format",
888
- "--prompt",
889
861
  "--prompt-interactive",
890
- "--raw-output",
891
- "--sandbox",
892
- "--screen-reader",
893
- "--session-file",
894
- "--session-id",
862
+ "-i",
863
+ "--print-timeout",
864
+ "--log-file",
895
865
  "--version",
896
- "--worktree",
897
866
  ],
898
867
  env: {},
899
868
  conformanceFixtures: [
900
869
  {
901
870
  id: "gemini-minimal",
902
- description: "Minimal prompt request",
903
- args: ["-p", "hello"],
871
+ description: "Minimal Antigravity print-mode prompt request",
872
+ args: ["--print", "hello"],
904
873
  expect: "pass",
905
874
  },
906
875
  {
907
876
  id: "gemini-unsupported-flag",
908
877
  description: "Unsupported flag is rejected before spawn",
909
- args: ["-p", "hello", "--not-a-gemini-flag"],
878
+ args: ["--print", "hello", "--not-a-gemini-flag"],
910
879
  expect: "fail",
911
880
  },
912
881
  {
913
- id: "gemini-skip-trust",
914
- description: "Phase 4 slice γ: --skip-trust is accepted",
915
- args: ["-p", "hello", "--skip-trust"],
882
+ id: "gemini-antigravity-workspace-flags",
883
+ description: "Antigravity workspace and sandbox flags are accepted",
884
+ args: ["--print", "hello", "--add-dir", "/tmp", "--sandbox"],
916
885
  expect: "pass",
917
886
  },
918
887
  {
919
888
  id: "gemini-yolo",
920
- description: "--yolo (auto-approve all) is accepted",
921
- args: ["-p", "hello", "--yolo"],
889
+ description: "Antigravity permission bypass is accepted",
890
+ args: ["--print", "hello", "--dangerously-skip-permissions"],
922
891
  expect: "pass",
923
892
  },
924
893
  {
925
- id: "gemini-stream-json",
926
- description: "Phase 4 slice ε: -o stream-json is accepted",
927
- args: ["-p", "hello", "-o", "stream-json"],
894
+ id: "gemini-conversation",
895
+ description: "Antigravity conversation resume is accepted",
896
+ args: ["--print", "hello", "--conversation", "user-session"],
928
897
  expect: "pass",
929
898
  },
930
899
  {
931
- id: "gemini-output-format-invalid",
932
- description: "Phase 4 slice ε: -o ndjson is rejected (not in contract enum)",
933
- args: ["-p", "hello", "-o", "ndjson"],
900
+ id: "gemini-legacy-output-format-rejected",
901
+ description: "Legacy Gemini JSON output flag is rejected",
902
+ args: ["--print", "hello", "-o", "json"],
934
903
  expect: "fail",
935
904
  },
936
905
  ],
@@ -946,7 +915,7 @@ export const UPSTREAM_CLI_CONTRACTS = {
946
915
  watchCategories: ["flags", "permission-modes", "session-resume", "sandbox", "output-formats"],
947
916
  },
948
917
  helpArgs: [["--help"]],
949
- subcommands: {
918
+ subcommands: acknowledgeSubcommandFlags({
950
919
  agent: subcommand(["agent"], "Run Grok agent service helpers.", "executes_agent", [
951
920
  "--agent-profile",
952
921
  "--always-approve",
@@ -978,6 +947,7 @@ export const UPSTREAM_CLI_CONTRACTS = {
978
947
  "--leader-socket",
979
948
  "--no-auto-update",
980
949
  "--no-exit-on-disconnect",
950
+ "--relay-on-demand",
981
951
  ], { exposure: "not_exposed" }),
982
952
  },
983
953
  }),
@@ -1024,11 +994,10 @@ export const UPSTREAM_CLI_CONTRACTS = {
1024
994
  "--version",
1025
995
  ], { exposure: "not_exposed" }),
1026
996
  version: subcommand(["version"], "Print Grok version information.", "read_only", ["--json", "--leader-socket"], { tier: "diagnostic" }),
1027
- worktree: subcommand(["worktree"], "Manage Grok worktree sessions.", "writes_local_config", [
1028
- "--leader-socket",
1029
- ]),
1030
- },
997
+ worktree: subcommand(["worktree"], "Manage Grok worktree sessions.", "writes_local_config", ["--leader-socket"]),
998
+ }, GROK_DEBUG_HELP_FLAGS),
1031
999
  maxPositionals: 0,
1000
+ acknowledgedUpstreamFlags: GROK_DEBUG_HELP_FLAGS,
1032
1001
  mcpTools: ["grok_request", "grok_request_async"],
1033
1002
  mcpParameters: [
1034
1003
  "prompt",
@@ -1325,6 +1294,12 @@ export const UPSTREAM_CLI_CONTRACTS = {
1325
1294
  args: ["-p", "hello", "--leader-socket"],
1326
1295
  expect: "fail",
1327
1296
  },
1297
+ {
1298
+ id: "grok-0.2.38-agent-surface",
1299
+ description: "Grok 0.2.38: top-level --agent + --leader-socket co-occurrence accepted (dated example using flags current at 0.2.38; the agent subcommand expansion flags e.g. --agent-profile/--reauth/--grok-ws-* are listed in the subcommand contract declaration for --probe-installed drift tracking and are not part of this primary-path fixture's argv)",
1300
+ args: ["-p", "hello", "--agent", "reviewer", "--leader-socket", "/tmp/leader.sock"],
1301
+ expect: "pass",
1302
+ },
1328
1303
  ],
1329
1304
  },
1330
1305
  mistral: {
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "llm-cli-gateway",
3
- "version": "2.5.0",
3
+ "version": "2.6.3",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "llm-cli-gateway",
9
- "version": "2.5.0",
9
+ "version": "2.6.3",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "@modelcontextprotocol/sdk": "^1.29.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "llm-cli-gateway",
3
- "version": "2.5.0",
3
+ "version": "2.6.3",
4
4
  "mcpName": "io.github.verivus-oss/llm-cli-gateway",
5
5
  "description": "MCP server providing unified access to Claude Code, Codex, Gemini, Grok, and Mistral Vibe CLIs with session management, retry logic, async job orchestration, durable job results, and cross-LLM validation.",
6
6
  "license": "MIT",