Commit Graph

6 Commits

  • feat(coding-agent): add tool override support via extensions
    - Add setActiveTools() to ExtensionAPI for dynamic tool management
    - Extensions can now override, wrap, or disable built-in tools
    - Add tool-override.ts example demonstrating the pattern
    - Update documentation for tool override capabilities
  • feat(coding-agent): add --no-tools flag to disable built-in tools
    Add --no-tools flag that allows starting pi without any built-in tools,
    enabling extension-only tool setups (e.g., pi-ssh-remote).
    
    - Add --no-tools flag to CLI args parsing
    - Handle --tools '' (empty string) as equivalent to no tools
    - Fix system prompt to not show READ-ONLY mode when no tools (extensions may provide write capabilities)
    - Add tests for new flag and system prompt behavior
    
    fixes #555
  • feat(coding-agent): allow explicit -e flags with --no-extensions
    --no-extensions now skips discovery but still loads extensions
    specified via -e flags. This gives users three modes:
    
    1. Default: auto-discover + any -e additions
    2. --no-extensions: no extensions at all
    3. --no-extensions -e foo.js: only load foo.js, skip discovery
    
    fixes #524
  • Add --no-extensions flag to disable extension discovery
    Similar to --no-skills, this flag disables extension discovery and loading.
    Useful for debugging or when extensions are causing issues.
  • Merge hooks and custom-tools into unified extensions system (#454)
    Breaking changes:
    - Settings: 'hooks' and 'customTools' arrays replaced with 'extensions'
    - CLI: '--hook' and '--tool' flags replaced with '--extension' / '-e'
    - API: HookMessage renamed to CustomMessage, role 'hookMessage' to 'custom'
    - API: FileSlashCommand renamed to PromptTemplate
    - API: discoverSlashCommands() renamed to discoverPromptTemplates()
    - Directories: commands/ renamed to prompts/ for prompt templates
    
    Migration:
    - Session version bumped to 3 (auto-migrates v2 sessions)
    - Old 'hookMessage' role entries converted to 'custom'
    
    Structural changes:
    - src/core/hooks/ and src/core/custom-tools/ merged into src/core/extensions/
    - src/core/slash-commands.ts renamed to src/core/prompt-templates.ts
    - examples/hooks/ and examples/custom-tools/ merged into examples/extensions/
    - docs/hooks.md and docs/custom-tools.md merged into docs/extensions.md
    
    New test coverage:
    - test/extensions-runner.test.ts (10 tests)
    - test/extensions-discovery.test.ts (26 tests)
    - test/prompt-templates.test.ts
  • Add --version/-v flag to CLI (#170)
    - Parse --version and -v flags in args.ts
    - Handle version flag early in main.ts (print and exit)
    - Add flag to help text
    - Add comprehensive test coverage for CLI arg parsing
    
    Co-authored-by: cc-vps <crcatala+vps@gmail.com>