mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-10 22:21:22 -07:00
chore(a2a-server): Merge A2A types (#7650)
This commit is contained in:
@@ -19,15 +19,22 @@ import type {
|
||||
} from '@google/gemini-cli-core';
|
||||
import { GeminiEventType } from '@google/gemini-cli-core';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
|
||||
import { logger } from '../utils/logger.js';
|
||||
import type { StateChange, AgentSettings } from '../types.js';
|
||||
import { CoderAgentEvent } from '../types.js';
|
||||
import type {
|
||||
StateChange,
|
||||
AgentSettings,
|
||||
PersistedStateMetadata,
|
||||
} from '../types.js';
|
||||
import {
|
||||
CoderAgentEvent,
|
||||
getPersistedState,
|
||||
setPersistedState,
|
||||
} from '../types.js';
|
||||
import { loadConfig, loadEnvironment, setTargetDir } from '../config/config.js';
|
||||
import { loadSettings } from '../config/settings.js';
|
||||
import { loadExtensions } from '../config/extension.js';
|
||||
import { Task } from './task.js';
|
||||
import type { PersistedStateMetadata } from '../metadata_types.js';
|
||||
import { getPersistedState, setPersistedState } from '../metadata_types.js';
|
||||
import { requestStorage } from '../http/requestStorage.js';
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2025 Google LLC
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
import type { AgentSettings } from './types.js';
|
||||
import type { TaskState } from '@a2a-js/sdk';
|
||||
|
||||
export interface PersistedStateMetadata {
|
||||
_agentSettings: AgentSettings;
|
||||
_taskState: TaskState;
|
||||
}
|
||||
|
||||
export type PersistedTaskMetadata = { [k: string]: unknown };
|
||||
|
||||
export const METADATA_KEY = '__persistedState';
|
||||
|
||||
export function getPersistedState(
|
||||
metadata: PersistedTaskMetadata,
|
||||
): PersistedStateMetadata | undefined {
|
||||
return metadata?.[METADATA_KEY] as PersistedStateMetadata | undefined;
|
||||
}
|
||||
|
||||
export function setPersistedState(
|
||||
metadata: PersistedTaskMetadata,
|
||||
state: PersistedStateMetadata,
|
||||
): PersistedTaskMetadata {
|
||||
return {
|
||||
...metadata,
|
||||
[METADATA_KEY]: state,
|
||||
};
|
||||
}
|
||||
@@ -18,7 +18,7 @@ import { describe, it, expect, beforeEach, vi } from 'vitest';
|
||||
import { GCSTaskStore, NoOpTaskStore } from './gcs.js';
|
||||
import { logger } from '../utils/logger.js';
|
||||
import * as configModule from '../config/config.js';
|
||||
import * as metadataModule from '../metadata_types.js';
|
||||
import { getPersistedState, METADATA_KEY } from '../types.js';
|
||||
|
||||
// Mock dependencies
|
||||
vi.mock('@google-cloud/storage');
|
||||
@@ -53,10 +53,16 @@ vi.mock('../utils/logger.js', () => ({
|
||||
vi.mock('../config/config.js', () => ({
|
||||
setTargetDir: vi.fn(),
|
||||
}));
|
||||
vi.mock('../metadata_types');
|
||||
vi.mock('node:stream/promises', () => ({
|
||||
pipeline: vi.fn(),
|
||||
}));
|
||||
vi.mock('../types.js', async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import('../types.js')>();
|
||||
return {
|
||||
...actual,
|
||||
getPersistedState: vi.fn(),
|
||||
};
|
||||
});
|
||||
|
||||
const mockStorage = Storage as MockedClass<typeof Storage>;
|
||||
const mockFse = fse as Mocked<typeof fse>;
|
||||
@@ -66,8 +72,8 @@ const mockGzipSync = gzipSync as Mock;
|
||||
const mockGunzipSync = gunzipSync as Mock;
|
||||
const mockUuidv4 = uuidv4 as Mock;
|
||||
const mockSetTargetDir = configModule.setTargetDir as Mock;
|
||||
const mockGetPersistedState = metadataModule.getPersistedState as Mock;
|
||||
const METADATA_KEY = metadataModule.METADATA_KEY || '__persistedState';
|
||||
const mockGetPersistedState = getPersistedState as Mock;
|
||||
const TEST_METADATA_KEY = METADATA_KEY || '__persistedState';
|
||||
|
||||
type MockWriteStream = {
|
||||
on: Mock<
|
||||
@@ -228,7 +234,10 @@ describe('GCSTaskStore', () => {
|
||||
mockGunzipSync.mockReturnValue(
|
||||
Buffer.from(
|
||||
JSON.stringify({
|
||||
[METADATA_KEY]: { _agentSettings: {}, _taskState: 'submitted' },
|
||||
[TEST_METADATA_KEY]: {
|
||||
_agentSettings: {},
|
||||
_taskState: 'submitted',
|
||||
},
|
||||
_contextId: 'ctx1',
|
||||
}),
|
||||
),
|
||||
@@ -282,7 +291,10 @@ describe('GCSTaskStore', () => {
|
||||
mockGunzipSync.mockReturnValue(
|
||||
Buffer.from(
|
||||
JSON.stringify({
|
||||
[METADATA_KEY]: { _agentSettings: {}, _taskState: 'submitted' },
|
||||
[TEST_METADATA_KEY]: {
|
||||
_agentSettings: {},
|
||||
_taskState: 'submitted',
|
||||
},
|
||||
_contextId: 'ctx1',
|
||||
}),
|
||||
),
|
||||
|
||||
@@ -15,10 +15,7 @@ import type { Task as SDKTask } from '@a2a-js/sdk';
|
||||
import type { TaskStore } from '@a2a-js/sdk/server';
|
||||
import { logger } from '../utils/logger.js';
|
||||
import { setTargetDir } from '../config/config.js';
|
||||
import {
|
||||
getPersistedState,
|
||||
type PersistedTaskMetadata,
|
||||
} from '../metadata_types.js';
|
||||
import { getPersistedState, type PersistedTaskMetadata } from '../types.js';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
|
||||
type ObjectType = 'metadata' | 'workspace';
|
||||
|
||||
@@ -102,3 +102,28 @@ export interface TaskMetadata {
|
||||
parameterSchema: unknown;
|
||||
}>;
|
||||
}
|
||||
|
||||
export interface PersistedStateMetadata {
|
||||
_agentSettings: AgentSettings;
|
||||
_taskState: TaskState;
|
||||
}
|
||||
|
||||
export type PersistedTaskMetadata = { [k: string]: unknown };
|
||||
|
||||
export const METADATA_KEY = '__persistedState';
|
||||
|
||||
export function getPersistedState(
|
||||
metadata: PersistedTaskMetadata,
|
||||
): PersistedStateMetadata | undefined {
|
||||
return metadata?.[METADATA_KEY] as PersistedStateMetadata | undefined;
|
||||
}
|
||||
|
||||
export function setPersistedState(
|
||||
metadata: PersistedTaskMetadata,
|
||||
state: PersistedStateMetadata,
|
||||
): PersistedTaskMetadata {
|
||||
return {
|
||||
...metadata,
|
||||
[METADATA_KEY]: state,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user