Skip to content

Commit c3f3528

Browse files
committed
Update Pi configuration and extensions
1 parent 8abbe10 commit c3f3528

16 files changed

Lines changed: 2069 additions & 130 deletions

File tree

config/pi/.backup-manifest.json

Lines changed: 68 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,115 +1,145 @@
11
{
22
"manifestVersion": 1,
3-
"lastBackupAt": "2026-05-20T20:08:02.078Z",
3+
"lastBackupAt": "2026-05-22T11:47:42.931Z",
44
"files": {
55
"agent/settings.example.json": {
6-
"hash": "sha256:35e79dd1a8378a08ad62725a92875ff6eb835f63a5e7b9366293fc195c6a4e4b",
7-
"backedUpAt": "2026-05-20T20:08:01.906Z",
6+
"hash": "sha256:ef784e16583d9f509bdefcd001a374e4933918155a81a22aa44063c9620a7e17",
7+
"backedUpAt": "2026-05-22T11:47:42.667Z",
88
"size": 333
99
},
1010
"agent/extensions/gemini-auto-router/README.md": {
11-
"hash": "sha256:7ff21412eee6be9daed21fb0cf155629f928fa93856afda13eb145a0db7b6ec5",
12-
"backedUpAt": "2026-05-20T20:08:01.907Z",
13-
"size": 1510
11+
"hash": "sha256:9b3141d7f7de490a827255dbb7bd9eb2f1ba9afb5cca4a33ef137eb4fc5ebe73",
12+
"backedUpAt": "2026-05-22T11:47:42.712Z",
13+
"size": 1808
1414
},
1515
"agent/extensions/gemini-auto-router/index.ts": {
16-
"hash": "sha256:82f899a6c33eeac178bfc7660841c15af18c9d928f89b5dab44277886e621e7d",
17-
"backedUpAt": "2026-05-20T20:08:01.928Z",
18-
"size": 18902
16+
"hash": "sha256:a67735ef2af8654c47b07dd9043d144fabfbb63b256f9f3bec04365efd27be4f",
17+
"backedUpAt": "2026-05-22T11:47:42.734Z",
18+
"size": 18760
1919
},
2020
"agent/extensions/gpt-auto-router/README.md": {
2121
"hash": "sha256:dc85df6e7a00da1828855e4b223a82ff1c48bb06499ec13aac285f3c08f93b1b",
22-
"backedUpAt": "2026-05-20T20:08:01.929Z",
22+
"backedUpAt": "2026-05-22T11:47:42.734Z",
2323
"size": 2497
2424
},
2525
"agent/extensions/gpt-auto-router/index.ts": {
2626
"hash": "sha256:d11e3d179ed41061441f2f4941a5095a25391609a113baf8f117c7cb07ab7f10",
27-
"backedUpAt": "2026-05-20T20:08:01.947Z",
27+
"backedUpAt": "2026-05-22T11:47:42.755Z",
2828
"size": 19083
2929
},
3030
"agent/extensions/guardrails.json": {
3131
"hash": "sha256:81a73fc0f872991b72496c9f76c4d6210adb293e38a27a48abba99c846fe6fc6",
32-
"backedUpAt": "2026-05-20T20:08:01.948Z",
32+
"backedUpAt": "2026-05-22T11:47:42.755Z",
3333
"size": 191
3434
},
3535
"agent/extensions/hypr-theme-sync.js": {
3636
"hash": "sha256:576a2dfbf6b9b2a4c209dc5dd57e7afc33c1966aea5a938e633d43251983bd11",
37-
"backedUpAt": "2026-05-20T20:08:01.966Z",
37+
"backedUpAt": "2026-05-22T11:47:42.777Z",
3838
"size": 2412
3939
},
4040
"agent/extensions/list-google-models.js": {
4141
"hash": "sha256:ff8bcfbb01232b0678121f143446943c13332f55da69d53ac74f53d7b243a5cb",
42-
"backedUpAt": "2026-05-20T20:08:01.984Z",
42+
"backedUpAt": "2026-05-22T11:47:42.798Z",
4343
"size": 362
4444
},
4545
"agent/extensions/pi-config-backup/index.ts": {
46-
"hash": "sha256:28024f42d1d295d8bba09f58607f965aff5384cad543d57ffd5e60d3b2906ae4",
46+
"hash": "sha256:29aa0e9b431ebd99fdf38a60e3b97396b4ef73a51be92775d4cb711e58c16a20",
4747
"version": "0.2.0",
48-
"backedUpAt": "2026-05-20T20:08:02.002Z",
49-
"size": 22598
48+
"backedUpAt": "2026-05-22T11:47:42.820Z",
49+
"size": 22849
5050
},
5151
"agent/extensions/pi-harness/README.md": {
52-
"hash": "sha256:cc49d12dc9eae83866bbb6928944cb07179d2ff85ac3f57950755cdfdc5a48ce",
53-
"backedUpAt": "2026-05-20T20:08:02.002Z",
54-
"size": 4018
52+
"hash": "sha256:5d19b370220ff03ee9f70a5c94767ac3fa72069023173bf3ae96a4462a9e8a83",
53+
"backedUpAt": "2026-05-22T11:47:42.820Z",
54+
"size": 5755
5555
},
5656
"agent/extensions/pi-harness/index.ts": {
57-
"hash": "sha256:c51230e93e496e084eb1abf57688d5e1ff7e577111c0b4bc42a53f6f84d81dc1",
58-
"version": "0.4.2",
59-
"backedUpAt": "2026-05-20T20:08:02.022Z",
60-
"size": 64080
57+
"hash": "sha256:00c5b37342d4b8e7d9fc881b610809e1b1ac62536317559e015ed84275620911",
58+
"version": "0.4.3",
59+
"backedUpAt": "2026-05-22T11:47:42.841Z",
60+
"size": 86660
6161
},
6262
"agent/extensions/pi-skill-audit/README.md": {
6363
"hash": "sha256:c22331bbdc547127bc016201e5c212b3c1e9a80ec6e1d5c82187d48b05eb7fe0",
64-
"backedUpAt": "2026-05-20T20:08:02.022Z",
64+
"backedUpAt": "2026-05-22T11:47:42.842Z",
6565
"size": 2935
6666
},
6767
"agent/extensions/pi-skill-audit/index.ts": {
68-
"hash": "sha256:f6c55158f736648f3ccd26d84072343c2157621bd866cd788ea8449eeb44c57e",
68+
"hash": "sha256:551766e0287f732e4875d910ebb8af2c5a21d8b04684e103d009f21294496085",
6969
"version": "0.1.0",
70-
"backedUpAt": "2026-05-20T20:08:02.039Z",
71-
"size": 39754
70+
"backedUpAt": "2026-05-22T11:47:42.863Z",
71+
"size": 39765
7272
},
7373
"agent/extensions/ui-ux-design/index.ts": {
7474
"hash": "sha256:c60890b8943328d6d31ca770ab6d4a33a6413fdedca3fb3ce8842a3ea66cf2c1",
7575
"version": "0.1.0",
76-
"backedUpAt": "2026-05-20T20:08:02.058Z",
76+
"backedUpAt": "2026-05-22T11:47:42.885Z",
7777
"size": 16961
7878
},
7979
"agent/extensions/zai-auto-router/README.md": {
8080
"hash": "sha256:c614efee92f3b9a7f1109817a6826380343c78baabfa8dc416872a0f64851aa5",
81-
"backedUpAt": "2026-05-20T20:08:02.058Z",
81+
"backedUpAt": "2026-05-22T11:47:42.886Z",
8282
"size": 2236
8383
},
8484
"agent/extensions/zai-auto-router/index.ts": {
85-
"hash": "sha256:221f4915f4a61f662d87c43454d96e9b28db159e4abbcf8611222954f7755ecb",
86-
"backedUpAt": "2026-05-20T20:08:02.076Z",
87-
"size": 19717
85+
"hash": "sha256:8f8e45edebb9cdb89ccb18821334c5f67399c306f364f026b93d729cbe8a9cc7",
86+
"backedUpAt": "2026-05-22T11:47:42.906Z",
87+
"size": 19589
8888
},
8989
"agent/skills/frontend-design/.my-pi-source.json": {
9090
"hash": "sha256:a8097d74cf53d599a91e32fc7df33679ba0fb9f8c5d51070505a1c774db162ba",
91-
"backedUpAt": "2026-05-20T20:08:02.076Z",
91+
"backedUpAt": "2026-05-22T11:47:42.907Z",
9292
"size": 676
9393
},
9494
"agent/skills/frontend-design/SKILL.md": {
9595
"hash": "sha256:8bf9905dbcd9b1edb47f2a44cadbb9bb66314f73a8e3631ec7feee913777ceb8",
96-
"backedUpAt": "2026-05-20T20:08:02.076Z",
96+
"backedUpAt": "2026-05-22T11:47:42.907Z",
9797
"size": 4275
9898
},
9999
"agent/themes/tokyonight.json": {
100100
"hash": "sha256:8324200abc602896c7ec77a3530ef4ba78d4aec76444b17d524f0d935a45f7c4",
101-
"backedUpAt": "2026-05-20T20:08:02.077Z",
101+
"backedUpAt": "2026-05-22T11:47:42.930Z",
102102
"size": 2197
103103
},
104104
"agent/themes/wellpunk-dark.json": {
105105
"hash": "sha256:4ae066db19c6807570e7d40a656dea74933d7ad65c8a8c260154fa88d85b668f",
106-
"backedUpAt": "2026-05-20T20:08:02.077Z",
106+
"backedUpAt": "2026-05-22T11:47:42.930Z",
107107
"size": 2178
108108
},
109109
"agent/themes/wellpunk-light.json": {
110110
"hash": "sha256:363ae2f10fef85cb7ad52f8ad8cbe9dfef572c9c47990fa6752c644e1622ce25",
111-
"backedUpAt": "2026-05-20T20:08:02.078Z",
111+
"backedUpAt": "2026-05-22T11:47:42.931Z",
112112
"size": 2135
113+
},
114+
"agent/skills/obsidian-blog-post-review/SKILL.md": {
115+
"hash": "sha256:4798223dcb70691378895e072090cd3df877c4c8ac2974cbdf3069609b61df7e",
116+
"backedUpAt": "2026-05-22T11:47:42.908Z",
117+
"size": 4561
118+
},
119+
"agent/skills/obsidian-blog-post-review/scripts/validate-post.mjs": {
120+
"hash": "sha256:0332a5ff04c595717f73d5c445731fd31ade768ff6db937ff18d832b0a4c3661",
121+
"backedUpAt": "2026-05-22T11:47:42.929Z",
122+
"size": 5716
123+
},
124+
"agent/extensions/copilot-auto-router/README.md": {
125+
"hash": "sha256:e41e1607b7ab4c4671ac81e636fd40deb7fb34a01dc54584c6eb916c1d4cc0ce",
126+
"backedUpAt": "2026-05-22T11:47:42.669Z",
127+
"size": 2344
128+
},
129+
"agent/extensions/copilot-auto-router/index.ts": {
130+
"hash": "sha256:3cf1fd3bd1fbdff34e8f6dbb8ca522eceee77cbdd82275b9dd2cc740910879c7",
131+
"backedUpAt": "2026-05-22T11:47:42.691Z",
132+
"size": 19039
133+
},
134+
"agent/extensions/copilot-context/README.md": {
135+
"hash": "sha256:5ee516bbff6ee07032060adf74bf100ea77bc1afce98319dbbab5b81c40fd644",
136+
"backedUpAt": "2026-05-22T11:47:42.692Z",
137+
"size": 2212
138+
},
139+
"agent/extensions/copilot-context/index.ts": {
140+
"hash": "sha256:73de8737789d19e3088b4caff25b9865100049b80ad7d2b5bae3cbfb7bd05466",
141+
"backedUpAt": "2026-05-22T11:47:42.712Z",
142+
"size": 14996
113143
}
114144
}
115145
}

