bkper 5.1.0 → 5.3.0

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.
Files changed (54) hide show
  1. package/README.md +16 -0
  2. package/lib/agent/extensions/bkper-ai-provider.d.ts.map +1 -1
  3. package/lib/agent/extensions/bkper-ai-provider.js +46 -17
  4. package/lib/agent/extensions/bkper-ai-provider.js.map +1 -1
  5. package/lib/agent/extensions/builtins.d.ts +2 -2
  6. package/lib/agent/extensions/builtins.d.ts.map +1 -1
  7. package/lib/agent/extensions/builtins.js +10 -2
  8. package/lib/agent/extensions/builtins.js.map +1 -1
  9. package/lib/agent/extensions/core-concepts-preload.d.ts +16 -4
  10. package/lib/agent/extensions/core-concepts-preload.d.ts.map +1 -1
  11. package/lib/agent/extensions/core-concepts-preload.js +77 -47
  12. package/lib/agent/extensions/core-concepts-preload.js.map +1 -1
  13. package/lib/agent/extensions/startup-logo.d.ts +12 -0
  14. package/lib/agent/extensions/startup-logo.d.ts.map +1 -0
  15. package/lib/agent/extensions/startup-logo.js +101 -0
  16. package/lib/agent/extensions/startup-logo.js.map +1 -0
  17. package/lib/agent/extensions/startup.d.ts +2 -2
  18. package/lib/agent/extensions/startup.d.ts.map +1 -1
  19. package/lib/agent/extensions/startup.js +82 -35
  20. package/lib/agent/extensions/startup.js.map +1 -1
  21. package/lib/agent/interactive/logo-3d.d.ts +125 -0
  22. package/lib/agent/interactive/logo-3d.d.ts.map +1 -0
  23. package/lib/agent/interactive/logo-3d.js +1187 -0
  24. package/lib/agent/interactive/logo-3d.js.map +1 -0
  25. package/lib/agent/interactive/prompt-history-store.d.ts +1 -0
  26. package/lib/agent/interactive/prompt-history-store.d.ts.map +1 -1
  27. package/lib/agent/interactive/prompt-history-store.js +19 -5
  28. package/lib/agent/interactive/prompt-history-store.js.map +1 -1
  29. package/lib/agent/interactive/run-agent-mode.d.ts.map +1 -1
  30. package/lib/agent/interactive/run-agent-mode.js +5 -2
  31. package/lib/agent/interactive/run-agent-mode.js.map +1 -1
  32. package/lib/agent/interactive/settings.d.ts +26 -4
  33. package/lib/agent/interactive/settings.d.ts.map +1 -1
  34. package/lib/agent/interactive/settings.js +106 -16
  35. package/lib/agent/interactive/settings.js.map +1 -1
  36. package/lib/agent/interactive/themes.d.ts +13 -0
  37. package/lib/agent/interactive/themes.d.ts.map +1 -0
  38. package/lib/agent/interactive/themes.js +36 -0
  39. package/lib/agent/interactive/themes.js.map +1 -0
  40. package/lib/agent/system-prompt.d.ts.map +1 -1
  41. package/lib/agent/system-prompt.js +42 -8
  42. package/lib/agent/system-prompt.js.map +1 -1
  43. package/lib/agent/themes/bkper-dark.json +80 -0
  44. package/lib/agent/themes/bkper-light.json +80 -0
  45. package/lib/cli.js +1 -1
  46. package/lib/cli.js.map +1 -1
  47. package/lib/commands/agent-command.d.ts.map +1 -1
  48. package/lib/commands/agent-command.js +2 -1
  49. package/lib/commands/agent-command.js.map +1 -1
  50. package/lib/docs/ai/decision-models.md +316 -0
  51. package/lib/docs/apps/ai.md +120 -88
  52. package/lib/docs/apps/overview.md +1 -1
  53. package/lib/docs/index.md +2 -1
  54. package/package.json +7 -5
