claude-code-plus-plus 0.2.1 → 0.2.2

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 (365) hide show
  1. package/package.json +1 -1
  2. package/dist/app.d.ts +0 -52
  3. package/dist/app.d.ts.map +0 -1
  4. package/dist/app.js +0 -318
  5. package/dist/app.js.map +0 -1
  6. package/dist/core/index.d.ts +0 -14
  7. package/dist/core/index.d.ts.map +0 -1
  8. package/dist/core/index.js +0 -14
  9. package/dist/core/index.js.map +0 -1
  10. package/dist/core/session/index.d.ts +0 -7
  11. package/dist/core/session/index.d.ts.map +0 -1
  12. package/dist/core/session/index.js +0 -6
  13. package/dist/core/session/index.js.map +0 -1
  14. package/dist/core/session/session-manager.d.ts +0 -46
  15. package/dist/core/session/session-manager.d.ts.map +0 -1
  16. package/dist/core/session/session-manager.js +0 -245
  17. package/dist/core/session/session-manager.js.map +0 -1
  18. package/dist/core/session/session.d.ts +0 -44
  19. package/dist/core/session/session.d.ts.map +0 -1
  20. package/dist/core/session/session.js +0 -78
  21. package/dist/core/session/session.js.map +0 -1
  22. package/dist/core/terminal/index.d.ts +0 -7
  23. package/dist/core/terminal/index.d.ts.map +0 -1
  24. package/dist/core/terminal/index.js +0 -6
  25. package/dist/core/terminal/index.js.map +0 -1
  26. package/dist/core/terminal/terminal-manager.d.ts +0 -36
  27. package/dist/core/terminal/terminal-manager.d.ts.map +0 -1
  28. package/dist/core/terminal/terminal-manager.js +0 -182
  29. package/dist/core/terminal/terminal-manager.js.map +0 -1
  30. package/dist/core/terminal/terminal.d.ts +0 -27
  31. package/dist/core/terminal/terminal.d.ts.map +0 -1
  32. package/dist/core/terminal/terminal.js +0 -38
  33. package/dist/core/terminal/terminal.js.map +0 -1
  34. package/dist/core/workspace/index.d.ts +0 -7
  35. package/dist/core/workspace/index.d.ts.map +0 -1
  36. package/dist/core/workspace/index.js +0 -6
  37. package/dist/core/workspace/index.js.map +0 -1
  38. package/dist/core/workspace/workspace-manager.d.ts +0 -59
  39. package/dist/core/workspace/workspace-manager.d.ts.map +0 -1
  40. package/dist/core/workspace/workspace-manager.js +0 -224
  41. package/dist/core/workspace/workspace-manager.js.map +0 -1
  42. package/dist/core/workspace/workspace.d.ts +0 -56
  43. package/dist/core/workspace/workspace.d.ts.map +0 -1
  44. package/dist/core/workspace/workspace.js +0 -96
  45. package/dist/core/workspace/workspace.js.map +0 -1
  46. package/dist/core/worktree/index.d.ts +0 -7
  47. package/dist/core/worktree/index.d.ts.map +0 -1
  48. package/dist/core/worktree/index.js +0 -6
  49. package/dist/core/worktree/index.js.map +0 -1
  50. package/dist/core/worktree/worktree-manager.d.ts +0 -47
  51. package/dist/core/worktree/worktree-manager.d.ts.map +0 -1
  52. package/dist/core/worktree/worktree-manager.js +0 -170
  53. package/dist/core/worktree/worktree-manager.js.map +0 -1
  54. package/dist/core/worktree/worktree.d.ts +0 -35
  55. package/dist/core/worktree/worktree.d.ts.map +0 -1
  56. package/dist/core/worktree/worktree.js +0 -50
  57. package/dist/core/worktree/worktree.js.map +0 -1
  58. package/dist/core/worktree-manager.d.ts +0 -26
  59. package/dist/core/worktree-manager.d.ts.map +0 -1
  60. package/dist/core/worktree-manager.js +0 -177
  61. package/dist/core/worktree-manager.js.map +0 -1
  62. package/dist/events/bus.d.ts +0 -76
  63. package/dist/events/bus.d.ts.map +0 -1
  64. package/dist/events/bus.js +0 -223
  65. package/dist/events/bus.js.map +0 -1
  66. package/dist/events/handlers/index.d.ts +0 -28
  67. package/dist/events/handlers/index.d.ts.map +0 -1
  68. package/dist/events/handlers/index.js +0 -44
  69. package/dist/events/handlers/index.js.map +0 -1
  70. package/dist/events/handlers/session-events.d.ts +0 -12
  71. package/dist/events/handlers/session-events.d.ts.map +0 -1
  72. package/dist/events/handlers/session-events.js +0 -38
  73. package/dist/events/handlers/session-events.js.map +0 -1
  74. package/dist/events/handlers/terminal-events.d.ts +0 -12
  75. package/dist/events/handlers/terminal-events.d.ts.map +0 -1
  76. package/dist/events/handlers/terminal-events.js +0 -37
  77. package/dist/events/handlers/terminal-events.js.map +0 -1
  78. package/dist/events/handlers/ui-events.d.ts +0 -11
  79. package/dist/events/handlers/ui-events.d.ts.map +0 -1
  80. package/dist/events/handlers/ui-events.js +0 -202
  81. package/dist/events/handlers/ui-events.js.map +0 -1
  82. package/dist/events/index.d.ts +0 -9
  83. package/dist/events/index.d.ts.map +0 -1
  84. package/dist/events/index.js +0 -10
  85. package/dist/events/index.js.map +0 -1
  86. package/dist/multiplexer/base.d.ts +0 -73
  87. package/dist/multiplexer/base.d.ts.map +0 -1
  88. package/dist/multiplexer/base.js +0 -68
  89. package/dist/multiplexer/base.js.map +0 -1
  90. package/dist/multiplexer/factory.d.ts +0 -28
  91. package/dist/multiplexer/factory.d.ts.map +0 -1
  92. package/dist/multiplexer/factory.js +0 -72
  93. package/dist/multiplexer/factory.js.map +0 -1
  94. package/dist/multiplexer/index.d.ts +0 -14
  95. package/dist/multiplexer/index.d.ts.map +0 -1
  96. package/dist/multiplexer/index.js +0 -15
  97. package/dist/multiplexer/index.js.map +0 -1
  98. package/dist/multiplexer/tmux/index.d.ts +0 -9
  99. package/dist/multiplexer/tmux/index.d.ts.map +0 -1
  100. package/dist/multiplexer/tmux/index.js +0 -7
  101. package/dist/multiplexer/tmux/index.js.map +0 -1
  102. package/dist/multiplexer/tmux/tmux-commands.d.ts +0 -96
  103. package/dist/multiplexer/tmux/tmux-commands.d.ts.map +0 -1
  104. package/dist/multiplexer/tmux/tmux-commands.js +0 -282
  105. package/dist/multiplexer/tmux/tmux-commands.js.map +0 -1
  106. package/dist/multiplexer/tmux/tmux-config.d.ts +0 -57
  107. package/dist/multiplexer/tmux/tmux-config.d.ts.map +0 -1
  108. package/dist/multiplexer/tmux/tmux-config.js +0 -103
  109. package/dist/multiplexer/tmux/tmux-config.js.map +0 -1
  110. package/dist/multiplexer/tmux/tmux-multiplexer.d.ts +0 -94
  111. package/dist/multiplexer/tmux/tmux-multiplexer.d.ts.map +0 -1
  112. package/dist/multiplexer/tmux/tmux-multiplexer.js +0 -302
  113. package/dist/multiplexer/tmux/tmux-multiplexer.js.map +0 -1
  114. package/dist/multiplexer/windows/index.d.ts +0 -5
  115. package/dist/multiplexer/windows/index.d.ts.map +0 -1
  116. package/dist/multiplexer/windows/index.js +0 -5
  117. package/dist/multiplexer/windows/index.js.map +0 -1
  118. package/dist/multiplexer/windows/windows-multiplexer.d.ts +0 -61
  119. package/dist/multiplexer/windows/windows-multiplexer.d.ts.map +0 -1
  120. package/dist/multiplexer/windows/windows-multiplexer.js +0 -151
  121. package/dist/multiplexer/windows/windows-multiplexer.js.map +0 -1
  122. package/dist/services/claude/claude-detector.d.ts +0 -37
  123. package/dist/services/claude/claude-detector.d.ts.map +0 -1
  124. package/dist/services/claude/claude-detector.js +0 -83
  125. package/dist/services/claude/claude-detector.js.map +0 -1
  126. package/dist/services/claude/claude-service.d.ts +0 -57
  127. package/dist/services/claude/claude-service.d.ts.map +0 -1
  128. package/dist/services/claude/claude-service.js +0 -108
  129. package/dist/services/claude/claude-service.js.map +0 -1
  130. package/dist/services/claude/index.d.ts +0 -7
  131. package/dist/services/claude/index.d.ts.map +0 -1
  132. package/dist/services/claude/index.js +0 -6
  133. package/dist/services/claude/index.js.map +0 -1
  134. package/dist/services/git/branch-service.d.ts +0 -64
  135. package/dist/services/git/branch-service.d.ts.map +0 -1
  136. package/dist/services/git/branch-service.js +0 -217
  137. package/dist/services/git/branch-service.js.map +0 -1
  138. package/dist/services/git/git-service.d.ts +0 -44
  139. package/dist/services/git/git-service.d.ts.map +0 -1
  140. package/dist/services/git/git-service.js +0 -145
  141. package/dist/services/git/git-service.js.map +0 -1
  142. package/dist/services/git/index.d.ts +0 -8
  143. package/dist/services/git/index.d.ts.map +0 -1
  144. package/dist/services/git/index.js +0 -7
  145. package/dist/services/git/index.js.map +0 -1
  146. package/dist/services/git/worktree-service.d.ts +0 -61
  147. package/dist/services/git/worktree-service.d.ts.map +0 -1
  148. package/dist/services/git/worktree-service.js +0 -243
  149. package/dist/services/git/worktree-service.js.map +0 -1
  150. package/dist/services/index.d.ts +0 -12
  151. package/dist/services/index.d.ts.map +0 -1
  152. package/dist/services/index.js +0 -12
  153. package/dist/services/index.js.map +0 -1
  154. package/dist/services/process/index.d.ts +0 -8
  155. package/dist/services/process/index.d.ts.map +0 -1
  156. package/dist/services/process/index.js +0 -6
  157. package/dist/services/process/index.js.map +0 -1
  158. package/dist/services/process/process-monitor.d.ts +0 -98
  159. package/dist/services/process/process-monitor.d.ts.map +0 -1
  160. package/dist/services/process/process-monitor.js +0 -173
  161. package/dist/services/process/process-monitor.js.map +0 -1
  162. package/dist/services/process/process-spawner.d.ts +0 -55
  163. package/dist/services/process/process-spawner.d.ts.map +0 -1
  164. package/dist/services/process/process-spawner.js +0 -93
  165. package/dist/services/process/process-spawner.js.map +0 -1
  166. package/dist/sidebar.d.ts +0 -13
  167. package/dist/sidebar.d.ts.map +0 -1
  168. package/dist/sidebar.js +0 -1535
  169. package/dist/sidebar.js.map +0 -1
  170. package/dist/state/actions.d.ts +0 -49
  171. package/dist/state/actions.d.ts.map +0 -1
  172. package/dist/state/actions.js +0 -512
  173. package/dist/state/actions.js.map +0 -1
  174. package/dist/state/index.d.ts +0 -16
  175. package/dist/state/index.d.ts.map +0 -1
  176. package/dist/state/index.js +0 -28
  177. package/dist/state/index.js.map +0 -1
  178. package/dist/state/middleware/index.d.ts +0 -7
  179. package/dist/state/middleware/index.d.ts.map +0 -1
  180. package/dist/state/middleware/index.js +0 -6
  181. package/dist/state/middleware/index.js.map +0 -1
  182. package/dist/state/middleware/logger.d.ts +0 -22
  183. package/dist/state/middleware/logger.d.ts.map +0 -1
  184. package/dist/state/middleware/logger.js +0 -45
  185. package/dist/state/middleware/logger.js.map +0 -1
  186. package/dist/state/middleware/persistence.d.ts +0 -29
  187. package/dist/state/middleware/persistence.d.ts.map +0 -1
  188. package/dist/state/middleware/persistence.js +0 -71
  189. package/dist/state/middleware/persistence.js.map +0 -1
  190. package/dist/state/persistence/file-adapter.d.ts +0 -48
  191. package/dist/state/persistence/file-adapter.d.ts.map +0 -1
  192. package/dist/state/persistence/file-adapter.js +0 -96
  193. package/dist/state/persistence/file-adapter.js.map +0 -1
  194. package/dist/state/persistence/index.d.ts +0 -8
  195. package/dist/state/persistence/index.d.ts.map +0 -1
  196. package/dist/state/persistence/index.js +0 -6
  197. package/dist/state/persistence/index.js.map +0 -1
  198. package/dist/state/persistence/serializer.d.ts +0 -41
  199. package/dist/state/persistence/serializer.d.ts.map +0 -1
  200. package/dist/state/persistence/serializer.js +0 -114
  201. package/dist/state/persistence/serializer.js.map +0 -1
  202. package/dist/state/selectors.d.ts +0 -67
  203. package/dist/state/selectors.d.ts.map +0 -1
  204. package/dist/state/selectors.js +0 -177
  205. package/dist/state/selectors.js.map +0 -1
  206. package/dist/state/store.d.ts +0 -86
  207. package/dist/state/store.d.ts.map +0 -1
  208. package/dist/state/store.js +0 -161
  209. package/dist/state/store.js.map +0 -1
  210. package/dist/state/types.d.ts +0 -269
  211. package/dist/state/types.d.ts.map +0 -1
  212. package/dist/state/types.js +0 -7
  213. package/dist/state/types.js.map +0 -1
  214. package/dist/state.d.ts +0 -53
  215. package/dist/state.d.ts.map +0 -1
  216. package/dist/state.js +0 -101
  217. package/dist/state.js.map +0 -1
  218. package/dist/terminal-manager.d.ts +0 -16
  219. package/dist/terminal-manager.d.ts.map +0 -1
  220. package/dist/terminal-manager.js +0 -364
  221. package/dist/terminal-manager.js.map +0 -1
  222. package/dist/tmux.d.ts +0 -163
  223. package/dist/tmux.d.ts.map +0 -1
  224. package/dist/tmux.js +0 -360
  225. package/dist/tmux.js.map +0 -1
  226. package/dist/types/config.d.ts +0 -103
  227. package/dist/types/config.d.ts.map +0 -1
  228. package/dist/types/config.js +0 -7
  229. package/dist/types/config.js.map +0 -1
  230. package/dist/types/entities.d.ts +0 -88
  231. package/dist/types/entities.d.ts.map +0 -1
  232. package/dist/types/entities.js +0 -8
  233. package/dist/types/entities.js.map +0 -1
  234. package/dist/types/events.d.ts +0 -156
  235. package/dist/types/events.d.ts.map +0 -1
  236. package/dist/types/events.js +0 -8
  237. package/dist/types/events.js.map +0 -1
  238. package/dist/types/index.d.ts +0 -11
  239. package/dist/types/index.d.ts.map +0 -1
  240. package/dist/types/index.js +0 -8
  241. package/dist/types/index.js.map +0 -1
  242. package/dist/types/multiplexer.d.ts +0 -238
  243. package/dist/types/multiplexer.d.ts.map +0 -1
  244. package/dist/types/multiplexer.js +0 -8
  245. package/dist/types/multiplexer.js.map +0 -1
  246. package/dist/ui/components/base.d.ts +0 -155
  247. package/dist/ui/components/base.d.ts.map +0 -1
  248. package/dist/ui/components/base.js +0 -269
  249. package/dist/ui/components/base.js.map +0 -1
  250. package/dist/ui/components/index.d.ts +0 -10
  251. package/dist/ui/components/index.d.ts.map +0 -1
  252. package/dist/ui/components/index.js +0 -10
  253. package/dist/ui/components/index.js.map +0 -1
  254. package/dist/ui/components/input-field.d.ts +0 -98
  255. package/dist/ui/components/input-field.d.ts.map +0 -1
  256. package/dist/ui/components/input-field.js +0 -274
  257. package/dist/ui/components/input-field.js.map +0 -1
  258. package/dist/ui/components/list.d.ts +0 -94
  259. package/dist/ui/components/list.d.ts.map +0 -1
  260. package/dist/ui/components/list.js +0 -294
  261. package/dist/ui/components/list.js.map +0 -1
  262. package/dist/ui/components/modal.d.ts +0 -83
  263. package/dist/ui/components/modal.d.ts.map +0 -1
  264. package/dist/ui/components/modal.js +0 -249
  265. package/dist/ui/components/modal.js.map +0 -1
  266. package/dist/ui/components/tabs.d.ts +0 -97
  267. package/dist/ui/components/tabs.d.ts.map +0 -1
  268. package/dist/ui/components/tabs.js +0 -252
  269. package/dist/ui/components/tabs.js.map +0 -1
  270. package/dist/ui/components/text.d.ts +0 -60
  271. package/dist/ui/components/text.d.ts.map +0 -1
  272. package/dist/ui/components/text.js +0 -224
  273. package/dist/ui/components/text.js.map +0 -1
  274. package/dist/ui/index.d.ts +0 -12
  275. package/dist/ui/index.d.ts.map +0 -1
  276. package/dist/ui/index.js +0 -18
  277. package/dist/ui/index.js.map +0 -1
  278. package/dist/ui/input/index.d.ts +0 -8
  279. package/dist/ui/input/index.d.ts.map +0 -1
  280. package/dist/ui/input/index.js +0 -8
  281. package/dist/ui/input/index.js.map +0 -1
  282. package/dist/ui/input/input-manager.d.ts +0 -83
  283. package/dist/ui/input/input-manager.d.ts.map +0 -1
  284. package/dist/ui/input/input-manager.js +0 -200
  285. package/dist/ui/input/input-manager.js.map +0 -1
  286. package/dist/ui/input/keybindings.d.ts +0 -47
  287. package/dist/ui/input/keybindings.d.ts.map +0 -1
  288. package/dist/ui/input/keybindings.js +0 -168
  289. package/dist/ui/input/keybindings.js.map +0 -1
  290. package/dist/ui/input/keyboard.d.ts +0 -24
  291. package/dist/ui/input/keyboard.d.ts.map +0 -1
  292. package/dist/ui/input/keyboard.js +0 -230
  293. package/dist/ui/input/keyboard.js.map +0 -1
  294. package/dist/ui/input/mouse.d.ts +0 -44
  295. package/dist/ui/input/mouse.d.ts.map +0 -1
  296. package/dist/ui/input/mouse.js +0 -161
  297. package/dist/ui/input/mouse.js.map +0 -1
  298. package/dist/ui/layout/box.d.ts +0 -63
  299. package/dist/ui/layout/box.d.ts.map +0 -1
  300. package/dist/ui/layout/box.js +0 -160
  301. package/dist/ui/layout/box.js.map +0 -1
  302. package/dist/ui/layout/constraints.d.ts +0 -77
  303. package/dist/ui/layout/constraints.d.ts.map +0 -1
  304. package/dist/ui/layout/constraints.js +0 -154
  305. package/dist/ui/layout/constraints.js.map +0 -1
  306. package/dist/ui/layout/flex.d.ts +0 -59
  307. package/dist/ui/layout/flex.d.ts.map +0 -1
  308. package/dist/ui/layout/flex.js +0 -163
  309. package/dist/ui/layout/flex.js.map +0 -1
  310. package/dist/ui/layout/index.d.ts +0 -7
  311. package/dist/ui/layout/index.d.ts.map +0 -1
  312. package/dist/ui/layout/index.js +0 -7
  313. package/dist/ui/layout/index.js.map +0 -1
  314. package/dist/ui/modals/delete-modal.d.ts +0 -27
  315. package/dist/ui/modals/delete-modal.d.ts.map +0 -1
  316. package/dist/ui/modals/delete-modal.js +0 -59
  317. package/dist/ui/modals/delete-modal.js.map +0 -1
  318. package/dist/ui/modals/index.d.ts +0 -7
  319. package/dist/ui/modals/index.d.ts.map +0 -1
  320. package/dist/ui/modals/index.js +0 -7
  321. package/dist/ui/modals/index.js.map +0 -1
  322. package/dist/ui/modals/input-modal.d.ts +0 -66
  323. package/dist/ui/modals/input-modal.d.ts.map +0 -1
  324. package/dist/ui/modals/input-modal.js +0 -185
  325. package/dist/ui/modals/input-modal.js.map +0 -1
  326. package/dist/ui/modals/quit-modal.d.ts +0 -30
  327. package/dist/ui/modals/quit-modal.d.ts.map +0 -1
  328. package/dist/ui/modals/quit-modal.js +0 -65
  329. package/dist/ui/modals/quit-modal.js.map +0 -1
  330. package/dist/ui/renderer/ansi.d.ts +0 -206
  331. package/dist/ui/renderer/ansi.d.ts.map +0 -1
  332. package/dist/ui/renderer/ansi.js +0 -318
  333. package/dist/ui/renderer/ansi.js.map +0 -1
  334. package/dist/ui/renderer/canvas.d.ts +0 -126
  335. package/dist/ui/renderer/canvas.d.ts.map +0 -1
  336. package/dist/ui/renderer/canvas.js +0 -346
  337. package/dist/ui/renderer/canvas.js.map +0 -1
  338. package/dist/ui/renderer/colors.d.ts +0 -65
  339. package/dist/ui/renderer/colors.d.ts.map +0 -1
  340. package/dist/ui/renderer/colors.js +0 -260
  341. package/dist/ui/renderer/colors.js.map +0 -1
  342. package/dist/ui/renderer/index.d.ts +0 -8
  343. package/dist/ui/renderer/index.d.ts.map +0 -1
  344. package/dist/ui/renderer/index.js +0 -8
  345. package/dist/ui/renderer/index.js.map +0 -1
  346. package/dist/ui/renderer/symbols.d.ts +0 -176
  347. package/dist/ui/renderer/symbols.d.ts.map +0 -1
  348. package/dist/ui/renderer/symbols.js +0 -246
  349. package/dist/ui/renderer/symbols.js.map +0 -1
  350. package/dist/ui/views/index.d.ts +0 -7
  351. package/dist/ui/views/index.d.ts.map +0 -1
  352. package/dist/ui/views/index.js +0 -7
  353. package/dist/ui/views/index.js.map +0 -1
  354. package/dist/ui/views/sidebar-view.d.ts +0 -89
  355. package/dist/ui/views/sidebar-view.d.ts.map +0 -1
  356. package/dist/ui/views/sidebar-view.js +0 -259
  357. package/dist/ui/views/sidebar-view.js.map +0 -1
  358. package/dist/ui/views/terminal-bar-view.d.ts +0 -67
  359. package/dist/ui/views/terminal-bar-view.d.ts.map +0 -1
  360. package/dist/ui/views/terminal-bar-view.js +0 -172
  361. package/dist/ui/views/terminal-bar-view.js.map +0 -1
  362. package/dist/ui/views/welcome-view.d.ts +0 -34
  363. package/dist/ui/views/welcome-view.d.ts.map +0 -1
  364. package/dist/ui/views/welcome-view.js +0 -116
  365. 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"}