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:
iven
2026-03-17 08:05:07 +08:00
parent adfd7024df
commit f4efc823e2
80 changed files with 9496 additions and 1390 deletions

View File

@@ -12,13 +12,15 @@ import {
ErrorSeverity,
} from './error-types';
// === Error Store ===
// === Types ===
interface StoredError extends AppError {
export interface StoredError extends AppError {
dismissed: boolean;
reported: boolean;
}
// === Error Store ===
interface ErrorStore {
errors: StoredError[];
addError: (error: AppError) => void;
@@ -52,12 +54,17 @@ function initErrorStore(): void {
errors: [],
addError: (error: AppError) => {
errorStore.errors = [error, ...errorStore.errors];
const storedError: StoredError = {
...error,
dismissed: false,
reported: false,
};
errorStore.errors = [storedError, ...errorStore.errors];
// Notify listeners
notifyErrorListeners(error);
},
dismissError: (id: string) => void {
dismissError(id: string): void {
const error = errorStore.errors.find(e => e.id === id);
if (error) {
errorStore.errors = errorStore.errors.map(e =>
@@ -66,11 +73,11 @@ function initErrorStore(): void {
}
},
dismissAll: () => void {
dismissAll(): void {
errorStore.errors = errorStore.errors.map(e => ({ ...e, dismissed: true }));
},
markReported: (id: string) => void {
markReported(id: string): void {
const error = errorStore.errors.find(e => e.id === id);
if (error) {
errorStore.errors = errorStore.errors.map(e =>
@@ -79,19 +86,19 @@ function initErrorStore(): void {
}
},
getUndismissedErrors: () => StoredError[] => {
getUndismissedErrors(): StoredError[] {
return errorStore.errors.filter(e => !e.dismissed);
},
getErrorCount: () => number => {
getErrorCount(): number {
return errorStore.errors.filter(e => !e.dismissed).length;
},
getErrorsByCategory: (category: ErrorCategory) => StoredError[] => {
getErrorsByCategory(category: ErrorCategory): StoredError[] {
return errorStore.errors.filter(e => e.category === category && !e.dismissed);
},
getErrorsBySeverity: (severity: ErrorSeverity) => StoredError[] => {
getErrorsBySeverity(severity: ErrorSeverity): StoredError[] {
return errorStore.errors.filter(e => e.severity === severity && !e.dismissed);
},
};
@@ -366,8 +373,3 @@ interface ErrorEvent {
reason?: string;
message?: string;
}
export interface StoredError extends AppError {
dismissed: boolean;
reported: boolean;
}