@phren/cli 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.
@@ -6,24 +6,32 @@
6
6
  */
7
7
  const ESC = "\x1b[";
8
8
  const RESET = `${ESC}0m`;
9
- const PURPLE = `${ESC}35m`; // magenta
10
- const BRIGHT_PURPLE = `${ESC}95m`; // bright magenta
11
- const CYAN = `${ESC}96m`; // bright cyan
9
+ const PURPLE = `${ESC}35m`; // magenta — body
10
+ const BRIGHT_PURPLE = `${ESC}95m`; // bright magenta — highlights
11
+ const CYAN = `${ESC}96m`; // bright cyan — sparkle
12
12
  const DIM = `${ESC}2m`;
13
- const DARK_PURPLE = `${ESC}38;5;57m`; // deep purple for shading
13
+ const DARK_PURPLE = `${ESC}38;5;57m`; // deep purple shadow/outline
14
+ const LIGHT_PURPLE = `${ESC}38;5;141m`; // lavender — brain highlights
15
+ const MID_PURPLE = `${ESC}38;5;98m`; // mid tone
16
+ const NAVY = `${ESC}38;5;18m`; // darkest outline
14
17
  /**
15
- * Compact phren ASCII art (~6 lines tall).
16
- * Uses Unicode block elements and ANSI purple/cyan coloring.
17
- * Designed for dark terminal backgrounds.
18
+ * Phren truecolor art (24px wide, generated from phren-transparent.png).
19
+ * Uses half-block with RGB foreground+background for pixel-faithful rendering.
20
+ * Requires truecolor terminal (most modern terminals support it).
18
21
  */
