@kya-os/cli 0.1.0-beta.1 → 0.1.0-beta.11

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 (121) hide show
  1. package/README.md +210 -34
  2. package/dist/commands/check.d.ts.map +1 -1
  3. package/dist/commands/check.js +73 -57
  4. package/dist/commands/check.js.map +1 -1
  5. package/dist/commands/claim.js +33 -39
  6. package/dist/commands/claim.js.map +1 -1
  7. package/dist/commands/cli-experience-demo-simple.d.ts +14 -0
  8. package/dist/commands/cli-experience-demo-simple.d.ts.map +1 -0
  9. package/dist/commands/cli-experience-demo-simple.js +119 -0
  10. package/dist/commands/cli-experience-demo-simple.js.map +1 -0
  11. package/dist/commands/cli-experience-demo.d.ts +14 -0
  12. package/dist/commands/cli-experience-demo.d.ts.map +1 -0
  13. package/dist/commands/cli-experience-demo.js +172 -0
  14. package/dist/commands/cli-experience-demo.js.map +1 -0
  15. package/dist/commands/effects-demo.d.ts +10 -0
  16. package/dist/commands/effects-demo.d.ts.map +1 -0
  17. package/dist/commands/effects-demo.js +292 -0
  18. package/dist/commands/effects-demo.js.map +1 -0
  19. package/dist/commands/env.d.ts.map +1 -1
  20. package/dist/commands/env.js +55 -51
  21. package/dist/commands/env.js.map +1 -1
  22. package/dist/commands/init.d.ts +1 -0
  23. package/dist/commands/init.d.ts.map +1 -1
  24. package/dist/commands/init.js +527 -102
  25. package/dist/commands/init.js.map +1 -1
  26. package/dist/commands/rotate.d.ts.map +1 -1
  27. package/dist/commands/rotate.js +81 -60
  28. package/dist/commands/rotate.js.map +1 -1
  29. package/dist/dev.d.ts +7 -0
  30. package/dist/dev.d.ts.map +1 -0
  31. package/dist/dev.js +9 -0
  32. package/dist/dev.js.map +1 -0
  33. package/dist/effects/__tests__/effects.test.d.ts +5 -0
  34. package/dist/effects/__tests__/effects.test.d.ts.map +1 -0
  35. package/dist/effects/__tests__/effects.test.js +206 -0
  36. package/dist/effects/__tests__/effects.test.js.map +1 -0
  37. package/dist/effects/animation-engine.d.ts +173 -0
  38. package/dist/effects/animation-engine.d.ts.map +1 -0
  39. package/dist/effects/animation-engine.js +254 -0
  40. package/dist/effects/animation-engine.js.map +1 -0
  41. package/dist/effects/cli-integration.d.ts +86 -0
  42. package/dist/effects/cli-integration.d.ts.map +1 -0
  43. package/dist/effects/cli-integration.js +309 -0
  44. package/dist/effects/cli-integration.js.map +1 -0
  45. package/dist/effects/config.d.ts +95 -0
  46. package/dist/effects/config.d.ts.map +1 -0
  47. package/dist/effects/config.js +216 -0
  48. package/dist/effects/config.js.map +1 -0
  49. package/dist/effects/effect-runner.d.ts +69 -0
  50. package/dist/effects/effect-runner.d.ts.map +1 -0
  51. package/dist/effects/effect-runner.js +255 -0
  52. package/dist/effects/effect-runner.js.map +1 -0
  53. package/dist/effects/gradient.d.ts +131 -0
  54. package/dist/effects/gradient.d.ts.map +1 -0
  55. package/dist/effects/gradient.js +236 -0
  56. package/dist/effects/gradient.js.map +1 -0
  57. package/dist/effects/implementations/beams.d.ts +80 -0
  58. package/dist/effects/implementations/beams.d.ts.map +1 -0
  59. package/dist/effects/implementations/beams.js +221 -0
  60. package/dist/effects/implementations/beams.js.map +1 -0
  61. package/dist/effects/implementations/binary-path.d.ts +88 -0
  62. package/dist/effects/implementations/binary-path.d.ts.map +1 -0
  63. package/dist/effects/implementations/binary-path.js +296 -0
  64. package/dist/effects/implementations/binary-path.js.map +1 -0
  65. package/dist/effects/implementations/blackhole.d.ts +98 -0
  66. package/dist/effects/implementations/blackhole.d.ts.map +1 -0
  67. package/dist/effects/implementations/blackhole.js +394 -0
  68. package/dist/effects/implementations/blackhole.js.map +1 -0
  69. package/dist/effects/implementations/burn.d.ts +74 -0
  70. package/dist/effects/implementations/burn.d.ts.map +1 -0
  71. package/dist/effects/implementations/burn.js +234 -0
  72. package/dist/effects/implementations/burn.js.map +1 -0
  73. package/dist/effects/implementations/decrypt.d.ts +115 -0
  74. package/dist/effects/implementations/decrypt.d.ts.map +1 -0
  75. package/dist/effects/implementations/decrypt.js +394 -0
  76. package/dist/effects/implementations/decrypt.js.map +1 -0
  77. package/dist/effects/implementations/test.d.ts +113 -0
  78. package/dist/effects/implementations/test.d.ts.map +1 -0
  79. package/dist/effects/implementations/test.js +552 -0
  80. package/dist/effects/implementations/test.js.map +1 -0
  81. package/dist/effects/implementations/waves.d.ts +78 -0
  82. package/dist/effects/implementations/waves.d.ts.map +1 -0
  83. package/dist/effects/implementations/waves.js +278 -0
  84. package/dist/effects/implementations/waves.js.map +1 -0
  85. package/dist/effects/index.d.ts +37 -0
  86. package/dist/effects/index.d.ts.map +1 -0
  87. package/dist/effects/index.js +79 -0
  88. package/dist/effects/index.js.map +1 -0
  89. package/dist/effects/motion-engine.d.ts +168 -0
  90. package/dist/effects/motion-engine.d.ts.map +1 -0
  91. package/dist/effects/motion-engine.js +353 -0
  92. package/dist/effects/motion-engine.js.map +1 -0
  93. package/dist/effects/safe-executor.d.ts +55 -0
  94. package/dist/effects/safe-executor.d.ts.map +1 -0
  95. package/dist/effects/safe-executor.js +210 -0
  96. package/dist/effects/safe-executor.js.map +1 -0
  97. package/dist/effects/template/effect-template.d.ts +97 -0
  98. package/dist/effects/template/effect-template.d.ts.map +1 -0
  99. package/dist/effects/template/effect-template.js +208 -0
  100. package/dist/effects/template/effect-template.js.map +1 -0
  101. package/dist/effects/types.d.ts +199 -0
  102. package/dist/effects/types.d.ts.map +1 -0
  103. package/dist/effects/types.js +80 -0
  104. package/dist/effects/types.js.map +1 -0
  105. package/dist/effects/utils.d.ts +104 -0
  106. package/dist/effects/utils.d.ts.map +1 -0
  107. package/dist/effects/utils.js +280 -0
  108. package/dist/effects/utils.js.map +1 -0
  109. package/dist/index.d.ts +2 -1
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +52 -51
  112. package/dist/index.js.map +1 -1
  113. package/dist/utils/env-manager.d.ts +66 -2
  114. package/dist/utils/env-manager.d.ts.map +1 -1
  115. package/dist/utils/env-manager.js +355 -65
  116. package/dist/utils/env-manager.js.map +1 -1
  117. package/dist/utils/platform-detector.js +15 -19
  118. package/dist/utils/platform-detector.js.map +1 -1
  119. package/dist/utils/prompts.js +21 -34
  120. package/dist/utils/prompts.js.map +1 -1
  121. package/package.json +10 -5
