Provides a complete lifecycle manager for ephemeral sandbox environments: - ProxmoxClient: thin REST wrapper for container CRUD, IP discovery, internet toggle - SSHExecutor: persistent SSH/SFTP for command execution and file transfer - Manager/Sandbox: high-level orchestrator tying Proxmox + SSH together - 22 unit tests with mock Proxmox HTTP server - Proxmox setup & hardening guide (docs/sandbox-setup.md) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.5 KiB
1.5 KiB
CLAUDE.md for go-llm v2
Build and Test Commands
- Build project:
cd v2 && go build ./... - Run all tests:
cd v2 && go test ./... - Run specific test:
cd v2 && go test -v -run <TestName> ./... - Tidy dependencies:
cd v2 && go mod tidy - Vet:
cd v2 && go vet ./...
Code Style Guidelines
- Indentation: Standard Go tabs
- Naming:
camelCasefor unexported,PascalCasefor exported - Error Handling: Always check and handle errors immediately. Wrap with
fmt.Errorf("%w: ...", err) - Imports: Standard library first, then third-party, then internal packages
Package Structure
- Root package
llm— public API (Client, Model, Chat, ToolBox, Message types) provider/— Provider interface that backends implementopenai/,anthropic/,google/— Provider implementationstools/— Ready-to-use sample tools (WebSearch, Browser, Exec, ReadFile, WriteFile, HTTP)sandbox/— Isolated Linux container environments via Proxmox LXC + SSHinternal/schema/— JSON Schema generation from Go structsinternal/imageutil/— Image compression utilities
Key Design Decisions
- Unified
Messagetype instead of marker interfaces map[string]anyJSON Schema (no provider coupling)- Tool functions return
(string, error), use standardcontext.Context Chat.Send()auto-loops tool calls;Chat.SendRaw()for manual control- MCP one-call connect:
MCPStdioServer(ctx, cmd, args...) - Streaming via pull-based
StreamReader.Next() - Middleware for logging, retry, timeout, usage tracking