@henryqw/pi-footer 0.5.3 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -5
- package/extensions/footer.ts +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -27,10 +27,9 @@ pi install npm:@henryqw/pi-footer
|
|
|
27
27
|
| Footer | UI | Show checkout, usage, model, thinking, and extension statuses. |
|
|
28
28
|
|
|
29
29
|
```text
|
|
30
|
-
pi-packages · clear-field-f8d2 · PR #123 · approved
|
|
30
|
+
pi-packages · clear-field-f8d2 · PR #123 · approved Codex #1 · 50% · 7d 1d 1h 22m
|
|
31
31
|
↑ 12.4k · ↓ 2.1k · ↺ 84.3% · ⚡ 87.4 t/s · $ 0.127 · ◔ 36.8% gpt-5.6-luna • high
|
|
32
|
-
|
|
33
|
-
● 🐴 ponytail: ⚡ FULL
|
|
32
|
+
● 🐴 ponytail: ⚡ FULL ◷ 12m 34s
|
|
34
33
|
```
|
|
35
34
|
|
|
36
35
|
First line shows repository, branch, and pull request status (`pi-pr`) after clickable checkout link. Linked-worktree branches drop generated `worktree/` prefix.
|
|
@@ -39,9 +38,9 @@ Second line shows cumulative input tokens, output tokens, latest cache-hit rate,
|
|
|
39
38
|
|
|
40
39
|
`off` uses the same dim grey as the model name. Active levels use an ANSI-256 gradient: green `minimal`, yellow-green `low`, lime `medium`, yellow `high`, orange `xhigh`, and red `max`. `ultra` renders as a rainbow when the runtime supplies it. Pi 0.84.4 does not yet accept `ultra`, so that footer path remains unreachable until Pi adds it.
|
|
41
40
|
|
|
42
|
-
|
|
41
|
+
Non-empty statuses from `@henryqw` extensions, currently Codex quota, occupy the right side of the first line.
|
|
43
42
|
|
|
44
|
-
|
|
43
|
+
Third line shows cumulative agent-work time right-aligned beneath the model. It counts each run from `agent_start` through the final idle `agent_settled`, including automatic retries and auto-compaction inside that run, and excludes blocking user-prompt waits and idle waits between runs. Standalone `/compact` is excluded because it runs outside the agent-run lifecycle and emits no `agent_start`. The cumulative total is persisted in the session via a `pi-footer:agent-work` custom entry after each finalized run and restored on session resume. Statuses from all other extensions, including Ponytail and `pi-rewind`, share the left side, sorted by key with producer text, spacing, colors, links, and glyphs preserved.
|
|
45
44
|
|
|
46
45
|
## Clickable checkout
|
|
47
46
|
|
package/extensions/footer.ts
CHANGED
|
@@ -246,13 +246,13 @@ export default function footerExtension(pi: ExtensionAPI): void {
|
|
|
246
246
|
const checkoutLink = openUri && getCapabilities().hyperlinks
|
|
247
247
|
? hyperlink(theme.fg("accent", checkout), openUri)
|
|
248
248
|
: theme.fg("dim", checkout);
|
|
249
|
-
const
|
|
249
|
+
const identityLine = prStatus ? `${identity}${checkoutLink} · ${prStatus}` : `${identity}${checkoutLink}`;
|
|
250
|
+
const firstLine = henryStatuses.length ? align(identityLine, henryStatuses.join(" "), width, ellipsis) : identityLine;
|
|
250
251
|
const lines = [
|
|
251
252
|
firstLine,
|
|
252
253
|
align(usage, model, width, ellipsis),
|
|
253
|
-
alignRightReserved(
|
|
254
|
+
alignRightReserved(externalStatuses.join(" "), runtime, width, ellipsis),
|
|
254
255
|
];
|
|
255
|
-
if (externalStatuses.length) lines.push(externalStatuses.join(" "));
|
|
256
256
|
return lines.map((line) => truncateToWidth(line, width, ellipsis));
|
|
257
257
|
},
|
|
258
258
|
};
|