claude-code-plus-plus 0.2.1 → 0.2.3

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 (376) hide show
  1. package/dist/sidebar/app.d.ts +2 -0
  2. package/dist/sidebar/app.d.ts.map +1 -1
  3. package/dist/sidebar/app.js +30 -3
  4. package/dist/sidebar/app.js.map +1 -1
  5. package/dist/sidebar/render.d.ts +4 -0
  6. package/dist/sidebar/render.d.ts.map +1 -1
  7. package/dist/sidebar/render.js +65 -0
  8. package/dist/sidebar/render.js.map +1 -1
  9. package/dist/types.d.ts +2 -1
  10. package/dist/types.d.ts.map +1 -1
  11. package/dist/types.js.map +1 -1
  12. package/package.json +1 -1
  13. package/dist/app.d.ts +0 -52
  14. package/dist/app.d.ts.map +0 -1
  15. package/dist/app.js +0 -318
  16. package/dist/app.js.map +0 -1
  17. package/dist/core/index.d.ts +0 -14
  18. package/dist/core/index.d.ts.map +0 -1
  19. package/dist/core/index.js +0 -14
  20. package/dist/core/index.js.map +0 -1
  21. package/dist/core/session/index.d.ts +0 -7
  22. package/dist/core/session/index.d.ts.map +0 -1
  23. package/dist/core/session/index.js +0 -6
  24. package/dist/core/session/index.js.map +0 -1
  25. package/dist/core/session/session-manager.d.ts +0 -46
  26. package/dist/core/session/session-manager.d.ts.map +0 -1
  27. package/dist/core/session/session-manager.js +0 -245
  28. package/dist/core/session/session-manager.js.map +0 -1
  29. package/dist/core/session/session.d.ts +0 -44
  30. package/dist/core/session/session.d.ts.map +0 -1
  31. package/dist/core/session/session.js +0 -78
  32. package/dist/core/session/session.js.map +0 -1
  33. package/dist/core/terminal/index.d.ts +0 -7
  34. package/dist/core/terminal/index.d.ts.map +0 -1
  35. package/dist/core/terminal/index.js +0 -6
  36. package/dist/core/terminal/index.js.map +0 -1
  37. package/dist/core/terminal/terminal-manager.d.ts +0 -36
  38. package/dist/core/terminal/terminal-manager.d.ts.map +0 -1
  39. package/dist/core/terminal/terminal-manager.js +0 -182
  40. package/dist/core/terminal/terminal-manager.js.map +0 -1
  41. package/dist/core/terminal/terminal.d.ts +0 -27
  42. package/dist/core/terminal/terminal.d.ts.map +0 -1
  43. package/dist/core/terminal/terminal.js +0 -38
  44. package/dist/core/terminal/terminal.js.map +0 -1
  45. package/dist/core/workspace/index.d.ts +0 -7
  46. package/dist/core/workspace/index.d.ts.map +0 -1
  47. package/dist/core/workspace/index.js +0 -6
  48. package/dist/core/workspace/index.js.map +0 -1
  49. package/dist/core/workspace/workspace-manager.d.ts +0 -59
  50. package/dist/core/workspace/workspace-manager.d.ts.map +0 -1
  51. package/dist/core/workspace/workspace-manager.js +0 -224
  52. package/dist/core/workspace/workspace-manager.js.map +0 -1
  53. package/dist/core/workspace/workspace.d.ts +0 -56
  54. package/dist/core/workspace/workspace.d.ts.map +0 -1
  55. package/dist/core/workspace/workspace.js +0 -96
  56. package/dist/core/workspace/workspace.js.map +0 -1
  57. package/dist/core/worktree/index.d.ts +0 -7
  58. package/dist/core/worktree/index.d.ts.map +0 -1
  59. package/dist/core/worktree/index.js +0 -6
  60. package/dist/core/worktree/index.js.map +0 -1
  61. package/dist/core/worktree/worktree-manager.d.ts +0 -47
  62. package/dist/core/worktree/worktree-manager.d.ts.map +0 -1
  63. package/dist/core/worktree/worktree-manager.js +0 -170
  64. package/dist/core/worktree/worktree-manager.js.map +0 -1
  65. package/dist/core/worktree/worktree.d.ts +0 -35
  66. package/dist/core/worktree/worktree.d.ts.map +0 -1
  67. package/dist/core/worktree/worktree.js +0 -50
  68. package/dist/core/worktree/worktree.js.map +0 -1
  69. package/dist/core/worktree-manager.d.ts +0 -26
  70. package/dist/core/worktree-manager.d.ts.map +0 -1
  71. package/dist/core/worktree-manager.js +0 -177
  72. package/dist/core/worktree-manager.js.map +0 -1
  73. package/dist/events/bus.d.ts +0 -76
  74. package/dist/events/bus.d.ts.map +0 -1
  75. package/dist/events/bus.js +0 -223
  76. package/dist/events/bus.js.map +0 -1
  77. package/dist/events/handlers/index.d.ts +0 -28
  78. package/dist/events/handlers/index.d.ts.map +0 -1
  79. package/dist/events/handlers/index.js +0 -44
  80. package/dist/events/handlers/index.js.map +0 -1
  81. package/dist/events/handlers/session-events.d.ts +0 -12
  82. package/dist/events/handlers/session-events.d.ts.map +0 -1
  83. package/dist/events/handlers/session-events.js +0 -38
  84. package/dist/events/handlers/session-events.js.map +0 -1
  85. package/dist/events/handlers/terminal-events.d.ts +0 -12
  86. package/dist/events/handlers/terminal-events.d.ts.map +0 -1
  87. package/dist/events/handlers/terminal-events.js +0 -37
  88. package/dist/events/handlers/terminal-events.js.map +0 -1
  89. package/dist/events/handlers/ui-events.d.ts +0 -11
  90. package/dist/events/handlers/ui-events.d.ts.map +0 -1
  91. package/dist/events/handlers/ui-events.js +0 -202
  92. package/dist/events/handlers/ui-events.js.map +0 -1
  93. package/dist/events/index.d.ts +0 -9
  94. package/dist/events/index.d.ts.map +0 -1
  95. package/dist/events/index.js +0 -10
  96. package/dist/events/index.js.map +0 -1
  97. package/dist/multiplexer/base.d.ts +0 -73
  98. package/dist/multiplexer/base.d.ts.map +0 -1
  99. package/dist/multiplexer/base.js +0 -68
  100. package/dist/multiplexer/base.js.map +0 -1
  101. package/dist/multiplexer/factory.d.ts +0 -28
  102. package/dist/multiplexer/factory.d.ts.map +0 -1
  103. package/dist/multiplexer/factory.js +0 -72
  104. package/dist/multiplexer/factory.js.map +0 -1
  105. package/dist/multiplexer/index.d.ts +0 -14
  106. package/dist/multiplexer/index.d.ts.map +0 -1
  107. package/dist/multiplexer/index.js +0 -15
  108. package/dist/multiplexer/index.js.map +0 -1
  109. package/dist/multiplexer/tmux/index.d.ts +0 -9
  110. package/dist/multiplexer/tmux/index.d.ts.map +0 -1
  111. package/dist/multiplexer/tmux/index.js +0 -7
  112. package/dist/multiplexer/tmux/index.js.map +0 -1
  113. package/dist/multiplexer/tmux/tmux-commands.d.ts +0 -96
  114. package/dist/multiplexer/tmux/tmux-commands.d.ts.map +0 -1
  115. package/dist/multiplexer/tmux/tmux-commands.js +0 -282
  116. package/dist/multiplexer/tmux/tmux-commands.js.map +0 -1
  117. package/dist/multiplexer/tmux/tmux-config.d.ts +0 -57
  118. package/dist/multiplexer/tmux/tmux-config.d.ts.map +0 -1
  119. package/dist/multiplexer/tmux/tmux-config.js +0 -103
  120. package/dist/multiplexer/tmux/tmux-config.js.map +0 -1
  121. package/dist/multiplexer/tmux/tmux-multiplexer.d.ts +0 -94
  122. package/dist/multiplexer/tmux/tmux-multiplexer.d.ts.map +0 -1
  123. package/dist/multiplexer/tmux/tmux-multiplexer.js +0 -302
  124. package/dist/multiplexer/tmux/tmux-multiplexer.js.map +0 -1
  125. package/dist/multiplexer/windows/index.d.ts +0 -5
  126. package/dist/multiplexer/windows/index.d.ts.map +0 -1
  127. package/dist/multiplexer/windows/index.js +0 -5
  128. package/dist/multiplexer/windows/index.js.map +0 -1
  129. package/dist/multiplexer/windows/windows-multiplexer.d.ts +0 -61
  130. package/dist/multiplexer/windows/windows-multiplexer.d.ts.map +0 -1
  131. package/dist/multiplexer/windows/windows-multiplexer.js +0 -151
  132. package/dist/multiplexer/windows/windows-multiplexer.js.map +0 -1
  133. package/dist/services/claude/claude-detector.d.ts +0 -37
  134. package/dist/services/claude/claude-detector.d.ts.map +0 -1
  135. package/dist/services/claude/claude-detector.js +0 -83
  136. package/dist/services/claude/claude-detector.js.map +0 -1
  137. package/dist/services/claude/claude-service.d.ts +0 -57
  138. package/dist/services/claude/claude-service.d.ts.map +0 -1
  139. package/dist/services/claude/claude-service.js +0 -108
  140. package/dist/services/claude/claude-service.js.map +0 -1
  141. package/dist/services/claude/index.d.ts +0 -7
  142. package/dist/services/claude/index.d.ts.map +0 -1
  143. package/dist/services/claude/index.js +0 -6
  144. package/dist/services/claude/index.js.map +0 -1
  145. package/dist/services/git/branch-service.d.ts +0 -64
  146. package/dist/services/git/branch-service.d.ts.map +0 -1
  147. package/dist/services/git/branch-service.js +0 -217
  148. package/dist/services/git/branch-service.js.map +0 -1
  149. package/dist/services/git/git-service.d.ts +0 -44
  150. package/dist/services/git/git-service.d.ts.map +0 -1
  151. package/dist/services/git/git-service.js +0 -145
  152. package/dist/services/git/git-service.js.map +0 -1
  153. package/dist/services/git/index.d.ts +0 -8
  154. package/dist/services/git/index.d.ts.map +0 -1
  155. package/dist/services/git/index.js +0 -7
  156. package/dist/services/git/index.js.map +0 -1
  157. package/dist/services/git/worktree-service.d.ts +0 -61
  158. package/dist/services/git/worktree-service.d.ts.map +0 -1
  159. package/dist/services/git/worktree-service.js +0 -243
  160. package/dist/services/git/worktree-service.js.map +0 -1
  161. package/dist/services/index.d.ts +0 -12
  162. package/dist/services/index.d.ts.map +0 -1
  163. package/dist/services/index.js +0 -12
  164. package/dist/services/index.js.map +0 -1
  165. package/dist/services/process/index.d.ts +0 -8
  166. package/dist/services/process/index.d.ts.map +0 -1
  167. package/dist/services/process/index.js +0 -6
  168. package/dist/services/process/index.js.map +0 -1
  169. package/dist/services/process/process-monitor.d.ts +0 -98
  170. package/dist/services/process/process-monitor.d.ts.map +0 -1
  171. package/dist/services/process/process-monitor.js +0 -173
  172. package/dist/services/process/process-monitor.js.map +0 -1
  173. package/dist/services/process/process-spawner.d.ts +0 -55
  174. package/dist/services/process/process-spawner.d.ts.map +0 -1
  175. package/dist/services/process/process-spawner.js +0 -93
  176. package/dist/services/process/process-spawner.js.map +0 -1
  177. package/dist/sidebar.d.ts +0 -13
  178. package/dist/sidebar.d.ts.map +0 -1
  179. package/dist/sidebar.js +0 -1535
  180. package/dist/sidebar.js.map +0 -1
  181. package/dist/state/actions.d.ts +0 -49
  182. package/dist/state/actions.d.ts.map +0 -1
  183. package/dist/state/actions.js +0 -512
  184. package/dist/state/actions.js.map +0 -1
  185. package/dist/state/index.d.ts +0 -16
  186. package/dist/state/index.d.ts.map +0 -1
  187. package/dist/state/index.js +0 -28
  188. package/dist/state/index.js.map +0 -1
  189. package/dist/state/middleware/index.d.ts +0 -7
  190. package/dist/state/middleware/index.d.ts.map +0 -1
  191. package/dist/state/middleware/index.js +0 -6
  192. package/dist/state/middleware/index.js.map +0 -1
  193. package/dist/state/middleware/logger.d.ts +0 -22
  194. package/dist/state/middleware/logger.d.ts.map +0 -1
  195. package/dist/state/middleware/logger.js +0 -45
  196. package/dist/state/middleware/logger.js.map +0 -1
  197. package/dist/state/middleware/persistence.d.ts +0 -29
  198. package/dist/state/middleware/persistence.d.ts.map +0 -1
  199. package/dist/state/middleware/persistence.js +0 -71
  200. package/dist/state/middleware/persistence.js.map +0 -1
  201. package/dist/state/persistence/file-adapter.d.ts +0 -48
  202. package/dist/state/persistence/file-adapter.d.ts.map +0 -1
  203. package/dist/state/persistence/file-adapter.js +0 -96
  204. package/dist/state/persistence/file-adapter.js.map +0 -1
  205. package/dist/state/persistence/index.d.ts +0 -8
  206. package/dist/state/persistence/index.d.ts.map +0 -1
  207. package/dist/state/persistence/index.js +0 -6
  208. package/dist/state/persistence/index.js.map +0 -1
  209. package/dist/state/persistence/serializer.d.ts +0 -41
  210. package/dist/state/persistence/serializer.d.ts.map +0 -1
  211. package/dist/state/persistence/serializer.js +0 -114
  212. package/dist/state/persistence/serializer.js.map +0 -1
  213. package/dist/state/selectors.d.ts +0 -67
  214. package/dist/state/selectors.d.ts.map +0 -1
  215. package/dist/state/selectors.js +0 -177
  216. package/dist/state/selectors.js.map +0 -1
  217. package/dist/state/store.d.ts +0 -86
  218. package/dist/state/store.d.ts.map +0 -1
  219. package/dist/state/store.js +0 -161
  220. package/dist/state/store.js.map +0 -1
  221. package/dist/state/types.d.ts +0 -269
  222. package/dist/state/types.d.ts.map +0 -1
  223. package/dist/state/types.js +0 -7
  224. package/dist/state/types.js.map +0 -1
  225. package/dist/state.d.ts +0 -53
  226. package/dist/state.d.ts.map +0 -1
  227. package/dist/state.js +0 -101
  228. package/dist/state.js.map +0 -1
  229. package/dist/terminal-manager.d.ts +0 -16
  230. package/dist/terminal-manager.d.ts.map +0 -1
  231. package/dist/terminal-manager.js +0 -364
  232. package/dist/terminal-manager.js.map +0 -1
  233. package/dist/tmux.d.ts +0 -163
  234. package/dist/tmux.d.ts.map +0 -1
  235. package/dist/tmux.js +0 -360
  236. package/dist/tmux.js.map +0 -1
  237. package/dist/types/config.d.ts +0 -103
  238. package/dist/types/config.d.ts.map +0 -1
  239. package/dist/types/config.js +0 -7
  240. package/dist/types/config.js.map +0 -1
  241. package/dist/types/entities.d.ts +0 -88
  242. package/dist/types/entities.d.ts.map +0 -1
  243. package/dist/types/entities.js +0 -8
  244. package/dist/types/entities.js.map +0 -1
  245. package/dist/types/events.d.ts +0 -156
  246. package/dist/types/events.d.ts.map +0 -1
  247. package/dist/types/events.js +0 -8
  248. package/dist/types/events.js.map +0 -1
  249. package/dist/types/index.d.ts +0 -11
  250. package/dist/types/index.d.ts.map +0 -1
  251. package/dist/types/index.js +0 -8
  252. package/dist/types/index.js.map +0 -1
  253. package/dist/types/multiplexer.d.ts +0 -238
  254. package/dist/types/multiplexer.d.ts.map +0 -1
  255. package/dist/types/multiplexer.js +0 -8
  256. package/dist/types/multiplexer.js.map +0 -1
  257. package/dist/ui/components/base.d.ts +0 -155
  258. package/dist/ui/components/base.d.ts.map +0 -1
  259. package/dist/ui/components/base.js +0 -269
  260. package/dist/ui/components/base.js.map +0 -1
  261. package/dist/ui/components/index.d.ts +0 -10
  262. package/dist/ui/components/index.d.ts.map +0 -1
  263. package/dist/ui/components/index.js +0 -10
  264. package/dist/ui/components/index.js.map +0 -1
  265. package/dist/ui/components/input-field.d.ts +0 -98
  266. package/dist/ui/components/input-field.d.ts.map +0 -1
  267. package/dist/ui/components/input-field.js +0 -274
  268. package/dist/ui/components/input-field.js.map +0 -1
  269. package/dist/ui/components/list.d.ts +0 -94
  270. package/dist/ui/components/list.d.ts.map +0 -1
  271. package/dist/ui/components/list.js +0 -294
  272. package/dist/ui/components/list.js.map +0 -1
  273. package/dist/ui/components/modal.d.ts +0 -83
  274. package/dist/ui/components/modal.d.ts.map +0 -1
  275. package/dist/ui/components/modal.js +0 -249
  276. package/dist/ui/components/modal.js.map +0 -1
  277. package/dist/ui/components/tabs.d.ts +0 -97
  278. package/dist/ui/components/tabs.d.ts.map +0 -1
  279. package/dist/ui/components/tabs.js +0 -252
  280. package/dist/ui/components/tabs.js.map +0 -1
  281. package/dist/ui/components/text.d.ts +0 -60
  282. package/dist/ui/components/text.d.ts.map +0 -1
  283. package/dist/ui/components/text.js +0 -224
  284. package/dist/ui/components/text.js.map +0 -1
  285. package/dist/ui/index.d.ts +0 -12
  286. package/dist/ui/index.d.ts.map +0 -1
  287. package/dist/ui/index.js +0 -18
  288. package/dist/ui/index.js.map +0 -1
  289. package/dist/ui/input/index.d.ts +0 -8
  290. package/dist/ui/input/index.d.ts.map +0 -1
  291. package/dist/ui/input/index.js +0 -8
  292. package/dist/ui/input/index.js.map +0 -1
  293. package/dist/ui/input/input-manager.d.ts +0 -83
  294. package/dist/ui/input/input-manager.d.ts.map +0 -1
  295. package/dist/ui/input/input-manager.js +0 -200
  296. package/dist/ui/input/input-manager.js.map +0 -1
  297. package/dist/ui/input/keybindings.d.ts +0 -47
  298. package/dist/ui/input/keybindings.d.ts.map +0 -1
  299. package/dist/ui/input/keybindings.js +0 -168
  300. package/dist/ui/input/keybindings.js.map +0 -1
  301. package/dist/ui/input/keyboard.d.ts +0 -24
  302. package/dist/ui/input/keyboard.d.ts.map +0 -1
  303. package/dist/ui/input/keyboard.js +0 -230
  304. package/dist/ui/input/keyboard.js.map +0 -1
  305. package/dist/ui/input/mouse.d.ts +0 -44
  306. package/dist/ui/input/mouse.d.ts.map +0 -1
  307. package/dist/ui/input/mouse.js +0 -161
  308. package/dist/ui/input/mouse.js.map +0 -1
  309. package/dist/ui/layout/box.d.ts +0 -63
  310. package/dist/ui/layout/box.d.ts.map +0 -1
  311. package/dist/ui/layout/box.js +0 -160
  312. package/dist/ui/layout/box.js.map +0 -1
  313. package/dist/ui/layout/constraints.d.ts +0 -77
  314. package/dist/ui/layout/constraints.d.ts.map +0 -1
  315. package/dist/ui/layout/constraints.js +0 -154
  316. package/dist/ui/layout/constraints.js.map +0 -1
  317. package/dist/ui/layout/flex.d.ts +0 -59
  318. package/dist/ui/layout/flex.d.ts.map +0 -1
  319. package/dist/ui/layout/flex.js +0 -163
  320. package/dist/ui/layout/flex.js.map +0 -1
  321. package/dist/ui/layout/index.d.ts +0 -7
  322. package/dist/ui/layout/index.d.ts.map +0 -1
  323. package/dist/ui/layout/index.js +0 -7
  324. package/dist/ui/layout/index.js.map +0 -1
  325. package/dist/ui/modals/delete-modal.d.ts +0 -27
  326. package/dist/ui/modals/delete-modal.d.ts.map +0 -1
  327. package/dist/ui/modals/delete-modal.js +0 -59
  328. package/dist/ui/modals/delete-modal.js.map +0 -1
  329. package/dist/ui/modals/index.d.ts +0 -7
  330. package/dist/ui/modals/index.d.ts.map +0 -1
  331. package/dist/ui/modals/index.js +0 -7
  332. package/dist/ui/modals/index.js.map +0 -1
  333. package/dist/ui/modals/input-modal.d.ts +0 -66
  334. package/dist/ui/modals/input-modal.d.ts.map +0 -1
  335. package/dist/ui/modals/input-modal.js +0 -185
  336. package/dist/ui/modals/input-modal.js.map +0 -1
  337. package/dist/ui/modals/quit-modal.d.ts +0 -30
  338. package/dist/ui/modals/quit-modal.d.ts.map +0 -1
  339. package/dist/ui/modals/quit-modal.js +0 -65
  340. package/dist/ui/modals/quit-modal.js.map +0 -1
  341. package/dist/ui/renderer/ansi.d.ts +0 -206
  342. package/dist/ui/renderer/ansi.d.ts.map +0 -1
  343. package/dist/ui/renderer/ansi.js +0 -318
  344. package/dist/ui/renderer/ansi.js.map +0 -1
  345. package/dist/ui/renderer/canvas.d.ts +0 -126
  346. package/dist/ui/renderer/canvas.d.ts.map +0 -1
  347. package/dist/ui/renderer/canvas.js +0 -346
  348. package/dist/ui/renderer/canvas.js.map +0 -1
  349. package/dist/ui/renderer/colors.d.ts +0 -65
  350. package/dist/ui/renderer/colors.d.ts.map +0 -1
  351. package/dist/ui/renderer/colors.js +0 -260
  352. package/dist/ui/renderer/colors.js.map +0 -1
  353. package/dist/ui/renderer/index.d.ts +0 -8
  354. package/dist/ui/renderer/index.d.ts.map +0 -1
  355. package/dist/ui/renderer/index.js +0 -8
  356. package/dist/ui/renderer/index.js.map +0 -1
  357. package/dist/ui/renderer/symbols.d.ts +0 -176
  358. package/dist/ui/renderer/symbols.d.ts.map +0 -1
  359. package/dist/ui/renderer/symbols.js +0 -246
  360. package/dist/ui/renderer/symbols.js.map +0 -1
  361. package/dist/ui/views/index.d.ts +0 -7
  362. package/dist/ui/views/index.d.ts.map +0 -1
  363. package/dist/ui/views/index.js +0 -7
  364. package/dist/ui/views/index.js.map +0 -1
  365. package/dist/ui/views/sidebar-view.d.ts +0 -89
  366. package/dist/ui/views/sidebar-view.d.ts.map +0 -1
  367. package/dist/ui/views/sidebar-view.js +0 -259
  368. package/dist/ui/views/sidebar-view.js.map +0 -1
  369. package/dist/ui/views/terminal-bar-view.d.ts +0 -67
  370. package/dist/ui/views/terminal-bar-view.d.ts.map +0 -1
  371. package/dist/ui/views/terminal-bar-view.js +0 -172
  372. package/dist/ui/views/terminal-bar-view.js.map +0 -1
  373. package/dist/ui/views/welcome-view.d.ts +0 -34
  374. package/dist/ui/views/welcome-view.d.ts.map +0 -1
  375. package/dist/ui/views/welcome-view.js +0 -116
  376. package/dist/ui/views/welcome-view.js.map +0 -1
