summaryrefslogtreecommitdiff
path: root/README.md
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.