@oaysus/cli 0.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 (243) hide show
  1. package/README.md +166 -0
  2. package/bin/oaysus.js +6 -0
  3. package/dist/cli.d.ts +11 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +174 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/commands/login.d.ts +2 -0
  8. package/dist/commands/login.d.ts.map +1 -0
  9. package/dist/commands/login.js +75 -0
  10. package/dist/commands/login.js.map +1 -0
  11. package/dist/commands/logout.d.ts +2 -0
  12. package/dist/commands/logout.d.ts.map +1 -0
  13. package/dist/commands/logout.js +23 -0
  14. package/dist/commands/logout.js.map +1 -0
  15. package/dist/commands/whoami.d.ts +2 -0
  16. package/dist/commands/whoami.d.ts.map +1 -0
  17. package/dist/commands/whoami.js +44 -0
  18. package/dist/commands/whoami.js.map +1 -0
  19. package/dist/components/App.d.ts +43 -0
  20. package/dist/components/App.d.ts.map +1 -0
  21. package/dist/components/App.js +63 -0
  22. package/dist/components/App.js.map +1 -0
  23. package/dist/components/BuildProgress.d.ts +16 -0
  24. package/dist/components/BuildProgress.d.ts.map +1 -0
  25. package/dist/components/BuildProgress.js +42 -0
  26. package/dist/components/BuildProgress.js.map +1 -0
  27. package/dist/components/ErrorMessage.d.ts +13 -0
  28. package/dist/components/ErrorMessage.d.ts.map +1 -0
  29. package/dist/components/ErrorMessage.js +29 -0
  30. package/dist/components/ErrorMessage.js.map +1 -0
  31. package/dist/components/FileList.d.ts +13 -0
  32. package/dist/components/FileList.d.ts.map +1 -0
  33. package/dist/components/FileList.js +25 -0
  34. package/dist/components/FileList.js.map +1 -0
  35. package/dist/components/Header.d.ts +12 -0
  36. package/dist/components/Header.d.ts.map +1 -0
  37. package/dist/components/Header.js +18 -0
  38. package/dist/components/Header.js.map +1 -0
  39. package/dist/components/LastCommand.d.ts +9 -0
  40. package/dist/components/LastCommand.d.ts.map +1 -0
  41. package/dist/components/LastCommand.js +39 -0
  42. package/dist/components/LastCommand.js.map +1 -0
  43. package/dist/components/Logo.d.ts +14 -0
  44. package/dist/components/Logo.d.ts.map +1 -0
  45. package/dist/components/Logo.js +44 -0
  46. package/dist/components/Logo.js.map +1 -0
  47. package/dist/components/ProgressBar.d.ts +13 -0
  48. package/dist/components/ProgressBar.d.ts.map +1 -0
  49. package/dist/components/ProgressBar.js +20 -0
  50. package/dist/components/ProgressBar.js.map +1 -0
  51. package/dist/components/SlashCommands.d.ts +17 -0
  52. package/dist/components/SlashCommands.d.ts.map +1 -0
  53. package/dist/components/SlashCommands.js +59 -0
  54. package/dist/components/SlashCommands.js.map +1 -0
  55. package/dist/components/Spinner.d.ts +13 -0
  56. package/dist/components/Spinner.d.ts.map +1 -0
  57. package/dist/components/Spinner.js +16 -0
  58. package/dist/components/Spinner.js.map +1 -0
  59. package/dist/components/StatusCard.d.ts +14 -0
  60. package/dist/components/StatusCard.d.ts.map +1 -0
  61. package/dist/components/StatusCard.js +40 -0
  62. package/dist/components/StatusCard.js.map +1 -0
  63. package/dist/components/SuccessMessage.d.ts +12 -0
  64. package/dist/components/SuccessMessage.d.ts.map +1 -0
  65. package/dist/components/SuccessMessage.js +18 -0
  66. package/dist/components/SuccessMessage.js.map +1 -0
  67. package/dist/components/UploadProgress.d.ts +13 -0
  68. package/dist/components/UploadProgress.d.ts.map +1 -0
  69. package/dist/components/UploadProgress.js +40 -0
  70. package/dist/components/UploadProgress.js.map +1 -0
  71. package/dist/components/ValidationProgress.d.ts +12 -0
  72. package/dist/components/ValidationProgress.d.ts.map +1 -0
  73. package/dist/components/ValidationProgress.js +44 -0
  74. package/dist/components/ValidationProgress.js.map +1 -0
  75. package/dist/index.d.ts +7 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +21 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/lib/core/framework-registry.d.ts +27 -0
  80. package/dist/lib/core/framework-registry.d.ts.map +1 -0
  81. package/dist/lib/core/framework-registry.js +67 -0
  82. package/dist/lib/core/framework-registry.js.map +1 -0
  83. package/dist/lib/core/types.d.ts +124 -0
  84. package/dist/lib/core/types.d.ts.map +1 -0
  85. package/dist/lib/core/types.js +6 -0
  86. package/dist/lib/core/types.js.map +1 -0
  87. package/dist/lib/project-generator.d.ts +15 -0
  88. package/dist/lib/project-generator.d.ts.map +1 -0
  89. package/dist/lib/project-generator.js +286 -0
  90. package/dist/lib/project-generator.js.map +1 -0
  91. package/dist/lib/push.d.ts +20 -0
  92. package/dist/lib/push.d.ts.map +1 -0
  93. package/dist/lib/push.js +222 -0
  94. package/dist/lib/push.js.map +1 -0
  95. package/dist/lib/react/builder.d.ts +45 -0
  96. package/dist/lib/react/builder.d.ts.map +1 -0
  97. package/dist/lib/react/builder.js +381 -0
  98. package/dist/lib/react/builder.js.map +1 -0
  99. package/dist/lib/react/bundler.d.ts +104 -0
  100. package/dist/lib/react/bundler.d.ts.map +1 -0
  101. package/dist/lib/react/bundler.js +654 -0
  102. package/dist/lib/react/bundler.js.map +1 -0
  103. package/dist/lib/react/config.d.ts +34 -0
  104. package/dist/lib/react/config.d.ts.map +1 -0
  105. package/dist/lib/react/config.js +64 -0
  106. package/dist/lib/react/config.js.map +1 -0
  107. package/dist/lib/react/import-map.d.ts +54 -0
  108. package/dist/lib/react/import-map.d.ts.map +1 -0
  109. package/dist/lib/react/import-map.js +187 -0
  110. package/dist/lib/react/import-map.js.map +1 -0
  111. package/dist/lib/shared/auth-middleware.d.ts +29 -0
  112. package/dist/lib/shared/auth-middleware.d.ts.map +1 -0
  113. package/dist/lib/shared/auth-middleware.js +48 -0
  114. package/dist/lib/shared/auth-middleware.js.map +1 -0
  115. package/dist/lib/shared/auth.d.ts +50 -0
  116. package/dist/lib/shared/auth.d.ts.map +1 -0
  117. package/dist/lib/shared/auth.js +243 -0
  118. package/dist/lib/shared/auth.js.map +1 -0
  119. package/dist/lib/shared/cdn-downloader.d.ts +30 -0
  120. package/dist/lib/shared/cdn-downloader.d.ts.map +1 -0
  121. package/dist/lib/shared/cdn-downloader.js +126 -0
  122. package/dist/lib/shared/cdn-downloader.js.map +1 -0
  123. package/dist/lib/shared/command-history.d.ts +29 -0
  124. package/dist/lib/shared/command-history.d.ts.map +1 -0
  125. package/dist/lib/shared/command-history.js +73 -0
  126. package/dist/lib/shared/command-history.js.map +1 -0
  127. package/dist/lib/shared/commands.d.ts +24 -0
  128. package/dist/lib/shared/commands.d.ts.map +1 -0
  129. package/dist/lib/shared/commands.js +63 -0
  130. package/dist/lib/shared/commands.js.map +1 -0
  131. package/dist/lib/shared/config.d.ts +40 -0
  132. package/dist/lib/shared/config.d.ts.map +1 -0
  133. package/dist/lib/shared/config.js +69 -0
  134. package/dist/lib/shared/config.js.map +1 -0
  135. package/dist/lib/shared/file-utils.d.ts +45 -0
  136. package/dist/lib/shared/file-utils.d.ts.map +1 -0
  137. package/dist/lib/shared/file-utils.js +88 -0
  138. package/dist/lib/shared/file-utils.js.map +1 -0
  139. package/dist/lib/shared/import-analyzer.d.ts +49 -0
  140. package/dist/lib/shared/import-analyzer.d.ts.map +1 -0
  141. package/dist/lib/shared/import-analyzer.js +268 -0
  142. package/dist/lib/shared/import-analyzer.js.map +1 -0
  143. package/dist/lib/shared/path-builder.d.ts +55 -0
  144. package/dist/lib/shared/path-builder.d.ts.map +1 -0
  145. package/dist/lib/shared/path-builder.js +66 -0
  146. package/dist/lib/shared/path-builder.js.map +1 -0
  147. package/dist/lib/shared/uploader.d.ts +79 -0
  148. package/dist/lib/shared/uploader.d.ts.map +1 -0
  149. package/dist/lib/shared/uploader.js +340 -0
  150. package/dist/lib/shared/uploader.js.map +1 -0
  151. package/dist/lib/shared/zip-creator.d.ts +18 -0
  152. package/dist/lib/shared/zip-creator.d.ts.map +1 -0
  153. package/dist/lib/shared/zip-creator.js +131 -0
  154. package/dist/lib/shared/zip-creator.js.map +1 -0
  155. package/dist/lib/svelte/builder.d.ts +37 -0
  156. package/dist/lib/svelte/builder.d.ts.map +1 -0
  157. package/dist/lib/svelte/builder.js +364 -0
  158. package/dist/lib/svelte/builder.js.map +1 -0
  159. package/dist/lib/svelte/bundler.d.ts +92 -0
  160. package/dist/lib/svelte/bundler.d.ts.map +1 -0
  161. package/dist/lib/svelte/bundler.js +499 -0
  162. package/dist/lib/svelte/bundler.js.map +1 -0
  163. package/dist/lib/svelte/config.d.ts +22 -0
  164. package/dist/lib/svelte/config.d.ts.map +1 -0
  165. package/dist/lib/svelte/config.js +65 -0
  166. package/dist/lib/svelte/config.js.map +1 -0
  167. package/dist/lib/svelte/import-map.d.ts +42 -0
  168. package/dist/lib/svelte/import-map.d.ts.map +1 -0
  169. package/dist/lib/svelte/import-map.js +197 -0
  170. package/dist/lib/svelte/import-map.js.map +1 -0
  171. package/dist/lib/template-manager.d.ts +33 -0
  172. package/dist/lib/template-manager.d.ts.map +1 -0
  173. package/dist/lib/template-manager.js +69 -0
  174. package/dist/lib/template-manager.js.map +1 -0
  175. package/dist/lib/validator.d.ts +10 -0
  176. package/dist/lib/validator.d.ts.map +1 -0
  177. package/dist/lib/validator.js +343 -0
  178. package/dist/lib/validator.js.map +1 -0
  179. package/dist/lib/vue/builder.d.ts +37 -0
  180. package/dist/lib/vue/builder.d.ts.map +1 -0
  181. package/dist/lib/vue/builder.js +366 -0
  182. package/dist/lib/vue/builder.js.map +1 -0
  183. package/dist/lib/vue/bundler.d.ts +78 -0
  184. package/dist/lib/vue/bundler.d.ts.map +1 -0
  185. package/dist/lib/vue/bundler.js +208 -0
  186. package/dist/lib/vue/bundler.js.map +1 -0
  187. package/dist/lib/vue/config.d.ts +18 -0
  188. package/dist/lib/vue/config.d.ts.map +1 -0
  189. package/dist/lib/vue/config.js +42 -0
  190. package/dist/lib/vue/config.js.map +1 -0
  191. package/dist/lib/vue/import-map.d.ts +42 -0
  192. package/dist/lib/vue/import-map.d.ts.map +1 -0
  193. package/dist/lib/vue/import-map.js +156 -0
  194. package/dist/lib/vue/import-map.js.map +1 -0
  195. package/dist/screens/BuildScreen.d.ts +8 -0
  196. package/dist/screens/BuildScreen.d.ts.map +1 -0
  197. package/dist/screens/BuildScreen.js +158 -0
  198. package/dist/screens/BuildScreen.js.map +1 -0
  199. package/dist/screens/CreateScreen.d.ts +12 -0
  200. package/dist/screens/CreateScreen.d.ts.map +1 -0
  201. package/dist/screens/CreateScreen.js +305 -0
  202. package/dist/screens/CreateScreen.js.map +1 -0
  203. package/dist/screens/InitScreen.d.ts +11 -0
  204. package/dist/screens/InitScreen.d.ts.map +1 -0
  205. package/dist/screens/InitScreen.js +339 -0
  206. package/dist/screens/InitScreen.js.map +1 -0
  207. package/dist/screens/LoginScreen.d.ts +15 -0
  208. package/dist/screens/LoginScreen.d.ts.map +1 -0
  209. package/dist/screens/LoginScreen.js +427 -0
  210. package/dist/screens/LoginScreen.js.map +1 -0
  211. package/dist/screens/LogoutScreen.d.ts +15 -0
  212. package/dist/screens/LogoutScreen.d.ts.map +1 -0
  213. package/dist/screens/LogoutScreen.js +187 -0
  214. package/dist/screens/LogoutScreen.js.map +1 -0
  215. package/dist/screens/PushScreen.d.ts +12 -0
  216. package/dist/screens/PushScreen.d.ts.map +1 -0
  217. package/dist/screens/PushScreen.js +546 -0
  218. package/dist/screens/PushScreen.js.map +1 -0
  219. package/dist/screens/ValidateScreen.d.ts +12 -0
  220. package/dist/screens/ValidateScreen.d.ts.map +1 -0
  221. package/dist/screens/ValidateScreen.js +193 -0
  222. package/dist/screens/ValidateScreen.js.map +1 -0
  223. package/dist/screens/WelcomeScreen.d.ts +39 -0
  224. package/dist/screens/WelcomeScreen.d.ts.map +1 -0
  225. package/dist/screens/WelcomeScreen.js +297 -0
  226. package/dist/screens/WelcomeScreen.js.map +1 -0
  227. package/dist/screens/WhoamiScreen.d.ts +14 -0
  228. package/dist/screens/WhoamiScreen.d.ts.map +1 -0
  229. package/dist/screens/WhoamiScreen.js +180 -0
  230. package/dist/screens/WhoamiScreen.js.map +1 -0
  231. package/dist/types/index.d.ts +40 -0
  232. package/dist/types/index.d.ts.map +1 -0
  233. package/dist/types/index.js +2 -0
  234. package/dist/types/index.js.map +1 -0
  235. package/dist/types/templates.d.ts +55 -0
  236. package/dist/types/templates.d.ts.map +1 -0
  237. package/dist/types/templates.js +6 -0
  238. package/dist/types/templates.js.map +1 -0
  239. package/dist/types/validation.d.ts +108 -0
  240. package/dist/types/validation.d.ts.map +1 -0
  241. package/dist/types/validation.js +6 -0
  242. package/dist/types/validation.js.map +1 -0
  243. package/package.json +94 -0
