@calltelemetry/cli 0.6.12 → 0.7.1

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 (474) hide show
  1. package/dist/commands/appliance.d.ts +3 -0
  2. package/dist/commands/appliance.d.ts.map +1 -0
  3. package/dist/commands/appliance.js +99 -0
  4. package/dist/commands/appliance.js.map +1 -0
  5. package/dist/commands/config.d.ts.map +1 -1
  6. package/dist/commands/config.js +0 -42
  7. package/dist/commands/config.js.map +1 -1
  8. package/dist/commands/loadtest.d.ts.map +1 -1
  9. package/dist/commands/loadtest.js +214 -1
  10. package/dist/commands/loadtest.js.map +1 -1
  11. package/dist/commands/otel.d.ts +3 -0
  12. package/dist/commands/otel.d.ts.map +1 -0
  13. package/dist/commands/otel.js +89 -0
  14. package/dist/commands/otel.js.map +1 -0
  15. package/dist/commands/seed.d.ts +3 -0
  16. package/dist/commands/seed.d.ts.map +1 -0
  17. package/dist/commands/seed.js +106 -0
  18. package/dist/commands/seed.js.map +1 -0
  19. package/dist/commands/storage.d.ts +3 -0
  20. package/dist/commands/storage.d.ts.map +1 -0
  21. package/dist/commands/storage.js +66 -0
  22. package/dist/commands/storage.js.map +1 -0
  23. package/dist/commands/update.d.ts.map +1 -1
  24. package/dist/commands/update.js +19 -17
  25. package/dist/commands/update.js.map +1 -1
  26. package/dist/index.js +8 -0
  27. package/dist/index.js.map +1 -1
  28. package/dist/lib/migration-001-cgnat.d.ts +2 -0
  29. package/dist/lib/migration-001-cgnat.d.ts.map +1 -0
  30. package/dist/lib/migration-001-cgnat.js +59 -0
  31. package/dist/lib/migration-001-cgnat.js.map +1 -0
  32. package/dist/lib/migration-002-swap.d.ts +12 -0
  33. package/dist/lib/migration-002-swap.d.ts.map +1 -0
  34. package/dist/lib/migration-002-swap.js +103 -0
  35. package/dist/lib/migration-002-swap.js.map +1 -0
  36. package/dist/lib/migration-003-nm-heal.d.ts +12 -0
  37. package/dist/lib/migration-003-nm-heal.d.ts.map +1 -0
  38. package/dist/lib/migration-003-nm-heal.js +75 -0
  39. package/dist/lib/migration-003-nm-heal.js.map +1 -0
  40. package/dist/lib/migration-004-systemd-docker.d.ts +13 -0
  41. package/dist/lib/migration-004-systemd-docker.d.ts.map +1 -0
  42. package/dist/lib/migration-004-systemd-docker.js +48 -0
  43. package/dist/lib/migration-004-systemd-docker.js.map +1 -0
  44. package/dist/lib/migration-005-ssh-keys.d.ts +13 -0
  45. package/dist/lib/migration-005-ssh-keys.d.ts.map +1 -0
  46. package/dist/lib/migration-005-ssh-keys.js +49 -0
  47. package/dist/lib/migration-005-ssh-keys.js.map +1 -0
  48. package/dist/lib/migration-006-console-loglevel.d.ts +10 -0
  49. package/dist/lib/migration-006-console-loglevel.d.ts.map +1 -0
  50. package/dist/lib/migration-006-console-loglevel.js +27 -0
  51. package/dist/lib/migration-006-console-loglevel.js.map +1 -0
  52. package/dist/lib/migration-007-nm-keyfile.d.ts +10 -0
  53. package/dist/lib/migration-007-nm-keyfile.d.ts.map +1 -0
  54. package/dist/lib/migration-007-nm-keyfile.js +30 -0
  55. package/dist/lib/migration-007-nm-keyfile.js.map +1 -0
  56. package/dist/lib/migration-008-systemd-restart.d.ts +13 -0
  57. package/dist/lib/migration-008-systemd-restart.d.ts.map +1 -0
  58. package/dist/lib/migration-008-systemd-restart.js +41 -0
  59. package/dist/lib/migration-008-systemd-restart.js.map +1 -0
  60. package/dist/lib/migration-009-bind-mount-files.d.ts +11 -0
  61. package/dist/lib/migration-009-bind-mount-files.d.ts.map +1 -0
  62. package/dist/lib/migration-009-bind-mount-files.js +86 -0
  63. package/dist/lib/migration-009-bind-mount-files.js.map +1 -0
  64. package/dist/lib/migration-010-jtapi-state.d.ts +11 -0
  65. package/dist/lib/migration-010-jtapi-state.d.ts.map +1 -0
  66. package/dist/lib/migration-010-jtapi-state.js +61 -0
  67. package/dist/lib/migration-010-jtapi-state.js.map +1 -0
  68. package/dist/lib/migration-011-docker-memory-limit.d.ts +13 -0
  69. package/dist/lib/migration-011-docker-memory-limit.d.ts.map +1 -0
  70. package/dist/lib/migration-011-docker-memory-limit.js +45 -0
  71. package/dist/lib/migration-011-docker-memory-limit.js.map +1 -0
  72. package/dist/lib/migration-012-db-pool-sizes.d.ts +12 -0
  73. package/dist/lib/migration-012-db-pool-sizes.d.ts.map +1 -0
  74. package/dist/lib/migration-012-db-pool-sizes.js +64 -0
  75. package/dist/lib/migration-012-db-pool-sizes.js.map +1 -0
  76. package/dist/lib/migration-013-grafana-password.d.ts +15 -0
  77. package/dist/lib/migration-013-grafana-password.d.ts.map +1 -0
  78. package/dist/lib/migration-013-grafana-password.js +80 -0
  79. package/dist/lib/migration-013-grafana-password.js.map +1 -0
  80. package/dist/lib/migration-014-docker-firewall-backend.d.ts +16 -0
  81. package/dist/lib/migration-014-docker-firewall-backend.d.ts.map +1 -0
  82. package/dist/lib/migration-014-docker-firewall-backend.js +72 -0
  83. package/dist/lib/migration-014-docker-firewall-backend.js.map +1 -0
  84. package/dist/lib/migrations.d.ts +42 -0
  85. package/dist/lib/migrations.d.ts.map +1 -0
  86. package/dist/lib/migrations.js +231 -0
  87. package/dist/lib/migrations.js.map +1 -0
  88. package/dist/lib/otel.d.ts +7 -7
  89. package/dist/lib/otel.d.ts.map +1 -1
  90. package/dist/lib/otel.js +18 -25
  91. package/dist/lib/otel.js.map +1 -1
  92. package/dist/lib/prefs.d.ts +1 -0
  93. package/dist/lib/prefs.d.ts.map +1 -1
  94. package/dist/lib/prefs.js +1 -0
  95. package/dist/lib/prefs.js.map +1 -1
  96. package/dist/lib/prompts.d.ts +3 -0
  97. package/dist/lib/prompts.d.ts.map +1 -0
  98. package/dist/lib/prompts.js +39 -0
  99. package/dist/lib/prompts.js.map +1 -0
  100. package/dist/lib/rpc-scripts.d.ts +4 -0
  101. package/dist/lib/rpc-scripts.d.ts.map +1 -1
  102. package/dist/lib/rpc-scripts.js +235 -0
  103. package/dist/lib/rpc-scripts.js.map +1 -1
  104. package/dist/lib/secrets.d.ts +2 -2
  105. package/dist/lib/secrets.d.ts.map +1 -1
  106. package/dist/lib/secrets.js +2 -1
  107. package/dist/lib/secrets.js.map +1 -1
  108. package/dist/lib/seed/connection.d.ts +5 -0
  109. package/dist/lib/seed/connection.d.ts.map +1 -0
  110. package/dist/lib/seed/connection.js +168 -0
  111. package/dist/lib/seed/connection.js.map +1 -0
  112. package/dist/lib/seed/copy.d.ts +4 -0
  113. package/dist/lib/seed/copy.d.ts.map +1 -0
  114. package/dist/lib/seed/copy.js +74 -0
  115. package/dist/lib/seed/copy.js.map +1 -0
  116. package/dist/lib/seed/dashboard-templates.d.ts +22 -0
  117. package/dist/lib/seed/dashboard-templates.d.ts.map +1 -0
  118. package/dist/lib/seed/dashboard-templates.js +268 -0
  119. package/dist/lib/seed/dashboard-templates.js.map +1 -0
  120. package/dist/lib/seed/families.d.ts +5 -0
  121. package/dist/lib/seed/families.d.ts.map +1 -0
  122. package/dist/lib/seed/families.js +1541 -0
  123. package/dist/lib/seed/families.js.map +1 -0
  124. package/dist/lib/seed/index.d.ts +12 -0
  125. package/dist/lib/seed/index.d.ts.map +1 -0
  126. package/dist/lib/seed/index.js +327 -0
  127. package/dist/lib/seed/index.js.map +1 -0
  128. package/dist/lib/seed/presets.d.ts +5 -0
  129. package/dist/lib/seed/presets.d.ts.map +1 -0
  130. package/dist/lib/seed/presets.js +114 -0
  131. package/dist/lib/seed/presets.js.map +1 -0
  132. package/dist/lib/seed/schema/columns.d.ts +35 -0
  133. package/dist/lib/seed/schema/columns.d.ts.map +1 -0
  134. package/dist/lib/seed/schema/columns.js +497 -0
  135. package/dist/lib/seed/schema/columns.js.map +1 -0
  136. package/dist/lib/seed/schema/fingerprint.d.ts +2 -0
  137. package/dist/lib/seed/schema/fingerprint.d.ts.map +1 -0
  138. package/dist/lib/seed/schema/fingerprint.js +4 -0
  139. package/dist/lib/seed/schema/fingerprint.js.map +1 -0
  140. package/dist/lib/seed/schema/index.d.ts +4 -0
  141. package/dist/lib/seed/schema/index.d.ts.map +1 -0
  142. package/dist/lib/seed/schema/index.js +6 -0
  143. package/dist/lib/seed/schema/index.js.map +1 -0
  144. package/dist/lib/seed/schema/spec.d.ts +8 -0
  145. package/dist/lib/seed/schema/spec.d.ts.map +1 -0
  146. package/dist/lib/seed/schema/spec.js +655 -0
  147. package/dist/lib/seed/schema/spec.js.map +1 -0
  148. package/dist/lib/seed/schema/tables.d.ts +132 -0
  149. package/dist/lib/seed/schema/tables.d.ts.map +1 -0
  150. package/dist/lib/seed/schema/tables.js +37 -0
  151. package/dist/lib/seed/schema/tables.js.map +1 -0
  152. package/dist/lib/seed/store.d.ts +26 -0
  153. package/dist/lib/seed/store.d.ts.map +1 -0
  154. package/dist/lib/seed/store.js +111 -0
  155. package/dist/lib/seed/store.js.map +1 -0
  156. package/dist/lib/seed/types.d.ts +71 -0
  157. package/dist/lib/seed/types.d.ts.map +1 -0
  158. package/dist/lib/seed/types.js +2 -0
  159. package/dist/lib/seed/types.js.map +1 -0
  160. package/dist/lib/storage.d.ts +4 -0
  161. package/dist/lib/storage.d.ts.map +1 -0
  162. package/dist/lib/storage.js +36 -0
  163. package/dist/lib/storage.js.map +1 -0
  164. package/dist/lib/update-steps.d.ts.map +1 -1
  165. package/dist/lib/update-steps.js +27 -0
  166. package/dist/lib/update-steps.js.map +1 -1
  167. package/dist/lib/update.d.ts.map +1 -1
  168. package/dist/lib/update.js +28 -2
  169. package/dist/lib/update.js.map +1 -1
  170. package/dist/lib/version.d.ts +1 -1
  171. package/dist/lib/version.d.ts.map +1 -1
  172. package/dist/lib/version.js +1 -1
  173. package/dist/lib/version.js.map +1 -1
  174. package/dist/lib/xcc-loadtest-types.d.ts +232 -0
  175. package/dist/lib/xcc-loadtest-types.d.ts.map +1 -0
  176. package/dist/lib/xcc-loadtest-types.js +2 -0
  177. package/dist/lib/xcc-loadtest-types.js.map +1 -0
  178. package/dist/lib/xcc-loadtest.d.ts +4 -0
  179. package/dist/lib/xcc-loadtest.d.ts.map +1 -0
  180. package/dist/lib/xcc-loadtest.js +616 -0
  181. package/dist/lib/xcc-loadtest.js.map +1 -0
  182. package/dist/lib/xcc-overlay.d.ts +3 -0
  183. package/dist/lib/xcc-overlay.d.ts.map +1 -0
  184. package/dist/lib/xcc-overlay.js +74 -0
  185. package/dist/lib/xcc-overlay.js.map +1 -0
  186. package/dist/lib/xcc-scenarios.d.ts +8 -0
  187. package/dist/lib/xcc-scenarios.d.ts.map +1 -0
  188. package/dist/lib/xcc-scenarios.js +129 -0
  189. package/dist/lib/xcc-scenarios.js.map +1 -0
  190. package/dist/lib/xcc-xml.d.ts +18 -0
  191. package/dist/lib/xcc-xml.d.ts.map +1 -0
  192. package/dist/lib/xcc-xml.js +210 -0
  193. package/dist/lib/xcc-xml.js.map +1 -0
  194. package/dist/shell/commands/appliance-migrations.d.ts +7 -0
  195. package/dist/shell/commands/appliance-migrations.d.ts.map +1 -0
  196. package/dist/shell/commands/appliance-migrations.js +128 -0
  197. package/dist/shell/commands/appliance-migrations.js.map +1 -0
  198. package/dist/shell/commands/appliance-performance.d.ts +36 -0
  199. package/dist/shell/commands/appliance-performance.d.ts.map +1 -0
  200. package/dist/shell/commands/appliance-performance.js +221 -0
  201. package/dist/shell/commands/appliance-performance.js.map +1 -0
  202. package/dist/shell/commands/config.d.ts.map +1 -1
  203. package/dist/shell/commands/config.js +6 -5
  204. package/dist/shell/commands/config.js.map +1 -1
  205. package/dist/shell/commands/connect.d.ts.map +1 -1
  206. package/dist/shell/commands/connect.js +3 -2
  207. package/dist/shell/commands/connect.js.map +1 -1
  208. package/dist/shell/commands/db.d.ts.map +1 -1
  209. package/dist/shell/commands/db.js +5 -4
  210. package/dist/shell/commands/db.js.map +1 -1
  211. package/dist/shell/commands/debug.d.ts.map +1 -1
  212. package/dist/shell/commands/debug.js +5 -4
  213. package/dist/shell/commands/debug.js.map +1 -1
  214. package/dist/shell/commands/diag.js +10 -10
  215. package/dist/shell/commands/diag.js.map +1 -1
  216. package/dist/shell/commands/registry.d.ts.map +1 -1
  217. package/dist/shell/commands/registry.js +74 -0
  218. package/dist/shell/commands/registry.js.map +1 -1
  219. package/dist/shell/commands/secrets.d.ts.map +1 -1
  220. package/dist/shell/commands/secrets.js +2 -1
  221. package/dist/shell/commands/secrets.js.map +1 -1
  222. package/dist/shell/commands/seed.d.ts +9 -0
  223. package/dist/shell/commands/seed.d.ts.map +1 -0
  224. package/dist/shell/commands/seed.js +197 -0
  225. package/dist/shell/commands/seed.js.map +1 -0
  226. package/dist/shell/commands/services.d.ts.map +1 -1
  227. package/dist/shell/commands/services.js +5 -4
  228. package/dist/shell/commands/services.js.map +1 -1
  229. package/dist/shell/commands/test.d.ts.map +1 -1
  230. package/dist/shell/commands/test.js +3 -2
  231. package/dist/shell/commands/test.js.map +1 -1
  232. package/dist/shell/commands/users.d.ts.map +1 -1
  233. package/dist/shell/commands/users.js +9 -2
  234. package/dist/shell/commands/users.js.map +1 -1
  235. package/dist/shell/network-onboarding.d.ts +29 -7
  236. package/dist/shell/network-onboarding.d.ts.map +1 -1
  237. package/dist/shell/network-onboarding.js +305 -88
  238. package/dist/shell/network-onboarding.js.map +1 -1
  239. package/dist/ui/components/ActionBar.d.ts +13 -0
  240. package/dist/ui/components/ActionBar.d.ts.map +1 -0
  241. package/dist/ui/components/ActionBar.js +7 -0
  242. package/dist/ui/components/ActionBar.js.map +1 -0
  243. package/dist/ui/components/AppShell.d.ts +6 -1
  244. package/dist/ui/components/AppShell.d.ts.map +1 -1
  245. package/dist/ui/components/AppShell.js +32 -10
  246. package/dist/ui/components/AppShell.js.map +1 -1
  247. package/dist/ui/components/DashboardBlock.d.ts +11 -0
  248. package/dist/ui/components/DashboardBlock.d.ts.map +1 -0
  249. package/dist/ui/components/DashboardBlock.js +6 -0
  250. package/dist/ui/components/DashboardBlock.js.map +1 -0
  251. package/dist/ui/components/DataTable.d.ts +6 -1
  252. package/dist/ui/components/DataTable.d.ts.map +1 -1
  253. package/dist/ui/components/DataTable.js +71 -7
  254. package/dist/ui/components/DataTable.js.map +1 -1
  255. package/dist/ui/components/ErrorBoundary.d.ts +1 -1
  256. package/dist/ui/components/FieldList.d.ts +24 -0
  257. package/dist/ui/components/FieldList.d.ts.map +1 -0
  258. package/dist/ui/components/FieldList.js +67 -0
  259. package/dist/ui/components/FieldList.js.map +1 -0
  260. package/dist/ui/components/KeyValue.d.ts +4 -2
  261. package/dist/ui/components/KeyValue.d.ts.map +1 -1
  262. package/dist/ui/components/KeyValue.js +4 -2
  263. package/dist/ui/components/KeyValue.js.map +1 -1
  264. package/dist/ui/components/KeyboardHint.d.ts +10 -0
  265. package/dist/ui/components/KeyboardHint.d.ts.map +1 -0
  266. package/dist/ui/components/KeyboardHint.js +6 -0
  267. package/dist/ui/components/KeyboardHint.js.map +1 -0
  268. package/dist/ui/components/MenuList.d.ts +10 -0
  269. package/dist/ui/components/MenuList.d.ts.map +1 -0
  270. package/dist/ui/components/MenuList.js +7 -0
  271. package/dist/ui/components/MenuList.js.map +1 -0
  272. package/dist/ui/components/MetricsFooter.d.ts +10 -7
  273. package/dist/ui/components/MetricsFooter.d.ts.map +1 -1
  274. package/dist/ui/components/MetricsFooter.js +16 -3
  275. package/dist/ui/components/MetricsFooter.js.map +1 -1
  276. package/dist/ui/components/PaneSection.d.ts +9 -0
  277. package/dist/ui/components/PaneSection.d.ts.map +1 -0
  278. package/dist/ui/components/PaneSection.js +6 -0
  279. package/dist/ui/components/PaneSection.js.map +1 -0
  280. package/dist/ui/components/PanelState.d.ts +8 -0
  281. package/dist/ui/components/PanelState.d.ts.map +1 -0
  282. package/dist/ui/components/PanelState.js +7 -0
  283. package/dist/ui/components/PanelState.js.map +1 -0
  284. package/dist/ui/components/ScrollViewport.d.ts +16 -0
  285. package/dist/ui/components/ScrollViewport.d.ts.map +1 -0
  286. package/dist/ui/components/ScrollViewport.js +54 -0
  287. package/dist/ui/components/ScrollViewport.js.map +1 -0
  288. package/dist/ui/components/Section.js +1 -1
  289. package/dist/ui/components/Section.js.map +1 -1
  290. package/dist/ui/components/SelectMenu.d.ts.map +1 -1
  291. package/dist/ui/components/SelectMenu.js +3 -3
  292. package/dist/ui/components/SelectMenu.js.map +1 -1
  293. package/dist/ui/components/ShellOutput.d.ts +2 -1
  294. package/dist/ui/components/ShellOutput.d.ts.map +1 -1
  295. package/dist/ui/components/ShellOutput.js +6 -2
  296. package/dist/ui/components/ShellOutput.js.map +1 -1
  297. package/dist/ui/components/SplitPane.d.ts +18 -0
  298. package/dist/ui/components/SplitPane.d.ts.map +1 -0
  299. package/dist/ui/components/SplitPane.js +9 -0
  300. package/dist/ui/components/SplitPane.js.map +1 -0
  301. package/dist/ui/components/StatusList.d.ts +18 -0
  302. package/dist/ui/components/StatusList.d.ts.map +1 -0
  303. package/dist/ui/components/StatusList.js +13 -0
  304. package/dist/ui/components/StatusList.js.map +1 -0
  305. package/dist/ui/components/SummaryStrip.d.ts +9 -0
  306. package/dist/ui/components/SummaryStrip.d.ts.map +1 -0
  307. package/dist/ui/components/SummaryStrip.js +6 -0
  308. package/dist/ui/components/SummaryStrip.js.map +1 -0
  309. package/dist/ui/components/app-shell-viewport.d.ts +7 -0
  310. package/dist/ui/components/app-shell-viewport.d.ts.map +1 -0
  311. package/dist/ui/components/app-shell-viewport.js +6 -0
  312. package/dist/ui/components/app-shell-viewport.js.map +1 -0
  313. package/dist/ui/components/index.d.ts +14 -0
  314. package/dist/ui/components/index.d.ts.map +1 -1
  315. package/dist/ui/components/index.js +12 -0
  316. package/dist/ui/components/index.js.map +1 -1
  317. package/dist/ui/context/MetricsContext.d.ts.map +1 -1
  318. package/dist/ui/context/MetricsContext.js +15 -12
  319. package/dist/ui/context/MetricsContext.js.map +1 -1
  320. package/dist/ui/hooks/index.d.ts +9 -1
  321. package/dist/ui/hooks/index.d.ts.map +1 -1
  322. package/dist/ui/hooks/index.js +7 -0
  323. package/dist/ui/hooks/index.js.map +1 -1
  324. package/dist/ui/hooks/useAsyncTask.d.ts +7 -1
  325. package/dist/ui/hooks/useAsyncTask.d.ts.map +1 -1
  326. package/dist/ui/hooks/useAsyncTask.js +30 -6
  327. package/dist/ui/hooks/useAsyncTask.js.map +1 -1
  328. package/dist/ui/hooks/useBoundedCursor.d.ts +7 -0
  329. package/dist/ui/hooks/useBoundedCursor.d.ts.map +1 -0
  330. package/dist/ui/hooks/useBoundedCursor.js +19 -0
  331. package/dist/ui/hooks/useBoundedCursor.js.map +1 -0
  332. package/dist/ui/hooks/useConfirmBackNav.d.ts +7 -0
  333. package/dist/ui/hooks/useConfirmBackNav.d.ts.map +1 -0
  334. package/dist/ui/hooks/useConfirmBackNav.js +10 -0
  335. package/dist/ui/hooks/useConfirmBackNav.js.map +1 -0
  336. package/dist/ui/hooks/useDismissKeys.d.ts +10 -0
  337. package/dist/ui/hooks/useDismissKeys.d.ts.map +1 -0
  338. package/dist/ui/hooks/useDismissKeys.js +17 -0
  339. package/dist/ui/hooks/useDismissKeys.js.map +1 -0
  340. package/dist/ui/hooks/useListCursor.d.ts +7 -0
  341. package/dist/ui/hooks/useListCursor.d.ts.map +1 -0
  342. package/dist/ui/hooks/useListCursor.js +29 -0
  343. package/dist/ui/hooks/useListCursor.js.map +1 -0
  344. package/dist/ui/hooks/useTwoPaneCursor.d.ts +12 -0
  345. package/dist/ui/hooks/useTwoPaneCursor.d.ts.map +1 -0
  346. package/dist/ui/hooks/useTwoPaneCursor.js +36 -0
  347. package/dist/ui/hooks/useTwoPaneCursor.js.map +1 -0
  348. package/dist/ui/hooks/useXccBackendOverlay.d.ts +9 -0
  349. package/dist/ui/hooks/useXccBackendOverlay.d.ts.map +1 -0
  350. package/dist/ui/hooks/useXccBackendOverlay.js +14 -0
  351. package/dist/ui/hooks/useXccBackendOverlay.js.map +1 -0
  352. package/dist/ui/hooks/useXccLoadTest.d.ts +11 -0
  353. package/dist/ui/hooks/useXccLoadTest.d.ts.map +1 -0
  354. package/dist/ui/hooks/useXccLoadTest.js +37 -0
  355. package/dist/ui/hooks/useXccLoadTest.js.map +1 -0
  356. package/dist/ui/palette.d.ts +23 -0
  357. package/dist/ui/palette.d.ts.map +1 -0
  358. package/dist/ui/palette.js +22 -0
  359. package/dist/ui/palette.js.map +1 -0
  360. package/dist/ui/views/DbHealthView.js +4 -4
  361. package/dist/ui/views/DbHealthView.js.map +1 -1
  362. package/dist/ui/views/DbSizeView.d.ts.map +1 -1
  363. package/dist/ui/views/DbSizeView.js +2 -2
  364. package/dist/ui/views/DbSizeView.js.map +1 -1
  365. package/dist/ui/views/DbTablesView.d.ts.map +1 -1
  366. package/dist/ui/views/DbTablesView.js +2 -2
  367. package/dist/ui/views/DbTablesView.js.map +1 -1
  368. package/dist/ui/views/DiagDatabaseView.d.ts.map +1 -1
  369. package/dist/ui/views/DiagDatabaseView.js +4 -3
  370. package/dist/ui/views/DiagDatabaseView.js.map +1 -1
  371. package/dist/ui/views/DiagNetworkView.js +2 -2
  372. package/dist/ui/views/DiagNetworkView.js.map +1 -1
  373. package/dist/ui/views/DiagServiceView.js +1 -1
  374. package/dist/ui/views/DiagServiceView.js.map +1 -1
  375. package/dist/ui/views/DockerPruneView.d.ts.map +1 -1
  376. package/dist/ui/views/DockerPruneView.js +4 -8
  377. package/dist/ui/views/DockerPruneView.js.map +1 -1
  378. package/dist/ui/views/K8sDeployView.d.ts.map +1 -1
  379. package/dist/ui/views/K8sDeployView.js +5 -5
  380. package/dist/ui/views/K8sDeployView.js.map +1 -1
  381. package/dist/ui/views/K8sServicesView.d.ts.map +1 -1
  382. package/dist/ui/views/K8sServicesView.js +6 -11
  383. package/dist/ui/views/K8sServicesView.js.map +1 -1
  384. package/dist/ui/views/K8sStatusView.d.ts.map +1 -1
  385. package/dist/ui/views/K8sStatusView.js +14 -19
  386. package/dist/ui/views/K8sStatusView.js.map +1 -1
  387. package/dist/ui/views/LoadTestConfigView.d.ts.map +1 -1
  388. package/dist/ui/views/LoadTestConfigView.js +45 -43
  389. package/dist/ui/views/LoadTestConfigView.js.map +1 -1
  390. package/dist/ui/views/LoadTestSummaryView.d.ts.map +1 -1
  391. package/dist/ui/views/LoadTestSummaryView.js +7 -2
  392. package/dist/ui/views/LoadTestSummaryView.js.map +1 -1
  393. package/dist/ui/views/MainMenu.d.ts.map +1 -1
  394. package/dist/ui/views/MainMenu.js +265 -55
  395. package/dist/ui/views/MainMenu.js.map +1 -1
  396. package/dist/ui/views/MigrateHistoryView.d.ts.map +1 -1
  397. package/dist/ui/views/MigrateHistoryView.js +11 -2
  398. package/dist/ui/views/MigrateHistoryView.js.map +1 -1
  399. package/dist/ui/views/MigrateRollbackView.d.ts.map +1 -1
  400. package/dist/ui/views/MigrateRollbackView.js +4 -8
  401. package/dist/ui/views/MigrateRollbackView.js.map +1 -1
  402. package/dist/ui/views/MigrateRunView.d.ts.map +1 -1
  403. package/dist/ui/views/MigrateRunView.js +4 -8
  404. package/dist/ui/views/MigrateRunView.js.map +1 -1
  405. package/dist/ui/views/MigrateStatusView.js +1 -1
  406. package/dist/ui/views/MigrateStatusView.js.map +1 -1
  407. package/dist/ui/views/MigrateWatchView.js +1 -1
  408. package/dist/ui/views/MigrateWatchView.js.map +1 -1
  409. package/dist/ui/views/OfflineApplyView.d.ts.map +1 -1
  410. package/dist/ui/views/OfflineApplyView.js +17 -7
  411. package/dist/ui/views/OfflineApplyView.js.map +1 -1
  412. package/dist/ui/views/OfflineDownloadView.d.ts.map +1 -1
  413. package/dist/ui/views/OfflineDownloadView.js +17 -7
  414. package/dist/ui/views/OfflineDownloadView.js.map +1 -1
  415. package/dist/ui/views/OfflineFetchView.d.ts.map +1 -1
  416. package/dist/ui/views/OfflineFetchView.js +17 -7
  417. package/dist/ui/views/OfflineFetchView.js.map +1 -1
  418. package/dist/ui/views/OfflineInspectView.d.ts.map +1 -1
  419. package/dist/ui/views/OfflineInspectView.js +17 -7
  420. package/dist/ui/views/OfflineInspectView.js.map +1 -1
  421. package/dist/ui/views/OsUpdatesEnableView.js +4 -4
  422. package/dist/ui/views/OsUpdatesEnableView.js.map +1 -1
  423. package/dist/ui/views/OsUpdatesLogView.js +1 -1
  424. package/dist/ui/views/OsUpdatesLogView.js.map +1 -1
  425. package/dist/ui/views/OsUpdatesStatusView.d.ts.map +1 -1
  426. package/dist/ui/views/OsUpdatesStatusView.js +12 -12
  427. package/dist/ui/views/OsUpdatesStatusView.js.map +1 -1
  428. package/dist/ui/views/PowerActionView.d.ts.map +1 -1
  429. package/dist/ui/views/PowerActionView.js +3 -8
  430. package/dist/ui/views/PowerActionView.js.map +1 -1
  431. package/dist/ui/views/SecretsResetPasswordView.d.ts.map +1 -1
  432. package/dist/ui/views/SecretsResetPasswordView.js +23 -7
  433. package/dist/ui/views/SecretsResetPasswordView.js.map +1 -1
  434. package/dist/ui/views/SecretsSetupView.d.ts.map +1 -1
  435. package/dist/ui/views/SecretsSetupView.js +39 -22
  436. package/dist/ui/views/SecretsSetupView.js.map +1 -1
  437. package/dist/ui/views/ServiceLogsView.d.ts.map +1 -1
  438. package/dist/ui/views/ServiceLogsView.js +9 -9
  439. package/dist/ui/views/ServiceLogsView.js.map +1 -1
  440. package/dist/ui/views/ServicesView.d.ts.map +1 -1
  441. package/dist/ui/views/ServicesView.js +51 -28
  442. package/dist/ui/views/ServicesView.js.map +1 -1
  443. package/dist/ui/views/SettingsView.d.ts.map +1 -1
  444. package/dist/ui/views/SettingsView.js +5 -4
  445. package/dist/ui/views/SettingsView.js.map +1 -1
  446. package/dist/ui/views/SetupWizardView.d.ts.map +1 -1
  447. package/dist/ui/views/SetupWizardView.js +37 -32
  448. package/dist/ui/views/SetupWizardView.js.map +1 -1
  449. package/dist/ui/views/StatusView.d.ts.map +1 -1
  450. package/dist/ui/views/StatusView.js +44 -31
  451. package/dist/ui/views/StatusView.js.map +1 -1
  452. package/dist/ui/views/UpdateView.d.ts.map +1 -1
  453. package/dist/ui/views/UpdateView.js +28 -14
  454. package/dist/ui/views/UpdateView.js.map +1 -1
  455. package/dist/ui/views/UserResetPasswordView.d.ts.map +1 -1
  456. package/dist/ui/views/UserResetPasswordView.js +26 -8
  457. package/dist/ui/views/UserResetPasswordView.js.map +1 -1
  458. package/dist/ui/views/XccLoadTestConfigView.d.ts +29 -0
  459. package/dist/ui/views/XccLoadTestConfigView.d.ts.map +1 -0
  460. package/dist/ui/views/XccLoadTestConfigView.js +210 -0
  461. package/dist/ui/views/XccLoadTestConfigView.js.map +1 -0
  462. package/dist/ui/views/XccLoadTestRunView.d.ts +9 -0
  463. package/dist/ui/views/XccLoadTestRunView.d.ts.map +1 -0
  464. package/dist/ui/views/XccLoadTestRunView.js +154 -0
  465. package/dist/ui/views/XccLoadTestRunView.js.map +1 -0
  466. package/dist/ui/views/XccLoadTestSummaryView.d.ts +9 -0
  467. package/dist/ui/views/XccLoadTestSummaryView.d.ts.map +1 -0
  468. package/dist/ui/views/XccLoadTestSummaryView.js +63 -0
  469. package/dist/ui/views/XccLoadTestSummaryView.js.map +1 -0
  470. package/dist/ui/views/XccLoadTestView.d.ts +8 -0
  471. package/dist/ui/views/XccLoadTestView.d.ts.map +1 -0
  472. package/dist/ui/views/XccLoadTestView.js +40 -0
  473. package/dist/ui/views/XccLoadTestView.js.map +1 -0
  474. package/package.json +6 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldList.js","sourceRoot":"","sources":["../../../src/ui/components/FieldList.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
