@kya-os/cli 0.1.0-beta.14 → 0.1.0-beta.15

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 (41) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +11 -24
  3. package/package.json +4 -5
  4. package/dist/commands/cli-experience-demo-simple.d.ts +0 -14
  5. package/dist/commands/cli-experience-demo-simple.d.ts.map +0 -1
  6. package/dist/commands/cli-experience-demo-simple.js +0 -119
  7. package/dist/commands/cli-experience-demo-simple.js.map +0 -1
  8. package/dist/commands/cli-experience-demo.d.ts +0 -14
  9. package/dist/commands/cli-experience-demo.d.ts.map +0 -1
  10. package/dist/commands/cli-experience-demo.js +0 -172
  11. package/dist/commands/cli-experience-demo.js.map +0 -1
  12. package/dist/commands/effects-demo.d.ts +0 -10
  13. package/dist/commands/effects-demo.d.ts.map +0 -1
  14. package/dist/commands/effects-demo.js +0 -292
  15. package/dist/commands/effects-demo.js.map +0 -1
  16. package/dist/commands/test-components.d.ts +0 -5
  17. package/dist/commands/test-components.d.ts.map +0 -1
  18. package/dist/commands/test-components.js +0 -86
  19. package/dist/commands/test-components.js.map +0 -1
  20. package/dist/dev.d.ts +0 -7
  21. package/dist/dev.d.ts.map +0 -1
  22. package/dist/dev.js +0 -9
  23. package/dist/dev.js.map +0 -1
  24. package/dist/effects/__tests__/effects.test.d.ts +0 -5
  25. package/dist/effects/__tests__/effects.test.d.ts.map +0 -1
  26. package/dist/effects/__tests__/effects.test.js +0 -210
  27. package/dist/effects/__tests__/effects.test.js.map +0 -1
  28. package/dist/effects/implementations/binary-path.d.ts +0 -88
  29. package/dist/effects/implementations/binary-path.d.ts.map +0 -1
  30. package/dist/effects/implementations/binary-path.js +0 -296
  31. package/dist/effects/implementations/binary-path.js.map +0 -1
  32. package/dist/effects/implementations/test.d.ts +0 -113
  33. package/dist/effects/implementations/test.d.ts.map +0 -1
  34. package/dist/effects/implementations/test.js +0 -552
  35. package/dist/effects/implementations/test.js.map +0 -1
  36. package/dist/effects/template/effect-template.d.ts +0 -97
  37. package/dist/effects/template/effect-template.d.ts.map +0 -1
  38. package/dist/effects/template/effect-template.js +0 -208
  39. package/dist/effects/template/effect-template.js.map +0 -1
  40. package/dist/index.d.ts.map +0 -1
  41. package/dist/index.js.map +0 -1
