ethagent 3.3.3 → 3.3.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ethagent",
3
- "version": "3.3.3",
3
+ "version": "3.3.4",
4
4
  "description": "A privacy-first AI agent with a portable Ethereum identity",
5
5
  "type": "module",
6
6
  "main": "bin/ethagent.js",
@@ -244,7 +244,7 @@ export const FirstRun: React.FC<FirstRunProps> = ({ onComplete, onCancel }) => {
244
244
  footer?: string,
245
245
  ): React.ReactElement => (
246
246
  <Box flexDirection="column" padding={1}>
247
- <Splash showTagline />
247
+ <Splash />
248
248
  <Box marginTop={1}>
249
249
  <Surface
250
250
  title={title}
@@ -263,7 +263,7 @@ export const FirstRun: React.FC<FirstRunProps> = ({ onComplete, onCancel }) => {
263
263
  bodyOwnsTimeline = false,
264
264
  ): React.ReactElement => (
265
265
  <Box flexDirection="column" padding={1}>
266
- <Splash showTagline />
266
+ <Splash />
267
267
  {bodyOwnsTimeline ? null : (
268
268
  <Box marginTop={1} marginBottom={1}>
269
269
  <FirstRunTimeline current={firstRunStageNumber(currentKind)} />
@@ -39,8 +39,9 @@ body {
39
39
  font-family: var(--font-ui);
40
40
  color: var(--fg-1);
41
41
  background: #120f17;
42
- display: grid;
43
- place-items: center;
42
+ display: flex;
43
+ align-items: center;
44
+ justify-content: center;
44
45
  padding: clamp(18px, 3vw, 28px);
45
46
  }
46
47
 
@@ -1,6 +1,6 @@
1
1
  import React, { useEffect, useState } from 'react'
2
2
  import { Text, Box } from 'ink'
3
- import { theme } from './theme.js'
3
+ import { theme, gradientColor } from './theme.js'
4
4
 
5
5
  const glyphs = {
6
6
  ethagent: `░░░░░░░╗░░░░░░░░╗░░╗ ░░╗ █████╗ ██████╗ ███████╗███╗ ██╗████████╗
@@ -39,10 +39,15 @@ const glyphs = {
39
39
 
40
40
  const Eyes = () => {
41
41
  const lines = glyphs.eyes.split('\n')
42
+ const maxWidth = Math.max(1, ...lines.map(l => l.length))
42
43
  return (
43
44
  <Box flexDirection="column">
44
45
  {lines.map((line, li) => (
45
- <Text key={li} color={theme.text}>{line}</Text>
46
+ <Text key={li}>
47
+ {[...line].map((ch, ci) => (
48
+ <Text key={ci} color={gradientColor(maxWidth <= 1 ? 0 : ci / (maxWidth - 1))}>{ch}</Text>
49
+ ))}
50
+ </Text>
46
51
  ))}
47
52
  </Box>
48
53
  )
@@ -53,10 +58,9 @@ type SplashProps = {
53
58
  tipLine?: string
54
59
  updateNotice?: string | null
55
60
  compact?: boolean
56
- showTagline?: boolean
57
61
  }
58
62
 
59
- export const BrandSplash: React.FC<SplashProps> = ({ contextLine, tipLine, updateNotice, compact, showTagline }) => {
63
+ export const BrandSplash: React.FC<SplashProps> = ({ contextLine, tipLine, updateNotice, compact }) => {
60
64
  const [width, setWidth] = useState<number>(() => process.stdout.columns ?? 80)
61
65
 
62
66
  useEffect(() => {
@@ -77,7 +81,7 @@ export const BrandSplash: React.FC<SplashProps> = ({ contextLine, tipLine, updat
77
81
  <Text bold color={theme.accentWhite}>ethagent</Text>
78
82
  {contextLine ? <Text color={theme.dim}>{contextLine}</Text> : null}
79
83
  {tipLine ? <Text color={theme.dim}>{tipLine}</Text> : null}
80
- {updateNotice ? <Text color={theme.accentPeriwinkle}>{updateNotice}</Text> : null}
84
+ {updateNotice ? <Text color={theme.dim}>{updateNotice}</Text> : null}
81
85
  </Box>
82
86
  )
83
87
  }
@@ -91,35 +95,31 @@ export const BrandSplash: React.FC<SplashProps> = ({ contextLine, tipLine, updat
91
95
  return (
92
96
  <Box flexDirection="column" alignSelf="flex-start" padding={1}>
93
97
  <Eyes />
94
- {showTagline ? (
95
- <Text>
96
- <Text color={theme.accentWhite}>{glyphs.frame.topLeft}</Text>
97
- <Text color={theme.accentPeriwinkle}>{glyphs.tagline}</Text>
98
- <Text color={theme.accentWhite}>{glyphs.frame.horizontal.repeat(Math.max(0, w - glyphs.tagline.length - 1))}{glyphs.frame.topRight}</Text>
99
- </Text>
100
- ) : (
101
- <Text color={theme.accentWhite}>{glyphs.frame.topLeft.slice(0, 1) + glyphs.frame.horizontal.repeat(w) + glyphs.frame.topRight}</Text>
102
- )}
98
+ <Text>
99
+ <Text color={theme.dim}>{glyphs.frame.topLeft}</Text>
100
+ <Text color={theme.dim}>{glyphs.tagline}</Text>
101
+ <Text color={theme.dim}>{glyphs.frame.horizontal.repeat(Math.max(0, w - glyphs.tagline.length - 1))}{glyphs.frame.topRight}</Text>
102
+ </Text>
103
103
  {logoLines.map((line, i) => (
104
104
  <Box key={i}>
105
- <Text color={theme.accentWhite}>{glyphs.frame.side}</Text>
106
- <Text color={theme.accentWhite}>{line}</Text>
107
- <Text color={theme.accentWhite}>{glyphs.frame.side}</Text>
105
+ <Text color={theme.dim}>{glyphs.frame.side}</Text>
106
+ <Text color={theme.dim}>{line}</Text>
107
+ <Text color={theme.dim}>{glyphs.frame.side}</Text>
108
108
  </Box>
109
109
  ))}
110
110
  {bottomInline ? (
111
111
  <Text>
112
- <Text color={theme.accentWhite}>{glyphs.frame.bottomLeft}</Text>
113
- <Text color={theme.accentPeriwinkle}>{bottomInline}</Text>
114
- <Text color={theme.accentWhite}>{glyphs.frame.horizontal.repeat(bottomPad)}{glyphs.frame.bottomRight}</Text>
112
+ <Text color={theme.dim}>{glyphs.frame.bottomLeft}</Text>
113
+ <Text color={theme.dim}>{bottomInline}</Text>
114
+ <Text color={theme.dim}>{glyphs.frame.horizontal.repeat(bottomPad)}{glyphs.frame.bottomRight}</Text>
115
115
  </Text>
116
116
  ) : (
117
- <Text color={theme.accentWhite}>{glyphs.frame.bottomLeft.slice(0, 1) + glyphs.frame.horizontal.repeat(w) + glyphs.frame.bottomRight}</Text>
117
+ <Text color={theme.dim}>{glyphs.frame.bottomLeft.slice(0, 1) + glyphs.frame.horizontal.repeat(w) + glyphs.frame.bottomRight}</Text>
118
118
  )}
119
119
  {tipLine || updateNotice ? (
120
120
  <Box marginTop={1} flexDirection="column">
121
121
  {tipLine ? <Text color={theme.dim}>{tipLine}</Text> : null}
122
- {updateNotice ? <Text color={theme.accentPeriwinkle}>{updateNotice}</Text> : null}
122
+ {updateNotice ? <Text color={theme.dim}>{updateNotice}</Text> : null}
123
123
  </Box>
124
124
  ) : null}
125
125
  </Box>