@google/gemini-cli-core 0.61.0-preview.0 → 0.62.0-nightly.20260916.g6a466a7e2

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.
@@ -18,6 +18,20 @@ on GitHub.
18
18
  | [Preview](preview.md) | Experimental features ready for early feedback. |
19
19
  | [Stable](latest.md) | Stable, recommended for general use. |
20
20
 
21
+ ## Announcements: v0.60.0 - 2026-09-15
22
+
23
+ - **Extension & Tool Safety Hardening:** Prompt for user consent on environment
24
+ changes and sanitize runtime-altering environment variables, while enforcing
25
+ envelope metadata provenance for untrusted tool outputs
26
+ ([#28863](https://github.com/google-gemini/gemini-cli/pull/28863) by
27
+ @amelidev, [#29215](https://github.com/google-gemini/gemini-cli/pull/29215) by
28
+ @luisfelipe-alt).
29
+ - **Sandbox Directory Isolation:** Isolated settings and temporary directories
30
+ inside sandbox containers, including the macOS Seatbelt sandbox
31
+ ([#29171](https://github.com/google-gemini/gemini-cli/pull/29171),
32
+ [#29216](https://github.com/google-gemini/gemini-cli/pull/29216) by
33
+ @jvargassanchez-dot).
34
+
21
35
  ## Announcements: v0.59.0 - 2026-09-08
22
36
 
23
37
  - **MCP OAuth SSRF Mitigation:** Prevented Server-Side Request Forgery (SSRF)
@@ -1,6 +1,6 @@
1
- # Latest stable release: v0.59.0
1
+ # Latest stable release: v0.60.0
2
2
 
3
- Released: September 8, 2026
3
+ Released: September 15, 2026
4
4
 
5
5
  For most users, our latest stable release is the recommended release. Install
6
6
  the latest stable version with:
@@ -11,28 +11,62 @@ npm install -g @google/gemini-cli
11
11
 
12
12
  ## Highlights
13
13
 
14
- - **SSRF Prevention in MCP OAuth:** Prevented Server-Side Request Forgery (SSRF)
15
- in Model Context Protocol (MCP) OAuth metadata discovery and authentication to
16
- secure remote integrations.
17
- - **Fail-Closed Workspace Trust:** Enforced a fail-closed workspace trust model
18
- to ensure security by default when accessing untrusted workspaces.
19
- - **Restricted Mode MCP Filtering:** Filtered available Model Context Protocol
20
- (MCP) servers under restricted execution modes to minimize potential attack
21
- surfaces.
14
+ - **Extension Consent & Isolation:** Introduced explicit prompting for user
15
+ consent on environment changes requested by extensions, along with
16
+ sanitization of runtime-altering environment variables to ensure secure
17
+ execution environments.
18
+ - **Sandbox & Directory Hardening:** Isolated the settings directory and
19
+ temporary directories within sandbox containers, including specific path
20
+ isolation enhancements for the macOS Seatbelt sandbox.
21
+ - **Robust Boundary & Path Resolution:** Hardened workspace boundary validation,
22
+ symlink resolution, and NTFS 8.3 short name (SFN) path mitigation across
23
+ command safety and file discovery utilities.
24
+ - **Enhanced API & Connection Security:** Implemented strict RFC 9207 issuer
25
+ identification in the Model Context Protocol (MCP) OAuth flow, along with
26
+ improved destination validation and connection routing inside web fetch
27
+ utilities.
22
28
 
23
29
  ## What's Changed
24
30
 
25
- - Changelog for v0.58.0-preview.0 by @gemini-cli-robot in
26
- [#29082](https://github.com/google-gemini/gemini-cli/pull/29082)
27
- - chore(release): bump version to 0.59.0-nightly.20260825.g812f7a2bc by
31
+ - fix(core): improve destination validation and connection routing in web fetch
32
+ utilities by @diegogodinezr in
33
+ [#29120](https://github.com/google-gemini/gemini-cli/pull/29120)
34
+ - fix(core): enforce RFC 9207 issuer identification in MCP OAuth flow by
35
+ @jvargassanchez-dot in
36
+ [#29117](https://github.com/google-gemini/gemini-cli/pull/29117)
37
+ - chore(release): bump version to 0.60.0-nightly.20260901.g0bd1d4397 by
28
38
  @gemini-cli-robot in
29
- [#29083](https://github.com/google-gemini/gemini-cli/pull/29083)
30
- - fix(core): prevent SSRF in MCP OAuth metadata discovery and authentication by
31
- @josebalius in
32
- [#29081](https://github.com/google-gemini/gemini-cli/pull/29081)
33
- - fix(core): enforce fail-closed workspace trust and filter mcpServers in
34
- restricted mode by @luisfelipe-alt in
35
- [#29099](https://github.com/google-gemini/gemini-cli/pull/29099)
39
+ [#29162](https://github.com/google-gemini/gemini-cli/pull/29162)
40
+ - Changelog for v0.58.0 by @gemini-cli-robot in
41
+ [#29161](https://github.com/google-gemini/gemini-cli/pull/29161)
42
+ - fix(cli): isolate temporary directory for macOS Seatbelt sandbox by
43
+ @jvargassanchez-dot in
44
+ [#29171](https://github.com/google-gemini/gemini-cli/pull/29171)
45
+ - feat(extensions): harden path resolution and boundary validation in extension
46
+ loader by @diegogodinezr in
47
+ [#29169](https://github.com/google-gemini/gemini-cli/pull/29169)
48
+ - Changelog for v0.59.0-preview.0 by @gemini-cli-robot in
49
+ [#29159](https://github.com/google-gemini/gemini-cli/pull/29159)
50
+ - fix(core): sanitize and remove hardcoded Google CrUX API key in
51
+ chrome-devtools-mcp by @amelidev in
52
+ [#29158](https://github.com/google-gemini/gemini-cli/pull/29158)
53
+ - fix(extensions): prompt for consent on environment changes and sanitize
54
+ runtime-altering environment variables by @amelidev in
55
+ [#28863](https://github.com/google-gemini/gemini-cli/pull/28863)
56
+ - fix(core): enhance workspace path boundary checks and symlink resolution in
57
+ command safety and file discovery by @jesussamuel-byte in
58
+ [#29170](https://github.com/google-gemini/gemini-cli/pull/29170)
59
+ - fix(config): enforce strict permission and ownership checks on system-wide
60
+ configuration paths by @jesussamuel-byte in
61
+ [#29115](https://github.com/google-gemini/gemini-cli/pull/29115)
62
+ - fix(core): mitigate NTFS 8.3 short name (SFN) path by @urielefrenvirtusa in
63
+ [#29116](https://github.com/google-gemini/gemini-cli/pull/29116)
64
+ - fix(cli): isolate settings directory in sandbox containers by
65
+ @jvargassanchez-dot in
66
+ [#29216](https://github.com/google-gemini/gemini-cli/pull/29216)
67
+ - fix(core): enforce envelope metadata provenance for untrusted tool outputs by
68
+ @luisfelipe-alt in
69
+ [#29215](https://github.com/google-gemini/gemini-cli/pull/29215)
36
70
 
37
71
  **Full Changelog**:
38
- https://github.com/google-gemini/gemini-cli/compare/v0.58.0...v0.59.0
72
+ https://github.com/google-gemini/gemini-cli/compare/v0.59.0...v0.60.0
@@ -1,6 +1,6 @@
1
- # Preview release: v0.60.0-preview.0
1
+ # Preview release: v0.61.0-preview.0
2
2
 
3
- Released: September 8, 2026
3
+ Released: September 15, 2026
4
4
 
5
5
  Our preview release includes the latest, new, and experimental features. This
6
6
  release may not be as stable as our [latest weekly release](latest.md).
@@ -13,61 +13,37 @@ npm install -g @google/gemini-cli@preview
13
13
 
14
14
  ## Highlights
15
15
 
16
- - **Workspace and Path Safety**: Enhanced path boundary checks, symlink
17
- resolution, and mitigation of NTFS 8.3 short name (SFN) bypasses in command
18
- safety and file discovery.
19
- - **Sandbox Isolation**: Isolated settings directories within sandbox containers
20
- and temporary directories for macOS Seatbelt sandbox to restrict access.
21
- - **Extension Loader Hardening**: Hardened path resolution and boundary
22
- validation in extension loader, with new consent prompts for runtime
23
- environment changes.
24
- - **Network and OAuth Security**: Improved destination validation and connection
25
- routing in web fetch utilities, and enforced RFC 9207 issuer identification in
26
- the MCP OAuth flow.
27
- - **Tool Output Provenance**: Enforced envelope metadata provenance for
28
- untrusted tool outputs to guarantee integrity.
16
+ - **Sandbox Isolation**: Enhanced filesystem boundaries and isolated runtime
17
+ state within the sandbox environments to restrict untrusted execution.
18
+ - **Prompt Injection Defense**: Prevented potential indirect prompt injection
19
+ vulnerabilities related to build file modifications and untrusted command
20
+ flags.
21
+ - **Flash Model ID Preservation**: Fixed core logic to properly preserve
22
+ explicit, versioned Flash model IDs without overriding them.
23
+ - **Agent Loop Reliability**: Resolved an issue where crucial `AgentLoopContext`
24
+ properties were discarded during object spread, stabilizing the main agent
25
+ loop.
29
26
 
30
27
  ## What's Changed
31
28
 
32
- - fix(core): improve destination validation and connection routing in web fetch
33
- utilities by @diegogodinezr in
34
- [#29120](https://github.com/google-gemini/gemini-cli/pull/29120)
35
- - fix(core): enforce RFC 9207 issuer identification in MCP OAuth flow by
36
- @jvargassanchez-dot in
37
- [#29117](https://github.com/google-gemini/gemini-cli/pull/29117)
38
- - chore(release): bump version to 0.60.0-nightly.20260901.g0bd1d4397 by
29
+ - Changelog for v0.60.0-preview.0 by @gemini-cli-robot in
30
+ [#29251](https://github.com/google-gemini/gemini-cli/pull/29251)
31
+ - chore(release): bump version to 0.61.0-nightly.20260908.gc647533d6 by
39
32
  @gemini-cli-robot in
40
- [#29162](https://github.com/google-gemini/gemini-cli/pull/29162)
41
- - Changelog for v0.58.0 by @gemini-cli-robot in
42
- [#29161](https://github.com/google-gemini/gemini-cli/pull/29161)
43
- - fix(cli): isolate temporary directory for macOS Seatbelt sandbox by
44
- @jvargassanchez-dot in
45
- [#29171](https://github.com/google-gemini/gemini-cli/pull/29171)
46
- - feat(extensions): harden path resolution and boundary validation in extension
47
- loader by @diegogodinezr in
48
- [#29169](https://github.com/google-gemini/gemini-cli/pull/29169)
49
- - Changelog for v0.59.0-preview.0 by @gemini-cli-robot in
50
- [#29159](https://github.com/google-gemini/gemini-cli/pull/29159)
51
- - fix(core): sanitize and remove hardcoded Google CrUX API key in
52
- chrome-devtools-mcp by @amelidev in
53
- [#29158](https://github.com/google-gemini/gemini-cli/pull/29158)
54
- - fix(extensions): prompt for consent on environment changes and sanitize
55
- runtime-altering environment variables by @amelidev in
56
- [#28863](https://github.com/google-gemini/gemini-cli/pull/28863)
57
- - fix(core): enhance workspace path boundary checks and symlink resolution in
58
- command safety and file discovery by @jesussamuel-byte in
59
- [#29170](https://github.com/google-gemini/gemini-cli/pull/29170)
60
- - fix(config): enforce strict permission and ownership checks on system-wide
61
- configuration paths by @jesussamuel-byte in
62
- [#29115](https://github.com/google-gemini/gemini-cli/pull/29115)
63
- - fix(core): mitigate NTFS 8.3 short name (SFN) path by @urielefrenvirtusa in
64
- [#29116](https://github.com/google-gemini/gemini-cli/pull/29116)
65
- - fix(cli): isolate settings directory in sandbox containers by
66
- @jvargassanchez-dot in
67
- [#29216](https://github.com/google-gemini/gemini-cli/pull/29216)
68
- - fix(core): enforce envelope metadata provenance for untrusted tool outputs by
69
- @luisfelipe-alt in
70
- [#29215](https://github.com/google-gemini/gemini-cli/pull/29215)
33
+ [#29254](https://github.com/google-gemini/gemini-cli/pull/29254)
34
+ - Changelog for v0.59.0 by @gemini-cli-robot in
35
+ [#29253](https://github.com/google-gemini/gemini-cli/pull/29253)
36
+ - fix(core): preserve explicit versioned Flash model IDs by @SandyTao520 in
37
+ [#29252](https://github.com/google-gemini/gemini-cli/pull/29252)
38
+ - fix(core): prevent indirect prompt injection via build file modifications and
39
+ untrusted flags by @villahernandez-coder in
40
+ [#29250](https://github.com/google-gemini/gemini-cli/pull/29250)
41
+ - fix(sandbox): harden filesystem boundaries and isolate runtime state by
42
+ @diegogodinezr in
43
+ [#29214](https://github.com/google-gemini/gemini-cli/pull/29214)
44
+ - fix(core): ensure AgentLoopContext properties are preserved across object
45
+ spread by @diegogodinezr in
46
+ [#29335](https://github.com/google-gemini/gemini-cli/pull/29335)
71
47
 
72
48
  **Full Changelog**:
73
- https://github.com/google-gemini/gemini-cli/compare/v0.59.0-preview.0...v0.60.0-preview.0
49
+ https://github.com/google-gemini/gemini-cli/compare/v0.60.0-preview.0...v0.61.0-preview.0
@@ -3,5 +3,5 @@
3
3
  * Copyright 2026 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- export declare const GIT_COMMIT_INFO = "ae28844fb";
7
- export declare const CLI_VERSION = "0.61.0-preview.0";
6
+ export declare const GIT_COMMIT_INFO = "6a466a7e2";
7
+ export declare const CLI_VERSION = "0.62.0-nightly.20260916.g6a466a7e2";
@@ -5,6 +5,6 @@
5
5
  */
6
6
  // This file is auto-generated by the build script (scripts/generate-git-commit-info.js)
7
7
  // Do not edit this file manually.
8
- export const GIT_COMMIT_INFO = 'ae28844fb';
9
- export const CLI_VERSION = '0.61.0-preview.0';
8
+ export const GIT_COMMIT_INFO = '6a466a7e2';
9
+ export const CLI_VERSION = '0.62.0-nightly.20260916.g6a466a7e2';
10
10
  //# sourceMappingURL=git-commit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-commit.js","sourceRoot":"","sources":["../../../src/generated/git-commit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wFAAwF;AACxF,kCAAkC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAC"}
1
+ {"version":3,"file":"git-commit.js","sourceRoot":"","sources":["../../../src/generated/git-commit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wFAAwF;AACxF,kCAAkC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAC3C,MAAM,CAAC,MAAM,WAAW,GAAG,oCAAoC,CAAC"}
@@ -52,6 +52,22 @@ export interface McpToolAnnotation extends Record<string, unknown> {
52
52
  */
53
53
  export declare function isMcpToolAnnotation(annotation: unknown): annotation is McpToolAnnotation;
54
54
  type ToolParams = Record<string, unknown>;
55
+ /**
56
+ * Formats tool parameters into a human-readable function signature or raw command,
57
+ * excluding conversational/explanatory parameters and avoiding raw JSON braces.
58
+ */
59
+ export declare function formatToolDescription(toolName: string, fallbackDisplayName: string | undefined, params: Record<string, unknown>): string;
60
+ /**
61
+ * Formats a clean title for UI/ACP display. If a `command` parameter is present,
62
+ * returns strictly the raw executable command so IDE clients can syntax-highlight it.
63
+ * Otherwise, returns the formatted function signature.
64
+ */
65
+ export declare function formatToolDisplayTitle(toolName: string, fallbackDisplayName: string | undefined, params: Record<string, unknown>): string;
66
+ /**
67
+ * Extracts conversational/explanatory text (and non-command contextual parameters
68
+ * when a command is present) so explanations travel in ACP content blocks.
69
+ */
70
+ export declare function extractToolExplanation(params: Record<string, unknown>): string;
55
71
  export declare class DiscoveredMCPToolInvocation extends BaseToolInvocation<ToolParams, ToolResult> {
56
72
  private readonly mcpTool;
57
73
  readonly serverName: string;
@@ -81,6 +81,113 @@ export function isMcpToolAnnotation(annotation) {
81
81
  const serverName = record['_serverName'];
82
82
  return typeof serverName === 'string';
83
83
  }
84
+ const CONVERSATIONAL_PARAM_KEYS = new Set([
85
+ 'description',
86
+ 'explanation',
87
+ 'reason',
88
+ 'thought',
89
+ ]);
90
+ function formatParamValue(value) {
91
+ if (value === null || value === undefined) {
92
+ return String(value);
93
+ }
94
+ if (typeof value === 'string') {
95
+ return value;
96
+ }
97
+ if (typeof value === 'number' ||
98
+ typeof value === 'boolean' ||
99
+ typeof value === 'bigint') {
100
+ return String(value);
101
+ }
102
+ if (Array.isArray(value)) {
103
+ return `[${value.map(formatParamValue).join(', ')}]`;
104
+ }
105
+ if (typeof value === 'object') {
106
+ const entries = Object.entries(value)
107
+ .filter(([, v]) => v !== undefined)
108
+ .map(([k, v]) => `${k}: ${formatParamValue(v)}`);
109
+ return `(${entries.join(', ')})`;
110
+ }
111
+ return String(value);
112
+ }
113
+ /**
114
+ * Formats tool parameters into a human-readable function signature or raw command,
115
+ * excluding conversational/explanatory parameters and avoiding raw JSON braces.
116
+ */
117
+ export function formatToolDescription(toolName, fallbackDisplayName, params) {
118
+ const functionalEntries = Object.entries(params).filter(([key, val]) => !CONVERSATIONAL_PARAM_KEYS.has(key.toLowerCase()) && val !== undefined);
119
+ const command = params['command'];
120
+ if (typeof command === 'string' &&
121
+ functionalEntries.length === 1 &&
122
+ functionalEntries[0]?.[0] === 'command') {
123
+ return command;
124
+ }
125
+ if (functionalEntries.length === 0) {
126
+ return fallbackDisplayName || toolName;
127
+ }
128
+ const formattedArgs = functionalEntries
129
+ .map(([key, val]) => `${key}: ${formatParamValue(val)}`)
130
+ .join(', ');
131
+ return `${toolName}(${formattedArgs})`;
132
+ }
133
+ /**
134
+ * Formats a clean title for UI/ACP display. If a `command` parameter is present,
135
+ * returns strictly the raw executable command so IDE clients can syntax-highlight it.
136
+ * Otherwise, returns the formatted function signature.
137
+ */
138
+ export function formatToolDisplayTitle(toolName, fallbackDisplayName, params) {
139
+ const command = params['command'];
140
+ if (typeof command === 'string' && command.trim().length > 0) {
141
+ return command;
142
+ }
143
+ return formatToolDescription(toolName, fallbackDisplayName, params);
144
+ }
145
+ /**
146
+ * Extracts conversational/explanatory text (and non-command contextual parameters
147
+ * when a command is present) so explanations travel in ACP content blocks.
148
+ */
149
+ export function extractToolExplanation(params) {
150
+ const MAX_EXPLANATION_LENGTH = 500;
151
+ const parts = [];
152
+ const command = params['command'];
153
+ const hasCommand = typeof command === 'string' && command.trim().length > 0;
154
+ if (hasCommand) {
155
+ const contextEntries = Object.entries(params).filter(([key, val]) => key !== 'command' &&
156
+ !CONVERSATIONAL_PARAM_KEYS.has(key.toLowerCase()) &&
157
+ val !== undefined);
158
+ if (contextEntries.length > 0) {
159
+ const formattedContext = contextEntries
160
+ .map(([key, val]) => `${key}: ${formatParamValue(val)}`)
161
+ .join(', ');
162
+ if (formattedContext.length > MAX_EXPLANATION_LENGTH) {
163
+ const keys = Object.keys(params);
164
+ const displayedKeys = keys.slice(0, 5);
165
+ const keysDesc = displayedKeys.length > 0
166
+ ? ` with parameters: ${displayedKeys.join(', ')}${keys.length > 5 ? ', ...' : ''}`
167
+ : '';
168
+ parts.push(`[Payload omitted due to length${keysDesc}]`);
169
+ }
170
+ else {
171
+ parts.push(`[${formattedContext}]`);
172
+ }
173
+ }
174
+ }
175
+ for (const [key, val] of Object.entries(params)) {
176
+ if (CONVERSATIONAL_PARAM_KEYS.has(key.toLowerCase()) &&
177
+ typeof val === 'string' &&
178
+ val.trim().length > 0) {
179
+ parts.push(val.trim());
180
+ }
181
+ }
182
+ if (parts.length === 0) {
183
+ return '';
184
+ }
185
+ const combined = parts.join(' ');
186
+ if (combined.length > MAX_EXPLANATION_LENGTH) {
187
+ return `${combined.slice(0, MAX_EXPLANATION_LENGTH)}...`;
188
+ }
189
+ return combined;
190
+ }
84
191
  export class DiscoveredMCPToolInvocation extends BaseToolInvocation {
85
192
  mcpTool;
86
193
  serverName;
@@ -223,30 +330,13 @@ export class DiscoveredMCPToolInvocation extends BaseToolInvocation {
223
330
  };
224
331
  }
225
332
  getDescription() {
226
- return safeJsonStringify(this.params);
333
+ return formatToolDescription(this.serverToolName, this.displayName, this.params);
227
334
  }
228
335
  getDisplayTitle() {
229
- // If it's a known terminal execute tool provided by JetBrains or similar,
230
- // and a command argument is present, return just the command.
231
- const command = this.params['command'];
232
- if (typeof command === 'string') {
233
- return command;
234
- }
235
- // Otherwise fallback to the display name or server tool name
236
- return this.displayName || this.serverToolName;
336
+ return formatToolDisplayTitle(this.serverToolName, this.displayName, this.params);
237
337
  }
238
338
  getExplanation() {
239
- const MAX_EXPLANATION_LENGTH = 500;
240
- const stringified = safeJsonStringify(this.params);
241
- if (stringified.length > MAX_EXPLANATION_LENGTH) {
242
- const keys = Object.keys(this.params);
243
- const displayedKeys = keys.slice(0, 5);
244
- const keysDesc = displayedKeys.length > 0
245
- ? ` with parameters: ${displayedKeys.join(', ')}${keys.length > 5 ? ', ...' : ''}`
246
- : '';
247
- return `[Payload omitted due to length${keysDesc}]`;
248
- }
249
- return stringified;
339
+ return extractToolExplanation(this.params);
250
340
  }
251
341
  }
252
342
  export class DiscoveredMCPTool extends BaseDeclarativeTool {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-tool.js","sourceRoot":"","sources":["../../../src/tools/mcp-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-tool.js","sourceRoot":"","sources":["../../../src/tools/mcp-tool.ts"],"names":[],"mappings":"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"}
@@ -116,25 +116,56 @@ describe('DiscoveredMCPTool', () => {
116
116
  properties: { command: { type: 'string' }, path: { type: 'string' } },
117
117
  required: ['command'],
118
118
  }, createMockMessageBus(), undefined, undefined, undefined, undefined, undefined, undefined);
119
- it('should return command as title if it exists', () => {
119
+ it('should return command as title if command is the sole functional parameter', () => {
120
120
  const invocation = commandTool.build({ command: 'ls -la' });
121
121
  expect(invocation.getDisplayTitle?.()).toBe('ls -la');
122
+ expect(invocation.getDescription()).toBe('ls -la');
123
+ expect(invocation.getExplanation?.()).toBe('');
122
124
  });
123
- it('should return displayName if command does not exist', () => {
125
+ it('should return strictly command for getDisplayTitle and clean signature for getDescription when multiple functional parameters exist', () => {
126
+ const invocation = commandTool.build({
127
+ command: 'date',
128
+ projectPath: '/path/to/project',
129
+ });
130
+ expect(invocation.getDisplayTitle?.()).toBe('date');
131
+ expect(invocation.getDescription()).toBe(`${serverToolName}(command: date, projectPath: /path/to/project)`);
132
+ expect(invocation.getExplanation?.()).toBe('[projectPath: /path/to/project]');
133
+ });
134
+ it('should segregate conversational parameters into getExplanation and exclude them from title', () => {
135
+ const invocation = commandTool.build({
136
+ command: 'date',
137
+ projectPath: '/path/to/project',
138
+ description: 'I will now run date to check the system clock',
139
+ });
140
+ expect(invocation.getDisplayTitle?.()).toBe('date');
141
+ expect(invocation.getDescription()).toBe(`${serverToolName}(command: date, projectPath: /path/to/project)`);
142
+ expect(invocation.getDescription()).not.toContain('{');
143
+ expect(invocation.getDescription()).not.toContain('I will now run');
144
+ expect(invocation.getExplanation?.()).toBe('[projectPath: /path/to/project] I will now run date to check the system clock');
145
+ });
146
+ it('should return function signature if command does not exist', () => {
124
147
  const invocation = tool.build({ param: 'testValue' });
125
- expect(invocation.getDisplayTitle?.()).toBe(tool.displayName);
148
+ expect(invocation.getDisplayTitle?.()).toBe(`${serverToolName}(param: testValue)`);
126
149
  });
127
- it('should return stringified json for getExplanation', () => {
128
- const params = { command: 'ls -la', path: '/' };
150
+ it('should return fallback displayName when no functional parameters exist', () => {
151
+ const noParamTool = new DiscoveredMCPTool(mockCallableToolInstance, serverName, serverToolName, baseDescription, { type: 'object', properties: {} }, createMockMessageBus());
152
+ const invocation = noParamTool.build({});
153
+ expect(invocation.getDisplayTitle?.()).toBe(noParamTool.displayName);
154
+ });
155
+ it('should truncate long conversational explanations for getExplanation', () => {
156
+ const longString = 'a'.repeat(600);
157
+ const params = { command: 'echo', description: longString };
129
158
  const invocation = commandTool.build(params);
130
- expect(invocation.getExplanation?.()).toBe(safeJsonStringify(params));
159
+ const explanation = invocation.getExplanation?.() ?? '';
160
+ expect(explanation).toHaveLength(503);
161
+ expect(explanation.endsWith('...')).toBe(true);
131
162
  });
132
- it('should truncate and summarize long json payloads for getExplanation', () => {
163
+ it('should truncate and summarize long contextual payloads for getExplanation (PR #23179 compatibility)', () => {
133
164
  const longString = 'a'.repeat(600);
134
165
  const params = { command: 'echo', text: longString, other: 'value' };
135
166
  const invocation = commandTool.build(params);
136
167
  const explanation = invocation.getExplanation?.() ?? '';
137
- expect(explanation).toMatch(/^\[Payload omitted due to length with parameters: command, text, other\]$/);
168
+ expect(explanation).toBe('[Payload omitted due to length with parameters: command, text, other]');
138
169
  });
139
170
  });
140
171
  describe('execute', () => {
@@ -751,11 +782,11 @@ describe('DiscoveredMCPTool', () => {
751
782
  });
752
783
  });
753
784
  describe('DiscoveredMCPToolInvocation', () => {
754
- it('should return the stringified params from getDescription', () => {
785
+ it('should return clean function signature from getDescription', () => {
755
786
  const params = { param: 'testValue', param2: 'anotherOne' };
756
787
  const invocation = tool.build(params);
757
788
  const description = invocation.getDescription();
758
- expect(description).toBe('{"param":"testValue","param2":"anotherOne"}');
789
+ expect(description).toBe(`${serverToolName}(param: testValue, param2: anotherOne)`);
759
790
  });
760
791
  it('should wrap text output in <untrusted_context> tags', async () => {
761
792
  const params = { param: 'testValue' };