19
22
  export const PHREN_ART = [
20
- `${CYAN} ✦${RESET}`,
21
- `${DARK_PURPLE} ▄${PURPLE}██████${DARK_PURPLE}▄${RESET}`,
22
- `${PURPLE} ██${BRIGHT_PURPLE}▓▓${PURPLE}██${BRIGHT_PURPLE}▓▓${PURPLE}██${RESET}`,
23
- `${PURPLE} █${DARK_PURPLE}◆${PURPLE}██${DARK_PURPLE}◆${PURPLE}███${RESET}`,
24
- `${PURPLE} ██${DIM}${PURPLE}▽${RESET}${PURPLE}████${BRIGHT_PURPLE}█${RESET}`,
25
- `${DARK_PURPLE} ▀${PURPLE}██████${DARK_PURPLE}▀${RESET}`,
26
- `${DARK_PURPLE} ██ ██${RESET}`,
23
+ " ",
24
+ " ",
25
+ " \x1b[38;2;40;211;242m▄\x1b[0m \x1b[38;2;27;210;241m▄\x1b[0m ",
26
+ " \x1b[38;2;38;39;142m▄\x1b[0m\x1b[38;2;153;140;248m▄\x1b[0m\x1b[38;2;40;41;142m\x1b[48;2;152;146;247m▀\x1b[0m\x1b[38;2;41;43;144m\x1b[48;2;93;67;243m▀\x1b[0m\x1b[38;2;157;147;250m▄\x1b[0m\x1b[38;2;43;44;147m\x1b[48;2;156;146;249m▀\x1b[0m\x1b[38;2;41;43;144m\x1b[48;2;145;147;247m▀\x1b[0m\x1b[38;2;155;146;248m▄\x1b[0m\x1b[38;2;41;40;141m▄\x1b[0m ",
27
+ " \x1b[38;2;39;39;132m▄\x1b[0m\x1b[38;2;150;132;250m\x1b[48;2;151;133;250m▀\x1b[0m\x1b[38;2;154;143;250m\x1b[48;2;148;129;251m▀\x1b[0m\x1b[38;2;104;75;249m\x1b[48;2;156;145;248m▀\x1b[0m\x1b[38;2;156;142;251m\x1b[48;2;92;68;236m▀\x1b[0m\x1b[38;2;156;149;248m\x1b[48;2;85;70;220m▀\x1b[0m\x1b[38;2;157;150;248m\x1b[48;2;157;151;248m▀\x1b[0m\x1b[38;2;151;130;250m\x1b[48;2;86;61;235m▀\x1b[0m\x1b[38;2;149;145;247m\x1b[48;2;105;83;245m▀\x1b[0m\x1b[38;2;155;143;248m\x1b[48;2;191;189;251m▀\x1b[0m\x1b[38;2;41;41;146m\x1b[48;2;153;135;250m▀\x1b[0m\x1b[38;2;71;68;183m▄\x1b[0m ",
28
+ " \x1b[38;2;12;31;109m\x1b[48;2;148;132;250m▀\x1b[0m\x1b[38;2;82;67;225m\x1b[48;2;144;126;251m▀\x1b[0m\x1b[38;2;143;122;252m\x1b[48;2;156;143;251m▀\x1b[0m\x1b[38;2;94;67;244m\x1b[48;2;149;132;251m▀\x1b[0m\x1b[38;2;152;144;249m\x1b[48;2;150;132;251m▀\x1b[0m\x1b[38;2;154;143;248m\x1b[48;2;151;133;250m▀\x1b[0m\x1b[38;2;157;153;248m\x1b[48;2;152;134;250m▀\x1b[0m\x1b[38;2;84;61;230m\x1b[48;2;152;139;247m▀\x1b[0m\x1b[38;2;152;139;250m\x1b[48;2;106;93;246m▀\x1b[0m\x1b[38;2;95;71;239m\x1b[48;2;155;141;250m▀\x1b[0m\x1b[38;2;92;68;237m\x1b[48;2;158;141;248m▀\x1b[0m\x1b[38;2;151;139;250m\x1b[48;2;116;101;251m▀\x1b[0m\x1b[38;2;67;61;181m\x1b[48;2;36;41;131m▀\x1b[0m ",
29
+ " \x1b[38;2;141;122;250m\x1b[48;2;146;128;248m▀\x1b[0m\x1b[38;2;21;32;101m\x1b[48;2;154;132;250m▀\x1b[0m\x1b[38;2;146;126;251m\x1b[48;2;145;123;251m▀\x1b[0m\x1b[38;2;146;128;250m\x1b[48;2;145;125;250m▀\x1b[0m\x1b[38;2;158;149;250m\x1b[48;2;146;123;248m▀\x1b[0m\x1b[38;2;22;31;104m\x1b[48;2;152;132;248m▀\x1b[0m\x1b[38;2;152;137;250m\x1b[48;2;151;133;251m▀\x1b[0m\x1b[38;2;150;142;249m\x1b[48;2;135;121;250m▀\x1b[0m\x1b[38;2;152;138;250m\x1b[48;2;119;99;247m▀\x1b[0m\x1b[38;2;154;140;251m\x1b[48;2;108;93;249m▀\x1b[0m\x1b[38;2;116;104;252m\x1b[48;2;117;100;251m▀\x1b[0m\x1b[38;2;127;111;251m\x1b[48;2;125;110;250m▀\x1b[0m\x1b[38;2;92;85;242m\x1b[48;2;93;81;242m▀\x1b[0m ",
30
+ " \x1b[38;2;10;28;98m▀\x1b[0m\x1b[38;2;147;128;251m\x1b[48;2;77;59;222m▀\x1b[0m\x1b[38;2;145;125;250m\x1b[48;2;100;82;243m▀\x1b[0m\x1b[38;2;48;39;174m\x1b[48;2;136;120;250m▀\x1b[0m\x1b[38;2;146;126;251m\x1b[48;2;102;86;245m▀\x1b[0m\x1b[38;2;146;128;250m\x1b[48;2;103;86;245m▀\x1b[0m\x1b[38;2;111;94;250m\x1b[48;2;116;102;249m▀\x1b[0m\x1b[38;2;122;109;250m\x1b[48;2;114;103;247m▀\x1b[0m\x1b[38;2;120;107;251m\x1b[48;2;86;74;229m▀\x1b[0m\x1b[38;2;121;100;250m\x1b[48;2;106;93;244m▀\x1b[0m\x1b[38;2;92;66;240m\x1b[48;2;36;25;138m▀\x1b[0m\x1b[38;2;117;92;249m\x1b[48;2;83;73;231m▀\x1b[0m\x1b[38;2;7;37;110m▀\x1b[0m ",
31
+ " \x1b[38;2;18;22;101m▀\x1b[0m\x1b[38;2;19;24;101m▀\x1b[0m\x1b[38;2;66;51;207m\x1b[48;2;69;51;218m▀\x1b[0m\x1b[38;2;95;83;244m\x1b[48;2;26;24;106m▀\x1b[0m\x1b[38;2;72;59;210m▀\x1b[0m\x1b[38;2;115;96;250m\x1b[48;2;58;46;198m▀\x1b[0m\x1b[38;2;117;104;249m\x1b[48;2;20;31;99m▀\x1b[0m\x1b[38;2;119;104;249m\x1b[48;2;26;29;111m▀\x1b[0m\x1b[38;2;23;21;110m▀\x1b[0m ",
32
+ " \x1b[38;2;24;29;112m\x1b[48;2;156;157;248m▀\x1b[0m\x1b[38;2;105;91;248m\x1b[48;2;155;157;248m▀\x1b[0m\x1b[38;2;9;30;102m\x1b[48;2;157;158;248m▀\x1b[0m\x1b[38;2;12;31;104m\x1b[48;2;158;161;248m▀\x1b[0m\x1b[38;2;112;102;250m\x1b[48;2;158;160;248m▀\x1b[0m\x1b[38;2;15;41;120m\x1b[48;2;158;162;248m▀\x1b[0m\x1b[38;2;160;169;250m\x1b[48;2;158;163;247m▀\x1b[0m ",
33
+ " ",
34
+ " ",
27
35
  ];
