From 27e37c62bc1483c0489d6db01344906472a1f8d3 Mon Sep 17 00:00:00 2001 From: t Date: Thu, 11 Jun 2026 11:15:40 -0600 Subject: libpanto-go some libpanto-c coverage expansion was needed --- libpanto-go/README.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 libpanto-go/README.md (limited to 'libpanto-go/README.md') diff --git a/libpanto-go/README.md b/libpanto-go/README.md new file mode 100644 index 0000000..a19e788 --- /dev/null +++ b/libpanto-go/README.md @@ -0,0 +1,48 @@ +# libpanto-go + +Idiomatic Go bindings for `libpanto-c` via cgo. + +## Build + +Build the C ABI first: + +```sh +cd ../libpanto-c +zig build +``` + +Then use the Go package from this directory: + +```sh +go test ./... +``` + +At runtime, make sure `../libpanto-c/zig-out/lib` (or the installed equivalent) is on your platform's dynamic library path. + +## Example + +```go +panto.Init() +defer panto.Deinit() + +agent, err := panto.NewAgent(panto.Config{ + Provider: panto.ProviderConfig{ + OpenAIChat: &panto.OpenAIChatConfig{ + APIKey: os.Getenv("OPENAI_API_KEY"), + BaseURL: "https://api.openai.com/v1", + Model: "gpt-4.1-mini", + }, + }, +}) +if err != nil { /* handle */ } +defer agent.Close() + +stream, err := agent.Run("hello") +if err != nil { /* handle */ } +defer stream.Close() + +for ev := range stream.Iter() { + // ev.Tag identifies the active payload. +} +if err := stream.Err(); err != nil { /* handle */ } +``` -- cgit v1.3