claude-code-plus-plus 0.1.1 → 0.2.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 (493) hide show
  1. package/dist/app.d.ts +52 -0
  2. package/dist/app.d.ts.map +1 -0
  3. package/dist/app.js +318 -0
  4. package/dist/app.js.map +1 -0
  5. package/dist/cli/commands/index.d.ts +5 -0
  6. package/dist/cli/commands/index.d.ts.map +1 -0
  7. package/dist/cli/commands/index.js +9 -0
  8. package/dist/cli/commands/index.js.map +1 -0
  9. package/dist/cli/commands/start.d.ts +16 -0
  10. package/dist/cli/commands/start.d.ts.map +1 -0
  11. package/dist/cli/commands/start.js +23 -0
  12. package/dist/cli/commands/start.js.map +1 -0
  13. package/dist/cli/index.d.ts +7 -0
  14. package/dist/cli/index.d.ts.map +1 -0
  15. package/dist/cli/index.js +22 -0
  16. package/dist/cli/index.js.map +1 -0
  17. package/dist/cli/parser.d.ts +31 -0
  18. package/dist/cli/parser.d.ts.map +1 -0
  19. package/dist/cli/parser.js +117 -0
  20. package/dist/cli/parser.js.map +1 -0
  21. package/dist/cli/validators.d.ts +46 -0
  22. package/dist/cli/validators.d.ts.map +1 -0
  23. package/dist/cli/validators.js +159 -0
  24. package/dist/cli/validators.js.map +1 -0
  25. package/dist/config/defaults.d.ts +14 -0
  26. package/dist/config/defaults.d.ts.map +1 -0
  27. package/dist/config/defaults.js +32 -0
  28. package/dist/config/defaults.js.map +1 -0
  29. package/dist/config/index.d.ts +10 -0
  30. package/dist/config/index.d.ts.map +1 -0
  31. package/dist/config/index.js +32 -0
  32. package/dist/config/index.js.map +1 -0
  33. package/dist/config/loader.d.ts +38 -0
  34. package/dist/config/loader.d.ts.map +1 -0
  35. package/dist/config/loader.js +116 -0
  36. package/dist/config/loader.js.map +1 -0
  37. package/dist/config/paths.d.ts +47 -0
  38. package/dist/config/paths.d.ts.map +1 -0
  39. package/dist/config/paths.js +95 -0
  40. package/dist/config/paths.js.map +1 -0
  41. package/dist/config/schema.d.ts +15 -0
  42. package/dist/config/schema.d.ts.map +1 -0
  43. package/dist/config/schema.js +36 -0
  44. package/dist/config/schema.js.map +1 -0
  45. package/dist/core/index.d.ts +13 -1
  46. package/dist/core/index.d.ts.map +1 -1
  47. package/dist/core/index.js +13 -1
  48. package/dist/core/index.js.map +1 -1
  49. package/dist/core/session/index.d.ts +7 -0
  50. package/dist/core/session/index.d.ts.map +1 -0
  51. package/dist/core/session/index.js +6 -0
  52. package/dist/core/session/index.js.map +1 -0
  53. package/dist/core/session/session-manager.d.ts +46 -0
  54. package/dist/core/session/session-manager.d.ts.map +1 -0
  55. package/dist/core/session/session-manager.js +245 -0
  56. package/dist/core/session/session-manager.js.map +1 -0
  57. package/dist/core/session/session.d.ts +44 -0
  58. package/dist/core/session/session.d.ts.map +1 -0
  59. package/dist/core/session/session.js +78 -0
  60. package/dist/core/session/session.js.map +1 -0
  61. package/dist/core/terminal/index.d.ts +7 -0
  62. package/dist/core/terminal/index.d.ts.map +1 -0
  63. package/dist/core/terminal/index.js +6 -0
  64. package/dist/core/terminal/index.js.map +1 -0
  65. package/dist/core/terminal/terminal-manager.d.ts +36 -0
  66. package/dist/core/terminal/terminal-manager.d.ts.map +1 -0
  67. package/dist/core/terminal/terminal-manager.js +182 -0
  68. package/dist/core/terminal/terminal-manager.js.map +1 -0
  69. package/dist/core/terminal/terminal.d.ts +27 -0
  70. package/dist/core/terminal/terminal.d.ts.map +1 -0
  71. package/dist/core/terminal/terminal.js +38 -0
  72. package/dist/core/terminal/terminal.js.map +1 -0
  73. package/dist/core/workspace/index.d.ts +7 -0
  74. package/dist/core/workspace/index.d.ts.map +1 -0
  75. package/dist/core/workspace/index.js +6 -0
  76. package/dist/core/workspace/index.js.map +1 -0
  77. package/dist/core/workspace/workspace-manager.d.ts +59 -0
  78. package/dist/core/workspace/workspace-manager.d.ts.map +1 -0
  79. package/dist/core/workspace/workspace-manager.js +224 -0
  80. package/dist/core/workspace/workspace-manager.js.map +1 -0
  81. package/dist/core/workspace/workspace.d.ts +56 -0
  82. package/dist/core/workspace/workspace.d.ts.map +1 -0
  83. package/dist/core/workspace/workspace.js +96 -0
  84. package/dist/core/workspace/workspace.js.map +1 -0
  85. package/dist/core/worktree/index.d.ts +7 -0
  86. package/dist/core/worktree/index.d.ts.map +1 -0
  87. package/dist/core/worktree/index.js +6 -0
  88. package/dist/core/worktree/index.js.map +1 -0
  89. package/dist/core/worktree/worktree-manager.d.ts +47 -0
  90. package/dist/core/worktree/worktree-manager.d.ts.map +1 -0
  91. package/dist/core/worktree/worktree-manager.js +170 -0
  92. package/dist/core/worktree/worktree-manager.js.map +1 -0
  93. package/dist/core/worktree/worktree.d.ts +35 -0
  94. package/dist/core/worktree/worktree.d.ts.map +1 -0
  95. package/dist/core/worktree/worktree.js +50 -0
  96. package/dist/core/worktree/worktree.js.map +1 -0
  97. package/dist/events/bus.d.ts +76 -0
  98. package/dist/events/bus.d.ts.map +1 -0
  99. package/dist/events/bus.js +223 -0
  100. package/dist/events/bus.js.map +1 -0
  101. package/dist/events/handlers/index.d.ts +28 -0
  102. package/dist/events/handlers/index.d.ts.map +1 -0
  103. package/dist/events/handlers/index.js +44 -0
  104. package/dist/events/handlers/index.js.map +1 -0
  105. package/dist/events/handlers/session-events.d.ts +12 -0
  106. package/dist/events/handlers/session-events.d.ts.map +1 -0
  107. package/dist/events/handlers/session-events.js +38 -0
  108. package/dist/events/handlers/session-events.js.map +1 -0
  109. package/dist/events/handlers/terminal-events.d.ts +12 -0
  110. package/dist/events/handlers/terminal-events.d.ts.map +1 -0
  111. package/dist/events/handlers/terminal-events.js +37 -0
  112. package/dist/events/handlers/terminal-events.js.map +1 -0
  113. package/dist/events/handlers/ui-events.d.ts +11 -0
  114. package/dist/events/handlers/ui-events.d.ts.map +1 -0
  115. package/dist/events/handlers/ui-events.js +202 -0
  116. package/dist/events/handlers/ui-events.js.map +1 -0
  117. package/dist/events/index.d.ts +9 -0
  118. package/dist/events/index.d.ts.map +1 -0
  119. package/dist/events/index.js +10 -0
  120. package/dist/events/index.js.map +1 -0
  121. package/dist/git/index.d.ts +5 -0
  122. package/dist/git/index.d.ts.map +1 -0
  123. package/dist/git/index.js +10 -0
  124. package/dist/git/index.js.map +1 -0
  125. package/dist/git/worktree.d.ts +44 -0
  126. package/dist/git/worktree.d.ts.map +1 -0
  127. package/dist/git/worktree.js +163 -0
  128. package/dist/git/worktree.js.map +1 -0
  129. package/dist/index.d.ts +0 -1
  130. package/dist/index.d.ts.map +1 -1
  131. package/dist/index.js +73 -145
  132. package/dist/index.js.map +1 -1
  133. package/dist/launcher/index.d.ts +24 -0
  134. package/dist/launcher/index.d.ts.map +1 -0
  135. package/dist/launcher/index.js +260 -0
  136. package/dist/launcher/index.js.map +1 -0
  137. package/dist/multiplexer/base.d.ts +73 -0
  138. package/dist/multiplexer/base.d.ts.map +1 -0
  139. package/dist/multiplexer/base.js +68 -0
  140. package/dist/multiplexer/base.js.map +1 -0
  141. package/dist/multiplexer/factory.d.ts +28 -0
  142. package/dist/multiplexer/factory.d.ts.map +1 -0
  143. package/dist/multiplexer/factory.js +72 -0
  144. package/dist/multiplexer/factory.js.map +1 -0
  145. package/dist/multiplexer/index.d.ts +14 -0
  146. package/dist/multiplexer/index.d.ts.map +1 -0
  147. package/dist/multiplexer/index.js +15 -0
  148. package/dist/multiplexer/index.js.map +1 -0
  149. package/dist/multiplexer/tmux/index.d.ts +9 -0
  150. package/dist/multiplexer/tmux/index.d.ts.map +1 -0
  151. package/dist/multiplexer/tmux/index.js +7 -0
  152. package/dist/multiplexer/tmux/index.js.map +1 -0
  153. package/dist/multiplexer/tmux/tmux-commands.d.ts +96 -0
  154. package/dist/multiplexer/tmux/tmux-commands.d.ts.map +1 -0
  155. package/dist/multiplexer/tmux/tmux-commands.js +282 -0
  156. package/dist/multiplexer/tmux/tmux-commands.js.map +1 -0
  157. package/dist/multiplexer/tmux/tmux-config.d.ts +57 -0
  158. package/dist/multiplexer/tmux/tmux-config.d.ts.map +1 -0
  159. package/dist/multiplexer/tmux/tmux-config.js +103 -0
  160. package/dist/multiplexer/tmux/tmux-config.js.map +1 -0
  161. package/dist/multiplexer/tmux/tmux-multiplexer.d.ts +94 -0
  162. package/dist/multiplexer/tmux/tmux-multiplexer.d.ts.map +1 -0
  163. package/dist/multiplexer/tmux/tmux-multiplexer.js +302 -0
  164. package/dist/multiplexer/tmux/tmux-multiplexer.js.map +1 -0
  165. package/dist/multiplexer/windows/index.d.ts +5 -0
  166. package/dist/multiplexer/windows/index.d.ts.map +1 -0
  167. package/dist/multiplexer/windows/index.js +5 -0
  168. package/dist/multiplexer/windows/index.js.map +1 -0
  169. package/dist/multiplexer/windows/windows-multiplexer.d.ts +61 -0
  170. package/dist/multiplexer/windows/windows-multiplexer.d.ts.map +1 -0
  171. package/dist/multiplexer/windows/windows-multiplexer.js +151 -0
  172. package/dist/multiplexer/windows/windows-multiplexer.js.map +1 -0
  173. package/dist/platform/clipboard.d.ts +26 -0
  174. package/dist/platform/clipboard.d.ts.map +1 -0
  175. package/dist/platform/clipboard.js +161 -0
  176. package/dist/platform/clipboard.js.map +1 -0
  177. package/dist/platform/detector.d.ts +78 -0
  178. package/dist/platform/detector.d.ts.map +1 -0
  179. package/dist/platform/detector.js +184 -0
  180. package/dist/platform/detector.js.map +1 -0
  181. package/dist/platform/index.d.ts +14 -0
  182. package/dist/platform/index.d.ts.map +1 -0
  183. package/dist/platform/index.js +53 -0
  184. package/dist/platform/index.js.map +1 -0
  185. package/dist/platform/paths.d.ts +63 -0
  186. package/dist/platform/paths.d.ts.map +1 -0
  187. package/dist/platform/paths.js +162 -0
  188. package/dist/platform/paths.js.map +1 -0
  189. package/dist/platform/shell.d.ts +43 -0
  190. package/dist/platform/shell.d.ts.map +1 -0
  191. package/dist/platform/shell.js +195 -0
  192. package/dist/platform/shell.js.map +1 -0
  193. package/dist/services/claude/claude-detector.d.ts +37 -0
  194. package/dist/services/claude/claude-detector.d.ts.map +1 -0
  195. package/dist/services/claude/claude-detector.js +83 -0
  196. package/dist/services/claude/claude-detector.js.map +1 -0
  197. package/dist/services/claude/claude-service.d.ts +57 -0
  198. package/dist/services/claude/claude-service.d.ts.map +1 -0
  199. package/dist/services/claude/claude-service.js +108 -0
  200. package/dist/services/claude/claude-service.js.map +1 -0
  201. package/dist/services/claude/index.d.ts +7 -0
  202. package/dist/services/claude/index.d.ts.map +1 -0
  203. package/dist/services/claude/index.js +6 -0
  204. package/dist/services/claude/index.js.map +1 -0
  205. package/dist/services/git/branch-service.d.ts +64 -0
  206. package/dist/services/git/branch-service.d.ts.map +1 -0
  207. package/dist/services/git/branch-service.js +217 -0
  208. package/dist/services/git/branch-service.js.map +1 -0
  209. package/dist/services/git/git-service.d.ts +44 -0
  210. package/dist/services/git/git-service.d.ts.map +1 -0
  211. package/dist/services/git/git-service.js +145 -0
  212. package/dist/services/git/git-service.js.map +1 -0
  213. package/dist/services/git/index.d.ts +8 -0
  214. package/dist/services/git/index.d.ts.map +1 -0
  215. package/dist/services/git/index.js +7 -0
  216. package/dist/services/git/index.js.map +1 -0
  217. package/dist/services/git/worktree-service.d.ts +61 -0
  218. package/dist/services/git/worktree-service.d.ts.map +1 -0
  219. package/dist/services/git/worktree-service.js +243 -0
  220. package/dist/services/git/worktree-service.js.map +1 -0
  221. package/dist/services/index.d.ts +12 -0
  222. package/dist/services/index.d.ts.map +1 -0
  223. package/dist/services/index.js +12 -0
  224. package/dist/services/index.js.map +1 -0
  225. package/dist/services/process/index.d.ts +8 -0
  226. package/dist/services/process/index.d.ts.map +1 -0
  227. package/dist/services/process/index.js +6 -0
  228. package/dist/services/process/index.js.map +1 -0
  229. package/dist/services/process/process-monitor.d.ts +98 -0
  230. package/dist/services/process/process-monitor.d.ts.map +1 -0
  231. package/dist/services/process/process-monitor.js +173 -0
  232. package/dist/services/process/process-monitor.js.map +1 -0
  233. package/dist/services/process/process-spawner.d.ts +55 -0
  234. package/dist/services/process/process-spawner.d.ts.map +1 -0
  235. package/dist/services/process/process-spawner.js +93 -0
  236. package/dist/services/process/process-spawner.js.map +1 -0
  237. package/dist/sidebar/app.d.ts +70 -0
  238. package/dist/sidebar/app.d.ts.map +1 -0
  239. package/dist/sidebar/app.js +1237 -0
  240. package/dist/sidebar/app.js.map +1 -0
  241. package/dist/sidebar/index.d.ts +8 -0
  242. package/dist/sidebar/index.d.ts.map +1 -0
  243. package/dist/sidebar/index.js +28 -0
  244. package/dist/sidebar/index.js.map +1 -0
  245. package/dist/sidebar/input.d.ts +33 -0
  246. package/dist/sidebar/input.d.ts.map +1 -0
  247. package/dist/sidebar/input.js +160 -0
  248. package/dist/sidebar/input.js.map +1 -0
  249. package/dist/sidebar/render.d.ts +73 -0
  250. package/dist/sidebar/render.d.ts.map +1 -0
  251. package/dist/sidebar/render.js +415 -0
  252. package/dist/sidebar/render.js.map +1 -0
  253. package/dist/state/actions.d.ts +49 -0
  254. package/dist/state/actions.d.ts.map +1 -0
  255. package/dist/state/actions.js +512 -0
  256. package/dist/state/actions.js.map +1 -0
  257. package/dist/state/index.d.ts +16 -0
  258. package/dist/state/index.d.ts.map +1 -0
  259. package/dist/state/index.js +28 -0
  260. package/dist/state/index.js.map +1 -0
  261. package/dist/state/middleware/index.d.ts +7 -0
  262. package/dist/state/middleware/index.d.ts.map +1 -0
  263. package/dist/state/middleware/index.js +6 -0
  264. package/dist/state/middleware/index.js.map +1 -0
  265. package/dist/state/middleware/logger.d.ts +22 -0
  266. package/dist/state/middleware/logger.d.ts.map +1 -0
  267. package/dist/state/middleware/logger.js +45 -0
  268. package/dist/state/middleware/logger.js.map +1 -0
  269. package/dist/state/middleware/persistence.d.ts +29 -0
  270. package/dist/state/middleware/persistence.d.ts.map +1 -0
  271. package/dist/state/middleware/persistence.js +71 -0
  272. package/dist/state/middleware/persistence.js.map +1 -0
  273. package/dist/state/persistence/file-adapter.d.ts +48 -0
  274. package/dist/state/persistence/file-adapter.d.ts.map +1 -0
  275. package/dist/state/persistence/file-adapter.js +96 -0
  276. package/dist/state/persistence/file-adapter.js.map +1 -0
  277. package/dist/state/persistence/index.d.ts +8 -0
  278. package/dist/state/persistence/index.d.ts.map +1 -0
  279. package/dist/state/persistence/index.js +6 -0
  280. package/dist/state/persistence/index.js.map +1 -0
  281. package/dist/state/persistence/serializer.d.ts +41 -0
  282. package/dist/state/persistence/serializer.d.ts.map +1 -0
  283. package/dist/state/persistence/serializer.js +114 -0
  284. package/dist/state/persistence/serializer.js.map +1 -0
  285. package/dist/state/selectors.d.ts +67 -0
  286. package/dist/state/selectors.d.ts.map +1 -0
  287. package/dist/state/selectors.js +177 -0
  288. package/dist/state/selectors.js.map +1 -0
  289. package/dist/state/store.d.ts +86 -0
  290. package/dist/state/store.d.ts.map +1 -0
  291. package/dist/state/store.js +161 -0
  292. package/dist/state/store.js.map +1 -0
  293. package/dist/state/types.d.ts +269 -0
  294. package/dist/state/types.d.ts.map +1 -0
  295. package/dist/state/types.js +7 -0
  296. package/dist/state/types.js.map +1 -0
  297. package/dist/terminal/bar-handler.d.ts +15 -0
  298. package/dist/terminal/bar-handler.d.ts.map +1 -0
  299. package/dist/terminal/bar-handler.js +244 -0
  300. package/dist/terminal/bar-handler.js.map +1 -0
  301. package/dist/terminal/bar-render.d.ts +33 -0
  302. package/dist/terminal/bar-render.d.ts.map +1 -0
  303. package/dist/terminal/bar-render.js +126 -0
  304. package/dist/terminal/bar-render.js.map +1 -0
  305. package/dist/terminal/index.d.ts +8 -0
  306. package/dist/terminal/index.d.ts.map +1 -0
  307. package/dist/terminal/index.js +14 -0
  308. package/dist/terminal/index.js.map +1 -0
  309. package/dist/tmux/commands.d.ts +26 -0
  310. package/dist/tmux/commands.d.ts.map +1 -0
  311. package/dist/tmux/commands.js +74 -0
  312. package/dist/tmux/commands.js.map +1 -0
  313. package/dist/tmux/index.d.ts +6 -0
  314. package/dist/tmux/index.d.ts.map +1 -0
  315. package/dist/tmux/index.js +42 -0
  316. package/dist/tmux/index.js.map +1 -0
  317. package/dist/tmux/pane.d.ts +111 -0
  318. package/dist/tmux/pane.d.ts.map +1 -0
  319. package/dist/tmux/pane.js +231 -0
  320. package/dist/tmux/pane.js.map +1 -0
  321. package/dist/types/config.d.ts +103 -0
  322. package/dist/types/config.d.ts.map +1 -0
  323. package/dist/types/config.js +7 -0
  324. package/dist/types/config.js.map +1 -0
  325. package/dist/types/entities.d.ts +88 -0
  326. package/dist/types/entities.d.ts.map +1 -0
  327. package/dist/types/entities.js +8 -0
  328. package/dist/types/entities.js.map +1 -0
  329. package/dist/types/events.d.ts +156 -0
  330. package/dist/types/events.d.ts.map +1 -0
  331. package/dist/types/events.js +8 -0
  332. package/dist/types/events.js.map +1 -0
  333. package/dist/types/index.d.ts +11 -0
  334. package/dist/types/index.d.ts.map +1 -0
  335. package/dist/types/index.js +8 -0
  336. package/dist/types/index.js.map +1 -0
  337. package/dist/types/multiplexer.d.ts +238 -0
  338. package/dist/types/multiplexer.d.ts.map +1 -0
  339. package/dist/types/multiplexer.js +8 -0
  340. package/dist/types/multiplexer.js.map +1 -0
  341. package/dist/types.d.ts +67 -3
  342. package/dist/types.d.ts.map +1 -1
  343. package/dist/types.js +10 -3
  344. package/dist/types.js.map +1 -1
  345. package/dist/ui/components/base.d.ts +155 -0
  346. package/dist/ui/components/base.d.ts.map +1 -0
  347. package/dist/ui/components/base.js +269 -0
  348. package/dist/ui/components/base.js.map +1 -0
  349. package/dist/ui/components/index.d.ts +10 -0
  350. package/dist/ui/components/index.d.ts.map +1 -0
  351. package/dist/ui/components/index.js +10 -0
  352. package/dist/ui/components/index.js.map +1 -0
  353. package/dist/ui/components/input-field.d.ts +98 -0
  354. package/dist/ui/components/input-field.d.ts.map +1 -0
  355. package/dist/ui/components/input-field.js +274 -0
  356. package/dist/ui/components/input-field.js.map +1 -0
  357. package/dist/ui/components/list.d.ts +94 -0
  358. package/dist/ui/components/list.d.ts.map +1 -0
  359. package/dist/ui/components/list.js +294 -0
  360. package/dist/ui/components/list.js.map +1 -0
  361. package/dist/ui/components/modal.d.ts +83 -0
  362. package/dist/ui/components/modal.d.ts.map +1 -0
  363. package/dist/ui/components/modal.js +249 -0
  364. package/dist/ui/components/modal.js.map +1 -0
  365. package/dist/ui/components/tabs.d.ts +97 -0
  366. package/dist/ui/components/tabs.d.ts.map +1 -0
  367. package/dist/ui/components/tabs.js +252 -0
  368. package/dist/ui/components/tabs.js.map +1 -0
  369. package/dist/ui/components/text.d.ts +60 -0
  370. package/dist/ui/components/text.d.ts.map +1 -0
  371. package/dist/ui/components/text.js +224 -0
  372. package/dist/ui/components/text.js.map +1 -0
  373. package/dist/ui/index.d.ts +12 -0
  374. package/dist/ui/index.d.ts.map +1 -0
  375. package/dist/ui/index.js +18 -0
  376. package/dist/ui/index.js.map +1 -0
  377. package/dist/ui/input/index.d.ts +8 -0
  378. package/dist/ui/input/index.d.ts.map +1 -0
  379. package/dist/ui/input/index.js +8 -0
  380. package/dist/ui/input/index.js.map +1 -0
  381. package/dist/ui/input/input-manager.d.ts +83 -0
  382. package/dist/ui/input/input-manager.d.ts.map +1 -0
  383. package/dist/ui/input/input-manager.js +200 -0
  384. package/dist/ui/input/input-manager.js.map +1 -0
  385. package/dist/ui/input/keybindings.d.ts +47 -0
  386. package/dist/ui/input/keybindings.d.ts.map +1 -0
  387. package/dist/ui/input/keybindings.js +168 -0
  388. package/dist/ui/input/keybindings.js.map +1 -0
  389. package/dist/ui/input/keyboard.d.ts +24 -0
  390. package/dist/ui/input/keyboard.d.ts.map +1 -0
  391. package/dist/ui/input/keyboard.js +230 -0
  392. package/dist/ui/input/keyboard.js.map +1 -0
  393. package/dist/ui/input/mouse.d.ts +44 -0
  394. package/dist/ui/input/mouse.d.ts.map +1 -0
  395. package/dist/ui/input/mouse.js +161 -0
  396. package/dist/ui/input/mouse.js.map +1 -0
  397. package/dist/ui/layout/box.d.ts +63 -0
  398. package/dist/ui/layout/box.d.ts.map +1 -0
  399. package/dist/ui/layout/box.js +160 -0
  400. package/dist/ui/layout/box.js.map +1 -0
  401. package/dist/ui/layout/constraints.d.ts +77 -0
  402. package/dist/ui/layout/constraints.d.ts.map +1 -0
  403. package/dist/ui/layout/constraints.js +154 -0
  404. package/dist/ui/layout/constraints.js.map +1 -0
  405. package/dist/ui/layout/flex.d.ts +59 -0
  406. package/dist/ui/layout/flex.d.ts.map +1 -0
  407. package/dist/ui/layout/flex.js +163 -0
  408. package/dist/ui/layout/flex.js.map +1 -0
  409. package/dist/ui/layout/index.d.ts +7 -0
  410. package/dist/ui/layout/index.d.ts.map +1 -0
  411. package/dist/ui/layout/index.js +7 -0
  412. package/dist/ui/layout/index.js.map +1 -0
  413. package/dist/ui/modals/delete-modal.d.ts +27 -0
  414. package/dist/ui/modals/delete-modal.d.ts.map +1 -0
  415. package/dist/ui/modals/delete-modal.js +59 -0
  416. package/dist/ui/modals/delete-modal.js.map +1 -0
  417. package/dist/ui/modals/index.d.ts +7 -0
  418. package/dist/ui/modals/index.d.ts.map +1 -0
  419. package/dist/ui/modals/index.js +7 -0
  420. package/dist/ui/modals/index.js.map +1 -0
  421. package/dist/ui/modals/input-modal.d.ts +66 -0
  422. package/dist/ui/modals/input-modal.d.ts.map +1 -0
  423. package/dist/ui/modals/input-modal.js +185 -0
  424. package/dist/ui/modals/input-modal.js.map +1 -0
  425. package/dist/ui/modals/quit-modal.d.ts +30 -0
  426. package/dist/ui/modals/quit-modal.d.ts.map +1 -0
  427. package/dist/ui/modals/quit-modal.js +65 -0
  428. package/dist/ui/modals/quit-modal.js.map +1 -0
  429. package/dist/ui/renderer/ansi.d.ts +206 -0
  430. package/dist/ui/renderer/ansi.d.ts.map +1 -0
  431. package/dist/ui/renderer/ansi.js +318 -0
  432. package/dist/ui/renderer/ansi.js.map +1 -0
  433. package/dist/ui/renderer/canvas.d.ts +126 -0
  434. package/dist/ui/renderer/canvas.d.ts.map +1 -0
  435. package/dist/ui/renderer/canvas.js +346 -0
  436. package/dist/ui/renderer/canvas.js.map +1 -0
  437. package/dist/ui/renderer/colors.d.ts +65 -0
  438. package/dist/ui/renderer/colors.d.ts.map +1 -0
  439. package/dist/ui/renderer/colors.js +260 -0
  440. package/dist/ui/renderer/colors.js.map +1 -0
  441. package/dist/ui/renderer/index.d.ts +8 -0
  442. package/dist/ui/renderer/index.d.ts.map +1 -0
  443. package/dist/ui/renderer/index.js +8 -0
  444. package/dist/ui/renderer/index.js.map +1 -0
  445. package/dist/ui/renderer/symbols.d.ts +176 -0
  446. package/dist/ui/renderer/symbols.d.ts.map +1 -0
  447. package/dist/ui/renderer/symbols.js +246 -0
  448. package/dist/ui/renderer/symbols.js.map +1 -0
  449. package/dist/ui/views/index.d.ts +7 -0
  450. package/dist/ui/views/index.d.ts.map +1 -0
  451. package/dist/ui/views/index.js +7 -0
  452. package/dist/ui/views/index.js.map +1 -0
  453. package/dist/ui/views/sidebar-view.d.ts +89 -0
  454. package/dist/ui/views/sidebar-view.d.ts.map +1 -0
  455. package/dist/ui/views/sidebar-view.js +259 -0
  456. package/dist/ui/views/sidebar-view.js.map +1 -0
  457. package/dist/ui/views/terminal-bar-view.d.ts +67 -0
  458. package/dist/ui/views/terminal-bar-view.d.ts.map +1 -0
  459. package/dist/ui/views/terminal-bar-view.js +172 -0
  460. package/dist/ui/views/terminal-bar-view.js.map +1 -0
  461. package/dist/ui/views/welcome-view.d.ts +34 -0
  462. package/dist/ui/views/welcome-view.d.ts.map +1 -0
  463. package/dist/ui/views/welcome-view.js +116 -0
  464. package/dist/ui/views/welcome-view.js.map +1 -0
  465. package/dist/utils/async.d.ts +68 -0
  466. package/dist/utils/async.d.ts.map +1 -0
  467. package/dist/utils/async.js +147 -0
  468. package/dist/utils/async.js.map +1 -0
  469. package/dist/utils/errors.d.ts +136 -0
  470. package/dist/utils/errors.d.ts.map +1 -0
  471. package/dist/utils/errors.js +241 -0
  472. package/dist/utils/errors.js.map +1 -0
  473. package/dist/utils/id.d.ts +51 -0
  474. package/dist/utils/id.d.ts.map +1 -0
  475. package/dist/utils/id.js +88 -0
  476. package/dist/utils/id.js.map +1 -0
  477. package/dist/utils/index.d.ts +15 -0
  478. package/dist/utils/index.d.ts.map +1 -0
  479. package/dist/utils/index.js +78 -0
  480. package/dist/utils/index.js.map +1 -0
  481. package/dist/utils/logger.d.ts +75 -0
  482. package/dist/utils/logger.d.ts.map +1 -0
  483. package/dist/utils/logger.js +219 -0
  484. package/dist/utils/logger.js.map +1 -0
  485. package/dist/utils/string.d.ts +71 -0
  486. package/dist/utils/string.d.ts.map +1 -0
  487. package/dist/utils/string.js +175 -0
  488. package/dist/utils/string.js.map +1 -0
  489. package/dist/utils/validation.d.ts +72 -0
  490. package/dist/utils/validation.d.ts.map +1 -0
  491. package/dist/utils/validation.js +211 -0
  492. package/dist/utils/validation.js.map +1 -0
  493. package/package.json +4 -4