+ import type { ReactNode } from 'react';
1
2
  interface KeyValueItem {
2
3
  key: string;
3
- value: string;
4
+ value: ReactNode;
4
5
  }
5
6
  interface KeyValueProps {
6
7
  items: KeyValueItem[];
7
8
  keyWidth?: number;
9
+ paddingLeft?: number;
8
10
  }
9
- export declare function KeyValue({ items, keyWidth }: KeyValueProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function KeyValue({ items, keyWidth, paddingLeft }: KeyValueProps): import("react/jsx-runtime").JSX.Element;
10
12
  export {};
11
13
  //# sourceMappingURL=KeyValue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"KeyValue.d.ts","sourceRoot":"","sources":["../../../src/ui/components/KeyValue.tsx"],"names":[],"mappings":"AAEA,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,aAAa,2CAa1D"}
1
+ {"version":3,"file":"KeyValue.d.ts","sourceRoot":"","sources":["../../../src/ui/components/KeyValue.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,UAAU,aAAa;IACrB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAe,EAAE,EAAE,aAAa,2CAe3E"}
@@ -1,7 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Text } from 'ink';
3
- export function KeyValue({ items, keyWidth }) {
3
+ export function KeyValue({ items, keyWidth, paddingLeft = 2 }) {
4
4
  const width = keyWidth ?? Math.max(...items.map(item => item.key.length)) + 2;
5
- return (_jsx(Box, { flexDirection: "column", paddingLeft: 2, children: items.map((item, i) => (_jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: item.key.padEnd(width) }), _jsx(Text, { children: item.value })] }, i))) }));
5
+ return (_jsx(Box, { flexDirection: "column", paddingLeft: paddingLeft, children: items.map((item, i) => (_jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: item.key.padEnd(width) }), typeof item.value === 'string' || typeof item.value === 'number'
6
+ ? _jsx(Text, { children: String(item.value) })
7
+ : item.value] }, i))) }));
6
8
  }
