Commit Graph

376 Commits

Author SHA1 Message Date
X-iZhang 53699f9a4e fix: extend ccproxy health check timeout from 10 to 30 seconds 2026-03-17 22:51:02 +00:00
Wiktor Cupiał d5e50a690e fix: add config option for ccproxy port number (#52)
* fix: add config option for ccproxy port number

* feat: add user prompt for ccproxy port configuration and validation
fix: update is_ccproxy_running to use health check endpoint
test: enhance tests for ccproxy port handling and validation

* fix: streamline ccproxy installation process using _install_pip_package

* fix: auto-patch ccproxy adapter for correct OAuth beta header

---------

Co-authored-by: Xi Zhang <106144707+X-iZhang@users.noreply.github.com>
Co-authored-by: X-iZhang <zacharyzhang2022@gmail.com>
2026-03-17 22:27:20 +00:00
dinos 97684eab7b fix: centralize dotenv loading inside get_effective_config (#45) (#50)
load_dotenv was called in three scattered places: commands.py (main and
serve entry points) and search.py (at module import time). This could
re-override env vars after config resolution.

I moved the single load_dotenv call into get_effective_config() so it
participates in the config priority chain, and removed it from all
other call sites.
2026-03-17 13:13:28 +00:00
dinos 2f855c07c7 feat: add /install-skills command with tag-based skill browsing (#48)
* feat: add tag support to skill metadata parser

- Add `tags` field to `SkillInfo` dataclass
- Extend `_parse_skill_md` to return `SkillInfo` directly (instead of
  dict), extracting tags from top-level `tags` or `metadata.tags`
fallback
- Accept `source` as keyword argument in `_parse_skill_md` to avoid
  post-hoc mutation
- Add `_normalize_tags` helper (handles list, comma-string, missing)
- Add `list_skills_by_tag()` for filtering installed skills by tag
- Add `get_all_tags()` returning tags sorted by count then
alphabetically
- Add `fetch_remote_skill_index()` with shallow-clone and 10-min cache
- Add 12 new tests covering tag parsing, filtering, and remote index

* feat: add /install-skills command and browse action to skill_manager tool

CLI:
- Add `/install-skills` slash command with interactive tag picker and
  skill checkbox (questionary-based, for CLI mode)
- Accepts optional tag argument for pre-filtering: `/install-skills
core`
- Update `/skills` listing to show tags per skill
- Register command in interactive.py dispatch

LangChain tool:
- Add `browse` action to `skill_manager` tool with optional `tag` filter
- Update `list` and `info` actions to include tags in output

* feat: add interactive skill browser widget for TUI

New widget (skill_browser.py):
- Two-phase keyboard-driven widget mounted inline in chat
- Phase 1: tag picker (arrow keys + Enter, Esc to cancel)
- Phase 2: skill checkbox (Space to toggle, Enter to install, Esc back)
- Width-aware description truncation with ellipsis
- Installed skills shown as non-toggleable with checkmark

TUI integration (tui_interactive.py):
- Register /install-skills command with async widget flow
- Echo executed commands in cyan before output
- Add SkillBrowserWidget keyboard delegation (up/down/esc)
- Refocus prompt input after any widget dismissal (also fixes
  pre-existing /resume and /delete focus bug)
- Show tags as bulleted newlines in /skills table
- Dynamic autocomplete padding based on longest item
2026-03-17 12:04:23 +00:00
MuXinCG d3e877c845 chore: add models 2026-03-17 10:42:38 +01:00
Xi Zhang 973edb6aa4 fix: update system prompt to include today's date and refactor related functions (#43) 2026-03-17 02:42:04 +00:00
X-iZhang 859a0aabbb fix: update asset URLs in README and README.zh-CN to use raw GitHub links 2026-03-17 01:04:40 +00:00
X-iZhang 1dac00c262 fix: correct typo in OAuth sign-in description in README.md 2026-03-16 20:26:32 +00:00
Xi Zhang e515f69bdc Fix/onboard oauth ux (#38)
* "fix(onboard): guide ccproxy install and auth in OAuth flow

  - Always show API Key / OAuth choice; prompt to install evoscientist[oauth]
    when ccproxy missing (mirrors iMessage imsg install UX)
  - Add _ccproxy_exe() helper: checks PATH then env bin dir (fixes conda envs
    where shutil.which may not find newly installed binaries)
  - Fix check_ccproxy_auth() false positive: ccproxy auth status exits 0 even
    when not authenticated; detect via output content + filter structlog noise
  - Silent install/login subprocesses; show browser URL as fallback
  - Reset anthropic/openai auth_mode to api_key when switching to non-Anthropic/
    OpenAI provider, preventing stale oauth config from triggering ccproxy error

  Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>"

* fix(onboard): update OAuth support details in README and zh-CN translation
2026-03-16 20:22:20 +00:00
Ziheng Zhang 4b648b3413 chore: add models (#30)
Co-authored-by: Xi Zhang <106144707+X-iZhang@users.noreply.github.com>
2026-03-16 17:40:03 +00:00
Xi Zhang 6408ccb6db feat: add glm-5-turbo model entries for OpenRouter and Zhipu (#37) 2026-03-16 17:30:37 +00:00
dinos 0303c6d43d Add contribution templates and --version CLI flag (#36)
* feat(cli): add --version / -V flag

Uses importlib.metadata to read the version from the installed package.

* chore: improve bug report and feature request issue templates

- Bug report: replace web-app steps with CLI-oriented examples, add
  error output section, add Python version and LLM provider fields
- Feature request: add note directing niche features to EvoSkills,
  set default label

* chore: add documentation issue template and issue chooser config

- Add documentation template for reporting missing or unclear docs
- Add config.yml to disable blank issues and link to EvoSkills and
  Discord as contact options

* chore: add PR template and improve CONTRIBUTING.md

- Add PR template with type-of-change checkboxes, issue linking for
  new features, and CI checklist
- CONTRIBUTING.md: add development setup, PR workflow, and code style
  sections; fix wording; make Discord link clickable
2026-03-16 15:50:19 +00:00
Jan Piotrowski dd81a69585 chore: update CONTRIBUTING.md 2026-03-16 15:40:36 +01:00
Jan Piotrowski 55fb99f0f4 chore: update Issue templates 2026-03-16 15:30:50 +01:00
Jan Piotrowski c542e6403e chore(README): add community discord invite link 2026-03-16 13:52:19 +01:00
X-iZhang 79b572cdae Refactor code structure for improved readability and maintainability 2026-03-16 11:46:41 +00:00
X-iZhang 28ad1f0106 feat: update PyPI badge version to v0.0.2 in README files and SVG assets 2026-03-16 00:45:42 +00:00
X-iZhang 0fe30de92d Refactor code structure for improved readability and maintainability 2026-03-16 00:43:35 +00:00
X-iZhang ccaa3113d2 feat: update provider choices in onboarding wizard to include API/OAuth details 2026-03-16 00:37:25 +00:00
X-iZhang 62fe970476 feat: add OpenAI support with OAuth and environment configuration 2026-03-16 00:25:19 +00:00
X-iZhang ab709d4ec0 feat: update .gitignore to include environment variable files while excluding example 2026-03-15 21:35:03 +00:00
X-iZhang cc29229f35 feat: add community contributors section to README files 2026-03-15 21:31:28 +00:00
X-iZhang c5a4d559a2 Refactor test cases for improved readability and consistency
- Added blank lines for better separation of test cases in multiple test files.
- Reformatted event handling in tests for clarity and consistency.
- Ensured consistent use of multi-line formatting for dictionary arguments in event handling.
- Improved assertions and test descriptions for better understanding.
- Updated test cases across various modules including test_stream_state, test_stream_utils, test_summarization, test_thread_selector, test_tool_error_handler, test_tui_widgets, test_ui_runtime, and test_wechat_channel.
2026-03-15 21:12:51 +00:00
X-iZhang f27521d62b feat: enhance thinking configuration for Anthropic 4-5 models with proxy support 2026-03-15 17:11:00 +00:00
X-iZhang 1ce2d059ca feat: implement OAuth support for Anthropic using ccproxy and add related configuration options 2026-03-15 16:52:11 +00:00
Jiao Huifeng 741eb709b9 feat: support ANTHROPIC_BASE_URL for proxy-based deployments (e.g. ccproxy) (#25)
Allow the Anthropic provider to accept a base_url override via the
ANTHROPIC_BASE_URL environment variable or anthropic_base_url config
field. This enables routing Anthropic API requests through local proxies
like ccproxy without losing provider-specific features (extended
thinking, adaptive effort) that would be dropped when using the generic
"custom" provider.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Xi Zhang <106144707+X-iZhang@users.noreply.github.com>
2026-03-15 14:51:31 +00:00
X-iZhang 174c6044a7 update 2026-03-15 13:26:56 +00:00
X-iZhang b5a3f6de90 update 2026-03-15 10:37:13 +00:00
X-iZhang a792615340 update 2026-03-15 10:30:31 +00:00
X-iZhang 70a5f99c13 update 2026-03-15 10:23:37 +00:00
X-iZhang 7be3a90c09 update 2026-03-15 10:20:15 +00:00
X-iZhang d31ee86e79 update 2026-03-15 10:16:12 +00:00
X-iZhang fb158f2ce7 update 2026-03-15 10:08:41 +00:00
X-iZhang 21a875e026 feat: add /compact command to summarize conversation and free context 2026-03-14 20:09:38 +00:00
X-iZhang 46a1de9dd6 refactor: enhance summarization widget with streaming support and text accumulation 2026-03-14 19:41:27 +00:00
X-iZhang 1bcc38ea16 refactor: enhance pip installation process with improved command handling 2026-03-14 16:56:35 +00:00
Xi Zhang 27f8de5ad2 Refactor code structure for improved readability and maintainability 2026-03-14 16:18:33 +00:00
Ziheng Zhang bfecfe0afc chore: add timeout (#24) 2026-03-14 11:16:59 +00:00
X-iZhang 4b25816ae0 refactor: add optional development dependencies for testing and building 2026-03-14 10:51:01 +00:00
X-iZhang 438bcb82e1 update 2026-03-13 19:59:11 +00:00
X-iZhang 3f23ac3657 update 2026-03-13 19:50:48 +00:00
X-iZhang 4cbb19defc refactor: update recommended skills list by removing duplicates and adding new entries 2026-03-13 16:33:20 +00:00
X-iZhang 0e6fe8532d update 2026-03-13 15:42:57 +00:00
X-iZhang f4bdc85dfc update 2026-03-13 15:39:58 +00:00
X-iZhang a6186a67b8 update 2026-03-13 15:28:36 +00:00
X-iZhang fb92972ce5 update 2026-03-13 14:22:15 +00:00
X-iZhang 534a7cea06 update 2026-03-13 14:15:52 +00:00
X-iZhang 6f927daa89 update 2026-03-13 14:06:20 +00:00
X-iZhang 483ace6df0 update 2026-03-13 14:02:44 +00:00
X-iZhang a635699539 update 2026-03-13 14:00:16 +00:00