fix(sshout): remove reply length truncation to preserve full responses

Remove the default 200-character limit on SSHOUT replies to allow full
response content without truncation. This ensures users receive complete
answers instead of artificially shortened messages.

Changes:
- Set max_reply_length to 0 (unlimited) in both default.toml and production.toml
- Update truncation logic to only apply when max_reply_length > 0
- Modify api_client.py and integration.py response cleaning functions
- Add system prompt instruction to avoid @-prefixing user replies
- Update test_response_length_limit to verify both unlimited and limited behaviors

The truncation feature is still available by setting max_reply_length > 0
in configuration, but defaults to unlimited for better user experience.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
5 files changed
tree: c6bd841a2a23c901036126f1388f386da73b12b1
  1. .coveragerc
  2. .gitignore
  3. CLAUDE.md
  4. DIRECTORY_STRUCTURE.md
  5. FINAL_DELIVERY_REPORT.md
  6. PROJECT_REPORT.md
  7. README.md
  8. configs/
  9. coverage.json
  10. docs/
  11. pyproject.toml
  12. references/sshout/
  13. requirements.txt
  14. scripts/
  15. src/claude_agent/
  16. tests/
README.md

Claude Agent - 增强版智能命令行助手

基于ClaudeCodeSDK的功能丰富智能命令行Agent,支持增强CLI交互、SSHOUT聊天室集成和YOLO自主思考模式。

🚀 主要特性

  • 增强CLI界面: 行编辑、历史翻查、命令补全 (基于prompt_toolkit)
  • SSHOUT集成: 自动连接聊天室并响应@Claude提及
  • YOLO思考模式: 多步骤自主思考和问题解决,可视化思考过程
  • MCP工具支持: 可扩展的工具集成框架
  • 智能上下文处理: 基于历史消息的智能回复
  • 异步架构: 高性能并发处理

📁 项目结构

claude-agent/
├── src/claude_agent/          # 源代码
│   ├── core/                  # 核心功能
│   │   └── agent.py          # Agent核心逻辑
│   ├── cli/                   # 命令行界面
│   │   ├── interface.py      # 基础CLI
│   │   └── enhanced_interface.py  # 增强CLI
│   ├── sshout/               # SSHOUT集成
│   │   └── integration.py    # 聊天室集成
│   ├── mcp/                  # MCP工具支持
│   │   ├── integration.py    # MCP集成
│   │   └── tool_manager.py   # 工具管理
│   └── utils/                # 工具函数
│       └── helpers.py        # 辅助工具
├── tests/                    # 测试套件 (55个单元测试 + 12个黑盒测试)
│   ├── unit/test_*/          # 单元测试 (按模块组织)
│   ├── integration/          # 集成测试
│   ├── blackbox/             # 端到端测试
│   └── fixtures/             # 测试数据
├── docs/                     # 项目文档
│   ├── ENHANCED_FEATURES_REPORT.md
│   ├── COMPREHENSIVE_TEST_REPORT.md
│   └── MCP_SUPPORT.md
├── scripts/                  # 启动脚本
│   ├── main.py              # 基础版本
│   └── main_enhanced.py     # 增强版本
├── configs/                  # 配置文件
├── assets/ssh-keys/         # SSH密钥文件
└── pyproject.toml           # 项目配置

🛠️ 快速开始

1. 环境配置

# Python 3.9+ 环境
source venv/bin/activate
pip install -r requirements.txt

2. API密钥配置

# 设置环境变量
export ANTHROPIC_API_KEY="your_api_key_here"

3. 基础使用

# 增强版CLI (推荐)
python scripts/main_enhanced.py

# YOLO自主模式 + 可视化思考过程
python scripts/main_enhanced.py --mode yolo

# 自动连接SSHOUT聊天室
python scripts/main_enhanced.py --sshout

# 组合使用
python scripts/main_enhanced.py --mode yolo --sshout

✨ 核心功能详解

1. 增强CLI交互

  • 行编辑支持: ↑/↓ 键历史导航,Tab键命令补全
  • 快捷键: Ctrl+C中断,Ctrl+D退出
  • 美观界面: Rich库驱动的彩色终端输出
  • 实时状态: 连接状态、思考进度可视化

2. SSHOUT聊天室集成

  • SSH连接: ECDSA密钥安全认证
  • 实时监听: 异步消息监听和处理
  • @Claude检测: 支持7种不同的提及格式
  • 智能回复: 基于上下文的自然语言回复
  • 消息清理: 自动清理Markdown格式,适配聊天环境

3. YOLO思考模式

  • 多阶段思考: 8-10个详细思考步骤
  • 实时显示: emoji指示器显示当前思考状态
  • 任务分解: 复杂问题自动分解和规划
  • 进度跟踪: 实时进度条和状态更新

4. MCP工具集成

  • 动态加载: 自动发现和加载MCP工具
  • 工具调用: 无缝集成外部工具能力
  • 结果处理: 智能处理工具返回结果

🧪 测试体系

运行测试

# 完整测试套件
python tests/run_tests.py

# 单元测试 (100%通过率)
pytest tests/unit/ -v

# 黑盒测试
pytest tests/blackbox/ -v

测试覆盖

  • 55个单元测试: 100%通过率,覆盖所有核心功能
  • 12个黑盒测试: 端到端功能验证
  • 边界条件: 异常处理、网络中断等
  • 并发安全: 异步操作测试

📊 使用示例

SSHOUT聊天室命令

# CLI中的SSHOUT命令
> sshout connect     # 连接聊天室
> sshout status      # 查看连接状态
> sshout send 消息   # 发送消息
> sshout disconnect  # 断开连接

CLI增强功能

# 在CLI中使用
> help              # 显示帮助
> status            # 显示系统状态
> history           # 查看历史记录
> mode              # 切换思考模式
> tools             # 显示可用工具

🔧 配置说明

SSHOUT配置

sshout_config = {
    'hostname': 'tianjin1.rivoreo.one',
    'port': 22333,
    'username': 'sshout',
    'key_path': 'assets/ssh-keys/id_ecdsa_sshout_test'
}

支持的@Claude格式

  • @Claude@claude@CLAUDE
  • Claude:claude:
  • 和其他变体格式

📈 性能特性

  • 异步处理: 非阻塞I/O,高并发能力
  • 内存优化: 消息历史限制,自动清理
  • 连接管理: 自动重连,错误恢复
  • 响应速度: 优化的消息解析和处理

🛡️ 安全特性

  • SSH密钥认证: ECDSA私钥安全连接
  • 输入过滤: 防止恶意输入注入
  • 权限控制: 最小权限原则
  • 错误隔离: 完善的异常处理

📚 文档

🤝 开发贡献

代码质量

# 格式化代码
black src/ tests/
isort src/ tests/

# 类型检查
mypy src/

测试开发

# 添加新的单元测试
# tests/unit/test_[module]/test_[feature].py

# 运行特定测试
pytest tests/unit/test_sshout/ -v

📄 许可证

MIT License - 详见 LICENSE 文件

🎯 路线图

  • [x] 基础CLI功能
  • [x] SSHOUT集成
  • [x] 增强CLI交互
  • [x] 完整测试覆盖
  • [ ] 配置文件支持
  • [ ] 插件系统
  • [ ] Web界面

当前版本: v2.0.0 (增强版) 测试状态: ✅ 55/55 单元测试通过 功能状态: 🚀 生产就绪