7
9
  //# sourceMappingURL=KeyValue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KeyValue.js","sourceRoot":"","sources":["../../../src/ui/components/KeyValue.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAYhC,MAAM,UAAU,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAiB;IACzD,MAAM,KAAK,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IAE9E,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,CAAC,YACvC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAQ,EAC9C,KAAC,IAAI,cAAE,IAAI,CAAC,KAAK,GAAQ,KAFjB,CAAC,CAGL,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"KeyValue.js","sourceRoot":"","sources":["../../../src/ui/components/KeyValue.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAchC,MAAM,UAAU,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,GAAG,CAAC,EAAiB;IAC1E,MAAM,KAAK,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IAE9E,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,WAAW,YACjD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAQ,EAC7C,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;oBAC/D,CAAC,CAAC,KAAC,IAAI,cAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAQ;oBACnC,CAAC,CAAC,IAAI,CAAC,KAAK,KAJN,CAAC,CAKL,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ interface KeyboardAction {
2
+ key: string;
3
+ label: string;
4
+ }
5
+ interface KeyboardHintProps {
6
+ actions: KeyboardAction[];
7
+ }
8
+ export declare function KeyboardHint({ actions }: KeyboardHintProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=KeyboardHint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyboardHint.d.ts","sourceRoot":"","sources":["../../../src/ui/components/KeyboardHint.tsx"],"names":[],"mappings":"AAGA,UAAU,cAAc;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,iBAAiB;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,iBAAiB,2CAQ1D"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ export function KeyboardHint({ actions }) {
4
+ return (_jsx(Box, { paddingTop: 1, children: _jsx(Text, { dimColor: true, children: actions.map(a => `${a.key} ${a.label}`).join(' ') }) }));
5
+ }
6
+ //# sourceMappingURL=KeyboardHint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeyboardHint.js","sourceRoot":"","sources":["../../../src/ui/components/KeyboardHint.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAWhC,MAAM,UAAU,YAAY,CAAC,EAAE,OAAO,EAAqB;IACzD,OAAO,CACL,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,YAChB,KAAC,IAAI,IAAC,QAAQ,kBACX,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAC/C,GACH,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from 'react';
2
+ interface MenuListRowProps {
3
+ label: string;
4
+ description?: ReactNode;
5
+ labelWidth?: number;
6
+ active?: boolean;
7
+ }
8
+ export declare function MenuListRow({ label, description, labelWidth, active, }: MenuListRowProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=MenuList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuList.d.ts","sourceRoot":"","sources":["../../../src/ui/components/MenuList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAc,GACf,EAAE,gBAAgB,2CAWlB"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ export function MenuListRow({ label, description, labelWidth, active = false, }) {
4
+ const paddedLabel = labelWidth ? label.padEnd(labelWidth) : label;
5
+ return (_jsxs(Box, { children: [_jsx(Text, { color: active ? 'cyan' : undefined, bold: active, children: `${active ? '❯' : ' '} ${paddedLabel}` }), description] }));
6
+ }
7
+ //# sourceMappingURL=MenuList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuList.js","sourceRoot":"","sources":["../../../src/ui/components/MenuList.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAUhC,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,GAAG,KAAK,GACG;IACjB,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAElE,OAAO,CACL,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,YACnD,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,WAAW,EAAE,GAClC,EACN,WAAW,IACR,CACP,CAAC;AACJ,CAAC"}
@@ -1,8 +1,11 @@
1
- import type { SystemMetrics } from '../../lib/system.js';
2
- interface MetricsFooterProps {
3
- metrics: SystemMetrics;
4
- history: SystemMetrics[];
5
- }
6
- export declare function MetricsFooter({ metrics, history }: MetricsFooterProps): import("react/jsx-runtime").JSX.Element;
7
- export {};
1
+ import React from 'react';
2
+ /**
3
+ * Self-contained metrics footer — subscribes to MetricsContext directly so that
4
+ * AppShell does not need to subscribe. This prevents metrics polling from
5
+ * triggering re-renders of the entire view tree every 30 seconds.
6
+ *
7
+ * Memoized: only re-renders when metrics context changes, not when the parent
8
+ * view re-renders due to its own polling (services, health checks, etc.).
9
+ */
10
+ export declare const MetricsFooter: React.NamedExoticComponent<object>;
8
11
  //# sourceMappingURL=MetricsFooter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetricsFooter.d.ts","sourceRoot":"","sources":["../../../src/ui/components/MetricsFooter.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,UAAU,kBAAkB;IAC1B,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,kBAAkB,2CAiDrE"}
