Files
Steve Dudenhoeffer 3e81fbd540
CI / Tidy (push) Successful in 9m39s
CI / Build & Test (push) Successful in 10m21s
docs: public-readiness — vibe-coded disclosure + genericize internal hosts
- README + CLAUDE.md: upfront "this is a vibe-coded project" disclosure for
  going public.
- Replace internal LAN hostnames (*.orgrimmar.dudenhoeffer.casa) with
  example.com across README, ADR-0004, the envproviders example, and env_test.go
  (assertions updated together; suite still green). Token was already a
  "change-me" placeholder, not a real secret.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 19:25:58 -04:00

43 lines
1.3 KiB
Go

// Command envproviders demonstrates LLM_* env-DSN provider definitions
// (go-llm parity): named providers built entirely from the environment,
// first-class in Parse, chains, and tiers.
//
// export LLM_M1=foreman://test-token-change-me@foreman-m1.example.com
// export LLM_M5=foreman://test-token-change-me@foreman-m5.example.com
// go run ./examples/envproviders
package main
import (
"context"
"flag"
"fmt"
"log"
"os"
"gitea.stevedudenhoeffer.com/steve/majordomo"
)
func main() {
spec := flag.String("model", "m5/qwen3:30b,m1/qwen3:30b,thinking", "spec mixing env providers, built-ins, and aliases")
flag.Parse()
if os.Getenv("LLM_M1") == "" && os.Getenv("LLM_M5") == "" {
log.Println("note: no LLM_M1/LLM_M5 set — set foreman DSNs to run this against real daemons")
}
reg := majordomo.New() // eagerly loads every LLM_* var; unknown names also resolve lazily
reg.RegisterAlias("thinking", "ollama-cloud/minimax-m3:cloud")
m, err := reg.Parse(*spec)
if err != nil {
log.Fatalf("parse %q: %v", *spec, err)
}
resp, err := m.Generate(context.Background(), majordomo.Request{
Messages: []majordomo.Message{majordomo.UserText("Which machine are you running on? One sentence.")},
})
if err != nil {
log.Fatalf("generate: %v", err)
}
fmt.Printf("[%s] %s\n", resp.Model, resp.Text())
}