@kya-os/cli 0.1.0-beta.8 → 1.0.0-beta

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 (93) hide show
  1. package/README.md +24 -26
  2. package/dist/commands/claim.d.ts.map +1 -1
  3. package/dist/commands/claim.js +29 -29
  4. package/dist/commands/claim.js.map +1 -1
  5. package/dist/commands/init.d.ts.map +1 -1
  6. package/dist/commands/init.js +240 -212
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/rotate.d.ts.map +1 -1
  9. package/dist/commands/rotate.js +63 -52
  10. package/dist/commands/rotate.js.map +1 -1
  11. package/dist/components/agent-card.d.ts +14 -0
  12. package/dist/components/agent-card.d.ts.map +1 -0
  13. package/dist/components/agent-card.js +170 -0
  14. package/dist/components/agent-card.js.map +1 -0
  15. package/dist/components/agent-table.d.ts +20 -0
  16. package/dist/components/agent-table.d.ts.map +1 -0
  17. package/dist/components/agent-table.js +201 -0
  18. package/dist/components/agent-table.js.map +1 -0
  19. package/dist/components/box.d.ts +14 -0
  20. package/dist/components/box.d.ts.map +1 -0
  21. package/dist/components/box.js +222 -0
  22. package/dist/components/box.js.map +1 -0
  23. package/dist/components/index.d.ts +16 -0
  24. package/dist/components/index.d.ts.map +1 -0
  25. package/dist/components/index.js +17 -0
  26. package/dist/components/index.js.map +1 -0
  27. package/dist/components/messages.d.ts +62 -0
  28. package/dist/components/messages.d.ts.map +1 -0
  29. package/dist/components/messages.js +146 -0
  30. package/dist/components/messages.js.map +1 -0
  31. package/dist/components/types.d.ts +51 -0
  32. package/dist/components/types.d.ts.map +1 -0
  33. package/dist/components/types.js +5 -0
  34. package/dist/components/types.js.map +1 -0
  35. package/dist/components/welcome.d.ts +34 -0
  36. package/dist/components/welcome.d.ts.map +1 -0
  37. package/dist/components/welcome.js +115 -0
  38. package/dist/components/welcome.js.map +1 -0
  39. package/dist/effects/cli-integration.js +3 -3
  40. package/dist/effects/cli-integration.js.map +1 -1
  41. package/dist/effects/index.d.ts +9 -12
  42. package/dist/effects/index.d.ts.map +1 -1
  43. package/dist/effects/index.js +69 -34
  44. package/dist/effects/index.js.map +1 -1
  45. package/dist/index.d.ts +1 -1
  46. package/dist/index.js +12 -19
  47. package/dist/utils/env-manager.d.ts +66 -2
  48. package/dist/utils/env-manager.d.ts.map +1 -1
  49. package/dist/utils/env-manager.js +381 -56
  50. package/dist/utils/env-manager.js.map +1 -1
  51. package/dist/utils/screen-manager.d.ts +10 -0
  52. package/dist/utils/screen-manager.d.ts.map +1 -0
  53. package/dist/utils/screen-manager.js +50 -0
  54. package/dist/utils/screen-manager.js.map +1 -0
  55. package/dist/utils/validation.d.ts +92 -0
  56. package/dist/utils/validation.d.ts.map +1 -0
  57. package/dist/utils/validation.js +102 -0
  58. package/dist/utils/validation.js.map +1 -0
  59. package/package.json +24 -9
  60. package/dist/commands/cli-experience-demo-simple.d.ts +0 -14
  61. package/dist/commands/cli-experience-demo-simple.d.ts.map +0 -1
  62. package/dist/commands/cli-experience-demo-simple.js +0 -119
  63. package/dist/commands/cli-experience-demo-simple.js.map +0 -1
  64. package/dist/commands/cli-experience-demo.d.ts +0 -14
  65. package/dist/commands/cli-experience-demo.d.ts.map +0 -1
  66. package/dist/commands/cli-experience-demo.js +0 -172
  67. package/dist/commands/cli-experience-demo.js.map +0 -1
  68. package/dist/commands/effects-demo.d.ts +0 -10
  69. package/dist/commands/effects-demo.d.ts.map +0 -1
  70. package/dist/commands/effects-demo.js +0 -292
  71. package/dist/commands/effects-demo.js.map +0 -1
  72. package/dist/dev.d.ts +0 -7
  73. package/dist/dev.d.ts.map +0 -1
  74. package/dist/dev.js +0 -9
  75. package/dist/dev.js.map +0 -1
  76. package/dist/effects/__tests__/effects.test.d.ts +0 -5
  77. package/dist/effects/__tests__/effects.test.d.ts.map +0 -1
  78. package/dist/effects/__tests__/effects.test.js +0 -206
  79. package/dist/effects/__tests__/effects.test.js.map +0 -1
  80. package/dist/effects/implementations/binary-path.d.ts +0 -88
  81. package/dist/effects/implementations/binary-path.d.ts.map +0 -1
  82. package/dist/effects/implementations/binary-path.js +0 -296
  83. package/dist/effects/implementations/binary-path.js.map +0 -1
  84. package/dist/effects/implementations/test.d.ts +0 -113
  85. package/dist/effects/implementations/test.d.ts.map +0 -1
  86. package/dist/effects/implementations/test.js +0 -552
  87. package/dist/effects/implementations/test.js.map +0 -1
  88. package/dist/effects/template/effect-template.d.ts +0 -97
  89. package/dist/effects/template/effect-template.d.ts.map +0 -1
  90. package/dist/effects/template/effect-template.js +0 -208
  91. package/dist/effects/template/effect-template.js.map +0 -1
  92. package/dist/index.d.ts.map +0 -1
  93. package/dist/index.js.map +0 -1
