@kenkaiiii/ggcoder 4.3.199 → 4.3.200

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 (73) hide show
  1. package/package.json +6 -5
  2. package/dist/core/bridge-client.d.ts +0 -31
  3. package/dist/core/bridge-client.d.ts.map +0 -1
  4. package/dist/core/bridge-client.js +0 -124
  5. package/dist/core/bridge-client.js.map +0 -1
  6. package/dist/core/bridge-config.d.ts +0 -8
  7. package/dist/core/bridge-config.d.ts.map +0 -1
  8. package/dist/core/bridge-config.js +0 -52
  9. package/dist/core/bridge-config.js.map +0 -1
  10. package/dist/core/bridge-protocol.d.ts +0 -76
  11. package/dist/core/bridge-protocol.d.ts.map +0 -1
  12. package/dist/core/bridge-protocol.js +0 -30
  13. package/dist/core/bridge-protocol.js.map +0 -1
  14. package/dist/core/oauth/gemini.d.ts +0 -4
  15. package/dist/core/oauth/gemini.d.ts.map +0 -1
  16. package/dist/core/oauth/gemini.js +0 -293
  17. package/dist/core/oauth/gemini.js.map +0 -1
  18. package/dist/core/socket-server.d.ts +0 -15
  19. package/dist/core/socket-server.d.ts.map +0 -1
  20. package/dist/core/socket-server.js +0 -140
  21. package/dist/core/socket-server.js.map +0 -1
  22. package/dist/modes/bridge-mode.d.ts +0 -22
  23. package/dist/modes/bridge-mode.d.ts.map +0 -1
  24. package/dist/modes/bridge-mode.js +0 -281
  25. package/dist/modes/bridge-mode.js.map +0 -1
  26. package/dist/ui/buddy/Buddy.d.ts +0 -15
  27. package/dist/ui/buddy/Buddy.d.ts.map +0 -1
  28. package/dist/ui/buddy/Buddy.js +0 -118
  29. package/dist/ui/buddy/Buddy.js.map +0 -1
  30. package/dist/ui/buddy/gacha.d.ts +0 -8
  31. package/dist/ui/buddy/gacha.d.ts.map +0 -1
  32. package/dist/ui/buddy/gacha.js +0 -94
  33. package/dist/ui/buddy/gacha.js.map +0 -1
  34. package/dist/ui/buddy/species.d.ts +0 -52
  35. package/dist/ui/buddy/species.d.ts.map +0 -1
  36. package/dist/ui/buddy/species.js +0 -257
  37. package/dist/ui/buddy/species.js.map +0 -1
  38. package/dist/ui/components/ScrollableContent.d.ts +0 -22
  39. package/dist/ui/components/ScrollableContent.d.ts.map +0 -1
  40. package/dist/ui/components/ScrollableContent.js +0 -44
  41. package/dist/ui/components/ScrollableContent.js.map +0 -1
  42. package/dist/ui/components/ShimmerLine.d.ts +0 -6
  43. package/dist/ui/components/ShimmerLine.d.ts.map +0 -1
  44. package/dist/ui/components/ShimmerLine.js +0 -46
  45. package/dist/ui/components/ShimmerLine.js.map +0 -1
  46. package/dist/ui/components/SplashScreen.d.ts +0 -7
  47. package/dist/ui/components/SplashScreen.d.ts.map +0 -1
  48. package/dist/ui/components/SplashScreen.js +0 -113
  49. package/dist/ui/components/SplashScreen.js.map +0 -1
  50. package/dist/ui/components/ThinkingIndicator.d.ts +0 -6
  51. package/dist/ui/components/ThinkingIndicator.d.ts.map +0 -1
  52. package/dist/ui/components/ThinkingIndicator.js +0 -145
  53. package/dist/ui/components/ThinkingIndicator.js.map +0 -1
  54. package/dist/ui/hooks/useMouseScroll.d.ts.map +0 -1
  55. package/dist/ui/hooks/useMouseScroll.js.map +0 -1
  56. package/dist/ui/hooks/useScrollViewport.d.ts +0 -25
  57. package/dist/ui/hooks/useScrollViewport.d.ts.map +0 -1
  58. package/dist/ui/hooks/useScrollViewport.js +0 -32
  59. package/dist/ui/hooks/useScrollViewport.js.map +0 -1
  60. package/dist/ui/utils/item-heights.d.ts +0 -17
  61. package/dist/ui/utils/item-heights.d.ts.map +0 -1
  62. package/dist/ui/utils/item-heights.js +0 -73
  63. package/dist/ui/utils/item-heights.js.map +0 -1
  64. package/dist/ui/utils/scroll-pause.d.ts +0 -13
  65. package/dist/ui/utils/scroll-pause.d.ts.map +0 -1
  66. package/dist/ui/utils/sync-output.d.ts +0 -16
  67. package/dist/ui/utils/sync-output.d.ts.map +0 -1
  68. package/dist/ui/utils/sync-output.js +0 -70
  69. package/dist/ui/utils/sync-output.js.map +0 -1
  70. package/dist/utils/markdown.d.ts +0 -6
  71. package/dist/utils/markdown.d.ts.map +0 -1
  72. package/dist/utils/markdown.js +0 -25
  73. package/dist/utils/markdown.js.map +0 -1
