@kenkaiiii/ggcoder 4.3.199 → 4.3.201

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 (158) hide show
  1. package/dist/core/compaction/compactor.d.ts +11 -0
  2. package/dist/core/compaction/compactor.d.ts.map +1 -1
  3. package/dist/core/compaction/compactor.js +14 -0
  4. package/dist/core/compaction/compactor.js.map +1 -1
  5. package/dist/core/compaction/compactor.test.js +12 -1
  6. package/dist/core/compaction/compactor.test.js.map +1 -1
  7. package/dist/tools/bash.d.ts.map +1 -1
  8. package/dist/tools/bash.js +1 -0
  9. package/dist/tools/bash.js.map +1 -1
  10. package/dist/tools/edit.d.ts.map +1 -1
  11. package/dist/tools/edit.js +1 -0
  12. package/dist/tools/edit.js.map +1 -1
  13. package/dist/tools/edit.test.js +4 -0
  14. package/dist/tools/edit.test.js.map +1 -1
  15. package/dist/tools/enter-plan.d.ts.map +1 -1
  16. package/dist/tools/enter-plan.js +1 -0
  17. package/dist/tools/enter-plan.js.map +1 -1
  18. package/dist/tools/exit-plan.d.ts.map +1 -1
  19. package/dist/tools/exit-plan.js +1 -0
  20. package/dist/tools/exit-plan.js.map +1 -1
  21. package/dist/tools/subagent.d.ts.map +1 -1
  22. package/dist/tools/subagent.js +2 -1
  23. package/dist/tools/subagent.js.map +1 -1
  24. package/dist/tools/tasks.d.ts.map +1 -1
  25. package/dist/tools/tasks.js +1 -0
  26. package/dist/tools/tasks.js.map +1 -1
  27. package/dist/tools/write.d.ts.map +1 -1
  28. package/dist/tools/write.js +1 -0
  29. package/dist/tools/write.js.map +1 -1
  30. package/dist/tools/write.test.js +4 -0
  31. package/dist/tools/write.test.js.map +1 -1
  32. package/dist/ui/App.d.ts +4 -0
  33. package/dist/ui/App.d.ts.map +1 -1
  34. package/dist/ui/App.js +22 -38
  35. package/dist/ui/App.js.map +1 -1
  36. package/dist/ui/components/ActivityIndicator.d.ts +9 -1
  37. package/dist/ui/components/ActivityIndicator.d.ts.map +1 -1
  38. package/dist/ui/components/ActivityIndicator.js +123 -35
  39. package/dist/ui/components/ActivityIndicator.js.map +1 -1
  40. package/dist/ui/components/AnimationContext.d.ts +8 -2
  41. package/dist/ui/components/AnimationContext.d.ts.map +1 -1
  42. package/dist/ui/components/AnimationContext.js +94 -16
  43. package/dist/ui/components/AnimationContext.js.map +1 -1
  44. package/dist/ui/components/CompactionNotice.d.ts +5 -1
  45. package/dist/ui/components/CompactionNotice.d.ts.map +1 -1
  46. package/dist/ui/components/CompactionNotice.js +4 -6
  47. package/dist/ui/components/CompactionNotice.js.map +1 -1
  48. package/dist/ui/components/Footer.d.ts.map +1 -1
  49. package/dist/ui/components/Footer.js +5 -6
  50. package/dist/ui/components/Footer.js.map +1 -1
  51. package/dist/ui/components/InputArea.d.ts.map +1 -1
  52. package/dist/ui/components/InputArea.js +29 -12
  53. package/dist/ui/components/InputArea.js.map +1 -1
  54. package/dist/ui/components/ServerToolExecution.d.ts +1 -0
  55. package/dist/ui/components/ServerToolExecution.d.ts.map +1 -1
  56. package/dist/ui/components/ServerToolExecution.js +21 -2
  57. package/dist/ui/components/ServerToolExecution.js.map +1 -1
  58. package/dist/ui/components/Spinner.d.ts +3 -1
  59. package/dist/ui/components/Spinner.d.ts.map +1 -1
  60. package/dist/ui/components/Spinner.js +10 -4
  61. package/dist/ui/components/Spinner.js.map +1 -1
  62. package/dist/ui/components/SubAgentPanel.d.ts.map +1 -1
  63. package/dist/ui/components/SubAgentPanel.js +3 -4
  64. package/dist/ui/components/SubAgentPanel.js.map +1 -1
  65. package/dist/ui/components/ToolExecution.d.ts +2 -0
  66. package/dist/ui/components/ToolExecution.d.ts.map +1 -1
  67. package/dist/ui/components/ToolExecution.js +24 -5
  68. package/dist/ui/components/ToolExecution.js.map +1 -1
  69. package/dist/ui/components/ToolGroupExecution.d.ts.map +1 -1
  70. package/dist/ui/components/ToolGroupExecution.js +23 -2
  71. package/dist/ui/components/ToolGroupExecution.js.map +1 -1
  72. package/dist/ui/components/ToolUseLoader.d.ts +4 -2
  73. package/dist/ui/components/ToolUseLoader.d.ts.map +1 -1
  74. package/dist/ui/components/ToolUseLoader.js +3 -3
  75. package/dist/ui/components/ToolUseLoader.js.map +1 -1
  76. package/dist/ui/components/index.d.ts +1 -1
  77. package/dist/ui/components/index.d.ts.map +1 -1
  78. package/dist/ui/components/index.js +1 -1
  79. package/dist/ui/components/index.js.map +1 -1
  80. package/dist/ui/hooks/useBlink.d.ts.map +1 -1
  81. package/dist/ui/hooks/useBlink.js +3 -4
  82. package/dist/ui/hooks/useBlink.js.map +1 -1
  83. package/dist/ui/render.d.ts.map +1 -1
  84. package/dist/ui/render.js +3 -2
  85. package/dist/ui/render.js.map +1 -1
  86. package/package.json +5 -4
  87. package/dist/core/bridge-client.d.ts +0 -31
  88. package/dist/core/bridge-client.d.ts.map +0 -1
  89. package/dist/core/bridge-client.js +0 -124
  90. package/dist/core/bridge-client.js.map +0 -1
  91. package/dist/core/bridge-config.d.ts +0 -8
  92. package/dist/core/bridge-config.d.ts.map +0 -1
  93. package/dist/core/bridge-config.js +0 -52
  94. package/dist/core/bridge-config.js.map +0 -1
  95. package/dist/core/bridge-protocol.d.ts +0 -76
  96. package/dist/core/bridge-protocol.d.ts.map +0 -1
  97. package/dist/core/bridge-protocol.js +0 -30
  98. package/dist/core/bridge-protocol.js.map +0 -1
  99. package/dist/core/oauth/gemini.d.ts +0 -4
  100. package/dist/core/oauth/gemini.d.ts.map +0 -1
  101. package/dist/core/oauth/gemini.js +0 -293
  102. package/dist/core/oauth/gemini.js.map +0 -1
  103. package/dist/core/socket-server.d.ts +0 -15
  104. package/dist/core/socket-server.d.ts.map +0 -1
  105. package/dist/core/socket-server.js +0 -140
  106. package/dist/core/socket-server.js.map +0 -1
  107. package/dist/modes/bridge-mode.d.ts +0 -22
  108. package/dist/modes/bridge-mode.d.ts.map +0 -1
  109. package/dist/modes/bridge-mode.js +0 -281
  110. package/dist/modes/bridge-mode.js.map +0 -1
  111. package/dist/ui/buddy/Buddy.d.ts +0 -15
  112. package/dist/ui/buddy/Buddy.d.ts.map +0 -1
  113. package/dist/ui/buddy/Buddy.js +0 -118
  114. package/dist/ui/buddy/Buddy.js.map +0 -1
  115. package/dist/ui/buddy/gacha.d.ts +0 -8
  116. package/dist/ui/buddy/gacha.d.ts.map +0 -1
  117. package/dist/ui/buddy/gacha.js +0 -94
  118. package/dist/ui/buddy/gacha.js.map +0 -1
  119. package/dist/ui/buddy/species.d.ts +0 -52
  120. package/dist/ui/buddy/species.d.ts.map +0 -1
  121. package/dist/ui/buddy/species.js +0 -257
  122. package/dist/ui/buddy/species.js.map +0 -1
  123. package/dist/ui/components/ScrollableContent.d.ts +0 -22
  124. package/dist/ui/components/ScrollableContent.d.ts.map +0 -1
  125. package/dist/ui/components/ScrollableContent.js +0 -44
  126. package/dist/ui/components/ScrollableContent.js.map +0 -1
  127. package/dist/ui/components/ShimmerLine.d.ts +0 -6
  128. package/dist/ui/components/ShimmerLine.d.ts.map +0 -1
  129. package/dist/ui/components/ShimmerLine.js +0 -46
  130. package/dist/ui/components/ShimmerLine.js.map +0 -1
  131. package/dist/ui/components/SplashScreen.d.ts +0 -7
  132. package/dist/ui/components/SplashScreen.d.ts.map +0 -1
  133. package/dist/ui/components/SplashScreen.js +0 -113
  134. package/dist/ui/components/SplashScreen.js.map +0 -1
  135. package/dist/ui/components/ThinkingIndicator.d.ts +0 -6
  136. package/dist/ui/components/ThinkingIndicator.d.ts.map +0 -1
  137. package/dist/ui/components/ThinkingIndicator.js +0 -145
  138. package/dist/ui/components/ThinkingIndicator.js.map +0 -1
  139. package/dist/ui/hooks/useMouseScroll.d.ts.map +0 -1
  140. package/dist/ui/hooks/useMouseScroll.js.map +0 -1
  141. package/dist/ui/hooks/useScrollViewport.d.ts +0 -25
  142. package/dist/ui/hooks/useScrollViewport.d.ts.map +0 -1
  143. package/dist/ui/hooks/useScrollViewport.js +0 -32
  144. package/dist/ui/hooks/useScrollViewport.js.map +0 -1
  145. package/dist/ui/utils/item-heights.d.ts +0 -17
  146. package/dist/ui/utils/item-heights.d.ts.map +0 -1
  147. package/dist/ui/utils/item-heights.js +0 -73
  148. package/dist/ui/utils/item-heights.js.map +0 -1
  149. package/dist/ui/utils/scroll-pause.d.ts +0 -13
  150. package/dist/ui/utils/scroll-pause.d.ts.map +0 -1
  151. package/dist/ui/utils/sync-output.d.ts +0 -16
  152. package/dist/ui/utils/sync-output.d.ts.map +0 -1
  153. package/dist/ui/utils/sync-output.js +0 -70
  154. package/dist/ui/utils/sync-output.js.map +0 -1
  155. package/dist/utils/markdown.d.ts +0 -6
  156. package/dist/utils/markdown.d.ts.map +0 -1
  157. package/dist/utils/markdown.js +0 -25
  158. package/dist/utils/markdown.js.map +0 -1
