@akiojin/gwt 4.9.1 → 4.11.6

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 (605) hide show
  1. package/README.ja.md +4 -4
  2. package/README.md +4 -4
  3. package/dist/claude.d.ts +1 -0
  4. package/dist/claude.d.ts.map +1 -1
  5. package/dist/claude.js +52 -49
  6. package/dist/claude.js.map +1 -1
  7. package/dist/cli/ui/App.solid.d.ts +29 -0
  8. package/dist/cli/ui/App.solid.d.ts.map +1 -0
  9. package/dist/cli/ui/App.solid.js +1197 -0
  10. package/dist/cli/ui/App.solid.js.map +1 -0
  11. package/dist/cli/ui/components/solid/Footer.d.ts +10 -0
  12. package/dist/cli/ui/components/solid/Footer.d.ts.map +1 -0
  13. package/dist/cli/ui/components/solid/Footer.js +10 -0
  14. package/dist/cli/ui/components/solid/Footer.js.map +1 -0
  15. package/dist/cli/ui/components/{parts → solid}/Header.d.ts +1 -6
  16. package/dist/cli/ui/components/solid/Header.d.ts.map +1 -0
  17. package/dist/cli/ui/components/solid/Header.js +13 -0
  18. package/dist/cli/ui/components/solid/Header.js.map +1 -0
  19. package/dist/cli/ui/components/solid/HelpOverlay.d.ts +8 -0
  20. package/dist/cli/ui/components/solid/HelpOverlay.d.ts.map +1 -0
  21. package/dist/cli/ui/components/solid/HelpOverlay.js +118 -0
  22. package/dist/cli/ui/components/solid/HelpOverlay.js.map +1 -0
  23. package/dist/cli/ui/components/solid/QuickStartStep.d.ts +17 -0
  24. package/dist/cli/ui/components/solid/QuickStartStep.d.ts.map +1 -0
  25. package/dist/cli/ui/components/solid/QuickStartStep.js +139 -0
  26. package/dist/cli/ui/components/solid/QuickStartStep.js.map +1 -0
  27. package/dist/cli/ui/components/solid/SelectInput.d.ts +22 -0
  28. package/dist/cli/ui/components/solid/SelectInput.d.ts.map +1 -0
  29. package/dist/cli/ui/components/solid/SelectInput.js +44 -0
  30. package/dist/cli/ui/components/solid/SelectInput.js.map +1 -0
  31. package/dist/cli/ui/components/solid/TextInput.d.ts +12 -0
  32. package/dist/cli/ui/components/solid/TextInput.d.ts.map +1 -0
  33. package/dist/cli/ui/components/solid/TextInput.js +9 -0
  34. package/dist/cli/ui/components/solid/TextInput.js.map +1 -0
  35. package/dist/cli/ui/components/solid/WizardController.d.ts +34 -0
  36. package/dist/cli/ui/components/solid/WizardController.d.ts.map +1 -0
  37. package/dist/cli/ui/components/solid/WizardController.js +215 -0
  38. package/dist/cli/ui/components/solid/WizardController.js.map +1 -0
  39. package/dist/cli/ui/components/solid/WizardPopup.d.ts +26 -0
  40. package/dist/cli/ui/components/solid/WizardPopup.d.ts.map +1 -0
  41. package/dist/cli/ui/components/solid/WizardPopup.js +68 -0
  42. package/dist/cli/ui/components/solid/WizardPopup.js.map +1 -0
  43. package/dist/cli/ui/components/solid/WizardSteps.d.ts +52 -0
  44. package/dist/cli/ui/components/solid/WizardSteps.d.ts.map +1 -0
  45. package/dist/cli/ui/components/solid/WizardSteps.js +462 -0
  46. package/dist/cli/ui/components/solid/WizardSteps.js.map +1 -0
  47. package/dist/cli/ui/core/index.d.ts +12 -0
  48. package/dist/cli/ui/core/index.d.ts.map +1 -0
  49. package/dist/cli/ui/core/index.js +15 -0
  50. package/dist/cli/ui/core/index.js.map +1 -0
  51. package/dist/cli/ui/core/keybindings.d.ts +106 -0
  52. package/dist/cli/ui/core/keybindings.d.ts.map +1 -0
  53. package/dist/cli/ui/core/keybindings.js +270 -0
  54. package/dist/cli/ui/core/keybindings.js.map +1 -0
  55. package/dist/cli/ui/core/theme.d.ts +114 -0
  56. package/dist/cli/ui/core/theme.d.ts.map +1 -0
  57. package/dist/cli/ui/core/theme.js +170 -0
  58. package/dist/cli/ui/core/theme.js.map +1 -0
  59. package/dist/cli/ui/core/types.d.ts +156 -0
  60. package/dist/cli/ui/core/types.d.ts.map +1 -0
  61. package/dist/cli/ui/core/types.js +10 -0
  62. package/dist/cli/ui/core/types.js.map +1 -0
  63. package/dist/cli/ui/hooks/solid/useScrollableList.d.ts +26 -0
  64. package/dist/cli/ui/hooks/solid/useScrollableList.d.ts.map +1 -0
  65. package/dist/cli/ui/hooks/solid/useScrollableList.js +89 -0
  66. package/dist/cli/ui/hooks/solid/useScrollableList.js.map +1 -0
  67. package/dist/cli/ui/hooks/solid/useTerminalSize.d.ts +10 -0
  68. package/dist/cli/ui/hooks/solid/useTerminalSize.d.ts.map +1 -0
  69. package/dist/cli/ui/hooks/solid/useTerminalSize.js +16 -0
  70. package/dist/cli/ui/hooks/solid/useTerminalSize.js.map +1 -0
  71. package/dist/cli/ui/index.solid.d.ts +5 -0
  72. package/dist/cli/ui/index.solid.d.ts.map +1 -0
  73. package/dist/cli/ui/index.solid.js +21 -0
  74. package/dist/cli/ui/index.solid.js.map +1 -0
  75. package/dist/cli/ui/{components/screens → screens/solid}/BranchListScreen.d.ts +8 -22
  76. package/dist/cli/ui/screens/solid/BranchListScreen.d.ts.map +1 -0
  77. package/dist/cli/ui/screens/solid/BranchListScreen.js +756 -0
  78. package/dist/cli/ui/screens/solid/BranchListScreen.js.map +1 -0
  79. package/dist/cli/ui/screens/solid/ConfirmScreen.d.ts +10 -0
  80. package/dist/cli/ui/screens/solid/ConfirmScreen.d.ts.map +1 -0
  81. package/dist/cli/ui/screens/solid/ConfirmScreen.js +37 -0
  82. package/dist/cli/ui/screens/solid/ConfirmScreen.js.map +1 -0
  83. package/dist/cli/ui/screens/solid/EnvironmentScreen.d.ts +14 -0
  84. package/dist/cli/ui/screens/solid/EnvironmentScreen.d.ts.map +1 -0
  85. package/dist/cli/ui/screens/solid/EnvironmentScreen.js +91 -0
  86. package/dist/cli/ui/screens/solid/EnvironmentScreen.js.map +1 -0
  87. package/dist/cli/ui/screens/solid/ErrorScreen.d.ts +8 -0
  88. package/dist/cli/ui/screens/solid/ErrorScreen.d.ts.map +1 -0
  89. package/dist/cli/ui/screens/solid/ErrorScreen.js +18 -0
  90. package/dist/cli/ui/screens/solid/ErrorScreen.js.map +1 -0
  91. package/dist/cli/ui/screens/solid/InputScreen.d.ts +13 -0
  92. package/dist/cli/ui/screens/solid/InputScreen.d.ts.map +1 -0
  93. package/dist/cli/ui/screens/solid/InputScreen.js +17 -0
  94. package/dist/cli/ui/screens/solid/InputScreen.js.map +1 -0
  95. package/dist/cli/ui/screens/solid/LoadingIndicator.d.ts +9 -0
  96. package/dist/cli/ui/screens/solid/LoadingIndicator.d.ts.map +1 -0
  97. package/dist/cli/ui/screens/solid/LoadingIndicator.js +43 -0
  98. package/dist/cli/ui/screens/solid/LoadingIndicator.js.map +1 -0
  99. package/dist/cli/ui/{components/screens → screens/solid}/LogDetailScreen.d.ts +2 -2
  100. package/dist/cli/ui/screens/solid/LogDetailScreen.d.ts.map +1 -0
  101. package/dist/cli/ui/screens/solid/LogDetailScreen.js +34 -0
  102. package/dist/cli/ui/screens/solid/LogDetailScreen.js.map +1 -0
  103. package/dist/cli/ui/{components/screens/LogListScreen.d.ts → screens/solid/LogScreen.d.ts} +4 -4
  104. package/dist/cli/ui/screens/solid/LogScreen.d.ts.map +1 -0
  105. package/dist/cli/ui/screens/solid/LogScreen.js +95 -0
  106. package/dist/cli/ui/screens/solid/LogScreen.js.map +1 -0
  107. package/dist/cli/ui/screens/solid/ProfileEnvScreen.d.ts +17 -0
  108. package/dist/cli/ui/screens/solid/ProfileEnvScreen.d.ts.map +1 -0
  109. package/dist/cli/ui/screens/solid/ProfileEnvScreen.js +112 -0
  110. package/dist/cli/ui/screens/solid/ProfileEnvScreen.js.map +1 -0
  111. package/dist/cli/ui/screens/solid/ProfileScreen.d.ts +17 -0
  112. package/dist/cli/ui/screens/solid/ProfileScreen.d.ts.map +1 -0
  113. package/dist/cli/ui/screens/solid/ProfileScreen.js +50 -0
  114. package/dist/cli/ui/screens/solid/ProfileScreen.js.map +1 -0
  115. package/dist/cli/ui/screens/solid/SelectorScreen.d.ts +20 -0
  116. package/dist/cli/ui/screens/solid/SelectorScreen.d.ts.map +1 -0
  117. package/dist/cli/ui/screens/solid/SelectorScreen.js +90 -0
  118. package/dist/cli/ui/screens/solid/SelectorScreen.js.map +1 -0
  119. package/dist/cli/ui/screens/solid/WorktreeCreateScreen.d.ts +13 -0
  120. package/dist/cli/ui/screens/solid/WorktreeCreateScreen.d.ts.map +1 -0
  121. package/dist/cli/ui/screens/solid/WorktreeCreateScreen.js +59 -0
  122. package/dist/cli/ui/screens/solid/WorktreeCreateScreen.js.map +1 -0
  123. package/dist/cli/ui/stores/appStore.d.ts +143 -0
  124. package/dist/cli/ui/stores/appStore.d.ts.map +1 -0
  125. package/dist/cli/ui/stores/appStore.js +158 -0
  126. package/dist/cli/ui/stores/appStore.js.map +1 -0
  127. package/dist/cli/ui/stores/branchStore.d.ts +159 -0
  128. package/dist/cli/ui/stores/branchStore.d.ts.map +1 -0
  129. package/dist/cli/ui/stores/branchStore.js +275 -0
  130. package/dist/cli/ui/stores/branchStore.js.map +1 -0
  131. package/dist/cli/ui/stores/index.d.ts +11 -0
  132. package/dist/cli/ui/stores/index.d.ts.map +1 -0
  133. package/dist/cli/ui/stores/index.js +14 -0
  134. package/dist/cli/ui/stores/index.js.map +1 -0
  135. package/dist/cli/ui/stores/uiStore.d.ts +146 -0
  136. package/dist/cli/ui/stores/uiStore.d.ts.map +1 -0
  137. package/dist/cli/ui/stores/uiStore.js +166 -0
  138. package/dist/cli/ui/stores/uiStore.js.map +1 -0
  139. package/dist/cli/ui/types.d.ts +16 -1
  140. package/dist/cli/ui/types.d.ts.map +1 -1
  141. package/dist/cli/ui/utils/branchFormatter.d.ts.map +1 -1
  142. package/dist/cli/ui/utils/branchFormatter.js +7 -210
  143. package/dist/cli/ui/utils/branchFormatter.js.map +1 -1
  144. package/dist/cli/ui/utils/continueSession.d.ts +4 -0
  145. package/dist/cli/ui/utils/continueSession.d.ts.map +1 -1
  146. package/dist/cli/ui/utils/continueSession.js +30 -0
  147. package/dist/cli/ui/utils/continueSession.js.map +1 -1
  148. package/dist/client/assets/{index-ChHC-Puh.css → index-BbfV7Wuj.css} +1 -1
  149. package/dist/client/assets/index-CoAyq5x1.js +78 -0
  150. package/dist/client/index.html +2 -2
  151. package/dist/codex.d.ts +1 -0
  152. package/dist/codex.d.ts.map +1 -1
  153. package/dist/codex.js +86 -45
  154. package/dist/codex.js.map +1 -1
  155. package/dist/config/builtin-coding-agents.d.ts +4 -0
  156. package/dist/config/builtin-coding-agents.d.ts.map +1 -1
  157. package/dist/config/builtin-coding-agents.js +18 -3
  158. package/dist/config/builtin-coding-agents.js.map +1 -1
  159. package/dist/config/index.d.ts +2 -0
  160. package/dist/config/index.d.ts.map +1 -1
  161. package/dist/config/index.js +2 -0
  162. package/dist/config/index.js.map +1 -1
  163. package/dist/config/tools.d.ts.map +1 -1
  164. package/dist/config/tools.js +11 -0
  165. package/dist/config/tools.js.map +1 -1
  166. package/dist/gemini.d.ts +1 -0
  167. package/dist/gemini.d.ts.map +1 -1
  168. package/dist/gemini.js +42 -37
  169. package/dist/gemini.js.map +1 -1
  170. package/dist/index.d.ts +1 -1
  171. package/dist/index.d.ts.map +1 -1
  172. package/dist/index.js +122 -102
  173. package/dist/index.js.map +1 -1
  174. package/dist/launcher.d.ts.map +1 -1
  175. package/dist/launcher.js +18 -3
  176. package/dist/launcher.js.map +1 -1
  177. package/dist/logging/logger.d.ts.map +1 -1
  178. package/dist/logging/logger.js +26 -9
  179. package/dist/logging/logger.js.map +1 -1
  180. package/dist/opentui/highlights-eq9cgrbb.scm +604 -0
  181. package/dist/opentui/highlights-ghv9g403.scm +205 -0
  182. package/dist/opentui/highlights-hk7bwhj4.scm +284 -0
  183. package/dist/opentui/highlights-r812a2qc.scm +150 -0
  184. package/dist/opentui/highlights-x6tmsnaa.scm +115 -0
  185. package/dist/opentui/index.solid.d.ts +2 -0
  186. package/dist/opentui/index.solid.d.ts.map +1 -0
  187. package/dist/opentui/index.solid.js +52034 -0
  188. package/dist/opentui/index.solid.js.map +1 -0
  189. package/dist/opentui/injections-73j83es3.scm +27 -0
  190. package/dist/opentui/tree-sitter-javascript-nd0q4pe9.wasm +0 -0
  191. package/dist/opentui/tree-sitter-markdown-411r6y9b.wasm +0 -0
  192. package/dist/opentui/tree-sitter-markdown_inline-j5349f42.wasm +0 -0
  193. package/dist/opentui/tree-sitter-typescript-zxjzwt75.wasm +0 -0
  194. package/dist/opentui/tree-sitter-zig-e78zbjpm.wasm +0 -0
  195. package/dist/repositories/worktree.repository.d.ts +1 -0
  196. package/dist/repositories/worktree.repository.d.ts.map +1 -1
  197. package/dist/repositories/worktree.repository.js +7 -0
  198. package/dist/repositories/worktree.repository.js.map +1 -1
  199. package/dist/services/codingAgentResolver.d.ts +2 -0
  200. package/dist/services/codingAgentResolver.d.ts.map +1 -1
  201. package/dist/services/codingAgentResolver.js +30 -4
  202. package/dist/services/codingAgentResolver.js.map +1 -1
  203. package/dist/services/dependency-installer.d.ts.map +1 -1
  204. package/dist/services/dependency-installer.js +0 -5
  205. package/dist/services/dependency-installer.js.map +1 -1
  206. package/dist/types/api.d.ts +3 -0
  207. package/dist/types/api.d.ts.map +1 -1
  208. package/dist/types/coding-agent.d.ts +62 -0
  209. package/dist/types/coding-agent.d.ts.map +1 -0
  210. package/dist/types/coding-agent.js +29 -0
  211. package/dist/types/coding-agent.js.map +1 -0
  212. package/dist/types/tools.d.ts +17 -0
  213. package/dist/types/tools.d.ts.map +1 -1
  214. package/dist/utils/coding-agent-colors.d.ts +88 -0
  215. package/dist/utils/coding-agent-colors.d.ts.map +1 -0
  216. package/dist/utils/coding-agent-colors.js +137 -0
  217. package/dist/utils/coding-agent-colors.js.map +1 -0
  218. package/dist/utils/command.d.ts +1 -1
  219. package/dist/utils/command.d.ts.map +1 -1
  220. package/dist/utils/command.js +10 -1
  221. package/dist/utils/command.js.map +1 -1
  222. package/dist/utils/error-utils.d.ts +27 -0
  223. package/dist/utils/error-utils.d.ts.map +1 -0
  224. package/dist/utils/error-utils.js +98 -0
  225. package/dist/utils/error-utils.js.map +1 -0
  226. package/dist/utils/npmRegistry.d.ts +61 -0
  227. package/dist/utils/npmRegistry.d.ts.map +1 -0
  228. package/dist/utils/npmRegistry.js +180 -0
  229. package/dist/utils/npmRegistry.js.map +1 -0
  230. package/dist/utils/prompt.d.ts +1 -1
  231. package/dist/utils/prompt.js +1 -1
  232. package/dist/utils/session/index.d.ts +5 -3
  233. package/dist/utils/session/index.d.ts.map +1 -1
  234. package/dist/utils/session/index.js +5 -2
  235. package/dist/utils/session/index.js.map +1 -1
  236. package/dist/utils/session/parsers/codex.d.ts.map +1 -1
  237. package/dist/utils/session/parsers/codex.js +8 -1
  238. package/dist/utils/session/parsers/codex.js.map +1 -1
  239. package/dist/utils/session/parsers/index.d.ts +1 -0
  240. package/dist/utils/session/parsers/index.d.ts.map +1 -1
  241. package/dist/utils/session/parsers/index.js +2 -0
  242. package/dist/utils/session/parsers/index.js.map +1 -1
  243. package/dist/utils/session/parsers/opencode.d.ts +23 -0
  244. package/dist/utils/session/parsers/opencode.d.ts.map +1 -0
  245. package/dist/utils/session/parsers/opencode.js +89 -0
  246. package/dist/utils/session/parsers/opencode.js.map +1 -0
  247. package/dist/utils/session/types.d.ts +4 -0
  248. package/dist/utils/session/types.d.ts.map +1 -1
  249. package/dist/utils/terminal.d.ts +1 -0
  250. package/dist/utils/terminal.d.ts.map +1 -1
  251. package/dist/utils/terminal.js +20 -0
  252. package/dist/utils/terminal.js.map +1 -1
  253. package/dist/utils.d.ts +9 -0
  254. package/dist/utils.d.ts.map +1 -1
  255. package/dist/utils.js +33 -2
  256. package/dist/utils.js.map +1 -1
  257. package/dist/web/client/src/components/CodingAgentLaunchModal.d.ts.map +1 -1
  258. package/dist/web/client/src/components/CodingAgentLaunchModal.js +7 -16
  259. package/dist/web/client/src/components/CodingAgentLaunchModal.js.map +1 -1
  260. package/dist/web/client/src/components/branch-detail/BranchInfoCards.d.ts.map +1 -1
  261. package/dist/web/client/src/components/branch-detail/BranchInfoCards.js +7 -2
  262. package/dist/web/client/src/components/branch-detail/BranchInfoCards.js.map +1 -1
  263. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.d.ts.map +1 -1
  264. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.js +2 -1
  265. package/dist/web/client/src/components/branch-detail/SessionHistoryTable.js.map +1 -1
  266. package/dist/web/client/src/components/branch-detail/ToolLauncher.d.ts +2 -2
  267. package/dist/web/client/src/components/branch-detail/ToolLauncher.d.ts.map +1 -1
  268. package/dist/web/client/src/components/branch-detail/ToolLauncher.js +5 -5
  269. package/dist/web/client/src/components/branch-detail/ToolLauncher.js.map +1 -1
  270. package/dist/web/client/src/lib/coding-agent-colors.d.ts +86 -0
  271. package/dist/web/client/src/lib/coding-agent-colors.d.ts.map +1 -0
  272. package/dist/web/client/src/lib/coding-agent-colors.js +135 -0
  273. package/dist/web/client/src/lib/coding-agent-colors.js.map +1 -0
  274. package/dist/web/client/src/pages/BranchDetailPage.js +10 -10
  275. package/dist/web/client/src/pages/BranchDetailPage.js.map +1 -1
  276. package/dist/web/server/pty/manager.d.ts +2 -0
  277. package/dist/web/server/pty/manager.d.ts.map +1 -1
  278. package/dist/web/server/pty/manager.js +104 -0
  279. package/dist/web/server/pty/manager.js.map +1 -1
  280. package/dist/web/server/routes/sessions.d.ts.map +1 -1
  281. package/dist/web/server/routes/sessions.js +5 -1
  282. package/dist/web/server/routes/sessions.js.map +1 -1
  283. package/dist/web/server/services/branches.d.ts.map +1 -1
  284. package/dist/web/server/services/branches.js +10 -8
  285. package/dist/web/server/services/branches.js.map +1 -1
  286. package/dist/web/server/services/worktrees.js +2 -2
  287. package/dist/web/server/services/worktrees.js.map +1 -1
  288. package/dist/worktree.d.ts +47 -1
  289. package/dist/worktree.d.ts.map +1 -1
  290. package/dist/worktree.js +280 -94
  291. package/dist/worktree.js.map +1 -1
  292. package/package.json +12 -14
  293. package/src/claude.ts +68 -70
  294. package/src/cli/ui/App.solid.tsx +1823 -0
  295. package/src/cli/ui/__tests__/solid/AppSolid.cleanup.test.tsx +255 -0
  296. package/src/cli/ui/__tests__/solid/BranchListScreen.test.tsx +243 -0
  297. package/src/cli/ui/__tests__/solid/components/QuickStartStep.test.tsx +237 -0
  298. package/src/cli/ui/__tests__/solid/components/WizardPopup.test.tsx +231 -0
  299. package/src/cli/ui/__tests__/solid/components/WizardSteps.test.tsx +238 -0
  300. package/src/cli/ui/__tests__/utils/branchFormatter.test.ts +7 -289
  301. package/src/cli/ui/__tests__/utils/clipboard.test.ts +3 -3
  302. package/src/cli/ui/__tests__/utils/statisticsCalculator.test.ts +1 -1
  303. package/src/cli/ui/components/solid/Footer.tsx +36 -0
  304. package/src/cli/ui/components/{parts → solid}/Header.tsx +17 -28
  305. package/src/cli/ui/components/solid/HelpOverlay.tsx +194 -0
  306. package/src/cli/ui/components/solid/QuickStartStep.tsx +197 -0
  307. package/src/cli/ui/components/{parts → solid}/ScrollableList.tsx +7 -8
  308. package/src/cli/ui/components/solid/SearchInput.tsx +42 -0
  309. package/src/cli/ui/components/solid/SelectInput.tsx +84 -0
  310. package/src/cli/ui/components/solid/Stats.tsx +92 -0
  311. package/src/cli/ui/components/solid/TextInput.tsx +49 -0
  312. package/src/cli/ui/components/solid/WizardController.tsx +384 -0
  313. package/src/cli/ui/components/solid/WizardPopup.tsx +135 -0
  314. package/src/cli/ui/components/solid/WizardSteps.tsx +793 -0
  315. package/src/cli/ui/core/index.ts +17 -0
  316. package/src/cli/ui/core/keybindings.ts +367 -0
  317. package/src/cli/ui/core/theme.ts +234 -0
  318. package/src/cli/ui/core/types.ts +235 -0
  319. package/src/cli/ui/hooks/solid/useAsyncOperation.ts +76 -0
  320. package/src/cli/ui/hooks/solid/useFilter.ts +86 -0
  321. package/src/cli/ui/hooks/solid/useGitOperations.ts +80 -0
  322. package/src/cli/ui/hooks/solid/useKeyHandler.ts +103 -0
  323. package/src/cli/ui/hooks/solid/useScrollableList.ts +149 -0
  324. package/src/cli/ui/hooks/solid/useSelection.ts +77 -0
  325. package/src/cli/ui/hooks/solid/useTerminalSize.ts +22 -0
  326. package/src/cli/ui/index.solid.ts +28 -0
  327. package/src/cli/ui/screens/solid/BranchListScreen.tsx +1050 -0
  328. package/src/cli/ui/screens/solid/ConfirmScreen.tsx +74 -0
  329. package/src/cli/ui/screens/solid/EnvironmentScreen.tsx +159 -0
  330. package/src/cli/ui/screens/solid/ErrorScreen.tsx +42 -0
  331. package/src/cli/ui/screens/solid/InputScreen.tsx +55 -0
  332. package/src/cli/ui/screens/solid/LoadingIndicator.tsx +77 -0
  333. package/src/cli/ui/screens/solid/LogDetailScreen.tsx +75 -0
  334. package/src/cli/ui/screens/solid/LogScreen.tsx +175 -0
  335. package/src/cli/ui/screens/solid/ProfileEnvScreen.tsx +192 -0
  336. package/src/cli/ui/screens/solid/ProfileScreen.tsx +98 -0
  337. package/src/cli/ui/screens/solid/SelectorScreen.tsx +170 -0
  338. package/src/cli/ui/screens/solid/SettingsScreen.tsx +50 -0
  339. package/src/cli/ui/screens/solid/WorktreeCreateScreen.tsx +136 -0
  340. package/src/cli/ui/screens/solid/WorktreeDeleteScreen.tsx +40 -0
  341. package/src/cli/ui/stores/appStore.ts +208 -0
  342. package/src/cli/ui/stores/branchStore.ts +357 -0
  343. package/src/cli/ui/stores/index.ts +31 -0
  344. package/src/cli/ui/stores/uiStore.ts +226 -0
  345. package/src/cli/ui/types.ts +20 -3
  346. package/src/cli/ui/utils/__tests__/branchFormatter.test.ts +180 -0
  347. package/src/cli/ui/utils/branchFormatter.ts +8 -215
  348. package/src/cli/ui/utils/continueSession.ts +44 -0
  349. package/src/cli/ui/utils/modelOptions.test.ts +1 -1
  350. package/src/codex.ts +100 -43
  351. package/src/config/__tests__/saveSession.test.ts +143 -0
  352. package/src/config/builtin-coding-agents.ts +19 -3
  353. package/src/config/index.ts +4 -0
  354. package/src/config/tools.ts +16 -0
  355. package/src/gemini.ts +58 -43
  356. package/src/index.test.ts +12 -12
  357. package/src/index.ts +164 -142
  358. package/src/launcher.ts +22 -3
  359. package/src/logging/logger.ts +32 -10
  360. package/src/opentui/index.solid.ts +1 -0
  361. package/src/repositories/worktree.repository.ts +8 -0
  362. package/src/services/__tests__/BatchMergeService.test.ts +62 -66
  363. package/src/services/__tests__/WorktreeOrchestrator.test.ts +8 -7
  364. package/src/services/codingAgentResolver.ts +30 -4
  365. package/src/services/dependency-installer.ts +0 -7
  366. package/src/types/api.ts +3 -0
  367. package/src/types/coding-agent.ts +85 -0
  368. package/src/types/tools.ts +19 -0
  369. package/src/utils/__tests__/npmRegistry.test.ts +250 -0
  370. package/src/utils/__tests__/prompt.test.ts +4 -5
  371. package/src/utils/coding-agent-colors.ts +165 -0
  372. package/src/utils/command.ts +10 -1
  373. package/src/utils/error-utils.ts +133 -0
  374. package/src/utils/npmRegistry.ts +249 -0
  375. package/src/utils/prompt.ts +1 -1
  376. package/src/utils/session/index.ts +10 -2
  377. package/src/utils/session/parsers/codex.ts +9 -1
  378. package/src/utils/session/parsers/index.ts +6 -0
  379. package/src/utils/session/parsers/opencode.ts +110 -0
  380. package/src/utils/session/types.ts +5 -0
  381. package/src/utils/terminal.ts +24 -0
  382. package/src/utils.test.ts +1 -1
  383. package/src/utils.ts +37 -4
  384. package/src/web/client/src/components/CodingAgentLaunchModal.tsx +12 -21
  385. package/src/web/client/src/components/branch-detail/BranchInfoCards.tsx +16 -1
  386. package/src/web/client/src/components/branch-detail/SessionHistoryTable.tsx +7 -1
  387. package/src/web/client/src/components/branch-detail/ToolLauncher.tsx +11 -6
  388. package/src/web/client/src/lib/coding-agent-colors.ts +149 -0
  389. package/src/web/client/src/pages/BranchDetailPage.tsx +11 -11
  390. package/src/web/server/pty/manager.ts +139 -0
  391. package/src/web/server/routes/sessions.ts +6 -0
  392. package/src/web/server/services/branches.ts +11 -8
  393. package/src/web/server/services/worktrees.ts +2 -2
  394. package/src/worktree.ts +366 -107
  395. package/dist/cli/ui/components/App.d.ts +0 -25
  396. package/dist/cli/ui/components/App.d.ts.map +0 -1
  397. package/dist/cli/ui/components/App.js +0 -988
  398. package/dist/cli/ui/components/App.js.map +0 -1
  399. package/dist/cli/ui/components/common/Confirm.d.ts +0 -13
  400. package/dist/cli/ui/components/common/Confirm.d.ts.map +0 -1
  401. package/dist/cli/ui/components/common/Confirm.js +0 -20
  402. package/dist/cli/ui/components/common/Confirm.js.map +0 -1
  403. package/dist/cli/ui/components/common/ErrorBoundary.d.ts +0 -23
  404. package/dist/cli/ui/components/common/ErrorBoundary.d.ts.map +0 -1
  405. package/dist/cli/ui/components/common/ErrorBoundary.js +0 -37
  406. package/dist/cli/ui/components/common/ErrorBoundary.js.map +0 -1
  407. package/dist/cli/ui/components/common/Input.d.ts +0 -19
  408. package/dist/cli/ui/components/common/Input.d.ts.map +0 -1
  409. package/dist/cli/ui/components/common/Input.js +0 -22
  410. package/dist/cli/ui/components/common/Input.js.map +0 -1
  411. package/dist/cli/ui/components/common/LoadingIndicator.d.ts +0 -19
  412. package/dist/cli/ui/components/common/LoadingIndicator.d.ts.map +0 -1
  413. package/dist/cli/ui/components/common/LoadingIndicator.js +0 -61
  414. package/dist/cli/ui/components/common/LoadingIndicator.js.map +0 -1
  415. package/dist/cli/ui/components/common/Select.d.ts +0 -38
  416. package/dist/cli/ui/components/common/Select.d.ts.map +0 -1
  417. package/dist/cli/ui/components/common/Select.js +0 -151
  418. package/dist/cli/ui/components/common/Select.js.map +0 -1
  419. package/dist/cli/ui/components/common/SpinnerIcon.d.ts +0 -20
  420. package/dist/cli/ui/components/common/SpinnerIcon.d.ts.map +0 -1
  421. package/dist/cli/ui/components/common/SpinnerIcon.js +0 -61
  422. package/dist/cli/ui/components/common/SpinnerIcon.js.map +0 -1
  423. package/dist/cli/ui/components/parts/Footer.d.ts +0 -15
  424. package/dist/cli/ui/components/parts/Footer.d.ts.map +0 -1
  425. package/dist/cli/ui/components/parts/Footer.js +0 -20
  426. package/dist/cli/ui/components/parts/Footer.js.map +0 -1
  427. package/dist/cli/ui/components/parts/Header.d.ts.map +0 -1
  428. package/dist/cli/ui/components/parts/Header.js +0 -24
  429. package/dist/cli/ui/components/parts/Header.js.map +0 -1
  430. package/dist/cli/ui/components/parts/MergeStatusList.d.ts +0 -13
  431. package/dist/cli/ui/components/parts/MergeStatusList.d.ts.map +0 -1
  432. package/dist/cli/ui/components/parts/MergeStatusList.js +0 -52
  433. package/dist/cli/ui/components/parts/MergeStatusList.js.map +0 -1
  434. package/dist/cli/ui/components/parts/ProgressBar.d.ts +0 -13
  435. package/dist/cli/ui/components/parts/ProgressBar.d.ts.map +0 -1
  436. package/dist/cli/ui/components/parts/ProgressBar.js +0 -53
  437. package/dist/cli/ui/components/parts/ProgressBar.js.map +0 -1
  438. package/dist/cli/ui/components/parts/ScrollableList.d.ts +0 -12
  439. package/dist/cli/ui/components/parts/ScrollableList.d.ts.map +0 -1
  440. package/dist/cli/ui/components/parts/ScrollableList.js +0 -11
  441. package/dist/cli/ui/components/parts/ScrollableList.js.map +0 -1
  442. package/dist/cli/ui/components/parts/Stats.d.ts +0 -10
  443. package/dist/cli/ui/components/parts/Stats.d.ts.map +0 -1
  444. package/dist/cli/ui/components/parts/Stats.js +0 -55
  445. package/dist/cli/ui/components/parts/Stats.js.map +0 -1
  446. package/dist/cli/ui/components/screens/BatchMergeProgressScreen.d.ts +0 -17
  447. package/dist/cli/ui/components/screens/BatchMergeProgressScreen.d.ts.map +0 -1
  448. package/dist/cli/ui/components/screens/BatchMergeProgressScreen.js +0 -42
  449. package/dist/cli/ui/components/screens/BatchMergeProgressScreen.js.map +0 -1
  450. package/dist/cli/ui/components/screens/BatchMergeResultScreen.d.ts +0 -17
  451. package/dist/cli/ui/components/screens/BatchMergeResultScreen.d.ts.map +0 -1
  452. package/dist/cli/ui/components/screens/BatchMergeResultScreen.js +0 -72
  453. package/dist/cli/ui/components/screens/BatchMergeResultScreen.js.map +0 -1
  454. package/dist/cli/ui/components/screens/BranchCreatorScreen.d.ts +0 -18
  455. package/dist/cli/ui/components/screens/BranchCreatorScreen.d.ts.map +0 -1
  456. package/dist/cli/ui/components/screens/BranchCreatorScreen.js +0 -151
  457. package/dist/cli/ui/components/screens/BranchCreatorScreen.js.map +0 -1
  458. package/dist/cli/ui/components/screens/BranchListScreen.d.ts.map +0 -1
  459. package/dist/cli/ui/components/screens/BranchListScreen.js +0 -476
  460. package/dist/cli/ui/components/screens/BranchListScreen.js.map +0 -1
  461. package/dist/cli/ui/components/screens/BranchQuickStartScreen.d.ts +0 -30
  462. package/dist/cli/ui/components/screens/BranchQuickStartScreen.d.ts.map +0 -1
  463. package/dist/cli/ui/components/screens/BranchQuickStartScreen.js +0 -145
  464. package/dist/cli/ui/components/screens/BranchQuickStartScreen.js.map +0 -1
  465. package/dist/cli/ui/components/screens/CodingAgentSelectorScreen.d.ts +0 -27
  466. package/dist/cli/ui/components/screens/CodingAgentSelectorScreen.d.ts.map +0 -1
  467. package/dist/cli/ui/components/screens/CodingAgentSelectorScreen.js +0 -93
  468. package/dist/cli/ui/components/screens/CodingAgentSelectorScreen.js.map +0 -1
  469. package/dist/cli/ui/components/screens/EnvironmentProfileScreen.d.ts +0 -19
  470. package/dist/cli/ui/components/screens/EnvironmentProfileScreen.d.ts.map +0 -1
  471. package/dist/cli/ui/components/screens/EnvironmentProfileScreen.js +0 -577
  472. package/dist/cli/ui/components/screens/EnvironmentProfileScreen.js.map +0 -1
  473. package/dist/cli/ui/components/screens/ExecutionModeSelectorScreen.d.ts +0 -45
  474. package/dist/cli/ui/components/screens/ExecutionModeSelectorScreen.d.ts.map +0 -1
  475. package/dist/cli/ui/components/screens/ExecutionModeSelectorScreen.js +0 -95
  476. package/dist/cli/ui/components/screens/ExecutionModeSelectorScreen.js.map +0 -1
  477. package/dist/cli/ui/components/screens/LogDatePickerScreen.d.ts +0 -10
  478. package/dist/cli/ui/components/screens/LogDatePickerScreen.d.ts.map +0 -1
  479. package/dist/cli/ui/components/screens/LogDatePickerScreen.js +0 -44
  480. package/dist/cli/ui/components/screens/LogDatePickerScreen.js.map +0 -1
  481. package/dist/cli/ui/components/screens/LogDetailScreen.d.ts.map +0 -1
  482. package/dist/cli/ui/components/screens/LogDetailScreen.js +0 -34
  483. package/dist/cli/ui/components/screens/LogDetailScreen.js.map +0 -1
  484. package/dist/cli/ui/components/screens/LogListScreen.d.ts.map +0 -1
  485. package/dist/cli/ui/components/screens/LogListScreen.js +0 -107
  486. package/dist/cli/ui/components/screens/LogListScreen.js.map +0 -1
  487. package/dist/cli/ui/components/screens/ModelSelectorScreen.d.ts +0 -24
  488. package/dist/cli/ui/components/screens/ModelSelectorScreen.d.ts.map +0 -1
  489. package/dist/cli/ui/components/screens/ModelSelectorScreen.js +0 -197
  490. package/dist/cli/ui/components/screens/ModelSelectorScreen.js.map +0 -1
  491. package/dist/cli/ui/components/screens/PRCleanupScreen.d.ts +0 -29
  492. package/dist/cli/ui/components/screens/PRCleanupScreen.d.ts.map +0 -1
  493. package/dist/cli/ui/components/screens/PRCleanupScreen.js +0 -92
  494. package/dist/cli/ui/components/screens/PRCleanupScreen.js.map +0 -1
  495. package/dist/cli/ui/components/screens/SessionSelectorScreen.d.ts +0 -31
  496. package/dist/cli/ui/components/screens/SessionSelectorScreen.d.ts.map +0 -1
  497. package/dist/cli/ui/components/screens/SessionSelectorScreen.js +0 -67
  498. package/dist/cli/ui/components/screens/SessionSelectorScreen.js.map +0 -1
  499. package/dist/cli/ui/hooks/useAppInput.d.ts +0 -21
  500. package/dist/cli/ui/hooks/useAppInput.d.ts.map +0 -1
  501. package/dist/cli/ui/hooks/useAppInput.js +0 -138
  502. package/dist/cli/ui/hooks/useAppInput.js.map +0 -1
  503. package/dist/cli/ui/hooks/useBatchMerge.d.ts +0 -17
  504. package/dist/cli/ui/hooks/useBatchMerge.d.ts.map +0 -1
  505. package/dist/cli/ui/hooks/useBatchMerge.js +0 -77
  506. package/dist/cli/ui/hooks/useBatchMerge.js.map +0 -1
  507. package/dist/cli/ui/hooks/useGitData.d.ts +0 -21
  508. package/dist/cli/ui/hooks/useGitData.d.ts.map +0 -1
  509. package/dist/cli/ui/hooks/useGitData.js +0 -229
  510. package/dist/cli/ui/hooks/useGitData.js.map +0 -1
  511. package/dist/cli/ui/hooks/useProfiles.d.ts +0 -41
  512. package/dist/cli/ui/hooks/useProfiles.d.ts.map +0 -1
  513. package/dist/cli/ui/hooks/useProfiles.js +0 -136
  514. package/dist/cli/ui/hooks/useProfiles.js.map +0 -1
  515. package/dist/cli/ui/hooks/useScreenState.d.ts +0 -12
  516. package/dist/cli/ui/hooks/useScreenState.d.ts.map +0 -1
  517. package/dist/cli/ui/hooks/useScreenState.js +0 -30
  518. package/dist/cli/ui/hooks/useScreenState.js.map +0 -1
  519. package/dist/cli/ui/hooks/useTerminalSize.d.ts +0 -9
  520. package/dist/cli/ui/hooks/useTerminalSize.d.ts.map +0 -1
  521. package/dist/cli/ui/hooks/useTerminalSize.js +0 -24
  522. package/dist/cli/ui/hooks/useTerminalSize.js.map +0 -1
  523. package/dist/cli/ui/hooks/useToolStatus.d.ts +0 -30
  524. package/dist/cli/ui/hooks/useToolStatus.d.ts.map +0 -1
  525. package/dist/cli/ui/hooks/useToolStatus.js +0 -49
  526. package/dist/cli/ui/hooks/useToolStatus.js.map +0 -1
  527. package/dist/cli/ui/screens/BranchActionSelectorScreen.d.ts +0 -24
  528. package/dist/cli/ui/screens/BranchActionSelectorScreen.d.ts.map +0 -1
  529. package/dist/cli/ui/screens/BranchActionSelectorScreen.js +0 -65
  530. package/dist/cli/ui/screens/BranchActionSelectorScreen.js.map +0 -1
  531. package/dist/client/assets/index-LNPtOrn3.js +0 -78
  532. package/src/cli/ui/__tests__/SKIPPED_TESTS.md +0 -119
  533. package/src/cli/ui/__tests__/acceptance/branchList.acceptance.test.tsx.skip +0 -239
  534. package/src/cli/ui/__tests__/acceptance/navigation.acceptance.test.tsx +0 -225
  535. package/src/cli/ui/__tests__/acceptance/realtimeUpdate.acceptance.test.tsx.skip +0 -219
  536. package/src/cli/ui/__tests__/components/App.protected-branch.test.tsx +0 -212
  537. package/src/cli/ui/__tests__/components/App.shortcuts.test.tsx +0 -440
  538. package/src/cli/ui/__tests__/components/App.test.tsx +0 -365
  539. package/src/cli/ui/__tests__/components/ModelSelectorScreen.initial.test.tsx +0 -91
  540. package/src/cli/ui/__tests__/components/common/Confirm.test.tsx +0 -80
  541. package/src/cli/ui/__tests__/components/common/ErrorBoundary.test.tsx +0 -104
  542. package/src/cli/ui/__tests__/components/common/Input.test.tsx +0 -100
  543. package/src/cli/ui/__tests__/components/common/LoadingIndicator.test.tsx +0 -148
  544. package/src/cli/ui/__tests__/components/common/Select.memo.test.tsx +0 -255
  545. package/src/cli/ui/__tests__/components/common/Select.test.tsx +0 -335
  546. package/src/cli/ui/__tests__/components/parts/Footer.test.tsx +0 -65
  547. package/src/cli/ui/__tests__/components/parts/Header.test.tsx +0 -55
  548. package/src/cli/ui/__tests__/components/parts/ScrollableList.test.tsx +0 -69
  549. package/src/cli/ui/__tests__/components/parts/Stats.test.tsx +0 -148
  550. package/src/cli/ui/__tests__/components/screens/BranchCreatorScreen.test.tsx +0 -253
  551. package/src/cli/ui/__tests__/components/screens/BranchListScreen.test.tsx +0 -1070
  552. package/src/cli/ui/__tests__/components/screens/BranchQuickStartScreen.test.tsx +0 -142
  553. package/src/cli/ui/__tests__/components/screens/CodingAgentSelectorScreen.test.tsx +0 -174
  554. package/src/cli/ui/__tests__/components/screens/ExecutionModeSelectorScreen.test.tsx +0 -182
  555. package/src/cli/ui/__tests__/components/screens/LogDetailScreen.test.tsx +0 -57
  556. package/src/cli/ui/__tests__/components/screens/LogListScreen.test.tsx +0 -102
  557. package/src/cli/ui/__tests__/components/screens/PRCleanupScreen.test.tsx +0 -216
  558. package/src/cli/ui/__tests__/components/screens/SessionSelectorScreen.test.tsx +0 -147
  559. package/src/cli/ui/__tests__/hooks/useGitData.nonblocking.test.tsx +0 -206
  560. package/src/cli/ui/__tests__/hooks/useGitData.test.ts +0 -197
  561. package/src/cli/ui/__tests__/hooks/useGitData.test.ts.skip +0 -228
  562. package/src/cli/ui/__tests__/hooks/useScreenState.test.ts +0 -147
  563. package/src/cli/ui/__tests__/hooks/useTerminalSize.test.ts +0 -99
  564. package/src/cli/ui/__tests__/integration/branchList.test.tsx.skip +0 -253
  565. package/src/cli/ui/__tests__/integration/edgeCases.test.tsx +0 -436
  566. package/src/cli/ui/__tests__/integration/navigation.test.tsx +0 -514
  567. package/src/cli/ui/__tests__/integration/realtimeUpdate.test.tsx +0 -509
  568. package/src/cli/ui/__tests__/integration/realtimeUpdate.test.tsx.skip +0 -216
  569. package/src/cli/ui/__tests__/performance/branchList.performance.test.tsx +0 -193
  570. package/src/cli/ui/__tests__/performance/useMemoOptimization.test.tsx +0 -234
  571. package/src/cli/ui/components/App.tsx +0 -1456
  572. package/src/cli/ui/components/common/Confirm.tsx +0 -44
  573. package/src/cli/ui/components/common/ErrorBoundary.tsx +0 -60
  574. package/src/cli/ui/components/common/Input.tsx +0 -58
  575. package/src/cli/ui/components/common/LoadingIndicator.tsx +0 -98
  576. package/src/cli/ui/components/common/Select.tsx +0 -247
  577. package/src/cli/ui/components/common/SpinnerIcon.tsx +0 -86
  578. package/src/cli/ui/components/parts/Footer.tsx +0 -41
  579. package/src/cli/ui/components/parts/Header.test.tsx +0 -75
  580. package/src/cli/ui/components/parts/MergeStatusList.tsx +0 -75
  581. package/src/cli/ui/components/parts/ProgressBar.tsx +0 -73
  582. package/src/cli/ui/components/parts/Stats.tsx +0 -88
  583. package/src/cli/ui/components/screens/BatchMergeProgressScreen.tsx +0 -74
  584. package/src/cli/ui/components/screens/BatchMergeResultScreen.tsx +0 -108
  585. package/src/cli/ui/components/screens/BranchCreatorScreen.tsx +0 -242
  586. package/src/cli/ui/components/screens/BranchListScreen.tsx +0 -744
  587. package/src/cli/ui/components/screens/BranchQuickStartScreen.tsx +0 -241
  588. package/src/cli/ui/components/screens/CodingAgentSelectorScreen.tsx +0 -159
  589. package/src/cli/ui/components/screens/EnvironmentProfileScreen.tsx +0 -928
  590. package/src/cli/ui/components/screens/ExecutionModeSelectorScreen.tsx +0 -176
  591. package/src/cli/ui/components/screens/LogDatePickerScreen.tsx +0 -83
  592. package/src/cli/ui/components/screens/LogDetailScreen.tsx +0 -67
  593. package/src/cli/ui/components/screens/LogListScreen.tsx +0 -192
  594. package/src/cli/ui/components/screens/ModelSelectorScreen.tsx +0 -320
  595. package/src/cli/ui/components/screens/PRCleanupScreen.tsx +0 -171
  596. package/src/cli/ui/components/screens/SessionSelectorScreen.tsx +0 -135
  597. package/src/cli/ui/hooks/useAppInput.ts +0 -172
  598. package/src/cli/ui/hooks/useBatchMerge.ts +0 -96
  599. package/src/cli/ui/hooks/useGitData.ts +0 -347
  600. package/src/cli/ui/hooks/useProfiles.ts +0 -211
  601. package/src/cli/ui/hooks/useScreenState.ts +0 -44
  602. package/src/cli/ui/hooks/useTerminalSize.ts +0 -33
  603. package/src/cli/ui/hooks/useToolStatus.ts +0 -68
  604. package/src/cli/ui/screens/BranchActionSelectorScreen.tsx +0 -111
  605. package/src/cli/ui/screens/__tests__/BranchActionSelectorScreen.test.tsx +0 -264
