@spences10/pi-footer 0.0.1 → 0.0.3
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 +16 -0
- package/dist/commands/footer-command.d.ts +3 -0
- package/dist/commands/footer-command.js +202 -0
- package/dist/commands/footer-command.js.map +1 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.js +47 -0
- package/dist/config.js.map +1 -0
- package/dist/extension/install.d.ts +4 -0
- package/dist/extension/install.js +21 -0
- package/dist/extension/install.js.map +1 -0
- package/dist/index.d.ts +7 -5
- package/dist/index.js +12 -264
- package/dist/index.js.map +1 -1
- package/dist/model/footer-model.d.ts +21 -0
- package/dist/model/footer-model.js +94 -0
- package/dist/model/footer-model.js.map +1 -0
- package/dist/model/git.d.ts +11 -0
- package/dist/model/git.js +83 -0
- package/dist/model/git.js.map +1 -0
- package/dist/model/thinking.d.ts +4 -0
- package/dist/model/thinking.js +34 -0
- package/dist/model/thinking.js.map +1 -0
- package/dist/presets/types.d.ts +23 -0
- package/dist/presets/types.js +51 -0
- package/dist/presets/types.js.map +1 -0
- package/dist/reference/research.d.ts +6 -0
- package/dist/reference/research.js +50 -0
- package/dist/reference/research.js.map +1 -0
- package/dist/render/footer-lines.d.ts +4 -0
- package/dist/render/footer-lines.js +117 -0
- package/dist/render/footer-lines.js.map +1 -0
- package/dist/render/preview.d.ts +6 -0
- package/dist/render/preview.js +34 -0
- package/dist/render/preview.js.map +1 -0
- package/dist/render/status-line.d.ts +3 -0
- package/dist/render/status-line.js +32 -0
- package/dist/render/status-line.js.map +1 -0
- package/dist/test-utils.d.ts +5 -0
- package/dist/test-utils.js +46 -0
- package/dist/test-utils.js.map +1 -0
- package/dist/theme/tokens.d.ts +16 -0
- package/dist/theme/tokens.js +26 -0
- package/dist/theme/tokens.js.map +1 -0
- package/dist/utils/text.d.ts +3 -0
- package/dist/utils/text.js +23 -0
- package/dist/utils/text.js.map +1 -0
- package/package.json +6 -6
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EACN,0BAA0B,EAC1B,iCAAiC,GACjC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,cAAc,GAKd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAoB,MAAM,mBAAmB,CAAC;AAEpE,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;AAElC,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAgB;IACxD,uBAAuB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAEnC,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAC5C,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAC/C,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ExtensionContext, ReadonlyFooterDataProvider } from '@earendil-works/pi-coding-agent';
|
|
2
|
+
import type { GitIconMode } from '../presets/types.js';
|
|
3
|
+
import { type FooterTheme } from '../theme/tokens.js';
|
|
4
|
+
import { type GitSummary } from './git.js';
|
|
5
|
+
export interface FooterModel {
|
|
6
|
+
cwd: string;
|
|
7
|
+
path_text: string;
|
|
8
|
+
git: GitSummary;
|
|
9
|
+
git_text?: string;
|
|
10
|
+
session_text?: string;
|
|
11
|
+
token_parts: string[];
|
|
12
|
+
cost_text?: string;
|
|
13
|
+
context_text: string;
|
|
14
|
+
model_name: string;
|
|
15
|
+
provider?: string;
|
|
16
|
+
thinking_text?: string;
|
|
17
|
+
model_text: string;
|
|
18
|
+
statuses: Map<string, string>;
|
|
19
|
+
preset_status?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function build_footer_model(ctx: ExtensionContext, footer_data: ReadonlyFooterDataProvider, theme: FooterTheme, git_icon_mode?: GitIconMode): FooterModel;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { error, warning } from '../theme/tokens.js';
|
|
2
|
+
import { format_token_count } from '../utils/text.js';
|
|
3
|
+
import { format_git_summary, get_git_summary, } from './git.js';
|
|
4
|
+
import { get_current_thinking_level } from './thinking.js';
|
|
5
|
+
export function build_footer_model(ctx, footer_data, theme, git_icon_mode = 'nerd') {
|
|
6
|
+
let total_input = 0;
|
|
7
|
+
let total_output = 0;
|
|
8
|
+
let total_cache_read = 0;
|
|
9
|
+
let total_cache_write = 0;
|
|
10
|
+
let total_cost = 0;
|
|
11
|
+
for (const entry of ctx.sessionManager.getEntries()) {
|
|
12
|
+
if (entry.type === 'message' &&
|
|
13
|
+
entry.message.role === 'assistant') {
|
|
14
|
+
total_input += entry.message.usage.input;
|
|
15
|
+
total_output += entry.message.usage.output;
|
|
16
|
+
total_cache_read += entry.message.usage.cacheRead;
|
|
17
|
+
total_cache_write += entry.message.usage.cacheWrite;
|
|
18
|
+
total_cost += entry.message.usage.cost.total;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const context_usage = ctx.getContextUsage();
|
|
22
|
+
const context_window = context_usage?.contextWindow ?? ctx.model?.contextWindow ?? 0;
|
|
23
|
+
const context_percent_value = context_usage?.percent ?? 0;
|
|
24
|
+
const context_percent = context_usage?.percent !== null
|
|
25
|
+
? context_percent_value.toFixed(1)
|
|
26
|
+
: '?';
|
|
27
|
+
let path_text = ctx.cwd;
|
|
28
|
+
const home = process.env.HOME || process.env.USERPROFILE;
|
|
29
|
+
if (home && path_text.startsWith(home)) {
|
|
30
|
+
path_text = `~${path_text.slice(home.length)}`;
|
|
31
|
+
}
|
|
32
|
+
const git_branch = footer_data.getGitBranch() ?? undefined;
|
|
33
|
+
const git = get_git_summary(ctx.cwd, git_branch);
|
|
34
|
+
const git_text = format_git_summary(git, git_icon_mode);
|
|
35
|
+
const session_text = ctx.sessionManager.getSessionName() || undefined;
|
|
36
|
+
const token_parts = [];
|
|
37
|
+
if (total_input)
|
|
38
|
+
token_parts.push(`↑${format_token_count(total_input)}`);
|
|
39
|
+
if (total_output)
|
|
40
|
+
token_parts.push(`↓${format_token_count(total_output)}`);
|
|
41
|
+
if (total_cache_read)
|
|
42
|
+
token_parts.push(`R${format_token_count(total_cache_read)}`);
|
|
43
|
+
if (total_cache_write)
|
|
44
|
+
token_parts.push(`W${format_token_count(total_cache_write)}`);
|
|
45
|
+
const using_subscription = ctx.model
|
|
46
|
+
? ctx.modelRegistry.isUsingOAuth(ctx.model)
|
|
47
|
+
: false;
|
|
48
|
+
const cost_text = total_cost || using_subscription
|
|
49
|
+
? `$${total_cost.toFixed(3)}${using_subscription ? ' (sub)' : ''}`
|
|
50
|
+
: undefined;
|
|
51
|
+
const context_percent_display = context_percent === '?'
|
|
52
|
+
? `?/${format_token_count(context_window)}`
|
|
53
|
+
: `${context_percent}%/${format_token_count(context_window)}`;
|
|
54
|
+
let context_text = context_percent_display;
|
|
55
|
+
if (context_percent_value > 90) {
|
|
56
|
+
context_text = error(theme, context_percent_display);
|
|
57
|
+
}
|
|
58
|
+
else if (context_percent_value > 70) {
|
|
59
|
+
context_text = warning(theme, context_percent_display);
|
|
60
|
+
}
|
|
61
|
+
const model_name = ctx.model?.id || 'no-model';
|
|
62
|
+
const thinking_level = get_current_thinking_level(ctx);
|
|
63
|
+
const thinking_text = ctx.model?.reasoning
|
|
64
|
+
? thinking_level === 'off'
|
|
65
|
+
? 'thinking off'
|
|
66
|
+
: thinking_level
|
|
67
|
+
: undefined;
|
|
68
|
+
let model_text = model_name;
|
|
69
|
+
if (thinking_text)
|
|
70
|
+
model_text = `${model_name} • ${thinking_text}`;
|
|
71
|
+
if (footer_data.getAvailableProviderCount() > 1 && ctx.model) {
|
|
72
|
+
model_text = `(${ctx.model.provider}) ${model_text}`;
|
|
73
|
+
}
|
|
74
|
+
const statuses = new Map(footer_data.getExtensionStatuses());
|
|
75
|
+
const preset_status = statuses.get('preset');
|
|
76
|
+
statuses.delete('preset');
|
|
77
|
+
return {
|
|
78
|
+
cwd: ctx.cwd,
|
|
79
|
+
path_text,
|
|
80
|
+
git,
|
|
81
|
+
git_text,
|
|
82
|
+
session_text,
|
|
83
|
+
token_parts,
|
|
84
|
+
cost_text,
|
|
85
|
+
context_text,
|
|
86
|
+
model_name,
|
|
87
|
+
provider: ctx.model?.provider,
|
|
88
|
+
thinking_text,
|
|
89
|
+
model_text,
|
|
90
|
+
statuses,
|
|
91
|
+
preset_status,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=footer-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"footer-model.js","sourceRoot":"","sources":["../../src/model/footer-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { GitIconMode } from '../presets/types.js';
|
|
2
|
+
export interface GitSummary {
|
|
3
|
+
branch?: string;
|
|
4
|
+
dirty: number;
|
|
5
|
+
staged: number;
|
|
6
|
+
untracked: number;
|
|
7
|
+
ahead: number;
|
|
8
|
+
behind: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function get_git_summary(cwd: string, branch?: string): GitSummary;
|
|
11
|
+
export declare function format_git_summary(summary: GitSummary, icon_mode?: GitIconMode): string | undefined;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { execFileSync } from 'node:child_process';
|
|
2
|
+
const GIT_ICONS = {
|
|
3
|
+
nerd: {
|
|
4
|
+
branch: ' ',
|
|
5
|
+
dirty: '',
|
|
6
|
+
staged: '',
|
|
7
|
+
untracked: '',
|
|
8
|
+
ahead: '⇡',
|
|
9
|
+
behind: '⇣',
|
|
10
|
+
},
|
|
11
|
+
plain: {
|
|
12
|
+
branch: '',
|
|
13
|
+
dirty: '±',
|
|
14
|
+
staged: '●',
|
|
15
|
+
untracked: '?',
|
|
16
|
+
ahead: '↑',
|
|
17
|
+
behind: '↓',
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
export function get_git_summary(cwd, branch) {
|
|
21
|
+
const summary = {
|
|
22
|
+
branch,
|
|
23
|
+
dirty: 0,
|
|
24
|
+
staged: 0,
|
|
25
|
+
untracked: 0,
|
|
26
|
+
ahead: 0,
|
|
27
|
+
behind: 0,
|
|
28
|
+
};
|
|
29
|
+
try {
|
|
30
|
+
const output = execFileSync('git', ['status', '--porcelain=v1', '--branch'], {
|
|
31
|
+
cwd,
|
|
32
|
+
encoding: 'utf8',
|
|
33
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
34
|
+
timeout: 500,
|
|
35
|
+
});
|
|
36
|
+
for (const line of output.split('\n')) {
|
|
37
|
+
if (!line)
|
|
38
|
+
continue;
|
|
39
|
+
if (line.startsWith('## ')) {
|
|
40
|
+
const match = line.match(/^## ([^.\s]+|[^.]+?)(?:\.\.\.)?/);
|
|
41
|
+
if (match?.[1] && !summary.branch)
|
|
42
|
+
summary.branch = match[1];
|
|
43
|
+
const ahead = line.match(/ahead (\d+)/);
|
|
44
|
+
const behind = line.match(/behind (\d+)/);
|
|
45
|
+
summary.ahead = ahead ? Number(ahead[1]) : 0;
|
|
46
|
+
summary.behind = behind ? Number(behind[1]) : 0;
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const index_status = line[0];
|
|
50
|
+
const worktree_status = line[1];
|
|
51
|
+
if (line.startsWith('??')) {
|
|
52
|
+
summary.untracked += 1;
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (index_status !== ' ')
|
|
56
|
+
summary.staged += 1;
|
|
57
|
+
if (worktree_status !== ' ')
|
|
58
|
+
summary.dirty += 1;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return summary;
|
|
63
|
+
}
|
|
64
|
+
return summary;
|
|
65
|
+
}
|
|
66
|
+
export function format_git_summary(summary, icon_mode = 'nerd') {
|
|
67
|
+
const icons = GIT_ICONS[icon_mode];
|
|
68
|
+
const parts = [];
|
|
69
|
+
if (summary.branch)
|
|
70
|
+
parts.push(`${icons.branch}${summary.branch}`);
|
|
71
|
+
if (summary.dirty)
|
|
72
|
+
parts.push(`${icons.dirty}${summary.dirty}`);
|
|
73
|
+
if (summary.staged)
|
|
74
|
+
parts.push(`${icons.staged}${summary.staged}`);
|
|
75
|
+
if (summary.untracked)
|
|
76
|
+
parts.push(`${icons.untracked}${summary.untracked}`);
|
|
77
|
+
if (summary.ahead)
|
|
78
|
+
parts.push(`${icons.ahead}${summary.ahead}`);
|
|
79
|
+
if (summary.behind)
|
|
80
|
+
parts.push(`${icons.behind}${summary.behind}`);
|
|
81
|
+
return parts.length > 0 ? parts.join(' ') : undefined;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=git.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/model/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type ModelThinkingLevel } from '@earendil-works/pi-ai';
|
|
2
|
+
import type { ExtensionContext } from '@earendil-works/pi-coding-agent';
|
|
3
|
+
export declare function get_default_footer_thinking_level(model: ExtensionContext['model']): ModelThinkingLevel;
|
|
4
|
+
export declare function get_current_thinking_level(ctx: Pick<ExtensionContext, 'model' | 'sessionManager'>): ModelThinkingLevel;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { clampThinkingLevel, getSupportedThinkingLevels, } from '@earendil-works/pi-ai';
|
|
2
|
+
const VALID_THINKING_LEVELS = new Set([
|
|
3
|
+
'off',
|
|
4
|
+
'minimal',
|
|
5
|
+
'low',
|
|
6
|
+
'medium',
|
|
7
|
+
'high',
|
|
8
|
+
'xhigh',
|
|
9
|
+
]);
|
|
10
|
+
function is_model_thinking_level(level) {
|
|
11
|
+
return VALID_THINKING_LEVELS.has(level);
|
|
12
|
+
}
|
|
13
|
+
export function get_default_footer_thinking_level(model) {
|
|
14
|
+
if (!model?.reasoning)
|
|
15
|
+
return 'off';
|
|
16
|
+
return clampThinkingLevel(model, 'medium');
|
|
17
|
+
}
|
|
18
|
+
export function get_current_thinking_level(ctx) {
|
|
19
|
+
const entries = ctx.sessionManager.getEntries();
|
|
20
|
+
for (let i = entries.length - 1; i >= 0; i--) {
|
|
21
|
+
const entry = entries[i];
|
|
22
|
+
if (entry.type === 'thinking_level_change' &&
|
|
23
|
+
typeof entry.thinkingLevel === 'string' &&
|
|
24
|
+
is_model_thinking_level(entry.thinkingLevel)) {
|
|
25
|
+
if (!ctx.model?.reasoning)
|
|
26
|
+
return 'off';
|
|
27
|
+
return getSupportedThinkingLevels(ctx.model).includes(entry.thinkingLevel)
|
|
28
|
+
? entry.thinkingLevel
|
|
29
|
+
: clampThinkingLevel(ctx.model, entry.thinkingLevel);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return get_default_footer_thinking_level(ctx.model);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=thinking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thinking.js","sourceRoot":"","sources":["../../src/model/thinking.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,kBAAkB,EAClB,0BAA0B,GAE1B,MAAM,uBAAuB,CAAC;AAG/B,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAqB;IACzD,KAAK;IACL,SAAS;IACT,KAAK;IACL,QAAQ;IACR,MAAM;IACN,OAAO;CACP,CAAC,CAAC;AAEH,SAAS,uBAAuB,CAC/B,KAAa;IAEb,OAAO,qBAAqB,CAAC,GAAG,CAAC,KAA2B,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,iCAAiC,CAChD,KAAgC;IAEhC,IAAI,CAAC,KAAK,EAAE,SAAS;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,0BAA0B,CACzC,GAAuD;IAEvD,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAGtB,CAAC;QACF,IACC,KAAK,CAAC,IAAI,KAAK,uBAAuB;YACtC,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ;YACvC,uBAAuB,CAAC,KAAK,CAAC,aAAa,CAAC,EAC3C,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS;gBAAE,OAAO,KAAK,CAAC;YACxC,OAAO,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CACpD,KAAK,CAAC,aAAa,CACnB;gBACA,CAAC,CAAC,KAAK,CAAC,aAAa;gBACrB,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QACvD,CAAC;IACF,CAAC;IACD,OAAO,iCAAiC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare const FOOTER_PRESETS: readonly ["minimal", "default", "power", "git-heavy"];
|
|
2
|
+
export type FooterPreset = (typeof FOOTER_PRESETS)[number];
|
|
3
|
+
export declare const FOOTER_DENSITIES: readonly ["compact", "comfortable", "expanded"];
|
|
4
|
+
export type FooterDensity = (typeof FOOTER_DENSITIES)[number];
|
|
5
|
+
export declare const STATUS_LABEL_MODES: readonly ["smart", "always", "never"];
|
|
6
|
+
export type StatusLabelMode = (typeof STATUS_LABEL_MODES)[number];
|
|
7
|
+
export declare const FOOTER_TONES: readonly ["muted", "balanced", "bright"];
|
|
8
|
+
export type FooterTone = (typeof FOOTER_TONES)[number];
|
|
9
|
+
export declare const GIT_ICON_MODES: readonly ["nerd", "plain"];
|
|
10
|
+
export type GitIconMode = (typeof GIT_ICON_MODES)[number];
|
|
11
|
+
export declare const FOOTER_WIDGETS: readonly ["path", "git", "session", "model", "thinking", "context", "cost", "tokens", "statuses", "preset"];
|
|
12
|
+
export type FooterWidget = (typeof FOOTER_WIDGETS)[number];
|
|
13
|
+
export type FooterWidgetState = Record<FooterWidget, boolean>;
|
|
14
|
+
export interface FooterState {
|
|
15
|
+
preset: FooterPreset;
|
|
16
|
+
density: FooterDensity;
|
|
17
|
+
status_label_mode: StatusLabelMode;
|
|
18
|
+
tone: FooterTone;
|
|
19
|
+
git_icon_mode: GitIconMode;
|
|
20
|
+
widgets: FooterWidgetState;
|
|
21
|
+
}
|
|
22
|
+
export declare const DEFAULT_FOOTER_WIDGETS: FooterWidgetState;
|
|
23
|
+
export declare const DEFAULT_FOOTER_STATE: FooterState;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export const FOOTER_PRESETS = [
|
|
2
|
+
'minimal',
|
|
3
|
+
'default',
|
|
4
|
+
'power',
|
|
5
|
+
'git-heavy',
|
|
6
|
+
];
|
|
7
|
+
export const FOOTER_DENSITIES = [
|
|
8
|
+
'compact',
|
|
9
|
+
'comfortable',
|
|
10
|
+
'expanded',
|
|
11
|
+
];
|
|
12
|
+
export const STATUS_LABEL_MODES = [
|
|
13
|
+
'smart',
|
|
14
|
+
'always',
|
|
15
|
+
'never',
|
|
16
|
+
];
|
|
17
|
+
export const FOOTER_TONES = ['muted', 'balanced', 'bright'];
|
|
18
|
+
export const GIT_ICON_MODES = ['nerd', 'plain'];
|
|
19
|
+
export const FOOTER_WIDGETS = [
|
|
20
|
+
'path',
|
|
21
|
+
'git',
|
|
22
|
+
'session',
|
|
23
|
+
'model',
|
|
24
|
+
'thinking',
|
|
25
|
+
'context',
|
|
26
|
+
'cost',
|
|
27
|
+
'tokens',
|
|
28
|
+
'statuses',
|
|
29
|
+
'preset',
|
|
30
|
+
];
|
|
31
|
+
export const DEFAULT_FOOTER_WIDGETS = {
|
|
32
|
+
path: true,
|
|
33
|
+
git: true,
|
|
34
|
+
session: true,
|
|
35
|
+
model: true,
|
|
36
|
+
thinking: true,
|
|
37
|
+
context: true,
|
|
38
|
+
cost: true,
|
|
39
|
+
tokens: true,
|
|
40
|
+
statuses: true,
|
|
41
|
+
preset: true,
|
|
42
|
+
};
|
|
43
|
+
export const DEFAULT_FOOTER_STATE = {
|
|
44
|
+
preset: 'default',
|
|
45
|
+
density: 'comfortable',
|
|
46
|
+
status_label_mode: 'smart',
|
|
47
|
+
tone: 'muted',
|
|
48
|
+
git_icon_mode: 'nerd',
|
|
49
|
+
widgets: DEFAULT_FOOTER_WIDGETS,
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/presets/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,SAAS;IACT,SAAS;IACT,OAAO;IACP,WAAW;CACF,CAAC;AAIX,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC/B,SAAS;IACT,aAAa;IACb,UAAU;CACD,CAAC;AAIX,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC,OAAO;IACP,QAAQ;IACR,OAAO;CACE,CAAC;AAIX,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAU,CAAC;AAIrE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,OAAO,CAAU,CAAC;AAIzD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,MAAM;IACN,KAAK;IACL,SAAS;IACT,OAAO;IACP,UAAU;IACV,SAAS;IACT,MAAM;IACN,QAAQ;IACR,UAAU;IACV,QAAQ;CACC,CAAC;AAeX,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACxD,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,IAAI;IACT,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,IAAI;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAChD,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,aAAa;IACtB,iBAAiB,EAAE,OAAO;IAC1B,IAAI,EAAE,OAAO;IACb,aAAa,EAAE,MAAM;IACrB,OAAO,EAAE,sBAAsB;CAC/B,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export const FOOTER_RESEARCH_REFERENCES = [
|
|
2
|
+
{
|
|
3
|
+
name: 'pi-footer',
|
|
4
|
+
package_name: 'pi-footer',
|
|
5
|
+
takeaways: [
|
|
6
|
+
'Config UI with live preview',
|
|
7
|
+
'Preset and widget model',
|
|
8
|
+
'Persisted footer configuration',
|
|
9
|
+
],
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
name: 'pi-powerline-footer',
|
|
13
|
+
package_name: 'pi-powerline-footer',
|
|
14
|
+
takeaways: [
|
|
15
|
+
'Color-coded segment system',
|
|
16
|
+
'Git and context warning priority',
|
|
17
|
+
'Opinionated powerline presets',
|
|
18
|
+
],
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: '@feniix/pi-statusline',
|
|
22
|
+
package_name: '@feniix/pi-statusline',
|
|
23
|
+
takeaways: [
|
|
24
|
+
'Fixed two-line statusline',
|
|
25
|
+
'Activity, skill, and worktree indicators',
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: '@sentiolabs/pi-scriptable-statusline',
|
|
30
|
+
package_name: '@sentiolabs/pi-scriptable-statusline',
|
|
31
|
+
takeaways: [
|
|
32
|
+
'User-owned renderer file',
|
|
33
|
+
'Reload and doctor commands',
|
|
34
|
+
],
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: '@ogulcancelik/pi-minimal-footer',
|
|
38
|
+
package_name: '@ogulcancelik/pi-minimal-footer',
|
|
39
|
+
takeaways: [
|
|
40
|
+
'Usage and quota bars',
|
|
41
|
+
'Compact git branch/dirty/ahead/behind display',
|
|
42
|
+
],
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'pi-ui-minimal',
|
|
46
|
+
package_name: 'pi-ui-minimal',
|
|
47
|
+
takeaways: ['Minimal/focus mode for low-noise sessions'],
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
//# sourceMappingURL=research.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research.js","sourceRoot":"","sources":["../../src/reference/research.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,0BAA0B,GAAsB;IAC5D;QACC,IAAI,EAAE,WAAW;QACjB,YAAY,EAAE,WAAW;QACzB,SAAS,EAAE;YACV,6BAA6B;YAC7B,yBAAyB;YACzB,gCAAgC;SAChC;KACD;IACD;QACC,IAAI,EAAE,qBAAqB;QAC3B,YAAY,EAAE,qBAAqB;QACnC,SAAS,EAAE;YACV,4BAA4B;YAC5B,kCAAkC;YAClC,+BAA+B;SAC/B;KACD;IACD;QACC,IAAI,EAAE,uBAAuB;QAC7B,YAAY,EAAE,uBAAuB;QACrC,SAAS,EAAE;YACV,2BAA2B;YAC3B,0CAA0C;SAC1C;KACD;IACD;QACC,IAAI,EAAE,sCAAsC;QAC5C,YAAY,EAAE,sCAAsC;QACpD,SAAS,EAAE;YACV,0BAA0B;YAC1B,4BAA4B;SAC5B;KACD;IACD;QACC,IAAI,EAAE,iCAAiC;QACvC,YAAY,EAAE,iCAAiC;QAC/C,SAAS,EAAE;YACV,sBAAsB;YACtB,+CAA+C;SAC/C;KACD;IACD;QACC,IAAI,EAAE,eAAe;QACrB,YAAY,EAAE,eAAe;QAC7B,SAAS,EAAE,CAAC,2CAA2C,CAAC;KACxD;CACD,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ExtensionContext, ReadonlyFooterDataProvider } from '@earendil-works/pi-coding-agent';
|
|
2
|
+
import type { FooterState } from '../presets/types.js';
|
|
3
|
+
import { type FooterTheme } from '../theme/tokens.js';
|
|
4
|
+
export declare function render_footer_lines(ctx: ExtensionContext, theme: FooterTheme, footer_data: ReadonlyFooterDataProvider, state: FooterState, width: number): string[];
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { truncateToWidth, visibleWidth, } from '@earendil-works/pi-tui';
|
|
2
|
+
import { build_footer_model, } from '../model/footer-model.js';
|
|
3
|
+
import { muted, themed_text, } from '../theme/tokens.js';
|
|
4
|
+
import { sanitize_status_text } from '../utils/text.js';
|
|
5
|
+
import { render_footer_status_line } from './status-line.js';
|
|
6
|
+
function enabled_items(items) {
|
|
7
|
+
return items.filter(([, enabled]) => enabled).map(([text]) => text);
|
|
8
|
+
}
|
|
9
|
+
function render_stats_line(model, theme, state, width) {
|
|
10
|
+
const stats_left = enabled_items([
|
|
11
|
+
[model.token_parts.join(' '), state.widgets.tokens],
|
|
12
|
+
[
|
|
13
|
+
model.cost_text ?? '',
|
|
14
|
+
state.widgets.cost && Boolean(model.cost_text),
|
|
15
|
+
],
|
|
16
|
+
[model.context_text, state.widgets.context],
|
|
17
|
+
]).join(' ');
|
|
18
|
+
const right_parts = enabled_items([
|
|
19
|
+
[model.model_name, state.widgets.model],
|
|
20
|
+
[
|
|
21
|
+
model.thinking_text ?? '',
|
|
22
|
+
state.widgets.thinking && Boolean(model.thinking_text),
|
|
23
|
+
],
|
|
24
|
+
]);
|
|
25
|
+
const right_side = right_parts.join(' • ');
|
|
26
|
+
if (!stats_left && !right_side)
|
|
27
|
+
return undefined;
|
|
28
|
+
let left = stats_left;
|
|
29
|
+
let left_width = visibleWidth(left);
|
|
30
|
+
if (left_width > width) {
|
|
31
|
+
left = truncateToWidth(left, width, '...');
|
|
32
|
+
left_width = visibleWidth(left);
|
|
33
|
+
}
|
|
34
|
+
if (!right_side)
|
|
35
|
+
return themed_text(theme, state.tone, left);
|
|
36
|
+
if (!left) {
|
|
37
|
+
return truncateToWidth(themed_text(theme, state.tone, right_side), width, muted(theme, '...'));
|
|
38
|
+
}
|
|
39
|
+
const right_width = visibleWidth(right_side);
|
|
40
|
+
const available_for_right = Math.max(0, width - left_width - 2);
|
|
41
|
+
const rendered_right = left_width + 2 + right_width <= width
|
|
42
|
+
? right_side
|
|
43
|
+
: truncateToWidth(right_side, available_for_right, '');
|
|
44
|
+
const gap = Math.max(1, width - left_width - visibleWidth(rendered_right));
|
|
45
|
+
return (themed_text(theme, state.tone, left) +
|
|
46
|
+
' '.repeat(gap) +
|
|
47
|
+
themed_text(theme, state.tone, rendered_right));
|
|
48
|
+
}
|
|
49
|
+
function render_status_label(key, text, state) {
|
|
50
|
+
const sanitized = sanitize_status_text(text);
|
|
51
|
+
if (state.status_label_mode === 'never')
|
|
52
|
+
return sanitized;
|
|
53
|
+
if (state.status_label_mode === 'always')
|
|
54
|
+
return `${key}:${sanitized}`;
|
|
55
|
+
if (sanitized.toLowerCase().startsWith(key.toLowerCase()))
|
|
56
|
+
return sanitized;
|
|
57
|
+
return `${key}:${sanitized}`;
|
|
58
|
+
}
|
|
59
|
+
function prioritized_statuses(statuses) {
|
|
60
|
+
const priority = ['mcp', 'team', 'lsp', 'recall', 'nopeek'];
|
|
61
|
+
return Array.from(statuses.entries()).sort(([a], [b]) => {
|
|
62
|
+
const a_index = priority.indexOf(a);
|
|
63
|
+
const b_index = priority.indexOf(b);
|
|
64
|
+
if (a_index !== -1 || b_index !== -1) {
|
|
65
|
+
return ((a_index === -1 ? 99 : a_index) -
|
|
66
|
+
(b_index === -1 ? 99 : b_index));
|
|
67
|
+
}
|
|
68
|
+
return a.localeCompare(b);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
function render_statuses(model, theme, state, width) {
|
|
72
|
+
if (!state.widgets.statuses && !state.widgets.preset)
|
|
73
|
+
return undefined;
|
|
74
|
+
const other_statuses = state.widgets.statuses
|
|
75
|
+
? prioritized_statuses(model.statuses).map(([key, text]) => render_status_label(key, text, state))
|
|
76
|
+
: [];
|
|
77
|
+
return render_footer_status_line(theme, width, other_statuses, state.widgets.preset ? model.preset_status : undefined, state.tone);
|
|
78
|
+
}
|
|
79
|
+
function render_path_line(model, theme, state, width) {
|
|
80
|
+
const left = enabled_items([
|
|
81
|
+
[model.path_text, state.widgets.path],
|
|
82
|
+
[
|
|
83
|
+
model.git_text ? `(${model.git_text})` : '',
|
|
84
|
+
state.widgets.git && Boolean(model.git_text),
|
|
85
|
+
],
|
|
86
|
+
]);
|
|
87
|
+
const right = state.widgets.session
|
|
88
|
+
? model.session_text
|
|
89
|
+
: undefined;
|
|
90
|
+
return render_footer_status_line(theme, width, left, right, state.tone);
|
|
91
|
+
}
|
|
92
|
+
export function render_footer_lines(ctx, theme, footer_data, state, width) {
|
|
93
|
+
const model = build_footer_model(ctx, footer_data, theme, state.git_icon_mode);
|
|
94
|
+
const lines = [];
|
|
95
|
+
const path_line = render_path_line(model, theme, state, width);
|
|
96
|
+
const stats_line = render_stats_line(model, theme, state, width);
|
|
97
|
+
const status_line = render_statuses(model, theme, state, width);
|
|
98
|
+
if (state.density === 'compact' || state.preset === 'minimal') {
|
|
99
|
+
const compact_left = [path_line, stats_line]
|
|
100
|
+
.filter(Boolean)
|
|
101
|
+
.join(' ');
|
|
102
|
+
const compact = render_footer_status_line(theme, width, [compact_left], status_line, state.tone);
|
|
103
|
+
return compact ? [compact] : [];
|
|
104
|
+
}
|
|
105
|
+
if (path_line)
|
|
106
|
+
lines.push(truncateToWidth(path_line, width, muted(theme, '...')));
|
|
107
|
+
if (stats_line)
|
|
108
|
+
lines.push(truncateToWidth(stats_line, width, muted(theme, '...')));
|
|
109
|
+
if (status_line)
|
|
110
|
+
lines.push(status_line);
|
|
111
|
+
if (state.density === 'expanded' || state.preset === 'power') {
|
|
112
|
+
const footer_mode = themed_text(theme, state.tone, `footer:${state.preset} density:${state.density}`);
|
|
113
|
+
lines.push(truncateToWidth(footer_mode, width, muted(theme, '...')));
|
|
114
|
+
}
|
|
115
|
+
return lines;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=footer-lines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"footer-lines.js","sourceRoot":"","sources":["../../src/render/footer-lines.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { FooterModel } from '../model/footer-model.js';
|
|
2
|
+
import type { FooterState } from '../presets/types.js';
|
|
3
|
+
import type { FooterTheme } from '../theme/tokens.js';
|
|
4
|
+
export declare const PREVIEW_WIDTH = 72;
|
|
5
|
+
export declare function make_preview_footer_model(): FooterModel;
|
|
6
|
+
export declare function render_footer_preview(theme: FooterTheme, state: FooterState, width?: number): string[];
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { render_model_footer_lines } from './footer-lines.js';
|
|
2
|
+
export const PREVIEW_WIDTH = 72;
|
|
3
|
+
export function make_preview_footer_model() {
|
|
4
|
+
return {
|
|
5
|
+
cwd: '/home/scott/repos/my-pi',
|
|
6
|
+
path_text: '~/repos/my-pi',
|
|
7
|
+
git: {
|
|
8
|
+
branch: 'main',
|
|
9
|
+
dirty: 2,
|
|
10
|
+
staged: 1,
|
|
11
|
+
untracked: 1,
|
|
12
|
+
ahead: 1,
|
|
13
|
+
behind: 0,
|
|
14
|
+
},
|
|
15
|
+
git_text: 'main ±2 ●1 ?1 ↑1',
|
|
16
|
+
session_text: 'footer-preview',
|
|
17
|
+
token_parts: ['↑12k', '↓4.2k', 'R8k'],
|
|
18
|
+
cost_text: '$0.032',
|
|
19
|
+
context_text: '42.0%/200k',
|
|
20
|
+
model_name: 'claude-sonnet',
|
|
21
|
+
provider: 'anthropic',
|
|
22
|
+
thinking_text: 'high',
|
|
23
|
+
model_text: '(anthropic) claude-sonnet • high',
|
|
24
|
+
statuses: new Map([
|
|
25
|
+
['mcp', 'MCP 6/6 connected'],
|
|
26
|
+
['lsp', 'LSP ready'],
|
|
27
|
+
]),
|
|
28
|
+
preset_status: 'prompt:terse +1',
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export function render_footer_preview(theme, state, width = PREVIEW_WIDTH) {
|
|
32
|
+
return render_model_footer_lines(make_preview_footer_model(), theme, state, width);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../src/render/preview.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAEhC,MAAM,UAAU,yBAAyB;IACxC,OAAO;QACN,GAAG,EAAE,yBAAyB;QAC9B,SAAS,EAAE,eAAe;QAC1B,GAAG,EAAE;YACJ,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;YACZ,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;SACT;QACD,QAAQ,EAAE,kBAAkB;QAC5B,YAAY,EAAE,gBAAgB;QAC9B,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;QACrC,SAAS,EAAE,QAAQ;QACnB,YAAY,EAAE,YAAY;QAC1B,UAAU,EAAE,eAAe;QAC3B,QAAQ,EAAE,WAAW;QACrB,aAAa,EAAE,MAAM;QACrB,UAAU,EAAE,kCAAkC;QAC9C,QAAQ,EAAE,IAAI,GAAG,CAAC;YACjB,CAAC,KAAK,EAAE,mBAAmB,CAAC;YAC5B,CAAC,KAAK,EAAE,WAAW,CAAC;SACpB,CAAC;QACF,aAAa,EAAE,iBAAiB;KAChC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACpC,KAAkB,EAClB,KAAkB,EAClB,KAAK,GAAG,aAAa;IAErB,OAAO,yBAAyB,CAC/B,yBAAyB,EAAE,EAC3B,KAAK,EACL,KAAK,EACL,KAAK,CACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { FooterTone } from '../presets/types.js';
|
|
2
|
+
import { type FooterTheme } from '../theme/tokens.js';
|
|
3
|
+
export declare function render_footer_status_line(theme: FooterTheme, width: number, left_items: string[], right_item?: string, tone?: FooterTone): string | undefined;
|