@@ -0,0 +1,63 @@
1
+ import React, { useState } from 'react';
2
+ import { WelcomeScreen } from '../screens/WelcomeScreen.js';
3
+ import { InitScreen } from '../screens/InitScreen.js';
4
+ import { CreateScreen } from '../screens/CreateScreen.js';
5
+ import { LoginScreen } from '../screens/LoginScreen.js';
6
+ import { WhoamiScreen } from '../screens/WhoamiScreen.js';
7
+ import { LogoutScreen } from '../screens/LogoutScreen.js';
8
+ import { ValidateScreen } from '../screens/ValidateScreen.js';
9
+ import { PushScreen } from '../screens/PushScreen.js';
10
+ /**
11
+ * App Component
12
+ * Main router for the CLI application
13
+ * Manages navigation between different screens and persistent history
14
+ */
15
+ export const App = ({ initialScreen, onExit }) => {
16
+ const [currentScreen, setCurrentScreen] = useState(initialScreen || { type: 'welcome' });
17
+ // Persistent session history across all screens
18
+ const [sessionHistory, setSessionHistory] = useState([]);
19
+ // Add entry to session history
20
+ const addToHistory = (entry) => {
21
+ if (Array.isArray(entry)) {
22
+ setSessionHistory(prev => [...prev, ...entry]);
23
+ }
24
+ else {
25
+ setSessionHistory(prev => [...prev, entry]);
26
+ }
27
+ };
28
+ // Remove entry from session history by spinner ID
29
+ const removeFromHistory = (spinnerId) => {
30
+ setSessionHistory(prev => prev.filter(entry => entry.spinnerId !== spinnerId));
31
+ };
32
+ // Navigate to a specific screen
33
+ const navigateTo = (screen) => {
34
+ setCurrentScreen(screen);
35
+ };
36
+ // Return to welcome screen
37
+ const returnToWelcome = () => {
38
+ setCurrentScreen({ type: 'welcome' });
39
+ };
40
+ // Render the current screen
41
+ switch (currentScreen.type) {
42
+ case 'welcome':
43
+ return (React.createElement(WelcomeScreen, { onNavigate: navigateTo, onExit: onExit, sessionHistory: sessionHistory, addToHistory: addToHistory }));
44
+ case 'init':
45
+ return (React.createElement(InitScreen, { projectName: currentScreen.projectName, onExit: returnToWelcome, sessionHistory: sessionHistory, addToHistory: addToHistory }));
46
+ case 'create':
47
+ return (React.createElement(CreateScreen, { componentName: currentScreen.componentName, projectPath: currentScreen.projectPath || '.', onExit: returnToWelcome, sessionHistory: sessionHistory, addToHistory: addToHistory }));
48
+ case 'login':
49
+ return (React.createElement(LoginScreen, { onExit: returnToWelcome, sessionHistory: sessionHistory, addToHistory: addToHistory, removeFromHistory: removeFromHistory }));
50
+ case 'status':
51
+ return (React.createElement(WhoamiScreen, { onExit: returnToWelcome, sessionHistory: sessionHistory, addToHistory: addToHistory }));
52
+ case 'logout':
53
+ return (React.createElement(LogoutScreen, { onExit: returnToWelcome, sessionHistory: sessionHistory, addToHistory: addToHistory, removeFromHistory: removeFromHistory }));
54
+ case 'validate':
55
+ return (React.createElement(ValidateScreen, { projectPath: currentScreen.projectPath || '.', dryRun: currentScreen.dryRun || false, onExit: returnToWelcome, sessionHistory: sessionHistory, addToHistory: addToHistory }));
56
+ case 'push':
57
+ return (React.createElement(PushScreen, { projectPath: currentScreen.projectPath || '.', onExit: returnToWelcome, sessionHistory: sessionHistory, addToHistory: addToHistory, removeFromHistory: removeFromHistory }));
58
+ default:
59
+ return (React.createElement(WelcomeScreen, { onNavigate: navigateTo, onExit: onExit }));
60
+ }
61
+ };
62
+ export default App;
63
+ //# sourceMappingURL=App.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/components/App.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ interface BuildProgressProps {
3
+ components: Array<{
4
+ name: string;
5
+ status: 'pending' | 'building' | 'done' | 'error';
6
+ size?: number;
7
+ error?: string;
8
+ }>;
9
+ }
10
+ /**
11
+ * Build Progress Component
12
+ * Displays build progress for each component
13
+ */
14
+ export declare const BuildProgress: React.FC<BuildProgressProps>;
15
+ export default BuildProgress;
16
+ //# sourceMappingURL=BuildProgress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuildProgress.d.ts","sourceRoot":"","sources":["../../src/components/BuildProgress.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,kBAAkB;IAC1B,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;QAClD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ;AAeD;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAkCtD,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,42 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ /**
4
+ * Format bytes to human-readable format
5
+ */
6
+ function formatBytes(bytes) {
7
+ if (bytes === 0)
8
+ return '0 B';
9
+ const k = 1024;
10
+ const sizes = ['B', 'KB', 'MB'];
11
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
12
+ return `${(bytes / Math.pow(k, i)).toFixed(1)} ${sizes[i]}`;
13
+ }
14
+ /**
15
+ * Build Progress Component
16
+ * Displays build progress for each component
17
+ */
18
+ export const BuildProgress = ({ components }) => {
19
+ return (React.createElement(Box, { flexDirection: "column" }, components.map((component) => (React.createElement(Box, { key: component.name, marginBottom: 1 },
20
+ component.status === 'pending' && (React.createElement(Text, { dimColor: true },
21
+ " \u22EF ",
22
+ component.name)),
23
+ component.status === 'building' && (React.createElement(Text, { color: "cyan" },
24
+ " \u2699 Building ",
25
+ component.name,
26
+ "...")),
27
+ component.status === 'done' && (React.createElement(Text, { color: "green" },
28
+ "\u2713 ",
29
+ component.name,
30
+ component.size && (React.createElement(Text, { dimColor: true },
31
+ " (",
32
+ formatBytes(component.size),
33
+ ")")))),
34
+ component.status === 'error' && (React.createElement(Text, { color: "red" },
35
+ "\u2717 ",
36
+ component.name,
37
+ component.error && (React.createElement(Text, { dimColor: true },
38
+ " - ",
39
+ component.error)))))))));
40
+ };
41
+ export default BuildProgress;
42
+ //# sourceMappingURL=BuildProgress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuildProgress.js","sourceRoot":"","sources":["../../src/components/BuildProgress.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAWhC;;GAEG;AACH,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE9B,MAAM,CAAC,GAAG,IAAI,CAAC;IACf,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpD,OAAO,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAiC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;IAC5E,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,IACxB,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAC7B,oBAAC,GAAG,IAAC,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;QACtC,SAAS,CAAC,MAAM,KAAK,SAAS,IAAI,CACjC,oBAAC,IAAI,IAAC,QAAQ;;YAAM,SAAS,CAAC,IAAI,CAAQ,CAC3C;QAEA,SAAS,CAAC,MAAM,KAAK,UAAU,IAAI,CAClC,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM;;YAAe,SAAS,CAAC,IAAI;kBAAW,CAC3D;QAEA,SAAS,CAAC,MAAM,KAAK,MAAM,IAAI,CAC9B,oBAAC,IAAI,IAAC,KAAK,EAAC,OAAO;;YACd,SAAS,CAAC,IAAI;YAChB,SAAS,CAAC,IAAI,IAAI,CACjB,oBAAC,IAAI,IAAC,QAAQ;;gBAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC;oBAAS,CACvD,CACI,CACR;QAEA,SAAS,CAAC,MAAM,KAAK,OAAO,IAAI,CAC/B,oBAAC,IAAI,IAAC,KAAK,EAAC,KAAK;;YACZ,SAAS,CAAC,IAAI;YAChB,SAAS,CAAC,KAAK,IAAI,CAClB,oBAAC,IAAI,IAAC,QAAQ;;gBAAK,SAAS,CAAC,KAAK,CAAQ,CAC3C,CACI,CACR,CACG,CACP,CAAC,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ interface ErrorMessageProps {
3
+ message: string;
4
+ details?: string[];
5
+ suggestion?: string;
6
+ }
7
+ /**
8
+ * ErrorMessage Component
9
+ * Displays an error message with optional details and suggestions
10
+ */
11
+ export declare const ErrorMessage: React.FC<ErrorMessageProps>;
12
+ export default ErrorMessage;
13
+ //# sourceMappingURL=ErrorMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorMessage.d.ts","sourceRoot":"","sources":["../../src/components/ErrorMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyCpD,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ /**
4
+ * ErrorMessage Component
5
+ * Displays an error message with optional details and suggestions
6
+ */
7
+ export const ErrorMessage = ({ message, details = [], suggestion, }) => {
8
+ return (React.createElement(Box, { flexDirection: "column", marginTop: 1 },
9
+ React.createElement(Box, { marginBottom: 1 },
10
+ React.createElement(Text, { color: "red", bold: true },
11
+ "\u2717 ",
12
+ message)),
13
+ details.length > 0 && (React.createElement(Box, { flexDirection: "column", marginLeft: 1, marginBottom: 1 }, details.map((detail, index) => {
14
+ // Preserve formatting for lines that look like code (start with spaces or special chars)
15
+ if (detail.startsWith(' ') || detail.startsWith('╔') || detail.startsWith('║') || detail.startsWith('╚') || detail === '') {
16
+ return (React.createElement(Text, { key: index, color: "yellow" }, detail));
17
+ }
18
+ // Regular error messages
19
+ return (React.createElement(Text, { key: index, color: "gray" },
20
+ "\u2022 ",
21
+ detail));
22
+ }))),
23
+ suggestion && (React.createElement(Box, { marginLeft: 2 },
24
+ React.createElement(Text, { color: "yellow" },
25
+ "\uD83D\uDCA1 ",
26
+ suggestion)))));
27
+ };
28
+ export default ErrorMessage;
29
+ //# sourceMappingURL=ErrorMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorMessage.js","sourceRoot":"","sources":["../../src/components/ErrorMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAQhC;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAgC,CAAC,EACxD,OAAO,EACP,OAAO,GAAG,EAAE,EACZ,UAAU,GACX,EAAE,EAAE;IACH,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC;QACtC,oBAAC,GAAG,IAAC,YAAY,EAAE,CAAC;YAClB,oBAAC,IAAI,IAAC,KAAK,EAAC,KAAK,EAAC,IAAI;;gBACjB,OAAO,CACL,CACH;QACL,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CACrB,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,IACvD,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC7B,yFAAyF;YACzF,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;gBAC3H,OAAO,CACL,oBAAC,IAAI,IAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAC,QAAQ,IAC7B,MAAM,CACF,CACR,CAAC;YACJ,CAAC;YACD,yBAAyB;YACzB,OAAO,CACL,oBAAC,IAAI,IAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAC,MAAM;;gBACzB,MAAM,CACJ,CACR,CAAC;QACJ,CAAC,CAAC,CACE,CACP;QACA,UAAU,IAAI,CACb,oBAAC,GAAG,IAAC,UAAU,EAAE,CAAC;YAChB,oBAAC,IAAI,IAAC,KAAK,EAAC,QAAQ;;gBACd,UAAU,CACT,CACH,CACP,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ interface FileListProps {
3
+ files: string[];
4
+ maxDisplay?: number;
5
+ title?: string;
6
+ }
7
+ /**
8
+ * FileList Component
9
+ * Displays a list of files with optional truncation
10
+ */
11
+ export declare const FileList: React.FC<FileListProps>;
12
+ export default FileList;
13
+ //# sourceMappingURL=FileList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileList.d.ts","sourceRoot":"","sources":["../../src/components/FileList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAuB5C,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ /**
4
+ * FileList Component
5
+ * Displays a list of files with optional truncation
6
+ */
7
+ export const FileList = ({ files, maxDisplay = 10, title = 'Files' }) => {
8
+ const displayFiles = files.slice(0, maxDisplay);
9
+ const remaining = files.length - displayFiles.length;
10
+ return (React.createElement(Box, { flexDirection: "column" },
11
+ React.createElement(Text, { bold: true },
12
+ title,
13
+ " (",
14
+ files.length,
15
+ ")"),
16
+ displayFiles.map((file, i) => (React.createElement(Text, { key: i, dimColor: true },
17
+ "\u2022 ",
18
+ file))),
19
+ remaining > 0 && (React.createElement(Text, { dimColor: true },
20
+ "... and ",
21
+ remaining,
22
+ " more"))));
23
+ };
24
+ export default FileList;
25
+ //# sourceMappingURL=FileList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileList.js","sourceRoot":"","sources":["../../src/components/FileList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAQhC;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAA4B,CAAC,EAChD,KAAK,EACL,UAAU,GAAG,EAAE,EACf,KAAK,GAAG,OAAO,EAChB,EAAE,EAAE;IACH,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;IAErD,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ;QACzB,oBAAC,IAAI,IAAC,IAAI;YAAE,KAAK;;YAAI,KAAK,CAAC,MAAM;gBAAS;QACzC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC7B,oBAAC,IAAI,IAAC,GAAG,EAAE,CAAC,EAAE,QAAQ;;YACjB,IAAI,CACF,CACR,CAAC;QACD,SAAS,GAAG,CAAC,IAAI,CAChB,oBAAC,IAAI,IAAC,QAAQ;;YACH,SAAS;oBACb,CACR,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ interface HeaderProps {
3
+ subtitle?: string;
4
+ showLogo?: boolean;
5
+ }
6
+ /**
7
+ * Header Component
8
+ * Displays the Oaysus CLI branding with gradient effect
9
+ */
10
+ export declare const Header: React.FC<HeaderProps>;
11
+ export default Header;
12
+ //# sourceMappingURL=Header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../src/components/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAmBxC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ import Gradient from 'ink-gradient';
4
+ import BigText from 'ink-big-text';
5
+ /**
6
+ * Header Component
7
+ * Displays the Oaysus CLI branding with gradient effect
8
+ */
9
+ export const Header = ({ subtitle, showLogo = true }) => {
10
+ return (React.createElement(Box, { flexDirection: "column", marginBottom: 1 },
11
+ showLogo && (React.createElement(Box, { marginBottom: 1 },
12
+ React.createElement(Gradient, { name: "rainbow" },
13
+ React.createElement(BigText, { text: "OAYSUS", font: "tiny" })))),
14
+ subtitle && (React.createElement(Box, null,
15
+ React.createElement(Text, { bold: true, color: "cyan" }, subtitle)))));
16
+ };
17
+ export default Header;
18
+ //# sourceMappingURL=Header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/components/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,QAAQ,MAAM,cAAc,CAAC;AACpC,OAAO,OAAO,MAAM,cAAc,CAAC;AAOnC;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAA0B,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,EAAE,EAAE,EAAE;IAC7E,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC;QACxC,QAAQ,IAAI,CACX,oBAAC,GAAG,IAAC,YAAY,EAAE,CAAC;YAClB,oBAAC,QAAQ,IAAC,IAAI,EAAC,SAAS;gBACtB,oBAAC,OAAO,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,GAAG,CAC5B,CACP,CACP;QACA,QAAQ,IAAI,CACX,oBAAC,GAAG;YACF,oBAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,IACpB,QAAQ,CACJ,CACH,CACP,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ /**
3
+ * LastCommand Component
4
+ * Displays the last executed command with timestamp
5
+ * Shows a helpful message about re-running or entering new commands
6
+ */
7
+ export declare const LastCommand: React.FC;
8
+ export default LastCommand;
9
+ //# sourceMappingURL=LastCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LastCommand.d.ts","sourceRoot":"","sources":["../../src/components/LastCommand.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAkC/B,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,39 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ import { getLastCommand, formatRelativeTime } from '../lib/shared/command-history.js';
4
+ /**
5
+ * LastCommand Component
6
+ * Displays the last executed command with timestamp
7
+ * Shows a helpful message about re-running or entering new commands
8
+ */
9
+ export const LastCommand = () => {
10
+ const [lastCommand, setLastCommand] = React.useState(null);
11
+ const [timestamp, setTimestamp] = React.useState(null);
12
+ React.useEffect(() => {
13
+ getLastCommand().then(entry => {
14
+ if (entry) {
15
+ setLastCommand(entry.command);
16
+ setTimestamp(entry.timestamp);
17
+ }
18
+ });
19
+ }, []);
20
+ if (!lastCommand || !timestamp) {
21
+ return null;
22
+ }
23
+ const relativeTime = formatRelativeTime(timestamp);
24
+ return (React.createElement(Box, { flexDirection: "column", paddingY: 1 },
25
+ React.createElement(Box, null,
26
+ React.createElement(Text, { color: "yellow" }, "\uD83D\uDCA1 "),
27
+ React.createElement(Text, { dimColor: true }, "Last: "),
28
+ React.createElement(Text, { color: "cyan" }, lastCommand),
29
+ React.createElement(Text, { dimColor: true },
30
+ " (",
31
+ relativeTime,
32
+ ")")),
33
+ React.createElement(Box, { paddingLeft: 3 },
34
+ React.createElement(Text, { dimColor: true }, "Press "),
35
+ React.createElement(Text, { color: "cyan" }, "\u21B5"),
36
+ React.createElement(Text, { dimColor: true }, " to run again, or type a new command"))));
37
+ };
38
+ export default LastCommand;
39
+ //# sourceMappingURL=LastCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LastCommand.js","sourceRoot":"","sources":["../../src/components/LastCommand.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtF;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAa,GAAG,EAAE;IACxC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC1E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAEtE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,cAAc,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC5B,IAAI,KAAK,EAAE,CAAC;gBACV,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC9B,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAEnD,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC;QACrC,oBAAC,GAAG;YACF,oBAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,oBAAW;YAC/B,oBAAC,IAAI,IAAC,QAAQ,mBAAc;YAC5B,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,IAAE,WAAW,CAAQ;YACvC,oBAAC,IAAI,IAAC,QAAQ;;gBAAI,YAAY;oBAAS,CACnC;QACN,oBAAC,GAAG,IAAC,WAAW,EAAE,CAAC;YACjB,oBAAC,IAAI,IAAC,QAAQ,mBAAc;YAC5B,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,aAAS;YAC3B,oBAAC,IAAI,IAAC,QAAQ,iDAA4C,CACtD,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ interface LogoProps {
3
+ version?: string;
4
+ directory?: string;
5
+ userEmail?: string | null;
6
+ }
7
+ /**
8
+ * Logo Component
9
+ * Displays owl icon with OAYSUS branding
10
+ * Wise mascot for the CLI
11
+ */
12
+ export declare const Logo: React.FC<LogoProps>;
13
+ export default Logo;
14
+ //# sourceMappingURL=Logo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logo.d.ts","sourceRoot":"","sources":["../../src/components/Logo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,SAAS;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;;GAIG;AACH,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAyCpC,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,44 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ import chalk from 'chalk';
4
+ /**
5
+ * Logo Component
6
+ * Displays owl icon with OAYSUS branding
7
+ * Wise mascot for the CLI
8
+ */
9
+ export const Logo = ({ version = '0.1.0', directory, userEmail }) => {
10
+ // Boxy Bot icon with gradient colors (3 lines tall) - fills vertical space
11
+ const iconLine1 = chalk.hex('#A78BFA')(' ▄████▄ '); // Top (purple)
12
+ const iconLine2 = chalk.hex('#818CF8')('▐█') + chalk.white('●') + chalk.hex('#818CF8')('██') + chalk.white('●') + chalk.hex('#818CF8')('█▌ '); // Eyes white with ears (light purple)
13
+ const iconLine3 = chalk.hex('#60A5FA')(' ██▀▀██ '); // Body (blue)
14
+ // Format directory
15
+ const displayDir = directory
16
+ ? (directory.startsWith(process.env.HOME || '')
17
+ ? `~${directory.slice((process.env.HOME || '').length)}`
18
+ : directory)
19
+ : '';
20
+ // Format login status - gray like directory
21
+ const loginStatus = userEmail
22
+ ? chalk.dim(`✓ ${userEmail}`)
23
+ : chalk.dim('✗ Not logged in');
24
+ return (React.createElement(Box, { flexDirection: "column", marginTop: 1 },
25
+ React.createElement(Box, { key: "logo-line-1" },
26
+ React.createElement(Text, null, iconLine1),
27
+ React.createElement(Text, null,
28
+ " ",
29
+ chalk.white.bold('OAYSUS'),
30
+ " ",
31
+ chalk.gray(`v${version}`))),
32
+ React.createElement(Box, { key: "logo-line-2" },
33
+ React.createElement(Text, null, iconLine2),
34
+ React.createElement(Text, null,
35
+ " ",
36
+ loginStatus)),
37
+ React.createElement(Box, { key: "logo-line-3" },
38
+ React.createElement(Text, null, iconLine3),
39
+ directory && (React.createElement(Text, null,
40
+ " ",
41
+ chalk.dim(displayDir))))));
42
+ };
43
+ export default Logo;
44
+ //# sourceMappingURL=Logo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logo.js","sourceRoot":"","sources":["../../src/components/Logo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAwB,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE;IACvF,2EAA2E;IAC3E,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,eAAe;IACpE,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,sCAAsC;IACtL,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,cAAc;IAEnE,mBAAmB;IACnB,MAAM,UAAU,GAAG,SAAS;QAC1B,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YAC3C,CAAC,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE;YACxD,CAAC,CAAC,SAAS,CAAC;QAChB,CAAC,CAAC,EAAE,CAAC;IAEP,4CAA4C;IAC5C,MAAM,WAAW,GAAG,SAAS;QAC3B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;QAC7B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAEjC,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC;QAEtC,oBAAC,GAAG,IAAC,GAAG,EAAC,aAAa;YACpB,oBAAC,IAAI,QAAE,SAAS,CAAQ;YACxB,oBAAC,IAAI;;gBAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;gBAAG,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC,CAAQ,CACnE;QAGN,oBAAC,GAAG,IAAC,GAAG,EAAC,aAAa;YACpB,oBAAC,IAAI,QAAE,SAAS,CAAQ;YACxB,oBAAC,IAAI;;gBAAG,WAAW,CAAQ,CACvB;QAGN,oBAAC,GAAG,IAAC,GAAG,EAAC,aAAa;YACpB,oBAAC,IAAI,QAAE,SAAS,CAAQ;YACvB,SAAS,IAAI,CACZ,oBAAC,IAAI;;gBAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAQ,CACvC,CACG,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ interface ProgressBarProps {
3
+ progress: number;
4
+ width?: number;
5
+ color?: string;
6
+ }
7
+ /**
8
+ * ProgressBar Component
9
+ * Displays a horizontal progress bar with percentage
10
+ */
11
+ export declare const ProgressBar: React.FC<ProgressBarProps>;
12
+ export default ProgressBar;
13
+ //# sourceMappingURL=ProgressBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../src/components/ProgressBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,gBAAgB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAiBlD,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ /**
4
+ * ProgressBar Component
5
+ * Displays a horizontal progress bar with percentage
6
+ */
7
+ export const ProgressBar = ({ progress, width = 40, color = 'cyan' }) => {
8
+ const filled = Math.round((progress / 100) * width);
9
+ const empty = width - filled;
10
+ return (React.createElement(Box, null,
11
+ React.createElement(Text, { color: color },
12
+ '█'.repeat(filled),
13
+ '░'.repeat(empty)),
14
+ React.createElement(Text, { dimColor: true },
15
+ " ",
16
+ progress,
17
+ "%")));
18
+ };
19
+ export default ProgressBar;
20
+ //# sourceMappingURL=ProgressBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../src/components/ProgressBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAQhC;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAA+B,CAAC,EACtD,QAAQ,EACR,KAAK,GAAG,EAAE,EACV,KAAK,GAAG,MAAM,EACf,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAE7B,OAAO,CACL,oBAAC,GAAG;QACF,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK;YACf,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAClB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CACb;QACP,oBAAC,IAAI,IAAC,QAAQ;;YAAG,QAAQ;gBAAS,CAC9B,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ interface SlashCommandsProps {
3
+ searchQuery?: string;
4
+ onSelect: (command: string) => void;
5
+ onCancel: () => void;
6
+ selectedIndex: number;
7
+ onNavigate: (direction: 'up' | 'down') => void;
8
+ isLoggedIn?: boolean;
9
+ }
10
+ /**
11
+ * SlashCommands
12
+ * Interactive command selection menu
13
+ * Shows when user types "/" - allows arrow key navigation and filtering
14
+ */
15
+ export declare const SlashCommands: React.FC<SlashCommandsProps>;
16
+ export default SlashCommands;
17
+ //# sourceMappingURL=SlashCommands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlashCommands.d.ts","sourceRoot":"","sources":["../../src/components/SlashCommands.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,UAAU,kBAAkB;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAuEtD,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,59 @@
1
+ import React from 'react';
2
+ import { Box, Text, useInput } from 'ink';
3
+ import chalk from 'chalk';
4
+ import { filterCommands } from '../lib/shared/commands.js';
5
+ /**
6
+ * SlashCommands
7
+ * Interactive command selection menu
8
+ * Shows when user types "/" - allows arrow key navigation and filtering
9
+ */
10
+ export const SlashCommands = ({ searchQuery = '', onSelect, onCancel, selectedIndex, onNavigate, isLoggedIn = false, }) => {
11
+ // Filter commands based on search query and login state (limit to 10)
12
+ const filteredCommands = React.useMemo(() => {
13
+ let commands = filterCommands(searchQuery);
14
+ // Filter login/logout based on auth state
15
+ commands = commands.filter(cmd => {
16
+ if (cmd.name === 'login')
17
+ return !isLoggedIn;
18
+ if (cmd.name === 'logout')
19
+ return isLoggedIn;
20
+ if (cmd.name === 'status')
21
+ return isLoggedIn;
22
+ return true;
23
+ });
24
+ return commands.slice(0, 10);
25
+ }, [searchQuery, isLoggedIn]);
26
+ // Handle Enter key to select command
27
+ useInput((input, key) => {
28
+ if (key.return && filteredCommands.length > 0) {
29
+ onSelect(filteredCommands[selectedIndex].name);
30
+ }
31
+ else if (key.upArrow) {
32
+ onNavigate('up');
33
+ }
34
+ else if (key.downArrow) {
35
+ onNavigate('down');
36
+ }
37
+ });
38
+ // Show "no results" if filtered list is empty
39
+ if (filteredCommands.length === 0) {
40
+ return (React.createElement(Box, { flexDirection: "column", paddingLeft: 2, paddingTop: 1 },
41
+ React.createElement(Text, { dimColor: true },
42
+ "No commands found matching \"",
43
+ searchQuery,
44
+ "\"")));
45
+ }
46
+ return (React.createElement(Box, { flexDirection: "column" }, filteredCommands.map((cmd, index) => {
47
+ const isSelected = index === selectedIndex;
48
+ // Build command name with args (e.g., "init [name]")
49
+ const commandWithArgs = cmd.args ? `${cmd.name} ${cmd.args}` : cmd.name;
50
+ // Pad command name to fixed width (30 chars) for alignment
51
+ const paddedCommand = commandWithArgs.padEnd(30, ' ');
52
+ return (React.createElement(Box, { key: cmd.name },
53
+ React.createElement(Text, null, isSelected ? chalk.cyan(' /') : chalk.dim(' /')),
54
+ React.createElement(Text, null, isSelected ? chalk.cyan(paddedCommand) : chalk.white(paddedCommand)),
55
+ React.createElement(Text, { dimColor: true }, cmd.description)));
56
+ })));
57
+ };
58
+ export default SlashCommands;
59
+ //# sourceMappingURL=SlashCommands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlashCommands.js","sourceRoot":"","sources":["../../src/components/SlashCommands.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ interface SpinnerProps {
3
+ message?: string;
4
+ type?: 'dots' | 'line' | 'dots2' | 'dots3';
5
+ color?: string;
6
+ }
7
+ /**
8
+ * Spinner Component
9
+ * Displays animated loading indicator with optional message
10
+ */
11
+ export declare const Spinner: React.FC<SpinnerProps>;
12
+ export default Spinner;
13
+ //# sourceMappingURL=Spinner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/components/Spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAc1C,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ import InkSpinner from 'ink-spinner';
4
+ /**
5
+ * Spinner Component
6
+ * Displays animated loading indicator with optional message
7
+ */
8
+ export const Spinner = ({ message = 'Loading...', type = 'dots', color = 'cyan', }) => {
9
+ return (React.createElement(Box, null,
10
+ React.createElement(Text, { color: color },
11
+ React.createElement(InkSpinner, { type: type }),
12
+ ' ',
13
+ message)));
14
+ };
15
+ export default Spinner;
16
+ //# sourceMappingURL=Spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../src/components/Spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,UAAU,MAAM,aAAa,CAAC;AAQrC;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAA2B,CAAC,EAC9C,OAAO,GAAG,YAAY,EACtB,IAAI,GAAG,MAAM,EACb,KAAK,GAAG,MAAM,GACf,EAAE,EAAE;IACH,OAAO,CACL,oBAAC,GAAG;QACF,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK;YAChB,oBAAC,UAAU,IAAC,IAAI,EAAE,IAAI,GAAI;YACzB,GAAG;YACH,OAAO,CACH,CACH,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ interface StatusCardProps {
3
+ title: string;
4
+ value: string;
5
+ color?: string;
6
+ borderColor?: string;
7
+ }
8
+ /**
9
+ * StatusCard Component
10
+ * Displays information in a styled bordered box
11
+ */
12
+ export declare const StatusCard: React.FC<StatusCardProps>;
13
+ export default StatusCard;
14
+ //# sourceMappingURL=StatusCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusCard.d.ts","sourceRoot":"","sources":["../../src/components/StatusCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA6ChD,CAAC;AAEF,eAAe,UAAU,CAAC"}