Commit Graph

6 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: add questionnaire tool for multi-question input (#695)
    New tool for asking users one or more questions with a tab-based interface.
    
    Features:
    - Single question: simple options list (similar to question tool)
    - Multiple questions: tab bar navigation between questions
    - Progress indicators: ■/□ checkboxes show answered state
    - Submit tab: review all answers before submitting
    - 'Type something' option: free-text input with options visible
    - Full keyboard navigation: Tab/←→ between questions, ↑↓ for options
    
    Use cases:
    - Clarifying requirements with multiple aspects
    - Getting user preferences across categories
    - Multi-step confirmation dialogs
    
    Example:
    ```typescript
    {
      questions: [{
        id: "db",
        label: "Database",
        prompt: "Which database?",
        options: [
          { value: "pg", label: "PostgreSQL", description: "Relational" },
          { value: "mongo", label: "MongoDB", description: "Document store" }
        ]
      }, {
        id: "auth",
        label: "Auth",
        prompt: "Authentication method?",
        options: [
          { value: "jwt", label: "JWT" },
          { value: "session", label: "Sessions" }
        ]
      }]
    }
    ```