38 Commits

Author SHA1 Message Date
Kayvan Sylvan
12fc6e2000 feat: add image generation support with OpenAI image generation model
## CHANGES

- Add `--image-file` flag for saving generated images
- Implement image generation tool integration with OpenAI
- Support image editing with attachment input files
- Add comprehensive test coverage for image features
- Update documentation with image generation examples
- Fix HTML formatting issues in README
- Improve PowerShell code block indentation
- Clean up help text formatting and spacing
2025-07-04 14:36:55 -07:00
Kayvan Sylvan
d232222787 feat: add web search tool support for Anthropic models
## CHANGES

- Add --search flag to enable web search
- Add --search-location for timezone-based results
- Pass search options through ChatOptions struct
- Implement web search tool in Anthropic client
- Format search citations with sources section
- Add comprehensive tests for search functionality
- Remove plugin-level web search configuration
2025-07-03 22:40:39 -07:00
Kayvan Sylvan
09e01eddf4 refactor: abstract chat message structs and migrate to official openai-go SDK
### CHANGES

- Introduce local `chat` package for message abstraction
- Replace sashabaranov/go-openai with official openai-go SDK
- Update OpenAI, Azure, and Exolab plugins for new client
- Refactor all AI providers to use internal chat types
- Decouple codebase from third-party AI provider structs
- Replace deprecated `ioutil` functions with `os` equivalents
2025-06-28 07:28:49 -07:00
Kayvan Sylvan
b772127738 feat: add Perplexity AI provider support with token limits and streaming
## CHANGES

- feat: Add `MaxTokens` field to `ChatOptions` struct for response control
- feat: Integrate Perplexity client into core plugin registry initialization
- build: Add perplexity-go/v2 dependency to enable API interactions
- feat: Implement stream handling in Perpexlty client using sync.WaitGroup
- fix: Correct parameter types for penalty options in API requests
## LINKS

<https://github.com/sgaunet/perlexipty-go> - Client library used
2025-06-17 02:32:53 -07:00
Kayvan Sylvan
a6d14d86b8 refactor: introduce getSortedGroupsItems for consistent sorting logic
### CHANGES
- Add `getSortedGroupsItems` to centralize sorting logic.
- Sort groups and items alphabetically, case-insensitive.
- Replace inline sorting in `Print` with new method.
- Update `GetGroupAndItemByItemNumber` to use sorted data.
- Ensure original `GroupsItems` remains unmodified.
2025-04-28 11:41:32 -07:00
Kayvan Sylvan
bf3af8e98e feat: add shell completion scripts for Zsh, Bash, and Fish
CHANGES:
- Add shell completion support for three major shells
- Create standardized completion scripts in completions/ directory
- Add --shell-complete-list flag for machine-readable output
- Update Print() methods to support plain output format
- Document installation steps for each shell in README
- Replace old fish completion script with improved version
2025-04-24 17:47:39 -07:00
Kayvan Sylvan
8b2174897a feat: add alphabetical sorting to groups and items in Print method**
### CHANGES
- Import `sort` and `strings` packages for sorting functionality.
- Create a copy of groups for stable sorting.
- Sort groups alphabetically in a case-insensitive manner.
- Create a copy of items within each group for sorting.
- Sort items alphabetically in a case-insensitive manner.
- Iterate over sorted groups and items for display.
2025-04-20 10:56:52 -07:00
Kayvan Sylvan
55fda5e025 fix: enhance JSON string handling with proper control character escaping
## CHANGES

- Convert control chars to proper JSON escape sequences
- Prevent invalid JSON due to literal control chars
2025-03-25 20:00:44 -07:00
Kayvan Sylvan
3785d0a5fa refactor: modify ParseFileChanges to return summary and changes separately
CHANGES:
*   Return summary text from `ParseFileChanges` separately.
*   Update `chatter` to use returned summary text.
*   Update tests to match new function signature.
2025-03-25 18:54:01 -07:00
Kayvan Sylvan
8a326e9cfb refactor: replace FILE_CHANGES marker with constant FileChangesMarker
## CHANGES

- Add FileChangesMarker constant for file changes section
- Update parser to use new constant marker
- Improve error messages with dynamic marker reference
- Update tests to use new marker format
- Update system documentation with new marker syntax
2025-03-25 17:51:57 -07:00
Kayvan Sylvan
5f5822f1c6 fix: improve JSON parsing in ParseFileChanges to handle invalid escape sequences
## CHANGES