@@ -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":"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"}
@@ -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":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAiB7C;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,KAAK,EACL,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,UAAU,GACa;IACvB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;QAC9C,OAAO,KAAC,GAAG,IAAC,MAAM,EAAE,cAAc,EAAE,aAAa,EAAC,QAAQ,GAAG,CAAC;IAChE,CAAC;IAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAEzE,8CAA8C;IAC9C,wDAAwD;IACxD,MAAM,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC,CAAC;IAEzD,2DAA2D;IAC3D,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC;YACnC,QAAQ,GAAG,CAAC,CAAC;YACb,MAAM;QACR,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzD,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;YAC1B,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;YACf,MAAM;QACR,CAAC;QACD,MAAM,GAAG,CAAC,CAAC;IACb,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC;IAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;IAE7C,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;IAEvD,OAAO,CACL,MAAC,GAAG,IAAC,MAAM,EAAE,cAAc,EAAE,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAC,QAAQ,aAElE,UAAU,GAAG,CAAC,IAAI,CACjB,KAAC,GAAG,cACF,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,OAAO,aACvB,MAAM,EACN,UAAU,WAAO,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,cACxC,GACH,CACP,EAGD,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,YACrD,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GACzC,EAGL,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,YAAY,CAAC,CAAC,IAAI,CACzD,KAAC,GAAG,cACF,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,OAAO,aACvB,MAAM,EACN,YAAY,GAAG,CAAC,IAAI,YAAY;4BAC/B,CAAC,CAAC,eAAe;4BACjB,CAAC,CAAC,GAAG,UAAU,QAAQ,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,IACvD,GACH,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -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"}
@@ -1,113 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React, { useState, useEffect } from "react";
3
- import { Box, Text } from "ink";
4
- import { SPINNER_FRAMES, SPINNER_INTERVAL } from "../spinner-frames.js";
5
- // ── ASCII logo lines (same block chars as Banner) ───────────
6
- const LOGO_LINES = [
7
- " \u2584\u2580\u2580\u2580 \u2584\u2580\u2580\u2580",
8
- " \u2588 \u2580\u2588 \u2588 \u2580\u2588",
9
- " \u2580\u2584\u2584\u2580 \u2580\u2584\u2584\u2580",
10
- ];
11
- // Gradient palette — blue to violet, matching the project theme
12
- const GRADIENT = [
13
- "#60a5fa",
14
- "#6da1f9",
15
- "#7a9df7",
16
- "#8799f5",
17
- "#9495f3",
18
- "#a18ff1",
19
- "#a78bfa",
20
- "#a18ff1",
21
- "#9495f3",
22
- "#8799f5",
23
- "#7a9df7",
24
- "#6da1f9",
25
- ];
26
- const TITLE = "GG Coder";
27
- // ── Animated gradient text ──────────────────────────────────
28
- function AnimatedGradientText({ text, shift }) {
29
- const chars = [];
30
- let colorIdx = 0;
31
- for (let i = 0; i < text.length; i++) {
32
- const ch = text[i];
33
- if (ch === " ") {
34
- chars.push(ch);
35
- }
36
- else {
37
- const color = GRADIENT[(colorIdx + shift) % GRADIENT.length];
38
- chars.push(_jsx(Text, { color: color, bold: true, children: ch }, i));
39
- colorIdx++;
40
- }
41
- }
42
- return _jsx(Text, { children: chars });
43
- }
44
- // ── Typewriter text reveal ──────────────────────────────────
45
- function TypewriterText({ text, revealedCount, color, bold, dimColor, }) {
46
- const visible = text.slice(0, revealedCount);
47
- return (_jsx(Text, { color: color, bold: bold, dimColor: dimColor, children: visible }));
48
- }
49
- const LOGO_REVEAL_INTERVAL = 60; // ms per logo line
50
- const TITLE_REVEAL_INTERVAL = 50; // ms per character
51
- const HOLD_DURATION = 400; // ms to hold after fully revealed
52
- const GRADIENT_INTERVAL = 150; // ms per gradient shift
53
- export function SplashScreen({ version, onDone }) {
54
- // Phase: 0 = logo reveal, 1 = title reveal, 2 = hold, 3 = done
55
- const [logoLinesShown, setLogoLinesShown] = useState(0);
56
- const [titleCharsShown, setTitleCharsShown] = useState(0);
57
- const [gradientShift, setGradientShift] = useState(0);
58
- const [spinnerFrame, setSpinnerFrame] = useState(0);
59
- const [phase, setPhase] = useState(0);
60
- // Gradient animation — runs throughout
61
- useEffect(() => {
62
- const timer = setInterval(() => {
63
- setGradientShift((s) => (s + 1) % GRADIENT.length);
64
- }, GRADIENT_INTERVAL);
65
- return () => clearInterval(timer);
66
- }, []);
67
- // Sparkle spinner
68
- useEffect(() => {
69
- const timer = setInterval(() => {
70
- setSpinnerFrame((f) => (f + 1) % SPINNER_FRAMES.length);
71
- }, SPINNER_INTERVAL);
72
- return () => clearInterval(timer);
73
- }, []);
74
- // Phase 0: Reveal logo lines one by one
75
- useEffect(() => {
76
- if (phase !== 0)
77
- return;
78
- if (logoLinesShown >= LOGO_LINES.length) {
79
- setPhase(1);
80
- return;
81
- }
82
- const timer = setTimeout(() => {
83
- setLogoLinesShown((n) => n + 1);
84
- }, LOGO_REVEAL_INTERVAL);
85
- return () => clearTimeout(timer);
86
- }, [phase, logoLinesShown]);
87
- // Phase 1: Reveal title characters one by one
88
- useEffect(() => {
89
- if (phase !== 1)
90
- return;
91
- if (titleCharsShown >= TITLE.length) {
92
- setPhase(2);
93
- return;
94
- }
95
- const timer = setTimeout(() => {
96
- setTitleCharsShown((n) => n + 1);
97
- }, TITLE_REVEAL_INTERVAL);
98
- return () => clearTimeout(timer);
99
- }, [phase, titleCharsShown]);
100
- // Phase 2: Hold, then signal done
101
- useEffect(() => {
102
- if (phase !== 2)
103
- return;
104
- const timer = setTimeout(() => {
105
- setPhase(3);
106
- onDone();
107
- }, HOLD_DURATION);
108
- return () => clearTimeout(timer);
109
- }, [phase, onDone]);
110
- const versionText = `v${version}`;
111
- return (_jsxs(Box, { flexDirection: "column", alignItems: "center", justifyContent: "center", marginTop: 2, marginBottom: 1, children: [LOGO_LINES.slice(0, logoLinesShown).map((line, i) => (_jsx(AnimatedGradientText, { text: line, shift: gradientShift + i * 2 }, i))), phase >= 1 && (_jsxs(Box, { marginTop: 1, children: [_jsxs(Text, { color: GRADIENT[gradientShift % GRADIENT.length], bold: true, children: [SPINNER_FRAMES[spinnerFrame], " "] }), _jsx(TypewriterText, { text: TITLE, revealedCount: titleCharsShown, color: "#e5e7eb", bold: true }), titleCharsShown >= TITLE.length && _jsxs(Text, { color: "#6b7280", children: [" ", versionText] })] })), titleCharsShown >= TITLE.length && (_jsxs(Box, { children: [_jsx(Text, { color: "#6b7280", children: "By " }), _jsx(Text, { color: "#e5e7eb", bold: true, children: "Ken Kai" })] }))] }));
112
- }
113
- //# sourceMappingURL=SplashScreen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SplashScreen.js","sourceRoot":"","sources":["../../../src/ui/components/SplashScreen.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- interface ThinkingIndicatorProps {
2
- userMessage?: string;
3
- }
4
- export declare function ThinkingIndicator({ userMessage }: ThinkingIndicatorProps): import("react/jsx-runtime").JSX.Element;
5
- export {};
6
- //# sourceMappingURL=ThinkingIndicator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThinkingIndicator.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ThinkingIndicator.tsx"],"names":[],"mappings":"AAgJA,UAAU,sBAAsB;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,WAAgB,EAAE,EAAE,sBAAsB,2CA+B7E"}