Commit Graph

61 Commits

Author SHA1 Message Date
Re-bin
760a369004 feat: fix API key matching by model name 2026-02-06 08:01:20 +00:00
mengjiechen
e680b734b1 feat: add Moonshot provider support
- Add moonshot to ProvidersConfig schema
- Add MOONSHOT_API_BASE environment variable for custom endpoint
- Handle kimi-k2.5 model temperature restriction (must be 1.0)
- Fix is_vllm detection to exclude moonshot provider

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 15:25:58 +08:00
Re-bin
71fc73ecc4 resolve conflicts with main 2026-02-06 07:08:29 +00:00
Re-bin
8a1d7c76d2 refactor: simplify discord channel and improve setup docs 2026-02-06 07:04:10 +00:00
Re-bin
764c6d02a1 refactor: simplify runtime environment info in system prompt 2026-02-06 03:26:39 +00:00
Re-bin
980c5992f4 Merge branch 'main' into pr-107 2026-02-06 03:21:44 +00:00
Re-bin
b1d6670ce0 feat: add cron tool for scheduling reminders and tasks 2026-02-05 15:09:51 +00:00
Re-bin
301fba568b refactor: remove redundant env var setting, add DeepSeek to docs 2026-02-05 08:55:41 +00:00
Re-bin
ac45630116 resolve conflicts with main 2026-02-05 08:51:11 +00:00
Re-bin
50a4c4ca1a refactor: improve feishu channel implementation 2026-02-05 06:01:02 +00:00
Re-bin
1e0f87b356 Merge branch 'main' into pr-84 2026-02-05 05:01:02 +00:00
Devin
d5ee8f3e55 Update context.py
Add doc string.
2026-02-05 10:45:36 +08:00
Shukfan Law
22156d3a40 feat: added runtime environment summary to system prompt 2026-02-04 22:17:35 +08:00
Re-bin
be8772355c fix: correct bridge path for pip-installed package 2026-02-04 09:21:53 +00:00
Xubin Ren
b1bce89d4b Merge pull request #32 from pjperez/main
fix: Use correct 'zai/' prefix for Zhipu AI models in LiteLLM
2026-02-04 17:10:13 +08:00
Re-bin
bf1dc7c0d3 docs: fix incorrect references and add missing tool docs 2026-02-04 06:45:53 +00:00
tao.jun
50fa024ab4 feishu support 2026-02-04 14:07:45 +08:00
Re-bin
9a0f8fcc73 refactor: simplify parameter validation logic 2026-02-04 03:50:39 +00:00
Re-bin
a20d887f9e feat: add parameter validation and safety guard for exec tool 2026-02-04 03:45:26 +00:00
Re-bin
e508f73f54 Merge branch 'main' into pr-30 2026-02-04 03:24:31 +00:00
Re-bin
efb4ddd138 fix: status command now respects workspace from config 2026-02-04 00:49:35 +00:00
Re-bin
a4026a8bf7 Merge branch 'main' into pr-23 2026-02-03 17:21:27 +00:00
Re-bin
1a784fca1e refactor: simplify _validate_url function 2026-02-03 17:13:30 +00:00
Re-bin
1660d7b261 Merge branch 'main' into pr-22 2026-02-03 17:09:37 +00:00
Anunay Aatipamula
7d2bebcfa3 Merge branch 'main' into feat/discord-support 2026-02-03 21:15:15 +05:30
Re-bin
bb2a04d50d Merge PR #26: fix: add Telegram channel to channels status command 2026-02-03 12:29:38 +00:00
Re-bin
254bad8f19 Merge branch 'main' into pr-21 2026-02-03 12:19:26 +00:00
Re-bin
8989adc9ae refactor: use explicit dependency injection for groq_api_key 2026-02-03 06:36:58 +00:00
Re-bin
eb20cea668 resolve conflicts with main 2026-02-03 06:16:17 +00:00
Kyya Wang
f23548f296 feat: add DeepSeek provider support 2026-02-03 03:09:13 +00:00
Pedro Perez
43fe83755d fix: Use correct 'zai/' prefix for Zhipu AI models in LiteLLM
LiteLLM expects the 'zai/' provider prefix for Zhipu AI (Z.ai) models,
not 'zhipu/'. This was causing 'LLM Provider NOT provided' errors when
users configured models like 'glm-4.7' without an explicit prefix.

According to LiteLLM docs, the correct format is:
- model='zai/glm-4.7' (correct)
- NOT model='zhipu/glm-4.7' (incorrect)

This fix ensures auto-prefixed models use the correct 'zai/' format.

