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
@@ -1,45 +0,0 @@
1
- /**
2
- * Logger Middleware
3
- *
4
- * Logs state changes for debugging.
5
- */
6
- import { getLogger } from '../../utils';
7
- /**
8
- * Create a logging middleware
9
- */
10
- export function createLoggerMiddleware(options) {
11
- const { level = 'debug', logState = false, logPayload = true } = options ?? {};
12
- const logger = getLogger().child('state');
13
- return (state, action, next) => {
14
- const logFn = level === 'debug' ? logger.debug.bind(logger) : logger.info.bind(logger);
15
- // Log before
16
- if (logPayload && 'payload' in action) {
17
- logFn(`Action: ${action.type}`, action.payload);
18
- }
19
- else {
20
- logFn(`Action: ${action.type}`);
21
- }
22
- // Apply action
23
- const newState = next();
24
- // Log after
25
- if (logState) {
26
- logFn(`New state:`, newState);
27
- }
28
- return newState;
29
- };
30
- }
31
- /**
32
- * Create a simple console logger (for development)
33
- */
34
- export function createConsoleLoggerMiddleware() {
35
- return (state, action, next) => {
36
- console.group(`Action: ${action.type}`);
37
- console.log('Payload:', 'payload' in action ? action.payload : 'none');
38
- console.log('Prev state:', state);
39
- const newState = next();
40
- console.log('Next state:', newState);
41
- console.groupEnd();
42
- return newState;
43
- };
44
- }
45
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/state/middleware/logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAOtC;IACC,MAAM,EAAE,KAAK,GAAG,OAAO,EAAE,QAAQ,GAAG,KAAK,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAC/E,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE1C,OAAO,CAAC,KAAe,EAAE,MAAiB,EAAE,IAAoB,EAAY,EAAE;QAC5E,MAAM,KAAK,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEvF,aAAa;QACb,IAAI,UAAU,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;YACtC,KAAK,CAAC,WAAW,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,WAAW,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,eAAe;QACf,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAC;QAExB,YAAY;QACZ,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B;IAC3C,OAAO,CAAC,KAAe,EAAE,MAAiB,EAAE,IAAoB,EAAY,EAAE;QAC5E,OAAO,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAElC,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAC;QAExB,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACrC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAEnB,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC"}
@@ -1,29 +0,0 @@
1
- /**
2
- * Persistence Middleware
3
- *
4
- * Automatically saves state to disk on changes.
5
- */
6
- import type { Middleware } from '../types';
7
- import type { FileAdapter } from '../persistence/file-adapter';
8
- /**
9
- * Persistence middleware options
10
- */
11
- export interface PersistenceMiddlewareOptions {
12
- /** File adapter to use for persistence */
13
- adapter: FileAdapter;
14
- /** Debounce delay in milliseconds (default: 500) */
15
- debounceMs?: number;
16
- /** Actions that should trigger persistence */
17
- persistOn?: string[];
18
- /** Actions that should NOT trigger persistence */
19
- ignoreActions?: string[];
20
- }
21
- /**
22
- * Create a persistence middleware
23
- */
24
- export declare function createPersistenceMiddleware(options: PersistenceMiddlewareOptions): Middleware;
25
- /**
26
- * Create a synchronous persistence middleware (no debounce)
27
- */
28
- export declare function createSyncPersistenceMiddleware(adapter: FileAdapter): Middleware;
29
- //# sourceMappingURL=persistence.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../src/state/middleware/persistence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAuB,UAAU,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG/D;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,0CAA0C;IAC1C,OAAO,EAAE,WAAW,CAAC;IACrB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAoBD;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,4BAA4B,GACpC,UAAU,CAoCZ;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,WAAW,GACnB,UAAU,CAcZ"}
@@ -1,71 +0,0 @@
1
- /**
2
- * Persistence Middleware
3
- *
4
- * Automatically saves state to disk on changes.
5
- */
6
- import { debounce } from '../../utils';
7
- /**
8
- * Default actions that trigger persistence
9
- */
10
- const DEFAULT_PERSIST_ACTIONS = [
11
- 'WORKSPACE_LOAD',
12
- 'WORKSPACE_UPDATE',
13
- 'SESSION_CREATE',
14
- 'SESSION_DELETE',
15
- 'SESSION_RENAME',
16
- 'SESSION_UPDATE',
17
- 'TERMINAL_CREATE',
18
- 'TERMINAL_DELETE',
19
- 'TERMINAL_RENAME',
20
- 'WORKTREE_CREATE',
21
- 'WORKTREE_DELETE',
22
- 'WORKTREE_RENAME',
23
- ];
24
- /**
25
- * Create a persistence middleware
26
- */
27
- export function createPersistenceMiddleware(options) {
28
- const { adapter, debounceMs = 500, persistOn = DEFAULT_PERSIST_ACTIONS, ignoreActions = [], } = options;
29
- // Create debounced save function
30
- let pendingState = null;
31
- const debouncedSave = debounce(() => {
32
- if (pendingState) {
33
- try {
34
- adapter.save(pendingState);
35
- }
36
- catch (error) {
37
- console.error('Failed to persist state:', error);
38
- }
39
- pendingState = null;
40
- }
41
- }, debounceMs);
42
- return (state, action, next) => {
43
- const newState = next();
44
- // Check if this action should trigger persistence
45
- const shouldPersist = !ignoreActions.includes(action.type) &&
46
- persistOn.includes(action.type);
47
- if (shouldPersist && newState !== state) {
48
- pendingState = newState;
49
- debouncedSave();
50
- }
51
- return newState;
52
- };
53
- }
54
- /**
55
- * Create a synchronous persistence middleware (no debounce)
56
- */
57
- export function createSyncPersistenceMiddleware(adapter) {
58
- return (state, action, next) => {
59
- const newState = next();
60
- if (newState !== state) {
61
- try {
62
- adapter.save(newState);
63
- }
64
- catch (error) {
65
- console.error('Failed to persist state:', error);
66
- }
67
- }
68
- return newState;
69
- };
70
- }
71
- //# sourceMappingURL=persistence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../src/state/middleware/persistence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAgBvC;;GAEG;AACH,MAAM,uBAAuB,GAAG;IAC9B,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAAqC;IAErC,MAAM,EACJ,OAAO,EACP,UAAU,GAAG,GAAG,EAChB,SAAS,GAAG,uBAAuB,EACnC,aAAa,GAAG,EAAE,GACnB,GAAG,OAAO,CAAC;IAEZ,iCAAiC;IACjC,IAAI,YAAY,GAAoB,IAAI,CAAC;IACzC,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,EAAE;QAClC,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC;YACD,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC,EAAE,UAAU,CAAC,CAAC;IAEf,OAAO,CAAC,KAAe,EAAE,MAAiB,EAAE,IAAoB,EAAY,EAAE;QAC5E,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAC;QAExB,kDAAkD;QAClD,MAAM,aAAa,GACjB,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YACpC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAElC,IAAI,aAAa,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACxC,YAAY,GAAG,QAAQ,CAAC;YACxB,aAAa,EAAE,CAAC;QAClB,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,+BAA+B,CAC7C,OAAoB;IAEpB,OAAO,CAAC,KAAe,EAAE,MAAiB,EAAE,IAAoB,EAAY,EAAE;QAC5E,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAC;QAExB,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC"}
@@ -1,48 +0,0 @@
1
- /**
2
- * File-Based State Persistence
3
- *
4
- * Saves and loads state from the filesystem.
5
- */
6
- import type { AppState } from '../types';
7
- /**
8
- * File adapter options
9
- */
10
- export interface FileAdapterOptions {
11
- /** Path to the state file */
12
- filePath: string;
13
- /** Whether to create directories if they don't exist */
14
- createDir?: boolean;
15
- }
16
- /**
17
- * File-based state persistence adapter
18
- */
19
- export declare class FileAdapter {
20
- private readonly filePath;
21
- private readonly createDir;
22
- constructor(options: FileAdapterOptions);
23
- /**
24
- * Check if state file exists
25
- */
26
- exists(): boolean;
27
- /**
28
- * Load state from file
29
- */
30
- load(): AppState | null;
31
- /**
32
- * Save state to file
33
- */
34
- save(state: AppState): void;
35
- /**
36
- * Delete state file
37
- */
38
- delete(): void;
39
- /**
40
- * Get the file path
41
- */
42
- getFilePath(): string;
43
- }
44
- /**
45
- * Create a file adapter for a project
46
- */
47
- export declare function createFileAdapter(statePath: string): FileAdapter;
48
- //# sourceMappingURL=file-adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-adapter.d.ts","sourceRoot":"","sources":["../../../src/state/persistence/file-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAUzC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;gBAExB,OAAO,EAAE,kBAAkB;IAKvC;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;OAEG;IACH,IAAI,IAAI,QAAQ,GAAG,IAAI;IAwBvB;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAuB3B;;OAEG;IACH,MAAM,IAAI,IAAI;IAcd;;OAEG;IACH,WAAW,IAAI,MAAM;CAGtB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAEhE"}
@@ -1,96 +0,0 @@
1
- /**
2
- * File-Based State Persistence
3
- *
4
- * Saves and loads state from the filesystem.
5
- */
6
- import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
7
- import { dirname } from 'path';
8
- import { serializeState, deserializeState, extractPersistableState, mergeWithInitialState, } from './serializer';
9
- import { createInitialState } from '../actions';
10
- import { StateError } from '../../utils';
11
- /**
12
- * File-based state persistence adapter
13
- */
14
- export class FileAdapter {
15
- filePath;
16
- createDir;
17
- constructor(options) {
18
- this.filePath = options.filePath;
19
- this.createDir = options.createDir ?? true;
20
- }
21
- /**
22
- * Check if state file exists
23
- */
24
- exists() {
25
- return existsSync(this.filePath);
26
- }
27
- /**
28
- * Load state from file
29
- */
30
- load() {
31
- if (!this.exists()) {
32
- return null;
33
- }
34
- try {
35
- const content = readFileSync(this.filePath, 'utf-8');
36
- const persisted = deserializeState(content);
37
- if (!persisted) {
38
- return null;
39
- }
40
- // Merge with initial state to fill in any missing fields
41
- const initial = createInitialState();
42
- return mergeWithInitialState(persisted, initial);
43
- }
44
- catch (error) {
45
- throw new StateError(`Failed to load state: ${error instanceof Error ? error.message : 'Unknown error'}`, { statePath: this.filePath, cause: error instanceof Error ? error : undefined });
46
- }
47
- }
48
- /**
49
- * Save state to file
50
- */
51
- save(state) {
52
- try {
53
- // Ensure directory exists
54
- if (this.createDir) {
55
- const dir = dirname(this.filePath);
56
- if (!existsSync(dir)) {
57
- mkdirSync(dir, { recursive: true });
58
- }
59
- }
60
- // Extract persistable subset and serialize
61
- const persistable = extractPersistableState(state);
62
- const serialized = serializeState(persistable);
63
- writeFileSync(this.filePath, serialized, 'utf-8');
64
- }
65
- catch (error) {
66
- throw new StateError(`Failed to save state: ${error instanceof Error ? error.message : 'Unknown error'}`, { statePath: this.filePath, cause: error instanceof Error ? error : undefined });
67
- }
68
- }
69
- /**
70
- * Delete state file
71
- */
72
- delete() {
73
- if (this.exists()) {
74
- try {
75
- const fs = require('fs');
76
- fs.unlinkSync(this.filePath);
77
- }
78
- catch (error) {
79
- throw new StateError(`Failed to delete state: ${error instanceof Error ? error.message : 'Unknown error'}`, { statePath: this.filePath, cause: error instanceof Error ? error : undefined });
80
- }
81
- }
82
- }
83
- /**
84
- * Get the file path
85
- */
86
- getFilePath() {
87
- return this.filePath;
88
- }
89
- }
90
- /**
91
- * Create a file adapter for a project
92
- */
93
- export function createFileAdapter(statePath) {
94
- return new FileAdapter({ filePath: statePath });
95
- }
96
- //# sourceMappingURL=file-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-adapter.js","sourceRoot":"","sources":["../../../src/state/persistence/file-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * State Persistence Module
3
- */
4
- export { serializeState, deserializeState, isValidState, cloneState, extractPersistableState, mergeWithInitialState, } from './serializer';
5
- export type { SerializedState } from './serializer';
6
- export { FileAdapter, createFileAdapter } from './file-adapter';
7
- export type { FileAdapterOptions } from './file-adapter';
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/state/persistence/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAChE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * State Persistence Module
3
- */
4
- export { serializeState, deserializeState, isValidState, cloneState, extractPersistableState, mergeWithInitialState, } from './serializer';
5
- export { FileAdapter, createFileAdapter } from './file-adapter';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/state/persistence/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,41 +0,0 @@
1
- /**
2
- * State Serialization
3
- *
4
- * Handles serialization and deserialization of state, including
5
- * special handling for Date objects and other non-JSON types.
6
- */
7
- import type { AppState } from '../types';
8
- /**
9
- * Serialized state format
10
- */
11
- export interface SerializedState {
12
- version: number;
13
- data: string;
14
- timestamp: string;
15
- }
16
- /**
17
- * Serialize application state to a string
18
- */
19
- export declare function serializeState(state: AppState): string;
20
- /**
21
- * Deserialize state from a string
22
- */
23
- export declare function deserializeState(serialized: string): AppState | null;
24
- /**
25
- * Validate that an object has the shape of AppState
26
- */
27
- export declare function isValidState(obj: unknown): obj is AppState;
28
- /**
29
- * Create a deep clone of state (useful for immutability)
30
- */
31
- export declare function cloneState(state: AppState): AppState;
32
- /**
33
- * Extract persistable subset of state
34
- * Excludes UI state that shouldn't be persisted
35
- */
36
- export declare function extractPersistableState(state: AppState): Partial<AppState>;
37
- /**
38
- * Merge persisted state with initial state
39
- */
40
- export declare function mergeWithInitialState(persisted: Partial<AppState>, initial: AppState): AppState;
41
- //# sourceMappingURL=serializer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../../../src/state/persistence/serializer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AA+BD;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAOtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAmBpE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,QAAQ,CA0B1D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAEpD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAK1E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC5B,OAAO,EAAE,QAAQ,GAChB,QAAQ,CAMV"}
@@ -1,114 +0,0 @@
1
- /**
2
- * State Serialization
3
- *
4
- * Handles serialization and deserialization of state, including
5
- * special handling for Date objects and other non-JSON types.
6
- */
7
- import { STATE_VERSION } from '../actions';
8
- /**
9
- * Custom JSON replacer for serialization
10
- * Converts Date objects to ISO strings with a type marker
11
- */
12
- function replacer(key, value) {
13
- if (value instanceof Date) {
14
- return { __type: 'Date', value: value.toISOString() };
15
- }
16
- return value;
17
- }
18
- /**
19
- * Custom JSON reviver for deserialization
20
- * Converts Date markers back to Date objects
21
- */
22
- function reviver(key, value) {
23
- if (typeof value === 'object' &&
24
- value !== null &&
25
- '__type' in value) {
26
- const obj = value;
27
- if (obj.__type === 'Date' && typeof obj.value === 'string') {
28
- return new Date(obj.value);
29
- }
30
- }
31
- return value;
32
- }
33
- /**
34
- * Serialize application state to a string
35
- */
36
- export function serializeState(state) {
37
- const serialized = {
38
- version: STATE_VERSION,
39
- data: JSON.stringify(state, replacer),
40
- timestamp: new Date().toISOString(),
41
- };
42
- return JSON.stringify(serialized);
43
- }
44
- /**
45
- * Deserialize state from a string
46
- */
47
- export function deserializeState(serialized) {
48
- try {
49
- const parsed = JSON.parse(serialized);
50
- // Version check
51
- if (parsed.version !== STATE_VERSION) {
52
- console.warn(`State version mismatch: expected ${STATE_VERSION}, got ${parsed.version}`);
53
- // Could add migration logic here
54
- return null;
55
- }
56
- const state = JSON.parse(parsed.data, reviver);
57
- return state;
58
- }
59
- catch (error) {
60
- console.error('Failed to deserialize state:', error);
61
- return null;
62
- }
63
- }
64
- /**
65
- * Validate that an object has the shape of AppState
66
- */
67
- export function isValidState(obj) {
68
- if (typeof obj !== 'object' || obj === null) {
69
- return false;
70
- }
71
- const state = obj;
72
- // Check required top-level properties
73
- if (!('ui' in state) || typeof state.ui !== 'object') {
74
- return false;
75
- }
76
- if (!('status' in state) || typeof state.status !== 'object') {
77
- return false;
78
- }
79
- if (!('version' in state) || typeof state.version !== 'number') {
80
- return false;
81
- }
82
- // workspace can be null
83
- if (state.workspace !== null && typeof state.workspace !== 'object') {
84
- return false;
85
- }
86
- return true;
87
- }
88
- /**
89
- * Create a deep clone of state (useful for immutability)
90
- */
91
- export function cloneState(state) {
92
- return JSON.parse(JSON.stringify(state, replacer), reviver);
93
- }
94
- /**
95
- * Extract persistable subset of state
96
- * Excludes UI state that shouldn't be persisted
97
- */
98
- export function extractPersistableState(state) {
99
- return {
100
- workspace: state.workspace,
101
- version: state.version,
102
- };
103
- }
104
- /**
105
- * Merge persisted state with initial state
106
- */
107
- export function mergeWithInitialState(persisted, initial) {
108
- return {
109
- ...initial,
110
- workspace: persisted.workspace ?? initial.workspace,
111
- version: persisted.version ?? initial.version,
112
- };
113
- }
114
- //# sourceMappingURL=serializer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../../src/state/persistence/serializer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAW3C;;;GAGG;AACH,SAAS,QAAQ,CAAC,GAAW,EAAE,KAAc;IAC3C,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,OAAO,CAAC,GAAW,EAAE,KAAc;IAC1C,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,QAAQ,IAAI,KAAK,EACjB,CAAC;QACD,MAAM,GAAG,GAAG,KAAgC,CAAC;QAC7C,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC3D,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAe;IAC5C,MAAM,UAAU,GAAoB;QAClC,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC;QACrC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAoB,CAAC;QAEzD,gBAAgB;QAChB,IAAI,MAAM,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CACV,oCAAoC,aAAa,SAAS,MAAM,CAAC,OAAO,EAAE,CAC3E,CAAC;YACF,iCAAiC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAa,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,GAA8B,CAAC;IAE7C,sCAAsC;IACtC,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC/D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wBAAwB;IACxB,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAe;IACxC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAa,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAe;IACrD,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAA4B,EAC5B,OAAiB;IAEjB,OAAO;QACL,GAAG,OAAO;QACV,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS;QACnD,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO;KAC9C,CAAC;AACJ,CAAC"}
@@ -1,67 +0,0 @@
1
- /**
2
- * State Selectors
3
- *
4
- * Pure functions for querying state.
5
- */
6
- import type { Session, Terminal, Worktree, Workspace } from '../types';
7
- import type { AppState, ModalType } from './types';
8
- export declare function selectWorkspace(state: AppState): Workspace | null;
9
- export declare function selectWorktrees(state: AppState): Worktree[];
10
- export declare function selectWorktreeById(state: AppState, worktreeId: string): Worktree | undefined;
11
- export declare function selectMainWorktree(state: AppState): Worktree | undefined;
12
- export declare function selectActiveSessionId(state: AppState): string | null;
13
- export declare function selectAllSessions(state: AppState): Session[];
14
- export declare function selectSessionById(state: AppState, sessionId: string): Session | undefined;
15
- export declare function selectActiveSession(state: AppState): Session | undefined;
16
- export declare function selectSessionsForWorktree(state: AppState, worktreeId: string): Session[];
17
- export declare function selectWorktreeForSession(state: AppState, sessionId: string): Worktree | undefined;
18
- export declare function selectTerminalsForSession(state: AppState, sessionId: string): Terminal[];
19
- export declare function selectActiveTerminal(state: AppState, sessionId: string): Terminal | undefined;
20
- export declare function selectTerminalById(state: AppState, sessionId: string, terminalId: string): Terminal | undefined;
21
- export declare function selectSelectedIndex(state: AppState): number;
22
- export declare function selectIsSidebarCollapsed(state: AppState): boolean;
23
- export declare function selectScrollOffset(state: AppState): number;
24
- export declare function selectIsTerminalBarVisible(state: AppState): boolean;
25
- export declare function selectModalType(state: AppState): ModalType | null;
26
- export declare function selectModalData(state: AppState): unknown;
27
- export declare function selectModalSelection(state: AppState): number;
28
- export declare function selectIsModalOpen(state: AppState): boolean;
29
- export declare function selectIsInputModeActive(state: AppState): boolean;
30
- export declare function selectInputField(state: AppState): string;
31
- export declare function selectInputValue(state: AppState): string;
32
- export declare function selectInputCursorPos(state: AppState): number;
33
- export declare function selectIsLoading(state: AppState): boolean;
34
- export declare function selectError(state: AppState): string | null;
35
- export declare function selectMessage(state: AppState): string | null;
36
- /**
37
- * Build a flat list of items for the sidebar
38
- * Returns worktrees and their sessions in display order
39
- */
40
- export interface SidebarItem {
41
- type: 'worktree' | 'session';
42
- item: Worktree | Session;
43
- worktreeId: string;
44
- depth: number;
45
- }
46
- export declare function selectSidebarItems(state: AppState): SidebarItem[];
47
- /**
48
- * Get the currently selected sidebar item
49
- */
50
- export declare function selectSelectedItem(state: AppState): SidebarItem | undefined;
51
- /**
52
- * Get the total count of items in sidebar
53
- */
54
- export declare function selectSidebarItemCount(state: AppState): number;
55
- /**
56
- * Check if there are any sessions
57
- */
58
- export declare function selectHasSessions(state: AppState): boolean;
59
- /**
60
- * Get the count of sessions for a worktree
61
- */
62
- export declare function selectSessionCount(state: AppState, worktreeId: string): number;
63
- /**
64
- * Get the count of terminals for the active session
65
- */
66
- export declare function selectActiveSessionTerminalCount(state: AppState): number;
67
- //# sourceMappingURL=selectors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../src/state/selectors.ts"],"names":[],"mappings":"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"}