Kode-cli/tasks.md

5.2 KiB

TypeScript Error Fix Plan - 100% Confidence Strategy

Overview

Fix all 127 TypeScript compilation errors systematically, starting from core type definitions to implementation details.

Phase 1: Core Type System Foundation (Critical - Block Everything)

1.1 Message Type System Fix

  • Fix Message type union in src/messages.ts - Add missing 'message' property to ProgressMessage or remove from usage
  • Add required properties (costUSD, durationMs, uuid) to message type factories in src/utils/messageContextManager.ts
  • Fix query.ts message property access patterns (lines 203-210)
  • Validate all Message type consumers after changes

1.2 Tool Interface Alignment

  • Update Tool base interface in src/Tool.ts to match actual implementations
  • Fix renderResultForAssistant return type to allow string | array
  • Fix renderToolUseRejectedMessage signature to be consistent (0 args vs 2 args)
  • Add optional setToolJSX to ToolUseContext interface
  • Update ExtendedToolUseContext type definition

1.3 Key Type Extensions

  • Add missing properties to Key type: fn, home, end, space
  • Update ink types or create proper type augmentation file
  • Verify all keyboard event handlers after Key type update

Phase 2: Tool System Implementation (High Priority)

2.1 Fix Tool Implementations

  • Fix ArchitectTool - Align call() and renderResultForAssistant signatures
  • Fix FileReadTool - Handle string | array return type, add sharp dependency
  • Fix FileWriteTool - Fix renderToolUseRejectedMessage signature
  • Fix FileEditTool - Fix renderToolUseRejectedMessage signature
  • Fix MultiEditTool - Fix applyEdit parameters and return properties
  • Fix TaskTool - Align AsyncGenerator types with Tool interface
  • Fix StickerRequestTool - Handle optional setToolJSX property
  • Fix NotebookReadTool - Type assertion for unknown to string conversion
  • Fix AskExpertModelTool - Fix debugLogger call signatures

2.2 Tool Prompt System

  • Update all tool prompt.ts files to match new signatures
  • Ensure async description functions are properly typed

Phase 3: React 19 / Ink 6 Component Updates (Medium Priority)

3.1 Component Props Fix

  • Fix agents.tsx - Remove 'key' from component props, pass as JSX attribute
  • Fix AssistantToolUseMessage - Add required children prop
  • Fix REPL.tsx - Add children to PermissionProvider and TodoProvider
  • Fix all Text components missing children prop

3.2 Import Path Corrections

  • Remove .tsx extensions from imports in Doctor.tsx
  • Verify all import paths follow TypeScript conventions

Phase 4: Service Layer Fixes (Medium Priority)

4.1 OpenAI Service Type Safety

  • Add proper error type guards in openai.ts (lines 611, 743)
  • Type API responses properly (lines 1291-1299)
  • Create response type interfaces for OpenAI API

4.2 Config Service Overloads

  • Fix getConfig overload in cli.tsx line 543
  • Ensure boolean parameter properly narrows to true/false

Phase 5: Hook System Updates (Low Priority)

5.1 Input Hook Fixes

  • Remove unused @ts-expect-error in useDoublePress.ts
  • Remove unused @ts-expect-error in useTextInput.ts
  • Fix Key type usage in useTextInput.ts
  • Fix Key type usage in useUnifiedCompletion.ts

5.2 Message Hook Updates

  • Fix useUnifiedCompletion optional vs required properties
  • Update messages.tsx type assertions

Phase 6: Utility Functions (Low Priority)

6.1 Type Utilities

  • Fix generators.ts void | Awaited issue
  • Fix thinking.ts enum value 'minimal'
  • Clean up type assertions

6.2 Clean-up Tasks

  • Remove all unused @ts-expect-error directives
  • Fix entrypoints parameter counts
  • Add isCustomCommand to proper type definition

Phase 7: Dependency Management

7.1 Missing Dependencies

  • Add sharp package for image processing
  • Verify all package.json dependencies are installed
  • Update @types packages if needed

Phase 8: Validation & Testing

8.1 Compilation Verification

  • Run npx tsc --noEmit after each phase
  • Document remaining errors if any
  • Ensure zero TypeScript errors

8.2 Runtime Testing

  • Test basic CLI functionality
  • Test each tool individually
  • Test React components render correctly
  • Verify no runtime regressions

Execution Order & Time Estimates

  1. Phase 1: 2 hours - Must complete first, blocks everything
  2. Phase 2: 3 hours - Can parallelize tool fixes
  3. Phase 3: 1 hour - Independent, can do in parallel with Phase 4
  4. Phase 4: 1 hour - Independent service fixes
  5. Phase 5: 30 minutes - Quick fixes
  6. Phase 6: 30 minutes - Simple clean-up
  7. Phase 7: 15 minutes - Package installation
  8. Phase 8: 1 hour - Final validation

Total Estimated Time: 9 hours 15 minutes

Success Criteria

  • Zero TypeScript compilation errors
  • All tools functioning correctly
  • React components rendering without warnings
  • No runtime regressions
  • Clean git diff with minimal changes

Risk Mitigation

  • Create backup branch before starting
  • Test each phase independently
  • Use git add -p for selective staging
  • Document any breaking changes
  • Keep fixes minimal and focused