@kya-os/cli 1.0.0-beta.9 → 1.1.0

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 (78) hide show
  1. package/README.md +7 -2
  2. package/dist/commands/init.d.ts +3 -0
  3. package/dist/commands/init.d.ts.map +1 -1
  4. package/dist/commands/init.js +60 -15
  5. package/dist/commands/init.js.map +1 -1
  6. package/dist/components/agent-card.js +2 -2
  7. package/dist/components/agent-card.js.map +1 -1
  8. package/dist/components/agent-table.js +19 -19
  9. package/dist/components/agent-table.js.map +1 -1
  10. package/dist/components/welcome.js +1 -1
  11. package/dist/effects/cli-integration.js +8 -8
  12. package/dist/effects/cli-integration.js.map +1 -1
  13. package/dist/effects/config.d.ts +10 -86
  14. package/dist/effects/config.d.ts.map +1 -1
  15. package/dist/effects/config.js +18 -201
  16. package/dist/effects/config.js.map +1 -1
  17. package/dist/index.js +1 -1
  18. package/dist/utils/platform-detector.js +3 -3
  19. package/dist/utils/platform-detector.js.map +1 -1
  20. package/dist/utils/screen-manager.js +5 -1
  21. package/dist/utils/screen-manager.js.map +1 -1
  22. package/dist/utils/validation.d.ts +9 -0
  23. package/dist/utils/validation.d.ts.map +1 -1
  24. package/dist/utils/validation.js +3 -0
  25. package/dist/utils/validation.js.map +1 -1
  26. package/package.json +4 -3
  27. package/dist/effects/animation-engine.d.ts +0 -173
  28. package/dist/effects/animation-engine.d.ts.map +0 -1
  29. package/dist/effects/animation-engine.js +0 -254
  30. package/dist/effects/animation-engine.js.map +0 -1
  31. package/dist/effects/effect-runner.d.ts +0 -69
  32. package/dist/effects/effect-runner.d.ts.map +0 -1
  33. package/dist/effects/effect-runner.js +0 -255
  34. package/dist/effects/effect-runner.js.map +0 -1
  35. package/dist/effects/gradient.d.ts +0 -131
  36. package/dist/effects/gradient.d.ts.map +0 -1
  37. package/dist/effects/gradient.js +0 -236
  38. package/dist/effects/gradient.js.map +0 -1
  39. package/dist/effects/implementations/beams.d.ts +0 -80
  40. package/dist/effects/implementations/beams.d.ts.map +0 -1
  41. package/dist/effects/implementations/beams.js +0 -221
  42. package/dist/effects/implementations/beams.js.map +0 -1
  43. package/dist/effects/implementations/blackhole.d.ts +0 -98
  44. package/dist/effects/implementations/blackhole.d.ts.map +0 -1
  45. package/dist/effects/implementations/blackhole.js +0 -421
  46. package/dist/effects/implementations/blackhole.js.map +0 -1
  47. package/dist/effects/implementations/burn.d.ts +0 -74
  48. package/dist/effects/implementations/burn.d.ts.map +0 -1
  49. package/dist/effects/implementations/burn.js +0 -234
  50. package/dist/effects/implementations/burn.js.map +0 -1
  51. package/dist/effects/implementations/decrypt.d.ts +0 -115
  52. package/dist/effects/implementations/decrypt.d.ts.map +0 -1
  53. package/dist/effects/implementations/decrypt.js +0 -394
  54. package/dist/effects/implementations/decrypt.js.map +0 -1
  55. package/dist/effects/implementations/waves.d.ts +0 -78
  56. package/dist/effects/implementations/waves.d.ts.map +0 -1
  57. package/dist/effects/implementations/waves.js +0 -278
  58. package/dist/effects/implementations/waves.js.map +0 -1
  59. package/dist/effects/index.d.ts +0 -34
  60. package/dist/effects/index.d.ts.map +0 -1
  61. package/dist/effects/index.js +0 -114
  62. package/dist/effects/index.js.map +0 -1
  63. package/dist/effects/motion-engine.d.ts +0 -168
  64. package/dist/effects/motion-engine.d.ts.map +0 -1
  65. package/dist/effects/motion-engine.js +0 -353
  66. package/dist/effects/motion-engine.js.map +0 -1
  67. package/dist/effects/safe-executor.d.ts +0 -55
  68. package/dist/effects/safe-executor.d.ts.map +0 -1
  69. package/dist/effects/safe-executor.js +0 -210
  70. package/dist/effects/safe-executor.js.map +0 -1
  71. package/dist/effects/types.d.ts +0 -199
  72. package/dist/effects/types.d.ts.map +0 -1
  73. package/dist/effects/types.js +0 -80
  74. package/dist/effects/types.js.map +0 -1
  75. package/dist/effects/utils.d.ts +0 -104
  76. package/dist/effects/utils.d.ts.map +0 -1
  77. package/dist/effects/utils.js +0 -280
  78. package/dist/effects/utils.js.map +0 -1