@@ -1,94 +0,0 @@
1
- import { hostname, userInfo, homedir } from "node:os";
2
- import { ALL_SPECIES, SPECIES_RARITY, RARITY_WEIGHTS, RARITY_STAT_FLOORS, EYE_STYLES, } from "./species.js";
3
- // ── FNV-1a hash ──────────────────────────────────────────────
4
- function fnv1a(str) {
5
- let hash = 0x811c9dc5;
6
- for (let i = 0; i < str.length; i++) {
7
- hash ^= str.charCodeAt(i);
8
- hash = Math.imul(hash, 0x01000193);
9
- }
10
- return hash >>> 0;
11
- }
12
- // ── Mulberry32 PRNG ──────────────────────────────────────────
13
- function mulberry32(seed) {
14
- let s = seed | 0;
15
- return () => {
16
- s = (s + 0x6d2b79f5) | 0;
17
- let t = Math.imul(s ^ (s >>> 15), 1 | s);
18
- t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;
19
- return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
20
- };
21
- }
22
- // ── Seed ─────────────────────────────────────────────────────
23
- function getUserSeed() {
24
- const identity = `${hostname()}:${userInfo().username}:${homedir()}:friend-2026-401`;
25
- return fnv1a(identity);
26
- }
27
- // ── Roll helpers ─────────────────────────────────────────────
28
- function rollRarity(rand) {
29
- const roll = rand * 100;
30
- let cumulative = 0;
31
- for (const [rarity, weight] of RARITY_WEIGHTS) {
32
- cumulative += weight;
33
- if (roll < cumulative)
34
- return rarity;
35
- }
36
- return "common";
37
- }
38
- function rollStats(rng, rarity) {
39
- const floor = RARITY_STAT_FLOORS[rarity];
40
- const keys = ["debugging", "patience", "chaos", "wisdom", "snark"];
41
- const peakIdx = Math.floor(rng() * keys.length);
42
- let dumpIdx = Math.floor(rng() * keys.length);
43
- while (dumpIdx === peakIdx)
44
- dumpIdx = Math.floor(rng() * keys.length);
45
- const stats = { debugging: 0, patience: 0, chaos: 0, wisdom: 0, snark: 0 };
46
- for (let i = 0; i < keys.length; i++) {
47
- const key = keys[i];
48
- if (i === peakIdx) {
49
- stats[key] = Math.min(100, 50 + Math.floor(rng() * 30) + floor);
50
- }
51
- else if (i === dumpIdx) {
52
- stats[key] = Math.max(1, -10 + Math.floor(rng() * 15) + floor);
53
- }
54
- else {
55
- stats[key] = floor + Math.floor(rng() * 40);
56
- }
57
- }
58
- return stats;
59
- }
60
- // ── Main roll (cached) ───────────────────────────────────────
61
- const HATS = [
62
- "none",
63
- "crown",
64
- "tophat",
65
- "propeller",
66
- "halo",
67
- "wizard",
68
- "beanie",
69
- "tinyduck",
70
- ];
71
- let rollCache = null;
72
- /**
73
- * Get the user's deterministic buddy companion.
74
- * Same machine always gets the same species, eyes, hat, stats.
75
- * Result is cached for hot paths (500ms sprite tick).
76
- */
77
- export function getPlayerBuddy() {
78
- if (rollCache)
79
- return rollCache;
80
- const seed = getUserSeed();
81
- const rng = mulberry32(seed);
82
- const rarity = rollRarity(rng());
83
- // Pick species from this rarity tier
84
- const candidates = ALL_SPECIES.filter((s) => SPECIES_RARITY[s] === rarity);
85
- const speciesIdx = Math.floor(rng() * candidates.length);
86
- const species = candidates[speciesIdx];
87
- const eyes = EYE_STYLES[Math.floor(rng() * EYE_STYLES.length)];
88
- const hat = rarity === "common" ? "none" : HATS[Math.floor(rng() * HATS.length)];
89
- const stats = rollStats(rng, rarity);
90
- const isShiny = rng() < 0.01;
91
- rollCache = { species, eyes, hat, stats, isShiny, rarity };
92
- return rollCache;
93
- }
94
- //# sourceMappingURL=gacha.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gacha.js","sourceRoot":"","sources":["../../../src/ui/buddy/gacha.ts"],"names":[],"mappings":"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"}
@@ -1,52 +0,0 @@
1
- /**
2
- * Buddy companion species definitions.
3
- *
4
- * Each species has ASCII art frames (5 lines tall, 12 chars wide),
5
- * eye placeholder {E} for expression variants, and a rarity tier.
6
- * Matches Claude Code's buddy system architecture.
7
- *
8
- * Line 0 is the hat slot — left blank so hats can overlay it.
9
- * {E} is replaced with the companion's eye character at render time.
10
- * Blink replaces {E} with "-" rather than using separate frames.
11
- */
12
- export type Rarity = "common" | "uncommon" | "rare" | "epic" | "legendary";
13
- export type EyeStyle = "\u00B7" | "\u2726" | "\u00D7" | "\u25C9" | "@" | "\u00B0";
14
- export type Hat = "none" | "crown" | "tophat" | "propeller" | "halo" | "wizard" | "beanie" | "tinyduck";
15
- export type Species = "duck" | "goose" | "blob" | "cat" | "dragon" | "octopus" | "owl" | "penguin" | "turtle" | "snail" | "ghost" | "axolotl" | "capybara" | "cactus" | "robot" | "rabbit" | "mushroom" | "chonk" | "phoenix";
16
- /** Hat art for line 0 (replaces blank first line when hat present). */
17
- export declare const HAT_LINES: Record<Hat, string>;
18
- export interface CompanionStats {
19
- debugging: number;
20
- patience: number;
21
- chaos: number;
22
- wisdom: number;
23
- snark: number;
24
- }
25
- export declare const RARITY_WEIGHTS: [Rarity, number][];
26
- export declare const RARITY_STAT_FLOORS: Record<Rarity, number>;
27
- export declare const RARITY_STARS: Record<Rarity, string>;
28
- export declare const RARITY_THEME_KEYS: Record<Rarity, string>;
29
- export declare const BODIES: Record<Species, string[][]>;
30
- /** All species names. */
31
- export declare const ALL_SPECIES: Species[];
32
- /** Species rarity mapping. */
33
- export declare const SPECIES_RARITY: Record<Species, Rarity>;
34
- /** All available eye styles. */
35
- export declare const EYE_STYLES: EyeStyle[];
36
- export interface CompanionBones {
37
- species: Species;
38
- eyes: EyeStyle;
39
- hat: Hat;
40
- stats: CompanionStats;
41
- isShiny: boolean;
42
- rarity: Rarity;
43
- }
44
- /** Render sprite lines with eyes and hat applied. */
45
- export declare function renderSprite(bones: CompanionBones, frame: number): string[];
46
- /** Render blink frame (eyes replaced with -). */
47
- export declare function renderBlink(bones: CompanionBones): string[];
48
- /** Compact one-line face for narrow terminals. */
49
- export declare function renderFace(bones: CompanionBones): string;
50
- /** Number of animation frames for a species (always 3). */
51
- export declare function spriteFrameCount(_species: Species): number;
52
- //# sourceMappingURL=species.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"species.d.ts","sourceRoot":"","sources":["../../../src/ui/buddy/species.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;AAE3E,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;AAElF,MAAM,MAAM,GAAG,GACX,MAAM,GACN,OAAO,GACP,QAAQ,GACR,WAAW,GACX,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,UAAU,CAAC;AAEf,MAAM,MAAM,OAAO,GACf,MAAM,GACN,OAAO,GACP,MAAM,GACN,KAAK,GACL,QAAQ,GACR,SAAS,GACT,KAAK,GACL,SAAS,GACT,QAAQ,GACR,OAAO,GACP,OAAO,GACP,SAAS,GACT,UAAU,GACV,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,UAAU,GACV,OAAO,GACP,SAAS,CAAC;AAEd,uEAAuE;AACvE,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CASzC,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAID,eAAO,MAAM,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAM5C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMrD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM/C,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMpD,CAAC;AAMF,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAgG9C,CAAC;AAEF,yBAAyB;AACzB,eAAO,MAAM,WAAW,EAAE,OAAO,EAoBhC,CAAC;AAEF,8BAA8B;AAC9B,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAoBlD,CAAC;AAEF,gCAAgC;AAChC,eAAO,MAAM,UAAU,EAAE,QAAQ,EAA4D,CAAC;AAI9F,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qDAAqD;AACrD,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAgB3E;AAED,iDAAiD;AACjD,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,EAAE,CAU3D;AAED,kDAAkD;AAClD,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAuBxD;AAED,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAE1D"}
@@ -1,257 +0,0 @@
1
- /**
2
- * Buddy companion species definitions.
3
- *
4
- * Each species has ASCII art frames (5 lines tall, 12 chars wide),
5
- * eye placeholder {E} for expression variants, and a rarity tier.
6
- * Matches Claude Code's buddy system architecture.
7
- *
8
- * Line 0 is the hat slot — left blank so hats can overlay it.
9
- * {E} is replaced with the companion's eye character at render time.
10
- * Blink replaces {E} with "-" rather than using separate frames.
11
- */
12
- /** Hat art for line 0 (replaces blank first line when hat present). */
13
- export const HAT_LINES = {
14
- none: "",
15
- crown: " \\^^^/ ",
16
- tophat: " ___ ",
17
- propeller: " ~+~ ",
18
- halo: " ooo ",
19
- wizard: " /^\\ ",
20
- beanie: " --- ",
21
- tinyduck: " ,> ",
22
- };
23
- // ── Rarity config ────────────────────────────────────────────
24
- export const RARITY_WEIGHTS = [
25
- ["common", 60],
26
- ["uncommon", 25],
27
- ["rare", 10],
28
- ["epic", 4],
29
- ["legendary", 1],
30
- ];
31
- export const RARITY_STAT_FLOORS = {
32
- common: 5,
33
- uncommon: 15,
34
- rare: 25,
35
- epic: 35,
36
- legendary: 50,
37
- };
38
- export const RARITY_STARS = {
39
- common: "\u2605",
40
- uncommon: "\u2605\u2605",
41
- rare: "\u2605\u2605\u2605",
42
- epic: "\u2605\u2605\u2605\u2605",
43
- legendary: "\u2605\u2605\u2605\u2605\u2605",
44
- };
45
- // Rarity colors mapped to theme keys (like CC), with fallback hex
46
- export const RARITY_THEME_KEYS = {
47
- common: "textDim",
48
- uncommon: "success",
49
- rare: "primary",
50
- epic: "accent",
51
- legendary: "warning",
52
- };
53
- // ── Bodies: Record<Species, string[][]> ──────────────────────
54
- // 3 frames per species, 5 lines each, 12 chars wide.
55
- // Frame 0: idle rest. Frame 1: fidget. Frame 2: alternate/effect.
56
- export const BODIES = {
57
- duck: [
58
- [" ", " __ ", " ({E} > ", " /||\\ ", " ~~~~ "],
59
- [" ", " __ ", " ({E} > ", " \\||/ ", " ~~~~ "],
60
- [" ", " __ ", " ({E} > ", " /||\\ ", " ~~~~ "],
61
- ],
62
- goose: [
63
- [" ", " __ ", " ({E} } ", " /||\\ ", " d b "],
64
- [" ", " __ ", " ({E} } ", " /|~|\\ ", " d b "],
65
- [" ", " _/__ ", " ({E} } ", " /||\\ ", " d b "],
66
- ],
67
- blob: [
68
- [" ", " .-----. ", " ( {E} {E} ) ", " ( __ ) ", " '---' "],
69
- [" ", " .-----. ", " ( {E} {E} ) ", " ( __ ) ", " '--' "],
70
- [" ", " .-----. ", " ( {E} {E} ) ", " (__) ", " '---' "],
71
- ],
72
- cat: [
73
- [" ", " /\\_/\\ ", " ( {E}.{E} ) ", " > ^ < ", " ||| "],
74
- [" ", " /\\_/\\ ", " ( {E}.{E} ) ", " > ^< ", " ||| "],
75
- [" ", " /\\_/\\ ", " ( {E}.{E} ) ", " > ^ < ", " ~|| "],
76
- ],
77
- snail: [
78
- [" ", " @/ ", " {E} __ ", " /_/ ", " ~~~~ "],
79
- [" ", " @/ ", " {E} __ ", " /_/ ", " ~~~~ "],
80
- [" ", " @/ ", " {E} __ ", " /_/ ", " ~~~~ "],
81
- ],
82
- turtle: [
83
- [" ", " ____ ", " ({E} {E}) ", " /|==|\\ ", " d b "],
84
- [" ", " ____ ", " ({E} {E}) ", " /|==|\\ ", " d b "],
85
- [" ", " ____ ", " ({E} {E}) ", " \\|==|/ ", " d b "],
86
- ],
87
- owl: [
88
- [" ", " /{\\ ", " ({E},{E}) ", " /) ) ", ' " " '],
89
- [" ", " /{\\ ", " ({E},{E}) ", " ( (\\ ", ' " " '],
90
- [" ", " /{\\ ", " ({E},{E}) ", " /) ) ", ' " " '],
91
- ],
92
- penguin: [
93
- [" ", " (^) ", " /{E}\\ ", " / | \\ ", " d b "],
94
- [" ", " (^) ", " \\{E}/ ", " \\|/ ", " d b "],
95
- [" ", " (^) ", " /{E}\\ ", " / | \\ ", " d b "],
96
- ],
97
- rabbit: [
98
- [" ", " (\\(\\ ", " ({E} {E}) ", " (> <) ", ' (" ") '],
99
- [" ", " (\\(\\ ", " ({E} {E}) ", " (>~<) ", ' (" ") '],
100
- [" ", " /)/) ", " ({E} {E}) ", " (> <) ", ' (" ") '],
101
- ],
102
- ghost: [
103
- [" ", " .---. ", " ( {E} {E}) ", " | | ", " ~v~v~ "],
104
- [" ", " .---. ", " ({E} {E} ) ", " | | ", " ~v~v~ "],
105
- [" ", " .---. ", " ( {E} {E}) ", " | | ", " ~v~v~ "],
106
- ],
107
- mushroom: [
108
- [" ", " ,---. ", " / * * \\ ", " |({E}{E})| ", " |__| "],
109
- [" ", " ,---. ", " /* * *\\ ", " |({E}{E})| ", " |__| "],
110
- [" ", " .---. ", " / * * \\ ", " |({E}{E})| ", " |__| "],
111
- ],
112
- robot: [
113
- [" ", " [=====] ", " [{E} {E}] ", " /|=|\\ ", " d b "],
114
- [" ", " [=====] ", " [{E} {E}] ", " \\|=|/ ", " d b "],
115
- [" ", " [==o==] ", " [{E} {E}] ", " /|=|\\ ", " d b "],
116
- ],
117
- octopus: [
118
- [" ", " ,--, ", " ({E} {E}) ", " /||||\\ ", " ~~~~~~ "],
119
- [" ", " ,--, ", " ({E} {E}) ", " \\||||/ ", " ~~~~~~ "],
120
- [" ", " ,--, ", " ({E} {E}) ", " /||\\/ ", " ~~~~~~ "],
121
- ],
122
- axolotl: [
123
- [" ", " ~\\/~\\/ ", " ({E} {E}) ", " \\__/ ", " ~~~~ "],
124
- [" ", " ~\\/~\\/ ", " ({E} {E}) ", " \\__/ ", " ~~~~ "],
125
- [" ", " /~\\/~\\ ", " ({E} {E}) ", " \\__/ ", " ~~~~ "],
126
- ],
127
- dragon: [
128
- [" ", " /\\_/\\_ ", " ( {E} {E} ) ", " ~\\/\\/~ ", " ~/ \\~ "],
129
- [" ", " /\\_/\\_ ", " ( {E} {E} ) ", " ~\\/\\/~ ", " ~/ ~\\~ "],
130
- [" ", " /\\_/\\_ ", " ( {E} {E} ) ", " ~/\\/~ ", " ~/ \\~ "],
131
- ],
132
- capybara: [
133
- [" ", " .__. ", " ({E} {E}) ", " (___/) ", ' (" ") '],
134
- [" ", " .__. ", " ({E} {E}) ", " (___/) ", ' (" ") '],
135
- [" ", " .__. ", " ( {E}{E}) ", " (___/) ", ' (" ") '],
136
- ],
137
- phoenix: [
138
- [" ", " ,/|\\, ", " ({E} {E}) ", " '|^|' ", " ~\\/\\/ ~ "],
139
- [" ", " '/|\\` ", " ({E} {E}) ", " ,|^|, ", " ~ \\/\\/~ "],
140
- [" ", " ,/|\\, ", " ({E} {E}) ", " '|^|' ", " ~\\/\\/ ~ "],
141
- ],
142
- cactus: [
143
- [" ", " | ", " ({E} {E}) ", " -| |- ", " ~~~~~ "],
144
- [" ", " | ", " ({E} {E}) ", " -| |- ", " ~~~~~ "],
145
- [" ", " | ", " ( {E}{E}) ", " -| |- ", " ~~~~~ "],
146
- ],
147
- chonk: [
148
- [" ", " .-----. ", " ({E} {E}) ", " ( ) ", " '~~~~' "],
149
- [" ", " .-----. ", " ({E} {E}) ", " ( ) ", " '~~~~' "],
150
- [" ", " .------. ", " ({E} {E}) ", " ( ) ", " '~~~~' "],
151
- ],
152
- };
153
- /** All species names. */
154
- export const ALL_SPECIES = [
155
- "duck",
156
- "goose",
157
- "blob",
158
- "cat",
159
- "snail",
160
- "turtle",
161
- "owl",
162
- "penguin",
163
- "rabbit",
164
- "ghost",
165
- "mushroom",
166
- "robot",
167
- "octopus",
168
- "axolotl",
169
- "dragon",
170
- "capybara",
171
- "phoenix",
172
- "cactus",
173
- "chonk",
174
- ];
175
- /** Species rarity mapping. */
176
- export const SPECIES_RARITY = {
177
- duck: "common",
178
- goose: "common",
179
- blob: "common",
180
- cat: "common",
181
- snail: "common",
182
- turtle: "common",
183
- owl: "uncommon",
184
- penguin: "uncommon",
185
- rabbit: "uncommon",
186
- ghost: "uncommon",
187
- mushroom: "uncommon",
188
- robot: "rare",
189
- octopus: "rare",
190
- axolotl: "rare",
191
- dragon: "epic",
192
- capybara: "epic",
193
- phoenix: "legendary",
194
- cactus: "legendary",
195
- chonk: "legendary",
196
- };
197
- /** All available eye styles. */
198
- export const EYE_STYLES = ["\u00B7", "\u2726", "\u00D7", "\u25C9", "@", "\u00B0"];
199
- /** Render sprite lines with eyes and hat applied. */
200
- export function renderSprite(bones, frame) {
201
- const frames = BODIES[bones.species];
202
- const lines = [...(frames[frame] ?? frames[0])];
203
- // Replace eye placeholders
204
- for (let i = 0; i < lines.length; i++) {
205
- lines[i] = lines[i].replaceAll("{E}", bones.eyes);
206
- }
207
- // Apply hat on line 0 if present
208
- if (bones.hat !== "none" && lines[0].trim() === "") {
209
- const hatLine = HAT_LINES[bones.hat];
210
- if (hatLine)
211
- lines[0] = hatLine;
212
- }
213
- return lines;
214
- }
215
- /** Render blink frame (eyes replaced with -). */
216
- export function renderBlink(bones) {
217
- const lines = [...BODIES[bones.species][0]];
218
- for (let i = 0; i < lines.length; i++) {
219
- lines[i] = lines[i].replaceAll("{E}", "-");
220
- }
221
- if (bones.hat !== "none" && lines[0].trim() === "") {
222
- const hatLine = HAT_LINES[bones.hat];
223
- if (hatLine)
224
- lines[0] = hatLine;
225
- }
226
- return lines;
227
- }
228
- /** Compact one-line face for narrow terminals. */
229
- export function renderFace(bones) {
230
- const e = bones.eyes;
231
- switch (bones.species) {
232
- case "cat":
233
- return `=${e}.${e}=`;
234
- case "duck":
235
- case "goose":
236
- return `(${e}>`;
237
- case "blob":
238
- case "chonk":
239
- return `(${e} ${e})`;
240
- case "owl":
241
- return `{${e},${e}}`;
242
- case "robot":
243
- return `[${e}_${e}]`;
244
- case "ghost":
245
- return `(${e} ${e})~`;
246
- case "dragon":
247
- case "phoenix":
248
- return `<${e} ${e}>`;
249
- default:
250
- return `(${e}${e})`;
251
- }
252
- }
253
- /** Number of animation frames for a species (always 3). */
254
- export function spriteFrameCount(_species) {
255
- return 3;
256
- }
257
- //# sourceMappingURL=species.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"species.js","sourceRoot":"","sources":["../../../src/ui/buddy/species.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAqCH,uEAAuE;AACvE,MAAM,CAAC,MAAM,SAAS,GAAwB;IAC5C,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,cAAc;IACtB,SAAS,EAAE,cAAc;IACzB,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,cAAc;IACtB,QAAQ,EAAE,cAAc;CACzB,CAAC;AAUF,gEAAgE;AAEhE,MAAM,CAAC,MAAM,cAAc,GAAuB;IAChD,CAAC,QAAQ,EAAE,EAAE,CAAC;IACd,CAAC,UAAU,EAAE,EAAE,CAAC;IAChB,CAAC,MAAM,EAAE,EAAE,CAAC;IACZ,CAAC,MAAM,EAAE,CAAC,CAAC;IACX,CAAC,WAAW,EAAE,CAAC,CAAC;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,EAAE;CACd,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAA2B;IAClD,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,cAAc;IACxB,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE,0BAA0B;IAChC,SAAS,EAAE,gCAAgC;CAC5C,CAAC;AAEF,kEAAkE;AAClE,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,SAAS;IACnB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,SAAS;CACrB,CAAC;AAEF,gEAAgE;AAChE,qDAAqD;AACrD,kEAAkE;AAElE,MAAM,CAAC,MAAM,MAAM,GAAgC;IACjD,IAAI,EAAE;QACJ,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;QAChF,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;QAChF,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;KACjF;IACD,KAAK,EAAE;QACL,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;QAChF,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;QAChF,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;KACjF;IACD,IAAI,EAAE;QACJ,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACnF,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACnF,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;KACpF;IACD,GAAG,EAAE;QACH,CAAC,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,CAAC;QACnF,CAAC,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,CAAC;QACnF,CAAC,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,CAAC;KACpF;IACD,KAAK,EAAE;QACL,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;QAChF,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;QAChF,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;KACjF;IACD,MAAM,EAAE;QACN,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACnF,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACnF,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;KACpF;IACD,GAAG,EAAE;QACH,CAAC,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACpF,CAAC,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACpF,CAAC,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;KACrF;IACD,OAAO,EAAE;QACP,CAAC,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,CAAC;QACjF,CAAC,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,CAAC;QACjF,CAAC,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,CAAC;KAClF;IACD,MAAM,EAAE;QACN,CAAC,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACpF,CAAC,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACpF,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;KACpF;IACD,KAAK,EAAE;QACL,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACnF,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACnF,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;KACpF;IACD,QAAQ,EAAE;QACR,CAAC,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,CAAC;QACpF,CAAC,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,CAAC;QACpF,CAAC,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,CAAC;KACrF;IACD,KAAK,EAAE;QACL,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACnF,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACnF,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;KACpF;IACD,OAAO,EAAE;QACP,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACnF,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACnF,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;KACpF;IACD,OAAO,EAAE;QACP,CAAC,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACpF,CAAC,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACpF,CAAC,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;KACrF;IACD,MAAM,EAAE;QACN,CAAC,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,CAAC;QACrF,CAAC,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,CAAC;QACrF,CAAC,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;KACrF;IACD,QAAQ,EAAE;QACR,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACnF,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACnF,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;KACpF;IACD,OAAO,EAAE;QACP,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,CAAC;QACpF,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,CAAC;QACpF,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,CAAC;KACrF;IACD,MAAM,EAAE;QACN,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACnF,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACnF,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;KACpF;IACD,KAAK,EAAE;QACL,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACnF,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;QACnF,CAAC,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC;KACpF;CACF,CAAC;AAEF,yBAAyB;AACzB,MAAM,CAAC,MAAM,WAAW,GAAc;IACpC,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,QAAQ;IACR,KAAK;IACL,SAAS;IACT,QAAQ;IACR,OAAO;IACP,UAAU;IACV,OAAO;IACP,SAAS;IACT,SAAS;IACT,QAAQ;IACR,UAAU;IACV,SAAS;IACT,QAAQ;IACR,OAAO;CACR,CAAC;AAEF,8BAA8B;AAC9B,MAAM,CAAC,MAAM,cAAc,GAA4B;IACrD,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,QAAQ;IACd,GAAG,EAAE,QAAQ;IACb,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,UAAU;IACf,OAAO,EAAE,UAAU;IACnB,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,UAAU;IACjB,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,WAAW;CACnB,CAAC;AAEF,gCAAgC;AAChC,MAAM,CAAC,MAAM,UAAU,GAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AAa9F,qDAAqD;AACrD,MAAM,UAAU,YAAY,CAAC,KAAqB,EAAE,KAAa;IAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhD,2BAA2B;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,iCAAiC;IACjC,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,OAAO;YAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAClC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,WAAW,CAAC,KAAqB;IAC/C,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,OAAO;YAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,UAAU,CAAC,KAAqB;IAC9C,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;IACrB,QAAQ,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACvB,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,GAAG,CAAC;QAClB,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACvB,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACxB,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACvB;YACE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACxB,CAAC;AACH,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,gBAAgB,CAAC,QAAiB;IAChD,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -1,22 +0,0 @@
1
- import React from "react";
2
- import type { CompletedItem } from "../App.js";
3
- interface ScrollableContentProps {
4
- items: CompletedItem[];
5
- /** Cumulative heights array (cumulativeHeights[i] = total height of items[0..i]) */
6
- cumulativeHeights: number[];
7
- /** Available height for the scrollable viewport in lines */
8
- viewportHeight: number;
9
- /** Lines scrolled from bottom (0 = at bottom) */
10
- scrollOffset: number;
11
- /** Whether the agent is currently generating */
12
- isGenerating: boolean;
13
- /** Render function for a single item */
14
- renderItem: (item: CompletedItem) => React.ReactNode;
15
- }
16
- /**
17
- * Virtual viewport that renders only the visible slice of items
18
- * based on scroll offset and viewport height.
19
- */
20
- export declare function ScrollableContent({ items, cumulativeHeights, viewportHeight, scrollOffset, isGenerating, renderItem, }: ScrollableContentProps): import("react/jsx-runtime").JSX.Element;
21
- export {};
22
- //# sourceMappingURL=ScrollableContent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScrollableContent.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ScrollableContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,UAAU,sBAAsB;IAC9B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,oFAAoF;IACpF,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,4DAA4D;IAC5D,cAAc,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,YAAY,EAAE,OAAO,CAAC;IACtB,wCAAwC;IACxC,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,KAAK,CAAC,SAAS,CAAC;CACtD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,UAAU,GACX,EAAE,sBAAsB,2CAqExB"}
@@ -1,44 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React from "react";
3
- import { Box, Text } from "ink";
4
- import { useTheme } from "../theme/theme.js";
5
- /**
6
- * Virtual viewport that renders only the visible slice of items
7
- * based on scroll offset and viewport height.
8
- */
9
- export function ScrollableContent({ items, cumulativeHeights, viewportHeight, scrollOffset, isGenerating, renderItem, }) {
10
- const theme = useTheme();
11
- if (items.length === 0 || viewportHeight <= 0) {
12
- return _jsx(Box, { height: viewportHeight, flexDirection: "column" });
13
- }
14
- const totalHeight = cumulativeHeights[cumulativeHeights.length - 1] ?? 0;
15
- // Calculate the visible range from the bottom
16
- // scrollOffset=0 means we see the bottom of the content
17
- const bottomLine = totalHeight - scrollOffset;
18
- const topLine = Math.max(0, bottomLine - viewportHeight);
19
- // Find the first item that overlaps with the visible range
20
- let startIdx = 0;
21
- for (let i = 0; i < cumulativeHeights.length; i++) {
22
- if (cumulativeHeights[i] > topLine) {
23
- startIdx = i;
24
- break;
25
- }
26
- }
27
- // Find the last item that overlaps with the visible range
28
- let endIdx = items.length - 1;
29
- for (let i = startIdx; i < cumulativeHeights.length; i++) {
30
- const itemTop = i === 0 ? 0 : cumulativeHeights[i - 1];
31
- if (itemTop >= bottomLine) {
32
- endIdx = i - 1;
33
- break;
34
- }
35
- endIdx = i;
36
- }
37
- const itemsAbove = startIdx;
38
- const itemsBelow = items.length - 1 - endIdx;
39
- const visibleItems = items.slice(startIdx, endIdx + 1);
40
- return (_jsxs(Box, { height: viewportHeight, flexDirection: "column", overflow: "hidden", children: [itemsAbove > 0 && (_jsx(Box, { children: _jsxs(Text, { color: theme.textDim, children: [" ↑ ", itemsAbove, " item", itemsAbove !== 1 ? "s" : "", " above"] }) })), _jsx(Box, { flexDirection: "column", flexGrow: 1, paddingRight: 1, children: visibleItems.map((item) => renderItem(item)) }), (itemsBelow > 0 || (scrollOffset > 0 && isGenerating)) && (_jsx(Box, { children: _jsxs(Text, { color: theme.textDim, children: [" ↓ ", scrollOffset > 0 && isGenerating
41
- ? "generating..."
42
- : `${itemsBelow} item${itemsBelow !== 1 ? "s" : ""} below`] }) }))] }));
43
- }
44
- //# sourceMappingURL=ScrollableContent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScrollableContent.js","sourceRoot":"","sources":["../../../src/ui/components/ScrollableContent.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- interface ShimmerLineProps {
2
- active: boolean;
3
- }
4
- export declare function ShimmerLine({ active }: ShimmerLineProps): import("react/jsx-runtime").JSX.Element | null;
5
- export {};
6
- //# sourceMappingURL=ShimmerLine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShimmerLine.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ShimmerLine.tsx"],"names":[],"mappings":"AAsBA,UAAU,gBAAgB;IACxB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,gBAAgB,kDAiCvD"}
@@ -1,46 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import React, { useEffect, useState } from "react";
3
- import { Text, useStdout } from "ink";
4
- const SHIFT_INTERVAL = 150;
5
- const LINE_CHAR = "━";
6
- // Blue → violet → blue gradient for smooth looping
7
- const GRADIENT = [
8
- [59, 130, 246], // #3b82f6
9
- [79, 125, 245], // #4f7df5
10
- [99, 120, 244], // #6378f4
11
- [119, 115, 243], // #7773f3
12
- [139, 110, 242], // #8b6ef2
13
- [159, 105, 241], // #9f69f1
14
- [167, 139, 250], // #a78bfa
15
- [159, 105, 241], // #9f69f1
16
- [139, 110, 242], // #8b6ef2
17
- [119, 115, 243], // #7773f3
18
- [99, 120, 244], // #6378f4
19
- [79, 125, 245], // #4f7df5
20
- ];
21
- export function ShimmerLine({ active }) {
22
- const { stdout } = useStdout();
23
- const [shift, setShift] = useState(0);
24
- const width = stdout?.columns ?? 80;
25
- useEffect(() => {
26
- if (!active) {
27
- setShift(0);
28
- return;
29
- }
30
- const timer = setInterval(() => {
31
- setShift((s) => (s + 1) % GRADIENT.length);
32
- }, SHIFT_INTERVAL);
33
- return () => clearInterval(timer);
34
- }, [active]);
35
- if (!active)
36
- return null;
37
- const len = GRADIENT.length;
38
- const segments = [];
39
- for (let i = 0; i < width; i++) {
40
- const idx = (((i - shift) % len) + len) % len;
41
- const [r, g, b] = GRADIENT[idx];
42
- segments.push(_jsx(Text, { bold: true, color: `rgb(${r},${g},${b})`, children: LINE_CHAR }, i));
43
- }
44
- return _jsx(Text, { children: segments });
45
- }
46
- //# sourceMappingURL=ShimmerLine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShimmerLine.js","sourceRoot":"","sources":["../../../src/ui/components/ShimmerLine.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAEtC,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,mDAAmD;AACnD,MAAM,QAAQ,GAAG;IACf,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU;IAC1B,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU;IAC1B,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU;IAC1B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU;IAC3B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU;IAC3B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU;IAC3B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU;IAC3B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU;IAC3B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU;IAC3B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU;IAC3B,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU;IAC1B,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU;CAClB,CAAC;AAMX,MAAM,UAAU,WAAW,CAAC,EAAE,MAAM,EAAoB;IACtD,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAC/B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;IAEpC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,QAAQ,CAAC,CAAC,CAAC,CAAC;YACZ,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC,EAAE,cAAc,CAAC,CAAC;QAEnB,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC5B,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC9C,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChC,QAAQ,CAAC,IAAI,CACX,KAAC,IAAI,IAAS,IAAI,QAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,YAC5C,SAAS,IADD,CAAC,CAEL,CACR,CAAC;IACJ,CAAC;IAED,OAAO,KAAC,IAAI,cAAE,QAAQ,GAAQ,CAAC;AACjC,CAAC"}
@@ -1,7 +0,0 @@
1
- interface SplashScreenProps {
2
- version: string;
3
- onDone: () => void;
4
- }
5
- export declare function SplashScreen({ version, onDone }: SplashScreenProps): import("react/jsx-runtime").JSX.Element;
6
- export {};
7
- //# sourceMappingURL=SplashScreen.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SplashScreen.d.ts","sourceRoot":"","sources":["../../../src/ui/components/SplashScreen.tsx"],"names":[],"mappings":"AA4EA,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAOD,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,iBAAiB,2CAiGlE"}