@@ -1,292 +0,0 @@
1
- /**
2
- * Effects Demo Command
3
- * Showcases all available terminal effects
4
- */
5
- import { Command } from "commander";
6
- import chalk from "chalk";
7
- import inquirer from "inquirer";
8
- import { cliEffects, showPrivateKeyDeleteEffect, showAgentIdentityCreateEffect, showDIDGenerationEffect, withLoadingEffect, getAllEffects, initializeConfig, } from "../effects/index.js";
9
- /**
10
- * Demo scenarios
11
- */
12
- const DEMO_SCENARIOS = [
13
- {
14
- name: "šŸŽÆ Full CLI Experience (npx @kya-os/cli init)",
15
- value: "cli-experience",
16
- action: async () => {
17
- const { runSimpleCLIDemo } = await import("./cli-experience-demo-simple.js");
18
- await runSimpleCLIDemo();
19
- },
20
- },
21
- {
22
- name: "šŸ”„ Private Key Deletion",
23
- value: "private-key-delete",
24
- action: async () => {
25
- console.log(chalk.yellow("\nScenario: Deleting a compromised private key...\n"));
26
- await new Promise((resolve) => setTimeout(resolve, 1000));
27
- await showPrivateKeyDeleteEffect("agent-key-compromised-2024", true);
28
- },
29
- },
30
- {
31
- name: "šŸ¤– Agent Identity Creation",
32
- value: "agent-identity",
33
- action: async () => {
34
- console.log(chalk.cyan("\nScenario: Creating a new AI agent identity...\n"));
35
- await new Promise((resolve) => setTimeout(resolve, 1000));
36
- await showAgentIdentityCreateEffect("AutomationAgent-001", true);
37
- await new Promise((resolve) => setTimeout(resolve, 500));
38
- await showDIDGenerationEffect("did:kya:z6Mkf5rGMoatrSj1f4CgPrHknGZ", true);
39
- },
40
- },
41
- {
42
- name: "⚔ All Effects Showcase",
43
- value: "all-effects",
44
- action: async () => {
45
- const effects = getAllEffects();
46
- for (const effectEntry of effects) {
47
- console.log(chalk.magenta(`\nšŸ“ŗ Demonstrating: ${effectEntry.name}\n`));
48
- await new Promise((resolve) => setTimeout(resolve, 1000));
49
- // Custom configurations for each effect
50
- let config = {};
51
- switch (effectEntry.name) {
52
- case "burn":
53
- config = {
54
- duration: 3000,
55
- burnColors: ["ffffff", "fff75d", "fe650d", "8A003C", "510100"],
56
- burnSpeed: 2,
57
- };
58
- break;
59
- case "beams":
60
- config = {
61
- duration: 3500,
62
- beamColors: ["00ff00", "00ffff", "ffffff"],
63
- beamCount: 8,
64
- beamSpeed: 0.3,
65
- };
66
- break;
67
- // Binary Path removed - was causing issues
68
- case "decrypt":
69
- config = {
70
- duration: 4000,
71
- typingSpeed: 2,
72
- ciphertextColors: ["008000", "00cb00", "00ff00"],
73
- finalColor: "eda000",
74
- useGradient: true,
75
- gradientDirection: "diagonal",
76
- };
77
- break;
78
- case "blackhole":
79
- config = {
80
- duration: 6000,
81
- blackholeColor: "ffffff",
82
- starColors: [
83
- "ffcc0d",
84
- "ff7326",
85
- "ff194d",
86
- "bf2669",
87
- "702a8c",
88
- "049dbf",
89
- ],
90
- finalColor: "ffffff",
91
- useGradient: true,
92
- gradientDirection: "radial",
93
- };
94
- break;
95
- }
96
- await cliEffects.showCustomEffect(effectEntry.name, `✨ ${effectEntry.description}\n\n` +
97
- `Effect: ${effectEntry.name.toUpperCase()}\n` +
98
- `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n` +
99
- `Demonstrating the ${effectEntry.name} effect\n` +
100
- `with enhanced visual parameters`, { config, skipExitPrompt: true });
101
- await new Promise((resolve) => setTimeout(resolve, 1500));
102
- }
103
- },
104
- },
105
- {
106
- name: "šŸ”„ Loading Effect Demo",
107
- value: "loading",
108
- action: async () => {
109
- console.log(chalk.blue("\nScenario: Long-running operation...\n"));
110
- await new Promise((resolve) => setTimeout(resolve, 1000));
111
- const result = await withLoadingEffect("šŸ”„ Processing cryptographic operations...", new Promise((resolve) => {
112
- setTimeout(() => resolve("Operation completed successfully!"), 5000);
113
- }));
114
- console.log(chalk.green(`\nāœ… ${result}`));
115
- },
116
- },
117
- {
118
- name: "šŸŽ­ Custom Text Effect",
119
- value: "custom",
120
- action: async () => {
121
- const { text } = await inquirer.prompt([
122
- {
123
- type: "input",
124
- name: "text",
125
- message: "Enter text to animate:",
126
- default: "Hello, KYA-OS!\n\nWelcome to the future of AI identity\nšŸš€ Powered by MCP-I Protocol",
127
- },
128
- ]);
129
- const effects = getAllEffects();
130
- const { effectName } = await inquirer.prompt([
131
- {
132
- type: "list",
133
- name: "effectName",
134
- message: "Choose an effect:",
135
- choices: effects.map((e) => ({ name: e.name, value: e.name })),
136
- },
137
- ]);
138
- // Advanced configuration for custom text
139
- const { duration } = await inquirer.prompt([
140
- {
141
- type: "number",
142
- name: "duration",
143
- message: "Animation duration (ms):",
144
- default: 3000,
145
- },
146
- ]);
147
- let config = { duration };
148
- // Effect-specific configurations
149
- if (effectName === "decrypt" || effectName === "blackhole") {
150
- const { useGradient } = await inquirer.prompt([
151
- {
152
- type: "confirm",
153
- name: "useGradient",
154
- message: "Use gradient colors?",
155
- default: true,
156
- },
157
- ]);
158
- if (useGradient) {
159
- const { gradientDirection } = await inquirer.prompt([
160
- {
161
- type: "list",
162
- name: "gradientDirection",
163
- message: "Gradient direction:",
164
- choices: ["vertical", "horizontal", "diagonal", "radial"],
165
- },
166
- ]);
167
- config.useGradient = true;
168
- config.gradientDirection = gradientDirection;
169
- }
170
- }
171
- await cliEffects.showCustomEffect(effectName, text, { config });
172
- },
173
- },
174
- // Gradient showcase removed - wasn't completing properly
175
- {
176
- name: "šŸŽ¬ Effect Combinations",
177
- value: "combinations",
178
- action: async () => {
179
- console.log(chalk.yellow("\nScenario: Combining effects for complex animations...\n"));
180
- // Burn to Beams transition
181
- console.log(chalk.gray("1. Burn → Beams transition\n"));
182
- await new Promise((resolve) => setTimeout(resolve, 500));
183
- await cliEffects.showCustomEffect("burn", "šŸ”„ Destroying old identity...", {
184
- config: {
185
- duration: 2000,
186
- burnColors: ["ff0000", "ff4500", "ff8c00", "8B0000", "000000"],
187
- },
188
- });
189
- await new Promise((resolve) => setTimeout(resolve, 500));
190
- await cliEffects.showCustomEffect("beams", "✨ Creating new identity...", {
191
- config: {
192
- duration: 2000,
193
- beamColors: ["00ff00", "00ffff", "ffffff"],
194
- beamCount: 10,
195
- },
196
- });
197
- await new Promise((resolve) => setTimeout(resolve, 1000));
198
- // Decrypt to Blackhole
199
- console.log(chalk.gray("\n2. Decrypt → Blackhole sequence\n"));
200
- await new Promise((resolve) => setTimeout(resolve, 500));
201
- await cliEffects.showCustomEffect("decrypt", "šŸ” Revealing secret data...", {
202
- config: {
203
- duration: 2500,
204
- finalColor: "ff0000",
205
- },
206
- });
207
- await new Promise((resolve) => setTimeout(resolve, 500));
208
- await cliEffects.showCustomEffect("blackhole", "🌌 Consuming evidence...", {
209
- config: {
210
- duration: 3000,
211
- starColors: ["ff0000", "ff3333", "ff6666"],
212
- },
213
- });
214
- },
215
- },
216
- ];
217
- /**
218
- * Create the effects demo command
219
- */
220
- export function createEffectsDemoCommand() {
221
- const command = new Command("effects-demo")
222
- .description("Demonstrate terminal effects capabilities")
223
- .option("-e, --effect <name>", "Show specific effect")
224
- .option("-t, --text <text>", "Custom text to animate")
225
- .option("--list", "List all available effects")
226
- .option("--disable", "Run with effects disabled")
227
- .action(async (options) => {
228
- try {
229
- // Initialize effects configuration
230
- await initializeConfig();
231
- if (options.disable) {
232
- process.env.KYA_EFFECTS_ENABLED = "false";
233
- console.log(chalk.yellow("Effects disabled for this demo\n"));
234
- }
235
- if (options.list) {
236
- const effects = getAllEffects();
237
- console.log(chalk.bold("\nšŸ“‹ Available Effects:\n"));
238
- effects.forEach((effect) => {
239
- console.log(` ${chalk.cyan(effect.name.padEnd(15))} - ${effect.description}`);
240
- });
241
- console.log();
242
- return;
243
- }
244
- if (options.effect) {
245
- const text = options.text || `Demo of ${options.effect} effect`;
246
- await cliEffects.showCustomEffect(options.effect, text);
247
- return;
248
- }
249
- // Interactive menu
250
- console.log(chalk.bold.magenta("\n✨ KYA-OS Terminal Effects Demo ✨\n"));
251
- console.log(chalk.gray("Press Ctrl+C to exit at any time\n"));
252
- while (true) {
253
- const { scenario } = await inquirer.prompt([
254
- {
255
- type: "list",
256
- name: "scenario",
257
- message: "Choose a demo scenario:",
258
- choices: [
259
- ...DEMO_SCENARIOS.map((s) => ({
260
- name: s.name,
261
- value: s.value,
262
- })),
263
- new inquirer.Separator(),
264
- { name: "āŒ Exit", value: "exit" },
265
- ],
266
- },
267
- ]);
268
- if (scenario === "exit") {
269
- console.log(chalk.gray("\nThanks for trying the effects demo!\n"));
270
- break;
271
- }
272
- const selectedScenario = DEMO_SCENARIOS.find((s) => s.value === scenario);
273
- if (selectedScenario) {
274
- await selectedScenario.action();
275
- console.log(); // Extra newline for spacing
276
- }
277
- }
278
- }
279
- catch (error) {
280
- if (error instanceof Error && error.message.includes("prompt")) {
281
- // User cancelled with Ctrl+C
282
- console.log(chalk.gray("\n\nDemo cancelled.\n"));
283
- }
284
- else {
285
- console.error(chalk.red("Error:"), error);
286
- }
287
- process.exit(0);
288
- }
289
- });
290
- return command;
291
- }
292
- //# sourceMappingURL=effects-demo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"effects-demo.js","sourceRoot":"","sources":["../../src/commands/effects-demo.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Test command to demonstrate the component system
3
- */
4
- export declare function testComponents(): Promise<void>;
5
- //# sourceMappingURL=test-components.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-components.d.ts","sourceRoot":"","sources":["../../src/commands/test-components.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmBH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAuGpD"}
@@ -1,86 +0,0 @@
1
- /**
2
- * Test command to demonstrate the component system
3
- */
4
- import chalk from "chalk";
5
- import { createBox, createDivider, createAgentCard, createCompactAgentCard, createSuccessMessage, createErrorMessage, createWarningMessage, createInfoMessage, createProgressBar, createBulletList, createNumberedList, createKeyValueDisplay, createStepIndicator, } from "../components/index.js";
6
- export async function testComponents() {
7
- console.clear();
8
- console.log(chalk.bold.cyan("\nšŸŽØ KYA-OS CLI Component System Demo\n"));
9
- // Box components
10
- console.log(chalk.bold("1. Box Components:"));
11
- console.log(createBox("This is a simple box with default styling", {
12
- title: "Default Box",
13
- }));
14
- console.log(createBox("This box has custom styling and colors!", {
15
- title: "Custom Box",
16
- style: "double",
17
- borderColor: "ff00ff",
18
- align: "center",
19
- padding: 2,
20
- }));
21
- console.log(createDivider(50, "heavy"));
22
- console.log("");
23
- // Message components
24
- console.log(chalk.bold("2. Message Components:"));
25
- console.log(createSuccessMessage("Operation completed successfully!"));
26
- console.log(createErrorMessage("Something went wrong!"));
27
- console.log(createWarningMessage("Please be careful with this operation"));
28
- console.log(createInfoMessage("Did you know? Components are reusable!"));
29
- console.log("");
30
- // Progress indicators
31
- console.log(chalk.bold("3. Progress Indicators:"));
32
- console.log(createStepIndicator(1, 5, "Initialize project", "completed"));
33
- console.log(createStepIndicator(2, 5, "Install dependencies", "completed"));
34
- console.log(createStepIndicator(3, 5, "Configure environment", "active"));
35
- console.log(createStepIndicator(4, 5, "Run tests", "pending"));
36
- console.log(createStepIndicator(5, 5, "Deploy", "pending"));
37
- console.log("");
38
- console.log("Progress: " + createProgressBar(65, 100));
39
- console.log("");
40
- // Lists
41
- console.log(chalk.bold("4. List Components:"));
42
- console.log(createBulletList([
43
- "Easy to use components",
44
- "Consistent styling",
45
- "No external dependencies",
46
- "Fully customizable",
47
- ]));
48
- console.log("");
49
- console.log(createNumberedList([
50
- "First, create your component",
51
- "Then, customize the styling",
52
- "Finally, use it everywhere!",
53
- ]));
54
- console.log("");
55
- // Key-value display
56
- console.log(chalk.bold("5. Key-Value Display:"));
57
- console.log(createKeyValueDisplay({
58
- Name: "kya-os-cli",
59
- Version: "0.1.0-beta.13",
60
- License: "MIT",
61
- Author: "Dylan Hobbs",
62
- Description: "CLI for KYA-OS MCP-I setup",
63
- }));
64
- console.log("");
65
- // Agent card (compact)
66
- console.log(chalk.bold("6. Agent Card Components:"));
67
- console.log(createCompactAgentCard({
68
- name: "demo-agent",
69
- description: "A demonstration agent for testing",
70
- did: "did:web:knowthat.ai:agents:demo-agent",
71
- agentSlug: "demo-agent",
72
- }));
73
- console.log("");
74
- // Full agent card
75
- const fullCard = createAgentCard({
76
- name: "test-agent",
77
- description: "This is a test agent with full details",
78
- did: "did:web:knowthat.ai:agents:test-agent",
79
- privateKey: "ed25519:3yDyvKgoESF8X6zyqnfTxHaGgvMYBqjb4eBnRbYFMkRp",
80
- agentSlug: "test-agent",
81
- claimUrl: "https://knowthat.ai/agents/claim?did=did%3Aweb%3Aknowthat.ai%3Aagents%3Atest-agent&signature=abc123",
82
- });
83
- console.log(fullCard);
84
- console.log(chalk.green("\n✨ Component demo complete!\n"));
85
- }
86
- //# sourceMappingURL=test-components.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-components.js","sourceRoot":"","sources":["../../src/commands/test-components.ts"],"names":[],"mappings":"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"}
package/dist/dev.d.ts DELETED
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Development entry point for testing CLI locally
4
- * Run with: npm run dev -- <command>
5
- */
6
- export {};
7
- //# sourceMappingURL=dev.d.ts.map
package/dist/dev.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":";AAEA;;;GAGG"}
package/dist/dev.js DELETED
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Development entry point for testing CLI locally
4
- * Run with: npm run dev -- <command>
5
- */
6
- import { program } from "./index.js";
7
- // Parse command line arguments
8
- program.parse(process.argv);
9
- //# sourceMappingURL=dev.js.map
package/dist/dev.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,+BAA+B;AAC/B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Tests for Terminal Effects System
3
- */
4
- export {};
5
- //# sourceMappingURL=effects.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"effects.test.d.ts","sourceRoot":"","sources":["../../../src/effects/__tests__/effects.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,210 +0,0 @@
1
- /**
2
- * Tests for Terminal Effects System
3
- */
4
- import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
5
- import { SafeEffectExecutor, getEffect, getAllEffects, cliEffects, EffectTrigger, } from "../index.js";
6
- // Mock terminal capabilities
7
- vi.mock("../utils.js", async () => {
8
- const actual = await vi.importActual("../utils.js");
9
- return {
10
- ...actual,
11
- detectTerminalCapabilities: vi.fn(() => ({
12
- supportsColor: true,
13
- supports256Color: true,
14
- supportsTrueColor: true,
15
- dimensions: { width: 80, height: 24 },
16
- isInteractive: true,
17
- })),
18
- };
19
- });
20
- // Mock process.stdout
21
- const mockWrite = vi.fn();
22
- const mockClearLine = vi.fn();
23
- const mockCursorTo = vi.fn();
24
- beforeEach(() => {
25
- vi.clearAllMocks();
26
- process.stdout.write = mockWrite;
27
- process.stdout.clearLine = mockClearLine;
28
- process.stdout.cursorTo = mockCursorTo;
29
- });
30
- afterEach(() => {
31
- vi.restoreAllMocks();
32
- });
33
- describe("Effect Registry", () => {
34
- it("should register and retrieve effects", async () => {
35
- const burnEffect = await getEffect("burn");
36
- expect(burnEffect).toBeDefined();
37
- expect(burnEffect?.name).toBe("Burn");
38
- const beamsEffect = await getEffect("beams");
39
- expect(beamsEffect).toBeDefined();
40
- expect(beamsEffect?.name).toBe("Beams");
41
- });
42
- it("should return null for non-existent effects", async () => {
43
- const effect = await getEffect("nonexistent");
44
- expect(effect).toBeNull();
45
- });
46
- it("should list all available effects", () => {
47
- const effects = getAllEffects();
48
- expect(effects.length).toBeGreaterThanOrEqual(5); // burn, beams, decrypt, blackhole, waves
49
- expect(effects.map((e) => e.name)).toContain("burn");
50
- expect(effects.map((e) => e.name)).toContain("beams");
51
- expect(effects.map((e) => e.name)).toContain("decrypt");
52
- expect(effects.map((e) => e.name)).toContain("blackhole");
53
- expect(effects.map((e) => e.name)).toContain("waves");
54
- });
55
- });
56
- describe("BurnEffect", () => {
57
- let effect;
58
- beforeEach(async () => {
59
- effect = await getEffect("burn");
60
- });
61
- it("should initialize properly", () => {
62
- const text = "Test Text";
63
- effect.initialize(text, { frameRate: 30 });
64
- expect(effect.name).toBe("Burn");
65
- expect(effect.description).toBe("Characters are ignited and burn up the screen");
66
- });
67
- it("should render frames", async () => {
68
- const text = "Hello";
69
- effect.initialize(text, { frameRate: 30 });
70
- const frame = await effect.render();
71
- expect(frame).toBeInstanceOf(Array);
72
- expect(frame.length).toBeGreaterThan(0);
73
- });
74
- it("should provide fallback rendering", () => {
75
- const text = "Hello\nWorld";
76
- effect.initialize(text, {});
77
- const fallback = effect.renderFallback();
78
- expect(fallback).toEqual(["Hello", "World"]);
79
- });
80
- it("should complete after animation", async () => {
81
- const text = "Test";
82
- effect.initialize(text, { frameRate: 120 }); // High framerate for faster test
83
- expect(effect.isComplete()).toBe(false);
84
- // Render multiple frames
85
- for (let i = 0; i < 100 && !effect.isComplete(); i++) {
86
- await effect.render();
87
- }
88
- // Should eventually complete
89
- expect(effect.isComplete()).toBe(true);
90
- });
91
- });
92
- describe("SafeEffectExecutor", () => {
93
- let executor;
94
- beforeEach(() => {
95
- executor = new SafeEffectExecutor({
96
- maxExecutionTime: 1000,
97
- maxMemoryUsage: 50,
98
- });
99
- });
100
- it("should execute effects successfully", async () => {
101
- const effect = await getEffect("burn");
102
- const result = await executor.execute(effect, "Test", {});
103
- expect(result.success).toBe(true);
104
- expect(result.frames).toBeInstanceOf(Array);
105
- });
106
- it("should timeout long-running effects", async () => {
107
- const effect = await getEffect("burn");
108
- executor = new SafeEffectExecutor({ maxExecutionTime: 10 }); // Very short timeout
109
- const result = await executor.execute(effect, "A".repeat(1000), {});
110
- // Should fallback on timeout
111
- expect(result.success).toBe(true);
112
- expect(result.error).toBeDefined();
113
- });
114
- it("should use fallback in non-interactive environments", async () => {
115
- const utils = await import("../utils.js");
116
- vi.mocked(utils.detectTerminalCapabilities).mockReturnValueOnce({
117
- supportsColor: false,
118
- supports256Color: false,
119
- supportsTrueColor: false,
120
- dimensions: { width: 80, height: 24 },
121
- isInteractive: false,
122
- });
123
- executor = new SafeEffectExecutor();
124
- const effect = await getEffect("burn");
125
- const result = await executor.execute(effect, "Test", {});
126
- expect(result.success).toBe(true);
127
- expect(result.frames).toEqual(["Test"]);
128
- });
129
- it("should handle effect errors gracefully", async () => {
130
- const effect = await getEffect("burn");
131
- // Force an error by not initializing
132
- const result = await executor.execute(effect, "", {});
133
- expect(result.frames).toBeInstanceOf(Array);
134
- });
135
- });
136
- describe("CLI Effects Integration", () => {
137
- beforeEach(() => {
138
- // Mock console.log
139
- vi.spyOn(console, "log").mockImplementation(() => { });
140
- });
141
- afterEach(() => {
142
- vi.restoreAllMocks();
143
- });
144
- it("should show effects for triggers", async () => {
145
- await cliEffects.showEffect(EffectTrigger.PRIVATE_KEY_DELETE, "Deleting key...");
146
- // Should have attempted to show effect
147
- expect(mockWrite).toHaveBeenCalled();
148
- });
149
- it("should fallback to console.log when effects disabled", async () => {
150
- process.env.KYA_EFFECTS_ENABLED = "false";
151
- await cliEffects.showEffect(EffectTrigger.AGENT_IDENTITY_CREATE, "Creating identity...");
152
- expect(console.log).toHaveBeenCalledWith("Creating identity...");
153
- delete process.env.KYA_EFFECTS_ENABLED;
154
- });
155
- it("should handle custom effects", async () => {
156
- await cliEffects.showCustomEffect("burn", "Custom text");
157
- expect(mockWrite).toHaveBeenCalled();
158
- });
159
- it("should handle loading effects with promises", async () => {
160
- const promise = new Promise((resolve) => {
161
- setTimeout(() => resolve("Done"), 100);
162
- });
163
- const result = await cliEffects.showLoadingEffect("Loading...", promise);
164
- expect(result).toBe("Done");
165
- });
166
- });
167
- describe("Effect Performance", () => {
168
- it("should maintain reasonable frame rates", async () => {
169
- const effect = await getEffect("beams");
170
- const text = "Performance Test";
171
- effect.initialize(text, { frameRate: 30 });
172
- const startTime = Date.now();
173
- let frameCount = 0;
174
- // Render for 100ms
175
- while (Date.now() - startTime < 100 && !effect.isComplete()) {
176
- await effect.render();
177
- frameCount++;
178
- }
179
- // Should render at least a few frames in 100ms
180
- expect(frameCount).toBeGreaterThan(2);
181
- });
182
- });
183
- describe("Memory Safety", () => {
184
- it("should clean up resources properly", async () => {
185
- const effect = await getEffect("burn");
186
- effect.initialize("Test", {});
187
- // Render some frames
188
- for (let i = 0; i < 10; i++) {
189
- await effect.render();
190
- }
191
- // Cleanup
192
- effect.cleanup();
193
- // Should be able to reinitialize
194
- effect.initialize("Test Again", {});
195
- const frame = await effect.render();
196
- expect(frame).toBeInstanceOf(Array);
197
- });
198
- it("should reset state correctly", async () => {
199
- const effect = await getEffect("beams");
200
- effect.initialize("Test", {});
201
- // Render some frames
202
- await effect.render();
203
- await effect.render();
204
- // Reset
205
- effect.reset();
206
- // Should be back to initial state
207
- expect(effect.isComplete()).toBe(false);
208
- });
209
- });
210
- //# sourceMappingURL=effects.test.js.map