@@ -1,296 +0,0 @@
1
- /**
2
- * Binary Path Effect
3
- * Creates a binary rain effect that reveals characters
4
- */
5
- import { BaseEffect } from "../types.js";
6
- import { ANSI } from "../utils.js";
7
- /**
8
- * Binary Path effect implementation
9
- */
10
- export class BinaryPathEffect extends BaseEffect {
11
- constructor(options = {}) {
12
- super();
13
- this.name = "BinaryPath";
14
- this.description = "Creates a binary rain effect that reveals characters";
15
- this.streams = [];
16
- this.characterStates = new Map();
17
- this.animationFrameCount = 0;
18
- this.totalFrames = 0;
19
- this.nextStreamId = 0;
20
- this._isEffectComplete = false;
21
- this.options = {
22
- duration: 4000,
23
- streamCount: 20,
24
- fallSpeed: 0.5,
25
- binaryColors: ["00FF00", "008800"],
26
- revealColor: "FFFFFF",
27
- fadeDuration: 500,
28
- spawnProbability: 0.1,
29
- ...options,
30
- };
31
- }
32
- /**
33
- * Initialize the effect
34
- */
35
- onInitialize() {
36
- this.totalFrames = Math.floor((this.options.duration / 1000) * this.config.frameRate);
37
- this.streams = [];
38
- this.characterStates.clear();
39
- this.animationFrameCount = 0;
40
- this.nextStreamId = 0;
41
- this._isEffectComplete = false;
42
- // Initialize character states
43
- for (const char of this.characters) {
44
- const key = `${char.originalPosition.x},${char.originalPosition.y}`;
45
- this.characterStates.set(key, {
46
- revealed: false,
47
- revealTime: -1,
48
- fadeProgress: 0,
49
- });
50
- }
51
- // Hide all characters initially
52
- for (const char of this.characters) {
53
- char.visual.symbol = " ";
54
- }
55
- }
56
- /**
57
- * Render the next frame
58
- */
59
- async render() {
60
- if (!this.isInitialized) {
61
- throw new Error("Effect not initialized");
62
- }
63
- // Update streams
64
- this.updateStreams();
65
- // Render text line by line
66
- const lines = this.text.split("\n");
67
- const renderedLines = [];
68
- for (let y = 0; y < lines.length; y++) {
69
- let line = "";
70
- const chars = [...lines[y]];
71
- for (let x = 0; x < chars.length; x++) {
72
- const char = chars[x];
73
- const key = `${x},${y}`;
74
- const state = this.characterStates.get(key);
75
- let renderedChar = " ";
76
- let color = null;
77
- // Check if character is revealed
78
- if (state && state.revealed) {
79
- renderedChar = char;
80
- color = this.getRevealedCharacterColor(state);
81
- }
82
- else {
83
- // Check if there's a binary stream at this position
84
- for (const stream of this.streams) {
85
- if (!stream.active || stream.x !== x)
86
- continue;
87
- for (const segment of stream.trail) {
88
- const segY = Math.floor(segment.y);
89
- if (segY === y) {
90
- renderedChar = segment.char;
91
- const colorIndex = segment.char === "1" ? 0 : 1;
92
- const baseColor = this.options.binaryColors[colorIndex];
93
- color = this.applyFade(baseColor, segment.fade);
94
- break;
95
- }
96
- }
97
- }
98
- }
99
- if (color) {
100
- const colorCode = this.getColorCode(color);
101
- const resetCode = ANSI.reset;
102
- line += colorCode + renderedChar + resetCode;
103
- }
104
- else {
105
- line += renderedChar;
106
- }
107
- }
108
- renderedLines.push(line);
109
- }
110
- this.animationFrameCount++;
111
- return renderedLines;
112
- }
113
- /**
114
- * Update stream positions and states
115
- */
116
- updateStreams() {
117
- const dimensions = this.getCanvasDimensions();
118
- // Spawn new streams
119
- if (this.streams.filter((s) => s.active).length < this.options.streamCount &&
120
- Math.random() < this.options.spawnProbability &&
121
- this.animationFrameCount < this.totalFrames * 0.8) {
122
- this.spawnStream();
123
- }
124
- // Update existing streams
125
- for (const stream of this.streams) {
126
- if (!stream.active)
127
- continue;
128
- // Move stream down
129
- stream.y += stream.speed;
130
- // Update trail
131
- stream.trail = stream.trail
132
- .map((segment) => ({
133
- ...segment,
134
- fade: Math.max(0, segment.fade - 0.05),
135
- }))
136
- .filter((segment) => segment.fade > 0);
137
- // Add new segment at the head
138
- if (stream.y < dimensions.height) {
139
- stream.trail.unshift({
140
- y: stream.y,
141
- char: Math.random() > 0.5 ? "1" : "0",
142
- fade: 1,
143
- });
144
- }
145
- // Trim trail to max length
146
- if (stream.trail.length > stream.maxLength) {
147
- stream.trail = stream.trail.slice(0, stream.maxLength);
148
- }
149
- // Check for character collision
150
- this.checkCharacterCollision(stream);
151
- // Deactivate if completely off screen
152
- if (stream.y > dimensions.height + stream.maxLength) {
153
- stream.active = false;
154
- }
155
- }
156
- // Update revealed characters
157
- let allRevealed = true;
158
- for (const [, state] of this.characterStates.entries()) {
159
- if (state.revealed && state.fadeProgress < 1) {
160
- const timeSinceReveal = this.animationFrameCount - state.revealTime;
161
- state.fadeProgress = Math.min(1, timeSinceReveal /
162
- (this.options.fadeDuration / (1000 / this.config.frameRate)));
163
- }
164
- if (!state.revealed) {
165
- allRevealed = false;
166
- }
167
- }
168
- // Check if effect is complete
169
- const activeStreams = this.streams.filter((s) => s.active).length;
170
- this._isEffectComplete =
171
- allRevealed &&
172
- activeStreams === 0 &&
173
- this.animationFrameCount >= this.totalFrames * 0.8;
174
- }
175
- /**
176
- * Spawn a new binary stream
177
- */
178
- spawnStream() {
179
- const dimensions = this.getCanvasDimensions();
180
- const stream = {
181
- id: this.nextStreamId++,
182
- x: Math.floor(Math.random() * dimensions.width),
183
- y: -1,
184
- speed: 0.3 + Math.random() * this.options.fallSpeed,
185
- trail: [],
186
- active: true,
187
- maxLength: 5 + Math.floor(Math.random() * 10),
188
- };
189
- this.streams.push(stream);
190
- }
191
- /**
192
- * Check if a stream collides with any characters
193
- */
194
- checkCharacterCollision(stream) {
195
- for (const segment of stream.trail) {
196
- const y = Math.floor(segment.y);
197
- // Check all characters at this position
198
- for (const char of this.characters) {
199
- if (char.originalPosition.x === stream.x &&
200
- char.originalPosition.y === y) {
201
- const key = `${char.originalPosition.x},${char.originalPosition.y}`;
202
- const state = this.characterStates.get(key);
203
- if (state && !state.revealed) {
204
- state.revealed = true;
205
- state.revealTime = this.animationFrameCount;
206
- state.fadeProgress = 0;
207
- }
208
- }
209
- }
210
- }
211
- }
212
- /**
213
- * Get color for a revealed character based on fade progress
214
- */
215
- getRevealedCharacterColor(state) {
216
- if (state.fadeProgress >= 1) {
217
- return this.options.revealColor;
218
- }
219
- // Fade from bright green to final color
220
- const startColor = this.options.binaryColors[0];
221
- const endColor = this.options.revealColor;
222
- return this.interpolateColor(startColor, endColor, state.fadeProgress);
223
- }
224
- /**
225
- * Apply fade to a color
226
- */
227
- applyFade(color, fade) {
228
- const r = parseInt(color.substring(0, 2), 16);
229
- const g = parseInt(color.substring(2, 4), 16);
230
- const b = parseInt(color.substring(4, 6), 16);
231
- const fadedR = Math.round(r * fade);
232
- const fadedG = Math.round(g * fade);
233
- const fadedB = Math.round(b * fade);
234
- return [fadedR, fadedG, fadedB]
235
- .map((c) => Math.max(0, Math.min(255, c)).toString(16).padStart(2, "0"))
236
- .join("");
237
- }
238
- /**
239
- * Interpolate between two colors
240
- */
241
- interpolateColor(color1, color2, factor) {
242
- const r1 = parseInt(color1.substring(0, 2), 16);
243
- const g1 = parseInt(color1.substring(2, 4), 16);
244
- const b1 = parseInt(color1.substring(4, 6), 16);
245
- const r2 = parseInt(color2.substring(0, 2), 16);
246
- const g2 = parseInt(color2.substring(2, 4), 16);
247
- const b2 = parseInt(color2.substring(4, 6), 16);
248
- const r = Math.round(r1 + (r2 - r1) * factor);
249
- const g = Math.round(g1 + (g2 - g1) * factor);
250
- const b = Math.round(b1 + (b2 - b1) * factor);
251
- return [r, g, b]
252
- .map((c) => Math.max(0, Math.min(255, c)).toString(16).padStart(2, "0"))
253
- .join("");
254
- }
255
- /**
256
- * Get ANSI color code for a color
257
- */
258
- getColorCode(color) {
259
- if (!color || this.config.noColor) {
260
- return "";
261
- }
262
- // For RGB colors, convert to ANSI 24-bit color
263
- if (typeof color === "string") {
264
- const r = parseInt(color.substring(0, 2), 16);
265
- const g = parseInt(color.substring(2, 4), 16);
266
- const b = parseInt(color.substring(4, 6), 16);
267
- return `\x1b[38;2;${r};${g};${b}m`;
268
- }
269
- // For XTerm colors
270
- return `\x1b[38;5;${color}m`;
271
- }
272
- /**
273
- * Render fallback for when effects are disabled
274
- */
275
- renderFallback() {
276
- return this.text.split("\n");
277
- }
278
- /**
279
- * Check if effect is complete
280
- */
281
- isComplete() {
282
- return this._isEffectComplete;
283
- }
284
- /**
285
- * Reset the effect
286
- */
287
- onReset() {
288
- this.streams = [];
289
- this.characterStates.clear();
290
- this.animationFrameCount = 0;
291
- this.nextStreamId = 0;
292
- this._isEffectComplete = false;
293
- this.onInitialize();
294
- }
295
- }
296
- //# sourceMappingURL=binary-path.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"binary-path.js","sourceRoot":"","sources":["../../../src/effects/implementations/binary-path.ts"],"names":[],"mappings":"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"}
@@ -1,113 +0,0 @@
1
- /**
2
- * Blackhole Effect with ASCII Art Center
3
- * Characters are consumed by a black hole with custom ASCII art and explode outwards
4
- */
5
- import { BaseEffect } from "../types.js";
6
- /**
7
- * Configuration options for the Blackhole effect
8
- */
9
- export interface BlackholeEffectOptions {
10
- /** Duration in milliseconds */
11
- duration?: number;
12
- /** Color for the blackhole border stars */
13
- blackholeColor?: string;
14
- /** Colors for stars during explosion */
15
- starColors?: string[];
16
- /** Final color for characters */
17
- finalColor?: string;
18
- /** Use gradient for final color */
19
- useGradient?: boolean;
20
- /** Gradient direction */
21
- gradientDirection?: "vertical" | "horizontal" | "diagonal";
22
- /** Size of the blackhole relative to canvas (0.1 - 0.5) */
23
- blackholeSize?: number;
24
- /** ASCII art to display at the center */
25
- centerAsciiArt?: string[];
26
- /** Color for the center ASCII art */
27
- centerArtColor?: string;
28
- /** Whether to animate the center art */
29
- animateCenterArt?: boolean;
30
- }
31
- /**
32
- * Blackhole effect implementation
33
- */
34
- export declare class TestBlackholeEffect extends BaseEffect {
35
- readonly name = "Blackhole";
36
- readonly description = "Characters are consumed by a black hole with ASCII art center and explode outwards";
37
- private options;
38
- private characterStates;
39
- private animationFrameCount;
40
- private totalFrames;
41
- private _isEffectComplete;
42
- private currentPhase;
43
- private blackholeCenter;
44
- private blackholeRadius;
45
- private blackholeChars;
46
- private centerArtChars;
47
- private centerArtBounds;
48
- private readonly starSymbols;
49
- private readonly starfieldColors;
50
- private readonly defaultPiArt;
51
- constructor(options?: BlackholeEffectOptions);
52
- /**
53
- * Parse ASCII art into character positions
54
- */
55
- private parseAsciiArt;
56
- /**
57
- * Initialize the effect
58
- */
59
- protected onInitialize(): void;
60
- /**
61
- * Calculate gradient colors
62
- */
63
- private calculateGradientColors;
64
- /**
65
- * Get gradient key based on direction
66
- */
67
- private getGradientKey;
68
- /**
69
- * Render the next frame
70
- */
71
- render(): Promise<string[]>;
72
- /**
73
- * Render center ASCII art
74
- */
75
- private renderCenterArt;
76
- /**
77
- * Update animation state for all characters
78
- */
79
- private updateAnimationState;
80
- /**
81
- * Update individual character position
82
- */
83
- private updateCharacterPosition;
84
- /**
85
- * Create visual representation of a character
86
- */
87
- private createCharacterVisual;
88
- /**
89
- * Calculate distance between two coordinates
90
- */
91
- private calculateDistance;
92
- /**
93
- * Get ANSI color code for a color
94
- */
95
- private getColorCode;
96
- /**
97
- * Interpolate between two colors
98
- */
99
- private interpolateColor;
100
- /**
101
- * Render fallback for when effects are disabled
102
- */
103
- renderFallback(): string[];
104
- /**
105
- * Check if effect is complete
106
- */
107
- isComplete(): boolean;
108
- /**
109
- * Reset the effect
110
- */
111
- protected onReset(): void;
112
- }
113
- //# sourceMappingURL=test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../src/effects/implementations/test.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,UAAU,EAMX,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yBAAyB;IACzB,iBAAiB,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;IAC3D,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAkCD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,UAAU;IACjD,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,wFACmE;IAEvF,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,eAAe,CAAmD;IAC1E,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,iBAAiB,CAAkB;IAG3C,OAAO,CAAC,YAAY,CAKO;IAG3B,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,cAAc,CAAyB;IAG/C,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,eAAe,CAA2B;IAGlD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiD;IAC7E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAO9B;IAGF,OAAO,CAAC,QAAQ,CAAC,YAAY,CA+B3B;gBAEU,OAAO,GAAE,sBAA2B;IAiBhD;;OAEG;IACH,OAAO,CAAC,aAAa;IAuBrB;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IA8F9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAwC/B;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IA8CjC;;OAEG;IACH,OAAO,CAAC,eAAe;IA2FvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAyB5B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAwI/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkE7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAiBpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,SAAS,CAAC,OAAO,IAAI,IAAI;CAS1B"}