177 Commits

Author SHA1 Message Date
Re-bin
9bd051f744 Merge PR #17: add voice transcription support with groq 2026-02-03 06:37:08 +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
tlguszz1010
1af404c4d9 docs: update news date from 2025 to 2026 2026-02-03 14:08:36 +09:00
popcell
8cde0b3072 fix: correct API key environment variable for vLLM mode 2026-02-03 12:14:14 +08: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
bad935d871
Merge pull request #1 from kiplangatkorir/tool-schema-validation
Validate tool params and add tests
2026-02-02 21:02:02 +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
Xubin Ren
073a176d24
Merge pull request #14 from pve/uv-install
feat: Add uv as install method
2026-02-02 21:35:36 +08: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
ac279b2df3 Merge branch 'pr-12' 2026-02-02 13:29:47 +00:00
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
884690e3c7 docs: update README to include limitations of current implementation
- Added section outlining current limitations such as global allowlist, lack of per-guild/channel rules, and restrictions on outbound message types.
2026-02-02 18:53:47 +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
Re-bin
8c759b25ed Merge branch 'pr-11' 2026-02-02 13:10:04 +00:00
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
2a26eb0c77 Merge branch 'pr-9' 2026-02-02 13:01:26 +00:00
Re-bin
a0950cf6b7 resolve conflicts: keep both Gemini and Zhipu support 2026-02-02 13:00:24 +00:00
Re-bin
10f7cf07d9 add contributor list 2026-02-02 12:52:05 +00:00
Re-bin
72c9aaba98 Merge branch 'pr-15' 2026-02-02 12:33:05 +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
Peter van Eijk
ae1830acdd feat: change default command to status 2026-02-02 16:36:22 +07:00
Manus AI
42f62c0c1a feat: add voice transcription support with groq (fixes #13) 2026-02-02 04:33:26 -05:00
Manus AI
eaf494ea31 docs: add uv installation instructions (fixes #5) 2026-02-02 04:30:15 -05:00
Manus
64a97c3dd9 Merge PR #3 resolution and fix issue #10 2026-02-02 04:24:18 -05:00
Manus
f61e7a5968 feat: improve tool execution logging (fix #10) 2026-02-02 04:24:14 -05:00
Manus
4f01e3ab93 Resolve merge conflicts in PR #3 2026-02-02 04:23:02 -05:00
Claude
7fced16e4c
docs: add Docker build/run instructions to README
https://claude.ai/code/session_011C1h1NERqqZp4ht3Pqpwkc
2026-02-02 09:22:13 +00:00
Claude
f7e8e73c54
fix: add git to Dockerfile for npm bridge dependency install
A bridge npm dependency requires git to be present at install time.

https://claude.ai/code/session_011C1h1NERqqZp4ht3Pqpwkc
2026-02-02 09:17:24 +00:00
Claude
fa25856d8c
fix: create stub bridge/ dir in dependency caching layer
Hatchling's force-include requires bridge/ to exist at build time.
The dependency caching step now stubs both nanobot/ and bridge/.

https://claude.ai/code/session_011C1h1NERqqZp4ht3Pqpwkc
2026-02-02 09:07:23 +00:00
Claude
6df4a56586
test: add script to verify Dockerfile builds and nanobot status works
Builds the image, runs onboard + status inside the container, and validates
that the expected output fields (Config, Workspace, Model, API keys) are present.

https://claude.ai/code/session_011C1h1NERqqZp4ht3Pqpwkc
2026-02-02 08:59:57 +00:00
Claude
20227f1f04
feat: add Dockerfile with uv-based installation
Add a Dockerfile using the official uv Python image (python3.12-bookworm-slim)
for fast dependency installation. Includes Node.js 20 for the WhatsApp bridge,
dependency layer caching, and exposes the gateway port (18790).

https://claude.ai/code/session_011C1h1NERqqZp4ht3Pqpwkc
2026-02-02 08:55:21 +00:00
Peter van Eijk
b7be3a6f9a Add uv as install method 2026-02-02 15:26:17 +07:00
Yitong Li
f4b081b83f feat: add vision support for image recognition in Telegram 2026-02-02 15:32:12 +08:00
Xubin Ren
229fde021a
Merge pull request #8 from Neutralmilkzzz/fix-port-conflict
Change default gateway port to 18790
2026-02-02 14:16:01 +08:00
Anunay Aatipamula
1865ecda8f Merge branch 'main' of github.com:HKUDS/nanobot 2026-02-02 11:31:38 +05:30
Anunay Aatipamula
ab45185ed8 feat: add Gemini provider support
- Update configuration schema to include Gemini provider
- Modify API key retrieval priority to include Gemini
- Enhance CLI status command to display Gemini API status
- Update LiteLLMProvider to support Gemini integration
2026-02-02 11:21:41 +05:30
Neutral Milk
c400786b17 chore: change default gateway port to 18790 to avoid conflict with OpenClaw 2026-02-02 13:35:44 +08:00
chaohuang-ai
4ba8cc0f8f
Update README.md 2026-02-02 12:59:36 +08:00