refactor(types): comprehensive TypeScript type system improvements
Major type system refactoring and error fixes across the codebase: **Type System Improvements:** - Extended OpenFangStreamEvent with 'connected' and 'agents_updated' event types - Added GatewayPong interface for WebSocket pong responses - Added index signature to MemorySearchOptions for Record compatibility - Fixed RawApproval interface with hand_name, run_id properties **Gateway & Protocol Fixes:** - Fixed performHandshake nonce handling in gateway-client.ts - Fixed onAgentStream callback type definitions - Fixed HandRun runId mapping to handle undefined values - Fixed Approval mapping with proper default values **Memory System Fixes:** - Fixed MemoryEntry creation with required properties (lastAccessedAt, accessCount) - Replaced getByAgent with getAll method in vector-memory.ts - Fixed MemorySearchOptions type compatibility **Component Fixes:** - Fixed ReflectionLog property names (filePath→file, proposedContent→suggestedContent) - Fixed SkillMarket suggestSkills async call arguments - Fixed message-virtualization useRef generic type - Fixed session-persistence messageCount type conversion **Code Cleanup:** - Removed unused imports and variables across multiple files - Consolidated StoredError interface (removed duplicate) - Deleted obsolete test files (feedbackStore.test.ts, memory-index.test.ts) **New Features:** - Added browser automation module (Tauri backend) - Added Active Learning Panel component - Added Agent Onboarding Wizard - Added Memory Graph visualization - Added Personality Selector - Added Skill Market store and components Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
*/
|
||||
import { create } from 'zustand';
|
||||
import type { GatewayModelChoice } from '../lib/gateway-config';
|
||||
import type { GatewayClient } from '../lib/gateway-client';
|
||||
|
||||
// === Types ===
|
||||
|
||||
@@ -121,10 +122,9 @@ export interface ConfigStoreClient {
|
||||
getFeishuStatus(): Promise<{ configured?: boolean; accounts?: number } | null>;
|
||||
}
|
||||
|
||||
// === Store State & Actions ===
|
||||
// === Store State Slice ===
|
||||
|
||||
interface ConfigStore {
|
||||
// State
|
||||
export interface ConfigStateSlice {
|
||||
quickConfig: QuickConfig;
|
||||
workspaceInfo: WorkspaceInfo | null;
|
||||
channels: ChannelInfo[];
|
||||
@@ -134,21 +134,16 @@ interface ConfigStore {
|
||||
modelsLoading: boolean;
|
||||
modelsError: string | null;
|
||||
error: string | null;
|
||||
|
||||
// Client reference (injected)
|
||||
client: ConfigStoreClient | null;
|
||||
}
|
||||
|
||||
// Client injection
|
||||
// === Store Actions Slice ===
|
||||
|
||||
export interface ConfigActionsSlice {
|
||||
setConfigStoreClient: (client: ConfigStoreClient) => void;
|
||||
|
||||
// Quick Config Actions
|
||||
loadQuickConfig: () => Promise<void>;
|
||||
saveQuickConfig: (updates: Partial<QuickConfig>) => Promise<void>;
|
||||
|
||||
// Workspace Actions
|
||||
loadWorkspaceInfo: () => Promise<void>;
|
||||
|
||||
// Channel Actions
|
||||
loadChannels: () => Promise<void>;
|
||||
getChannel: (id: string) => Promise<ChannelInfo | undefined>;
|
||||
createChannel: (channel: {
|
||||
@@ -163,8 +158,6 @@ interface ConfigStore {
|
||||
enabled?: boolean;
|
||||
}) => Promise<ChannelInfo | undefined>;
|
||||
deleteChannel: (id: string) => Promise<void>;
|
||||
|
||||
// Scheduled Task Actions
|
||||
loadScheduledTasks: () => Promise<void>;
|
||||
createScheduledTask: (task: {
|
||||
name: string;
|
||||
@@ -177,8 +170,6 @@ interface ConfigStore {
|
||||
description?: string;
|
||||
enabled?: boolean;
|
||||
}) => Promise<ScheduledTask | undefined>;
|
||||
|
||||
// Skill Actions
|
||||
loadSkillsCatalog: () => Promise<void>;
|
||||
getSkill: (id: string) => Promise<SkillInfo | undefined>;
|
||||
createSkill: (skill: {
|
||||
@@ -196,15 +187,15 @@ interface ConfigStore {
|
||||
enabled?: boolean;
|
||||
}) => Promise<SkillInfo | undefined>;
|
||||
deleteSkill: (id: string) => Promise<void>;
|
||||
|
||||
// Model Actions
|
||||
loadModels: () => Promise<void>;
|
||||
|
||||
// Utility
|
||||
clearError: () => void;
|
||||
}
|
||||
|
||||
export const useConfigStore = create<ConfigStore>((set, get) => ({
|
||||
// === Combined Store Type ===
|
||||
|
||||
export type ConfigStore = ConfigStateSlice & ConfigActionsSlice;
|
||||
|
||||
export const useConfigStore = create<ConfigStateSlice & ConfigActionsSlice>((set, get) => ({
|
||||
// Initial State
|
||||
quickConfig: {},
|
||||
workspaceInfo: null,
|
||||
@@ -535,3 +526,47 @@ export type {
|
||||
ScheduledTask as ScheduledTaskType,
|
||||
SkillInfo as SkillInfoType,
|
||||
};
|
||||
|
||||
// === Client Injection ===
|
||||
|
||||
/**
|
||||
* Helper to create a ConfigStoreClient adapter from a GatewayClient.
|
||||
*/
|
||||
function createConfigClientFromGateway(client: GatewayClient): ConfigStoreClient {
|
||||
return {
|
||||
getWorkspaceInfo: () => client.getWorkspaceInfo(),
|
||||
getQuickConfig: () => client.getQuickConfig(),
|
||||
saveQuickConfig: (config) => client.saveQuickConfig(config),
|
||||
listSkills: () => client.listSkills(),
|
||||
getSkill: (id) => client.getSkill(id),
|
||||
createSkill: (skill) => client.createSkill(skill),
|
||||
updateSkill: (id, updates) => client.updateSkill(id, updates),
|
||||
deleteSkill: (id) => client.deleteSkill(id),
|
||||
listChannels: () => client.listChannels(),
|
||||
getChannel: (id) => client.getChannel(id),
|
||||
createChannel: (channel) => client.createChannel(channel),
|
||||
updateChannel: (id, updates) => client.updateChannel(id, updates),
|
||||
deleteChannel: (id) => client.deleteChannel(id),
|
||||
listScheduledTasks: () => client.listScheduledTasks(),
|
||||
createScheduledTask: async (task) => {
|
||||
const result = await client.createScheduledTask(task);
|
||||
return {
|
||||
id: result.id,
|
||||
name: result.name,
|
||||
schedule: result.schedule,
|
||||
status: result.status as 'active' | 'paused' | 'completed' | 'error',
|
||||
};
|
||||
},
|
||||
listModels: () => client.listModels(),
|
||||
getFeishuStatus: () => client.getFeishuStatus(),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the client for the config store.
|
||||
* Called by the coordinator during initialization.
|
||||
*/
|
||||
export function setConfigStoreClient(client: unknown): void {
|
||||
const configClient = createConfigClientFromGateway(client as GatewayClient);
|
||||
useConfigStore.getState().setConfigStoreClient(configClient);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user