config/pi/README.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Pi config backup
22

3-
Generated by the global `pi-config-backup` extension.
3+
Generated by the global `pi-config-backup` extension (v0.2.0).
44

55
This directory is intended to be committed to dotfiles. It excludes or redacts sensitive material.
66

@@ -9,20 +9,19 @@ This directory is intended to be committed to dotfiles. It excludes or redacts s
99
- `agent/settings.example.json` sanitized from `~/.pi/agent/settings.json`
1010
- `agent/extensions/` sanitized global Pi extensions
1111
- `agent/skills/`, `agent/prompts/`, and `agent/themes/` when present
12+
- `.backup-manifest.json` with hashes for divergence detection
1213

1314
## Intentionally not copied
1415

1516
- `~/.pi/agent/sessions/`
1617
- package caches/install dirs such as `npm/`, `git/`, `node_modules/`
17-
- files with sensitive-looking names such as `.env`, `*token*`, `*secret*`, `*cookie*`, private keys, and auth files
18-
- API keys, tokens, cookies, OAuth material, bearer tokens, JWTs, and similar strings found in text files
18+
- files with sensitive-looking names
19+
- API keys, tokens, cookies, OAuth material, and similar strings
20+
- Files with syntax errors (validated with node --check)
1921

20-
## Restore sketch
22+
## Restore
2123