1
+ {"version":3,"file":"MetricsFooter.d.ts","sourceRoot":"","sources":["../../../src/ui/components/MetricsFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,oCAqDxB,CAAC"}
@@ -1,8 +1,22 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
2
3
  import { Box, useStdout } from 'ink';
3
4
  import { Sparkline } from './Sparkline.js';
4
- export function MetricsFooter({ metrics, history }) {
5
+ import { useMetrics, useMetricsHistory } from '../context/MetricsContext.js';
6
+ /**
7
+ * Self-contained metrics footer — subscribes to MetricsContext directly so that
8
+ * AppShell does not need to subscribe. This prevents metrics polling from
9
+ * triggering re-renders of the entire view tree every 30 seconds.
10
+ *
11
+ * Memoized: only re-renders when metrics context changes, not when the parent
12
+ * view re-renders due to its own polling (services, health checks, etc.).
13
+ */
14
+ export const MetricsFooter = React.memo(function MetricsFooter() {
15
+ const metrics = useMetrics();
16
+ const history = useMetricsHistory();
5
17
  const { stdout } = useStdout();
18
+ if (!metrics)
19
+ return null;
6
20
  const width = stdout?.columns ?? 80;
7
21
  // Sparkline width adapts to terminal — leave room for label (11) + trend (2) + detail (~14)
8
22
  const sparkWidth = Math.max(10, Math.min(40, width - 34));
@@ -11,9 +25,8 @@ export function MetricsFooter({ metrics, history }) {
11
25
  const diskData = history.map(m => m.disk.usedPercent);
12
26
  const swapData = history.map(m => m.swap?.percent ?? 0);
13
27
  const loadData = history.map(m => m.cpu.load1m);
14
- // Load max is based on CPU core count (100% per core)
15
28
  const cpuCount = metrics.cpu.label?.match(/(\d+)\s*core/i)?.[1];
16
29
  const loadMax = cpuCount ? parseInt(cpuCount, 10) : 8;
17
30
  return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Sparkline, { data: ramData, width: sparkWidth, label: "RAM", detail: `${metrics.ram.percent}% ${metrics.ram.label}`, min: 0, max: 100, thresholdColor: true, showTrend: true }), _jsx(Sparkline, { data: cpuData, width: sparkWidth, label: "CPU", detail: `${metrics.cpu.percent}% ${metrics.cpu.label}`, min: 0, max: 100, thresholdColor: true, showTrend: true }), _jsx(Sparkline, { data: diskData, width: sparkWidth, label: "Disk", detail: `${metrics.disk.usedPercent}% ${metrics.disk.label}`, min: 0, max: 100, thresholdColor: true, thresholds: [80, 95] }), metrics.swap && (_jsx(Sparkline, { data: swapData, width: sparkWidth, label: "Swap", detail: `${metrics.swap.percent}% ${metrics.swap.label}`, min: 0, max: 100, thresholdColor: true, thresholds: [70, 90], showTrend: true })), _jsx(Sparkline, { data: loadData, width: sparkWidth, label: "Load", detail: `${metrics.cpu.load1m.toFixed(1)}`, min: 0, max: loadMax, thresholdColor: true, thresholds: [loadMax * 0.7, loadMax * 0.9], showTrend: true })] }));