@@ -0,0 +1,269 @@
1
+ /**
2
+ * State Type Definitions
3
+ *
4
+ * Defines the shape of the application state.
5
+ */
6
+ import type { Workspace, Session, Terminal, Worktree } from '../types';
7
+ /**
8
+ * Modal types
9
+ */
10
+ export type ModalType = 'quit' | 'delete-worktree' | 'delete-session' | 'create-worktree' | 'create-session' | 'rename-worktree' | 'rename-session';
11
+ /**
12
+ * Sidebar UI state
13
+ */
14
+ export interface SidebarState {
15
+ /** Currently selected index in the list */
16
+ selectedIndex: number;
17
+ /** Whether the sidebar is collapsed */
18
+ collapsed: boolean;
19
+ /** Scroll offset for long lists */
20
+ scrollOffset: number;
21
+ }
22
+ /**
23
+ * Terminal bar UI state
24
+ */
25
+ export interface TerminalBarState {
26
+ /** Whether the terminal bar is visible */
27
+ visible: boolean;
28
+ }
29
+ /**
30
+ * Modal UI state
31
+ */
32
+ export interface ModalState {
33
+ /** Current modal type, null if no modal */
34
+ type: ModalType | null;
35
+ /** Modal-specific data */
36
+ data: unknown;
37
+ /** Selection within modal (for confirmation dialogs) */
38
+ selection: number;
39
+ }
40
+ /**
41
+ * Input mode state (for text input fields)
42
+ */
43
+ export interface InputModeState {
44
+ /** Whether input mode is active */
45
+ active: boolean;
46
+ /** Field being edited */
47
+ field: string;
48
+ /** Current input value */
49
+ value: string;
50
+ /** Cursor position within the value */
51
+ cursorPos: number;
52
+ }
53
+ /**
54
+ * UI state
55
+ */
56
+ export interface UIState {
57
+ sidebar: SidebarState;
58
+ terminalBar: TerminalBarState;
59
+ modal: ModalState;
60
+ inputMode: InputModeState;
61
+ }
62
+ /**
63
+ * Application status state
64
+ */
65
+ export interface StatusState {
66
+ /** Whether a loading operation is in progress */
67
+ loading: boolean;
68
+ /** Current error message, null if no error */
69
+ error: string | null;
70
+ /** Status message to display */
71
+ message: string | null;
72
+ }
73
+ /**
74
+ * Complete application state
75
+ */
76
+ export interface AppState {
77
+ /** Workspace data (null before initialization) */
78
+ workspace: Workspace | null;
79
+ /** UI state */
80
+ ui: UIState;
81
+ /** Application status */
82
+ status: StatusState;
83
+ /** State version for migrations */
84
+ version: number;
85
+ }
86
+ /**
87
+ * Action types for state mutations
88
+ */
89
+ export type ActionType = 'WORKSPACE_LOAD' | 'WORKSPACE_UPDATE' | 'SESSION_CREATE' | 'SESSION_DELETE' | 'SESSION_ACTIVATE' | 'SESSION_RENAME' | 'SESSION_UPDATE' | 'TERMINAL_CREATE' | 'TERMINAL_DELETE' | 'TERMINAL_ACTIVATE' | 'TERMINAL_RENAME' | 'WORKTREE_CREATE' | 'WORKTREE_DELETE' | 'WORKTREE_RENAME' | 'UI_SELECT' | 'UI_SCROLL' | 'UI_TOGGLE_SIDEBAR' | 'UI_SHOW_MODAL' | 'UI_CLOSE_MODAL' | 'UI_MODAL_SELECT' | 'UI_INPUT_START' | 'UI_INPUT_UPDATE' | 'UI_INPUT_END' | 'STATUS_SET_LOADING' | 'STATUS_SET_ERROR' | 'STATUS_SET_MESSAGE' | 'STATUS_CLEAR';
90
+ /**
91
+ * Base action interface
92
+ */
93
+ export interface Action {
94
+ type: ActionType;
95
+ payload?: unknown;
96
+ }
97
+ /**
98
+ * Typed action interfaces
99
+ */
100
+ export interface WorkspaceLoadAction extends Action {
101
+ type: 'WORKSPACE_LOAD';
102
+ payload: Workspace;
103
+ }
104
+ export interface WorkspaceUpdateAction extends Action {
105
+ type: 'WORKSPACE_UPDATE';
106
+ payload: Partial<Workspace>;
107
+ }
108
+ export interface SessionCreateAction extends Action {
109
+ type: 'SESSION_CREATE';
110
+ payload: {
111
+ worktreeId: string;
112
+ session: Session;
113
+ };
114
+ }
115
+ export interface SessionDeleteAction extends Action {
116
+ type: 'SESSION_DELETE';
117
+ payload: {
118
+ sessionId: string;
119
+ };
120
+ }
121
+ export interface SessionActivateAction extends Action {
122
+ type: 'SESSION_ACTIVATE';
123
+ payload: {
124
+ sessionId: string;
125
+ };
126
+ }
127
+ export interface SessionRenameAction extends Action {
128
+ type: 'SESSION_RENAME';
129
+ payload: {
130
+ sessionId: string;
131
+ title: string;
132
+ };
133
+ }
134
+ export interface SessionUpdateAction extends Action {
135
+ type: 'SESSION_UPDATE';
136
+ payload: {
137
+ sessionId: string;
138
+ updates: Partial<Session>;
139
+ };
140
+ }
141
+ export interface TerminalCreateAction extends Action {
142
+ type: 'TERMINAL_CREATE';
143
+ payload: {
144
+ sessionId: string;
145
+ terminal: Terminal;
146
+ };
147
+ }
148
+ export interface TerminalDeleteAction extends Action {
149
+ type: 'TERMINAL_DELETE';
150
+ payload: {
151
+ sessionId: string;
152
+ terminalId: string;
153
+ };
154
+ }
155
+ export interface TerminalActivateAction extends Action {
156
+ type: 'TERMINAL_ACTIVATE';
157
+ payload: {
158
+ sessionId: string;
159
+ terminalIndex: number;
160
+ };
161
+ }
162
+ export interface TerminalRenameAction extends Action {
163
+ type: 'TERMINAL_RENAME';
164
+ payload: {
165
+ sessionId: string;
166
+ terminalId: string;
167
+ title: string;
168
+ };
169
+ }
170
+ export interface WorktreeCreateAction extends Action {
171
+ type: 'WORKTREE_CREATE';
172
+ payload: Worktree;
173
+ }
174
+ export interface WorktreeDeleteAction extends Action {
175
+ type: 'WORKTREE_DELETE';
176
+ payload: {
177
+ worktreeId: string;
178
+ };
179
+ }
180
+ export interface WorktreeRenameAction extends Action {
181
+ type: 'WORKTREE_RENAME';
182
+ payload: {
183
+ worktreeId: string;
184
+ branch: string;
185
+ path: string;
186
+ };
187
+ }
188
+ export interface UISelectAction extends Action {
189
+ type: 'UI_SELECT';
190
+ payload: {
191
+ index: number;
192
+ };
193
+ }
194
+ export interface UIScrollAction extends Action {
195
+ type: 'UI_SCROLL';
196
+ payload: {
197
+ offset: number;
198
+ };
199
+ }
200
+ export interface UIToggleSidebarAction extends Action {
201
+ type: 'UI_TOGGLE_SIDEBAR';
202
+ }
203
+ export interface UIShowModalAction extends Action {
204
+ type: 'UI_SHOW_MODAL';
205
+ payload: {
206
+ type: ModalType;
207
+ data?: unknown;
208
+ };
209
+ }
210
+ export interface UICloseModalAction extends Action {
211
+ type: 'UI_CLOSE_MODAL';
212
+ }
213
+ export interface UIModalSelectAction extends Action {
214
+ type: 'UI_MODAL_SELECT';
215
+ payload: {
216
+ selection: number;
217
+ };
218
+ }
219
+ export interface UIInputStartAction extends Action {
220
+ type: 'UI_INPUT_START';
221
+ payload: {
222
+ field: string;
223
+ initialValue?: string;
224
+ };
225
+ }
226
+ export interface UIInputUpdateAction extends Action {
227
+ type: 'UI_INPUT_UPDATE';
228
+ payload: {
229
+ value: string;
230
+ cursorPos: number;
231
+ };
232
+ }
233
+ export interface UIInputEndAction extends Action {
234
+ type: 'UI_INPUT_END';
235
+ }
236
+ export interface StatusSetLoadingAction extends Action {
237
+ type: 'STATUS_SET_LOADING';
238
+ payload: {
239
+ loading: boolean;
240
+ };
241
+ }
242
+ export interface StatusSetErrorAction extends Action {
243
+ type: 'STATUS_SET_ERROR';
244
+ payload: {
245
+ error: string | null;
246
+ };
247
+ }
248
+ export interface StatusSetMessageAction extends Action {
249
+ type: 'STATUS_SET_MESSAGE';
250
+ payload: {
251
+ message: string | null;
252
+ };
253
+ }
254
+ export interface StatusClearAction extends Action {
255
+ type: 'STATUS_CLEAR';
256
+ }
257
+ /**
258
+ * Union of all action types
259
+ */
260
+ export type AppAction = WorkspaceLoadAction | WorkspaceUpdateAction | SessionCreateAction | SessionDeleteAction | SessionActivateAction | SessionRenameAction | SessionUpdateAction | TerminalCreateAction | TerminalDeleteAction | TerminalActivateAction | TerminalRenameAction | WorktreeCreateAction | WorktreeDeleteAction | WorktreeRenameAction | UISelectAction | UIScrollAction | UIToggleSidebarAction | UIShowModalAction | UICloseModalAction | UIModalSelectAction | UIInputStartAction | UIInputUpdateAction | UIInputEndAction | StatusSetLoadingAction | StatusSetErrorAction | StatusSetMessageAction | StatusClearAction;
261
+ /**
262
+ * State listener callback type
263
+ */
264
+ export type StateListener = (state: AppState, prevState: AppState) => void;
265
+ /**
266
+ * Middleware function type
267
+ */
268
+ export type Middleware = (state: AppState, action: AppAction, next: () => AppState) => AppState;
269
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * State Type Definitions
3
+ *
4
+ * Defines the shape of the application state.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Terminal Bar Handler
4
+ *
5
+ * Lightweight process that runs in the 1-row terminal bar pane.
6
+ * Handles mouse clicks and keyboard input, sending commands to the sidebar.
7
+ *
8
+ * Communication:
9
+ * - Receives render data from sidebar via environment or stdin
10
+ * - Sends actions to sidebar via tmux send-keys
11
+ *
12
+ * Usage: node bar-handler.js <sidebarPaneId> <sessionId>
13
+ */
14
+ export {};
15
+ //# sourceMappingURL=bar-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bar-handler.d.ts","sourceRoot":"","sources":["../../src/terminal/bar-handler.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG"}
@@ -0,0 +1,244 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * Terminal Bar Handler
5
+ *
6
+ * Lightweight process that runs in the 1-row terminal bar pane.
7
+ * Handles mouse clicks and keyboard input, sending commands to the sidebar.
8
+ *
9
+ * Communication:
10
+ * - Receives render data from sidebar via environment or stdin
11
+ * - Sends actions to sidebar via tmux send-keys
12
+ *
13
+ * Usage: node bar-handler.js <sidebarPaneId> <sessionId>
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ const child_process_1 = require("child_process");
17
+ const bar_render_1 = require("./bar-render");
18
+ // ============================================================================
19
+ // ANSI Escape Codes
20
+ // ============================================================================
21
+ const ESC = '\x1b';
22
+ const CSI = `${ESC}[`;
23
+ const ansi = {
24
+ clearScreen: `${CSI}2J`,
25
+ moveTo: (row, col) => `${CSI}${row};${col}H`,
26
+ reset: `${CSI}0m`,
27
+ hideCursor: `${CSI}?25l`,
28
+ showCursor: `${CSI}?25h`,
29
+ enableMouse: `${CSI}?1000h${CSI}?1006h`,
30
+ disableMouse: `${CSI}?1000l${CSI}?1006l`,
31
+ };
32
+ let state = {
33
+ sidebarPaneId: '',
34
+ sessionId: '',
35
+ terminals: [],
36
+ activeIndex: 0,
37
+ tabPositions: [],
38
+ };
39
+ let running = false;
40
+ // ============================================================================
41
+ // Communication with Sidebar
42
+ // ============================================================================
43
+ /**
44
+ * Send a command to the sidebar via tmux send-keys
45
+ * Protocol: Ctrl+U followed by "TERM:<action>:<data>" then Enter
46
+ */
47
+ function sendToSidebar(action, data = '') {
48
+ try {
49
+ // Send Ctrl+U to clear any existing input and enter terminal command mode
50
+ (0, child_process_1.execSync)(`tmux send-keys -t ${state.sidebarPaneId} C-u`, { stdio: 'ignore' });
51
+ // Send the command
52
+ const cmd = data ? `TERM:${action}:${data}` : `TERM:${action}`;
53
+ (0, child_process_1.execSync)(`tmux send-keys -t ${state.sidebarPaneId} -l "${cmd}"`, { stdio: 'ignore' });
54
+ // Send Enter to execute
55
+ (0, child_process_1.execSync)(`tmux send-keys -t ${state.sidebarPaneId} Enter`, { stdio: 'ignore' });
56
+ }
57
+ catch (err) {
58
+ // Failed to send - sidebar may have exited
59
+ }
60
+ }
61
+ // ============================================================================
62
+ // Rendering
63
+ // ============================================================================
64
+ function render() {
65
+ const width = process.stdout.columns || 80;
66
+ const { output, tabPositions } = (0, bar_render_1.renderTerminalBar)(state.terminals, state.activeIndex, width);
67
+ state.tabPositions = tabPositions;
68
+ process.stdout.write(output);
69
+ }
70
+ // ============================================================================
71
+ // Input Handling
72
+ // ============================================================================
73
+ function handleInput(data) {
74
+ const input = data.toString();
75
+ // Check for render command from sidebar: "RENDER:<json>"
76
+ if (input.startsWith('RENDER:')) {
77
+ try {
78
+ const json = input.slice(7).trim();
79
+ const renderData = JSON.parse(json);
80
+ state.terminals = renderData.terminals || [];
81
+ state.activeIndex = renderData.activeIndex || 0;
82
+ render();
83
+ }
84
+ catch (err) {
85
+ // Invalid render data
86
+ }
87
+ return;
88
+ }
89
+ // Check for SGR mouse events: \x1b[<button;col;rowM or \x1b[<button;col;rowm
90
+ const mouseMatch = input.match(/\x1b\[<(\d+);(\d+);(\d+)([Mm])/);
91
+ if (mouseMatch) {
92
+ const button = parseInt(mouseMatch[1], 10);
93
+ const col = parseInt(mouseMatch[2], 10);
94
+ const row = parseInt(mouseMatch[3], 10);
95
+ const isRelease = mouseMatch[4] === 'm';
96
+ // Handle left click release on row 1
97
+ if (button === 0 && isRelease && row === 1) {
98
+ handleTabClick(col);
99
+ }
100
+ return;
101
+ }
102
+ // Handle keyboard input
103
+ const key = input;
104
+ // Number keys 1-9: switch to tab
105
+ if (key >= '1' && key <= '9') {
106
+ const tabIndex = parseInt(key, 10) - 1;
107
+ if (tabIndex < state.terminals.length) {
108
+ sendToSidebar('switch', String(tabIndex));
109
+ }
110
+ return;
111
+ }
112
+ // Tab: cycle forward
113
+ if (key === '\t') {
114
+ cycleTab(1);
115
+ return;
116
+ }
117
+ // Shift+Tab: cycle backward
118
+ if (key === '\x1b[Z') {
119
+ cycleTab(-1);
120
+ return;
121
+ }
122
+ // h or left arrow: previous
123
+ if (key === 'h' || key === '\x1b[D') {
124
+ cycleTab(-1);
125
+ return;
126
+ }
127
+ // l or right arrow: next
128
+ if (key === 'l' || key === '\x1b[C') {
129
+ cycleTab(1);
130
+ return;
131
+ }
132
+ // n or c: new terminal
133
+ if (key === 'n' || key === 'c') {
134
+ sendToSidebar('new');
135
+ return;
136
+ }
137
+ // d: delete current terminal
138
+ if (key === 'd') {
139
+ if (state.terminals.length > 0) {
140
+ sendToSidebar('delete', String(state.activeIndex));
141
+ }
142
+ return;
143
+ }
144
+ // Enter: focus the terminal pane
145
+ if (key === '\r') {
146
+ sendToSidebar('focus');
147
+ return;
148
+ }
149
+ // Escape: focus sidebar
150
+ if (key === '\x1b' && input.length === 1) {
151
+ sendToSidebar('escape');
152
+ return;
153
+ }
154
+ }
155
+ function handleTabClick(col) {
156
+ const clickedIndex = (0, bar_render_1.findClickedTab)(col, state.tabPositions);
157
+ if (clickedIndex === null)
158
+ return;
159
+ if (clickedIndex === -1) {
160
+ // Clicked [+] button
161
+ sendToSidebar('new');
162
+ }
163
+ else if (clickedIndex !== state.activeIndex) {
164
+ // Clicked a different tab
165
+ sendToSidebar('switch', String(clickedIndex));
166
+ }
167
+ }
168
+ function cycleTab(direction) {
169
+ if (state.terminals.length === 0)
170
+ return;
171
+ const newIndex = state.activeIndex + direction;
172
+ if (newIndex >= 0 && newIndex < state.terminals.length) {
173
+ sendToSidebar('switch', String(newIndex));
174
+ }
175
+ }
176
+ // ============================================================================
177
+ // Lifecycle
178
+ // ============================================================================
179
+ function start() {
180
+ running = true;
181
+ // Set up terminal
182
+ process.stdout.write(ansi.hideCursor);
183
+ process.stdout.write(ansi.enableMouse);
184
+ // Set up raw mode for input
185
+ if (process.stdin.isTTY) {
186
+ process.stdin.setRawMode(true);
187
+ }
188
+ process.stdin.resume();
189
+ process.stdin.on('data', handleInput);
190
+ // Handle resize
191
+ process.stdout.on('resize', () => {
192
+ render();
193
+ });
194
+ // Initial render
195
+ render();
196
+ }
197
+ function stop() {
198
+ running = false;
199
+ process.stdout.write(ansi.disableMouse);
200
+ process.stdout.write(ansi.showCursor);
201
+ process.stdout.write(ansi.reset);
202
+ if (process.stdin.isTTY) {
203
+ process.stdin.setRawMode(false);
204
+ }
205
+ process.stdin.pause();
206
+ }
207
+ // ============================================================================
208
+ // Main
209
+ // ============================================================================
210
+ async function main() {
211
+ const args = process.argv.slice(2);
212
+ if (args.length < 2) {
213
+ console.error('Usage: bar-handler <sidebarPaneId> <sessionId>');
214
+ process.exit(1);
215
+ }
216
+ state.sidebarPaneId = args[0];
217
+ state.sessionId = args[1];
218
+ // Parse initial state from remaining args or stdin
219
+ if (args[2]) {
220
+ try {
221
+ const initialData = JSON.parse(args[2]);
222
+ state.terminals = initialData.terminals || [];
223
+ state.activeIndex = initialData.activeIndex || 0;
224
+ }
225
+ catch (err) {
226
+ // Invalid initial data
227
+ }
228
+ }
229
+ // Handle graceful shutdown
230
+ process.on('SIGTERM', () => {
231
+ stop();
232
+ process.exit(0);
233
+ });
234
+ process.on('SIGINT', () => {
235
+ stop();
236
+ process.exit(0);
237
+ });
238
+ start();
239
+ }
240
+ main().catch((err) => {
241
+ console.error('Terminal bar handler error:', err);
242
+ process.exit(1);
243
+ });
244
+ //# sourceMappingURL=bar-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bar-handler.js","sourceRoot":"","sources":["../../src/terminal/bar-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Terminal Bar Rendering
3
+ *
4
+ * Pure functions for rendering the terminal tab bar with ANSI codes.
5
+ * The tab bar is a single row showing terminal tabs with keyboard hints on the right.
6
+ */
7
+ import type { Terminal } from '../types';
8
+ export interface TabPosition {
9
+ index: number;
10
+ startCol: number;
11
+ endCol: number;
12
+ }
13
+ /**
14
+ * Render the terminal tab bar as a single row
15
+ *
16
+ * @param terminals - Array of terminals
17
+ * @param activeIndex - Index of the active terminal
18
+ * @param width - Available width in columns
19
+ * @returns Object with ANSI output string and tab positions for click handling
20
+ */
21
+ export declare function renderTerminalBar(terminals: Terminal[], activeIndex: number, width: number): {
22
+ output: string;
23
+ tabPositions: TabPosition[];
24
+ };
25
+ /**
26
+ * Find which tab was clicked based on column position
27
+ *
28
+ * @param col - Column position of click (1-indexed)
29
+ * @param tabPositions - Array of tab positions
30
+ * @returns Tab index, -1 for new terminal button, or null if no tab clicked
31
+ */
32
+ export declare function findClickedTab(col: number, tabPositions: TabPosition[]): number | null;
33
+ //# sourceMappingURL=bar-render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bar-render.d.ts","sourceRoot":"","sources":["../../src/terminal/bar-render.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AA+BzC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,QAAQ,EAAE,EACrB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,WAAW,EAAE,CAAA;CAAE,CAgFjD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,IAAI,CAOtF"}