@@ -1,577 +0,0 @@
1
- /**
2
- * 環境変数プロファイルエディター画面
3
- *
4
- * プロファイルの選択・作成・削除・環境変数の編集を行います。
5
- * @see specs/SPEC-dafff079/spec.md
6
- */
7
- import React, { useState, useCallback, useMemo, useEffect } from "react";
8
- import { Box, Text } from "ink";
9
- import { Header } from "../parts/Header.js";
10
- import { Footer } from "../parts/Footer.js";
11
- import { Select } from "../common/Select.js";
12
- import { Input } from "../common/Input.js";
13
- import { Confirm } from "../common/Confirm.js";
14
- import { useAppInput } from "../../hooks/useAppInput.js";
15
- import { useTerminalSize } from "../../hooks/useTerminalSize.js";
16
- import { useProfiles } from "../../hooks/useProfiles.js";
17
- import { isValidProfileName } from "../../../../types/profiles.js";
18
- const UI_CHROME_HEIGHT = 20; // ヘッダー/フッター/余白などの固定行数
19
- const ENV_VAR_KEY_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
20
- const NO_PROFILE_VALUE = "__gwt_no_profile__";
21
- /**
22
- * 環境変数プロファイルエディター画面
23
- */
24
- export function EnvironmentProfileScreen({ onBack, version, }) {
25
- const { rows } = useTerminalSize();
26
- const { profiles, loading, error, activeProfileName, setActiveProfile, createProfile, deleteProfile, updateEnvVar, deleteEnvVar, } = useProfiles();
27
- // 画面モード
28
- const [mode, setMode] = useState("list");
29
- const [selection, setSelection] = useState({
30
- profileIndex: 0,
31
- envIndex: 0,
32
- osEnvIndex: 0,
33
- focus: "profiles",
34
- selectedProfileName: null,
35
- });
36
- const [profileCreation, setProfileCreation] = useState({
37
- name: "",
38
- displayName: "",
39
- });
40
- const [envEdit, setEnvEdit] = useState({
41
- key: "",
42
- value: "",
43
- selectedKey: null,
44
- });
45
- // バリデーションエラー
46
- const [validationError, setValidationError] = useState(null);
47
- const profileIndex = selection.profileIndex;
48
- const envIndex = selection.envIndex;
49
- const osEnvIndex = selection.osEnvIndex;
50
- const focus = selection.focus;
51
- const selectedProfileName = selection.selectedProfileName;
52
- const newProfileName = profileCreation.name;
53
- const newProfileDisplayName = profileCreation.displayName;
54
- const newEnvKey = envEdit.key;
55
- const newEnvValue = envEdit.value;
56
- const selectedEnvKey = envEdit.selectedKey;
57
- const setProfileIndex = useCallback((index) => {
58
- setSelection((prev) => ({ ...prev, profileIndex: index }));
59
- }, []);
60
- const setEnvIndex = useCallback((updater) => {
61
- setSelection((prev) => ({
62
- ...prev,
63
- envIndex: typeof updater === "function" ? updater(prev.envIndex) : updater,
64
- }));
65
- }, []);
66
- const setOsEnvIndex = useCallback((updater) => {
67
- setSelection((prev) => ({
68
- ...prev,
69
- osEnvIndex: typeof updater === "function" ? updater(prev.osEnvIndex) : updater,
70
- }));
71
- }, []);
72
- const setFocus = useCallback((updater) => {
73
- setSelection((prev) => ({
74
- ...prev,
75
- focus: typeof updater === "function" ? updater(prev.focus) : updater,
76
- }));
77
- }, []);
78
- const setSelectedProfileName = useCallback((name) => {
79
- setSelection((prev) => ({ ...prev, selectedProfileName: name }));
80
- }, []);
81
- const setNewProfileName = useCallback((value) => {
82
- setProfileCreation((prev) => ({ ...prev, name: value }));
83
- }, []);
84
- const setNewProfileDisplayName = useCallback((value) => {
85
- setProfileCreation((prev) => ({ ...prev, displayName: value }));
86
- }, []);
87
- const setNewEnvKey = useCallback((value) => {
88
- setEnvEdit((prev) => ({ ...prev, key: value }));
89
- }, []);
90
- const setNewEnvValue = useCallback((value) => {
91
- setEnvEdit((prev) => ({ ...prev, value }));
92
- }, []);
93
- const setSelectedEnvKey = useCallback((key) => {
94
- setEnvEdit((prev) => ({ ...prev, selectedKey: key }));
95
- }, []);
96
- // プロファイル一覧アイテム
97
- const profileItems = useMemo(() => {
98
- if (!profiles)
99
- return [];
100
- const items = Object.entries(profiles.profiles).map(([name, profile]) => ({
101
- label: `${profile.displayName}${name === activeProfileName ? " (active)" : ""}`,
102
- value: name,
103
- profileName: name,
104
- isActive: name === activeProfileName,
105
- }));
106
- return [
107
- {
108
- label: `(none)${activeProfileName === null ? " (active)" : ""}`,
109
- value: NO_PROFILE_VALUE,
110
- profileName: null,
111
- isActive: activeProfileName === null,
112
- },
113
- ...items,
114
- ];
115
- }, [profiles, activeProfileName]);
116
- // 現在選択中のプロファイル
117
- const currentProfile = selectedProfileName && profiles
118
- ? profiles.profiles[selectedProfileName]
119
- : null;
120
- // 環境変数一覧アイテム
121
- const envItems = useMemo(() => {
122
- if (!currentProfile)
123
- return [];
124
- return Object.entries(currentProfile.env).map(([key, value]) => ({
125
- label: `${key}=${value}`,
126
- value: key,
127
- key,
128
- envValue: value,
129
- }));
130
- }, [currentProfile]);
131
- // OS環境変数(プロファイルで上書きされるものをハイライト)
132
- const osEnvItems = useMemo(() => {
133
- const profileEnvKeys = new Set(currentProfile ? Object.keys(currentProfile.env) : []);
134
- return Object.entries(process.env)
135
- .filter(([, value]) => value !== undefined)
136
- .map(([key, value]) => ({
137
- key,
138
- value: value ?? "",
139
- isOverwritten: profileEnvKeys.has(key),
140
- }))
141
- .sort((a, b) => a.key.localeCompare(b.key));
142
- }, [currentProfile]);
143
- // 配列サイズ変更に追従してインデックスをクランプ(削除後の範囲外アクセス防止)
144
- useEffect(() => {
145
- if (profileItems.length === 0) {
146
- if (profileIndex !== 0) {
147
- setProfileIndex(0);
148
- }
149
- return;
150
- }
151
- if (profileIndex >= profileItems.length) {
152
- setProfileIndex(profileItems.length - 1);
153
- }
154
- }, [profileItems.length, profileIndex, setProfileIndex]);
155
- useEffect(() => {
156
- if (envItems.length === 0) {
157
- if (envIndex !== 0) {
158
- setEnvIndex(0);
159
- }
160
- return;
161
- }
162
- if (envIndex >= envItems.length) {
163
- setEnvIndex(envItems.length - 1);
164
- }
165
- }, [envItems.length, envIndex, setEnvIndex]);
166
- useEffect(() => {
167
- if (osEnvItems.length === 0) {
168
- if (osEnvIndex !== 0) {
169
- setOsEnvIndex(0);
170
- }
171
- return;
172
- }
173
- if (osEnvIndex >= osEnvItems.length) {
174
- setOsEnvIndex(osEnvItems.length - 1);
175
- }
176
- }, [osEnvItems.length, osEnvIndex, setOsEnvIndex]);
177
- // プロファイルを選択してアクティブ化
178
- const handleActivateProfile = useCallback(async (item) => {
179
- try {
180
- await setActiveProfile(item.profileName);
181
- if (item.profileName === null) {
182
- setSelectedProfileName(null);
183
- setFocus("profiles");
184
- setProfileIndex(0);
185
- setMode("list");
186
- return;
187
- }
188
- setSelectedProfileName(item.profileName);
189
- setFocus("env"); // viewモードでは環境変数にフォーカス
190
- setMode("view");
191
- }
192
- catch {
193
- // エラー状態は useProfiles フック側で管理するため、ここでは握りつぶす
194
- }
195
- }, [setActiveProfile, setSelectedProfileName, setFocus, setProfileIndex]);
196
- // 新規プロファイル作成開始
197
- const handleStartCreateProfile = useCallback(() => {
198
- setNewProfileName("");
199
- setNewProfileDisplayName("");
200
- setValidationError(null);
201
- setMode("create-name");
202
- }, []);
203
- // 新規プロファイル名入力完了
204
- const handleCreateNameSubmit = useCallback((name) => {
205
- if (!isValidProfileName(name)) {
206
- setValidationError("Invalid profile name. Use lowercase letters, numbers, and hyphens (must start and end with a letter or number).");
207
- return;
208
- }
209
- setValidationError(null);
210
- setNewProfileName(name);
211
- setNewProfileDisplayName(name);
212
- setMode("create-display");
213
- }, []);
214
- // 新規プロファイル作成完了
215
- const handleCreateProfileSubmit = useCallback(async (displayName) => {
216
- try {
217
- await createProfile(newProfileName, {
218
- displayName,
219
- env: {},
220
- });
221
- setSelectedProfileName(newProfileName);
222
- setFocus("env"); // viewモードでは環境変数にフォーカス
223
- setMode("view");
224
- }
225
- catch {
226
- // エラー状態は useProfiles フック側で管理するため、ここでは一覧に戻す
227
- setMode("list");
228
- }
229
- }, [createProfile, newProfileName]);
230
- // プロファイル削除確認
231
- const handleConfirmDeleteProfile = useCallback(async (confirmed) => {
232
- if (confirmed && selectedProfileName) {
233
- try {
234
- await deleteProfile(selectedProfileName);
235
- setSelectedProfileName(null);
236
- }
237
- catch {
238
- // エラー状態は useProfiles フック側で管理するため、ここでは握りつぶす
239
- }
240
- }
241
- setMode("list");
242
- }, [deleteProfile, selectedProfileName]);
243
- // 環境変数追加開始
244
- const handleStartAddEnv = useCallback(() => {
245
- setNewEnvKey("");
246
- setNewEnvValue("");
247
- setValidationError(null);
248
- setMode("add-env-key");
249
- }, []);
250
- // 環境変数キー入力完了
251
- const handleEnvKeySubmit = useCallback((key) => {
252
- const trimmedKey = key.trim();
253
- if (!trimmedKey || !ENV_VAR_KEY_PATTERN.test(trimmedKey)) {
254
- setValidationError("Invalid variable name. Use letters, numbers, and underscores (must start with a letter or underscore).");
255
- setNewEnvKey(trimmedKey);
256
- return;
257
- }
258
- setValidationError(null);
259
- setNewEnvKey(trimmedKey);
260
- setMode("add-env-value");
261
- }, []);
262
- // 環境変数追加完了
263
- const handleEnvValueSubmit = useCallback(async (value) => {
264
- if (selectedProfileName) {
265
- try {
266
- await updateEnvVar(selectedProfileName, newEnvKey, value);
267
- }
268
- catch {
269
- // エラー状態は useProfiles フック側で管理するため、ここでは握りつぶす
270
- }
271
- }
272
- setMode("view");
273
- }, [updateEnvVar, selectedProfileName, newEnvKey]);
274
- // 環境変数編集開始
275
- const handleStartEditEnv = useCallback((key, currentValue) => {
276
- setSelectedEnvKey(key);
277
- setNewEnvValue(currentValue);
278
- setMode("edit-env-value");
279
- }, []);
280
- // 環境変数編集完了
281
- const handleEditEnvSubmit = useCallback(async (value) => {
282
- if (selectedProfileName && selectedEnvKey) {
283
- try {
284
- await updateEnvVar(selectedProfileName, selectedEnvKey, value);
285
- }
286
- catch {
287
- // エラー状態は useProfiles フック側で管理するため、ここでは握りつぶす
288
- }
289
- }
290
- setMode("view");
291
- }, [updateEnvVar, selectedProfileName, selectedEnvKey]);
292
- // 環境変数削除確認
293
- const handleConfirmDeleteEnv = useCallback(async (confirmed) => {
294
- if (confirmed && selectedProfileName && selectedEnvKey) {
295
- try {
296
- await deleteEnvVar(selectedProfileName, selectedEnvKey);
297
- }
298
- catch {
299
- // エラー状態は useProfiles フック側で管理するため、ここでは握りつぶす
300
- }
301
- }
302
- setMode("view");
303
- }, [deleteEnvVar, selectedProfileName, selectedEnvKey]);
304
- // キーボード入力ハンドリング
305
- useAppInput((input, key) => {
306
- // 入力モード時は他のキーハンドリングをスキップ
307
- if (mode === "create-name" ||
308
- mode === "create-display" ||
309
- mode === "add-env-key" ||
310
- mode === "add-env-value" ||
311
- mode === "edit-env-value") {
312
- if (key.escape) {
313
- setMode(mode.startsWith("create") ? "list" : "view");
314
- }
315
- return;
316
- }
317
- // 確認ダイアログ時は Confirm コンポーネントがハンドリング
318
- if (mode === "confirm-delete-profile" || mode === "confirm-delete-env") {
319
- return;
320
- }
321
- // Escape で戻る
322
- if (key.escape) {
323
- if (mode === "view") {
324
- setMode("list");
325
- setSelectedProfileName(null);
326
- }
327
- else {
328
- onBack();
329
- }
330
- return;
331
- }
332
- // プロファイル一覧モード
333
- if (mode === "list") {
334
- if (input === "n") {
335
- handleStartCreateProfile();
336
- return;
337
- }
338
- if (input === "d" && profileItems.length > 0) {
339
- const item = profileItems[profileIndex];
340
- if (item?.profileName && item.profileName !== activeProfileName) {
341
- setSelectedProfileName(item.profileName);
342
- setMode("confirm-delete-profile");
343
- }
344
- return;
345
- }
346
- return;
347
- }
348
- // プロファイル詳細モード
349
- if (mode === "view") {
350
- // Tab でフォーカス切り替え (env ↔ osenv)
351
- if (key.tab) {
352
- setFocus((prev) => (prev === "env" ? "osenv" : "env"));
353
- return;
354
- }
355
- // j/k でスクロール
356
- if (input === "j" || key.downArrow) {
357
- if (focus === "env") {
358
- setEnvIndex((prev) => Math.min(prev + 1, Math.max(0, envItems.length - 1)));
359
- }
360
- else if (focus === "osenv") {
361
- setOsEnvIndex((prev) => Math.min(prev + 1, Math.max(0, osEnvItems.length - 1)));
362
- }
363
- return;
364
- }
365
- if (input === "k" || key.upArrow) {
366
- if (focus === "env") {
367
- setEnvIndex((prev) => Math.max(prev - 1, 0));
368
- }
369
- else if (focus === "osenv") {
370
- setOsEnvIndex((prev) => Math.max(prev - 1, 0));
371
- }
372
- return;
373
- }
374
- // 環境変数操作
375
- if (focus === "env") {
376
- if (input === "a") {
377
- handleStartAddEnv();
378
- return;
379
- }
380
- if (input === "e" && envItems.length > 0) {
381
- const item = envItems[envIndex];
382
- if (item) {
383
- handleStartEditEnv(item.key, item.envValue);
384
- }
385
- return;
386
- }
387
- if (input === "d" && envItems.length > 0) {
388
- const item = envItems[envIndex];
389
- if (item) {
390
- setSelectedEnvKey(item.key);
391
- setMode("confirm-delete-env");
392
- }
393
- return;
394
- }
395
- }
396
- }
397
- }, { isActive: true });
398
- // フッターアクション
399
- const getFooterActions = () => {
400
- if (mode === "list") {
401
- return [
402
- { key: "enter", description: "Select" },
403
- { key: "n", description: "New" },
404
- { key: "d", description: "Delete" },
405
- { key: "esc", description: "Back" },
406
- ];
407
- }
408
- if (mode === "view") {
409
- return [
410
- { key: "tab", description: "Switch focus" },
411
- { key: "j/k", description: "Scroll" },
412
- { key: "a", description: "Add env" },
413
- { key: "e", description: "Edit env" },
414
- { key: "d", description: "Delete env" },
415
- { key: "esc", description: "Back" },
416
- ];
417
- }
418
- return [{ key: "esc", description: "Cancel" }];
419
- };
420
- // ローディング表示
421
- if (loading) {
422
- return (React.createElement(Box, { flexDirection: "column", height: rows },
423
- React.createElement(Header, { title: "Environment Profiles", titleColor: "magenta", version: version }),
424
- React.createElement(Box, { flexGrow: 1, justifyContent: "center", alignItems: "center" },
425
- React.createElement(Text, null, "Loading profiles..."))));
426
- }
427
- // エラー表示
428
- if (error) {
429
- return (React.createElement(Box, { flexDirection: "column", height: rows },
430
- React.createElement(Header, { title: "Environment Profiles", titleColor: "magenta", version: version }),
431
- React.createElement(Box, { flexGrow: 1, marginTop: 1 },
432
- React.createElement(Text, { color: "red" },
433
- "Error: ",
434
- error.message)),
435
- React.createElement(Footer, { actions: [{ key: "esc", description: "Back" }] })));
436
- }
437
- // 新規プロファイル作成:名前入力
438
- if (mode === "create-name") {
439
- return (React.createElement(Box, { flexDirection: "column", height: rows },
440
- React.createElement(Header, { title: "Environment Profiles", titleColor: "magenta", version: version }),
441
- React.createElement(Box, { flexDirection: "column", flexGrow: 1, marginTop: 1 },
442
- React.createElement(Text, null, "Create new profile"),
443
- React.createElement(Box, { marginTop: 1 },
444
- React.createElement(Input, { value: newProfileName, onChange: setNewProfileName, onSubmit: handleCreateNameSubmit, label: "Profile name (lowercase, a-z0-9-):", placeholder: "development" })),
445
- validationError && (React.createElement(Box, { marginTop: 1 },
446
- React.createElement(Text, { color: "red" }, validationError)))),
447
- React.createElement(Footer, { actions: getFooterActions() })));
448
- }
449
- // 新規プロファイル作成:表示名入力
450
- if (mode === "create-display") {
451
- return (React.createElement(Box, { flexDirection: "column", height: rows },
452
- React.createElement(Header, { title: "Environment Profiles", titleColor: "magenta", version: version }),
453
- React.createElement(Box, { flexDirection: "column", flexGrow: 1, marginTop: 1 },
454
- React.createElement(Text, null,
455
- "Create new profile: ",
456
- newProfileName),
457
- React.createElement(Box, { marginTop: 1 },
458
- React.createElement(Input, { value: newProfileDisplayName, onChange: setNewProfileDisplayName, onSubmit: handleCreateProfileSubmit, label: "Display name:", placeholder: "Development" }))),
459
- React.createElement(Footer, { actions: getFooterActions() })));
460
- }
461
- // 環境変数追加:キー入力
462
- if (mode === "add-env-key") {
463
- return (React.createElement(Box, { flexDirection: "column", height: rows },
464
- React.createElement(Header, { title: "Environment Profiles", titleColor: "magenta", version: version }),
465
- React.createElement(Box, { flexDirection: "column", flexGrow: 1, marginTop: 1 },
466
- React.createElement(Text, null, "Add environment variable"),
467
- React.createElement(Box, { marginTop: 1 },
468
- React.createElement(Input, { value: newEnvKey, onChange: setNewEnvKey, onSubmit: handleEnvKeySubmit, label: "Variable name:", placeholder: "API_KEY" })),
469
- validationError && (React.createElement(Box, { marginTop: 1 },
470
- React.createElement(Text, { color: "red" }, validationError)))),
471
- React.createElement(Footer, { actions: getFooterActions() })));
472
- }
473
- // 環境変数追加:値入力
474
- if (mode === "add-env-value") {
475
- return (React.createElement(Box, { flexDirection: "column", height: rows },
476
- React.createElement(Header, { title: "Environment Profiles", titleColor: "magenta", version: version }),
477
- React.createElement(Box, { flexDirection: "column", flexGrow: 1, marginTop: 1 },
478
- React.createElement(Text, null,
479
- "Add environment variable: ",
480
- newEnvKey),
481
- React.createElement(Box, { marginTop: 1 },
482
- React.createElement(Input, { value: newEnvValue, onChange: setNewEnvValue, onSubmit: handleEnvValueSubmit, label: "Value:", placeholder: "your-value" }))),
483
- React.createElement(Footer, { actions: getFooterActions() })));
484
- }
485
- // 環境変数編集:値入力
486
- if (mode === "edit-env-value") {
487
- return (React.createElement(Box, { flexDirection: "column", height: rows },
488
- React.createElement(Header, { title: "Environment Profiles", titleColor: "magenta", version: version }),
489
- React.createElement(Box, { flexDirection: "column", flexGrow: 1, marginTop: 1 },
490
- React.createElement(Text, null,
491
- "Edit environment variable: ",
492
- selectedEnvKey),
493
- React.createElement(Box, { marginTop: 1 },
494
- React.createElement(Input, { value: newEnvValue, onChange: setNewEnvValue, onSubmit: handleEditEnvSubmit, label: "New value:", placeholder: "new-value" }))),
495
- React.createElement(Footer, { actions: getFooterActions() })));
496
- }
497
- // プロファイル削除確認
498
- if (mode === "confirm-delete-profile") {
499
- const profileToDelete = selectedProfileName
500
- ? profiles?.profiles[selectedProfileName]
501
- : null;
502
- return (React.createElement(Box, { flexDirection: "column", height: rows },
503
- React.createElement(Header, { title: "Environment Profiles", titleColor: "magenta", version: version }),
504
- React.createElement(Box, { flexDirection: "column", flexGrow: 1, marginTop: 1 },
505
- React.createElement(Confirm, { message: `Delete profile "${profileToDelete?.displayName ?? selectedProfileName}"?`, onConfirm: handleConfirmDeleteProfile }))));
506
- }
507
- // 環境変数削除確認
508
- if (mode === "confirm-delete-env") {
509
- return (React.createElement(Box, { flexDirection: "column", height: rows },
510
- React.createElement(Header, { title: "Environment Profiles", titleColor: "magenta", version: version }),
511
- React.createElement(Box, { flexDirection: "column", flexGrow: 1, marginTop: 1 },
512
- React.createElement(Confirm, { message: `Delete environment variable "${selectedEnvKey}"?`, onConfirm: handleConfirmDeleteEnv }))));
513
- }
514
- // プロファイル一覧
515
- if (mode === "list") {
516
- const hasProfiles = Boolean(profiles && Object.keys(profiles.profiles).length > 0);
517
- return (React.createElement(Box, { flexDirection: "column", height: rows },
518
- React.createElement(Header, { title: "Environment Profiles", titleColor: "magenta", version: version, activeProfile: activeProfileName }),
519
- React.createElement(Box, { flexDirection: "column", flexGrow: 1, marginTop: 1 },
520
- React.createElement(Box, { marginBottom: 1 },
521
- React.createElement(Text, null, "Select a profile to activate (or choose \"(none)\"):")),
522
- React.createElement(Select, { items: profileItems, onSelect: handleActivateProfile, selectedIndex: profileIndex, onSelectedIndexChange: setProfileIndex }),
523
- !hasProfiles && (React.createElement(Box, { marginTop: 1 },
524
- React.createElement(Text, { dimColor: true }, "No profiles. Press [n] to create one.")))),
525
- React.createElement(Footer, { actions: getFooterActions() })));
526
- }
527
- // プロファイル詳細
528
- const maxOsEnvVisible = Math.max(5, Math.floor((rows - UI_CHROME_HEIGHT) / 2));
529
- return (React.createElement(Box, { flexDirection: "column", height: rows },
530
- React.createElement(Header, { title: "Environment Profiles", titleColor: "magenta", version: version, activeProfile: activeProfileName }),
531
- React.createElement(Box, { flexDirection: "column", flexGrow: 1, marginTop: 1 },
532
- React.createElement(Box, { marginBottom: 1 },
533
- React.createElement(Text, { bold: true }, "Profile: "),
534
- React.createElement(Text, { color: "cyan" }, currentProfile?.displayName ?? selectedProfileName),
535
- selectedProfileName === activeProfileName && (React.createElement(Text, { color: "green" }, " (active)"))),
536
- currentProfile?.description && (React.createElement(Box, { marginBottom: 1 },
537
- React.createElement(Text, { dimColor: true }, currentProfile.description))),
538
- React.createElement(Box, { marginBottom: 1 },
539
- React.createElement(Text, { bold: true, ...(focus === "env" ? { color: "cyan" } : {}) }, "Profile Environment Variables:")),
540
- React.createElement(Box, { flexDirection: "column", marginLeft: 2, marginBottom: 1 }, envItems.length === 0 ? (React.createElement(Text, { dimColor: true }, "No environment variables. Press [a] to add.")) : (envItems.map((item, idx) => {
541
- const isEnvSelected = focus === "env" && idx === envIndex;
542
- return (React.createElement(Box, { key: item.key },
543
- React.createElement(Text, { ...(isEnvSelected ? { color: "cyan" } : {}), inverse: isEnvSelected }, item.key),
544
- React.createElement(Text, null, "="),
545
- React.createElement(Text, null, item.envValue)));
546
- }))),
547
- React.createElement(Box, { marginBottom: 1 },
548
- React.createElement(Text, { bold: true, ...(focus === "osenv" ? { color: "cyan" } : {}) }, "OS Environment (overwritten keys in yellow):")),
549
- React.createElement(Box, { flexDirection: "column", marginLeft: 2, overflow: "hidden" },
550
- osEnvItems
551
- .slice(osEnvIndex, osEnvIndex + maxOsEnvVisible)
552
- .map((item, idx) => {
553
- // osEnvIndex は「選択中のOS環境変数のインデックス」であり、同時にスクロールの先頭位置でもある
554
- // そのため、表示上は slice した先頭要素が選択状態になる
555
- const actualIndex = osEnvIndex + idx;
556
- const isOsEnvSelected = focus === "osenv" && actualIndex === osEnvIndex;
557
- return (React.createElement(Box, { key: item.key },
558
- React.createElement(Text, { ...(item.isOverwritten
559
- ? { color: "yellow" }
560
- : {}), inverse: isOsEnvSelected }, item.key),
561
- React.createElement(Text, null, "="),
562
- React.createElement(Text, { dimColor: true },
563
- item.value.slice(0, 50),
564
- item.value.length > 50 ? "..." : "")));
565
- }),
566
- osEnvItems.length > maxOsEnvVisible && (React.createElement(Text, { dimColor: true },
567
- "... (",
568
- osEnvIndex + 1,
569
- "-",
570
- Math.min(osEnvIndex + maxOsEnvVisible, osEnvItems.length),
571
- " of",
572
- " ",
573
- osEnvItems.length,
574
- ")")))),
575
- React.createElement(Footer, { actions: getFooterActions() })));
576
- }
577
- //# sourceMappingURL=EnvironmentProfileScreen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EnvironmentProfileScreen.js","sourceRoot":"","sources":["../../../../../src/cli/ui/components/screens/EnvironmentProfileScreen.tsx"],"names":[],"mappings":"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"}