@@ -7,13 +7,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { getKeybindings } from '@earendil-works/pi-tui';
10
+ import { getKeybindings, truncateToWidth, visibleWidth, } from '@earendil-works/pi-tui';
11
11
  import { getShellConfig, keyText, VERSION as PI_VERSION, } from '@earendil-works/pi-coding-agent';
12
12
  import { PROMPT_HISTORY_SHORTCUT } from '../interactive/prompt-history-shortcut.js';
13
13
  import { formatBkperSessionCommandShortcut, isShortcutClaimedByUserBinding, } from '../interactive/session-keybindings.js';
14
14
  import { runStartupMaintenance } from '../startup-maintenance.js';
15
15
  import { getBkperHandoffShortcut } from './handoff.js';
16
+ import { playLogo3d } from '../interactive/logo-3d.js';
17
+ import { BKPER_MARK_LOGO, getBkperLogoLines } from './startup-logo.js';
16
18
  const STARTUP_LEFT_PADDING = ' ';
19
+ const HINT_COLUMN_GAP = ' ';
17
20
  const NO_MODELS_STARTUP_HINT = 'No AI model provider configured. Use /login for Bkper AI or /connect for another ' +
18
21
  'model provider.';
19
22
  function wrapStartupHeaderLine(line, width) {
@@ -55,16 +58,29 @@ function wrapStartupHeaderLine(line, width) {
55
58
  }
56
59
  return wrappedLines;
57
60
  }
