erosolar-cli 2.1.171 → 2.1.172

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 (209) hide show
  1. package/README.md +1 -1
  2. package/agents/erosolar-code.rules.json +2 -2
  3. package/agents/general.rules.json +3 -21
  4. package/dist/StringUtils.d.ts +8 -0
  5. package/dist/StringUtils.d.ts.map +1 -0
  6. package/dist/StringUtils.js +11 -0
  7. package/dist/StringUtils.js.map +1 -0
  8. package/dist/capabilities/statusCapability.js +2 -2
  9. package/dist/capabilities/statusCapability.js.map +1 -1
  10. package/dist/contracts/agent-schemas.json +5 -5
  11. package/dist/core/agent.d.ts +24 -83
  12. package/dist/core/agent.d.ts.map +1 -1
  13. package/dist/core/agent.js +248 -499
  14. package/dist/core/agent.js.map +1 -1
  15. package/dist/core/aiFlowSupervisor.d.ts +44 -0
  16. package/dist/core/aiFlowSupervisor.d.ts.map +1 -0
  17. package/dist/core/aiFlowSupervisor.js +299 -0
  18. package/dist/core/aiFlowSupervisor.js.map +1 -0
  19. package/dist/core/cliTestHarness.d.ts +200 -0
  20. package/dist/core/cliTestHarness.d.ts.map +1 -0
  21. package/dist/core/cliTestHarness.js +549 -0
  22. package/dist/core/cliTestHarness.js.map +1 -0
  23. package/dist/core/preferences.d.ts +0 -1
  24. package/dist/core/preferences.d.ts.map +1 -1
  25. package/dist/core/preferences.js +1 -8
  26. package/dist/core/preferences.js.map +1 -1
  27. package/dist/core/schemaValidator.js +3 -3
  28. package/dist/core/schemaValidator.js.map +1 -1
  29. package/dist/core/testUtils.d.ts +121 -0
  30. package/dist/core/testUtils.d.ts.map +1 -0
  31. package/dist/core/testUtils.js +235 -0
  32. package/dist/core/testUtils.js.map +1 -0
  33. package/dist/core/toolPreconditions.d.ts +11 -0
  34. package/dist/core/toolPreconditions.d.ts.map +1 -1
  35. package/dist/core/toolPreconditions.js +164 -33
  36. package/dist/core/toolPreconditions.js.map +1 -1
  37. package/dist/core/toolRuntime.d.ts.map +1 -1
  38. package/dist/core/toolRuntime.js +114 -9
  39. package/dist/core/toolRuntime.js.map +1 -1
  40. package/dist/core/toolValidation.d.ts +116 -0
  41. package/dist/core/toolValidation.d.ts.map +1 -0
  42. package/dist/core/toolValidation.js +282 -0
  43. package/dist/core/toolValidation.js.map +1 -0
  44. package/dist/core/updateChecker.d.ts +1 -61
  45. package/dist/core/updateChecker.d.ts.map +1 -1
  46. package/dist/core/updateChecker.js +3 -147
  47. package/dist/core/updateChecker.js.map +1 -1
  48. package/dist/headless/evalMode.d.ts.map +1 -1
  49. package/dist/headless/evalMode.js +0 -6
  50. package/dist/headless/evalMode.js.map +1 -1
  51. package/dist/headless/headlessApp.d.ts.map +1 -1
  52. package/dist/headless/headlessApp.js +39 -6
  53. package/dist/headless/headlessApp.js.map +1 -1
  54. package/dist/mcp/sseClient.d.ts +1 -4
  55. package/dist/mcp/sseClient.d.ts.map +1 -1
  56. package/dist/mcp/sseClient.js +2 -36
  57. package/dist/mcp/sseClient.js.map +1 -1
  58. package/dist/mcp/stdioClient.d.ts +1 -4
  59. package/dist/mcp/stdioClient.d.ts.map +1 -1
  60. package/dist/mcp/stdioClient.js +1 -41
  61. package/dist/mcp/stdioClient.js.map +1 -1
  62. package/dist/mcp/toolBridge.d.ts +0 -3
  63. package/dist/mcp/toolBridge.d.ts.map +1 -1
  64. package/dist/mcp/toolBridge.js +2 -2
  65. package/dist/mcp/toolBridge.js.map +1 -1
  66. package/dist/mcp/types.d.ts +0 -18
  67. package/dist/mcp/types.d.ts.map +1 -1
  68. package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
  69. package/dist/plugins/tools/nodeDefaults.js +2 -0
  70. package/dist/plugins/tools/nodeDefaults.js.map +1 -1
  71. package/dist/providers/openaiResponsesProvider.d.ts.map +1 -1
  72. package/dist/providers/openaiResponsesProvider.js +74 -79
  73. package/dist/providers/openaiResponsesProvider.js.map +1 -1
  74. package/dist/runtime/agentController.d.ts.map +1 -1
  75. package/dist/runtime/agentController.js +3 -6
  76. package/dist/runtime/agentController.js.map +1 -1
  77. package/dist/runtime/agentSession.d.ts +2 -0
  78. package/dist/runtime/agentSession.d.ts.map +1 -1
  79. package/dist/runtime/agentSession.js +2 -2
  80. package/dist/runtime/agentSession.js.map +1 -1
  81. package/dist/shell/interactiveShell.d.ts +18 -20
  82. package/dist/shell/interactiveShell.d.ts.map +1 -1
  83. package/dist/shell/interactiveShell.js +291 -329
  84. package/dist/shell/interactiveShell.js.map +1 -1
  85. package/dist/shell/shellApp.d.ts.map +1 -1
  86. package/dist/shell/shellApp.js +8 -16
  87. package/dist/shell/shellApp.js.map +1 -1
  88. package/dist/shell/systemPrompt.d.ts.map +1 -1
  89. package/dist/shell/systemPrompt.js +15 -4
  90. package/dist/shell/systemPrompt.js.map +1 -1
  91. package/dist/subagents/taskRunner.js +1 -2
  92. package/dist/subagents/taskRunner.js.map +1 -1
  93. package/dist/tools/bashTools.d.ts.map +1 -1
  94. package/dist/tools/bashTools.js +8 -101
  95. package/dist/tools/bashTools.js.map +1 -1
  96. package/dist/tools/diffUtils.d.ts +2 -8
  97. package/dist/tools/diffUtils.d.ts.map +1 -1
  98. package/dist/tools/diffUtils.js +13 -72
  99. package/dist/tools/diffUtils.js.map +1 -1
  100. package/dist/tools/grepTools.d.ts.map +1 -1
  101. package/dist/tools/grepTools.js +2 -10
  102. package/dist/tools/grepTools.js.map +1 -1
  103. package/dist/tools/planningTools.d.ts +10 -0
  104. package/dist/tools/planningTools.d.ts.map +1 -1
  105. package/dist/tools/planningTools.js +16 -0
  106. package/dist/tools/planningTools.js.map +1 -1
  107. package/dist/tools/searchTools.d.ts.map +1 -1
  108. package/dist/tools/searchTools.js +2 -4
  109. package/dist/tools/searchTools.js.map +1 -1
  110. package/dist/ui/PromptController.d.ts +4 -4
  111. package/dist/ui/PromptController.d.ts.map +1 -1
  112. package/dist/ui/PromptController.js +7 -1
  113. package/dist/ui/PromptController.js.map +1 -1
  114. package/dist/ui/ShellUIAdapter.d.ts +28 -292
  115. package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
  116. package/dist/ui/ShellUIAdapter.js +121 -1513
  117. package/dist/ui/ShellUIAdapter.js.map +1 -1
  118. package/dist/ui/UnifiedUIRenderer.d.ts +30 -136
  119. package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -1
  120. package/dist/ui/UnifiedUIRenderer.js +370 -955
  121. package/dist/ui/UnifiedUIRenderer.js.map +1 -1
  122. package/dist/ui/animatedStatus.d.ts +6 -128
  123. package/dist/ui/animatedStatus.d.ts.map +1 -1
  124. package/dist/ui/animatedStatus.js +50 -383
  125. package/dist/ui/animatedStatus.js.map +1 -1
  126. package/dist/ui/display.d.ts +26 -182
  127. package/dist/ui/display.d.ts.map +1 -1
  128. package/dist/ui/display.js +97 -678
  129. package/dist/ui/display.js.map +1 -1
  130. package/dist/ui/layout.d.ts +1 -0
  131. package/dist/ui/layout.d.ts.map +1 -1
  132. package/dist/ui/layout.js +12 -0
  133. package/dist/ui/layout.js.map +1 -1
  134. package/dist/ui/orchestration/UIUpdateCoordinator.d.ts +7 -61
  135. package/dist/ui/orchestration/UIUpdateCoordinator.d.ts.map +1 -1
  136. package/dist/ui/orchestration/UIUpdateCoordinator.js +20 -232
  137. package/dist/ui/orchestration/UIUpdateCoordinator.js.map +1 -1
  138. package/dist/ui/planOverlay.d.ts +28 -0
  139. package/dist/ui/planOverlay.d.ts.map +1 -0
  140. package/dist/ui/planOverlay.js +156 -0
  141. package/dist/ui/planOverlay.js.map +1 -0
  142. package/dist/ui/shortcutsHelp.d.ts.map +1 -1
  143. package/dist/ui/shortcutsHelp.js +1 -0
  144. package/dist/ui/shortcutsHelp.js.map +1 -1
  145. package/dist/ui/streamingFormatter.d.ts +30 -0
  146. package/dist/ui/streamingFormatter.d.ts.map +1 -0
  147. package/dist/ui/streamingFormatter.js +91 -0
  148. package/dist/ui/streamingFormatter.js.map +1 -0
  149. package/dist/ui/unified/index.d.ts +1 -30
  150. package/dist/ui/unified/index.d.ts.map +1 -1
  151. package/dist/ui/unified/index.js +2 -45
  152. package/dist/ui/unified/index.js.map +1 -1
  153. package/dist/utils/errorUtils.d.ts +16 -0
  154. package/dist/utils/errorUtils.d.ts.map +1 -0
  155. package/dist/utils/errorUtils.js +66 -0
  156. package/dist/utils/errorUtils.js.map +1 -0
  157. package/package.json +2 -1
  158. package/dist/codex/capabilities/codexCoreCapability.d.ts +0 -6
  159. package/dist/codex/capabilities/codexCoreCapability.d.ts.map +0 -1
  160. package/dist/codex/capabilities/codexCoreCapability.js +0 -516
  161. package/dist/codex/capabilities/codexCoreCapability.js.map +0 -1
  162. package/dist/codex/fs.d.ts +0 -4
  163. package/dist/codex/fs.d.ts.map +0 -1
  164. package/dist/codex/fs.js +0 -25
  165. package/dist/codex/fs.js.map +0 -1
  166. package/dist/codex/persistence/planStore.d.ts +0 -4
  167. package/dist/codex/persistence/planStore.d.ts.map +0 -1
  168. package/dist/codex/persistence/planStore.js +0 -59
  169. package/dist/codex/persistence/planStore.js.map +0 -1
  170. package/dist/codex/pluginAllowlist.d.ts +0 -4
  171. package/dist/codex/pluginAllowlist.d.ts.map +0 -1
  172. package/dist/codex/pluginAllowlist.js +0 -14
  173. package/dist/codex/pluginAllowlist.js.map +0 -1
  174. package/dist/codex/types.d.ts +0 -21
  175. package/dist/codex/types.d.ts.map +0 -1
  176. package/dist/codex/types.js +0 -62
  177. package/dist/codex/types.js.map +0 -1
  178. package/dist/core/reliabilityPrompt.d.ts +0 -9
  179. package/dist/core/reliabilityPrompt.d.ts.map +0 -1
  180. package/dist/core/reliabilityPrompt.js +0 -31
  181. package/dist/core/reliabilityPrompt.js.map +0 -1
  182. package/dist/ui/UnifiedUIController.d.ts +0 -81
  183. package/dist/ui/UnifiedUIController.d.ts.map +0 -1
  184. package/dist/ui/UnifiedUIController.js +0 -212
  185. package/dist/ui/UnifiedUIController.js.map +0 -1
  186. package/dist/ui/animation/AnimationScheduler.d.ts +0 -192
  187. package/dist/ui/animation/AnimationScheduler.d.ts.map +0 -1
  188. package/dist/ui/animation/AnimationScheduler.js +0 -432
  189. package/dist/ui/animation/AnimationScheduler.js.map +0 -1
  190. package/dist/ui/inPlaceUpdater.d.ts +0 -181
  191. package/dist/ui/inPlaceUpdater.d.ts.map +0 -1
  192. package/dist/ui/inPlaceUpdater.js +0 -515
  193. package/dist/ui/inPlaceUpdater.js.map +0 -1
  194. package/dist/ui/interrupts/InterruptManager.d.ts +0 -142
  195. package/dist/ui/interrupts/InterruptManager.d.ts.map +0 -1
  196. package/dist/ui/interrupts/InterruptManager.js +0 -439
  197. package/dist/ui/interrupts/InterruptManager.js.map +0 -1
  198. package/dist/ui/telemetry/ResponseTracker.d.ts +0 -22
  199. package/dist/ui/telemetry/ResponseTracker.d.ts.map +0 -1
  200. package/dist/ui/telemetry/ResponseTracker.js +0 -60
  201. package/dist/ui/telemetry/ResponseTracker.js.map +0 -1
  202. package/dist/ui/telemetry/UITelemetry.d.ts +0 -181
  203. package/dist/ui/telemetry/UITelemetry.d.ts.map +0 -1
  204. package/dist/ui/telemetry/UITelemetry.js +0 -446
  205. package/dist/ui/telemetry/UITelemetry.js.map +0 -1
  206. package/dist/ui/unified/layout.d.ts +0 -12
  207. package/dist/ui/unified/layout.d.ts.map +0 -1
  208. package/dist/ui/unified/layout.js +0 -96
  209. package/dist/ui/unified/layout.js.map +0 -1
