@ritwikamit/cl8 0.1.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +547 -0
  3. package/dist/agents/Agent.d.ts +27 -0
  4. package/dist/agents/Agent.d.ts.map +1 -0
  5. package/dist/agents/Agent.js +197 -0
  6. package/dist/agents/Agent.js.map +1 -0
  7. package/dist/agents/Executor.d.ts +12 -0
  8. package/dist/agents/Executor.d.ts.map +1 -0
  9. package/dist/agents/Executor.js +65 -0
  10. package/dist/agents/Executor.js.map +1 -0
  11. package/dist/agents/Planner.d.ts +14 -0
  12. package/dist/agents/Planner.d.ts.map +1 -0
  13. package/dist/agents/Planner.js +105 -0
  14. package/dist/agents/Planner.js.map +1 -0
  15. package/dist/agents/Reflector.d.ts +19 -0
  16. package/dist/agents/Reflector.d.ts.map +1 -0
  17. package/dist/agents/Reflector.js +97 -0
  18. package/dist/agents/Reflector.js.map +1 -0
  19. package/dist/agents/index.d.ts +5 -0
  20. package/dist/agents/index.d.ts.map +1 -0
  21. package/dist/agents/index.js +12 -0
  22. package/dist/agents/index.js.map +1 -0
  23. package/dist/bin/cl8.d.ts +3 -0
  24. package/dist/bin/cl8.d.ts.map +1 -0
  25. package/dist/bin/cl8.js +19 -0
  26. package/dist/bin/cl8.js.map +1 -0
  27. package/dist/bin/jarvis.d.ts +3 -0
  28. package/dist/bin/jarvis.d.ts.map +1 -0
  29. package/dist/bin/jarvis.js +19 -0
  30. package/dist/bin/jarvis.js.map +1 -0
  31. package/dist/cli/commands/chat.d.ts +12 -0
  32. package/dist/cli/commands/chat.d.ts.map +1 -0
  33. package/dist/cli/commands/chat.js +52 -0
  34. package/dist/cli/commands/chat.js.map +1 -0
  35. package/dist/cli/commands/config.d.ts +8 -0
  36. package/dist/cli/commands/config.d.ts.map +1 -0
  37. package/dist/cli/commands/config.js +69 -0
  38. package/dist/cli/commands/config.js.map +1 -0
  39. package/dist/cli/commands/init.d.ts +2 -0
  40. package/dist/cli/commands/init.d.ts.map +1 -0
  41. package/dist/cli/commands/init.js +90 -0
  42. package/dist/cli/commands/init.js.map +1 -0
  43. package/dist/cli/commands/session.d.ts +6 -0
  44. package/dist/cli/commands/session.d.ts.map +1 -0
  45. package/dist/cli/commands/session.js +70 -0
  46. package/dist/cli/commands/session.js.map +1 -0
  47. package/dist/cli/hooks/useHistory.d.ts +14 -0
  48. package/dist/cli/hooks/useHistory.d.ts.map +1 -0
  49. package/dist/cli/hooks/useHistory.js +67 -0
  50. package/dist/cli/hooks/useHistory.js.map +1 -0
  51. package/dist/cli/index.d.ts +3 -0
  52. package/dist/cli/index.d.ts.map +1 -0
  53. package/dist/cli/index.js +115 -0
  54. package/dist/cli/index.js.map +1 -0
  55. package/dist/config/env.d.ts +7 -0
  56. package/dist/config/env.d.ts.map +1 -0
  57. package/dist/config/env.js +56 -0
  58. package/dist/config/env.js.map +1 -0
  59. package/dist/config/index.d.ts +10 -0
  60. package/dist/config/index.d.ts.map +1 -0
  61. package/dist/config/index.js +125 -0
  62. package/dist/config/index.js.map +1 -0
  63. package/dist/core/Boot.d.ts +34 -0
  64. package/dist/core/Boot.d.ts.map +1 -0
  65. package/dist/core/Boot.js +97 -0
  66. package/dist/core/Boot.js.map +1 -0
  67. package/dist/core/Engine.d.ts +40 -0
  68. package/dist/core/Engine.d.ts.map +1 -0
  69. package/dist/core/Engine.js +127 -0
  70. package/dist/core/Engine.js.map +1 -0
  71. package/dist/core/Loop.d.ts +22 -0
  72. package/dist/core/Loop.d.ts.map +1 -0
  73. package/dist/core/Loop.js +221 -0
  74. package/dist/core/Loop.js.map +1 -0
  75. package/dist/core/index.d.ts +3 -0
  76. package/dist/core/index.d.ts.map +1 -0
  77. package/dist/core/index.js +8 -0
  78. package/dist/core/index.js.map +1 -0
  79. package/dist/index.d.ts +16 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +47 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/memory/ConversationMemory.d.ts +24 -0
  84. package/dist/memory/ConversationMemory.d.ts.map +1 -0
  85. package/dist/memory/ConversationMemory.js +134 -0
  86. package/dist/memory/ConversationMemory.js.map +1 -0
  87. package/dist/memory/SessionManager.d.ts +19 -0
  88. package/dist/memory/SessionManager.d.ts.map +1 -0
  89. package/dist/memory/SessionManager.js +104 -0
  90. package/dist/memory/SessionManager.js.map +1 -0
  91. package/dist/memory/VectorMemory.d.ts +16 -0
  92. package/dist/memory/VectorMemory.d.ts.map +1 -0
  93. package/dist/memory/VectorMemory.js +87 -0
  94. package/dist/memory/VectorMemory.js.map +1 -0
  95. package/dist/memory/index.d.ts +4 -0
  96. package/dist/memory/index.d.ts.map +1 -0
  97. package/dist/memory/index.js +10 -0
  98. package/dist/memory/index.js.map +1 -0
  99. package/dist/plugins/PluginLoader.d.ts +9 -0
  100. package/dist/plugins/PluginLoader.d.ts.map +1 -0
  101. package/dist/plugins/PluginLoader.js +86 -0
  102. package/dist/plugins/PluginLoader.js.map +1 -0
  103. package/dist/plugins/PluginManager.d.ts +18 -0
  104. package/dist/plugins/PluginManager.d.ts.map +1 -0
  105. package/dist/plugins/PluginManager.js +63 -0
  106. package/dist/plugins/PluginManager.js.map +1 -0
  107. package/dist/plugins/index.d.ts +11 -0
  108. package/dist/plugins/index.d.ts.map +1 -0
  109. package/dist/plugins/index.js +16 -0
  110. package/dist/plugins/index.js.map +1 -0
  111. package/dist/providers/BaseProvider.d.ts +17 -0
  112. package/dist/providers/BaseProvider.d.ts.map +1 -0
  113. package/dist/providers/BaseProvider.js +33 -0
  114. package/dist/providers/BaseProvider.js.map +1 -0
  115. package/dist/providers/GeminiProvider.d.ts +14 -0
  116. package/dist/providers/GeminiProvider.d.ts.map +1 -0
  117. package/dist/providers/GeminiProvider.js +79 -0
  118. package/dist/providers/GeminiProvider.js.map +1 -0
  119. package/dist/providers/OllamaProvider.d.ts +14 -0
  120. package/dist/providers/OllamaProvider.d.ts.map +1 -0
  121. package/dist/providers/OllamaProvider.js +131 -0
  122. package/dist/providers/OllamaProvider.js.map +1 -0
  123. package/dist/providers/OpenAIProvider.d.ts +13 -0
  124. package/dist/providers/OpenAIProvider.d.ts.map +1 -0
  125. package/dist/providers/OpenAIProvider.js +109 -0
  126. package/dist/providers/OpenAIProvider.js.map +1 -0
  127. package/dist/providers/index.d.ts +23 -0
  128. package/dist/providers/index.d.ts.map +1 -0
  129. package/dist/providers/index.js +57 -0
  130. package/dist/providers/index.js.map +1 -0
  131. package/dist/services/AuditService.d.ts +23 -0
  132. package/dist/services/AuditService.d.ts.map +1 -0
  133. package/dist/services/AuditService.js +73 -0
  134. package/dist/services/AuditService.js.map +1 -0
  135. package/dist/services/SecurityService.d.ts +15 -0
  136. package/dist/services/SecurityService.d.ts.map +1 -0
  137. package/dist/services/SecurityService.js +60 -0
  138. package/dist/services/SecurityService.js.map +1 -0
  139. package/dist/services/ToolService.d.ts +19 -0
  140. package/dist/services/ToolService.d.ts.map +1 -0
  141. package/dist/services/ToolService.js +85 -0
  142. package/dist/services/ToolService.js.map +1 -0
  143. package/dist/services/index.d.ts +4 -0
  144. package/dist/services/index.d.ts.map +1 -0
  145. package/dist/services/index.js +10 -0
  146. package/dist/services/index.js.map +1 -0
  147. package/dist/tools/BaseTool.d.ts +12 -0
  148. package/dist/tools/BaseTool.d.ts.map +1 -0
  149. package/dist/tools/BaseTool.js +25 -0
  150. package/dist/tools/BaseTool.js.map +1 -0
  151. package/dist/tools/FileTool.d.ts +14 -0
  152. package/dist/tools/FileTool.d.ts.map +1 -0
  153. package/dist/tools/FileTool.js +136 -0
  154. package/dist/tools/FileTool.js.map +1 -0
  155. package/dist/tools/SearchTool.d.ts +10 -0
  156. package/dist/tools/SearchTool.d.ts.map +1 -0
  157. package/dist/tools/SearchTool.js +117 -0
  158. package/dist/tools/SearchTool.js.map +1 -0
  159. package/dist/tools/ShellTool.d.ts +8 -0
  160. package/dist/tools/ShellTool.d.ts.map +1 -0
  161. package/dist/tools/ShellTool.js +87 -0
  162. package/dist/tools/ShellTool.js.map +1 -0
  163. package/dist/tools/index.d.ts +10 -0
  164. package/dist/tools/index.d.ts.map +1 -0
  165. package/dist/tools/index.js +29 -0
  166. package/dist/tools/index.js.map +1 -0
  167. package/dist/types/agent.d.ts +49 -0
  168. package/dist/types/agent.d.ts.map +1 -0
  169. package/dist/types/agent.js +3 -0
  170. package/dist/types/agent.js.map +1 -0
  171. package/dist/types/config.d.ts +52 -0
  172. package/dist/types/config.d.ts.map +1 -0
  173. package/dist/types/config.js +3 -0
  174. package/dist/types/config.js.map +1 -0
  175. package/dist/types/index.d.ts +7 -0
  176. package/dist/types/index.d.ts.map +1 -0
  177. package/dist/types/index.js +23 -0
  178. package/dist/types/index.js.map +1 -0
  179. package/dist/types/memory.d.ts +47 -0
  180. package/dist/types/memory.d.ts.map +1 -0
  181. package/dist/types/memory.js +3 -0
  182. package/dist/types/memory.js.map +1 -0
  183. package/dist/types/plugin.d.ts +31 -0
  184. package/dist/types/plugin.d.ts.map +1 -0
  185. package/dist/types/plugin.js +3 -0
  186. package/dist/types/plugin.js.map +1 -0
  187. package/dist/types/provider.d.ts +43 -0
  188. package/dist/types/provider.d.ts.map +1 -0
  189. package/dist/types/provider.js +3 -0
  190. package/dist/types/provider.js.map +1 -0
  191. package/dist/types/tool.d.ts +41 -0
  192. package/dist/types/tool.d.ts.map +1 -0
  193. package/dist/types/tool.js +3 -0
  194. package/dist/types/tool.js.map +1 -0
  195. package/dist/ui/MarkdownRenderer.d.ts +17 -0
  196. package/dist/ui/MarkdownRenderer.d.ts.map +1 -0
  197. package/dist/ui/MarkdownRenderer.js +148 -0
  198. package/dist/ui/MarkdownRenderer.js.map +1 -0
  199. package/dist/ui/Spinner.d.ts +14 -0
  200. package/dist/ui/Spinner.d.ts.map +1 -0
  201. package/dist/ui/Spinner.js +79 -0
  202. package/dist/ui/Spinner.js.map +1 -0
  203. package/dist/ui/StreamingOutput.d.ts +15 -0
  204. package/dist/ui/StreamingOutput.d.ts.map +1 -0
  205. package/dist/ui/StreamingOutput.js +48 -0
  206. package/dist/ui/StreamingOutput.js.map +1 -0
  207. package/dist/ui/context-monitor.d.ts +11 -0
  208. package/dist/ui/context-monitor.d.ts.map +1 -0
  209. package/dist/ui/context-monitor.js +39 -0
  210. package/dist/ui/context-monitor.js.map +1 -0
  211. package/dist/ui/index.d.ts +14 -0
  212. package/dist/ui/index.d.ts.map +1 -0
  213. package/dist/ui/index.js +30 -0
  214. package/dist/ui/index.js.map +1 -0
  215. package/dist/ui/onboarding.d.ts +9 -0
  216. package/dist/ui/onboarding.d.ts.map +1 -0
  217. package/dist/ui/onboarding.js +40 -0
  218. package/dist/ui/onboarding.js.map +1 -0
  219. package/dist/ui/pixel-logo.d.ts +2 -0
  220. package/dist/ui/pixel-logo.d.ts.map +1 -0
  221. package/dist/ui/pixel-logo.js +32 -0
  222. package/dist/ui/pixel-logo.js.map +1 -0
  223. package/dist/ui/spinner-manager.d.ts +18 -0
  224. package/dist/ui/spinner-manager.d.ts.map +1 -0
  225. package/dist/ui/spinner-manager.js +109 -0
  226. package/dist/ui/spinner-manager.js.map +1 -0
  227. package/dist/ui/splash-screen/gradient-logo.d.ts +2 -0
  228. package/dist/ui/splash-screen/gradient-logo.d.ts.map +1 -0
  229. package/dist/ui/splash-screen/gradient-logo.js +20 -0
  230. package/dist/ui/splash-screen/gradient-logo.js.map +1 -0
  231. package/dist/ui/splash.d.ts +18 -0
  232. package/dist/ui/splash.d.ts.map +1 -0
  233. package/dist/ui/splash.js +68 -0
  234. package/dist/ui/splash.js.map +1 -0
  235. package/dist/ui/startup-tips.json +22 -0
  236. package/dist/ui/status-bar.d.ts +17 -0
  237. package/dist/ui/status-bar.d.ts.map +1 -0
  238. package/dist/ui/status-bar.js +54 -0
  239. package/dist/ui/status-bar.js.map +1 -0
  240. package/dist/ui/theme-manager.d.ts +22 -0
  241. package/dist/ui/theme-manager.d.ts.map +1 -0
  242. package/dist/ui/theme-manager.js +91 -0
  243. package/dist/ui/theme-manager.js.map +1 -0
  244. package/dist/ui/types.d.ts +19 -0
  245. package/dist/ui/types.d.ts.map +1 -0
  246. package/dist/ui/types.js +3 -0
  247. package/dist/ui/types.js.map +1 -0
  248. package/dist/ui/typing-animation.d.ts +9 -0
  249. package/dist/ui/typing-animation.d.ts.map +1 -0
  250. package/dist/ui/typing-animation.js +36 -0
  251. package/dist/ui/typing-animation.js.map +1 -0
  252. package/dist/ui/workspace-panel.d.ts +5 -0
  253. package/dist/ui/workspace-panel.d.ts.map +1 -0
  254. package/dist/ui/workspace-panel.js +30 -0
  255. package/dist/ui/workspace-panel.js.map +1 -0
  256. package/dist/utils/crypto.d.ts +6 -0
  257. package/dist/utils/crypto.d.ts.map +1 -0
  258. package/dist/utils/crypto.js +54 -0
  259. package/dist/utils/crypto.js.map +1 -0
  260. package/dist/utils/index.d.ts +3 -0
  261. package/dist/utils/index.d.ts.map +1 -0
  262. package/dist/utils/index.js +19 -0
  263. package/dist/utils/index.js.map +1 -0
  264. package/dist/utils/logger.d.ts +7 -0
  265. package/dist/utils/logger.d.ts.map +1 -0
  266. package/dist/utils/logger.js +57 -0
  267. package/dist/utils/logger.js.map +1 -0
  268. package/package.json +88 -0
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.showSplash = showSplash;
7
+ exports.showReducedSplash = showReducedSplash;
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const pixel_logo_js_1 = require("./pixel-logo.js");
10
+ const status_bar_js_1 = require("./status-bar.js");
11
+ const TIPS = [
12
+ 'Ask questions, edit files, or run commands.',
13
+ 'Use @files to reference code in your workspace.',
14
+ 'Use /help for available commands.',
15
+ ];
16
+ function delay(ms) {
17
+ return new Promise(resolve => setTimeout(resolve, ms));
18
+ }
19
+ async function showSplash(theme, config) {
20
+ const columns = process.stdout.columns || 100;
21
+ console.log();
22
+ console.log((0, pixel_logo_js_1.renderLogo)(columns));
23
+ console.log();
24
+ console.log(` ${chalk_1.default.dim('Tips:')}`);
25
+ for (let i = 0; i < TIPS.length; i++) {
26
+ await delay(80);
27
+ console.log(` ${chalk_1.default.dim(`${i + 1}.`)} ${chalk_1.default.dim(TIPS[i])}`);
28
+ }
29
+ console.log();
30
+ const steps = ['Initializing', 'Loading Agents', 'Loading Memory'];
31
+ for (const step of steps) {
32
+ process.stdout.write(` ● ${chalk_1.default.dim(step)}…\n`);
33
+ await delay(300);
34
+ }
35
+ process.stdout.write(` ● ${chalk_1.default.green('Ready')}\n`);
36
+ console.log();
37
+ const statusData = {
38
+ workspace: config.workspace.root,
39
+ model: getModelName(config),
40
+ contextPercent: 98,
41
+ provider: config.ai.defaultProvider,
42
+ };
43
+ const statusBar = new status_bar_js_1.StatusBar(theme);
44
+ statusBar.render(statusData);
45
+ }
46
+ async function showReducedSplash(theme, config) {
47
+ console.log();
48
+ console.log((0, pixel_logo_js_1.renderLogo)(process.stdout.columns || 100));
49
+ console.log();
50
+ console.log(` ${chalk_1.default.green('●')} Ready\n`);
51
+ const statusData = {
52
+ workspace: config.workspace.root,
53
+ model: getModelName(config),
54
+ contextPercent: 98,
55
+ provider: config.ai.defaultProvider,
56
+ };
57
+ const statusBar = new status_bar_js_1.StatusBar(theme);
58
+ statusBar.render(statusData);
59
+ }
60
+ function getModelName(config) {
61
+ switch (config.ai.defaultProvider) {
62
+ case 'openai': return 'GPT-4o';
63
+ case 'gemini': return 'Gemini 2.0 Flash';
64
+ case 'ollama': return 'Gemma 4';
65
+ default: return 'unknown';
66
+ }
67
+ }
68
+ //# sourceMappingURL=splash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splash.js","sourceRoot":"","sources":["../../src/ui/splash.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ [
2
+ "Use /help to discover all available commands",
3
+ "Reference files using @filename in your prompts",
4
+ "Use /clear to reset the conversation",
5
+ "Use /status to check current session info",
6
+ "Press Ctrl+C to cancel the current operation",
7
+ "Press Ctrl+D to exit CL8",
8
+ "Use multi-line input with \\\\ at end of line",
9
+ "CL8 supports OpenAI, Gemini, and Ollama providers",
10
+ "Use /mode ask|auto|deny to change approval mode",
11
+ "Use --provider to switch AI providers on the fly",
12
+ "Workspace files are protected from dangerous operations",
13
+ "Use /session to inspect your current session",
14
+ "CL8 automatically saves conversation history",
15
+ "You can resume sessions with --session <id>",
16
+ "Use /config to view or change settings",
17
+ "CL8 runs entirely locally when using Ollama",
18
+ "Use cl8 init to reconfigure your setup",
19
+ "Use cl8 doctor to check system health",
20
+ "Type naturally - CL8 understands plain English requests",
21
+ "CL8 can read, write, and edit files in your workspace"
22
+ ]
@@ -0,0 +1,17 @@
1
+ import { ThemeManager } from './theme-manager.js';
2
+ export interface StatusBarData {
3
+ workspace: string;
4
+ model: string;
5
+ contextPercent: number;
6
+ provider: string;
7
+ }
8
+ export declare class StatusBar {
9
+ private theme;
10
+ constructor(theme: ThemeManager);
11
+ render(data: StatusBarData): void;
12
+ private stripAnsi;
13
+ private shortenPath;
14
+ private formatContext;
15
+ private contextColor;
16
+ }
17
+ //# sourceMappingURL=status-bar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-bar.d.ts","sourceRoot":"","sources":["../../src/ui/status-bar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAe;gBAEhB,KAAK,EAAE,YAAY;IAI/B,MAAM,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAoBjC,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;CAKrB"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.StatusBar = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ class StatusBar {
9
+ theme;
10
+ constructor(theme) {
11
+ this.theme = theme;
12
+ }
13
+ render(data) {
14
+ const cols = process.stdout.columns || 80;
15
+ const ws = this.shortenPath(data.workspace, 28);
16
+ const modelTag = `CL8 · ${data.model}`;
17
+ const ctx = this.formatContext(data.contextPercent);
18
+ const ctxColor = this.contextColor(data.contextPercent);
19
+ const left = chalk_1.default.dim(ws);
20
+ const center = chalk_1.default.hex('#A855F7')(modelTag);
21
+ const right = ctxColor(ctx);
22
+ const totalLen = this.stripAnsi(left).length + this.stripAnsi(center).length + this.stripAnsi(right).length + 4;
23
+ const pad = cols > totalLen ? cols - totalLen : 2;
24
+ const spaces = ' '.repeat(Math.max(2, pad));
25
+ const bar = `${left}${spaces}${center}${spaces}${right}`;
26
+ process.stdout.write(chalk_1.default.hex('#333')(`─`.repeat(cols)) + '\n');
27
+ process.stdout.write(bar + '\n');
28
+ }
29
+ stripAnsi(s) {
30
+ return s.replace(/\x1b\[[0-9;]*m/g, '');
31
+ }
32
+ shortenPath(p, maxLen) {
33
+ if (p.length <= maxLen)
34
+ return p;
35
+ const parts = p.replace(/\\/g, '/').split('/');
36
+ if (parts.length <= 2)
37
+ return '…' + p.slice(-maxLen + 1);
38
+ const head = parts.slice(0, 1);
39
+ const tail = parts.slice(-2);
40
+ return `${head}/…/${tail.join('/')}`;
41
+ }
42
+ formatContext(percent) {
43
+ return `${percent}% Context Left`;
44
+ }
45
+ contextColor(percent) {
46
+ if (percent <= 10)
47
+ return chalk_1.default.red;
48
+ if (percent <= 20)
49
+ return chalk_1.default.yellow;
50
+ return chalk_1.default.green;
51
+ }
52
+ }
53
+ exports.StatusBar = StatusBar;
54
+ //# sourceMappingURL=status-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-bar.js","sourceRoot":"","sources":["../../src/ui/status-bar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { ThemeMode, ThemeColors, TerminalType } from './types.js';
2
+ export declare class ThemeManager {
3
+ private mode;
4
+ private terminalType;
5
+ private isDark;
6
+ constructor(mode?: ThemeMode);
7
+ private detectTerminal;
8
+ private detectTheme;
9
+ getColors(): ThemeColors;
10
+ get chalkColors(): {
11
+ primary: import("chalk", { with: { "resolution-mode": "import" } }).ChalkInstance;
12
+ secondary: import("chalk", { with: { "resolution-mode": "import" } }).ChalkInstance;
13
+ accent: import("chalk", { with: { "resolution-mode": "import" } }).ChalkInstance;
14
+ success: import("chalk", { with: { "resolution-mode": "import" } }).ChalkInstance;
15
+ warning: import("chalk", { with: { "resolution-mode": "import" } }).ChalkInstance;
16
+ error: import("chalk", { with: { "resolution-mode": "import" } }).ChalkInstance;
17
+ dim: import("chalk", { with: { "resolution-mode": "import" } }).ChalkInstance;
18
+ };
19
+ isDarkMode(): boolean;
20
+ getTerminalType(): TerminalType;
21
+ }
22
+ //# sourceMappingURL=theme-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-manager.d.ts","sourceRoot":"","sources":["../../src/ui/theme-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGlE,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,MAAM,CAAiB;gBAEnB,IAAI,GAAE,SAAkB;IAMpC,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,WAAW;IAcnB,SAAS,IAAI,WAAW;IAyBxB,IAAI,WAAW;;;;;;;;MAUd;IAED,UAAU,IAAI,OAAO;IAIrB,eAAe,IAAI,YAAY;CAGhC"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ThemeManager = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ class ThemeManager {
9
+ mode = 'auto';
10
+ terminalType = 'unknown';
11
+ isDark = true;
12
+ constructor(mode = 'auto') {
13
+ this.mode = mode;
14
+ this.detectTerminal();
15
+ this.detectTheme();
16
+ }
17
+ detectTerminal() {
18
+ const term = process.env.TERM_PROGRAM || '';
19
+ const shell = process.env.SHELL || '';
20
+ const os = process.platform;
21
+ if (term.includes('vscode'))
22
+ this.terminalType = 'linux';
23
+ else if (term.includes('windows-terminal') || process.env.WT_SESSION)
24
+ this.terminalType = 'windows-terminal';
25
+ else if (os === 'win32') {
26
+ this.terminalType = process.env.PSModulePath ? 'powershell' : 'cmd';
27
+ }
28
+ else if (os === 'darwin')
29
+ this.terminalType = 'macos';
30
+ else
31
+ this.terminalType = 'linux';
32
+ }
33
+ detectTheme() {
34
+ if (this.mode === 'dark') {
35
+ this.isDark = true;
36
+ return;
37
+ }
38
+ if (this.mode === 'light') {
39
+ this.isDark = false;
40
+ return;
41
+ }
42
+ const colorScheme = process.env.COLORFGBG || '';
43
+ const termTheme = process.env.TERM_THEME || process.env.COLOR_SCHEME || '';
44
+ this.isDark = !(colorScheme.includes('light') ||
45
+ termTheme.includes('light') ||
46
+ termTheme.includes('white'));
47
+ }
48
+ getColors() {
49
+ if (this.isDark) {
50
+ return {
51
+ primary: '#6C5CE7',
52
+ secondary: '#A29BFE',
53
+ accent: '#00CEC9',
54
+ success: '#00B894',
55
+ warning: '#FDCB6E',
56
+ error: '#E17055',
57
+ dim: '#636E72',
58
+ border: '#2D3436',
59
+ };
60
+ }
61
+ return {
62
+ primary: '#6C5CE7',
63
+ secondary: '#A29BFE',
64
+ accent: '#00CEC9',
65
+ success: '#00B894',
66
+ warning: '#FDCB6E',
67
+ error: '#E17055',
68
+ dim: '#B2BEC3',
69
+ border: '#DFE6E9',
70
+ };
71
+ }
72
+ get chalkColors() {
73
+ return {
74
+ primary: this.isDark ? chalk_1.default.hex('#6C5CE7') : chalk_1.default.hex('#5B4CC4'),
75
+ secondary: this.isDark ? chalk_1.default.hex('#A29BFE') : chalk_1.default.hex('#6C5CE7'),
76
+ accent: this.isDark ? chalk_1.default.hex('#00CEC9') : chalk_1.default.hex('#00B894'),
77
+ success: chalk_1.default.green,
78
+ warning: chalk_1.default.yellow,
79
+ error: chalk_1.default.red,
80
+ dim: this.isDark ? chalk_1.default.dim : chalk_1.default.dim,
81
+ };
82
+ }
83
+ isDarkMode() {
84
+ return this.isDark;
85
+ }
86
+ getTerminalType() {
87
+ return this.terminalType;
88
+ }
89
+ }
90
+ exports.ThemeManager = ThemeManager;
91
+ //# sourceMappingURL=theme-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-manager.js","sourceRoot":"","sources":["../../src/ui/theme-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export type ThemeMode = 'dark' | 'light' | 'auto';
2
+ export type TerminalType = 'windows-terminal' | 'powershell' | 'cmd' | 'linux' | 'macos' | 'unknown';
3
+ export interface ThemeColors {
4
+ primary: string;
5
+ secondary: string;
6
+ accent: string;
7
+ success: string;
8
+ warning: string;
9
+ error: string;
10
+ dim: string;
11
+ border: string;
12
+ }
13
+ export interface UIState {
14
+ reducedMotion: boolean;
15
+ highContrast: boolean;
16
+ noSplash: boolean;
17
+ themeMode: ThemeMode;
18
+ }
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ui/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAElD,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,YAAY,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAErG,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;CACtB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ui/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ export declare class TypingAnimation {
2
+ private reducedMotion;
3
+ constructor(reducedMotion?: boolean);
4
+ private delay;
5
+ typeText(text: string, perChar?: number): Promise<void>;
6
+ typeLine(text: string, perChar?: number): Promise<void>;
7
+ typeLines(lines: string[], perChar?: number, lineDelay?: number): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=typing-animation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typing-animation.d.ts","sourceRoot":"","sources":["../../src/ui/typing-animation.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAU;gBAEnB,aAAa,UAAQ;IAIjC,OAAO,CAAC,KAAK;IAKP,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,SAAK,EAAE,SAAS,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC;CAM9E"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TypingAnimation = void 0;
4
+ class TypingAnimation {
5
+ reducedMotion;
6
+ constructor(reducedMotion = false) {
7
+ this.reducedMotion = reducedMotion;
8
+ }
9
+ delay(ms) {
10
+ if (this.reducedMotion)
11
+ return Promise.resolve();
12
+ return new Promise(resolve => setTimeout(resolve, ms));
13
+ }
14
+ async typeText(text, perChar = 30) {
15
+ if (this.reducedMotion) {
16
+ process.stdout.write(text);
17
+ return;
18
+ }
19
+ for (const char of text) {
20
+ process.stdout.write(char);
21
+ await this.delay(perChar + Math.random() * 10);
22
+ }
23
+ }
24
+ async typeLine(text, perChar = 30) {
25
+ await this.typeText(text, perChar);
26
+ process.stdout.write('\n');
27
+ }
28
+ async typeLines(lines, perChar = 25, lineDelay = 80) {
29
+ for (const line of lines) {
30
+ await this.typeLine(line, perChar);
31
+ await this.delay(lineDelay);
32
+ }
33
+ }
34
+ }
35
+ exports.TypingAnimation = TypingAnimation;
36
+ //# sourceMappingURL=typing-animation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typing-animation.js","sourceRoot":"","sources":["../../src/ui/typing-animation.ts"],"names":[],"mappings":";;;AAAA,MAAa,eAAe;IAClB,aAAa,CAAU;IAE/B,YAAY,aAAa,GAAG,KAAK;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,EAAU;QACtB,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QACjD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,OAAO,GAAG,EAAE;QACvC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,OAAO,GAAG,EAAE;QACvC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAe,EAAE,OAAO,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE;QAC3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACnC,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;CACF;AAnCD,0CAmCC"}
@@ -0,0 +1,5 @@
1
+ export declare class WorkspacePanel {
2
+ display(workspacePath: string): void;
3
+ private shortenPath;
4
+ }
5
+ //# sourceMappingURL=workspace-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-panel.d.ts","sourceRoot":"","sources":["../../src/ui/workspace-panel.ts"],"names":[],"mappings":"AAGA,qBAAa,cAAc;IACzB,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAYpC,OAAO,CAAC,WAAW;CAQpB"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.WorkspacePanel = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ class WorkspacePanel {
9
+ display(workspacePath) {
10
+ const home = process.env.USERPROFILE || process.env.HOME || '';
11
+ let displayPath = workspacePath;
12
+ if (home && displayPath.startsWith(home)) {
13
+ displayPath = '~' + displayPath.slice(home.length);
14
+ }
15
+ const shortened = this.shortenPath(displayPath, 50);
16
+ console.log(` ${chalk_1.default.dim('📁')} ${chalk_1.default.dim(shortened)}`);
17
+ }
18
+ shortenPath(p, maxLen) {
19
+ if (p.length <= maxLen)
20
+ return p;
21
+ const parts = p.replace(/\\/g, '/').split('/');
22
+ if (parts.length <= 2)
23
+ return '...' + p.slice(-maxLen + 3);
24
+ const head = parts.slice(0, 1);
25
+ const tail = parts.slice(-2);
26
+ return `${head}/.../${tail.join('/')}`;
27
+ }
28
+ }
29
+ exports.WorkspacePanel = WorkspacePanel;
30
+ //# sourceMappingURL=workspace-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-panel.js","sourceRoot":"","sources":["../../src/ui/workspace-panel.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,MAAa,cAAc;IACzB,OAAO,CAAC,aAAqB;QAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/D,IAAI,WAAW,GAAG,aAAa,CAAC;QAEhC,IAAI,IAAI,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,WAAW,GAAG,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC;IAEO,WAAW,CAAC,CAAS,EAAE,MAAc;QAC3C,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM;YAAE,OAAO,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO,GAAG,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACzC,CAAC;CACF;AArBD,wCAqBC"}
@@ -0,0 +1,6 @@
1
+ export declare function encrypt(text: string, secret: string): string;
2
+ export declare function decrypt(encryptedText: string, secret: string): string;
3
+ export declare function generateId(length?: number): string;
4
+ export declare function hashToken(token: string): string;
5
+ export declare function obfuscateKey(key: string): string;
6
+ //# sourceMappingURL=crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"AAWA,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAU5D;AAED,wBAAgB,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAkBrE;AAED,wBAAgB,UAAU,CAAC,MAAM,GAAE,MAAW,GAAG,MAAM,CAEtD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGhD"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.encrypt = encrypt;
7
+ exports.decrypt = decrypt;
8
+ exports.generateId = generateId;
9
+ exports.hashToken = hashToken;
10
+ exports.obfuscateKey = obfuscateKey;
11
+ const node_crypto_1 = __importDefault(require("node:crypto"));
12
+ const ALGORITHM = 'aes-256-gcm';
13
+ const IV_LENGTH = 16;
14
+ const TAG_LENGTH = 16;
15
+ const KEY_LENGTH = 32;
16
+ function deriveKey(secret) {
17
+ return node_crypto_1.default.scryptSync(secret, 'cl8-salt', KEY_LENGTH);
18
+ }
19
+ function encrypt(text, secret) {
20
+ const key = deriveKey(secret);
21
+ const iv = node_crypto_1.default.randomBytes(IV_LENGTH);
22
+ const cipher = node_crypto_1.default.createCipheriv(ALGORITHM, key, iv);
23
+ let encrypted = cipher.update(text, 'utf8', 'hex');
24
+ encrypted += cipher.final('hex');
25
+ const tag = cipher.getAuthTag();
26
+ return `${iv.toString('hex')}:${tag.toString('hex')}:${encrypted}`;
27
+ }
28
+ function decrypt(encryptedText, secret) {
29
+ const parts = encryptedText.split(':');
30
+ if (parts.length !== 3) {
31
+ throw new Error('Invalid encrypted text format');
32
+ }
33
+ const iv = Buffer.from(parts[0], 'hex');
34
+ const tag = Buffer.from(parts[1], 'hex');
35
+ const encrypted = parts[2];
36
+ const key = deriveKey(secret);
37
+ const decipher = node_crypto_1.default.createDecipheriv(ALGORITHM, key, iv);
38
+ decipher.setAuthTag(tag);
39
+ let decrypted = decipher.update(encrypted, 'hex', 'utf8');
40
+ decrypted += decipher.final('utf8');
41
+ return decrypted;
42
+ }
43
+ function generateId(length = 21) {
44
+ return node_crypto_1.default.randomBytes(length).toString('base64url');
45
+ }
46
+ function hashToken(token) {
47
+ return node_crypto_1.default.createHash('sha256').update(token).digest('hex');
48
+ }
49
+ function obfuscateKey(key) {
50
+ if (key.length <= 8)
51
+ return '***';
52
+ return key.slice(0, 4) + '...' + key.slice(-4);
53
+ }
54
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":";;;;;AAWA,0BAUC;AAED,0BAkBC;AAED,gCAEC;AAED,8BAEC;AAED,oCAGC;AAtDD,8DAAiC;AAEjC,MAAM,SAAS,GAAG,aAAa,CAAC;AAChC,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,SAAS,SAAS,CAAC,MAAc;IAC/B,OAAO,qBAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAC3D,CAAC;AAED,SAAgB,OAAO,CAAC,IAAY,EAAE,MAAc;IAClD,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,qBAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,qBAAM,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAEzD,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACnD,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAEhC,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;AACrE,CAAC;AAED,SAAgB,OAAO,CAAC,aAAqB,EAAE,MAAc;IAC3D,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAE9B,MAAM,QAAQ,GAAG,qBAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC7D,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAEzB,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1D,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAEpC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,UAAU,CAAC,SAAiB,EAAE;IAC5C,OAAO,qBAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,SAAS,CAAC,KAAa;IACrC,OAAO,qBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,SAAgB,YAAY,CAAC,GAAW;IACtC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './crypto.js';
2
+ export * from './logger.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./crypto.js"), exports);
18
+ __exportStar(require("./logger.js"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,8CAA4B"}
@@ -0,0 +1,7 @@
1
+ import winston from 'winston';
2
+ import { LogLevel } from '../types/config.js';
3
+ declare let logger: winston.Logger;
4
+ export declare function createLogger(level?: LogLevel): winston.Logger;
5
+ export declare function getLogger(): winston.Logger;
6
+ export { logger };
7
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAyB9C,QAAA,IAAI,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;AAE3B,wBAAgB,YAAY,CAAC,KAAK,GAAE,QAAiB,GAAG,OAAO,CAAC,MAAM,CA2BrE;AAED,wBAAgB,SAAS,IAAI,OAAO,CAAC,MAAM,CAK1C;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.logger = void 0;
7
+ exports.createLogger = createLogger;
8
+ exports.getLogger = getLogger;
9
+ const winston_1 = __importDefault(require("winston"));
10
+ const node_path_1 = __importDefault(require("node:path"));
11
+ const node_fs_1 = __importDefault(require("node:fs"));
12
+ const LOG_DIR = node_path_1.default.resolve(process.cwd(), 'logs');
13
+ if (!node_fs_1.default.existsSync(LOG_DIR)) {
14
+ node_fs_1.default.mkdirSync(LOG_DIR, { recursive: true });
15
+ }
16
+ const logFormat = winston_1.default.format.combine(winston_1.default.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss.SSS' }), winston_1.default.format.errors({ stack: true }), winston_1.default.format.printf(({ timestamp, level, message, ...meta }) => {
17
+ const metaStr = Object.keys(meta).length ? ` ${JSON.stringify(meta)}` : '';
18
+ return `[${timestamp}] ${level.toUpperCase().padEnd(7)}: ${message}${metaStr}`;
19
+ }));
20
+ const consoleFormat = winston_1.default.format.combine(winston_1.default.format.timestamp({ format: 'HH:mm:ss' }), winston_1.default.format.colorize(), winston_1.default.format.printf(({ timestamp, level, message }) => {
21
+ return `${timestamp} ${level}: ${message}`;
22
+ }));
23
+ let logger;
24
+ function createLogger(level = 'info') {
25
+ if (logger)
26
+ return logger;
27
+ exports.logger = logger = winston_1.default.createLogger({
28
+ level,
29
+ transports: [
30
+ new winston_1.default.transports.File({
31
+ filename: node_path_1.default.join(LOG_DIR, 'error.log'),
32
+ level: 'error',
33
+ format: logFormat,
34
+ maxsize: 5 * 1024 * 1024,
35
+ maxFiles: 5,
36
+ }),
37
+ new winston_1.default.transports.File({
38
+ filename: node_path_1.default.join(LOG_DIR, 'combined.log'),
39
+ format: logFormat,
40
+ maxsize: 5 * 1024 * 1024,
41
+ maxFiles: 5,
42
+ }),
43
+ new winston_1.default.transports.Console({
44
+ format: consoleFormat,
45
+ silent: true,
46
+ }),
47
+ ],
48
+ });
49
+ return logger;
50
+ }
51
+ function getLogger() {
52
+ if (!logger) {
53
+ return createLogger();
54
+ }
55
+ return logger;
56
+ }
57
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;;;;AA8BA,oCA2BC;AAED,8BAKC;AAhED,sDAA8B;AAC9B,0DAA6B;AAC7B,sDAAyB;AAGzB,MAAM,OAAO,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;AAEpD,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5B,iBAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,SAAS,GAAG,iBAAO,CAAC,MAAM,CAAC,OAAO,CACtC,iBAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,EAC/D,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EACtC,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,OAAO,IAAI,SAAS,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,OAAO,EAAE,CAAC;AACjF,CAAC,CAAC,CACH,CAAC;AAEF,MAAM,aAAa,GAAG,iBAAO,CAAC,MAAM,CAAC,OAAO,CAC1C,iBAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAChD,iBAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IACtD,OAAO,GAAG,SAAS,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;AAC7C,CAAC,CAAC,CACH,CAAC;AAEF,IAAI,MAAsB,CAAC;AAE3B,SAAgB,YAAY,CAAC,QAAkB,MAAM;IACnD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,iBAAA,MAAM,GAAG,iBAAO,CAAC,YAAY,CAAC;QAC5B,KAAK;QACL,UAAU,EAAE;YACV,IAAI,iBAAO,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC1B,QAAQ,EAAE,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;gBACzC,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;gBACxB,QAAQ,EAAE,CAAC;aACZ,CAAC;YACF,IAAI,iBAAO,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC1B,QAAQ,EAAE,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC;gBAC5C,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;gBACxB,QAAQ,EAAE,CAAC;aACZ,CAAC;YACF,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC7B,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,IAAI;aACb,CAAC;SACH;KACF,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,SAAS;IACvB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,YAAY,EAAE,CAAC;IACxB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}