From d837f7a3357f2de2cd480aed418017471d319da5 Mon Sep 17 00:00:00 2001 From: t Date: Fri, 16 Oct 2026 20:13:59 -0600 Subject: initial commit; basically working --- README.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 README.md (limited to 'README.md') diff --git a/README.md b/README.md new file mode 100644 index 0000000..8797919 --- /dev/null +++ b/README.md @@ -0,0 +1,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..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. -- cgit v1.3