@@ -1,192 +0,0 @@
1
- /**
2
- * AnimationScheduler - Coordinates animations, spinners, progress bars, and elapsed time
3
- * Provides frame-based animation updates and smooth transitions
4
- */
5
- import { EventEmitter } from 'events';
6
- export type AnimationType = 'spinner' | 'progress' | 'elapsed' | 'pulse' | 'transition';
7
- export interface Animation {
8
- id: string;
9
- type: AnimationType;
10
- startTime: number;
11
- duration?: number;
12
- fps: number;
13
- frameCount: number;
14
- currentFrame: number;
15
- data?: unknown;
16
- easing?: EasingFunction;
17
- onFrame?: (animation: Animation) => void;
18
- onComplete?: (animation: Animation) => void;
19
- }
20
- export type EasingFunction = (t: number) => number;
21
- export interface ProgressAnimation extends Animation {
22
- type: 'progress';
23
- data: {
24
- current: number;
25
- target: number;
26
- total: number;
27
- format?: (value: number, total: number) => string;
28
- };
29
- }
30
- export interface SpinnerAnimation extends Animation {
31
- type: 'spinner';
32
- data: {
33
- frames: string[];
34
- message?: string;
35
- };
36
- }
37
- export interface ElapsedAnimation extends Animation {
38
- type: 'elapsed';
39
- data: {
40
- startTime: number;
41
- format?: (elapsed: number) => string;
42
- };
43
- }
44
- export interface TransitionAnimation extends Animation {
45
- type: 'transition';
46
- data: {
47
- from: unknown;
48
- to: unknown;
49
- property: string;
50
- };
51
- }
52
- export declare class AnimationScheduler extends EventEmitter {
53
- private animations;
54
- private animationLoop;
55
- private targetFPS;
56
- private lastFrameTime;
57
- private frameInterval;
58
- private isRunning;
59
- static readonly Easing: {
60
- linear: (t: number) => number;
61
- easeInQuad: (t: number) => number;
62
- easeOutQuad: (t: number) => number;
63
- easeInOutQuad: (t: number) => number;
64
- easeInCubic: (t: number) => number;
65
- easeOutCubic: (t: number) => number;
66
- easeInOutCubic: (t: number) => number;
67
- easeOutElastic: (t: number) => number;
68
- };
69
- static readonly SpinnerFrames: {
70
- dots: string[];
71
- dots2: string[];
72
- dots3: string[];
73
- line: string[];
74
- pipe: string[];
75
- simpleDots: string[];
76
- simpleDotsScrolling: string[];
77
- star: string[];
78
- hamburger: string[];
79
- growVertical: string[];
80
- growHorizontal: string[];
81
- balloon: string[];
82
- noise: string[];
83
- bounce: string[];
84
- boxBounce: string[];
85
- circle: string[];
86
- arc: string[];
87
- arrow: string[];
88
- bouncingBar: string[];
89
- };
90
- constructor(targetFPS?: number);
91
- /**
92
- * Create and register a spinner animation
93
- */
94
- createSpinner(id: string, message?: string, frames?: string[]): SpinnerAnimation;
95
- /**
96
- * Create and register a progress animation
97
- */
98
- createProgress(id: string, current: number, total: number, duration?: number): ProgressAnimation;
99
- /**
100
- * Update progress animation target
101
- */
102
- updateProgress(id: string, newTarget: number): void;
103
- /**
104
- * Create and register an elapsed time animation
105
- */
106
- createElapsed(id: string, startTime?: number): ElapsedAnimation;
107
- /**
108
- * Create and register a transition animation
109
- */
110
- createTransition(id: string, from: unknown, to: unknown, property: string, duration?: number, easing?: EasingFunction): TransitionAnimation;
111
- /**
112
- * Register an animation
113
- */
114
- register(animation: Animation): void;
115
- /**
116
- * Unregister an animation
117
- */
118
- unregister(id: string): void;
119
- /**
120
- * Start the animation loop
121
- */
122
- private start;
123
- /**
124
- * Stop the animation loop
125
- */
126
- private stop;
127
- /**
128
- * Main animation tick
129
- */
130
- private tick;
131
- /**
132
- * Update animation based on type
133
- */
134
- private updateAnimation;
135
- /**
136
- * Update spinner animation
137
- */
138
- private updateSpinner;
139
- /**
140
- * Update progress animation
141
- */
142
- private updateProgressAnimation;
143
- /**
144
- * Update elapsed time animation
145
- */
146
- private updateElapsed;
147
- /**
148
- * Update transition animation
149
- */
150
- private updateTransition;
151
- /**
152
- * Complete an animation
153
- */
154
- private completeAnimation;
155
- /**
156
- * Get current progress value with easing
157
- */
158
- private getCurrentProgressValue;
159
- /**
160
- * Format elapsed time
161
- */
162
- private formatElapsedTime;
163
- /**
164
- * Get animation by ID
165
- */
166
- getAnimation(id: string): Animation | undefined;
167
- /**
168
- * Get all active animations
169
- */
170
- getActiveAnimations(): Animation[];
171
- /**
172
- * Check if scheduler is running
173
- */
174
- isActive(): boolean;
175
- /**
176
- * Get target FPS
177
- */
178
- getTargetFPS(): number;
179
- /**
180
- * Set target FPS
181
- */
182
- setTargetFPS(fps: number): void;
183
- /**
184
- * Clear all animations
185
- */
186
- clearAll(): void;
187
- /**
188
- * Dispose of the scheduler
189
- */
190
- dispose(): void;
191
- }
192
- //# sourceMappingURL=AnimationScheduler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnimationScheduler.d.ts","sourceRoot":"","sources":["../../../src/ui/animation/AnimationScheduler.ts"],"names":[],"mappings":"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"}
@@ -1,432 +0,0 @@
1
- /**
2
- * AnimationScheduler - Coordinates animations, spinners, progress bars, and elapsed time
3
- * Provides frame-based animation updates and smooth transitions
4
- */
5
- import { EventEmitter } from 'events';
6
- import { performance } from 'perf_hooks';
7
- export class AnimationScheduler extends EventEmitter {
8
- animations = new Map();
9
- animationLoop = null;
10
- targetFPS = 30;
11
- lastFrameTime = 0;
12
- frameInterval;
13
- isRunning = false;
14
- // Predefined easing functions
15
- static Easing = {
16
- linear: (t) => t,
17
- easeInQuad: (t) => t * t,
18
- easeOutQuad: (t) => t * (2 - t),
19
- easeInOutQuad: (t) => (t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t),
20
- easeInCubic: (t) => t * t * t,
21
- easeOutCubic: (t) => --t * t * t + 1,
22
- easeInOutCubic: (t) => t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,
23
- easeOutElastic: (t) => {
24
- const p = 0.3;
25
- return Math.pow(2, -10 * t) * Math.sin((t - p / 4) * (2 * Math.PI) / p) + 1;
26
- },
27
- };
28
- // Predefined spinner frames
29
- static SpinnerFrames = {
30
- dots: ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'],
31
- dots2: ['⣾', '⣽', '⣻', '⢿', '⡿', '⣟', '⣯', '⣷'],
32
- dots3: ['⠋', '⠙', '⠚', '⠞', '⠖', '⠦', '⠴', '⠲', '⠳', '⠓'],
33
- line: ['-', '\\', '|', '/'],
34
- pipe: ['┤', '┘', '┴', '└', '├', '┌', '┬', '┐'],
35
- simpleDots: ['. ', '.. ', '...', ' '],
36
- simpleDotsScrolling: ['. ', '.. ', '...', ' ..', ' .', ' '],
37
- star: ['✶', '✸', '✹', '✺', '✹', '✷'],
38
- hamburger: ['☱', '☲', '☴'],
39
- growVertical: ['▁', '▃', '▄', '▅', '▆', '▇', '▆', '▅', '▄', '▃'],
40
- growHorizontal: ['▏', '▎', '▍', '▌', '▋', '▊', '▉', '▊', '▋', '▌', '▍', '▎'],
41
- balloon: [' ', '.', 'o', 'O', '@', '*', ' '],
42
- noise: ['▓', '▒', '░'],
43
- bounce: ['⠁', '⠂', '⠄', '⠂'],
44
- boxBounce: ['▖', '▘', '▝', '▗'],
45
- circle: ['◜', '◠', '◝', '◞', '◡', '◟'],
46
- arc: ['◜', '◠', '◝', '◞', '◡', '◟'],
47
- arrow: ['←', '↖', '↑', '↗', '→', '↘', '↓', '↙'],
48
- bouncingBar: [
49
- '[ ]',
50
- '[= ]',
51
- '[== ]',
52
- '[=== ]',
53
- '[ ===]',
54
- '[ ==]',
55
- '[ =]',
56
- '[ ]',
57
- '[ =]',
58
- '[ ==]',
59
- '[ ===]',
60
- '[====]',
61
- '[=== ]',
62
- '[== ]',
63
- '[= ]',
64
- ],
65
- };
66
- constructor(targetFPS = 30) {
67
- super();
68
- this.targetFPS = targetFPS;
69
- this.frameInterval = 1000 / targetFPS;
70
- }
71
- /**
72
- * Create and register a spinner animation
73
- */
74
- createSpinner(id, message, frames = AnimationScheduler.SpinnerFrames.dots) {
75
- const animation = {
76
- id,
77
- type: 'spinner',
78
- startTime: performance.now(),
79
- fps: 10, // Spinners typically run at 10 FPS
80
- frameCount: frames.length,
81
- currentFrame: 0,
82
- data: {
83
- frames,
84
- message,
85
- },
86
- };
87
- this.register(animation);
88
- return animation;
89
- }
90
- /**
91
- * Create and register a progress animation
92
- */
93
- createProgress(id, current, total, duration = 500) {
94
- const animation = {
95
- id,
96
- type: 'progress',
97
- startTime: performance.now(),
98
- duration,
99
- fps: 60, // Smooth progress animations at 60 FPS
100
- frameCount: Math.ceil((duration / 1000) * 60),
101
- currentFrame: 0,
102
- data: {
103
- current,
104
- target: current,
105
- total,
106
- },
107
- easing: AnimationScheduler.Easing.easeOutQuad,
108
- };
109
- this.register(animation);
110
- return animation;
111
- }
112
- /**
113
- * Update progress animation target
114
- */
115
- updateProgress(id, newTarget) {
116
- const animation = this.animations.get(id);
117
- if (!animation || animation.type !== 'progress')
118
- return;
119
- animation.data.current = this.getCurrentProgressValue(animation);
120
- animation.data.target = newTarget;
121
- animation.startTime = performance.now();
122
- animation.currentFrame = 0;
123
- }
124
- /**
125
- * Create and register an elapsed time animation
126
- */
127
- createElapsed(id, startTime = Date.now()) {
128
- const animation = {
129
- id,
130
- type: 'elapsed',
131
- startTime: performance.now(),
132
- fps: 1, // Update once per second
133
- frameCount: Infinity,
134
- currentFrame: 0,
135
- data: {
136
- startTime,
137
- format: this.formatElapsedTime,
138
- },
139
- };
140
- this.register(animation);
141
- return animation;
142
- }
143
- /**
144
- * Create and register a transition animation
145
- */
146
- createTransition(id, from, to, property, duration = 300, easing) {
147
- const animation = {
148
- id,
149
- type: 'transition',
150
- startTime: performance.now(),
151
- duration,
152
- fps: 60,
153
- frameCount: Math.ceil((duration / 1000) * 60),
154
- currentFrame: 0,
155
- data: {
156
- from,
157
- to,
158
- property,
159
- },
160
- easing: easing || AnimationScheduler.Easing.easeInOutQuad,
161
- };
162
- this.register(animation);
163
- return animation;
164
- }
165
- /**
166
- * Register an animation
167
- */
168
- register(animation) {
169
- this.animations.set(animation.id, animation);
170
- // Start the animation loop if not running
171
- if (!this.isRunning && this.animations.size > 0) {
172
- this.start();
173
- }
174
- this.emit('animation:registered', animation);
175
- }
176
- /**
177
- * Unregister an animation
178
- */
179
- unregister(id) {
180
- const animation = this.animations.get(id);
181
- if (animation) {
182
- this.animations.delete(id);
183
- this.emit('animation:unregistered', animation);
184
- // Stop the loop if no animations remain
185
- if (this.animations.size === 0) {
186
- this.stop();
187
- }
188
- }
189
- }
190
- /**
191
- * Start the animation loop
192
- */
193
- start() {
194
- if (this.isRunning)
195
- return;
196
- this.isRunning = true;
197
- this.lastFrameTime = performance.now();
198
- this.animationLoop = setInterval(() => this.tick(), this.frameInterval);
199
- this.emit('scheduler:start');
200
- }
201
- /**
202
- * Stop the animation loop
203
- */
204
- stop() {
205
- if (!this.isRunning)
206
- return;
207
- if (this.animationLoop) {
208
- clearInterval(this.animationLoop);
209
- this.animationLoop = null;
210
- }
211
- this.isRunning = false;
212
- this.emit('scheduler:stop');
213
- }
214
- /**
215
- * Main animation tick
216
- */
217
- tick() {
218
- const now = performance.now();
219
- const deltaTime = now - this.lastFrameTime;
220
- // Process each animation
221
- for (const [, animation] of this.animations) {
222
- // Check if animation should update based on its FPS
223
- const animationInterval = 1000 / animation.fps;
224
- const elapsedTime = now - animation.startTime;
225
- const expectedFrame = Math.floor(elapsedTime / animationInterval);
226
- if (expectedFrame > animation.currentFrame) {
227
- animation.currentFrame = expectedFrame;
228
- // Check if animation is complete
229
- if (animation.duration &&
230
- elapsedTime >= animation.duration &&
231
- animation.frameCount !== Infinity) {
232
- this.completeAnimation(animation);
233
- continue;
234
- }
235
- // Update animation
236
- this.updateAnimation(animation, elapsedTime);
237
- // Call frame callback
238
- if (animation.onFrame) {
239
- animation.onFrame(animation);
240
- }
241
- this.emit('animation:frame', animation);
242
- }
243
- }
244
- this.lastFrameTime = now;
245
- this.emit('scheduler:tick', { deltaTime, animationCount: this.animations.size });
246
- }
247
- /**
248
- * Update animation based on type
249
- */
250
- updateAnimation(animation, elapsedTime) {
251
- switch (animation.type) {
252
- case 'spinner':
253
- this.updateSpinner(animation);
254
- break;
255
- case 'progress':
256
- this.updateProgressAnimation(animation, elapsedTime);
257
- break;
258
- case 'elapsed':
259
- this.updateElapsed(animation);
260
- break;
261
- case 'transition':
262
- this.updateTransition(animation, elapsedTime);
263
- break;
264
- }
265
- }
266
- /**
267
- * Update spinner animation
268
- */
269
- updateSpinner(animation) {
270
- const frameIndex = animation.currentFrame % animation.data.frames.length;
271
- this.emit('spinner:frame', {
272
- id: animation.id,
273
- frame: animation.data.frames[frameIndex],
274
- message: animation.data.message,
275
- });
276
- }
277
- /**
278
- * Update progress animation
279
- */
280
- updateProgressAnimation(animation, elapsedTime) {
281
- if (!animation.duration)
282
- return;
283
- const progress = Math.min(elapsedTime / animation.duration, 1);
284
- const easedProgress = animation.easing ? animation.easing(progress) : progress;
285
- const { current, target, total } = animation.data;
286
- const newValue = current + (target - current) * easedProgress;
287
- const percentage = Math.round((newValue / total) * 100);
288
- this.emit('progress:update', {
289
- id: animation.id,
290
- value: newValue,
291
- percentage,
292
- total,
293
- formatted: animation.data.format
294
- ? animation.data.format(newValue, total)
295
- : `${percentage}%`,
296
- });
297
- }
298
- /**
299
- * Update elapsed time animation
300
- */
301
- updateElapsed(animation) {
302
- const elapsed = Date.now() - animation.data.startTime;
303
- const formatted = animation.data.format
304
- ? animation.data.format(elapsed)
305
- : this.formatElapsedTime(elapsed);
306
- this.emit('elapsed:update', {
307
- id: animation.id,
308
- elapsed,
309
- formatted,
310
- });
311
- }
312
- /**
313
- * Update transition animation
314
- */
315
- updateTransition(animation, elapsedTime) {
316
- if (!animation.duration)
317
- return;
318
- const progress = Math.min(elapsedTime / animation.duration, 1);
319
- const easedProgress = animation.easing ? animation.easing(progress) : progress;
320
- const { from, to } = animation.data;
321
- let value;
322
- if (typeof from === 'number' && typeof to === 'number') {
323
- value = from + (to - from) * easedProgress;
324
- }
325
- else {
326
- // For non-numeric values, switch at 50% progress
327
- value = easedProgress < 0.5 ? from : to;
328
- }
329
- this.emit('transition:update', {
330
- id: animation.id,
331
- property: animation.data.property,
332
- value,
333
- progress: easedProgress,
334
- });
335
- }
336
- /**
337
- * Complete an animation
338
- */
339
- completeAnimation(animation) {
340
- if (animation.onComplete) {
341
- animation.onComplete(animation);
342
- }
343
- this.emit('animation:complete', animation);
344
- this.unregister(animation.id);
345
- }
346
- /**
347
- * Get current progress value with easing
348
- */
349
- getCurrentProgressValue(animation) {
350
- const elapsedTime = performance.now() - animation.startTime;
351
- if (!animation.duration)
352
- return animation.data.target;
353
- const progress = Math.min(elapsedTime / animation.duration, 1);
354
- const easedProgress = animation.easing ? animation.easing(progress) : progress;
355
- const { current, target } = animation.data;
356
- return current + (target - current) * easedProgress;
357
- }
358
- /**
359
- * Format elapsed time
360
- */
361
- formatElapsedTime(elapsedMs) {
362
- const seconds = Math.floor(elapsedMs / 1000);
363
- const minutes = Math.floor(seconds / 60);
364
- const hours = Math.floor(minutes / 60);
365
- if (hours > 0) {
366
- return `${hours}h ${minutes % 60}m ${seconds % 60}s`;
367
- }
368
- else if (minutes > 0) {
369
- return `${minutes}m ${seconds % 60}s`;
370
- }
371
- else {
372
- return `${seconds}s`;
373
- }
374
- }
375
- /**
376
- * Get animation by ID
377
- */
378
- getAnimation(id) {
379
- return this.animations.get(id);
380
- }
381
- /**
382
- * Get all active animations
383
- */
384
- getActiveAnimations() {
385
- return Array.from(this.animations.values());
386
- }
387
- /**
388
- * Check if scheduler is running
389
- */
390
- isActive() {
391
- return this.isRunning;
392
- }
393
- /**
394
- * Get target FPS
395
- */
396
- getTargetFPS() {
397
- return this.targetFPS;
398
- }
399
- /**
400
- * Set target FPS
401
- */
402
- setTargetFPS(fps) {
403
- this.targetFPS = fps;
404
- this.frameInterval = 1000 / fps;
405
- // Restart the loop with new interval if running
406
- if (this.isRunning) {
407
- this.stop();
408
- this.start();
409
- }
410
- }
411
- /**
412
- * Clear all animations
413
- */
414
- clearAll() {
415
- for (const animation of this.animations.values()) {
416
- if (animation.onComplete) {
417
- animation.onComplete(animation);
418
- }
419
- }
420
- this.animations.clear();
421
- this.stop();
422
- this.emit('scheduler:cleared');
423
- }
424
- /**
425
- * Dispose of the scheduler
426
- */
427
- dispose() {
428
- this.clearAll();
429
- this.removeAllListeners();
430
- }
431
- }
432
- //# sourceMappingURL=AnimationScheduler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnimationScheduler.js","sourceRoot":"","sources":["../../../src/ui/animation/AnimationScheduler.ts"],"names":[],"mappings":"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"}