refactor(cli): finalize event-driven transition and remove interaction bridge (#18569)

This commit is contained in:
Abhi
2026-02-13 11:14:35 +09:00
committed by GitHub
parent b62c6566be
commit 00f73b73bc
16 changed files with 104 additions and 397 deletions

View File

@@ -6,7 +6,7 @@
import { describe, it, expect } from 'vitest';
import type {
ToolCallConfirmationDetails,
SerializableConfirmationDetails,
ToolEditConfirmationDetails,
} from '@google/gemini-cli-core';
import {
@@ -366,13 +366,12 @@ describe('textUtils', () => {
describe('toolConfirmationDetails case study', () => {
it('should sanitize command and rootCommand for exec type', () => {
const details: ToolCallConfirmationDetails = {
const details: SerializableConfirmationDetails = {
title: '\u001b[34mfake-title\u001b[0m',
type: 'exec',
command: '\u001b[31mmls -l\u001b[0m',
rootCommand: '\u001b[32msudo apt-get update\u001b[0m',
rootCommands: ['sudo'],
onConfirm: async () => {},
};
const sanitized = escapeAnsiCtrlCodes(details);
@@ -387,14 +386,13 @@ describe('textUtils', () => {
});
it('should sanitize properties for edit type', () => {
const details: ToolCallConfirmationDetails = {
const details: SerializableConfirmationDetails = {
type: 'edit',
title: '\u001b[34mEdit File\u001b[0m',
fileName: '\u001b[31mfile.txt\u001b[0m',
filePath: '/path/to/\u001b[32mfile.txt\u001b[0m',
fileDiff:
'diff --git a/file.txt b/file.txt\n--- a/\u001b[33mfile.txt\u001b[0m\n+++ b/file.txt',
onConfirm: async () => {},
} as unknown as ToolEditConfirmationDetails;
const sanitized = escapeAnsiCtrlCodes(details);
@@ -412,13 +410,12 @@ describe('textUtils', () => {
});
it('should sanitize properties for mcp type', () => {
const details: ToolCallConfirmationDetails = {
const details: SerializableConfirmationDetails = {
type: 'mcp',
title: '\u001b[34mCloud Run\u001b[0m',
serverName: '\u001b[31mmy-server\u001b[0m',
toolName: '\u001b[32mdeploy\u001b[0m',
toolDisplayName: '\u001b[33mDeploy Service\u001b[0m',
onConfirm: async () => {},
};
const sanitized = escapeAnsiCtrlCodes(details);
@@ -434,12 +431,11 @@ describe('textUtils', () => {
});
it('should sanitize properties for info type', () => {
const details: ToolCallConfirmationDetails = {
const details: SerializableConfirmationDetails = {
type: 'info',
title: '\u001b[34mWeb Search\u001b[0m',
prompt: '\u001b[31mSearch for cats\u001b[0m',
urls: ['https://\u001b[32mgoogle.com\u001b[0m'],
onConfirm: async () => {},
};
const sanitized = escapeAnsiCtrlCodes(details);
@@ -457,12 +453,11 @@ describe('textUtils', () => {
});
it('should not change the object if no sanitization is needed', () => {
const details: ToolCallConfirmationDetails = {
const details: SerializableConfirmationDetails = {
type: 'info',
title: 'Web Search',
prompt: 'Search for cats',
urls: ['https://google.com'],
onConfirm: async () => {},
};
const sanitized = escapeAnsiCtrlCodes(details);