18
- }
31
+ });
19
32
  //# sourceMappingURL=MetricsFooter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetricsFooter.js","sourceRoot":"","sources":["../../../src/ui/components/MetricsFooter.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MetricsFooter.js","sourceRoot":"","sources":["../../../src/ui/components/MetricsFooter.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { ReactNode } from 'react';
2
+ interface PaneSectionProps {
3
+ title: string;
4
+ children: ReactNode;
5
+ marginTop?: number;
6
+ }
7
+ export declare function PaneSection({ title, children, marginTop }: PaneSectionProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=PaneSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaneSection.d.ts","sourceRoot":"","sources":["../../../src/ui/components/PaneSection.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAa,EAAE,EAAE,gBAAgB,2CAO/E"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ export function PaneSection({ title, children, marginTop = 1 }) {
4
+ return (_jsxs(Box, { flexDirection: "column", marginTop: marginTop, children: [_jsx(Text, { bold: true, children: title }), children] }));
5
+ }
6
+ //# sourceMappingURL=PaneSection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaneSection.js","sourceRoot":"","sources":["../../../src/ui/components/PaneSection.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAShC,MAAM,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,GAAG,CAAC,EAAoB;IAC9E,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,SAAS,aAC9C,KAAC,IAAI,IAAC,IAAI,kBAAE,KAAK,GAAQ,EACxB,QAAQ,IACL,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ interface PanelStateProps {
2
+ state: 'loading' | 'error' | 'empty';
3
+ message: string;
4
+ paddingLeft?: number;
5
+ }
6
+ export declare function PanelState({ state, message, paddingLeft }: PanelStateProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=PanelState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelState.d.ts","sourceRoot":"","sources":["../../../src/ui/components/PanelState.tsx"],"names":[],"mappings":"AAIA,UAAU,eAAe;IACvB,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,WAAe,EAAE,EAAE,eAAe,2CAQ9E"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { Spinner } from './Spinner.js';
4
+ export function PanelState({ state, message, paddingLeft = 2 }) {
5
+ return (_jsxs(Box, { paddingLeft: paddingLeft, children: [state === 'loading' && _jsx(Spinner, { label: message }), state === 'error' && _jsx(Text, { color: "red", children: message }), state === 'empty' && _jsx(Text, { dimColor: true, children: message })] }));
6
+ }
7
+ //# sourceMappingURL=PanelState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelState.js","sourceRoot":"","sources":["../../../src/ui/components/PanelState.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQvC,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,GAAG,CAAC,EAAmB;IAC7E,OAAO,CACL,MAAC,GAAG,IAAC,WAAW,EAAE,WAAW,aAC1B,KAAK,KAAK,SAAS,IAAI,KAAC,OAAO,IAAC,KAAK,EAAE,OAAO,GAAI,EAClD,KAAK,KAAK,OAAO,IAAI,KAAC,IAAI,IAAC,KAAK,EAAC,KAAK,YAAE,OAAO,GAAQ,EACvD,KAAK,KAAK,OAAO,IAAI,KAAC,IAAI,IAAC,QAAQ,kBAAE,OAAO,GAAQ,IACjD,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ type ScrollAnchor = 'top' | 'bottom';
3
+ interface ScrollViewportProps {
4
+ items: React.ReactNode[];
5
+ height?: number;
6
+ offset?: number;
7
+ onOffsetChange?: (offset: number) => void;
8
+ anchor?: ScrollAnchor;
9
+ controlsEnabled?: boolean;
10
+ paddingLeft?: number;
11
+ showPosition?: boolean;
12
+ footerHint?: string;
13
+ }
14
+ export declare function ScrollViewport({ items, height, offset, onOffsetChange, anchor, controlsEnabled, paddingLeft, showPosition, footerHint, }: ScrollViewportProps): import("react/jsx-runtime").JSX.Element;
15
+ export {};
16
+ //# sourceMappingURL=ScrollViewport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollViewport.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ScrollViewport.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,KAAK,YAAY,GAAG,KAAK,GAAG,QAAQ,CAAC;AAErC,UAAU,mBAAmB;IAC3B,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,MAAM,EACN,MAAM,EACN,cAAc,EACd,MAAc,EACd,eAAsB,EACtB,WAAe,EACf,YAAmB,EACnB,UAAU,GACX,EAAE,mBAAmB,2CA0ErB"}
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { Box, Text, useInput } from 'ink';
4
+ import { useAppShellViewport } from './app-shell-viewport.js';
5
+ export function ScrollViewport({ items, height, offset, onOffsetChange, anchor = 'top', controlsEnabled = true, paddingLeft = 2, showPosition = true, footerHint, }) {
6
+ const viewport = useAppShellViewport();
7
+ const derivedHeight = height ?? Math.max(4, (viewport?.contentHeight ?? 12) - 4);
8
+ const clampedHeight = Math.max(1, derivedHeight);
9
+ const [internalOffset, setInternalOffset] = React.useState(0);
10
+ const effectiveOffset = offset ?? internalOffset;
11
+ const maxOffset = Math.max(0, items.length - clampedHeight);
12
+ const clampedOffset = Math.max(0, Math.min(maxOffset, effectiveOffset));
13
+ const setOffset = React.useCallback((next) => {
14
+ const normalized = Math.max(0, Math.min(maxOffset, next));
15
+ if (offset === undefined)
16
+ setInternalOffset(normalized);
17
+ onOffsetChange?.(normalized);
18
+ }, [maxOffset, offset, onOffsetChange]);
19
+ useInput((input, key) => {
20
+ if (!controlsEnabled || maxOffset === 0)
21
+ return;
22
+ if (key.upArrow) {
23
+ setOffset(anchor === 'bottom' ? clampedOffset + 1 : clampedOffset - 1);
24
+ return;
25
+ }
26
+ if (key.downArrow) {
27
+ setOffset(anchor === 'bottom' ? clampedOffset - 1 : clampedOffset + 1);
28
+ return;
29
+ }
30
+ if (input === 'u') {
31
+ setOffset(anchor === 'bottom' ? clampedOffset + clampedHeight : clampedOffset - clampedHeight);
32
+ return;
33
+ }
34
+ if (input === 'd') {
35
+ setOffset(anchor === 'bottom' ? clampedOffset - clampedHeight : clampedOffset + clampedHeight);
36
+ return;
37
+ }
38
+ if (input === 'g') {
39
+ setOffset(anchor === 'bottom' ? maxOffset : 0);
40
+ return;
41
+ }
42
+ if (input === 'G') {
43
+ setOffset(anchor === 'bottom' ? 0 : maxOffset);
44
+ }
45
+ });
46
+ const startIdx = anchor === 'bottom'
47
+ ? Math.max(0, items.length - clampedHeight - clampedOffset)
48
+ : clampedOffset;
49
+ const endIdx = Math.min(items.length, startIdx + clampedHeight);
50
+ const visibleItems = items.slice(startIdx, endIdx);
51
+ const showFooterHint = Boolean(footerHint) && controlsEnabled && maxOffset > 0;
52
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { flexDirection: "column", paddingLeft: paddingLeft, children: visibleItems.map((item, index) => (_jsx(React.Fragment, { children: item }, startIdx + index))) }), showPosition && items.length > 0 && (_jsx(Box, { paddingLeft: paddingLeft, children: _jsx(Text, { dimColor: true, children: ` (lines ${startIdx + 1}-${endIdx} of ${items.length})` }) })), showFooterHint && (_jsx(Box, { paddingLeft: paddingLeft, marginTop: 1, children: _jsx(Text, { dimColor: true, children: footerHint }) }))] }));
53
+ }
54
+ //# sourceMappingURL=ScrollViewport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollViewport.js","sourceRoot":"","sources":["../../../src/ui/components/ScrollViewport.tsx"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Text, useStdout } from 'ink';
3
3
  export function Section({ title, children }) {
4
4
  const { stdout } = useStdout();
5
- const width = Math.min((stdout?.columns ?? 80) - 4, 80);
5
+ const width = Math.max(16, (stdout?.columns ?? 80) - 4);
6
6
  return (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { bold: true, children: ` ${title}` }), _jsx(Text, { dimColor: true, children: ' ' + '─'.repeat(width) }), children && (_jsx(Box, { flexDirection: "column", marginLeft: 2, children: children }))] }));