@@ -0,0 +1,309 @@
1
+ /**
2
+ * CLI Integration for Terminal Effects
3
+ * Provides hooks for various CLI operations to display effects
4
+ */
5
+ import { EffectRunner } from "./effect-runner.js";
6
+ import { getEffect } from "./index.js";
7
+ import { getConfig } from "./config.js";
8
+ /**
9
+ * Effect triggers for different CLI operations
10
+ */
11
+ export var EffectTrigger;
12
+ (function (EffectTrigger) {
13
+ // Security operations
14
+ EffectTrigger["PRIVATE_KEY_DELETE"] = "private_key_delete";
15
+ EffectTrigger["PRIVATE_KEY_VIEW_EXIT"] = "private_key_view_exit";
16
+ EffectTrigger["KEY_ROTATION"] = "key_rotation";
17
+ // Identity operations
18
+ EffectTrigger["AGENT_IDENTITY_CREATE"] = "agent_identity_create";
19
+ EffectTrigger["DID_GENERATION"] = "did_generation";
20
+ EffectTrigger["CREDENTIAL_ISSUANCE"] = "credential_issuance";
21
+ // General operations
22
+ EffectTrigger["OPERATION_SUCCESS"] = "operation_success";
23
+ EffectTrigger["OPERATION_FAILURE"] = "operation_failure";
24
+ EffectTrigger["LOADING"] = "loading";
25
+ })(EffectTrigger || (EffectTrigger = {}));
26
+ /**
27
+ * Effect configurations for triggers
28
+ */
29
+ const TRIGGER_EFFECTS = {
30
+ [EffectTrigger.PRIVATE_KEY_DELETE]: {
31
+ effect: "burn",
32
+ options: {
33
+ duration: 2000,
34
+ burnColors: ["ff0000", "ff4500", "ff8c00", "8B0000", "000000"],
35
+ },
36
+ },
37
+ [EffectTrigger.PRIVATE_KEY_VIEW_EXIT]: {
38
+ effect: "burn",
39
+ options: {
40
+ duration: 1500,
41
+ burnColors: ["ffffff", "ffff00", "ff8c00", "8B0000", "000000"],
42
+ },
43
+ },
44
+ [EffectTrigger.KEY_ROTATION]: {
45
+ effect: "burn",
46
+ options: {
47
+ duration: 2500,
48
+ burnColors: ["00ff00", "ffff00", "ff8c00", "8B0000", "000000"],
49
+ },
50
+ },
51
+ [EffectTrigger.AGENT_IDENTITY_CREATE]: {
52
+ effect: "decrypt",
53
+ options: {
54
+ duration: 3000,
55
+ ciphertextColors: ["004400", "006600", "008800", "00aa00", "00cc00"],
56
+ finalColor: "00ff00",
57
+ typingSpeed: 5,
58
+ },
59
+ },
60
+ [EffectTrigger.DID_GENERATION]: {
61
+ effect: "beams",
62
+ options: {
63
+ duration: 3000,
64
+ beamColors: ["00ff00", "00ffff", "ffffff"],
65
+ baseColor: "404040",
66
+ },
67
+ },
68
+ [EffectTrigger.CREDENTIAL_ISSUANCE]: {
69
+ effect: "beams",
70
+ options: {
71
+ duration: 2500,
72
+ beamColors: ["0080ff", "00ffff", "ffffff"],
73
+ },
74
+ },
75
+ [EffectTrigger.OPERATION_SUCCESS]: {
76
+ effect: "beams",
77
+ options: {
78
+ duration: 1500,
79
+ beamColors: ["00ff00", "00ff00", "00ff00"],
80
+ beamCount: 3,
81
+ },
82
+ },
83
+ [EffectTrigger.OPERATION_FAILURE]: {
84
+ effect: "burn",
85
+ options: {
86
+ duration: 1000,
87
+ burnColors: ["ff0000", "ff0000", "8B0000"],
88
+ },
89
+ },
90
+ [EffectTrigger.LOADING]: {
91
+ effect: "waves",
92
+ options: {
93
+ duration: 5000,
94
+ waveColors: ["008800", "00aa00", "00cc00", "00ff00"],
95
+ waveCount: 3,
96
+ waveSpeed: 0.5,
97
+ },
98
+ },
99
+ };
100
+ /**
101
+ * CLI Effects Manager
102
+ */
103
+ export class CLIEffects {
104
+ constructor() {
105
+ this.runner = new EffectRunner();
106
+ }
107
+ /**
108
+ * Get singleton instance
109
+ */
110
+ static getInstance() {
111
+ if (!CLIEffects.instance) {
112
+ CLIEffects.instance = new CLIEffects();
113
+ }
114
+ return CLIEffects.instance;
115
+ }
116
+ /**
117
+ * Show effect for a trigger
118
+ */
119
+ async showEffect(trigger, text, options) {
120
+ const config = await getConfig();
121
+ // Skip if effects are disabled
122
+ if (!config.enabled) {
123
+ console.log(text);
124
+ options?.onComplete?.();
125
+ return;
126
+ }
127
+ const triggerConfig = TRIGGER_EFFECTS[trigger];
128
+ if (!triggerConfig) {
129
+ console.log(text);
130
+ options?.onComplete?.();
131
+ return;
132
+ }
133
+ const effect = getEffect(triggerConfig.effect);
134
+ if (!effect) {
135
+ console.log(text);
136
+ options?.onComplete?.();
137
+ return;
138
+ }
139
+ try {
140
+ await this.runner.run({
141
+ effect,
142
+ text,
143
+ config: { ...triggerConfig.options, ...options?.customOptions },
144
+ onComplete: options?.onComplete,
145
+ onError: (err) => {
146
+ // Log the error for debugging but don't throw
147
+ if (process.env.DEBUG) {
148
+ console.error('Effect error:', err);
149
+ }
150
+ options?.onError?.(err);
151
+ },
152
+ skipExitPrompt: options?.skipExitPrompt,
153
+ persistent: options?.persistent,
154
+ });
155
+ }
156
+ catch (error) {
157
+ // Fallback to plain text
158
+ console.log(text);
159
+ if (process.env.DEBUG) {
160
+ console.error('Failed to run effect:', error);
161
+ }
162
+ options?.onError?.(error);
163
+ }
164
+ }
165
+ /**
166
+ * Show custom effect
167
+ */
168
+ async showCustomEffect(effectName, text, options) {
169
+ const config = await getConfig();
170
+ // Skip if effects are disabled
171
+ if (!config.enabled) {
172
+ console.log(text);
173
+ options?.onComplete?.();
174
+ return;
175
+ }
176
+ const effect = getEffect(effectName);
177
+ if (!effect) {
178
+ console.log(text);
179
+ options?.onComplete?.();
180
+ return;
181
+ }
182
+ try {
183
+ await this.runner.run({
184
+ effect,
185
+ text,
186
+ config: options?.config,
187
+ onComplete: options?.onComplete,
188
+ onError: (err) => {
189
+ // Log the error for debugging but don't throw
190
+ if (process.env.DEBUG) {
191
+ console.error('Effect error:', err);
192
+ }
193
+ options?.onError?.(err);
194
+ },
195
+ skipExitPrompt: options?.skipExitPrompt,
196
+ persistent: options?.persistent,
197
+ });
198
+ }
199
+ catch (error) {
200
+ // Fallback to plain text
201
+ console.log(text);
202
+ if (process.env.DEBUG) {
203
+ console.error('Failed to run custom effect:', error);
204
+ }
205
+ options?.onError?.(error);
206
+ }
207
+ }
208
+ /**
209
+ * Show loading effect with ability to stop
210
+ */
211
+ async showLoadingEffect(text, promise) {
212
+ const config = await getConfig();
213
+ // Skip if effects are disabled
214
+ if (!config.enabled) {
215
+ console.log(text);
216
+ return promise;
217
+ }
218
+ const effect = getEffect("waves");
219
+ if (!effect) {
220
+ console.log(text);
221
+ return promise;
222
+ }
223
+ let completed = false;
224
+ let result;
225
+ let error;
226
+ // Start loading effect
227
+ this.runner
228
+ .run({
229
+ effect,
230
+ text,
231
+ config: {
232
+ duration: 30000, // 30 seconds max
233
+ waveColors: ["008800", "00aa00", "00cc00", "00ff00"],
234
+ waveCount: 3,
235
+ waveSpeed: 0.5,
236
+ },
237
+ onComplete: () => {
238
+ completed = true;
239
+ },
240
+ skipExitPrompt: true,
241
+ })
242
+ .catch(() => {
243
+ // Ignore effect errors - we'll still return the result
244
+ });
245
+ try {
246
+ // Wait for the actual operation
247
+ result = await promise;
248
+ }
249
+ catch (err) {
250
+ error = err;
251
+ }
252
+ // Stop the effect if still running
253
+ if (!completed) {
254
+ await this.runner.stop();
255
+ }
256
+ // Re-throw error if any
257
+ if (error) {
258
+ throw error;
259
+ }
260
+ return result;
261
+ }
262
+ /**
263
+ * Check if an effect is currently running
264
+ */
265
+ isEffectRunning() {
266
+ return this.runner.isEffectRunning();
267
+ }
268
+ /**
269
+ * Stop any running effect
270
+ */
271
+ async stopEffect() {
272
+ await this.runner.stop();
273
+ }
274
+ }
275
+ /**
276
+ * Export singleton instance
277
+ */
278
+ export const cliEffects = CLIEffects.getInstance();
279
+ /**
280
+ * Convenience functions for common operations
281
+ */
282
+ /**
283
+ * Show effect for private key deletion
284
+ */
285
+ export async function showPrivateKeyDeleteEffect(keyName, skipExitPrompt = false, persistent = false) {
286
+ await cliEffects.showEffect(EffectTrigger.PRIVATE_KEY_DELETE, `🔥 Securely destroying private key: ${keyName}`, { skipExitPrompt, persistent });
287
+ }
288
+ /**
289
+ * Show effect for agent identity creation
290
+ */
291
+ export async function showAgentIdentityCreateEffect(agentName, skipExitPrompt = false, persistent = false) {
292
+ await cliEffects.showEffect(EffectTrigger.AGENT_IDENTITY_CREATE, `🤖 Initializing Agent Identity: ${agentName}\n` +
293
+ `\n` +
294
+ `Generating cryptographic identity...`, { skipExitPrompt, persistent });
295
+ }
296
+ /**
297
+ * Show effect for DID generation
298
+ */
299
+ export async function showDIDGenerationEffect(did, skipExitPrompt = false, persistent = true // Default to persistent for DID display
300
+ ) {
301
+ await cliEffects.showEffect(EffectTrigger.DID_GENERATION, `🔐 Decentralized Identity Generated\n` + `\n` + `DID: ${did}`, { skipExitPrompt, persistent });
302
+ }
303
+ /**
304
+ * Show loading effect for async operations
305
+ */
306
+ export async function withLoadingEffect(message, promise) {
307
+ return cliEffects.showLoadingEffect(message, promise);
308
+ }
309
+ //# sourceMappingURL=cli-integration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-integration.js","sourceRoot":"","sources":["../../src/effects/cli-integration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Configuration management for terminal effects
3
+ */
4
+ import { TerminalCapabilities, SafetyConfig } from "./types.js";
5
+ /**
6
+ * Effect configuration settings
7
+ */
8
+ export interface EffectsConfig {
9
+ /** Enable/disable all effects */
10
+ enabled: boolean;
11
+ /** Animation speed multiplier (0.1 to 2.0) */
12
+ speedMultiplier: number;
13
+ /** Performance profile */
14
+ performanceProfile: "low" | "medium" | "high";
15
+ /** Force fallback mode */
16
+ forceFallback: boolean;
17
+ /** Preferred color mode */
18
+ colorMode: "auto" | "none" | "16" | "256" | "truecolor";
19
+ /** Accessibility mode */
20
+ accessibilityMode: boolean;
21
+ /** Show performance metrics */
22
+ showMetrics: boolean;
23
+ /** Custom effect-specific settings */
24
+ effectSettings: Record<string, any>;
25
+ }
26
+ /**
27
+ * Configuration manager for effects
28
+ */
29
+ export declare class EffectsConfigManager {
30
+ private config;
31
+ private configPath;
32
+ private terminalCapabilities?;
33
+ constructor(configPath?: string);
34
+ /**
35
+ * Load configuration from file
36
+ */
37
+ load(): Promise<void>;
38
+ /**
39
+ * Save configuration to file
40
+ */
41
+ save(): Promise<void>;
42
+ /**
43
+ * Get current configuration
44
+ */
45
+ getConfig(): EffectsConfig;
46
+ /**
47
+ * Update configuration
48
+ */
49
+ updateConfig(updates: Partial<EffectsConfig>): Promise<void>;
50
+ /**
51
+ * Get safety configuration based on performance profile
52
+ */
53
+ getSafetyConfig(): SafetyConfig;
54
+ /**
55
+ * Determine if effects should be enabled
56
+ */
57
+ shouldEnableEffects(): boolean;
58
+ /**
59
+ * Get terminal capabilities
60
+ */
61
+ getTerminalCapabilities(): TerminalCapabilities;
62
+ /**
63
+ * Check if running in CI environment
64
+ */
65
+ private isCI;
66
+ /**
67
+ * Check if running in testing environment
68
+ */
69
+ private isTesting;
70
+ /**
71
+ * Apply environment variable overrides
72
+ */
73
+ applyEnvironmentOverrides(): void;
74
+ /**
75
+ * Get effect-specific configuration
76
+ */
77
+ getEffectConfig(effectName: string): any;
78
+ /**
79
+ * Set effect-specific configuration
80
+ */
81
+ setEffectConfig(effectName: string, config: any): Promise<void>;
82
+ }
83
+ /**
84
+ * Global configuration instance
85
+ */
86
+ export declare const effectsConfig: EffectsConfigManager;
87
+ /**
88
+ * Initialize configuration
89
+ */
90
+ export declare function initializeConfig(): Promise<void>;
91
+ /**
92
+ * Get current configuration
93
+ */
94
+ export declare function getConfig(): Promise<EffectsConfig>;
95
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/effects/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAMhE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,0BAA0B;IAC1B,kBAAkB,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9C,0BAA0B;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,2BAA2B;IAC3B,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,WAAW,CAAC;IACxD,yBAAyB;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,+BAA+B;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACrC;AAkCD;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,oBAAoB,CAAC,CAAuB;gBAExC,UAAU,CAAC,EAAE,MAAM;IAM/B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B;;OAEG;IACH,SAAS,IAAI,aAAa;IAI1B;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlE;;OAEG;IACH,eAAe,IAAI,YAAY;IAY/B;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAuC9B;;OAEG;IACH,uBAAuB,IAAI,oBAAoB;IAO/C;;OAEG;IACH,OAAO,CAAC,IAAI;IAYZ;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;OAEG;IACH,yBAAyB,IAAI,IAAI;IAwBjC;;OAEG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG;IAIxC;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAItE;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,sBAA6B,CAAC;AAExD;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAGtD;AAED;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC,CAKxD"}
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Configuration management for terminal effects
3
+ */
4
+ import { detectTerminalCapabilities } from "./utils.js";
5
+ import * as fs from "fs/promises";
6
+ import * as path from "path";
7
+ import { homedir } from "os";
8
+ /**
9
+ * Default configuration
10
+ */
11
+ const DEFAULT_CONFIG = {
12
+ enabled: true,
13
+ speedMultiplier: 1.0,
14
+ performanceProfile: "medium",
15
+ forceFallback: false,
16
+ colorMode: "auto",
17
+ accessibilityMode: false,
18
+ showMetrics: false,
19
+ effectSettings: {},
20
+ };
21
+ /**
22
+ * Performance profiles
23
+ */
24
+ const PERFORMANCE_PROFILES = {
25
+ low: {
26
+ maxExecutionTime: 1000,
27
+ maxMemoryUsage: 25,
28
+ },
29
+ medium: {
30
+ maxExecutionTime: 3000,
31
+ maxMemoryUsage: 50,
32
+ },
33
+ high: {
34
+ maxExecutionTime: 5000,
35
+ maxMemoryUsage: 100,
36
+ },
37
+ };
38
+ /**
39
+ * Configuration manager for effects
40
+ */
41
+ export class EffectsConfigManager {
42
+ constructor(configPath) {
43
+ this.config = { ...DEFAULT_CONFIG };
44
+ this.configPath =
45
+ configPath || path.join(homedir(), ".kya-os", "effects.config.json");
46
+ }
47
+ /**
48
+ * Load configuration from file
49
+ */
50
+ async load() {
51
+ try {
52
+ const configData = await fs.readFile(this.configPath, "utf-8");
53
+ const loadedConfig = JSON.parse(configData);
54
+ this.config = { ...DEFAULT_CONFIG, ...loadedConfig };
55
+ }
56
+ catch (error) {
57
+ // Config file doesn't exist or is invalid, use defaults
58
+ if (process.env.DEBUG) {
59
+ console.log("No effects config found, using defaults");
60
+ }
61
+ }
62
+ }
63
+ /**
64
+ * Save configuration to file
65
+ */
66
+ async save() {
67
+ const configDir = path.dirname(this.configPath);
68
+ await fs.mkdir(configDir, { recursive: true });
69
+ await fs.writeFile(this.configPath, JSON.stringify(this.config, null, 2));
70
+ }
71
+ /**
72
+ * Get current configuration
73
+ */
74
+ getConfig() {
75
+ return { ...this.config };
76
+ }
77
+ /**
78
+ * Update configuration
79
+ */
80
+ async updateConfig(updates) {
81
+ this.config = { ...this.config, ...updates };
82
+ await this.save();
83
+ }
84
+ /**
85
+ * Get safety configuration based on performance profile
86
+ */
87
+ getSafetyConfig() {
88
+ const profile = PERFORMANCE_PROFILES[this.config.performanceProfile] ||
89
+ PERFORMANCE_PROFILES.medium;
90
+ return {
91
+ ...profile,
92
+ enableMonitoring: this.config.showMetrics,
93
+ forceFallback: this.config.forceFallback || !this.shouldEnableEffects(),
94
+ };
95
+ }
96
+ /**
97
+ * Determine if effects should be enabled
98
+ */
99
+ shouldEnableEffects() {
100
+ // Check explicit disable
101
+ if (!this.config.enabled || process.env.KYA_EFFECTS_ENABLED === "false") {
102
+ return false;
103
+ }
104
+ // Check CI/testing environments
105
+ if (this.isCI() || this.isTesting()) {
106
+ return false;
107
+ }
108
+ // Check terminal capabilities
109
+ const capabilities = this.getTerminalCapabilities();
110
+ if (!capabilities.isInteractive) {
111
+ return false;
112
+ }
113
+ // Check color support based on color mode
114
+ if (this.config.colorMode === "none") {
115
+ return true; // Effects without color
116
+ }
117
+ if (this.config.colorMode === "auto") {
118
+ return capabilities.supportsColor;
119
+ }
120
+ // Check specific color mode support
121
+ switch (this.config.colorMode) {
122
+ case "16":
123
+ return capabilities.supportsColor;
124
+ case "256":
125
+ return capabilities.supports256Color;
126
+ case "truecolor":
127
+ return capabilities.supportsTrueColor;
128
+ default:
129
+ return false;
130
+ }
131
+ }
132
+ /**
133
+ * Get terminal capabilities
134
+ */
135
+ getTerminalCapabilities() {
136
+ if (!this.terminalCapabilities) {
137
+ this.terminalCapabilities = detectTerminalCapabilities();
138
+ }
139
+ return this.terminalCapabilities;
140
+ }
141
+ /**
142
+ * Check if running in CI environment
143
+ */
144
+ isCI() {
145
+ return !!(process.env.CI ||
146
+ process.env.CONTINUOUS_INTEGRATION ||
147
+ process.env.GITHUB_ACTIONS ||
148
+ process.env.GITLAB_CI ||
149
+ process.env.CIRCLECI ||
150
+ process.env.TRAVIS ||
151
+ process.env.JENKINS_URL);
152
+ }
153
+ /**
154
+ * Check if running in testing environment
155
+ */
156
+ isTesting() {
157
+ return process.env.NODE_ENV === "test" || !!process.env.JEST_WORKER_ID;
158
+ }
159
+ /**
160
+ * Apply environment variable overrides
161
+ */
162
+ applyEnvironmentOverrides() {
163
+ if (process.env.KYA_EFFECTS_ENABLED !== undefined) {
164
+ this.config.enabled = process.env.KYA_EFFECTS_ENABLED !== "false";
165
+ }
166
+ if (process.env.KYA_EFFECTS_SPEED) {
167
+ const speed = parseFloat(process.env.KYA_EFFECTS_SPEED);
168
+ if (!isNaN(speed) && speed > 0 && speed <= 10) {
169
+ this.config.speedMultiplier = speed;
170
+ }
171
+ }
172
+ if (process.env.KYA_EFFECTS_PROFILE) {
173
+ const profile = process.env.KYA_EFFECTS_PROFILE;
174
+ if (["low", "medium", "high"].includes(profile)) {
175
+ this.config.performanceProfile = profile;
176
+ }
177
+ }
178
+ if (process.env.KYA_EFFECTS_FALLBACK === "true") {
179
+ this.config.forceFallback = true;
180
+ }
181
+ }
182
+ /**
183
+ * Get effect-specific configuration
184
+ */
185
+ getEffectConfig(effectName) {
186
+ return this.config.effectSettings[effectName] || {};
187
+ }
188
+ /**
189
+ * Set effect-specific configuration
190
+ */
191
+ async setEffectConfig(effectName, config) {
192
+ this.config.effectSettings[effectName] = config;
193
+ await this.save();
194
+ }
195
+ }
196
+ /**
197
+ * Global configuration instance
198
+ */
199
+ export const effectsConfig = new EffectsConfigManager();
200
+ /**
201
+ * Initialize configuration
202
+ */
203
+ export async function initializeConfig() {
204
+ await effectsConfig.load();
205
+ effectsConfig.applyEnvironmentOverrides();
206
+ }
207
+ /**
208
+ * Get current configuration
209
+ */
210
+ export async function getConfig() {
211
+ if (!effectsConfig.getConfig().enabled) {
212
+ await initializeConfig();
213
+ }
214
+ return effectsConfig.getConfig();
215
+ }
216
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/effects/config.ts"],"names":[],"mappings":"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"}