blob: 8797919839fe3f23dc4b8c933ad181d35aca9ac9 (
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
|
# panto-copilot
GitHub Copilot 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-copilot"]
[auth.copilot]
panto_copilot_extension = true
[providers.copilot]
auth = "copilot"
panto_copilot_extension = true
```
```sh
panto auth login copilot
panto models sync
panto models list copilot:
```
## Defaults
| Setting | Value |
| --- | --- |
| Auth | GitHub device OAuth, then Copilot token exchange; panto owns credentials/refresh |
| APIs | Responses (default), Chat Completions, Anthropic Messages |
| Endpoint | `https://api.individual.githubcopilot.com`; exchange may supply the account endpoint |
| Catalog | `github-copilot` |
| Identity | Copilot Chat `0.35.0`, VS Code `1.107.0`; all headers are overridable |
## Rules
- Only `panto_copilot_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-copilot-scm-1.rockspec
```
The rockspec maps `require("panto-copilot")` to `init.lua`; no dependencies
beyond Lua.
## References
- [GitHub device authorization](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps#device-flow)
- Defaults match the existing panto Copilot configuration; identity versions are not auto-updated.
|