58
- const BKPER_BANNER = [
59
- '██████╗ ██╗ ██╗██████╗ ███████╗██████╗ ',
60
- '██╔══██╗██║ ██╔╝██╔══██╗██╔════╝██╔══██╗',
61
- '██████╔╝█████╔╝ ██████╔╝█████╗ ██████╔╝',
62
- '██╔══██╗██╔═██╗ ██╔═══╝ ██╔══╝ ██╔══██╗',
63
- '██████╔╝██║ ██╗██║ ███████╗██║ ██║',
64
- '╚═════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═╝ ╚═╝',
65
- ];
66
- function formatStartupHint(theme, key, description) {
67
- return theme.fg('dim', key) + theme.fg('muted', ` ${description}`);
61
+ function formatStartupHint(theme, hint) {
62
+ return theme.fg('accent', hint.key) + theme.fg('muted', ` ${hint.description}`);
63
+ }
64
+ /**
65
+ * Lays hints out in two columns when both fit in the width, filling the left column first so
66
+ * related hints stay together; otherwise one column.
67
+ */
68
+ function layoutStartupHints(theme, hints, width) {
69
+ const cells = hints.map(hint => formatStartupHint(theme, hint));
70
+ const leftCount = Math.ceil(cells.length / 2);
71
+ const left = cells.slice(0, leftCount);
72
+ const right = cells.slice(leftCount);
73
+ const leftWidth = Math.max(0, ...left.map(visibleWidth));
74
+ const rightWidth = Math.max(0, ...right.map(visibleWidth));
75
+ if (leftWidth + HINT_COLUMN_GAP.length + rightWidth > width) {
76
+ return cells;
77
+ }
78
+ return left.map((cell, index) => {
79
+ const rightCell = right[index];
80
+ return rightCell === undefined
81
+ ? cell
82
+ : cell + ' '.repeat(leftWidth - visibleWidth(cell)) + HINT_COLUMN_GAP + rightCell;
83
+ });
68
84
  }
69
85
  function isBashAvailable(shellPath) {
70
86
  try {
@@ -79,46 +95,77 @@ function formatHandoffStartupCommand() {
79
95
  const shortcut = getBkperHandoffShortcut(getKeybindings().getResolvedBindings());
80
96
  return shortcut ? `/handoff (${shortcut})` : '/handoff';
81
97
  }
98
+ function getStartupHints(showBashShortcut) {
99
+ const showPromptHistory = !isShortcutClaimedByUserBinding(getKeybindings().getUserBindings(), undefined, PROMPT_HISTORY_SHORTCUT);
100
+ return [
101
+ { key: keyText('app.interrupt'), description: 'to interrupt' },
102
+ { key: keyText('app.clear'), description: 'to clear' },
103
+ { key: `${keyText('app.clear')} twice`, description: 'to exit' },
104
+ ...(showPromptHistory
105
+ ? [{ key: PROMPT_HISTORY_SHORTCUT, description: 'to search prompt history' }]
106
+ : []),
107
+ { key: '/', description: 'for commands' },
108
+ ...(showBashShortcut ? [{ key: '!', description: 'to run bash' }] : []),
109
+ { key: '/new', description: 'to start new session' },
110
+ {
111
+ key: formatBkperSessionCommandShortcut('/resume', 'app.session.resume'),
112
+ description: 'to resume a session',
113
+ },
114
+ { key: '/clone', description: 'to duplicate session' },
115
+ {
116
+ key: formatBkperSessionCommandShortcut('/fork', 'app.session.fork'),
117
+ description: 'to branch from a message',
118
+ },
119
+ {
120
+ key: formatBkperSessionCommandShortcut('/tree', 'app.session.tree'),
121
+ description: 'for session tree',
122
+ },
123
+ { key: formatHandoffStartupCommand(), description: 'to continue in a focused session' },
124
+ ];
125
+ }
82
126
  function buildStartupHeaderLines(theme, modelRegistry, width, showBashShortcut) {
127
+ const contentWidth = Math.max(1, width - STARTUP_LEFT_PADDING.length);
128
+ const logo = getBkperLogoLines(contentWidth, theme.getColorMode());
83
129
  const lines = [
84
- ...BKPER_BANNER.map(line => theme.bold(theme.fg('accent', line))),
85
- theme.fg('muted', `powered by `) + theme.fg('dim', `pi v${PI_VERSION}`),
130
+ ...logo,
131
+ ...(logo.length > 0 ? [''] : []),
132
+ theme.fg('muted', 'powered by ') + theme.fg('dim', `pi v${PI_VERSION}`),
86
133
  '',
87
- formatStartupHint(theme, keyText('app.interrupt'), 'to interrupt'),
88
- formatStartupHint(theme, keyText('app.clear'), 'to clear'),
89
- formatStartupHint(theme, `${keyText('app.clear')} twice`, 'to exit'),
90
- ...(!isShortcutClaimedByUserBinding(getKeybindings().getUserBindings(), undefined, PROMPT_HISTORY_SHORTCUT)
91
- ? [
92
- formatStartupHint(theme, PROMPT_HISTORY_SHORTCUT, 'to search prompt history'),
93
- ]
94
- : []),
95
- formatStartupHint(theme, '/', 'for commands'),
96
- formatStartupHint(theme, '/new', 'to start new session'),
97
- formatStartupHint(theme, formatBkperSessionCommandShortcut('/resume', 'app.session.resume'), 'to resume a session'),
98
- formatStartupHint(theme, '/clone', 'to duplicate session'),
99
- formatStartupHint(theme, formatBkperSessionCommandShortcut('/fork', 'app.session.fork'), 'to branch from a message'),
100
- formatStartupHint(theme, formatBkperSessionCommandShortcut('/tree', 'app.session.tree'), 'for session tree'),
101
- formatStartupHint(theme, formatHandoffStartupCommand(), 'to continue in a focused session'),
134
+ ...layoutStartupHints(theme, getStartupHints(showBashShortcut), contentWidth),
102
135
  ];
103
- if (showBashShortcut) {
104
- lines.push(formatStartupHint(theme, '!', 'to run bash'));
105
- }
106
136
  if (modelRegistry.getAvailable().length === 0) {
107
- lines.push('', ...wrapStartupHeaderLine(NO_MODELS_STARTUP_HINT, width).map(line => theme.fg('warning', line)));
137
+ lines.push('', ...wrapStartupHeaderLine(NO_MODELS_STARTUP_HINT, contentWidth).map(line => theme.fg('warning', line)));
108
138
  }
109
- return lines.map(line => (line.length > 0 ? STARTUP_LEFT_PADDING + line : line));
139
+ // The TUI rejects lines wider than the terminal, so narrow terminals truncate hints.
140
+ return lines.map(line => line.length > 0 ? STARTUP_LEFT_PADDING + truncateToWidth(line, contentWidth) : line);
110
141
  }
111
142
  function createStartupHeaderFactory(modelRegistry, showBashShortcut) {
112
- return (_tui, theme) => ({
143
+ return (tui, theme) => ({
113
144
  render: (width) => buildStartupHeaderLines(theme, modelRegistry, width, showBashShortcut),
114
145
  invalidate: () => { },
146
+ // Clicking anywhere on the header plays the 3D logo easter egg in fullscreen mode. Nothing in the
147
+ // header is clickable otherwise, and drag-selecting its text does not produce a click.
148
+ handleMouse: (event) => {
149
+ const contentWidth = event.width - STARTUP_LEFT_PADDING.length;
150
+ if (event.type !== 'click' || event.button !== 'left')
151
+ return undefined;
152
+ if (getBkperLogoLines(contentWidth, theme.getColorMode()).length === 0)
153
+ return undefined;
154
+ // The logo is the header's first line, after the left padding.
155
+ const origin = {
156
+ column: event.screenX - event.x + STARTUP_LEFT_PADDING.length,
157
+ row: event.screenY - event.y,
158
+ };
159
+ return playLogo3d(tui, theme, BKPER_MARK_LOGO, origin) ? { handled: true } : undefined;
160
+ },
115
161
  });
116
162
  }
117
163
  export function registerBkperAgentStartupExtension(pi, startupMaintenance = runStartupMaintenance, settingsManager, bkperAiBaseUrlOverride, bashAvailable) {
118
164
  let startupMaintenanceTriggered = false;
119
165
  pi.on('session_start', (_event, ctx) => __awaiter(this, void 0, void 0, function* () {
120
166
  var _a, _b, _c, _d;
121
- if (!(settingsManager === null || settingsManager === void 0 ? void 0 : settingsManager.getQuietStartup())) {
167
+ // quietStartup "header" keeps the header (logo, version, key hints); only true hides it.
168
+ if ((settingsManager === null || settingsManager === void 0 ? void 0 : settingsManager.getQuietStartup()) !== true) {
122
169
  const showBashShortcut = bashAvailable !== null && bashAvailable !== void 0 ? bashAvailable : (((_c = (_b = (_a = settingsManager === null || settingsManager === void 0 ? void 0 : settingsManager.getDefaultTools) === null || _a === void 0 ? void 0 : _a.call(settingsManager)) === null || _b === void 0 ? void 0 : _b.includes('bash')) !== null && _c !== void 0 ? _c : true) &&
123
170
  isBashAvailable((_d = settingsManager === null || settingsManager === void 0 ? void 0 : settingsManager.getShellPath) === null || _d === void 0 ? void 0 : _d.call(settingsManager)));
124
171
  ctx.ui.setHeader(createStartupHeaderFactory(ctx.modelRegistry, showBashShortcut));
@@ -1 +1 @@
1
- {"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/agent/extensions/startup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startup.js","sourceRoot":"","sources":["../../../src/agent/extensions/startup.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACH,cAAc,EACd,eAAe,EACf,YAAY,GAGf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACH,cAAc,EACd,OAAO,EACP,OAAO,IAAI,UAAU,GAIxB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAC,uBAAuB,EAAC,MAAM,2CAA2C,CAAC;AAClF,OAAO,EACH,iCAAiC,EACjC,8BAA8B,GACjC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAC,uBAAuB,EAAC,MAAM,cAAc,CAAC;AACrD,OAAO,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAC,eAAe,EAAE,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAkBrE,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,eAAe,GAAG,MAAM,CAAC;AAC/B,MAAM,sBAAsB,GACxB,mFAAmF;IACnF,iBAAiB,CAAC;AAEtB,SAAS,qBAAqB,CAAC,IAAY,EAAE,KAAa;IACtD,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAEhC,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAED,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAQ,EAAE;QACpC,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,WAAW,GAAG,IAAI,CAAC;YACnB,OAAO;QACX,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,WAAW,IAAI,IAAI,EAAE,CAAC;QAC3C,IAAI,SAAS,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;YACtC,WAAW,GAAG,SAAS,CAAC;YACxB,OAAO;QACX,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/B,WAAW,GAAG,IAAI,CAAC;IACvB,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,SAAS;QACb,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YACd,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/B,WAAW,GAAG,EAAE,CAAC;QACrB,CAAC;QAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,eAAe,EAAE,CAAC;YAChE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QACd,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,YAAY,CAAC;AACxB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAY,EAAE,IAAiB;IACtD,OAAO,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACpF,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,KAAY,EAAE,KAAoB,EAAE,KAAa;IACzE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;IAE3D,IAAI,SAAS,GAAG,eAAe,CAAC,MAAM,GAAG,UAAU,GAAG,KAAK,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,SAAS,KAAK,SAAS;YAC1B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,eAAe,GAAG,SAAS,CAAC;IAC1F,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,eAAe,CAAC,SAAkB;IACvC,IAAI,CAAC;QACD,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,WAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,SAAS,2BAA2B;IAChC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,cAAc,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACjF,OAAO,QAAQ,CAAC,CAAC,CAAC,aAAa,QAAQ,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;AAC5D,CAAC;AAED,SAAS,eAAe,CAAC,gBAAyB;IAC9C,MAAM,iBAAiB,GAAG,CAAC,8BAA8B,CACrD,cAAc,EAAE,CAAC,eAAe,EAAE,EAClC,SAAS,EACT,uBAAuB,CAC1B,CAAC;IAEF,OAAO;QACH,EAAC,GAAG,EAAE,OAAO,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,cAAc,EAAC;QAC5D,EAAC,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,UAAU,EAAC;QACpD,EAAC,GAAG,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAC;QAC9D,GAAG,CAAC,iBAAiB;YACjB,CAAC,CAAC,CAAC,EAAC,GAAG,EAAE,uBAAuB,EAAE,WAAW,EAAE,0BAA0B,EAAC,CAAC;YAC3E,CAAC,CAAC,EAAE,CAAC;QACT,EAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,EAAC;QACvC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,EAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAC;QAClD;YACI,GAAG,EAAE,iCAAiC,CAAC,SAAS,EAAE,oBAAoB,CAAC;YACvE,WAAW,EAAE,qBAAqB;SACrC;QACD,EAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAC;QACpD;YACI,GAAG,EAAE,iCAAiC,CAAC,OAAO,EAAE,kBAAkB,CAAC;YACnE,WAAW,EAAE,0BAA0B;SAC1C;QACD;YACI,GAAG,EAAE,iCAAiC,CAAC,OAAO,EAAE,kBAAkB,CAAC;YACnE,WAAW,EAAE,kBAAkB;SAClC;QACD,EAAC,GAAG,EAAE,2BAA2B,EAAE,EAAE,WAAW,EAAE,kCAAkC,EAAC;KACxF,CAAC;AACN,CAAC;AAED,SAAS,uBAAuB,CAC5B,KAAY,EACZ,aAAgC,EAChC,KAAa,EACb,gBAAyB;IAEzB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG;QACV,GAAG,IAAI;QACP,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,UAAU,EAAE,CAAC;QACvE,EAAE;QACF,GAAG,kBAAkB,CAAC,KAAK,EAAE,eAAe,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC;KAChF,CAAC;IAEF,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,KAAK,CAAC,IAAI,CACN,EAAE,EACF,GAAG,qBAAqB,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACtE,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAC5B,CACJ,CAAC;IACN,CAAC;IAED,qFAAqF;IACrF,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACpB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,GAAG,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CACtF,CAAC;AACN,CAAC;AAED,SAAS,0BAA0B,CAC/B,aAAgC,EAChC,gBAAyB;IAEzB,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACpB,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CACtB,uBAAuB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAgB,CAAC;QAC1E,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;QACpB,kGAAkG;QAClG,uFAAuF;QACvF,WAAW,EAAE,CAAC,KAAoB,EAAE,EAAE;YAClC,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC;YAC/D,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;gBAAE,OAAO,SAAS,CAAC;YACxE,IAAI,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC;gBAClE,OAAO,SAAS,CAAC;YACrB,+DAA+D;YAC/D,MAAM,MAAM,GAAG;gBACX,MAAM,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,GAAG,oBAAoB,CAAC,MAAM;gBAC7D,GAAG,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;aAC/B,CAAC;YACF,OAAO,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzF,CAAC;KACJ,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,kCAAkC,CAC9C,EAAuB,EACvB,qBAAmD,qBAAqB,EACxE,eAIC,EACD,sBAA+B,EAC/B,aAAuB;IAEvB,IAAI,2BAA2B,GAAG,KAAK,CAAC;IAExC,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAO,MAAM,EAAE,GAAG,EAAE,EAAE;;QACzC,yFAAyF;QACzF,IAAI,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,eAAe,EAAE,MAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,gBAAgB,GAClB,aAAa,aAAb,aAAa,cAAb,aAAa,GACb,CAAC,CAAC,MAAA,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,eAAe,+DAAI,0CAAE,QAAQ,CAAC,MAAM,CAAC,mCAAI,IAAI,CAAC;gBAC7D,eAAe,CAAC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,YAAY,+DAAI,CAAC,CAAC,CAAC;YAC5D,GAAG,CAAC,EAAE,CAAC,SAAS,CACZ,0BAA0B,CAAC,GAAG,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAClE,CAAC;QACN,CAAC;QAED,IAAI,2BAA2B,EAAE,CAAC;YAC9B,OAAO;QACX,CAAC;QACD,2BAA2B,GAAG,IAAI,CAAC;QAEnC,IAAI,sBAAsB,EAAE,CAAC;YACzB,GAAG,CAAC,EAAE,CAAC,MAAM,CACT,sCAAsC,sBAAsB,EAAE,EAC9D,SAAS,CACZ,CAAC;QACN,CAAC;QAED,KAAK,kBAAkB,CAAC;YACpB,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;SAC1D,CAAC,CAAC;IACP,CAAC,CAAA,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,125 @@
1
+ import type { Theme } from '@earendil-works/pi-coding-agent';
2
+ import { type Color, type Component, type TerminalColorMode, type TUI, type TuiMouseEvent, type TuiMouseEventResult } from '@earendil-works/pi-tui';
3
+ /**
4
+ * Fullscreen 3D logo easter egg, played by clicking the header logo. The logo bitmap is built from one block per
5
+ * pixel. The current screen dissolves into braille dust while the model spins in the center and its blocks play a
6
+ * sliding puzzle. Leaving plays the same timeline backwards, so the screen reassembles.
7
+ *
8
+ * The logo lifts off the header, flies to the center, and grows; the dust spreads out from the header logo.
9
+ *
10
+ * The blocks are ray cast per braille dot. A braille cell holds 2x4 roughly square dots, so one pixel of a
11
+ * half-block bitmap is exactly 2x2 dots, and the header logo is drawn at its exact size when it lifts off.
12
+ *
13
+ * Adapted from Pi's 3D logo easter egg (MIT License, Copyright (c) Mario Zechner), from
14
+ * packages/coding-agent/src/modes/interactive/components/easter-egg-3d.ts at pi commit c450f2c0f8. Pi does not
15
+ * export it; if it ever does, replace this copy with the export. Changes from upstream: the model is built from any
16
+ * half-block pixel logo instead of the pi logo or Armin, and theme colors are resolved once into a palette because
17
+ * Pi's theme singleton is internal.
18
+ */
19
+ export type Rgb = readonly [number, number, number];
20
+ /** Grid position of a block: column and row in the bitmap, and layer (-1, 0, 1) in depth. */
21
+ type Cell3 = readonly [number, number, number];
22
+ /** A bitmap built from one block per foreground pixel. Each is a block that the puzzle slides around. */
23
+ export interface Model {
24
+ /** Bitmap size in pixels. */
25
+ columns: number;
26
+ rows: number;
27
+ blocks: Array<{
28
+ home: Cell3;
29
+ color: Rgb;
30
+ }>;
31
+ /** Camera distance from the model's center, in pixels. */
32
+ cameraDistance: number;
33
+ /** Farthest distance of any block corner from the center, with blocks on the outer depth layers. */
34
+ radius: number;
35
+ /** Largest share of the screen width the spinning model covers. */
36
+ widthShare: number;
37
+ /** Number of blocks the puzzle moves per step, given a random number from 0 to 1. */
38
+ puzzleMoves: (random: number) => number;
39
+ /**
40
+ * Top-left cell of the model's half-block rendering on screen. The model lifts off from there and replaces it.
41
+ * Undefined to grow out of the center.
42
+ */
43
+ origin: {
44
+ column: number;
45
+ row: number;
46
+ } | undefined;
47
+ }
48
+ /** A logo as square pixels, one character per pixel and '.' for transparent, rendered with half blocks. */
49
+ export interface PixelLogo {
50
+ pixels: readonly string[];
51
+ colors: Readonly<Record<string, Color>>;
52
+ }
53
+ /** Top-left cell of a logo's half-block rendering on screen. */
54
+ export interface LogoOrigin {
55
+ column: number;
56
+ row: number;
57
+ }
58
+ /** The 3D model of a pixel logo that lifts off its half-block rendering at `origin`. */
59
+ export declare function createLogoModel(logo: PixelLogo, origin: LogoOrigin): Model;
60
+ /** Colors the animation fades between, resolved from the terminal and theme when it starts. */
61
+ export interface Logo3dPalette {
62
+ foreground: Rgb;
63
+ background: Rgb;
64
+ /** The key and the text of the "escape to return" hint. */
65
+ hintKey: Rgb;
66
+ hintText: Rgb;
67
+ colorMode: TerminalColorMode;
68
+ }
69
+ /** The part of the TUI the animation drives. */
70
+ export type Logo3dHost = Pick<TUI, 'requestRender'> & {
71
+ readonly terminal: {
72
+ readonly rows: number;
73
+ };
74
+ };
75
+ /**
76
+ * Plays the logo lifting off its half-block rendering at `origin`. Only fullscreen mode can show it, because it
77
+ * dissolves the rendered screen, which is captured right away. Returns false when it cannot play.
78
+ */
79
+ export declare function playLogo3d(tui: unknown, theme: Theme, logo: PixelLogo, origin: LogoOrigin): boolean;
80
+ export declare class Logo3dAnimation implements Component {
81
+ private readonly tui;
82
+ /** The screen to dissolve, as rendered lines. */
83
+ private readonly screen;
84
+ private readonly model;
85
+ private readonly foreground;
86
+ private readonly background;
87
+ private readonly palette;
88
+ private readonly onDone;
89
+ private readonly startTime;
90
+ private lastRender;
91
+ private timer;
92
+ private exit;
93
+ private shuffle;
94
+ private screenWidth;
95
+ private screenHeight;
96
+ /** Star per cell index, or undefined. */
97
+ private stars;
98
+ private cells;
99
+ private readonly ansiCache;
100
+ private readonly raster;
101
+ constructor(tui: Logo3dHost, screen: readonly string[], model: Model, palette: Logo3dPalette, onDone: () => void);
102
+ /** Play the exit animation. A second call skips it. */
103
+ close(): void;
104
+ handleInput(data: string): void;
105
+ handleMouse(event: TuiMouseEvent): TuiMouseEventResult;
106
+ invalidate(): void;
107
+ render(width: number): string[];
108
+ private elapsed;
109
+ private exitProgress;
110
+ private finish;
111
+ /** Each block's displacement from its place in the model at `time`, in grid units. */
112
+ private blockOffsets;
113
+ private flyProgress;
114
+ private starAlpha;
115
+ private hintAlpha;
116
+ private pose;
117
+ private hint;
118
+ /** A sparse, deterministic starfield: one braille dot in about STAR_DENSITY of all cells. */
119
+ private prepareStars;
120
+ private prepareCells;
121
+ private pack;
122
+ private ansi;
123
+ }
124
+ export {};
125
+ //# sourceMappingURL=logo-3d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logo-3d.d.ts","sourceRoot":"","sources":["../../../src/agent/interactive/logo-3d.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAEH,KAAK,KAAK,EACV,KAAK,SAAS,EAMd,KAAK,iBAAiB,EACtB,KAAK,GAAG,EAER,KAAK,aAAa,EAClB,KAAK,mBAAmB,EAE3B,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAkDpD,6FAA6F;AAC7F,KAAK,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE/C,yGAAyG;AACzG,MAAM,WAAW,KAAK;IAClB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAC,CAAC,CAAC;IACzC,0DAA0D;IAC1D,cAAc,EAAE,MAAM,CAAC;IACvB,oGAAoG;IACpG,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC;;;OAGG;IACH,MAAM,EAAE;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,GAAG,SAAS,CAAC;CACrD;AA6BD,2GAA2G;AAC3G,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;CAC3C;AAED,gEAAgE;AAChE,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACf;AAED,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,KAAK,CAoB1E;AAotBD,+FAA+F;AAC/F,MAAM,WAAW,aAAa;IAC1B,UAAU,EAAE,GAAG,CAAC;IAChB,UAAU,EAAE,GAAG,CAAC;IAChB,2DAA2D;IAC3D,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,GAAG,CAAC;IACd,SAAS,EAAE,iBAAiB,CAAC;CAChC;AAED,gDAAgD;AAChD,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,GAAG;IAAC,QAAQ,CAAC,QAAQ,EAAE;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAA;CAAC,CAAC;AAInG;;;GAGG;AACH,wBAAgB,UAAU,CACtB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,UAAU,GACnB,OAAO,CAQT;AA0CD,qBAAa,eAAgB,YAAW,SAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAM;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAM;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,KAAK,CAA6C;IAC1D,OAAO,CAAC,IAAI,CAQI;IAChB,OAAO,CAAC,OAAO,CAAgD;IAC/D,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,YAAY,CAAM;IAC1B,yCAAyC;IACzC,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;gBAGjC,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,IAAI;IAsBtB,uDAAuD;IACvD,KAAK,IAAI,IAAI;IAiBb,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAS/B,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,mBAAmB;IAKtD,UAAU,IAAI,IAAI;IAMlB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAqM/B,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,MAAM;IAOd,sFAAsF;IACtF,OAAO,CAAC,YAAY;IA4CpB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,IAAI;IA4BZ,OAAO,CAAC,IAAI;IAsBZ,6FAA6F;IAC7F,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,YAAY;IA+CpB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,IAAI;CAWf"}