blob: d36bd73e99f14a4add13e623370e9d17d14f898b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# panto-opencode-go
OpenCode Go defaults for panto. Mark named tables; the extension fills the boilerplate.
## Setup
Requires panto's `configure(config)` extension hook (before auth/provider validation).
```toml
[extensions]
rocks = ["panto-opencode-go"]
[auth.opencode]
panto_opencode_go_extension = true
[providers.go]
auth = "opencode"
panto_opencode_go_extension = true
```
```sh
export OPENCODE_API_KEY='your-key'
panto models sync
panto models list go:
```
## Defaults
| Setting | Value |
| --- | --- |
| Auth | API key via `${env:OPENCODE_API_KEY}`; no OAuth login |
| APIs | Chat Completions (default), Responses, Anthropic Messages |
| OpenAI endpoint | `https://opencode.ai/zen/go/v1` |
| Anthropic endpoint | `https://opencode.ai/zen/go` |
| Catalog | `opencode-go` |
| Headers | `User-Agent: panto`, `x-opencode-session: ${session:id}` |
## Rules
- Only `panto_opencode_go_extension = true` opts in; auth/provider names are arbitrary.
- Keep `providers.<name>.auth` explicit; the extension never guesses linkage.
- Explicit values win, including nested endpoints and case-insensitive headers.
- Defaults are independent per table/load; no config files are rewritten.
- No network or credentials in Lua; env/session placeholders stay raw for panto.
- Rigs must include this extension themselves; `--no-extensions` skips it.
Existing flat `base_url` configurations stay flat; otherwise all three endpoints
are filled. Overrides must remain valid panto configuration.
## Packaging / checks
```sh
panto lua _selfcheck.lua
luarocks lint panto-opencode-go-scm-1.rockspec
```
The rockspec maps `require("panto-opencode-go")` to `init.lua`; no dependencies
beyond Lua.
## References
- [OpenCode Go](https://opencode.ai/docs/go/)
- Defaults match the existing panto OpenCode Go configuration.
|