22-
Review files before restoring. Then copy only what you want:
23-
24-
```bash
25-
mkdir -p ~/.pi/agent
26-
cp -R agent/extensions ~/.pi/agent/
27-
cp agent/settings.example.json ~/.pi/agent/settings.json # review/edit first
28-
```
24+
Use `/pi-restore` or the `pi_config_restore` tool. Guardrails:
25+
- Files modified locally since last backup are **skipped** (not overwritten)
26+
- A pre-restore snapshot is saved to `~/.pi/agent/.pre-restore-snapshot/`
27+
- Use `--force` to override divergence protection
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Copilot Auto Router
2+
3+
Provider-specific GitHub Copilot router inspired by Amp's model-by-purpose table.
4+
5+
It only routes when the current provider is `github-copilot`, except for the explicit vision fallback to Google while Copilot Enterprise vision is disabled.
6+
7+
## Purpose table
8+
9+
| Purpose | Model | Thinking | Use |
10+
| --- | --- | --- | --- |
11+
| `fast` | `github-copilot/claude-haiku-4.5` | `low` | short/simple answers, summaries, translations |
12+
| `main` | `github-copilot/claude-sonnet-4.6` | `medium` | default daily coding and normal agent work |
13+
| `think` | `github-copilot/gpt-5.5` | `high` | hard debugging, architecture, design decisions, deep reasoning |
14+
| `search` | `github-copilot/gemini-3-flash-preview` | `low` | finder/exploration/synthesis when deterministic search is primary |
15+
| `vision` | `google/gemini-3.5-flash` | `medium` | external vision fallback while Copilot vision is unavailable |
16+
17+
The router uses only models visible in `pi --list-models github-copilot`. When new Copilot models appear locally, revisit this table.
18+
19+
## Vision modes
20+
21+
Default: `off`.
22+
23+
- `off`: image prompts route directly to `google/gemini-3.5-flash`.
24+
- `try`: image prompts stay inside Copilot via the search/Gemini route.
25+
- `on`: image prompts stay on the Copilot main route.
26+
27+
After external vision fallback, the next non-image prompt returns to Copilot and recalculates the route from the prompt and recent session context.
28+
29+
## Context-aware routing
30+
31+
The v1 router uses cheap deterministic heuristics, not subagents or LLM classifiers:
32+
33+
- image attachments and image file paths
34+
- current/previous route
35+
- continuation prompts like `continua`, `segue`, `faz isso`, `ok`
36+
- recent session text and tool results
37+
- failure signals from tests/build/logs
38+
- architecture/debug/search/simple keyword groups
39+
40+
Priority:
41+
42+
1. image → `vision`
43+
2. think/architecture → `think`
44+
3. search/exploration → `search`
45+
4. simple prompt → `fast`
46+
5. default → `main`
47+
48+
## Commands
49+
50+
```text
51+
/copilot-route
52+
/copilot-route status
53+
/copilot-route auto
54+
/copilot-route manual
55+
/copilot-route vision off|try|on
56+
/copilot-route fast|main|think|search|vision
57+
/copilot-route reset
58+
```
59+
60+
Alias:
61+
62+
```text
63+
/cop-route
64+
```
65+
66+
Forcing a purpose manually applies that model/thinking and disables auto-routing. Use `/copilot-route auto` to re-enable.
67+
68+
No shortcut is registered in v1.

0 commit comments

Comments
 (0)