- Add dedicated function to fix invalid JSON escapes
- Handle common \C escape sequence issue
- Implement fallback parsing with comprehensive escape fixes
- Track string context for accurate escape detection
- Preserve valid JSON escape sequences
2025-03-25 16:16:51 -07:00
Kayvan Sylvan
111482e46e feat: add file management system for AI-driven code changes
CHANGES:
- Replace deprecated io/ioutil with modern alternatives
- Add file change parsing and validation system
- Create secure file application mechanism
- Update chatter to process AI file changes
- Improve create_coding_feature pattern documentation
2025-03-25 16:09:28 -07:00
Kayvan Sylvan
096f40df68 feat: add prompt strategies and improve installation documentation
## CHANGES

- Add prompt strategies like Chain of Thought (CoT)
- Implement strategy selection with `--strategy` flag
- Improve README with platform-specific installation instructions
- Fix web interface documentation link
- Refactor git operations with new githelper package
- Add `--liststrategies` command to view available strategies
- Support applying strategies to system prompts
- Fix YouTube configuration check
- Improve error handling in session management
2025-03-15 00:30:30 -07:00
jaredmontoya
1f765c5b53 flake: fix/update 2025-02-26 16:12:05 +01:00
Matt Joyce
01519d7486 Add --input-has-vars flag to control variable substitution in input
- Add InputHasVars field to ChatRequest struct
- Only process template variables in user input when flag is set
- Fixes issue with Ansible/Jekyll templates that use {{var}} syntax

This change makes template variable substitution in user input opt-in
via the --input-has-vars flag, preserving literal curly braces by
default.
2024-12-10 18:49:18 +11:00
github-actions[bot]
2d8b46b878 Update version to v1.4.119 and commit 2024-12-07 11:24:51 +00:00
Matt Joyce
09fb913279 Fix #1169: Add robust handling for paths and symlinks in GetAbsolutePath 2024-12-07 19:04:39 +11:00
jaredmontoya
455215290f add model context length setting 2024-10-30 15:36:01 +01:00
Eugen Eisler
9c9897706b feat: impl. multi-model / attachments, images 2024-10-29 22:03:47 +01:00
Eugen Eisler
a6d82e0fc3 feat: impl. multi-model / attachments, images 2024-10-29 21:54:16 +01:00
Eugen Eisler
dff094301a feat: impl. multi-model / attachments, images 2024-10-29 21:31:02 +01:00
Eugen Eisler
69aefc16f6 feat: impl. multi-model / attachments, images 2024-10-29 20:38:15 +01:00
Eugen Eisler
0a2ae30034 feat: impl. multi-model / attachments, images 2024-10-29 20:32:18 +01:00
Eugen Eisler
609df943dd feat: plugins arch., new setup procedure 2024-10-19 13:09:58 +02:00
Eugen Eisler
61f66f88e3 feat: plugins arch., new setup procedure 2024-10-19 13:09:37 +02:00
Eugen Eisler
4fb965ec9d feat: Add 'meta' role to store meta info to session, like source of input content. 2024-10-05 17:33:27 +02:00
Eugen Eisler
dd83d7faca fix: #997 use setting env value over default values 2024-09-26 19:37:36 +02:00
Riccardo Zanella
a619c915e1 adding flag for pinning seed in openai and compatible APIs 2024-09-20 17:59:35 +02:00
Eugen Eisler
2b79a058de Merge branch 'main' into specify_language_return 2024-09-19 22:31:51 +02:00
Eugen Eisler
147da29c1a feat: use -r, --raw: Use defaults of model (don't send temperature etc.) and use the user role instead of the system role. 2024-09-15 20:38:19 +02:00
Eugen Eisler
329c843567 feat: implement -u, --user-instead-of-system: Use the user role instead of the system role for the pattern. It is needed for Open AI o1 models for now. 2024-09-15 15:09:45 +02:00
csquarechen
b96415d445 feat: add cmd -g to select the language would reply 2024-09-13 16:41:54 +08:00
Eugen Eisler
d6552f5811 feat: add support for pattern variables 2024-09-03 15:13:03 +02:00
Eugen Eisler
58c9af6aac test: core 2024-08-22 23:20:27 +02:00
Eugen Eisler
4b3afb3c8e feat: simplify setup logic 2024-08-22 21:45:36 +02:00
Eugen Eisler
6996278c8f test: implement test for common package 2024-08-22 21:00:18 +02:00
Eugen Eisler
4d77ed30e9 test: implement test for common package 2024-08-22 20:57:49 +02:00
Jonathan Dunn
7399d84446 initial 2024-08-16 15:43:27 -04:00