@@ -1,278 +0,0 @@
1
- /**
2
- * Waves Effect
3
- * Creates wave patterns that travel across the text
4
- */
5
- import { BaseEffect, } from "../types.js";
6
- import { ANSI } from "../utils.js";
7
- import { Gradient, GradientDirection, EASING } from "../gradient.js";
8
- /**
9
- * Waves effect implementation
10
- */
11
- export class WavesEffect extends BaseEffect {
12
- constructor(options = {}) {
13
- super();
14
- this.name = "Waves";
15
- this.description = "Creates wave patterns that travel across the text";
16
- this.characterStates = new Map();
17
- this.animationFrameCount = 0;
18
- this.totalFrames = 0;
19
- this.wavePosition = 0;
20
- this._isEffectComplete = false;
21
- this.options = {
22
- duration: 4000,
23
- waveColors: ["0080ff", "00a0ff", "00c0ff", "00e0ff", "00ffff", "80ffff", "ffffff"],
24
- finalColor: "ffffff",
25
- waveSpeed: 0.15,
26
- waveFrequency: 2,
27
- waveAmplitude: 3,
28
- direction: "horizontal",
29
- useGradient: true,
30
- ...options,
31
- };
32
- }
33
- /**
34
- * Initialize the effect
35
- */
36
- onInitialize() {
37
- this.totalFrames = Math.floor((this.options.duration / 1000) * this.config.frameRate);
38
- // Create gradient if enabled
39
- if (this.options.useGradient) {
40
- this.gradient = new Gradient({
41
- stops: this.options.waveColors,
42
- steps: 10,
43
- direction: this.options.direction === "vertical"
44
- ? GradientDirection.HORIZONTAL
45
- : GradientDirection.VERTICAL,
46
- easingFn: EASING.inOutSine,
47
- });
48
- }
49
- // Initialize character states
50
- this.characterStates.clear();
51
- const dimensions = this.getCanvasDimensions();
52
- for (const char of this.characters) {
53
- const key = `${char.originalPosition.x},${char.originalPosition.y}`;
54
- // Calculate wave offset based on position and direction
55
- let waveOffset = 0;
56
- switch (this.options.direction) {
57
- case "horizontal":
58
- waveOffset = char.originalPosition.x / dimensions.width;
59
- break;
60
- case "vertical":
61
- waveOffset = char.originalPosition.y / dimensions.height;
62
- break;
63
- case "diagonal":
64
- waveOffset = (char.originalPosition.x + char.originalPosition.y) /
65
- (dimensions.width + dimensions.height);
66
- break;
67
- }
68
- this.characterStates.set(key, {
69
- phase: "waiting",
70
- waveOffset,
71
- waveIntensity: 0,
72
- originalY: char.originalPosition.y,
73
- currentWaveY: char.originalPosition.y,
74
- colorIndex: 0,
75
- settleProgress: 0,
76
- });
77
- }
78
- this.wavePosition = -0.5; // Start wave off-screen
79
- this.animationFrameCount = 0;
80
- this._isEffectComplete = false;
81
- }
82
- /**
83
- * Render the next frame
84
- */
85
- async render() {
86
- if (!this.isInitialized) {
87
- throw new Error("Effect not initialized");
88
- }
89
- // Update animation state
90
- this.updateAnimationState();
91
- // Create the frame
92
- const dimensions = this.getCanvasDimensions();
93
- const frame = Array(dimensions.height)
94
- .fill("")
95
- .map(() => Array(dimensions.width).fill(" "));
96
- // Render characters
97
- for (const char of this.characters) {
98
- const key = `${char.originalPosition.x},${char.originalPosition.y}`;
99
- const state = this.characterStates.get(key);
100
- if (state) {
101
- const visual = this.createCharacterVisual(char, state);
102
- char.visual = visual;
103
- // Use wave-displaced position for horizontal/diagonal waves
104
- let x = char.originalPosition.x;
105
- let y = char.originalPosition.y;
106
- if (this.options.direction !== "vertical" && state.phase === "waving") {
107
- y = Math.round(state.currentWaveY);
108
- }
109
- else if (this.options.direction === "vertical" && state.phase === "waving") {
110
- // For vertical waves, displace horizontally
111
- x = Math.round(char.originalPosition.x +
112
- Math.sin(state.currentWaveY * Math.PI * this.options.waveFrequency) *
113
- this.options.waveAmplitude);
114
- }
115
- if (y >= 0 && y < dimensions.height && x >= 0 && x < dimensions.width) {
116
- const colorCode = this.getColorCode(visual.colors.fg);
117
- const resetCode = ANSI.reset;
118
- frame[y][x] = colorCode + visual.symbol + resetCode;
119
- }
120
- }
121
- }
122
- this.animationFrameCount++;
123
- // Convert frame to strings
124
- return frame.map((row) => row.join(""));
125
- }
126
- /**
127
- * Update animation state for all characters
128
- */
129
- updateAnimationState() {
130
- const progress = this.animationFrameCount / this.totalFrames;
131
- // Update wave position
132
- this.wavePosition += this.options.waveSpeed;
133
- // Update character states
134
- for (const [key, state] of this.characterStates) {
135
- const [_x, _y] = key.split(",").map(Number);
136
- // Calculate wave influence
137
- const waveDistance = Math.abs(this.wavePosition - state.waveOffset);
138
- const waveInfluence = Math.max(0, 1 - waveDistance * 2);
139
- if (waveInfluence > 0 && state.phase !== "complete") {
140
- state.phase = "waving";
141
- state.waveIntensity = waveInfluence;
142
- // Calculate wave displacement
143
- const wavePhase = (state.waveOffset + this.wavePosition) *
144
- Math.PI * 2 * this.options.waveFrequency;
145
- const waveHeight = Math.sin(wavePhase) * this.options.waveAmplitude * waveInfluence;
146
- if (this.options.direction !== "vertical") {
147
- state.currentWaveY = state.originalY + waveHeight;
148
- }
149
- else {
150
- // For vertical waves, we'll use this for horizontal displacement
151
- state.currentWaveY = wavePhase;
152
- }
153
- // Update color based on wave position
154
- if (this.gradient) {
155
- const spectrum = this.gradient.getSpectrum();
156
- state.colorIndex = Math.floor(waveInfluence * (spectrum.length - 1));
157
- }
158
- else {
159
- state.colorIndex = Math.floor(waveInfluence * (this.options.waveColors.length - 1));
160
- }
161
- }
162
- else if (state.phase === "waving" && waveInfluence === 0) {
163
- // Start settling
164
- state.phase = "settling";
165
- }
166
- // Handle settling phase
167
- if (state.phase === "settling") {
168
- state.settleProgress += 0.05;
169
- state.currentWaveY = state.originalY +
170
- (state.currentWaveY - state.originalY) * (1 - state.settleProgress);
171
- if (state.settleProgress >= 1) {
172
- state.phase = "complete";
173
- state.currentWaveY = state.originalY;
174
- }
175
- }
176
- }
177
- // Check if effect is complete
178
- this._isEffectComplete = progress >= 1 ||
179
- Array.from(this.characterStates.values()).every(s => s.phase === "complete");
180
- }
181
- /**
182
- * Create visual representation of a character
183
- */
184
- createCharacterVisual(char, state) {
185
- let color = this.options.finalColor;
186
- switch (state.phase) {
187
- case "waiting":
188
- // Use dimmed color while waiting
189
- color = "404040";
190
- break;
191
- case "waving":
192
- // Use wave color based on intensity
193
- if (this.gradient) {
194
- const spectrum = this.gradient.getSpectrum();
195
- color = spectrum[state.colorIndex] || spectrum[spectrum.length - 1];
196
- }
197
- else {
198
- color = this.options.waveColors[state.colorIndex] ||
199
- this.options.waveColors[this.options.waveColors.length - 1];
200
- }
201
- break;
202
- case "settling":
203
- // Interpolate from wave color to final color
204
- const waveColor = this.gradient
205
- ? this.gradient.getSpectrum()[0]
206
- : this.options.waveColors[0];
207
- color = this.interpolateColor(waveColor, this.options.finalColor, state.settleProgress);
208
- break;
209
- case "complete":
210
- color = this.options.finalColor;
211
- break;
212
- }
213
- return {
214
- symbol: char.originalSymbol,
215
- colors: {
216
- fg: color,
217
- bg: null,
218
- },
219
- };
220
- }
221
- /**
222
- * Get ANSI color code for a color
223
- */
224
- getColorCode(color) {
225
- if (!color || this.config.noColor) {
226
- return "";
227
- }
228
- // For RGB colors, convert to ANSI 24-bit color
229
- if (typeof color === "string") {
230
- const r = parseInt(color.substring(0, 2), 16);
231
- const g = parseInt(color.substring(2, 4), 16);
232
- const b = parseInt(color.substring(4, 6), 16);
233
- return `\x1b[38;2;${r};${g};${b}m`;
234
- }
235
- // For XTerm colors
236
- return `\x1b[38;5;${color}m`;
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
- * Render fallback for when effects are disabled
257
- */
258
- renderFallback() {
259
- return this.text.split("\n");
260
- }
261
- /**
262
- * Check if effect is complete
263
- */
264
- isComplete() {
265
- return this._isEffectComplete;
266
- }
267
- /**
268
- * Reset the effect
269
- */
270
- onReset() {
271
- this.characterStates.clear();
272
- this.wavePosition = -0.5;
273
- this.animationFrameCount = 0;
274
- this._isEffectComplete = false;
275
- this.onInitialize();
276
- }
277
- }
278
- //# sourceMappingURL=waves.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"waves.js","sourceRoot":"","sources":["../../../src/effects/implementations/waves.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- /**
2
- * Effect Registry and Exports
3
- * Uses lazy loading to reduce initial bundle size
4
- */
5
- import { Effect, EffectRegistryEntry } from "./types.js";
6
- /**
7
- * Get an effect by name (async with lazy loading)
8
- */
9
- export declare function getEffect(name: string): Promise<Effect | null>;
10
- /**
11
- * Get an effect synchronously if already cached
12
- * For backward compatibility with sync code
13
- */
14
- export declare function getEffectSync(name: string): Effect | null;
15
- /**
16
- * Preload specific effects for performance
17
- */
18
- export declare function preloadEffects(...names: string[]): Promise<void>;
19
- /**
20
- * Get all available effects (returns basic info without loading)
21
- */
22
- export declare function getAllEffects(): EffectRegistryEntry[];
23
- export * from "./types.js";
24
- export * from "./utils.js";
25
- export * from "./config.js";
26
- export * from "./safe-executor.js";
27
- export * from "./effect-runner.js";
28
- export * from "./cli-integration.js";
29
- export { Gradient, GradientDirection, GRADIENTS, EASING } from "./gradient.js";
30
- export { SyncMetric, AnimationEvent, CharacterAnimation, AnimatedCharacter, } from "./animation-engine.js";
31
- export type { AnimationFrame, AnimationEventHandler, } from "./animation-engine.js";
32
- export { MotionEvent, CharacterMotion } from "./motion-engine.js";
33
- export type { Waypoint, Segment, MotionEventHandler } from "./motion-engine.js";
34
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/effects/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AA4BzD;;GAEG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmBpE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGzD;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtE;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,mBAAmB,EAAE,CAarD;AAwCD,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AAGrC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG/E,OAAO,EACL,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,cAAc,EACd,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGlE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,114 +0,0 @@
1
- /**
2
- * Effect Registry and Exports
3
- * Uses lazy loading to reduce initial bundle size
4
- */
5
- /**
6
- * Registry of all available effects (lazy loaded)
7
- */
8
- const lazyEffectRegistry = new Map();
9
- /**
10
- * Cache for loaded effect classes
11
- */
12
- const effectClassCache = new Map();
13
- /**
14
- * Register a lazy-loaded effect
15
- */
16
- function registerLazyEffect(entry) {
17
- lazyEffectRegistry.set(entry.name.toLowerCase(), entry);
18
- }
19
- /**
20
- * Get an effect by name (async with lazy loading)
21
- */
22
- export async function getEffect(name) {
23
- const entry = lazyEffectRegistry.get(name.toLowerCase());
24
- if (!entry)
25
- return null;
26
- try {
27
- // Check cache first
28
- let EffectClass = effectClassCache.get(name.toLowerCase());
29
- if (!EffectClass) {
30
- // Load the effect class
31
- EffectClass = await entry.loader();
32
- effectClassCache.set(name.toLowerCase(), EffectClass);
33
- }
34
- return new EffectClass();
35
- }
36
- catch (error) {
37
- console.error(`Failed to load effect '${name}':`, error);
38
- return null;
39
- }
40
- }
41
- /**
42
- * Get an effect synchronously if already cached
43
- * For backward compatibility with sync code
44
- */
45
- export function getEffectSync(name) {
46
- const EffectClass = effectClassCache.get(name.toLowerCase());
47
- return EffectClass ? new EffectClass() : null;
48
- }
49
- /**
50
- * Preload specific effects for performance
51
- */
52
- export async function preloadEffects(...names) {
53
- await Promise.all(names.map(name => getEffect(name)));
54
- }
55
- /**
56
- * Get all available effects (returns basic info without loading)
57
- */
58
- export function getAllEffects() {
59
- return Array.from(lazyEffectRegistry.values()).map(entry => ({
60
- name: entry.name,
61
- description: entry.description,
62
- factory: () => {
63
- // This is a sync factory that throws if effect not loaded
64
- const EffectClass = effectClassCache.get(entry.name.toLowerCase());
65
- if (!EffectClass) {
66
- throw new Error(`Effect '${entry.name}' not loaded. Use getEffect() instead.`);
67
- }
68
- return new EffectClass();
69
- }
70
- }));
71
- }
72
- // Register built-in effects with lazy loading
73
- registerLazyEffect({
74
- name: "burn",
75
- description: "Characters are ignited and burn up the screen",
76
- loader: async () => (await import("./implementations/burn.js")).BurnEffect,
77
- });
78
- registerLazyEffect({
79
- name: "beams",
80
- description: "Creates beams which travel over the canvas illuminating the characters",
81
- loader: async () => (await import("./implementations/beams.js")).BeamsEffect,
82
- });
83
- // Binary Path effect removed - was causing issues and blocking demo
84
- registerLazyEffect({
85
- name: "decrypt",
86
- description: "Movie-style text decryption effect with typing animation",
87
- loader: async () => (await import("./implementations/decrypt.js")).DecryptEffect,
88
- });
89
- registerLazyEffect({
90
- name: "blackhole",
91
- description: "Characters are consumed by a black hole and explode outwards",
92
- loader: async () => (await import("./implementations/blackhole.js")).BlackholeEffect,
93
- });
94
- registerLazyEffect({
95
- name: "waves",
96
- description: "Creates wave patterns that travel across the text",
97
- loader: async () => (await import("./implementations/waves.js")).WavesEffect,
98
- });
99
- // Individual effect classes are now lazy-loaded
100
- // Use getEffect() to access them
101
- // Export types
102
- export * from "./types.js";
103
- export * from "./utils.js";
104
- export * from "./config.js";
105
- export * from "./safe-executor.js";
106
- export * from "./effect-runner.js";
107
- export * from "./cli-integration.js";
108
- // Export gradient system (has createGradient which conflicts with utils)
109
- export { Gradient, GradientDirection, GRADIENTS, EASING } from "./gradient.js";
110
- // Export animation engine (has Scene which conflicts with types)
111
- export { SyncMetric, AnimationEvent, CharacterAnimation, AnimatedCharacter, } from "./animation-engine.js";
112
- // Export motion engine (has Path which conflicts with types)
113
- export { MotionEvent, CharacterMotion } from "./motion-engine.js";
114
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/effects/index.ts"],"names":[],"mappings":"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"}
@@ -1,168 +0,0 @@
1
- /**
2
- * Motion Path Engine for Terminal Effects
3
- * Provides sophisticated character movement with paths, waypoints, and bezier curves
4
- */
5
- import { Coordinate, EasingFunction } from "./types.js";
6
- /**
7
- * Waypoint in a motion path
8
- */
9
- export interface Waypoint {
10
- id: string;
11
- coordinate: Coordinate;
12
- /** Optional bezier control point for curved paths */
13
- bezierControl?: Coordinate;
14
- /** Hold time at this waypoint (ms) */
15
- holdTime?: number;
16
- }
17
- /**
18
- * Motion segment between two waypoints
19
- */
20
- export interface Segment {
21
- start: Waypoint;
22
- end: Waypoint;
23
- distance: number;
24
- /** Bezier curve points if applicable */
25
- curvePoints?: Coordinate[];
26
- }
27
- /**
28
- * Motion path for character movement
29
- */
30
- export declare class Path {
31
- readonly id: string;
32
- private waypoints;
33
- private segments;
34
- private _isLooping;
35
- private _speed;
36
- private _easingFn?;
37
- /** Current position along the path (0-1) */
38
- private progress;
39
- /** Current segment index */
40
- private currentSegmentIndex;
41
- /** Time spent at current waypoint (for holds) */
42
- private holdTimeElapsed;
43
- /** Total path distance */
44
- private totalDistance;
45
- constructor(id: string, speed?: number, easingFn?: EasingFunction);
46
- /**
47
- * Add a waypoint to the path
48
- */
49
- newWaypoint(coord: Coordinate, waypointId?: string, bezierControl?: Coordinate, holdTime?: number): Waypoint;
50
- /**
51
- * Recalculate segments when waypoints change
52
- */
53
- private recalculateSegments;
54
- /**
55
- * Calculate bezier curve points
56
- */
57
- private calculateBezierPoints;
58
- /**
59
- * Calculate distance between two coordinates
60
- */
61
- private calculateDistance;
62
- /**
63
- * Calculate total distance along a path of points
64
- */
65
- private calculatePathDistance;
66
- /**
67
- * Set looping behavior
68
- */
69
- setLooping(isLooping: boolean): void;
70
- /**
71
- * Set speed
72
- */
73
- setSpeed(speed: number): void;
74
- /**
75
- * Get position at current progress
76
- */
77
- getCurrentPosition(): Coordinate;
78
- /**
79
- * Get progress within current segment (0-1)
80
- */
81
- private getSegmentProgress;
82
- /**
83
- * Update motion progress
84
- */
85
- update(deltaTime: number): void;
86
- /**
87
- * Reset the path
88
- */
89
- reset(): void;
90
- /**
91
- * Check if path is complete
92
- */
93
- isComplete(): boolean;
94
- /**
95
- * Get waypoint count
96
- */
97
- getWaypointCount(): number;
98
- /**
99
- * Get total path distance
100
- */
101
- getTotalDistance(): number;
102
- }
103
- /**
104
- * Motion event types
105
- */
106
- export declare enum MotionEvent {
107
- PATH_COMPLETE = "path_complete",
108
- PATH_ACTIVATED = "path_activated",
109
- WAYPOINT_REACHED = "waypoint_reached",
110
- SEGMENT_ENTERED = "segment_entered"
111
- }
112
- /**
113
- * Motion event handler
114
- */
115
- export interface MotionEventHandler {
116
- event: MotionEvent;
117
- pathId?: string;
118
- waypointId?: string;
119
- callback: () => void;
120
- }
121
- /**
122
- * Character motion manager
123
- */
124
- export declare class CharacterMotion {
125
- private paths;
126
- private activePath;
127
- private lastUpdateTime;
128
- private eventHandlers;
129
- private currentPosition;
130
- constructor(initialPosition: Coordinate);
131
- /**
132
- * Create a new path
133
- */
134
- newPath(pathId: string, speed?: number, easingFn?: EasingFunction): Path;
135
- /**
136
- * Get a path by ID
137
- */
138
- queryPath(pathId: string): Path | undefined;
139
- /**
140
- * Activate a path
141
- */
142
- activatePath(path: Path): void;
143
- /**
144
- * Set position directly
145
- */
146
- setCoordinate(coord: Coordinate): void;
147
- /**
148
- * Update motion and get current position
149
- */
150
- update(): Coordinate;
151
- /**
152
- * Register an event handler
153
- */
154
- registerEvent(event: MotionEvent, pathId: string, callback: () => void, waypointId?: string): void;
155
- /**
156
- * Trigger an event
157
- */
158
- private triggerEvent;
159
- /**
160
- * Reset all paths
161
- */
162
- reset(): void;
163
- /**
164
- * Get current position
165
- */
166
- getCurrentPosition(): Coordinate;
167
- }
168
- //# sourceMappingURL=motion-engine.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"motion-engine.d.ts","sourceRoot":"","sources":["../../src/effects/motion-engine.ts"],"names":[],"mappings":"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"}