@kya-os/cli 0.1.0-beta.1 → 0.1.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +210 -34
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +73 -57
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/claim.js +33 -39
- package/dist/commands/claim.js.map +1 -1
- package/dist/commands/cli-experience-demo-simple.d.ts +14 -0
- package/dist/commands/cli-experience-demo-simple.d.ts.map +1 -0
- package/dist/commands/cli-experience-demo-simple.js +119 -0
- package/dist/commands/cli-experience-demo-simple.js.map +1 -0
- package/dist/commands/cli-experience-demo.d.ts +14 -0
- package/dist/commands/cli-experience-demo.d.ts.map +1 -0
- package/dist/commands/cli-experience-demo.js +172 -0
- package/dist/commands/cli-experience-demo.js.map +1 -0
- package/dist/commands/effects-demo.d.ts +10 -0
- package/dist/commands/effects-demo.d.ts.map +1 -0
- package/dist/commands/effects-demo.js +292 -0
- package/dist/commands/effects-demo.js.map +1 -0
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +55 -51
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +527 -102
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/rotate.d.ts.map +1 -1
- package/dist/commands/rotate.js +81 -60
- package/dist/commands/rotate.js.map +1 -1
- package/dist/dev.d.ts +7 -0
- package/dist/dev.d.ts.map +1 -0
- package/dist/dev.js +9 -0
- package/dist/dev.js.map +1 -0
- package/dist/effects/__tests__/effects.test.d.ts +5 -0
- package/dist/effects/__tests__/effects.test.d.ts.map +1 -0
- package/dist/effects/__tests__/effects.test.js +206 -0
- package/dist/effects/__tests__/effects.test.js.map +1 -0
- package/dist/effects/animation-engine.d.ts +173 -0
- package/dist/effects/animation-engine.d.ts.map +1 -0
- package/dist/effects/animation-engine.js +254 -0
- package/dist/effects/animation-engine.js.map +1 -0
- package/dist/effects/cli-integration.d.ts +86 -0
- package/dist/effects/cli-integration.d.ts.map +1 -0
- package/dist/effects/cli-integration.js +309 -0
- package/dist/effects/cli-integration.js.map +1 -0
- package/dist/effects/config.d.ts +95 -0
- package/dist/effects/config.d.ts.map +1 -0
- package/dist/effects/config.js +216 -0
- package/dist/effects/config.js.map +1 -0
- package/dist/effects/effect-runner.d.ts +69 -0
- package/dist/effects/effect-runner.d.ts.map +1 -0
- package/dist/effects/effect-runner.js +255 -0
- package/dist/effects/effect-runner.js.map +1 -0
- package/dist/effects/gradient.d.ts +131 -0
- package/dist/effects/gradient.d.ts.map +1 -0
- package/dist/effects/gradient.js +236 -0
- package/dist/effects/gradient.js.map +1 -0
- package/dist/effects/implementations/beams.d.ts +80 -0
- package/dist/effects/implementations/beams.d.ts.map +1 -0
- package/dist/effects/implementations/beams.js +221 -0
- package/dist/effects/implementations/beams.js.map +1 -0
- package/dist/effects/implementations/binary-path.d.ts +88 -0
- package/dist/effects/implementations/binary-path.d.ts.map +1 -0
- package/dist/effects/implementations/binary-path.js +296 -0
- package/dist/effects/implementations/binary-path.js.map +1 -0
- package/dist/effects/implementations/blackhole.d.ts +98 -0
- package/dist/effects/implementations/blackhole.d.ts.map +1 -0
- package/dist/effects/implementations/blackhole.js +394 -0
- package/dist/effects/implementations/blackhole.js.map +1 -0
- package/dist/effects/implementations/burn.d.ts +74 -0
- package/dist/effects/implementations/burn.d.ts.map +1 -0
- package/dist/effects/implementations/burn.js +234 -0
- package/dist/effects/implementations/burn.js.map +1 -0
- package/dist/effects/implementations/decrypt.d.ts +115 -0
- package/dist/effects/implementations/decrypt.d.ts.map +1 -0
- package/dist/effects/implementations/decrypt.js +394 -0
- package/dist/effects/implementations/decrypt.js.map +1 -0
- package/dist/effects/implementations/test.d.ts +113 -0
- package/dist/effects/implementations/test.d.ts.map +1 -0
- package/dist/effects/implementations/test.js +552 -0
- package/dist/effects/implementations/test.js.map +1 -0
- package/dist/effects/implementations/waves.d.ts +78 -0
- package/dist/effects/implementations/waves.d.ts.map +1 -0
- package/dist/effects/implementations/waves.js +278 -0
- package/dist/effects/implementations/waves.js.map +1 -0
- package/dist/effects/index.d.ts +37 -0
- package/dist/effects/index.d.ts.map +1 -0
- package/dist/effects/index.js +79 -0
- package/dist/effects/index.js.map +1 -0
- package/dist/effects/motion-engine.d.ts +168 -0
- package/dist/effects/motion-engine.d.ts.map +1 -0
- package/dist/effects/motion-engine.js +353 -0
- package/dist/effects/motion-engine.js.map +1 -0
- package/dist/effects/safe-executor.d.ts +55 -0
- package/dist/effects/safe-executor.d.ts.map +1 -0
- package/dist/effects/safe-executor.js +210 -0
- package/dist/effects/safe-executor.js.map +1 -0
- package/dist/effects/template/effect-template.d.ts +97 -0
- package/dist/effects/template/effect-template.d.ts.map +1 -0
- package/dist/effects/template/effect-template.js +208 -0
- package/dist/effects/template/effect-template.js.map +1 -0
- package/dist/effects/types.d.ts +199 -0
- package/dist/effects/types.d.ts.map +1 -0
- package/dist/effects/types.js +80 -0
- package/dist/effects/types.js.map +1 -0
- package/dist/effects/utils.d.ts +104 -0
- package/dist/effects/utils.d.ts.map +1 -0
- package/dist/effects/utils.js +280 -0
- package/dist/effects/utils.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +52 -51
- package/dist/index.js.map +1 -1
- package/dist/utils/env-manager.d.ts +66 -2
- package/dist/utils/env-manager.d.ts.map +1 -1
- package/dist/utils/env-manager.js +355 -65
- package/dist/utils/env-manager.js.map +1 -1
- package/dist/utils/platform-detector.js +15 -19
- package/dist/utils/platform-detector.js.map +1 -1
- package/dist/utils/prompts.js +21 -34
- package/dist/utils/prompts.js.map +1 -1
- package/package.json +10 -5
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for terminal effects
|
|
3
|
+
*/
|
|
4
|
+
import { TerminalCapabilities, TerminalDimensions, Color, RGBColor, XTermColor } from "./types.js";
|
|
5
|
+
/**
|
|
6
|
+
* ANSI escape codes
|
|
7
|
+
*/
|
|
8
|
+
export declare const ANSI: {
|
|
9
|
+
reset: string;
|
|
10
|
+
cursor: {
|
|
11
|
+
hide: string;
|
|
12
|
+
show: string;
|
|
13
|
+
save: string;
|
|
14
|
+
restore: string;
|
|
15
|
+
home: string;
|
|
16
|
+
moveTo: (x: number, y: number) => string;
|
|
17
|
+
};
|
|
18
|
+
clear: {
|
|
19
|
+
screen: string;
|
|
20
|
+
line: string;
|
|
21
|
+
toEnd: string;
|
|
22
|
+
toStart: string;
|
|
23
|
+
};
|
|
24
|
+
color: {
|
|
25
|
+
fg: (color: Color) => string;
|
|
26
|
+
bg: (color: Color) => string;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Detect terminal capabilities
|
|
31
|
+
*/
|
|
32
|
+
export declare function detectTerminalCapabilities(): TerminalCapabilities;
|
|
33
|
+
/**
|
|
34
|
+
* Get terminal dimensions
|
|
35
|
+
*/
|
|
36
|
+
export declare function getTerminalDimensions(): TerminalDimensions;
|
|
37
|
+
/**
|
|
38
|
+
* Convert RGB hex to XTerm-256 color
|
|
39
|
+
* Based on the algorithm from https://github.com/Qix-/color-convert
|
|
40
|
+
*/
|
|
41
|
+
export declare function rgbToXterm(hex: RGBColor): XTermColor;
|
|
42
|
+
/**
|
|
43
|
+
* Strip ANSI codes from string
|
|
44
|
+
*/
|
|
45
|
+
export declare function stripAnsi(str: string): string;
|
|
46
|
+
/**
|
|
47
|
+
* Measure the visible length of a string (excluding ANSI codes)
|
|
48
|
+
*/
|
|
49
|
+
export declare function measureString(str: string): number;
|
|
50
|
+
/**
|
|
51
|
+
* Pad string to specified width (accounting for ANSI codes)
|
|
52
|
+
*/
|
|
53
|
+
export declare function padString(str: string, width: number, align?: "left" | "right" | "center"): string;
|
|
54
|
+
/**
|
|
55
|
+
* Create a buffer for double-buffered rendering
|
|
56
|
+
*/
|
|
57
|
+
export declare class RenderBuffer {
|
|
58
|
+
private buffer;
|
|
59
|
+
private width;
|
|
60
|
+
private height;
|
|
61
|
+
constructor(width: number, height: number);
|
|
62
|
+
clear(): void;
|
|
63
|
+
setChar(x: number, y: number, char: string, color?: string): void;
|
|
64
|
+
toString(): string;
|
|
65
|
+
getLines(): string[];
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Sleep for specified milliseconds
|
|
69
|
+
*/
|
|
70
|
+
export declare function sleep(ms: number): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Calculate FPS delay from frame rate
|
|
73
|
+
*/
|
|
74
|
+
export declare function calculateFrameDelay(fps: number): number;
|
|
75
|
+
/**
|
|
76
|
+
* Easing functions for smooth animations
|
|
77
|
+
*/
|
|
78
|
+
export declare const Easing: {
|
|
79
|
+
linear: (t: number) => number;
|
|
80
|
+
easeIn: (t: number) => number;
|
|
81
|
+
easeOut: (t: number) => number;
|
|
82
|
+
easeInOut: (t: number) => number;
|
|
83
|
+
easeInCubic: (t: number) => number;
|
|
84
|
+
easeOutCubic: (t: number) => number;
|
|
85
|
+
easeInOutCubic: (t: number) => number;
|
|
86
|
+
easeInOutSine: (t: number) => number;
|
|
87
|
+
};
|
|
88
|
+
export declare const easeInQuad: (t: number) => number;
|
|
89
|
+
export declare const easeOutQuad: (t: number) => number;
|
|
90
|
+
export declare const easeInOutQuad: (t: number) => number;
|
|
91
|
+
export declare const easeInOutSine: (t: number) => number;
|
|
92
|
+
/**
|
|
93
|
+
* Interpolate between two values
|
|
94
|
+
*/
|
|
95
|
+
export declare function lerp(start: number, end: number, t: number): number;
|
|
96
|
+
/**
|
|
97
|
+
* Clamp a value between min and max
|
|
98
|
+
*/
|
|
99
|
+
export declare function clamp(value: number, min: number, max: number): number;
|
|
100
|
+
/**
|
|
101
|
+
* Create a gradient between two colors
|
|
102
|
+
*/
|
|
103
|
+
export declare function createGradient(startColor: RGBColor, endColor: RGBColor, steps: number): RGBColor[];
|
|
104
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/effects/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,EACL,QAAQ,EACR,UAAU,EAGX,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,eAAO,MAAM,IAAI;;;;;;;;oBAQD,MAAM,KAAK,MAAM;;;;;;;;;oBASjB,KAAK;oBAWL,KAAK;;CAYpB,CAAC;AAEF;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,oBAAoB,CAWjE;AA6BD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,kBAAkB,CAS1D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,UAAU,CA2DpD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAM,GAAG,OAAO,GAAG,QAAiB,GAC1C,MAAM,CAcR;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;gBAEX,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAMzC,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAMjE,QAAQ,IAAI,MAAM;IAIlB,QAAQ,IAAI,MAAM,EAAE;CAGrB;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED;;GAEG;AACH,eAAO,MAAM,MAAM;gBACL,MAAM;gBACN,MAAM;iBACL,MAAM;mBACJ,MAAM;qBACJ,MAAM;sBACL,MAAM;wBACJ,MAAM;uBAEP,MAAM;CAC1B,CAAC;AAGF,eAAO,MAAM,UAAU,MAXT,MAAM,WAWmB,CAAC;AACxC,eAAO,MAAM,WAAW,MAXT,MAAM,WAWoB,CAAC;AAC1C,eAAO,MAAM,aAAa,MAXT,MAAM,WAWsB,CAAC;AAC9C,eAAO,MAAM,aAAa,MAPL,MAAM,WAOsB,CAAC;AAElD;;GAEG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,QAAQ,EACpB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,GACZ,QAAQ,EAAE,CAyBZ"}
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for terminal effects
|
|
3
|
+
*/
|
|
4
|
+
import { isRGBColor, isXTermColor, } from "./types.js";
|
|
5
|
+
/**
|
|
6
|
+
* ANSI escape codes
|
|
7
|
+
*/
|
|
8
|
+
export const ANSI = {
|
|
9
|
+
reset: "\x1b[0m",
|
|
10
|
+
cursor: {
|
|
11
|
+
hide: "\x1b[?25l",
|
|
12
|
+
show: "\x1b[?25h",
|
|
13
|
+
save: "\x1b[s",
|
|
14
|
+
restore: "\x1b[u",
|
|
15
|
+
home: "\x1b[H",
|
|
16
|
+
moveTo: (x, y) => `\x1b[${y + 1};${x + 1}H`,
|
|
17
|
+
},
|
|
18
|
+
clear: {
|
|
19
|
+
screen: "\x1b[2J",
|
|
20
|
+
line: "\x1b[2K",
|
|
21
|
+
toEnd: "\x1b[0J",
|
|
22
|
+
toStart: "\x1b[1J",
|
|
23
|
+
},
|
|
24
|
+
color: {
|
|
25
|
+
fg: (color) => {
|
|
26
|
+
if (isRGBColor(color)) {
|
|
27
|
+
const r = parseInt(color.substr(0, 2), 16);
|
|
28
|
+
const g = parseInt(color.substr(2, 2), 16);
|
|
29
|
+
const b = parseInt(color.substr(4, 2), 16);
|
|
30
|
+
return `\x1b[38;2;${r};${g};${b}m`;
|
|
31
|
+
}
|
|
32
|
+
else if (isXTermColor(color)) {
|
|
33
|
+
return `\x1b[38;5;${color}m`;
|
|
34
|
+
}
|
|
35
|
+
return "";
|
|
36
|
+
},
|
|
37
|
+
bg: (color) => {
|
|
38
|
+
if (isRGBColor(color)) {
|
|
39
|
+
const r = parseInt(color.substr(0, 2), 16);
|
|
40
|
+
const g = parseInt(color.substr(2, 2), 16);
|
|
41
|
+
const b = parseInt(color.substr(4, 2), 16);
|
|
42
|
+
return `\x1b[48;2;${r};${g};${b}m`;
|
|
43
|
+
}
|
|
44
|
+
else if (isXTermColor(color)) {
|
|
45
|
+
return `\x1b[48;5;${color}m`;
|
|
46
|
+
}
|
|
47
|
+
return "";
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Detect terminal capabilities
|
|
53
|
+
*/
|
|
54
|
+
export function detectTerminalCapabilities() {
|
|
55
|
+
const isInteractive = process.stdout.isTTY || false;
|
|
56
|
+
const colorLevel = getColorLevel();
|
|
57
|
+
return {
|
|
58
|
+
supportsColor: colorLevel > 0,
|
|
59
|
+
supports256Color: colorLevel >= 2,
|
|
60
|
+
supportsTrueColor: colorLevel >= 3,
|
|
61
|
+
dimensions: getTerminalDimensions(),
|
|
62
|
+
isInteractive,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get color support level
|
|
67
|
+
* 0 = no color, 1 = basic color, 2 = 256 color, 3 = true color
|
|
68
|
+
*/
|
|
69
|
+
function getColorLevel() {
|
|
70
|
+
if (process.env.NO_COLOR || process.env.TERM === "dumb") {
|
|
71
|
+
return 0;
|
|
72
|
+
}
|
|
73
|
+
if (process.env.COLORTERM === "truecolor" ||
|
|
74
|
+
process.env.TERM_PROGRAM === "iTerm.app") {
|
|
75
|
+
return 3;
|
|
76
|
+
}
|
|
77
|
+
if (process.env.TERM && /256/.test(process.env.TERM)) {
|
|
78
|
+
return 2;
|
|
79
|
+
}
|
|
80
|
+
if (process.stdout.hasColors?.()) {
|
|
81
|
+
return process.stdout.hasColors(256) ? 2 : 1;
|
|
82
|
+
}
|
|
83
|
+
return 0;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Get terminal dimensions
|
|
87
|
+
*/
|
|
88
|
+
export function getTerminalDimensions() {
|
|
89
|
+
if (process.stdout.isTTY) {
|
|
90
|
+
return {
|
|
91
|
+
width: process.stdout.columns || 80,
|
|
92
|
+
height: process.stdout.rows || 24,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
return { width: 80, height: 24 };
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Convert RGB hex to XTerm-256 color
|
|
99
|
+
* Based on the algorithm from https://github.com/Qix-/color-convert
|
|
100
|
+
*/
|
|
101
|
+
export function rgbToXterm(hex) {
|
|
102
|
+
const r = parseInt(hex.substr(0, 2), 16);
|
|
103
|
+
const g = parseInt(hex.substr(2, 2), 16);
|
|
104
|
+
const b = parseInt(hex.substr(4, 2), 16);
|
|
105
|
+
// Check for exact matches in the basic 16 colors
|
|
106
|
+
const basicColors = [
|
|
107
|
+
[0, 0, 0],
|
|
108
|
+
[128, 0, 0],
|
|
109
|
+
[0, 128, 0],
|
|
110
|
+
[128, 128, 0],
|
|
111
|
+
[0, 0, 128],
|
|
112
|
+
[128, 0, 128],
|
|
113
|
+
[0, 128, 128],
|
|
114
|
+
[192, 192, 192],
|
|
115
|
+
[128, 128, 128],
|
|
116
|
+
[255, 0, 0],
|
|
117
|
+
[0, 255, 0],
|
|
118
|
+
[255, 255, 0],
|
|
119
|
+
[0, 0, 255],
|
|
120
|
+
[255, 0, 255],
|
|
121
|
+
[0, 255, 255],
|
|
122
|
+
[255, 255, 255],
|
|
123
|
+
];
|
|
124
|
+
for (let i = 0; i < basicColors.length; i++) {
|
|
125
|
+
const [br, bg, bb] = basicColors[i];
|
|
126
|
+
if (r === br && g === bg && b === bb) {
|
|
127
|
+
return i;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// Check grayscale
|
|
131
|
+
if (r === g && g === b) {
|
|
132
|
+
if (r < 8)
|
|
133
|
+
return 16;
|
|
134
|
+
if (r > 248)
|
|
135
|
+
return 231;
|
|
136
|
+
return Math.round(((r - 8) / 247) * 24) + 232;
|
|
137
|
+
}
|
|
138
|
+
// Use 6x6x6 color cube
|
|
139
|
+
const levels = [0, 95, 135, 175, 215, 255];
|
|
140
|
+
const findClosest = (value) => {
|
|
141
|
+
let minDist = Infinity;
|
|
142
|
+
let closest = 0;
|
|
143
|
+
for (let i = 0; i < levels.length; i++) {
|
|
144
|
+
const dist = Math.abs(value - levels[i]);
|
|
145
|
+
if (dist < minDist) {
|
|
146
|
+
minDist = dist;
|
|
147
|
+
closest = i;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return closest;
|
|
151
|
+
};
|
|
152
|
+
const ri = findClosest(r);
|
|
153
|
+
const gi = findClosest(g);
|
|
154
|
+
const bi = findClosest(b);
|
|
155
|
+
return 16 + 36 * ri + 6 * gi + bi;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Strip ANSI codes from string
|
|
159
|
+
*/
|
|
160
|
+
export function stripAnsi(str) {
|
|
161
|
+
// eslint-disable-next-line no-control-regex
|
|
162
|
+
return str.replace(/\x1b\[[0-9;]*m/g, "");
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Measure the visible length of a string (excluding ANSI codes)
|
|
166
|
+
*/
|
|
167
|
+
export function measureString(str) {
|
|
168
|
+
return stripAnsi(str).length;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Pad string to specified width (accounting for ANSI codes)
|
|
172
|
+
*/
|
|
173
|
+
export function padString(str, width, align = "left") {
|
|
174
|
+
const visibleLength = measureString(str);
|
|
175
|
+
const padding = Math.max(0, width - visibleLength);
|
|
176
|
+
switch (align) {
|
|
177
|
+
case "right":
|
|
178
|
+
return " ".repeat(padding) + str;
|
|
179
|
+
case "center":
|
|
180
|
+
const leftPad = Math.floor(padding / 2);
|
|
181
|
+
const rightPad = padding - leftPad;
|
|
182
|
+
return " ".repeat(leftPad) + str + " ".repeat(rightPad);
|
|
183
|
+
default:
|
|
184
|
+
return str + " ".repeat(padding);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Create a buffer for double-buffered rendering
|
|
189
|
+
*/
|
|
190
|
+
export class RenderBuffer {
|
|
191
|
+
constructor(width, height) {
|
|
192
|
+
this.buffer = [];
|
|
193
|
+
this.width = width;
|
|
194
|
+
this.height = height;
|
|
195
|
+
this.clear();
|
|
196
|
+
}
|
|
197
|
+
clear() {
|
|
198
|
+
this.buffer = Array(this.height)
|
|
199
|
+
.fill(null)
|
|
200
|
+
.map(() => Array(this.width).fill(" "));
|
|
201
|
+
}
|
|
202
|
+
setChar(x, y, char, color) {
|
|
203
|
+
if (x >= 0 && x < this.width && y >= 0 && y < this.height) {
|
|
204
|
+
this.buffer[y][x] = color ? `${color}${char}${ANSI.reset}` : char;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
toString() {
|
|
208
|
+
return this.buffer.map((row) => row.join("")).join("\n");
|
|
209
|
+
}
|
|
210
|
+
getLines() {
|
|
211
|
+
return this.buffer.map((row) => row.join(""));
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Sleep for specified milliseconds
|
|
216
|
+
*/
|
|
217
|
+
export function sleep(ms) {
|
|
218
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Calculate FPS delay from frame rate
|
|
222
|
+
*/
|
|
223
|
+
export function calculateFrameDelay(fps) {
|
|
224
|
+
if (fps <= 0)
|
|
225
|
+
return 0;
|
|
226
|
+
return Math.floor(1000 / fps);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Easing functions for smooth animations
|
|
230
|
+
*/
|
|
231
|
+
export const Easing = {
|
|
232
|
+
linear: (t) => t,
|
|
233
|
+
easeIn: (t) => t * t,
|
|
234
|
+
easeOut: (t) => t * (2 - t),
|
|
235
|
+
easeInOut: (t) => (t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t),
|
|
236
|
+
easeInCubic: (t) => t * t * t,
|
|
237
|
+
easeOutCubic: (t) => --t * t * t + 1,
|
|
238
|
+
easeInOutCubic: (t) => t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,
|
|
239
|
+
easeInOutSine: (t) => -(Math.cos(Math.PI * t) - 1) / 2,
|
|
240
|
+
};
|
|
241
|
+
// Export individual easing functions for convenience
|
|
242
|
+
export const easeInQuad = Easing.easeIn;
|
|
243
|
+
export const easeOutQuad = Easing.easeOut;
|
|
244
|
+
export const easeInOutQuad = Easing.easeInOut;
|
|
245
|
+
export const easeInOutSine = Easing.easeInOutSine;
|
|
246
|
+
/**
|
|
247
|
+
* Interpolate between two values
|
|
248
|
+
*/
|
|
249
|
+
export function lerp(start, end, t) {
|
|
250
|
+
return start + (end - start) * t;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Clamp a value between min and max
|
|
254
|
+
*/
|
|
255
|
+
export function clamp(value, min, max) {
|
|
256
|
+
return Math.max(min, Math.min(max, value));
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Create a gradient between two colors
|
|
260
|
+
*/
|
|
261
|
+
export function createGradient(startColor, endColor, steps) {
|
|
262
|
+
const colors = [];
|
|
263
|
+
const sr = parseInt(startColor.substr(0, 2), 16);
|
|
264
|
+
const sg = parseInt(startColor.substr(2, 2), 16);
|
|
265
|
+
const sb = parseInt(startColor.substr(4, 2), 16);
|
|
266
|
+
const er = parseInt(endColor.substr(0, 2), 16);
|
|
267
|
+
const eg = parseInt(endColor.substr(2, 2), 16);
|
|
268
|
+
const eb = parseInt(endColor.substr(4, 2), 16);
|
|
269
|
+
for (let i = 0; i < steps; i++) {
|
|
270
|
+
const t = i / (steps - 1);
|
|
271
|
+
const r = Math.round(lerp(sr, er, t));
|
|
272
|
+
const g = Math.round(lerp(sg, eg, t));
|
|
273
|
+
const b = Math.round(lerp(sb, eb, t));
|
|
274
|
+
colors.push(r.toString(16).padStart(2, "0") +
|
|
275
|
+
g.toString(16).padStart(2, "0") +
|
|
276
|
+
b.toString(16).padStart(2, "0"));
|
|
277
|
+
}
|
|
278
|
+
return colors;
|
|
279
|
+
}
|
|
280
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/effects/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,eAAO,MAAM,OAAO,SAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,73 +1,74 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
const claim_1 = require("./commands/claim");
|
|
14
|
-
const program = new commander_1.Command();
|
|
2
|
+
import { Command } from "commander";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
import { init } from "./commands/init.js";
|
|
5
|
+
import { check } from "./commands/check.js";
|
|
6
|
+
import { env } from "./commands/env.js";
|
|
7
|
+
import { rotate } from "./commands/rotate.js";
|
|
8
|
+
import { claim } from "./commands/claim.js";
|
|
9
|
+
import { createEffectsDemoCommand } from "./commands/effects-demo.js";
|
|
10
|
+
import { createCLIExperienceDemoCommand } from "./commands/cli-experience-demo.js";
|
|
11
|
+
import { createSimpleCLIDemoCommand } from "./commands/cli-experience-demo-simple.js";
|
|
12
|
+
export const program = new Command();
|
|
15
13
|
// ASCII art logo
|
|
16
|
-
const logo =
|
|
14
|
+
const logo = chalk.cyan(`
|
|
17
15
|
╦╔═╦ ╦╔═╗ ╔═╗╔═╗
|
|
18
16
|
╠╩╗╚╦╝╠═╣───║ ║╚═╗
|
|
19
17
|
╩ ╩ ╩ ╩ ╩ ╚═╝╚═╝
|
|
20
18
|
`);
|
|
21
19
|
program
|
|
22
|
-
.name(
|
|
23
|
-
.description(
|
|
24
|
-
.version(
|
|
25
|
-
.addHelpText(
|
|
20
|
+
.name("kya-os")
|
|
21
|
+
.description("CLI for KYA-OS MCP-I setup and management")
|
|
22
|
+
.version("0.1.0")
|
|
23
|
+
.addHelpText("before", logo);
|
|
26
24
|
// Init command
|
|
27
25
|
program
|
|
28
|
-
.command(
|
|
29
|
-
.description(
|
|
30
|
-
.option(
|
|
31
|
-
.option(
|
|
32
|
-
.option(
|
|
33
|
-
.option(
|
|
34
|
-
.option(
|
|
35
|
-
.option(
|
|
36
|
-
.action(
|
|
26
|
+
.command("init")
|
|
27
|
+
.description("Initialize MCP-I in your project")
|
|
28
|
+
.option("-n, --name <name>", "Agent name")
|
|
29
|
+
.option("-d, --description <description>", "Agent description")
|
|
30
|
+
.option("-r, --repository <url>", "Repository URL")
|
|
31
|
+
.option("-p, --platform <platform>", "Target platform (auto-detected if not specified)")
|
|
32
|
+
.option("--skip-registration", "Skip agent registration (create files only)")
|
|
33
|
+
.option("--force", "Overwrite existing configuration")
|
|
34
|
+
.action(init);
|
|
37
35
|
// Check command
|
|
38
36
|
program
|
|
39
|
-
.command(
|
|
40
|
-
.description(
|
|
41
|
-
.option(
|
|
42
|
-
.action(
|
|
37
|
+
.command("check")
|
|
38
|
+
.description("Check MCP-I setup status")
|
|
39
|
+
.option("-v, --verbose", "Show detailed information")
|
|
40
|
+
.action(check);
|
|
43
41
|
// Env command with subcommands
|
|
44
42
|
const envCommand = program
|
|
45
|
-
.command(
|
|
46
|
-
.description(
|
|
43
|
+
.command("env")
|
|
44
|
+
.description("Manage environment variables");
|
|
47
45
|
envCommand
|
|
48
|
-
.command(
|
|
49
|
-
.description(
|
|
50
|
-
.action(() =>
|
|
46
|
+
.command("show")
|
|
47
|
+
.description("Show required environment variables")
|
|
48
|
+
.action(() => env("show"));
|
|
51
49
|
envCommand
|
|
52
|
-
.command(
|
|
53
|
-
.description(
|
|
54
|
-
.action(() =>
|
|
50
|
+
.command("copy")
|
|
51
|
+
.description("Copy environment variables to clipboard")
|
|
52
|
+
.action(() => env("copy"));
|
|
55
53
|
envCommand
|
|
56
|
-
.command(
|
|
57
|
-
.description(
|
|
58
|
-
.action(() =>
|
|
54
|
+
.command("verify")
|
|
55
|
+
.description("Verify environment variables are set correctly")
|
|
56
|
+
.action(() => env("verify"));
|
|
59
57
|
// Rotate command
|
|
60
58
|
program
|
|
61
|
-
.command(
|
|
62
|
-
.description(
|
|
63
|
-
.option(
|
|
64
|
-
.option(
|
|
65
|
-
.action(
|
|
59
|
+
.command("rotate")
|
|
60
|
+
.description("Rotate identity keys")
|
|
61
|
+
.option("-f, --force", "Force rotation without confirmation")
|
|
62
|
+
.option("-r, --reason <reason>", "Reason for rotation")
|
|
63
|
+
.action(rotate);
|
|
66
64
|
// Claim command
|
|
67
|
-
program
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
program.command("claim").description("Get agent claim/edit URLs").action(claim);
|
|
66
|
+
// Effects demo command
|
|
67
|
+
program.addCommand(createEffectsDemoCommand());
|
|
68
|
+
// CLI experience demo command
|
|
69
|
+
program.addCommand(createCLIExperienceDemoCommand());
|
|
70
|
+
// Simple CLI demo command
|
|
71
|
+
program.addCommand(createSimpleCLIDemoCommand());
|
|
71
72
|
// Parse arguments
|
|
72
73
|
program.parse();
|
|
73
74
|
// Show help if no command specified
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAEnF,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAErC,iBAAiB;AACjB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;;;;CAIvB,CAAC,CAAC;AAEH,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,2CAA2C,CAAC;KACxD,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAE/B,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,mBAAmB,EAAE,YAAY,CAAC;KACzC,MAAM,CAAC,iCAAiC,EAAE,mBAAmB,CAAC;KAC9D,MAAM,CAAC,wBAAwB,EAAE,gBAAgB,CAAC;KAClD,MAAM,CACL,2BAA2B,EAC3B,kDAAkD,CACnD;KACA,MAAM,CAAC,qBAAqB,EAAE,6CAA6C,CAAC;KAC5E,MAAM,CAAC,SAAS,EAAE,kCAAkC,CAAC;KACrD,MAAM,CAAC,IAAI,CAAC,CAAC;AAEhB,gBAAgB;AAChB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,eAAe,EAAE,2BAA2B,CAAC;KACpD,MAAM,CAAC,KAAK,CAAC,CAAC;AAEjB,+BAA+B;AAC/B,MAAM,UAAU,GAAG,OAAO;KACvB,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,8BAA8B,CAAC,CAAC;AAE/C,UAAU;KACP,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAE7B,UAAU;KACP,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAE7B,UAAU;KACP,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE/B,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,aAAa,EAAE,qCAAqC,CAAC;KAC5D,MAAM,CAAC,uBAAuB,EAAE,qBAAqB,CAAC;KACtD,MAAM,CAAC,MAAM,CAAC,CAAC;AAElB,gBAAgB;AAChB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAEhF,uBAAuB;AACvB,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;AAE/C,8BAA8B;AAC9B,OAAO,CAAC,UAAU,CAAC,8BAA8B,EAAE,CAAC,CAAC;AAErD,0BAA0B;AAC1B,OAAO,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,CAAC;AAEjD,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAC;AAEhB,oCAAoC;AACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -5,13 +5,77 @@ export interface EnvVariables {
|
|
|
5
5
|
MCP_IDENTITY_AGENT_ID: string;
|
|
6
6
|
MCP_IDENTITY_AGENT_SLUG: string;
|
|
7
7
|
}
|
|
8
|
+
export interface EnvFile {
|
|
9
|
+
path: string;
|
|
10
|
+
filename: string;
|
|
11
|
+
exists: boolean;
|
|
12
|
+
writable: boolean;
|
|
13
|
+
hasMcpIdentity: boolean;
|
|
14
|
+
mcpVariables: Partial<EnvVariables>;
|
|
15
|
+
}
|
|
16
|
+
export interface EnvInsertionResult {
|
|
17
|
+
success: boolean;
|
|
18
|
+
targetFile: string;
|
|
19
|
+
operation: "created" | "updated" | "replaced";
|
|
20
|
+
warnings: string[];
|
|
21
|
+
conflicts?: {
|
|
22
|
+
file: string;
|
|
23
|
+
variable: string;
|
|
24
|
+
value: string;
|
|
25
|
+
}[];
|
|
26
|
+
}
|
|
8
27
|
export declare class EnvManager {
|
|
9
28
|
private projectRoot;
|
|
10
29
|
constructor(projectRoot?: string);
|
|
11
30
|
/**
|
|
12
|
-
*
|
|
31
|
+
* Scan for all .env files with detailed analysis
|
|
32
|
+
*/
|
|
33
|
+
scanEnvFiles(): EnvFile[];
|
|
34
|
+
/**
|
|
35
|
+
* Determine the best target file using precedence rules
|
|
36
|
+
*/
|
|
37
|
+
selectTargetEnvFile(envFiles: EnvFile[]): {
|
|
38
|
+
target: EnvFile | null;
|
|
39
|
+
warnings: string[];
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Check for conflicts across multiple .env files
|
|
43
|
+
*/
|
|
44
|
+
detectConflicts(envFiles: EnvFile[], newVariables: EnvVariables): {
|
|
45
|
+
file: string;
|
|
46
|
+
variable: string;
|
|
47
|
+
value: string;
|
|
48
|
+
}[];
|
|
49
|
+
/**
|
|
50
|
+
* Smart insertion/update of MCP-I variables
|
|
51
|
+
*/
|
|
52
|
+
smartInsertMcpVariables(variables: EnvVariables, options?: {
|
|
53
|
+
force?: boolean;
|
|
54
|
+
}): Promise<EnvInsertionResult>;
|
|
55
|
+
/**
|
|
56
|
+
* Parse .env file and extract MCP-I variables
|
|
57
|
+
*/
|
|
58
|
+
private parseEnvFile;
|
|
59
|
+
/**
|
|
60
|
+
* Create a new .env file
|
|
61
|
+
*/
|
|
62
|
+
private createEnvFile;
|
|
63
|
+
/**
|
|
64
|
+
* Update existing .env file by replacing MCP-I variables
|
|
65
|
+
*/
|
|
66
|
+
private updateExistingEnvFile;
|
|
67
|
+
/**
|
|
68
|
+
* Append MCP-I variables to existing .env file
|
|
69
|
+
*/
|
|
70
|
+
private appendToEnvFile;
|
|
71
|
+
/**
|
|
72
|
+
* Find existing .env files in the project
|
|
73
|
+
*/
|
|
74
|
+
findExistingEnvFiles(): string[];
|
|
75
|
+
/**
|
|
76
|
+
* Update or create environment file, merging with existing content
|
|
13
77
|
*/
|
|
14
|
-
|
|
78
|
+
updateEnvFile(filename: string, variables: EnvVariables, options?: {
|
|
15
79
|
force?: boolean;
|
|
16
80
|
example?: boolean;
|
|
17
81
|
}): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-manager.d.ts","sourceRoot":"","sources":["../../src/utils/env-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"env-manager.d.ts","sourceRoot":"","sources":["../../src/utils/env-manager.ts"],"names":[],"mappings":"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"}
|