@spences10/pi-footer 0.0.1
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/LICENSE +21 -0
- package/README.md +18 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +272 -0
- package/dist/index.js.map +1 -0
- package/package.json +71 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Scott Spence
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# @spences10/pi-footer
|
|
2
|
+
|
|
3
|
+
Configurable Pi footer/statusline extension.
|
|
4
|
+
|
|
5
|
+
It owns `ctx.ui.setFooter(...)` and renders core Pi session data plus
|
|
6
|
+
extension statuses published by other extensions with
|
|
7
|
+
`ctx.ui.setStatus(...)`.
|
|
8
|
+
|
|
9
|
+
## Commands
|
|
10
|
+
|
|
11
|
+
- `/footer` — pick a footer preset with a modal.
|
|
12
|
+
|
|
13
|
+
## Presets
|
|
14
|
+
|
|
15
|
+
- `default` — current my-pi-style 2–3 line footer.
|
|
16
|
+
- `minimal` — compact cwd/model/context footer.
|
|
17
|
+
- `power` — fuller status-forward layout.
|
|
18
|
+
- `git-heavy` — emphasizes cwd/git/status widgets.
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ModelThinkingLevel } from '@earendil-works/pi-ai';
|
|
2
|
+
import type { ExtensionAPI, ExtensionContext } from '@earendil-works/pi-coding-agent';
|
|
3
|
+
export declare function render_footer_status_line(theme: ExtensionContext['ui']['theme'], width: number, left_items: string[], right_item?: string): string | undefined;
|
|
4
|
+
export declare function get_default_footer_thinking_level(model: ExtensionContext['model']): ModelThinkingLevel;
|
|
5
|
+
export declare function get_current_thinking_level(ctx: Pick<ExtensionContext, 'model' | 'sessionManager'>): ModelThinkingLevel;
|
|
6
|
+
export default function footer_extension(pi: ExtensionAPI): void;
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { clampThinkingLevel, getSupportedThinkingLevels, } from '@earendil-works/pi-ai';
|
|
2
|
+
import { truncateToWidth, visibleWidth, } from '@earendil-works/pi-tui';
|
|
3
|
+
import { show_picker_modal } from '@spences10/pi-tui-modal';
|
|
4
|
+
const PRESETS = ['minimal', 'default', 'power', 'git-heavy'];
|
|
5
|
+
const state = {
|
|
6
|
+
preset: 'default',
|
|
7
|
+
};
|
|
8
|
+
function sanitize_status_text(text) {
|
|
9
|
+
return text
|
|
10
|
+
.replace(/[\r\n\t]/g, ' ')
|
|
11
|
+
.replace(/ +/g, ' ')
|
|
12
|
+
.trim();
|
|
13
|
+
}
|
|
14
|
+
function format_token_count(count) {
|
|
15
|
+
if (count < 1000)
|
|
16
|
+
return count.toString();
|
|
17
|
+
if (count < 10000)
|
|
18
|
+
return `${(count / 1000).toFixed(1)}k`;
|
|
19
|
+
if (count < 1000000)
|
|
20
|
+
return `${Math.round(count / 1000)}k`;
|
|
21
|
+
if (count < 10000000)
|
|
22
|
+
return `${(count / 1000000).toFixed(1)}M`;
|
|
23
|
+
return `${Math.round(count / 1000000)}M`;
|
|
24
|
+
}
|
|
25
|
+
export function render_footer_status_line(theme, width, left_items, right_item) {
|
|
26
|
+
const left = sanitize_status_text(left_items.join(' '));
|
|
27
|
+
const right = right_item ? sanitize_status_text(right_item) : '';
|
|
28
|
+
if (!left && !right)
|
|
29
|
+
return undefined;
|
|
30
|
+
if (!right) {
|
|
31
|
+
return truncateToWidth(theme.fg('dim', left), width, theme.fg('dim', '...'));
|
|
32
|
+
}
|
|
33
|
+
if (!left) {
|
|
34
|
+
const themed_right = theme.fg('dim', right);
|
|
35
|
+
const right_width = visibleWidth(themed_right);
|
|
36
|
+
return right_width >= width
|
|
37
|
+
? truncateToWidth(themed_right, width, theme.fg('dim', '...'))
|
|
38
|
+
: `${' '.repeat(width - right_width)}${themed_right}`;
|
|
39
|
+
}
|
|
40
|
+
const right_width = visibleWidth(right);
|
|
41
|
+
if (right_width >= width) {
|
|
42
|
+
return truncateToWidth(theme.fg('dim', right), width, theme.fg('dim', '...'));
|
|
43
|
+
}
|
|
44
|
+
const min_gap = 1;
|
|
45
|
+
const available_left = Math.max(0, width - right_width - min_gap);
|
|
46
|
+
const truncated_left = truncateToWidth(left, available_left, '...');
|
|
47
|
+
const left_width = visibleWidth(truncated_left);
|
|
48
|
+
const gap = Math.max(min_gap, width - left_width - right_width);
|
|
49
|
+
return (theme.fg('dim', truncated_left) +
|
|
50
|
+
' '.repeat(gap) +
|
|
51
|
+
theme.fg('dim', right));
|
|
52
|
+
}
|
|
53
|
+
const VALID_THINKING_LEVELS = new Set([
|
|
54
|
+
'off',
|
|
55
|
+
'minimal',
|
|
56
|
+
'low',
|
|
57
|
+
'medium',
|
|
58
|
+
'high',
|
|
59
|
+
'xhigh',
|
|
60
|
+
]);
|
|
61
|
+
function is_model_thinking_level(level) {
|
|
62
|
+
return VALID_THINKING_LEVELS.has(level);
|
|
63
|
+
}
|
|
64
|
+
export function get_default_footer_thinking_level(model) {
|
|
65
|
+
if (!model?.reasoning)
|
|
66
|
+
return 'off';
|
|
67
|
+
return clampThinkingLevel(model, 'medium');
|
|
68
|
+
}
|
|
69
|
+
export function get_current_thinking_level(ctx) {
|
|
70
|
+
const entries = ctx.sessionManager.getEntries();
|
|
71
|
+
for (let i = entries.length - 1; i >= 0; i--) {
|
|
72
|
+
const entry = entries[i];
|
|
73
|
+
if (entry.type === 'thinking_level_change' &&
|
|
74
|
+
typeof entry.thinkingLevel === 'string' &&
|
|
75
|
+
is_model_thinking_level(entry.thinkingLevel)) {
|
|
76
|
+
if (!ctx.model?.reasoning)
|
|
77
|
+
return 'off';
|
|
78
|
+
return getSupportedThinkingLevels(ctx.model).includes(entry.thinkingLevel)
|
|
79
|
+
? entry.thinkingLevel
|
|
80
|
+
: clampThinkingLevel(ctx.model, entry.thinkingLevel);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return get_default_footer_thinking_level(ctx.model);
|
|
84
|
+
}
|
|
85
|
+
function build_footer_model(ctx, footer_data, theme) {
|
|
86
|
+
let total_input = 0;
|
|
87
|
+
let total_output = 0;
|
|
88
|
+
let total_cache_read = 0;
|
|
89
|
+
let total_cache_write = 0;
|
|
90
|
+
let total_cost = 0;
|
|
91
|
+
for (const entry of ctx.sessionManager.getEntries()) {
|
|
92
|
+
if (entry.type === 'message' &&
|
|
93
|
+
entry.message.role === 'assistant') {
|
|
94
|
+
total_input += entry.message.usage.input;
|
|
95
|
+
total_output += entry.message.usage.output;
|
|
96
|
+
total_cache_read += entry.message.usage.cacheRead;
|
|
97
|
+
total_cache_write += entry.message.usage.cacheWrite;
|
|
98
|
+
total_cost += entry.message.usage.cost.total;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const context_usage = ctx.getContextUsage();
|
|
102
|
+
const context_window = context_usage?.contextWindow ?? ctx.model?.contextWindow ?? 0;
|
|
103
|
+
const context_percent_value = context_usage?.percent ?? 0;
|
|
104
|
+
const context_percent = context_usage?.percent !== null
|
|
105
|
+
? context_percent_value.toFixed(1)
|
|
106
|
+
: '?';
|
|
107
|
+
let pwd = ctx.cwd;
|
|
108
|
+
const home = process.env.HOME || process.env.USERPROFILE;
|
|
109
|
+
if (home && pwd.startsWith(home)) {
|
|
110
|
+
pwd = `~${pwd.slice(home.length)}`;
|
|
111
|
+
}
|
|
112
|
+
const branch = footer_data.getGitBranch();
|
|
113
|
+
if (branch) {
|
|
114
|
+
pwd = `${pwd} (${branch})`;
|
|
115
|
+
}
|
|
116
|
+
const session_name = ctx.sessionManager.getSessionName();
|
|
117
|
+
if (session_name) {
|
|
118
|
+
pwd = `${pwd} • ${session_name}`;
|
|
119
|
+
}
|
|
120
|
+
const stats_parts = [];
|
|
121
|
+
if (total_input)
|
|
122
|
+
stats_parts.push(`↑${format_token_count(total_input)}`);
|
|
123
|
+
if (total_output)
|
|
124
|
+
stats_parts.push(`↓${format_token_count(total_output)}`);
|
|
125
|
+
if (total_cache_read)
|
|
126
|
+
stats_parts.push(`R${format_token_count(total_cache_read)}`);
|
|
127
|
+
if (total_cache_write)
|
|
128
|
+
stats_parts.push(`W${format_token_count(total_cache_write)}`);
|
|
129
|
+
const using_subscription = ctx.model
|
|
130
|
+
? ctx.modelRegistry.isUsingOAuth(ctx.model)
|
|
131
|
+
: false;
|
|
132
|
+
if (total_cost || using_subscription) {
|
|
133
|
+
stats_parts.push(`$${total_cost.toFixed(3)}${using_subscription ? ' (sub)' : ''}`);
|
|
134
|
+
}
|
|
135
|
+
const context_percent_display = context_percent === '?'
|
|
136
|
+
? `?/${format_token_count(context_window)}`
|
|
137
|
+
: `${context_percent}%/${format_token_count(context_window)}`;
|
|
138
|
+
let context_percent_str = context_percent_display;
|
|
139
|
+
if (context_percent_value > 90) {
|
|
140
|
+
context_percent_str = theme.fg('error', context_percent_display);
|
|
141
|
+
}
|
|
142
|
+
else if (context_percent_value > 70) {
|
|
143
|
+
context_percent_str = theme.fg('warning', context_percent_display);
|
|
144
|
+
}
|
|
145
|
+
stats_parts.push(context_percent_str);
|
|
146
|
+
const model_name = ctx.model?.id || 'no-model';
|
|
147
|
+
const thinking_level = get_current_thinking_level(ctx);
|
|
148
|
+
let model_text = model_name;
|
|
149
|
+
if (ctx.model?.reasoning) {
|
|
150
|
+
model_text =
|
|
151
|
+
thinking_level === 'off'
|
|
152
|
+
? `${model_name} • thinking off`
|
|
153
|
+
: `${model_name} • ${thinking_level}`;
|
|
154
|
+
}
|
|
155
|
+
if (footer_data.getAvailableProviderCount() > 1 && ctx.model) {
|
|
156
|
+
model_text = `(${ctx.model.provider}) ${model_text}`;
|
|
157
|
+
}
|
|
158
|
+
const statuses = new Map(footer_data.getExtensionStatuses());
|
|
159
|
+
const preset_status = statuses.get('preset');
|
|
160
|
+
statuses.delete('preset');
|
|
161
|
+
return {
|
|
162
|
+
pwd,
|
|
163
|
+
stats_parts,
|
|
164
|
+
model_text,
|
|
165
|
+
statuses,
|
|
166
|
+
preset_status,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
function render_stats_line(model, theme, width) {
|
|
170
|
+
let stats_left = model.stats_parts.join(' ');
|
|
171
|
+
let stats_left_width = visibleWidth(stats_left);
|
|
172
|
+
if (stats_left_width > width) {
|
|
173
|
+
stats_left = truncateToWidth(stats_left, width, '...');
|
|
174
|
+
stats_left_width = visibleWidth(stats_left);
|
|
175
|
+
}
|
|
176
|
+
let right_side = model.model_text;
|
|
177
|
+
if (stats_left_width + 2 + visibleWidth(right_side) > width) {
|
|
178
|
+
right_side = right_side.replace(/^\([^)]*\) /, '');
|
|
179
|
+
}
|
|
180
|
+
const right_side_width = visibleWidth(right_side);
|
|
181
|
+
const total_needed = stats_left_width + 2 + right_side_width;
|
|
182
|
+
let stats_line;
|
|
183
|
+
if (total_needed <= width) {
|
|
184
|
+
const padding = ' '.repeat(width - stats_left_width - right_side_width);
|
|
185
|
+
stats_line = stats_left + padding + right_side;
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
const available_for_right = width - stats_left_width - 2;
|
|
189
|
+
if (available_for_right > 0) {
|
|
190
|
+
const truncated_right = truncateToWidth(right_side, available_for_right, '');
|
|
191
|
+
const truncated_right_width = visibleWidth(truncated_right);
|
|
192
|
+
const padding = ' '.repeat(Math.max(0, width - stats_left_width - truncated_right_width));
|
|
193
|
+
stats_line = stats_left + padding + truncated_right;
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
stats_line = stats_left;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
const dim_stats_left = theme.fg('dim', stats_left);
|
|
200
|
+
const remainder = stats_line.slice(stats_left.length);
|
|
201
|
+
return dim_stats_left + theme.fg('dim', remainder);
|
|
202
|
+
}
|
|
203
|
+
function render_statuses(model, theme, width) {
|
|
204
|
+
const other_statuses = Array.from(model.statuses.entries())
|
|
205
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
206
|
+
.map(([key, text]) => `${key}:${sanitize_status_text(text)}`);
|
|
207
|
+
return render_footer_status_line(theme, width, other_statuses, model.preset_status);
|
|
208
|
+
}
|
|
209
|
+
function render_footer_lines(ctx, theme, footer_data, width) {
|
|
210
|
+
const model = build_footer_model(ctx, footer_data, theme);
|
|
211
|
+
const lines = [];
|
|
212
|
+
if (state.preset === 'minimal') {
|
|
213
|
+
lines.push(render_footer_status_line(theme, width, [model.pwd], model.model_text) ?? '');
|
|
214
|
+
return lines.filter(Boolean);
|
|
215
|
+
}
|
|
216
|
+
lines.push(truncateToWidth(theme.fg('dim', model.pwd), width, theme.fg('dim', '...')));
|
|
217
|
+
lines.push(render_stats_line(model, theme, width));
|
|
218
|
+
const status_line = render_statuses(model, theme, width);
|
|
219
|
+
if (status_line)
|
|
220
|
+
lines.push(status_line);
|
|
221
|
+
if (state.preset === 'power') {
|
|
222
|
+
const footer_mode = theme.fg('dim', `footer:${state.preset}`);
|
|
223
|
+
lines.push(truncateToWidth(footer_mode, width, theme.fg('dim', '...')));
|
|
224
|
+
}
|
|
225
|
+
return lines;
|
|
226
|
+
}
|
|
227
|
+
function install_footer(ctx) {
|
|
228
|
+
if (!ctx.hasUI)
|
|
229
|
+
return;
|
|
230
|
+
ctx.ui.setFooter((tui, theme, footer_data) => {
|
|
231
|
+
const unsubscribe = footer_data.onBranchChange(() => tui.requestRender());
|
|
232
|
+
return {
|
|
233
|
+
dispose: unsubscribe,
|
|
234
|
+
invalidate() { },
|
|
235
|
+
render(width) {
|
|
236
|
+
return render_footer_lines(ctx, theme, footer_data, width);
|
|
237
|
+
},
|
|
238
|
+
};
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
export default function footer_extension(pi) {
|
|
242
|
+
pi.registerCommand('footer', {
|
|
243
|
+
description: 'Configure the Pi footer',
|
|
244
|
+
handler: async (_args, ctx) => {
|
|
245
|
+
const selected = await show_picker_modal(ctx, {
|
|
246
|
+
title: 'Footer preset',
|
|
247
|
+
items: PRESETS.map((preset) => ({
|
|
248
|
+
value: preset,
|
|
249
|
+
label: preset,
|
|
250
|
+
description: preset === state.preset
|
|
251
|
+
? 'Current footer preset'
|
|
252
|
+
: undefined,
|
|
253
|
+
})),
|
|
254
|
+
initial_index: PRESETS.indexOf(state.preset),
|
|
255
|
+
});
|
|
256
|
+
if (!selected)
|
|
257
|
+
return;
|
|
258
|
+
if (PRESETS.includes(selected)) {
|
|
259
|
+
state.preset = selected;
|
|
260
|
+
install_footer(ctx);
|
|
261
|
+
ctx.ui.notify(`Footer preset: ${state.preset}`, 'info');
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
});
|
|
265
|
+
pi.on('session_start', async (_event, ctx) => {
|
|
266
|
+
install_footer(ctx);
|
|
267
|
+
});
|
|
268
|
+
pi.on('session_shutdown', async (_event, ctx) => {
|
|
269
|
+
ctx.ui.setFooter(undefined);
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@spences10/pi-footer",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Configurable footer/statusline extension for Pi",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"footer",
|
|
7
|
+
"pi",
|
|
8
|
+
"pi-package",
|
|
9
|
+
"statusline",
|
|
10
|
+
"tui"
|
|
11
|
+
],
|
|
12
|
+
"homepage": "https://github.com/spences10/my-pi/tree/main/packages/pi-footer#readme",
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"author": "Scott Spence <me@scottspence.com>",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/spences10/my-pi.git",
|
|
18
|
+
"directory": "packages/pi-footer"
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist",
|
|
22
|
+
"README.md"
|
|
23
|
+
],
|
|
24
|
+
"type": "module",
|
|
25
|
+
"main": "./dist/index.js",
|
|
26
|
+
"types": "./dist/index.d.ts",
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"types": "./dist/index.d.ts",
|
|
30
|
+
"default": "./dist/index.js"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"publishConfig": {
|
|
34
|
+
"access": "public"
|
|
35
|
+
},
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@spences10/pi-tui-modal": "0.0.16"
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@earendil-works/pi-ai": "^0.74.1",
|
|
41
|
+
"@earendil-works/pi-coding-agent": "^0.74.1",
|
|
42
|
+
"@earendil-works/pi-tui": "^0.74.1",
|
|
43
|
+
"@types/node": "^25.8.0",
|
|
44
|
+
"typescript": "^6.0.3",
|
|
45
|
+
"vitest": "4.1.5"
|
|
46
|
+
},
|
|
47
|
+
"peerDependencies": {
|
|
48
|
+
"@earendil-works/pi-ai": "*",
|
|
49
|
+
"@earendil-works/pi-coding-agent": "*",
|
|
50
|
+
"@earendil-works/pi-tui": "*"
|
|
51
|
+
},
|
|
52
|
+
"engines": {
|
|
53
|
+
"node": ">=24.15.0"
|
|
54
|
+
},
|
|
55
|
+
"pi": {
|
|
56
|
+
"extensions": [
|
|
57
|
+
"./dist/index.js"
|
|
58
|
+
],
|
|
59
|
+
"image": "https://raw.githubusercontent.com/spences10/my-pi/main/assets/pi-package-preview.png"
|
|
60
|
+
},
|
|
61
|
+
"scripts": {
|
|
62
|
+
"build": "pnpm --filter \"$npm_package_name^...\" run build:self && pnpm run build:self",
|
|
63
|
+
"build:self": "tsc -p tsconfig.build.json",
|
|
64
|
+
"check": "pnpm --filter \"$npm_package_name^...\" run build:self && pnpm run check:self",
|
|
65
|
+
"check:self": "tsc --noEmit -p tsconfig.json",
|
|
66
|
+
"test": "pnpm --filter \"$npm_package_name^...\" run build:self && pnpm run test:self",
|
|
67
|
+
"test:self": "vitest run",
|
|
68
|
+
"coverage:self": "vitest run --coverage",
|
|
69
|
+
"coverage": "pnpm --filter \"$npm_package_name^...\" run build:self && pnpm run coverage:self"
|
|
70
|
+
}
|
|
71
|
+
}
|