Commit Graph

7 Commits

  • fix(typebox): migrate to v1 with extension compat (#3474)
    * fix(typebox): migrate to v1 with extension compat
    
    Replace AJV-based validation with TypeBox-native validation, keep legacy extension imports working (including @sinclair/typebox/compiler), and restore coercion for serialized/plain JSON schemas.
    
    This change closes #3112.
    
    * fix(typebox): use canonical imports and harden coercion
    
    Switch first-party code to canonical typebox imports while retaining legacy extension aliases in the loader.
    
    Remove obsolete runtime codegen guards, expand serialized JSON-schema coercion coverage, and update related tests and fixtures.
    
    Fixes #3112.
    
    ---------
    
    Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
  • fix(coding-agent): built-in tools work like extension tools
    Export readToolDefinition / createReadToolDefinition and the equivalent built-in ToolDefinition APIs from @mariozechner/pi-coding-agent.
  • fix(coding-agent): align ToolDefinition.execute signature with AgentTool
    BREAKING CHANGE: ToolDefinition.execute parameter order changed from
    (id, params, onUpdate, ctx, signal) to (id, params, signal, onUpdate, ctx).
    
    This aligns with AgentTool.execute so wrapping built-in tools no longer
    requires parameter reordering. Update extensions by swapping signal and
    onUpdate parameters.
  • fix(tui): add vertical scrolling to Editor when content exceeds terminal height
    The Editor component now accepts TUI as the first constructor parameter,
    enabling it to query terminal dimensions. When content exceeds available
    height, the editor scrolls vertically keeping the cursor visible.
    
    Features:
    - Max editor height is 30% of terminal rows (minimum 5 lines)
    - Page Up/Down keys scroll by page size
    - Scroll indicators show lines above/below: ─── ↑ 5 more ───
    
    Breaking change: Editor constructor signature changed from
      new Editor(theme)
    to
      new Editor(tui, theme)
    
    fixes #732
  • feat(question): enhanced question tool with custom UI (#693)
    Changes from the original:
    - Full custom UI with options list instead of simple ctx.ui.select()
    - Option descriptions: support { label, description? } in addition to strings
    - Built-in 'Other...' option with inline editor for free-text input
    - Better UX: Escape in editor returns to options, Escape in options cancels
    - Numbered options display (1. Option, 2. Option, etc.)
    - Enhanced result rendering showing selection index