paean 0.8.23 → 0.8.24

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.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Header Component
3
3
  * Compact header with ASCII logo + status info side-by-side
4
- * Inspired by Claude Code's concise 3-line header design
4
+ * Logo rendered as single Text block to eliminate inter-line gaps
5
5
  */
6
6
  import React from 'react';
7
7
  interface HeaderProps {
@@ -1 +1 @@
1
- {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/ui/components/Header.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAkB,MAAM,OAAO,CAAC;AAKvC,UAAU,WAAW;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAgCD,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAoCxC,CAAC"}
1
+ {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/ui/components/Header.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAkB,MAAM,OAAO,CAAC;AAKvC,UAAU,WAAW;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA0CxC,CAAC"}
@@ -2,21 +2,22 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /**
3
3
  * Header Component
4
4
  * Compact header with ASCII logo + status info side-by-side
5
- * Inspired by Claude Code's concise 3-line header design
5
+ * Logo rendered as single Text block to eliminate inter-line gaps
6
6
  */
7
7
  import { useMemo } from 'react';
8
8
  import { Box, Text } from 'ink';
9
9
  import { ASCII_LOGO_LINES, INK_COLORS, SEPARATOR_CHAR } from '../theme/ink-theme.js';
10
10
  import { useTerminalSize } from '../hooks/index.js';
11
- /** Build the right-side info lines to pair with the logo lines */
12
- function buildInfoLines(props) {
13
- const { mcpToolCount, gatewayOnline, workerOnline } = props;
14
- // Line 1: App name + version
15
- const line1 = [
16
- { text: 'Paean Agent CLI', bold: true },
17
- ];
18
- // Line 2: Status badges
19
- const line2 = [];
11
+ export const Header = ({ mcpToolCount, gatewayOnline, workerOnline }) => {
12
+ const { columns } = useTerminalSize();
13
+ const separatorLine = useMemo(() => {
14
+ const width = Math.max(0, columns - 2);
15
+ return SEPARATOR_CHAR.repeat(width);
16
+ }, [columns]);
17
+ // Join logo lines into a single string so Ink renders them as one text
18
+ // block with no inter-line layout gaps
19
+ const logoBlock = ASCII_LOGO_LINES.join('\n');
20
+ // Build status badges
20
21
  const badges = [];
21
22
  if (mcpToolCount && mcpToolCount > 0)
22
23
  badges.push(`⚡ ${mcpToolCount} tools`);
@@ -24,26 +25,7 @@ function buildInfoLines(props) {
24
25
  badges.push('⬡ Gateway');
25
26
  if (workerOnline)
26
27
  badges.push('⚙ Worker');
27
- if (badges.length > 0) {
28
- line2.push({ text: badges.join(' · '), color: 'green' });
29
- }
30
- else {
31
- line2.push({ text: 'Interactive Agent Session', dimColor: true });
32
- }
33
- // Line 3: cwd
34
28
  const cwd = process.cwd().replace(process.env['HOME'] ?? '', '~');
35
- const line3 = [
36
- { text: cwd, dimColor: true },
37
- ];
38
- return [line1, line2, line3];
39
- }
40
- export const Header = (props) => {
41
- const { columns } = useTerminalSize();
42
- const separatorLine = useMemo(() => {
43
- const width = Math.max(0, columns - 2);
44
- return SEPARATOR_CHAR.repeat(width);
45
- }, [columns]);
46
- const infoLines = buildInfoLines(props);
47
- return (_jsxs(Box, { flexDirection: "column", marginBottom: 0, children: [ASCII_LOGO_LINES.map((logoLine, i) => (_jsxs(Box, { children: [_jsx(Text, { color: INK_COLORS.primary, children: logoLine }), _jsx(Text, { children: " " }), infoLines[i]?.map((seg, j) => (_jsx(Text, { color: seg.color, bold: seg.bold, dimColor: seg.dimColor, children: seg.text }, j)))] }, i))), _jsx(Box, { children: _jsx(Text, { color: "gray", children: separatorLine }) })] }));
29
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 0, children: [_jsxs(Box, { children: [_jsx(Text, { color: INK_COLORS.primary, children: logoBlock }), _jsxs(Box, { flexDirection: "column", marginLeft: 2, children: [_jsx(Text, { bold: true, children: "Paean Agent CLI" }), badges.length > 0 ? (_jsx(Text, { color: "green", children: badges.join(' · ') })) : (_jsx(Text, { dimColor: true, children: "Interactive Agent Session" })), _jsx(Text, { dimColor: true, children: cwd })] })] }), _jsx(Box, { children: _jsx(Text, { color: "gray", children: separatorLine }) })] }));
48
30
  };
49
31
  //# sourceMappingURL=Header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/ui/components/Header.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/ui/components/Header.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAUpD,MAAM,CAAC,MAAM,MAAM,GAA0B,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,EAAE;IAC3F,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAC;IAEtC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;QACvC,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,uEAAuE;IACvE,uCAAuC;IACvC,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE9C,sBAAsB;IACtB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,YAAY,IAAI,YAAY,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,KAAK,YAAY,QAAQ,CAAC,CAAC;IAC7E,IAAI,aAAa;QAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,YAAY;QAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE1C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;IAElE,OAAO,CACH,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,aAEvC,MAAC,GAAG,eACA,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,OAAO,YAAG,SAAS,GAAQ,EACnD,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,aACrC,KAAC,IAAI,IAAC,IAAI,sCAAuB,EAChC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACjB,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAQ,CAClD,CAAC,CAAC,CAAC,CACA,KAAC,IAAI,IAAC,QAAQ,gDAAiC,CAClD,EACD,KAAC,IAAI,IAAC,QAAQ,kBAAE,GAAG,GAAQ,IACzB,IACJ,EAGN,KAAC,GAAG,cACA,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,aAAa,GAAQ,GACvC,IACJ,CACT,CAAC;AACN,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ink-theme.d.ts","sourceRoot":"","sources":["../../../src/ui/theme/ink-theme.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,MAAM;;;;;;;;CAQlB,CAAC;AAGF,eAAO,MAAM,UAAU;;;;;;;CAOtB,CAAC;AAGF,eAAO,MAAM,gBAAgB,UAI5B,CAAC;AAGF,eAAO,MAAM,YAAY,iBAAY,CAAC;AAGtC,eAAO,MAAM,OAAO;;;;;;;;;;;;CAYnB,CAAC;AAIF,eAAO,MAAM,eAAe,UAAiC,CAAC;AAG9D,eAAO,MAAM,iBAAiB,UAQ7B,CAAC;AAGF,eAAO,MAAM,cAAc,WAAM,CAAC"}
1
+ {"version":3,"file":"ink-theme.d.ts","sourceRoot":"","sources":["../../../src/ui/theme/ink-theme.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,MAAM;;;;;;;;CAQlB,CAAC;AAGF,eAAO,MAAM,UAAU;;;;;;;CAOtB,CAAC;AAGF,eAAO,MAAM,gBAAgB,UAK5B,CAAC;AAGF,eAAO,MAAM,YAAY,iBAAY,CAAC;AAGtC,eAAO,MAAM,OAAO;;;;;;;;;;;;CAYnB,CAAC;AAIF,eAAO,MAAM,eAAe,UAAiC,CAAC;AAG9D,eAAO,MAAM,iBAAiB,UAQ7B,CAAC;AAGF,eAAO,MAAM,cAAc,WAAM,CAAC"}
@@ -21,11 +21,12 @@ export const INK_COLORS = {
21
21
  error: 'red',
22
22
  muted: 'gray',
23
23
  };
24
- // ASCII Logo for Ink — compact 3-line Paean arch (∩+○) with dense block chars
24
+ // ASCII Logo for Ink — Paean arch (∩+○) with dense block chars
25
25
  export const ASCII_LOGO_LINES = [
26
26
  ' ▄████▄ ',
27
- '█▌▀██▀▐█',
28
- '▀▘ ▝▀',
27
+ '██▄▀▀▄██',
28
+ '██▀▄▄▀██',
29
+ '▀▀ ▀▀',
29
30
  ];
30
31
  // Compact logo for small screens
31
32
  export const COMPACT_LOGO = '∩ Paean';
@@ -1 +1 @@
1
- {"version":3,"file":"ink-theme.js","sourceRoot":"","sources":["../../../src/ui/theme/ink-theme.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,kEAAkE;AAClE,MAAM,CAAC,MAAM,MAAM,GAAG;IAClB,OAAO,EAAE,SAAS,EAAO,2BAA2B;IACpD,YAAY,EAAE,SAAS;IACvB,SAAS,EAAE,SAAS,EAAK,0BAA0B;IACnD,OAAO,EAAE,SAAS,EAAO,yBAAyB;IAClD,OAAO,EAAE,SAAS,EAAO,wBAAwB;IACjD,KAAK,EAAE,SAAS,EAAS,MAAM;IAC/B,KAAK,EAAE,SAAS,EAAS,OAAO;CACnC,CAAC;AAEF,qBAAqB;AACrB,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB,OAAO,EAAE,MAAe;IACxB,SAAS,EAAE,SAAkB;IAC7B,OAAO,EAAE,OAAgB;IACzB,OAAO,EAAE,QAAiB;IAC1B,KAAK,EAAE,KAAc;IACrB,KAAK,EAAE,MAAe;CACzB,CAAC;AAEF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,UAAU;IACV,UAAU;IACV,UAAU;CACb,CAAC;AAEF,iCAAiC;AACjC,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;AAEtC,gBAAgB;AAChB,MAAM,CAAC,MAAM,OAAO,GAAG;IACnB,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG;IACZ,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;CACd,CAAC;AAEF,0CAA0C;AAC1C,gCAAgC;AAChC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE9D,2DAA2D;AAC3D,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC7B,6BAA6B;IAC7B,4BAA4B;IAC5B,4BAA4B;IAC5B,4BAA4B;IAC5B,oBAAoB;IACpB,0BAA0B;IAC1B,mBAAmB;CACtB,CAAC;AAEF,2BAA2B;AAC3B,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC"}
1
+ {"version":3,"file":"ink-theme.js","sourceRoot":"","sources":["../../../src/ui/theme/ink-theme.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,kEAAkE;AAClE,MAAM,CAAC,MAAM,MAAM,GAAG;IAClB,OAAO,EAAE,SAAS,EAAO,2BAA2B;IACpD,YAAY,EAAE,SAAS;IACvB,SAAS,EAAE,SAAS,EAAK,0BAA0B;IACnD,OAAO,EAAE,SAAS,EAAO,yBAAyB;IAClD,OAAO,EAAE,SAAS,EAAO,wBAAwB;IACjD,KAAK,EAAE,SAAS,EAAS,MAAM;IAC/B,KAAK,EAAE,SAAS,EAAS,OAAO;CACnC,CAAC;AAEF,qBAAqB;AACrB,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB,OAAO,EAAE,MAAe;IACxB,SAAS,EAAE,SAAkB;IAC7B,OAAO,EAAE,OAAgB;IACzB,OAAO,EAAE,QAAiB;IAC1B,KAAK,EAAE,KAAc;IACrB,KAAK,EAAE,MAAe;CACzB,CAAC;AAEF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,UAAU;IACV,UAAU;IACV,UAAU;IACV,UAAU;CACb,CAAC;AAEF,iCAAiC;AACjC,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;AAEtC,gBAAgB;AAChB,MAAM,CAAC,MAAM,OAAO,GAAG;IACnB,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG;IACZ,IAAI,EAAE,GAAG;IACT,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;CACd,CAAC;AAEF,0CAA0C;AAC1C,gCAAgC;AAChC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE9D,2DAA2D;AAC3D,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC7B,6BAA6B;IAC7B,4BAA4B;IAC5B,4BAA4B;IAC5B,4BAA4B;IAC5B,oBAAoB;IACpB,0BAA0B;IAC1B,mBAAmB;CACtB,CAAC;AAEF,2BAA2B;AAC3B,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "paean",
3
- "version": "0.8.23",
3
+ "version": "0.8.24",
4
4
  "description": "Paean AI CLI - Claude Code-like AI agent with local MCP integration, task management, and autonomous worker mode",
5
5
  "author": "Paean AI <dev@paean.ai>",
6
6
  "license": "MIT",