7
7
  }
8
8
  //# sourceMappingURL=Section.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Section.js","sourceRoot":"","sources":["../../../src/ui/components/Section.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAQ3C,MAAM,UAAU,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAgB;IACvD,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAExD,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,KAAC,IAAI,IAAC,IAAI,kBAAE,KAAK,KAAK,EAAE,GAAQ,EAChC,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAQ,EAC/C,QAAQ,IAAI,CACX,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,YACtC,QAAQ,GACL,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Section.js","sourceRoot":"","sources":["../../../src/ui/components/Section.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAQ3C,MAAM,UAAU,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAgB;IACvD,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAExD,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,KAAC,IAAI,IAAC,IAAI,kBAAE,KAAK,KAAK,EAAE,GAAQ,EAChC,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAQ,EAC/C,QAAQ,IAAI,CACX,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,YACtC,QAAQ,GACL,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectMenu.d.ts","sourceRoot":"","sources":["../../../src/ui/components/SelectMenu.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,UAAU,eAAe;IACvB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,eAAe,2CAgEtE"}
1
+ {"version":3,"file":"SelectMenu.d.ts","sourceRoot":"","sources":["../../../src/ui/components/SelectMenu.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,UAAU,eAAe;IACvB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,eAAe,2CAgEtE"}
@@ -1,6 +1,7 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
3
  import { Box, Text, useInput } from 'ink';
4
+ import { MenuListRow } from './MenuList.js';
4
5
  export function SelectMenu({ items, onSelect, onExit }) {
5
6
  const [cursor, setCursor] = useState(0);
6
7
  const [stack, setStack] = useState([]);
@@ -54,8 +55,7 @@ export function SelectMenu({ items, onSelect, onExit }) {
54
55
  });
55
56
  return (_jsx(Box, { flexDirection: "column", paddingLeft: 2, children: displayItems.map((entry, i) => {
56
57
  const isActive = i === cursor;
57
- const prefix = isActive ? '❯' : ' ';
58
- return (_jsxs(Box, { children: [_jsx(Text, { color: isActive ? 'cyan' : undefined, bold: isActive, children: `${prefix} ${entry.label.padEnd(16)}` }), _jsx(Text, { dimColor: true, children: entry.description })] }, i));
58
+ return (_jsx(MenuListRow, { label: entry.label, labelWidth: 16, active: isActive, description: _jsx(Text, { dimColor: true, children: entry.description }) }, i));
59
59
  }) }));
60
60
  }
