Files
go-llm/v2/CLAUDE.md
Steve Dudenhoeffer 23c9068022
All checks were successful
CI / V2 Module (push) Successful in 11m46s
CI / Root Module (push) Successful in 11m50s
CI / Lint (push) Successful in 9m28s
Add sandbox package for isolated Linux containers via Proxmox LXC
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>
2026-02-08 00:47:45 -05:00

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: camelCase for unexported, PascalCase for 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 implement
  • openai/, anthropic/, google/ — Provider implementations
  • tools/ — Ready-to-use sample tools (WebSearch, Browser, Exec, ReadFile, WriteFile, HTTP)
  • sandbox/ — Isolated Linux container environments via Proxmox LXC + SSH
  • internal/schema/ — JSON Schema generation from Go structs
  • internal/imageutil/ — Image compression utilities

Key Design Decisions

  1. Unified Message type instead of marker interfaces
  2. map[string]any JSON Schema (no provider coupling)
  3. Tool functions return (string, error), use standard context.Context
  4. Chat.Send() auto-loops tool calls; Chat.SendRaw() for manual control
  5. MCP one-call connect: MCPStdioServer(ctx, cmd, args...)
  6. Streaming via pull-based StreamReader.Next()
  7. Middleware for logging, retry, timeout, usage tracking