package/dist/tmux.js DELETED
@@ -1,360 +0,0 @@
1
- /**
2
- * Tmux control utilities
3
- */
4
- import { execSync, spawnSync } from 'child_process';
5
- import { writeFileSync, chmodSync } from 'fs';
6
- export class Tmux {
7
- sessionName;
8
- constructor(sessionName = 'claude-pp') {
9
- this.sessionName = sessionName;
10
- }
11
- /**
12
- * Check if tmux is installed
13
- */
14
- static isAvailable() {
15
- try {
16
- execSync('which tmux', { stdio: 'ignore' });
17
- return true;
18
- }
19
- catch {
20
- return false;
21
- }
22
- }
23
- /**
24
- * Check if our session already exists
25
- */
26
- sessionExists() {
27
- try {
28
- execSync(`tmux has-session -t ${this.sessionName} 2>/dev/null`, { stdio: 'ignore' });
29
- return true;
30
- }
31
- catch {
32
- return false;
33
- }
34
- }
35
- /**
36
- * Kill existing session if it exists
37
- */
38
- killSession() {
39
- try {
40
- execSync(`tmux kill-session -t ${this.sessionName} 2>/dev/null`, { stdio: 'ignore' });
41
- }
42
- catch {
43
- // Session didn't exist, that's fine
44
- }
45
- }
46
- /**
47
- * Create a new tmux session (detached)
48
- * Returns the initial window/pane ID
49
- */
50
- createSession(startDir) {
51
- // Kill any existing session first
52
- this.killSession();
53
- // Create new detached session
54
- execSync(`tmux new-session -d -s ${this.sessionName} -c "${startDir}"`, { stdio: 'ignore' });
55
- // Get the pane ID
56
- const paneId = execSync(`tmux display-message -p -t ${this.sessionName} '#{pane_id}'`)
57
- .toString()
58
- .trim();
59
- return paneId;
60
- }
61
- /**
62
- * Split pane horizontally (left/right)
63
- * Returns the new pane ID (right pane)
64
- */
65
- splitHorizontal(percentage = 50, startDir) {
66
- const dirArg = startDir ? `-c "${startDir}"` : '';
67
- execSync(`tmux split-window -h -t ${this.sessionName} -p ${percentage} ${dirArg}`, { stdio: 'ignore' });
68
- // Get the new pane ID
69
- const paneId = execSync(`tmux display-message -p -t ${this.sessionName} '#{pane_id}'`)
70
- .toString()
71
- .trim();
72
- return paneId;
73
- }
74
- /**
75
- * Split pane vertically (top/bottom)
76
- * Returns the new pane ID (bottom pane)
77
- */
78
- splitVertical(percentage = 50, startDir) {
79
- const dirArg = startDir ? `-c "${startDir}"` : '';
80
- execSync(`tmux split-window -v -t ${this.sessionName} -p ${percentage} ${dirArg}`, { stdio: 'ignore' });
81
- const paneId = execSync(`tmux display-message -p -t ${this.sessionName} '#{pane_id}'`)
82
- .toString()
83
- .trim();
84
- return paneId;
85
- }
86
- /**
87
- * Send keys to a specific pane
88
- */
89
- /**
90
- * Send literal text to a pane (spaces and special chars preserved)
91
- */
92
- sendKeys(paneId, keys, enter = true) {
93
- // Use -l for literal string to avoid interpretation issues
94
- // Escape single quotes in the keys
95
- const escaped = keys.replace(/'/g, "'\\''");
96
- execSync(`tmux send-keys -t ${paneId} -l '${escaped}'`, { stdio: 'ignore' });
97
- if (enter) {
98
- execSync(`tmux send-keys -t ${paneId} Enter`, { stdio: 'ignore' });
99
- }
100
- }
101
- /**
102
- * Send control/special keys (e.g., C-c for Ctrl+C, Enter, Escape)
103
- */
104
- sendControlKey(paneId, key) {
105
- execSync(`tmux send-keys -t ${paneId} ${key}`, { stdio: 'ignore' });
106
- }
107
- /**
108
- * Run a command in a specific pane
109
- */
110
- runInPane(paneId, command) {
111
- this.sendKeys(paneId, command, true);
112
- }
113
- /**
114
- * Select (focus) a specific pane
115
- */
116
- selectPane(paneId) {
117
- execSync(`tmux select-pane -t ${paneId}`, { stdio: 'ignore' });
118
- }
119
- /**
120
- * Resize a pane
121
- */
122
- resizePane(paneId, width, height) {
123
- if (width !== undefined) {
124
- execSync(`tmux resize-pane -t ${paneId} -x ${width}`, { stdio: 'ignore' });
125
- }
126
- if (height !== undefined) {
127
- execSync(`tmux resize-pane -t ${paneId} -y ${height}`, { stdio: 'ignore' });
128
- }
129
- }
130
- /**
131
- * Break a pane out to its own window (keeps it running in background)
132
- * Returns the new window ID
133
- */
134
- breakPane(paneId, windowName) {
135
- const nameArg = windowName ? `-n "${windowName}"` : '';
136
- execSync(`tmux break-pane -d -s ${paneId} ${nameArg}`, { stdio: 'ignore' });
137
- // Get the window ID of the broken-out pane
138
- const windowId = execSync(`tmux display-message -p -t ${paneId} '#{window_id}'`)
139
- .toString()
140
- .trim();
141
- return windowId;
142
- }
143
- /**
144
- * Join a pane from another window into the current window
145
- * Returns the new pane ID
146
- */
147
- joinPane(sourcePaneId, targetPaneId, horizontal = true) {
148
- const direction = horizontal ? '-h' : '-v';
149
- execSync(`tmux join-pane ${direction} -s ${sourcePaneId} -t ${targetPaneId}`, { stdio: 'ignore' });
150
- // Return the source pane ID (it keeps its ID after joining)
151
- return sourcePaneId;
152
- }
153
- /**
154
- * Swap two panes
155
- */
156
- swapPane(paneId1, paneId2) {
157
- execSync(`tmux swap-pane -s ${paneId1} -t ${paneId2}`, { stdio: 'ignore' });
158
- }
159
- /**
160
- * Create a new pane by splitting, run a command, then break it to background
161
- * Returns the pane ID (which persists even after breaking to background window)
162
- */
163
- createBackgroundPane(startDir, command) {
164
- // Split to create new pane
165
- const paneId = this.splitHorizontal(50, startDir);
166
- // Run command if provided
167
- if (command) {
168
- this.runInPane(paneId, command);
169
- }
170
- // Break it to background window (keeps it running)
171
- this.breakPane(paneId);
172
- return paneId;
173
- }
174
- /**
175
- * Bring a background pane to the foreground (swap with current right pane)
176
- */
177
- showPane(paneId, targetPaneId) {
178
- this.swapPane(paneId, targetPaneId);
179
- }
180
- /**
181
- * Create a new window (like a tab)
182
- */
183
- createWindow(name, startDir) {
184
- const dirArg = startDir ? `-c "${startDir}"` : '';
185
- execSync(`tmux new-window -t ${this.sessionName} -n "${name}" ${dirArg}`, { stdio: 'ignore' });
186
- const windowId = execSync(`tmux display-message -p -t ${this.sessionName} '#{window_id}'`)
187
- .toString()
188
- .trim();
189
- return windowId;
190
- }
191
- /**
192
- * Select a window by index or ID
193
- */
194
- selectWindow(windowId) {
195
- execSync(`tmux select-window -t ${windowId}`, { stdio: 'ignore' });
196
- }
197
- /**
198
- * Rename a window
199
- */
200
- renameWindow(windowId, name) {
201
- execSync(`tmux rename-window -t ${windowId} "${name}"`, { stdio: 'ignore' });
202
- }
203
- /**
204
- * Kill a pane
205
- */
206
- killPane(paneId) {
207
- try {
208
- execSync(`tmux kill-pane -t ${paneId}`, { stdio: 'ignore' });
209
- }
210
- catch {
211
- // Pane might already be dead
212
- }
213
- }
214
- /**
215
- * Kill a window
216
- */
217
- killWindow(windowId) {
218
- try {
219
- execSync(`tmux kill-window -t ${windowId}`, { stdio: 'ignore' });
220
- }
221
- catch {
222
- // Window might already be dead
223
- }
224
- }
225
- /**
226
- * Detach the current client from the session
227
- */
228
- detachClient() {
229
- try {
230
- execSync(`tmux detach-client -s ${this.sessionName}`, { stdio: 'ignore' });
231
- }
232
- catch {
233
- // Client might already be detached
234
- }
235
- }
236
- /**
237
- * Attach to the session (takes over the terminal)
238
- * This is blocking - returns only after detach/exit
239
- */
240
- attach() {
241
- // Use spawnSync to block until tmux attach exits (user detaches or session ends)
242
- const result = spawnSync('tmux', ['attach-session', '-t', this.sessionName], {
243
- stdio: 'inherit',
244
- });
245
- return result.status || 0;
246
- }
247
- /**
248
- * Get list of panes in current window
249
- */
250
- listPanes() {
251
- const output = execSync(`tmux list-panes -t ${this.sessionName} -F '#{pane_id},#{pane_width},#{pane_height},#{pane_active}'`).toString();
252
- return output
253
- .trim()
254
- .split('\n')
255
- .filter(Boolean)
256
- .map((line) => {
257
- const [id, width, height, active] = line.split(',');
258
- return {
259
- id,
260
- width: parseInt(width, 10),
261
- height: parseInt(height, 10),
262
- active: active === '1',
263
- };
264
- });
265
- }
266
- /**
267
- * Get list of windows
268
- */
269
- listWindows() {
270
- const output = execSync(`tmux list-windows -t ${this.sessionName} -F '#{window_id},#{window_name},#{window_active}'`).toString();
271
- return output
272
- .trim()
273
- .split('\n')
274
- .filter(Boolean)
275
- .map((line) => {
276
- const [id, name, active] = line.split(',');
277
- return {
278
- id,
279
- name,
280
- active: active === '1',
281
- panes: [], // Could populate with listPanes for each window if needed
282
- };
283
- });
284
- }
285
- /**
286
- * Set a tmux option
287
- */
288
- setOption(option, value, global = false) {
289
- const flag = global ? '-g' : '';
290
- execSync(`tmux set-option ${flag} ${option} ${value}`, { stdio: 'ignore' });
291
- }
292
- /**
293
- * Set a pane-specific option
294
- */
295
- setPaneOption(paneId, option, value) {
296
- execSync(`tmux set-option -p -t ${paneId} ${option} ${value}`, { stdio: 'ignore' });
297
- }
298
- /**
299
- * Bind a key
300
- */
301
- bindKey(key, command) {
302
- execSync(`tmux bind-key ${key} ${command}`, { stdio: 'ignore' });
303
- }
304
- /**
305
- * Unbind a key
306
- */
307
- unbindKey(table, key) {
308
- try {
309
- execSync(`tmux unbind-key -T ${table} ${key}`, { stdio: 'ignore' });
310
- }
311
- catch {
312
- // Key might not be bound
313
- }
314
- }
315
- /**
316
- * Bind a conditional key (does different things based on pane)
317
- */
318
- bindConditionalKey(table, key, condition, ifTrue, ifFalse) {
319
- const cmd = ifTrue || '""';
320
- const elseCmd = ifFalse || '""';
321
- execSync(`tmux bind-key -T ${table} ${key} if-shell -F "${condition}" ${cmd} ${elseCmd}`, { stdio: 'ignore' });
322
- }
323
- /**
324
- * Set up a key binding to toggle sidebar width
325
- * Binds to Ctrl+G (no prefix needed, works from any pane)
326
- */
327
- bindSidebarToggle(sidebarPaneId, expandedWidth, collapsedWidth) {
328
- // Write a toggle script using Node.js (avoids shell escaping issues)
329
- const scriptPath = `/tmp/claude-pp-toggle-${this.sessionName}.sh`;
330
- const script = `#!/bin/bash
331
- width=$(tmux display-message -t '${sidebarPaneId}' -p '#{pane_width}')
332
- if [ "$width" -gt ${collapsedWidth} ]; then
333
- tmux resize-pane -t '${sidebarPaneId}' -x ${collapsedWidth}
334
- else
335
- tmux resize-pane -t '${sidebarPaneId}' -x ${expandedWidth}
336
- fi
337
- `;
338
- writeFileSync(scriptPath, script);
339
- chmodSync(scriptPath, 0o755);
340
- // Bind to Ctrl+G in root table
341
- execSync(`tmux bind-key -T root C-g run-shell -b '${scriptPath}'`, { stdio: 'ignore' });
342
- }
343
- /**
344
- * Disable scroll wheel for a specific pane, keep it for others
345
- */
346
- disableScrollForPane(paneId) {
347
- // Bind wheel events to do nothing if in sidebar pane, otherwise normal behavior
348
- const condition = `#{==:#{pane_id},${paneId}}`;
349
- // For WheelUpPane: if sidebar, do nothing; else enter copy-mode and scroll
350
- execSync(`tmux bind-key -T root WheelUpPane if-shell -F "${condition}" "" "copy-mode -e; send-keys -M"`, { stdio: 'ignore' });
351
- execSync(`tmux bind-key -T root WheelDownPane if-shell -F "${condition}" "" "copy-mode -e; send-keys -M"`, { stdio: 'ignore' });
352
- }
353
- /**
354
- * Get session name
355
- */
356
- getSessionName() {
357
- return this.sessionName;
358
- }
359
- }
360
- //# sourceMappingURL=tmux.js.map
package/dist/tmux.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"tmux.js","sourceRoot":"","sources":["../src/tmux.ts"],"names":[],"mappings":"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"}
@@ -1,103 +0,0 @@
1
- /**
2
- * Configuration Type Definitions
3
- *
4
- * Defines the shape of application configuration.
5
- */
6
- /**
7
- * Claude CLI configuration
8
- */
9
- export interface ClaudeConfig {
10
- /** Command to run Claude CLI (default: 'claude') */
11
- command: string;
12
- /** Skip permission prompts (default: true) */
13
- skipPermissions: boolean;
14
- /** Additional arguments to pass to Claude */
15
- additionalArgs: string[];
16
- }
17
- /**
18
- * UI configuration
19
- */
20
- export interface UIConfig {
21
- /** Sidebar width when expanded (default: 25) */
22
- sidebarWidth: number;
23
- /** Sidebar width when collapsed (default: 2) */
24
- collapsedWidth: number;
25
- /** UI color theme */
26
- theme: 'default' | 'minimal' | 'high-contrast';
27
- /** Show help hints in sidebar (default: true) */
28
- showHelp: boolean;
29
- }
30
- /**
31
- * Worktree configuration
32
- */
33
- export interface WorktreeConfig {
34
- /** Base path for creating new worktrees */
35
- basePath: string;
36
- /** Auto-create worktree directory if it doesn't exist (default: true) */
37
- autoCreateDir: boolean;
38
- }
39
- /**
40
- * Multiplexer configuration
41
- */
42
- export interface MultiplexerConfig {
43
- /** Which multiplexer to use */
44
- type: 'auto' | 'tmux';
45
- /** tmux-specific options */
46
- tmux: {
47
- /** Custom tmux binary path */
48
- binary: string;
49
- /** Enable mouse support (default: true) */
50
- mouse: boolean;
51
- /** Show tmux status bar (default: false) */
52
- statusBar: boolean;
53
- };
54
- }
55
- /**
56
- * Debug configuration
57
- */
58
- export interface DebugConfig {
59
- /** Enable debug logging (default: false) */
60
- enabled: boolean;
61
- /** Debug log file path */
62
- logFile: string;
63
- /** Log level */
64
- level: 'debug' | 'info' | 'warn' | 'error';
65
- }
66
- /**
67
- * Complete application configuration
68
- */
69
- export interface AppConfig {
70
- claude: ClaudeConfig;
71
- ui: UIConfig;
72
- worktrees: WorktreeConfig;
73
- multiplexer: MultiplexerConfig;
74
- debug: DebugConfig;
75
- }
76
- /**
77
- * Partial configuration for merging with defaults
78
- */
79
- export type PartialAppConfig = {
80
- [K in keyof AppConfig]?: Partial<AppConfig[K]>;
81
- };
82
- /**
83
- * Application paths
84
- */
85
- export interface AppPaths {
86
- /** User's home directory */
87
- home: string;
88
- /** Application data directory (~/.claude-plus-plus) */
89
- data: string;
90
- /** Configuration file path */
91
- config: string;
92
- /** Project-specific data directory */
93
- project: string;
94
- /** State file path */
95
- state: string;
96
- /** Worktrees base directory */
97
- worktrees: string;
98
- /** Temporary files directory */
99
- temp: string;
100
- /** Debug log file path */
101
- debugLog: string;
102
- }
103
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,eAAe,EAAE,OAAO,CAAC;IACzB,6CAA6C;IAC7C,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB;IACrB,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,eAAe,CAAC;IAC/C,iDAAiD;IACjD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,4BAA4B;IAC5B,IAAI,EAAE;QACJ,8BAA8B;QAC9B,MAAM,EAAE,MAAM,CAAC;QACf,2CAA2C;QAC3C,KAAK,EAAE,OAAO,CAAC;QACf,4CAA4C;QAC5C,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,YAAY,CAAC;IACrB,EAAE,EAAE,QAAQ,CAAC;IACb,SAAS,EAAE,cAAc,CAAC;IAC1B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,KAAK,EAAE,WAAW,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;KAC5B,CAAC,IAAI,MAAM,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAC/C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Configuration Type Definitions
3
- *
4
- * Defines the shape of application configuration.
5
- */
6
- export {};
7
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1,88 +0,0 @@
1
- /**
2
- * Domain Entity Types
3
- *
4
- * These interfaces define the core domain objects in the application.
5
- * They are pure data structures with no behavior.
6
- */
7
- /**
8
- * Represents a terminal pane within a session
9
- */
10
- export interface Terminal {
11
- id: string;
12
- sessionId: string;
13
- paneId: string | null;
14
- title: string;
15
- createdAt: Date;
16
- }
17
- /**
18
- * Represents a Claude Code session
19
- */
20
- export interface Session {
21
- id: string;
22
- worktreeId: string;
23
- title: string;
24
- createdAt: Date;
25
- panes: {
26
- main: string | null;
27
- terminalManager: string | null;
28
- };
29
- terminals: Terminal[];
30
- activeTerminalIndex: number;
31
- }
32
- /**
33
- * Represents a git worktree
34
- */
35
- export interface Worktree {
36
- id: string;
37
- path: string;
38
- branch: string;
39
- isMain: boolean;
40
- sessions: Session[];
41
- }
42
- /**
43
- * Represents the entire workspace for a project
44
- */
45
- export interface Workspace {
46
- id: string;
47
- projectPath: string;
48
- projectName: string;
49
- multiplexerSessionId: string;
50
- worktrees: Worktree[];
51
- activeSessionId: string | null;
52
- }
53
- /**
54
- * Information about a worktree from git
55
- */
56
- export interface WorktreeInfo {
57
- path: string;
58
- branch: string;
59
- commit: string;
60
- isMain: boolean;
61
- isBare: boolean;
62
- isDetached: boolean;
63
- }
64
- /**
65
- * Information about a pane from the multiplexer
66
- */
67
- export interface PaneInfo {
68
- id: string;
69
- windowId: string;
70
- index: number;
71
- width: number;
72
- height: number;
73
- top: number;
74
- left: number;
75
- active: boolean;
76
- title: string;
77
- }
78
- /**
79
- * Information about a window from the multiplexer
80
- */
81
- export interface WindowInfo {
82
- id: string;
83
- index: number;
84
- name: string;
85
- active: boolean;
86
- panes: PaneInfo[];
87
- }
88
- //# sourceMappingURL=entities.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/types/entities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;KAChC,CAAC;IACF,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Domain Entity Types
3
- *
4
- * These interfaces define the core domain objects in the application.
5
- * They are pure data structures with no behavior.
6
- */
7
- export {};
8
- //# sourceMappingURL=entities.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entities.js","sourceRoot":"","sources":["../../src/types/entities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}