Fixes: Error when using Zhipu AI models with shorthand names like 'glm-4.7'
2026-02-02 22:15:21 +01:00
Kiplangatkorir
00841309c1 Harden exec tool with safety guard 2026-02-02 21:14:29 +03:00
Kiplangat Korir
9b09cb5c63 Update nanobot/agent/tools/base.py
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2026-02-02 20:52:30 +03:00
Kiplangatkorir
7ef18c4e8a Validate tool params and add tests 2026-02-02 20:39:08 +03:00
Cheng Wang
cd20252072 fix: status command now respects workspace from config
The status command was ignoring the workspace setting from the
configuration file and always displaying the default path
(~/.nanobot/workspace). This fix loads the config first and uses
config.workspace_path when available, falling back to the default
only when no config exists.

This brings the status command in line with other commands that
correctly use config.workspace_path.
2026-02-03 00:45:52 +08:00
Cheng Wang
2466d9e1dc fix: add Telegram channel to channels status command
Previously, the `nanobot channels status` command only displayed
WhatsApp channel status, completely omitting Telegram despite it
being fully implemented in the codebase.

Changes:
- Added Telegram channel status display
- Renamed "Bridge URL" column to "Configuration" for better generality
- Show Telegram token (first 10 chars) or "not configured" message
- Added comments to distinguish WhatsApp and Telegram sections

Fixes the issue where users couldn't see Telegram channel status
via CLI, even though the feature was working correctly.
2026-02-03 00:37:55 +08:00
Re-bin
30d6e4b4b6 feat: enhance scheduled reminders 2026-02-02 16:18:04 +00:00
Anunay Aatipamula
bab464df5f feat(discord): implement typing indicator functionality
- Add methods to manage typing indicators in Discord channels.
- Introduce periodic typing notifications while sending messages.
- Ensure proper cleanup of typing tasks on channel closure.
2026-02-02 19:01:46 +05:30
Re-bin
ac390253c3 simplify vision support code 2026-02-02 13:29:38 +00:00
Re-bin
7f2c335a76 Merge branch 'main' into pr-12 2026-02-02 13:26:04 +00:00
Anunay Aatipamula
226cb5b46b Merge branch 'main' into feat/discord-support 2026-02-02 18:55:16 +05:30
Anunay Aatipamula
ba6c4b748f feat(discord): add Discord channel support
- Implement Discord channel functionality with websocket integration.
- Update configuration schema to include Discord settings.
- Enhance README with setup instructions for Discord integration.
- Modify channel manager to initialize Discord channel if enabled.
- Update CLI status command to display Discord channel status.
2026-02-02 18:41:17 +05:30
codeLzq
1663acd1a1 feat: enhance sender ID handling in Telegram channel
- Update sender ID construction to prioritize user ID while maintaining username for allowlist compatibility.
- Improve allowlist checking in BaseChannel to support sender IDs with multiple parts separated by '|'.
2026-02-02 13:07:35 +00:00
Re-bin
a0950cf6b7 resolve conflicts: keep both Gemini and Zhipu support 2026-02-02 13:00:24 +00:00
Re-bin
8d834d9b10 restore CLI commands, keep default model 2026-02-02 12:30:56 +00:00
Cheng Wang
3ba0191cef fix: correct heartbeat token matching logic
The HEARTBEAT_OK_TOKEN comparison was broken because the token
itself ("HEARTBEAT_OK" with underscore) was being compared against
a response string that had underscores removed. This made the
condition always fail, preventing the heartbeat service from
recognizing "no tasks" responses.

Now both sides of the comparison remove underscores consistently,
allowing proper matching of the HEARTBEAT_OK token.
2026-02-02 19:47:42 +08:00
Cheng Wang
ea849650ef feat: improve web_fetch URL validation and security
Add URL validation and redirect limits to web_fetch tool to prevent potential security issues:

- Add _validate_url() function to validate URLs before fetching
  - Only allow http:// and https:// schemes (prevent file://, ftp://, etc.)
  - Verify URL has valid scheme and domain
  - Return descriptive error messages for invalid URLs

- Limit HTTP redirects to 5 (down from default 20) to prevent DoS attacks
  - Add MAX_REDIRECTS constant for easy configuration
  - Explicitly configure httpx.AsyncClient with max_redirects parameter

- Improve error handling with JSON error responses for validation failures

This addresses security concerns identified in code review where web_fetch
had no URL validation or redirect limits, potentially allowing:
- Unsafe URL schemes (file://, etc.)
- Redirect-based DoS attacks
- Invalid URL formats causing unclear errors
2026-02-02 19:34:22 +08:00
JunghwanNA
5c49bbc0b2 feat: add Amazon Bedrock support
Skip API key validation for bedrock/ model prefix since AWS Bedrock
uses IAM credentials instead of API keys.

Fixes #20

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 20:31:49 +09:00
Manus AI
42f62c0c1a feat: add voice transcription support with groq (fixes #13) 2026-02-02 04:33:26 -05:00
Manus
f61e7a5968 feat: improve tool execution logging (fix #10) 2026-02-02 04:24:14 -05:00