61
61
  //# sourceMappingURL=SelectMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectMenu.js","sourceRoot":"","sources":["../../../src/ui/components/SelectMenu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectMenu.js","sourceRoot":"","sources":["../../../src/ui/components/SelectMenu.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  interface ShellOutputProps {
2
2
  content: string;
3
3
  maxLines?: number;
4
+ scrollable?: boolean;
4
5
  }
5
- export declare function ShellOutput({ content, maxLines }: ShellOutputProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function ShellOutput({ content, maxLines, scrollable }: ShellOutputProps): import("react/jsx-runtime").JSX.Element;
6
7
  export {};
7
8
  //# sourceMappingURL=ShellOutput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShellOutput.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ShellOutput.tsx"],"names":[],"mappings":"AAEA,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,gBAAgB,2CAoBlE"}
1
+ {"version":3,"file":"ShellOutput.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ShellOutput.tsx"],"names":[],"mappings":"AAGA,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAkB,EAAE,EAAE,gBAAgB,2CAgCtF"}
@@ -1,13 +1,17 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Text } from 'ink';
3
- export function ShellOutput({ content, maxLines }) {
3
+ import { ScrollViewport } from './ScrollViewport.js';
4
+ export function ShellOutput({ content, maxLines, scrollable = false }) {
4
5
  const allLines = content.split('\n');
5
6
  let lines = allLines;
6
7
  let hiddenCount = 0;
7
- if (maxLines && allLines.length > maxLines) {
8
+ if (!scrollable && maxLines && allLines.length > maxLines) {
8
9
  lines = allLines.slice(0, maxLines);
9
10
  hiddenCount = allLines.length - maxLines;
10
11
  }
12
+ if (scrollable) {
13
+ return (_jsx(ScrollViewport, { items: allLines.map((line, index) => (_jsx(Text, { dimColor: true, children: `│ ${line}` }, index))), height: maxLines, footerHint: "\u2191\u2193 Scroll u/d Page g/G Start/End" }));
14
+ }
11
15
  return (_jsxs(Box, { flexDirection: "column", paddingLeft: 2, children: [lines.map((line, i) => (_jsx(Text, { dimColor: true, children: `│ ${line}` }, i))), hiddenCount > 0 && (_jsx(Text, { color: "yellow", dimColor: true, children: `│ [... ${hiddenCount} more lines hidden]` }))] }));
12
16
  }
13
17
  //# sourceMappingURL=ShellOutput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShellOutput.js","sourceRoot":"","sources":["../../../src/ui/components/ShellOutput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAOhC,MAAM,UAAU,WAAW,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAoB;IACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,KAAK,GAAG,QAAQ,CAAC;IACrB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC3C,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACpC,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC;IAC3C,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,CAAC,aACvC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,KAAC,IAAI,IAAS,QAAQ,kBAAE,KAAK,IAAI,EAAE,IAAxB,CAAC,CAA+B,CAC5C,CAAC,EACD,WAAW,GAAG,CAAC,IAAI,CAClB,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,kBAAE,UAAU,WAAW,qBAAqB,GAAQ,CAClF,IACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ShellOutput.js","sourceRoot":"","sources":["../../../src/ui/components/ShellOutput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAQrD,MAAM,UAAU,WAAW,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,GAAG,KAAK,EAAoB;IACrF,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,KAAK,GAAG,QAAQ,CAAC;IACrB,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,IAAI,CAAC,UAAU,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC1D,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACpC,WAAW,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC;IAC3C,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CACL,KAAC,cAAc,IACb,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CACnC,KAAC,IAAI,IAAa,QAAQ,kBAAE,KAAK,IAAI,EAAE,IAA5B,KAAK,CAA+B,CAChD,CAAC,EACF,MAAM,EAAE,QAAQ,EAChB,UAAU,EAAC,gDAAsC,GACjD,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,CAAC,aACvC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,KAAC,IAAI,IAAS,QAAQ,kBAAE,KAAK,IAAI,EAAE,IAAxB,CAAC,CAA+B,CAC5C,CAAC,EACD,WAAW,GAAG,CAAC,IAAI,CAClB,KAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,kBAAE,UAAU,WAAW,qBAAqB,GAAQ,CAClF,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ReactNode } from 'react';
2
+ interface SplitPaneProps {
3
+ primary: ReactNode;
4
+ secondary?: ReactNode;
5
+ stacked?: boolean;
6
+ primaryWidth?: string | number;
7
+ secondaryWidth?: string | number;
8
+ gap?: number;
9
+ paddingLeft?: number;
10
+ paddingTop?: number;
11
+ }
12
+ interface SplitPaneCardProps {
13
+ children: ReactNode;
14
+ }
15
+ export declare function SplitPane({ primary, secondary, stacked, primaryWidth, secondaryWidth, gap, paddingLeft, paddingTop, }: SplitPaneProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function SplitPaneCard({ children }: SplitPaneCardProps): import("react/jsx-runtime").JSX.Element;
17
+ export {};
18
+ //# sourceMappingURL=SplitPane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplitPane.d.ts","sourceRoot":"","sources":["../../../src/ui/components/SplitPane.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,cAAc;IACtB,OAAO,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,SAAS,EACT,OAAe,EACf,YAAY,EACZ,cAAc,EACd,GAAO,EACP,WAAW,EACX,UAAU,GACX,EAAE,cAAc,2CAuBhB;AAED,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CAM7D"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box } from 'ink';
3
+ export function SplitPane({ primary, secondary, stacked = false, primaryWidth, secondaryWidth, gap = 2, paddingLeft, paddingTop, }) {
4
+ return (_jsxs(Box, { flexDirection: stacked ? 'column' : 'row', paddingLeft: paddingLeft, paddingTop: paddingTop, children: [_jsx(Box, { flexDirection: "column", width: stacked ? undefined : primaryWidth, children: primary }), secondary && (_jsx(Box, { flexDirection: "column", width: stacked ? undefined : secondaryWidth, marginLeft: stacked ? 0 : gap, marginTop: stacked ? 1 : 0, children: secondary }))] }));
5
+ }
6
+ export function SplitPaneCard({ children }) {
7
+ return (_jsx(Box, { flexDirection: "column", borderStyle: "single", borderColor: "gray", paddingX: 1, children: children }));
8
+ }
9
+ //# sourceMappingURL=SplitPane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplitPane.js","sourceRoot":"","sources":["../../../src/ui/components/SplitPane.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAkB1B,MAAM,UAAU,SAAS,CAAC,EACxB,OAAO,EACP,SAAS,EACT,OAAO,GAAG,KAAK,EACf,YAAY,EACZ,cAAc,EACd,GAAG,GAAG,CAAC,EACP,WAAW,EACX,UAAU,GACK;IACf,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EACzC,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,aAEtB,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,YAClE,OAAO,GACJ,EAEL,SAAS,IAAI,CACZ,KAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,EAC3C,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAC7B,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAEzB,SAAS,GACN,CACP,IACG,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAE,QAAQ,EAAsB;IAC5D,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,YAC5E,QAAQ,GACL,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ReactNode } from 'react';
2
+ interface StatusListHeaderProps {
3
+ title: string;
4
+ focused?: boolean;
5
+ width: number;
6
+ }
7
+ interface StatusListRowProps {
8
+ icon: string;
9
+ iconColor?: string;
10
+ label: string;
11
+ labelWidth?: number;
12
+ detail?: ReactNode;
13
+ focused?: boolean;
14
+ }
15
+ export declare function StatusListHeader({ title, focused, width }: StatusListHeaderProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function StatusListRow({ icon, iconColor, label, labelWidth, detail, focused, }: StatusListRowProps): import("react/jsx-runtime").JSX.Element;
17
+ export {};
18
+ //# sourceMappingURL=StatusList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusList.d.ts","sourceRoot":"","sources":["../../../src/ui/components/StatusList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,KAAK,EAAE,OAAe,EAAE,KAAK,EAAE,EAAE,qBAAqB,2CAQxF;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,SAAS,EACT,KAAK,EACL,UAAU,EACV,MAAM,EACN,OAAe,GAChB,EAAE,kBAAkB,2CAapB"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ export function StatusListHeader({ title, focused = false, width }) {
4
+ const dividerWidth = Math.min(width - 4, 80);
5
+ return (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: focused ? 'cyan' : undefined, bold: true, children: focused ? `❯ ${title}` : ` ${title}` }), _jsx(Text, { dimColor: true, children: ' ' + '─'.repeat(dividerWidth) })] }));
6
+ }
7
+ export function StatusListRow({ icon, iconColor, label, labelWidth, detail, focused = false, }) {
8
+ const paddedLabel = labelWidth && label.length < labelWidth
9
+ ? label + ' '.repeat(labelWidth - label.length)
10
+ : label;
11
+ return (_jsxs(Box, { children: [_jsx(Text, { color: focused ? 'cyan' : undefined, bold: focused, children: `${focused ? '❯' : ' '} ` }), _jsx(Text, { color: iconColor, children: icon }), _jsx(Text, { color: focused ? 'cyan' : undefined, bold: focused, children: ` ${paddedLabel}` }), detail] }));
12
+ }
13
+ //# sourceMappingURL=StatusList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusList.js","sourceRoot":"","sources":["../../../src/ui/components/StatusList.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAkBhC,MAAM,UAAU,gBAAgB,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK,EAAyB;IACvF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7C,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,kBAAE,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,GAAQ,EAC9F,KAAC,IAAI,IAAC,QAAQ,kBAAE,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAQ,IACnD,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAC5B,IAAI,EACJ,SAAS,EACT,KAAK,EACL,UAAU,EACV,MAAM,EACN,OAAO,GAAG,KAAK,GACI;IACnB,MAAM,WAAW,GAAG,UAAU,IAAI,KAAK,CAAC,MAAM,GAAG,UAAU;QACzD,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;QAC/C,CAAC,CAAC,KAAK,CAAC;IAEV,OAAO,CACL,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,YAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAQ,EAC5F,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,YAAG,IAAI,GAAQ,EACrC,KAAC,IAAI,IAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,YAAG,IAAI,WAAW,EAAE,GAAQ,EACnF,MAAM,IACH,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ReactNode } from 'react';
2
+ interface SummaryStripProps {
3
+ children: ReactNode;
4
+ paddingLeft?: number;
5
+ marginBottom?: number;
6
+ }
7
+ export declare function SummaryStrip({ children, paddingLeft, marginBottom, }: SummaryStripProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=SummaryStrip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SummaryStrip.d.ts","sourceRoot":"","sources":["../../../src/ui/components/SummaryStrip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,WAAe,EACf,YAAgB,GACjB,EAAE,iBAAiB,2CAMnB"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box } from 'ink';
3
+ export function SummaryStrip({ children, paddingLeft = 2, marginBottom = 1, }) {
4
+ return (_jsx(Box, { paddingLeft: paddingLeft, marginBottom: marginBottom, children: children }));
5
+ }
6
+ //# sourceMappingURL=SummaryStrip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SummaryStrip.js","sourceRoot":"","sources":["../../../src/ui/components/SummaryStrip.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAS1B,MAAM,UAAU,YAAY,CAAC,EAC3B,QAAQ,EACR,WAAW,GAAG,CAAC,EACf,YAAY,GAAG,CAAC,GACE;IAClB,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,YACtD,QAAQ,GACL,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ export interface AppShellViewport {
3
+ contentHeight: number;
4
+ }
5
+ export declare const AppShellViewportContext: React.Context<AppShellViewport | null>;
6
+ export declare function useAppShellViewport(): AppShellViewport | null;
7
+ //# sourceMappingURL=app-shell-viewport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-shell-viewport.d.ts","sourceRoot":"","sources":["../../../src/ui/components/app-shell-viewport.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,uBAAuB,wCAAqD,CAAC;AAE1F,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAE7D"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export const AppShellViewportContext = React.createContext(null);
3
+ export function useAppShellViewport() {
4
+ return React.useContext(AppShellViewportContext);
5
+ }
6
+ //# sourceMappingURL=app-shell-viewport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-shell-viewport.js","sourceRoot":"","sources":["../../../src/ui/components/app-shell-viewport.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC,aAAa,CAA0B,IAAI,CAAC,CAAC;AAE1F,MAAM,UAAU,mBAAmB;IACjC,OAAO,KAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;AACnD,CAAC"}