28
36
  /** Single-line compact phren for inline use */
29
37
  export const PHREN_INLINE = `${PURPLE}◆${RESET}`;
@@ -137,23 +137,16 @@ export function gradient(text, colors = PHREN_GRADIENT) {
137
137
  }
138
138
  // Block-letter logo for startup animation
139
139
  const PHREN_LOGO = [
140
- " ██████╗ ██████╗ ██████╗ ████████╗███████╗██╗ ██╗",
141
- "██╔════╝██╔═══██╗██╔══██╗╚══██╔══╝██╔════╝╚██╗██╔╝",
142
- "██║ ██║ ██║██████╔╝ ██║ █████╗ ╚███╔╝ ",
143
- "██║ ██║ ██║██╔══██╗ ██║ ██╔══╝ ██╔██╗ ",
144
- "╚██████╗╚██████╔╝██║ ██║ ██║ ███████╗██╔╝ ╚██╗",
145
- " ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝",
146
- ];
147
- // Compact phren character for startup (imported inline to avoid circular deps)
148
- const PHREN_STARTUP = [
149
- "\x1b[96m ✦\x1b[0m",
150
- "\x1b[38;5;57m ▄\x1b[35m██████\x1b[38;5;57m▄\x1b[0m",
151
- "\x1b[35m ██\x1b[95m▓▓\x1b[35m██\x1b[95m▓▓\x1b[35m██\x1b[0m",
152
- "\x1b[35m █\x1b[38;5;57m◆\x1b[35m██\x1b[38;5;57m◆\x1b[35m███\x1b[0m",
153
- "\x1b[35m ██\x1b[2m\x1b[35m▽\x1b[0m\x1b[35m████\x1b[95m█\x1b[0m",
154
- "\x1b[38;5;57m ▀\x1b[35m██████\x1b[38;5;57m▀\x1b[0m",
155
- "\x1b[38;5;57m ██ ██\x1b[0m",
140
+ "██████╗ ██╗ ██╗██████╗ ███████╗███╗ ██╗",
141
+ "██╔══██╗██║ ██║██╔══██╗██╔════╝████╗ ██║",
142
+ "██████╔╝███████║██████╔╝█████╗ ██╔██╗ ██║",
143
+ "██╔═══╝ ██╔══██║██╔══██╗██╔══╝ ██║╚██╗██║",
144
+ "██║ ██║ ██║██║ ██║███████╗██║ ╚████║",
145
+ "╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═══╝",
156
146
  ];
147
+ // Compact phren character for startup (uses PHREN_ART from phren-art.ts via import)
148
+ import { PHREN_ART as PHREN_STARTUP_ART } from "./phren-art.js";
149
+ const PHREN_STARTUP = PHREN_STARTUP_ART;
157
150
  // ── Line-based viewport: edge-triggered scroll (stable, no jumpiness) ─────────
158
151
  export function lineViewport(allLines, cursorFirstLine, cursorLastLine, height, prevStart) {
159
152
  if (allLines.length === 0 || height <= 0)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phren/cli",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "Long-term memory for AI agents. Stored as markdown in a git repo you own.",
5
5
  "type": "module",
6
6
  "bin": {