@jingyi0605/codingns 0.1.0

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 (405) hide show
  1. package/README.md +24 -0
  2. package/bin/codingns.mjs +173 -0
  3. package/dist/public/assets/TerminalPage-6GBZ9nXN.css +32 -0
  4. package/dist/public/assets/TerminalPage-Dj_VDew3.js +54 -0
  5. package/dist/public/assets/index-C1GZV2wq.js +106 -0
  6. package/dist/public/assets/index-DU7f8NaZ.css +1 -0
  7. package/dist/public/index.html +13 -0
  8. package/dist/public/logo.png +0 -0
  9. package/dist/public/logo.svg +162 -0
  10. package/dist/server/config/env.d.ts +24 -0
  11. package/dist/server/config/env.js +152 -0
  12. package/dist/server/config/env.js.map +1 -0
  13. package/dist/server/config/opencode-base-url-resolver.d.ts +37 -0
  14. package/dist/server/config/opencode-base-url-resolver.js +422 -0
  15. package/dist/server/config/opencode-base-url-resolver.js.map +1 -0
  16. package/dist/server/main.d.ts +1 -0
  17. package/dist/server/main.js +3 -0
  18. package/dist/server/main.js.map +1 -0
  19. package/dist/server/middlewares/auth-guard.d.ts +4 -0
  20. package/dist/server/middlewares/auth-guard.js +35 -0
  21. package/dist/server/middlewares/auth-guard.js.map +1 -0
  22. package/dist/server/modules/auth/auth-controller.d.ts +15 -0
  23. package/dist/server/modules/auth/auth-controller.js +20 -0
  24. package/dist/server/modules/auth/auth-controller.js.map +1 -0
  25. package/dist/server/modules/auth/auth-service.d.ts +44 -0
  26. package/dist/server/modules/auth/auth-service.js +151 -0
  27. package/dist/server/modules/auth/auth-service.js.map +1 -0
  28. package/dist/server/modules/bootstrap/bootstrap-controller.d.ts +10 -0
  29. package/dist/server/modules/bootstrap/bootstrap-controller.js +13 -0
  30. package/dist/server/modules/bootstrap/bootstrap-controller.js.map +1 -0
  31. package/dist/server/modules/bootstrap/bootstrap-service.d.ts +20 -0
  32. package/dist/server/modules/bootstrap/bootstrap-service.js +71 -0
  33. package/dist/server/modules/bootstrap/bootstrap-service.js.map +1 -0
  34. package/dist/server/modules/client/client-controller.d.ts +9 -0
  35. package/dist/server/modules/client/client-controller.js +65 -0
  36. package/dist/server/modules/client/client-controller.js.map +1 -0
  37. package/dist/server/modules/client/client-service.d.ts +37 -0
  38. package/dist/server/modules/client/client-service.js +186 -0
  39. package/dist/server/modules/client/client-service.js.map +1 -0
  40. package/dist/server/modules/file/file-access-guard.d.ts +27 -0
  41. package/dist/server/modules/file/file-access-guard.js +99 -0
  42. package/dist/server/modules/file/file-access-guard.js.map +1 -0
  43. package/dist/server/modules/file/file-constants.d.ts +6 -0
  44. package/dist/server/modules/file/file-constants.js +7 -0
  45. package/dist/server/modules/file/file-constants.js.map +1 -0
  46. package/dist/server/modules/file/file-content-service.d.ts +65 -0
  47. package/dist/server/modules/file/file-content-service.js +239 -0
  48. package/dist/server/modules/file/file-content-service.js.map +1 -0
  49. package/dist/server/modules/file/file-context-controller.d.ts +29 -0
  50. package/dist/server/modules/file/file-context-controller.js +52 -0
  51. package/dist/server/modules/file/file-context-controller.js.map +1 -0
  52. package/dist/server/modules/file/file-context-service.d.ts +22 -0
  53. package/dist/server/modules/file/file-context-service.js +90 -0
  54. package/dist/server/modules/file/file-context-service.js.map +1 -0
  55. package/dist/server/modules/file/file-controller.d.ts +68 -0
  56. package/dist/server/modules/file/file-controller.js +111 -0
  57. package/dist/server/modules/file/file-controller.js.map +1 -0
  58. package/dist/server/modules/file/file-preview-service.d.ts +19 -0
  59. package/dist/server/modules/file/file-preview-service.js +60 -0
  60. package/dist/server/modules/file/file-preview-service.js.map +1 -0
  61. package/dist/server/modules/file/file-search-service.d.ts +13 -0
  62. package/dist/server/modules/file/file-search-service.js +62 -0
  63. package/dist/server/modules/file/file-search-service.js.map +1 -0
  64. package/dist/server/modules/file/file-tree-service.d.ts +7 -0
  65. package/dist/server/modules/file/file-tree-service.js +43 -0
  66. package/dist/server/modules/file/file-tree-service.js.map +1 -0
  67. package/dist/server/modules/file/file-version-checker.d.ts +10 -0
  68. package/dist/server/modules/file/file-version-checker.js +30 -0
  69. package/dist/server/modules/file/file-version-checker.js.map +1 -0
  70. package/dist/server/modules/file/path-normalizer.d.ts +2 -0
  71. package/dist/server/modules/file/path-normalizer.js +80 -0
  72. package/dist/server/modules/file/path-normalizer.js.map +1 -0
  73. package/dist/server/modules/file/recent-file-service.d.ts +10 -0
  74. package/dist/server/modules/file/recent-file-service.js +28 -0
  75. package/dist/server/modules/file/recent-file-service.js.map +1 -0
  76. package/dist/server/modules/git/commit-draft-service.d.ts +7 -0
  77. package/dist/server/modules/git/commit-draft-service.js +76 -0
  78. package/dist/server/modules/git/commit-draft-service.js.map +1 -0
  79. package/dist/server/modules/git/commit-orchestrator.d.ts +28 -0
  80. package/dist/server/modules/git/commit-orchestrator.js +47 -0
  81. package/dist/server/modules/git/commit-orchestrator.js.map +1 -0
  82. package/dist/server/modules/git/commit-rule-engine.d.ts +5 -0
  83. package/dist/server/modules/git/commit-rule-engine.js +22 -0
  84. package/dist/server/modules/git/commit-rule-engine.js.map +1 -0
  85. package/dist/server/modules/git/git-command-runner.d.ts +16 -0
  86. package/dist/server/modules/git/git-command-runner.js +102 -0
  87. package/dist/server/modules/git/git-command-runner.js.map +1 -0
  88. package/dist/server/modules/git/git-controller.d.ts +104 -0
  89. package/dist/server/modules/git/git-controller.js +140 -0
  90. package/dist/server/modules/git/git-controller.js.map +1 -0
  91. package/dist/server/modules/git/git-read-service.d.ts +15 -0
  92. package/dist/server/modules/git/git-read-service.js +393 -0
  93. package/dist/server/modules/git/git-read-service.js.map +1 -0
  94. package/dist/server/modules/git/git-rule-repository.d.ts +9 -0
  95. package/dist/server/modules/git/git-rule-repository.js +43 -0
  96. package/dist/server/modules/git/git-rule-repository.js.map +1 -0
  97. package/dist/server/modules/git/git-write-service.d.ts +28 -0
  98. package/dist/server/modules/git/git-write-service.js +330 -0
  99. package/dist/server/modules/git/git-write-service.js.map +1 -0
  100. package/dist/server/modules/git/types.d.ts +99 -0
  101. package/dist/server/modules/git/types.js +2 -0
  102. package/dist/server/modules/git/types.js.map +1 -0
  103. package/dist/server/modules/git/workspace-repo-guard.d.ts +17 -0
  104. package/dist/server/modules/git/workspace-repo-guard.js +124 -0
  105. package/dist/server/modules/git/workspace-repo-guard.js.map +1 -0
  106. package/dist/server/modules/preferences/quick-phrase-controller.d.ts +17 -0
  107. package/dist/server/modules/preferences/quick-phrase-controller.js +37 -0
  108. package/dist/server/modules/preferences/quick-phrase-controller.js.map +1 -0
  109. package/dist/server/modules/preferences/quick-phrase-service.d.ts +13 -0
  110. package/dist/server/modules/preferences/quick-phrase-service.js +67 -0
  111. package/dist/server/modules/preferences/quick-phrase-service.js.map +1 -0
  112. package/dist/server/modules/provider/claude-model-options.d.ts +5 -0
  113. package/dist/server/modules/provider/claude-model-options.js +116 -0
  114. package/dist/server/modules/provider/claude-model-options.js.map +1 -0
  115. package/dist/server/modules/provider/codex-model-options.d.ts +23 -0
  116. package/dist/server/modules/provider/codex-model-options.js +308 -0
  117. package/dist/server/modules/provider/codex-model-options.js.map +1 -0
  118. package/dist/server/modules/provider/opencode-model-options.d.ts +30 -0
  119. package/dist/server/modules/provider/opencode-model-options.js +362 -0
  120. package/dist/server/modules/provider/opencode-model-options.js.map +1 -0
  121. package/dist/server/modules/provider/provider-controller.d.ts +33 -0
  122. package/dist/server/modules/provider/provider-controller.js +50 -0
  123. package/dist/server/modules/provider/provider-controller.js.map +1 -0
  124. package/dist/server/modules/sessions/session-activity-inspector.d.ts +10 -0
  125. package/dist/server/modules/sessions/session-activity-inspector.js +271 -0
  126. package/dist/server/modules/sessions/session-activity-inspector.js.map +1 -0
  127. package/dist/server/modules/sessions/session-changed-file-service.d.ts +14 -0
  128. package/dist/server/modules/sessions/session-changed-file-service.js +175 -0
  129. package/dist/server/modules/sessions/session-changed-file-service.js.map +1 -0
  130. package/dist/server/modules/sessions/session-controller.d.ts +134 -0
  131. package/dist/server/modules/sessions/session-controller.js +253 -0
  132. package/dist/server/modules/sessions/session-controller.js.map +1 -0
  133. package/dist/server/modules/sessions/session-history-service.d.ts +128 -0
  134. package/dist/server/modules/sessions/session-history-service.js +1558 -0
  135. package/dist/server/modules/sessions/session-history-service.js.map +1 -0
  136. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +191 -0
  137. package/dist/server/modules/sessions/session-live-runtime-service.js +1303 -0
  138. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -0
  139. package/dist/server/modules/sessions/session-message-attachment-service.d.ts +42 -0
  140. package/dist/server/modules/sessions/session-message-attachment-service.js +244 -0
  141. package/dist/server/modules/sessions/session-message-attachment-service.js.map +1 -0
  142. package/dist/server/modules/sessions/session-provider-error-mapper.d.ts +2 -0
  143. package/dist/server/modules/sessions/session-provider-error-mapper.js +101 -0
  144. package/dist/server/modules/sessions/session-provider-error-mapper.js.map +1 -0
  145. package/dist/server/modules/terminal/command-template-service.d.ts +48 -0
  146. package/dist/server/modules/terminal/command-template-service.js +273 -0
  147. package/dist/server/modules/terminal/command-template-service.js.map +1 -0
  148. package/dist/server/modules/terminal/runtime/adapters/embedded-pty-runtime-adapter.d.ts +22 -0
  149. package/dist/server/modules/terminal/runtime/adapters/embedded-pty-runtime-adapter.js +30 -0
  150. package/dist/server/modules/terminal/runtime/adapters/embedded-pty-runtime-adapter.js.map +1 -0
  151. package/dist/server/modules/terminal/runtime/adapters/tmux-runtime-adapter.d.ts +31 -0
  152. package/dist/server/modules/terminal/runtime/adapters/tmux-runtime-adapter.js +199 -0
  153. package/dist/server/modules/terminal/runtime/adapters/tmux-runtime-adapter.js.map +1 -0
  154. package/dist/server/modules/terminal/runtime/pty-host-attachment-manager.d.ts +36 -0
  155. package/dist/server/modules/terminal/runtime/pty-host-attachment-manager.js +141 -0
  156. package/dist/server/modules/terminal/runtime/pty-host-attachment-manager.js.map +1 -0
  157. package/dist/server/modules/terminal/runtime/pty-runtime-manager.d.ts +29 -0
  158. package/dist/server/modules/terminal/runtime/pty-runtime-manager.js +138 -0
  159. package/dist/server/modules/terminal/runtime/pty-runtime-manager.js.map +1 -0
  160. package/dist/server/modules/terminal/runtime/terminal-log-file-store.d.ts +14 -0
  161. package/dist/server/modules/terminal/runtime/terminal-log-file-store.js +47 -0
  162. package/dist/server/modules/terminal/runtime/terminal-log-file-store.js.map +1 -0
  163. package/dist/server/modules/terminal/runtime/terminal-log-spooler.d.ts +28 -0
  164. package/dist/server/modules/terminal/runtime/terminal-log-spooler.js +162 -0
  165. package/dist/server/modules/terminal/runtime/terminal-log-spooler.js.map +1 -0
  166. package/dist/server/modules/terminal/runtime/terminal-output-buffer.d.ts +18 -0
  167. package/dist/server/modules/terminal/runtime/terminal-output-buffer.js +109 -0
  168. package/dist/server/modules/terminal/runtime/terminal-output-buffer.js.map +1 -0
  169. package/dist/server/modules/terminal/runtime/terminal-runtime-adapter.d.ts +34 -0
  170. package/dist/server/modules/terminal/runtime/terminal-runtime-adapter.js +2 -0
  171. package/dist/server/modules/terminal/runtime/terminal-runtime-adapter.js.map +1 -0
  172. package/dist/server/modules/terminal/runtime/terminal-runtime-manager.d.ts +41 -0
  173. package/dist/server/modules/terminal/runtime/terminal-runtime-manager.js +138 -0
  174. package/dist/server/modules/terminal/runtime/terminal-runtime-manager.js.map +1 -0
  175. package/dist/server/modules/terminal/template-port-runtime.d.ts +6 -0
  176. package/dist/server/modules/terminal/template-port-runtime.js +199 -0
  177. package/dist/server/modules/terminal/template-port-runtime.js.map +1 -0
  178. package/dist/server/modules/terminal/terminal-controller.d.ts +94 -0
  179. package/dist/server/modules/terminal/terminal-controller.js +236 -0
  180. package/dist/server/modules/terminal/terminal-controller.js.map +1 -0
  181. package/dist/server/modules/terminal/terminal-history.d.ts +18 -0
  182. package/dist/server/modules/terminal/terminal-history.js +2 -0
  183. package/dist/server/modules/terminal/terminal-history.js.map +1 -0
  184. package/dist/server/modules/terminal/terminal-paths.d.ts +1 -0
  185. package/dist/server/modules/terminal/terminal-paths.js +27 -0
  186. package/dist/server/modules/terminal/terminal-paths.js.map +1 -0
  187. package/dist/server/modules/terminal/terminal-service.d.ts +112 -0
  188. package/dist/server/modules/terminal/terminal-service.js +794 -0
  189. package/dist/server/modules/terminal/terminal-service.js.map +1 -0
  190. package/dist/server/modules/terminal/terminal-shell.d.ts +13 -0
  191. package/dist/server/modules/terminal/terminal-shell.js +293 -0
  192. package/dist/server/modules/terminal/terminal-shell.js.map +1 -0
  193. package/dist/server/modules/workbench/workbench-controller.d.ts +7 -0
  194. package/dist/server/modules/workbench/workbench-controller.js +22 -0
  195. package/dist/server/modules/workbench/workbench-controller.js.map +1 -0
  196. package/dist/server/modules/workbench/workbench-service.d.ts +19 -0
  197. package/dist/server/modules/workbench/workbench-service.js +46 -0
  198. package/dist/server/modules/workbench/workbench-service.js.map +1 -0
  199. package/dist/server/modules/workbench/workspace-panel-snapshot-service.d.ts +65 -0
  200. package/dist/server/modules/workbench/workspace-panel-snapshot-service.js +176 -0
  201. package/dist/server/modules/workbench/workspace-panel-snapshot-service.js.map +1 -0
  202. package/dist/server/modules/workspace/workspace-controller.d.ts +57 -0
  203. package/dist/server/modules/workspace/workspace-controller.js +38 -0
  204. package/dist/server/modules/workspace/workspace-controller.js.map +1 -0
  205. package/dist/server/modules/workspace/workspace-service.d.ts +81 -0
  206. package/dist/server/modules/workspace/workspace-service.js +659 -0
  207. package/dist/server/modules/workspace/workspace-service.js.map +1 -0
  208. package/dist/server/routes/auth.d.ts +3 -0
  209. package/dist/server/routes/auth.js +6 -0
  210. package/dist/server/routes/auth.js.map +1 -0
  211. package/dist/server/routes/client.d.ts +3 -0
  212. package/dist/server/routes/client.js +6 -0
  213. package/dist/server/routes/client.js.map +1 -0
  214. package/dist/server/routes/files.d.ts +3 -0
  215. package/dist/server/routes/files.js +15 -0
  216. package/dist/server/routes/files.js.map +1 -0
  217. package/dist/server/routes/git.d.ts +3 -0
  218. package/dist/server/routes/git.js +18 -0
  219. package/dist/server/routes/git.js.map +1 -0
  220. package/dist/server/routes/preferences.d.ts +3 -0
  221. package/dist/server/routes/preferences.js +5 -0
  222. package/dist/server/routes/preferences.js.map +1 -0
  223. package/dist/server/routes/providers.d.ts +3 -0
  224. package/dist/server/routes/providers.js +6 -0
  225. package/dist/server/routes/providers.js.map +1 -0
  226. package/dist/server/routes/public.d.ts +3 -0
  227. package/dist/server/routes/public.js +5 -0
  228. package/dist/server/routes/public.js.map +1 -0
  229. package/dist/server/routes/session-contexts.d.ts +3 -0
  230. package/dist/server/routes/session-contexts.js +6 -0
  231. package/dist/server/routes/session-contexts.js.map +1 -0
  232. package/dist/server/routes/sessions.d.ts +3 -0
  233. package/dist/server/routes/sessions.js +24 -0
  234. package/dist/server/routes/sessions.js.map +1 -0
  235. package/dist/server/routes/terminals.d.ts +3 -0
  236. package/dist/server/routes/terminals.js +17 -0
  237. package/dist/server/routes/terminals.js.map +1 -0
  238. package/dist/server/routes/workbench.d.ts +3 -0
  239. package/dist/server/routes/workbench.js +4 -0
  240. package/dist/server/routes/workbench.js.map +1 -0
  241. package/dist/server/routes/workspaces.d.ts +3 -0
  242. package/dist/server/routes/workspaces.js +10 -0
  243. package/dist/server/routes/workspaces.js.map +1 -0
  244. package/dist/server/server/create-server.d.ts +103 -0
  245. package/dist/server/server/create-server.js +259 -0
  246. package/dist/server/server/create-server.js.map +1 -0
  247. package/dist/server/server/start-host.d.ts +8 -0
  248. package/dist/server/server/start-host.js +40 -0
  249. package/dist/server/server/start-host.js.map +1 -0
  250. package/dist/server/server/static-web.d.ts +2 -0
  251. package/dist/server/server/static-web.js +75 -0
  252. package/dist/server/server/static-web.js.map +1 -0
  253. package/dist/server/shared/errors/app-error.d.ts +13 -0
  254. package/dist/server/shared/errors/app-error.js +16 -0
  255. package/dist/server/shared/errors/app-error.js.map +1 -0
  256. package/dist/server/shared/http/error-handler.d.ts +9 -0
  257. package/dist/server/shared/http/error-handler.js +25 -0
  258. package/dist/server/shared/http/error-handler.js.map +1 -0
  259. package/dist/server/shared/utils/hash.d.ts +4 -0
  260. package/dist/server/shared/utils/hash.js +27 -0
  261. package/dist/server/shared/utils/hash.js.map +1 -0
  262. package/dist/server/shared/utils/id.d.ts +1 -0
  263. package/dist/server/shared/utils/id.js +5 -0
  264. package/dist/server/shared/utils/id.js.map +1 -0
  265. package/dist/server/shared/utils/perf-log.d.ts +6 -0
  266. package/dist/server/shared/utils/perf-log.js +40 -0
  267. package/dist/server/shared/utils/perf-log.js.map +1 -0
  268. package/dist/server/shared/utils/time.d.ts +2 -0
  269. package/dist/server/shared/utils/time.js +7 -0
  270. package/dist/server/shared/utils/time.js.map +1 -0
  271. package/dist/server/shared/utils/tokens.d.ts +1 -0
  272. package/dist/server/shared/utils/tokens.js +5 -0
  273. package/dist/server/shared/utils/tokens.js.map +1 -0
  274. package/dist/server/storage/repositories/auth-token-repository.d.ts +9 -0
  275. package/dist/server/storage/repositories/auth-token-repository.js +45 -0
  276. package/dist/server/storage/repositories/auth-token-repository.js.map +1 -0
  277. package/dist/server/storage/repositories/auth-user-repository.d.ts +11 -0
  278. package/dist/server/storage/repositories/auth-user-repository.js +61 -0
  279. package/dist/server/storage/repositories/auth-user-repository.js.map +1 -0
  280. package/dist/server/storage/repositories/bootstrap-state-repository.d.ts +8 -0
  281. package/dist/server/storage/repositories/bootstrap-state-repository.js +29 -0
  282. package/dist/server/storage/repositories/bootstrap-state-repository.js.map +1 -0
  283. package/dist/server/storage/repositories/commit-rule-profile-repository.d.ts +8 -0
  284. package/dist/server/storage/repositories/commit-rule-profile-repository.js +48 -0
  285. package/dist/server/storage/repositories/commit-rule-profile-repository.js.map +1 -0
  286. package/dist/server/storage/repositories/file-context-binding-repository.d.ts +12 -0
  287. package/dist/server/storage/repositories/file-context-binding-repository.js +130 -0
  288. package/dist/server/storage/repositories/file-context-binding-repository.js.map +1 -0
  289. package/dist/server/storage/repositories/recent-file-repository.d.ts +10 -0
  290. package/dist/server/storage/repositories/recent-file-repository.js +64 -0
  291. package/dist/server/storage/repositories/recent-file-repository.js.map +1 -0
  292. package/dist/server/storage/repositories/session-binding-repository.d.ts +10 -0
  293. package/dist/server/storage/repositories/session-binding-repository.js +63 -0
  294. package/dist/server/storage/repositories/session-binding-repository.js.map +1 -0
  295. package/dist/server/storage/repositories/session-changed-file-repository.d.ts +11 -0
  296. package/dist/server/storage/repositories/session-changed-file-repository.js +94 -0
  297. package/dist/server/storage/repositories/session-changed-file-repository.js.map +1 -0
  298. package/dist/server/storage/repositories/session-index-repository.d.ts +11 -0
  299. package/dist/server/storage/repositories/session-index-repository.js +200 -0
  300. package/dist/server/storage/repositories/session-index-repository.js.map +1 -0
  301. package/dist/server/storage/repositories/session-message-attachment-repository.d.ts +13 -0
  302. package/dist/server/storage/repositories/session-message-attachment-repository.js +139 -0
  303. package/dist/server/storage/repositories/session-message-attachment-repository.js.map +1 -0
  304. package/dist/server/storage/repositories/session-send-queue-repository.d.ts +15 -0
  305. package/dist/server/storage/repositories/session-send-queue-repository.js +165 -0
  306. package/dist/server/storage/repositories/session-send-queue-repository.js.map +1 -0
  307. package/dist/server/storage/repositories/session-state-repository.d.ts +8 -0
  308. package/dist/server/storage/repositories/session-state-repository.js +60 -0
  309. package/dist/server/storage/repositories/session-state-repository.js.map +1 -0
  310. package/dist/server/storage/repositories/session-status-snapshot-repository.d.ts +8 -0
  311. package/dist/server/storage/repositories/session-status-snapshot-repository.js +49 -0
  312. package/dist/server/storage/repositories/session-status-snapshot-repository.js.map +1 -0
  313. package/dist/server/storage/repositories/terminal-command-template-repository.d.ts +11 -0
  314. package/dist/server/storage/repositories/terminal-command-template-repository.js +99 -0
  315. package/dist/server/storage/repositories/terminal-command-template-repository.js.map +1 -0
  316. package/dist/server/storage/repositories/terminal-instance-repository.d.ts +23 -0
  317. package/dist/server/storage/repositories/terminal-instance-repository.js +149 -0
  318. package/dist/server/storage/repositories/terminal-instance-repository.js.map +1 -0
  319. package/dist/server/storage/repositories/terminal-log-file-repository.d.ts +20 -0
  320. package/dist/server/storage/repositories/terminal-log-file-repository.js +106 -0
  321. package/dist/server/storage/repositories/terminal-log-file-repository.js.map +1 -0
  322. package/dist/server/storage/repositories/terminal-log-segment-repository.d.ts +11 -0
  323. package/dist/server/storage/repositories/terminal-log-segment-repository.js +110 -0
  324. package/dist/server/storage/repositories/terminal-log-segment-repository.js.map +1 -0
  325. package/dist/server/storage/repositories/terminal-runtime-session-repository.d.ts +24 -0
  326. package/dist/server/storage/repositories/terminal-runtime-session-repository.js +134 -0
  327. package/dist/server/storage/repositories/terminal-runtime-session-repository.js.map +1 -0
  328. package/dist/server/storage/repositories/user-quick-phrase-preference-repository.d.ts +8 -0
  329. package/dist/server/storage/repositories/user-quick-phrase-preference-repository.js +37 -0
  330. package/dist/server/storage/repositories/user-quick-phrase-preference-repository.js.map +1 -0
  331. package/dist/server/storage/repositories/workspace-repository.d.ts +16 -0
  332. package/dist/server/storage/repositories/workspace-repository.js +71 -0
  333. package/dist/server/storage/repositories/workspace-repository.js.map +1 -0
  334. package/dist/server/storage/sqlite/client.d.ts +6 -0
  335. package/dist/server/storage/sqlite/client.js +446 -0
  336. package/dist/server/storage/sqlite/client.js.map +1 -0
  337. package/dist/server/storage/sqlite/schema.sql +357 -0
  338. package/dist/server/types/domain.d.ts +306 -0
  339. package/dist/server/types/domain.js +2 -0
  340. package/dist/server/types/domain.js.map +1 -0
  341. package/dist/server/ws/terminal-ws-hub.d.ts +32 -0
  342. package/dist/server/ws/terminal-ws-hub.js +181 -0
  343. package/dist/server/ws/terminal-ws-hub.js.map +1 -0
  344. package/dist/server/ws/workbench-ws-hub.d.ts +30 -0
  345. package/dist/server/ws/workbench-ws-hub.js +480 -0
  346. package/dist/server/ws/workbench-ws-hub.js.map +1 -0
  347. package/dist/server/ws/ws-auth-guard.d.ts +7 -0
  348. package/dist/server/ws/ws-auth-guard.js +28 -0
  349. package/dist/server/ws/ws-auth-guard.js.map +1 -0
  350. package/dist/server/ws/ws-server.d.ts +11 -0
  351. package/dist/server/ws/ws-server.js +218 -0
  352. package/dist/server/ws/ws-server.js.map +1 -0
  353. package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.d.ts +36 -0
  354. package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.js +213 -0
  355. package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.js.map +1 -0
  356. package/node_modules/@codingns/session-sync-core/dist/index.d.ts +12 -0
  357. package/node_modules/@codingns/session-sync-core/dist/index.js +13 -0
  358. package/node_modules/@codingns/session-sync-core/dist/index.js.map +1 -0
  359. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.d.ts +30 -0
  360. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js +567 -0
  361. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js.map +1 -0
  362. package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +41 -0
  363. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +1365 -0
  364. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -0
  365. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.d.ts +41 -0
  366. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.js +280 -0
  367. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.js.map +1 -0
  368. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.d.ts +53 -0
  369. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js +745 -0
  370. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js.map +1 -0
  371. package/node_modules/@codingns/session-sync-core/dist/providers/utils.d.ts +25 -0
  372. package/node_modules/@codingns/session-sync-core/dist/providers/utils.js +284 -0
  373. package/node_modules/@codingns/session-sync-core/dist/providers/utils.js.map +1 -0
  374. package/node_modules/@codingns/session-sync-core/dist/registry.d.ts +7 -0
  375. package/node_modules/@codingns/session-sync-core/dist/registry.js +22 -0
  376. package/node_modules/@codingns/session-sync-core/dist/registry.js.map +1 -0
  377. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.d.ts +18 -0
  378. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js +236 -0
  379. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js.map +1 -0
  380. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.d.ts +21 -0
  381. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js +732 -0
  382. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js.map +1 -0
  383. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.d.ts +1 -0
  384. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js +16 -0
  385. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js.map +1 -0
  386. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.d.ts +26 -0
  387. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +892 -0
  388. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -0
  389. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.d.ts +31 -0
  390. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js +626 -0
  391. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js.map +1 -0
  392. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.d.ts +18 -0
  393. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.js +148 -0
  394. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.js.map +1 -0
  395. package/node_modules/@codingns/session-sync-core/dist/runtime/types.d.ts +141 -0
  396. package/node_modules/@codingns/session-sync-core/dist/runtime/types.js +2 -0
  397. package/node_modules/@codingns/session-sync-core/dist/runtime/types.js.map +1 -0
  398. package/node_modules/@codingns/session-sync-core/dist/services.d.ts +26 -0
  399. package/node_modules/@codingns/session-sync-core/dist/services.js +85 -0
  400. package/node_modules/@codingns/session-sync-core/dist/services.js.map +1 -0
  401. package/node_modules/@codingns/session-sync-core/dist/types.d.ts +159 -0
  402. package/node_modules/@codingns/session-sync-core/dist/types.js +2 -0
  403. package/node_modules/@codingns/session-sync-core/dist/types.js.map +1 -0
  404. package/node_modules/@codingns/session-sync-core/package.json +25 -0
  405. package/package.json +34 -0
@@ -0,0 +1,60 @@
1
+ export class SessionStateRepository {
2
+ db;
3
+ constructor(db) {
4
+ this.db = db;
5
+ }
6
+ findBySessionAndUser(sessionId, userId) {
7
+ const row = this.db
8
+ .prepare(`SELECT
9
+ session_id,
10
+ user_id,
11
+ running_state,
12
+ activity_source,
13
+ favorite,
14
+ last_event_at,
15
+ completed_at,
16
+ last_seen_at,
17
+ updated_at
18
+ FROM session_states
19
+ WHERE session_id = ? AND user_id = ?`)
20
+ .get(sessionId, userId);
21
+ return row ? mapSessionStateRow(row) : null;
22
+ }
23
+ upsert(record) {
24
+ this.db
25
+ .prepare(`INSERT INTO session_states (
26
+ session_id,
27
+ user_id,
28
+ running_state,
29
+ activity_source,
30
+ favorite,
31
+ last_event_at,
32
+ completed_at,
33
+ last_seen_at,
34
+ updated_at
35
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
36
+ ON CONFLICT(session_id, user_id) DO UPDATE SET
37
+ running_state = excluded.running_state,
38
+ activity_source = excluded.activity_source,
39
+ favorite = excluded.favorite,
40
+ last_event_at = excluded.last_event_at,
41
+ completed_at = excluded.completed_at,
42
+ last_seen_at = excluded.last_seen_at,
43
+ updated_at = excluded.updated_at`)
44
+ .run(record.sessionId, record.userId, record.runningState, record.activitySource, record.favorite ? 1 : 0, record.lastEventAt, record.completedAt, record.lastSeenAt, record.updatedAt);
45
+ }
46
+ }
47
+ function mapSessionStateRow(row) {
48
+ return {
49
+ sessionId: row.session_id,
50
+ userId: row.user_id,
51
+ runningState: row.running_state,
52
+ activitySource: row.activity_source,
53
+ favorite: row.favorite === 1,
54
+ lastEventAt: row.last_event_at,
55
+ completedAt: row.completed_at,
56
+ lastSeenAt: row.last_seen_at,
57
+ updatedAt: row.updated_at
58
+ };
59
+ }
60
+ //# sourceMappingURL=session-state-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-state-repository.js","sourceRoot":"","sources":["../../../../src/storage/repositories/session-state-repository.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,sBAAsB;IACJ;IAA7B,YAA6B,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAEtD,oBAAoB,CAAC,SAAiB,EAAE,MAAc;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;;;;;;;;;;8CAWsC,CACvC;aACA,GAAG,CAAC,SAAS,EAAE,MAAM,CAAgC,CAAC;QAEzD,OAAO,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,MAA0B;QAC/B,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;;;;;;;;;;;;;;;4CAkBoC,CACrC;aACA,GAAG,CACF,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,SAAS,CACjB,CAAC;IACN,CAAC;CACF;AAcD,SAAS,kBAAkB,CAAC,GAAoB;IAC9C,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,cAAc,EAAE,GAAG,CAAC,eAAe;QACnC,QAAQ,EAAE,GAAG,CAAC,QAAQ,KAAK,CAAC;QAC5B,WAAW,EAAE,GAAG,CAAC,aAAa;QAC9B,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,UAAU,EAAE,GAAG,CAAC,YAAY;QAC5B,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type Database from "better-sqlite3";
2
+ import type { SessionStatusSnapshot } from "../../types/domain.js";
3
+ export declare class SessionStatusSnapshotRepository {
4
+ private readonly db;
5
+ constructor(db: Database.Database);
6
+ findBySessionId(sessionId: string): SessionStatusSnapshot | null;
7
+ upsert(record: SessionStatusSnapshot): void;
8
+ }
@@ -0,0 +1,49 @@
1
+ export class SessionStatusSnapshotRepository {
2
+ db;
3
+ constructor(db) {
4
+ this.db = db;
5
+ }
6
+ findBySessionId(sessionId) {
7
+ const row = this.db
8
+ .prepare(`SELECT session_id, sync_status, sync_cursor, last_sync_at, last_error_code, last_error_detail, resumed_at, updated_at
9
+ FROM session_status_snapshots
10
+ WHERE session_id = ?`)
11
+ .get(sessionId);
12
+ return row ? mapSessionStatusSnapshotRow(row) : null;
13
+ }
14
+ upsert(record) {
15
+ this.db
16
+ .prepare(`INSERT INTO session_status_snapshots (
17
+ session_id,
18
+ sync_status,
19
+ sync_cursor,
20
+ last_sync_at,
21
+ last_error_code,
22
+ last_error_detail,
23
+ resumed_at,
24
+ updated_at
25
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
26
+ ON CONFLICT(session_id) DO UPDATE SET
27
+ sync_status = excluded.sync_status,
28
+ sync_cursor = excluded.sync_cursor,
29
+ last_sync_at = excluded.last_sync_at,
30
+ last_error_code = excluded.last_error_code,
31
+ last_error_detail = excluded.last_error_detail,
32
+ resumed_at = excluded.resumed_at,
33
+ updated_at = excluded.updated_at`)
34
+ .run(record.sessionId, record.syncStatus, record.syncCursor, record.lastSyncAt, record.lastErrorCode, record.lastErrorDetail, record.resumedAt, record.updatedAt);
35
+ }
36
+ }
37
+ function mapSessionStatusSnapshotRow(row) {
38
+ return {
39
+ sessionId: row.session_id,
40
+ syncStatus: row.sync_status,
41
+ syncCursor: row.sync_cursor,
42
+ lastSyncAt: row.last_sync_at,
43
+ lastErrorCode: row.last_error_code,
44
+ lastErrorDetail: row.last_error_detail,
45
+ resumedAt: row.resumed_at,
46
+ updatedAt: row.updated_at
47
+ };
48
+ }
49
+ //# sourceMappingURL=session-status-snapshot-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-status-snapshot-repository.js","sourceRoot":"","sources":["../../../../src/storage/repositories/session-status-snapshot-repository.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,+BAA+B;IACb;IAA7B,YAA6B,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAEtD,eAAe,CAAC,SAAiB;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;8BAEsB,CACvB;aACA,GAAG,CAAC,SAAS,CAAyC,CAAC;QAE1D,OAAO,GAAG,CAAC,CAAC,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,MAA6B;QAClC,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;;;;;;;;;;;;;;4CAiBoC,CACrC;aACA,GAAG,CACF,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,CACjB,CAAC;IACN,CAAC;CACF;AAaD,SAAS,2BAA2B,CAAC,GAA6B;IAChE,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,UAAU,EAAE,GAAG,CAAC,YAAY;QAC5B,aAAa,EAAE,GAAG,CAAC,eAAe;QAClC,eAAe,EAAE,GAAG,CAAC,iBAAiB;QACtC,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type Database from "better-sqlite3";
2
+ import type { TerminalCommandTemplate } from "../../types/domain.js";
3
+ export declare class TerminalCommandTemplateRepository {
4
+ private readonly db;
5
+ constructor(db: Database.Database);
6
+ create(record: TerminalCommandTemplate): TerminalCommandTemplate;
7
+ findById(id: string): TerminalCommandTemplate | null;
8
+ listByWorkspace(workspaceId: string): TerminalCommandTemplate[];
9
+ update(record: TerminalCommandTemplate): TerminalCommandTemplate;
10
+ delete(id: string): boolean;
11
+ }
@@ -0,0 +1,99 @@
1
+ export class TerminalCommandTemplateRepository {
2
+ db;
3
+ constructor(db) {
4
+ this.db = db;
5
+ }
6
+ create(record) {
7
+ this.db
8
+ .prepare(`INSERT INTO terminal_command_templates (
9
+ id,
10
+ workspace_id,
11
+ name,
12
+ cwd,
13
+ command,
14
+ args_json,
15
+ env_json,
16
+ port,
17
+ runtime_type,
18
+ created_at,
19
+ updated_at
20
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
21
+ .run(record.id, record.workspaceId, record.name, record.cwd, record.command, JSON.stringify(record.args), JSON.stringify(record.env), record.port, record.runtimeType, record.createdAt, record.updatedAt);
22
+ return record;
23
+ }
24
+ findById(id) {
25
+ const row = this.db
26
+ .prepare(`SELECT
27
+ id,
28
+ workspace_id,
29
+ name,
30
+ cwd,
31
+ command,
32
+ args_json,
33
+ env_json,
34
+ port,
35
+ runtime_type,
36
+ created_at,
37
+ updated_at
38
+ FROM terminal_command_templates
39
+ WHERE id = ?`)
40
+ .get(id);
41
+ return row ? mapTemplateRow(row) : null;
42
+ }
43
+ listByWorkspace(workspaceId) {
44
+ return this.db
45
+ .prepare(`SELECT
46
+ id,
47
+ workspace_id,
48
+ name,
49
+ cwd,
50
+ command,
51
+ args_json,
52
+ env_json,
53
+ port,
54
+ runtime_type,
55
+ created_at,
56
+ updated_at
57
+ FROM terminal_command_templates
58
+ WHERE workspace_id = ?
59
+ ORDER BY updated_at DESC, created_at DESC`)
60
+ .all(workspaceId)
61
+ .map((row) => mapTemplateRow(row));
62
+ }
63
+ update(record) {
64
+ this.db
65
+ .prepare(`UPDATE terminal_command_templates
66
+ SET name = ?,
67
+ cwd = ?,
68
+ command = ?,
69
+ args_json = ?,
70
+ env_json = ?,
71
+ port = ?,
72
+ runtime_type = ?,
73
+ updated_at = ?
74
+ WHERE id = ?`)
75
+ .run(record.name, record.cwd, record.command, JSON.stringify(record.args), JSON.stringify(record.env), record.port, record.runtimeType, record.updatedAt, record.id);
76
+ return record;
77
+ }
78
+ delete(id) {
79
+ return (this.db
80
+ .prepare("DELETE FROM terminal_command_templates WHERE id = ?")
81
+ .run(id).changes > 0);
82
+ }
83
+ }
84
+ function mapTemplateRow(row) {
85
+ return {
86
+ id: row.id,
87
+ workspaceId: row.workspace_id,
88
+ name: row.name,
89
+ cwd: row.cwd,
90
+ command: row.command,
91
+ args: JSON.parse(row.args_json),
92
+ env: JSON.parse(row.env_json),
93
+ port: row.port,
94
+ runtimeType: row.runtime_type ?? null,
95
+ createdAt: row.created_at,
96
+ updatedAt: row.updated_at
97
+ };
98
+ }
99
+ //# sourceMappingURL=terminal-command-template-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-command-template-repository.js","sourceRoot":"","sources":["../../../../src/storage/repositories/terminal-command-template-repository.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,iCAAiC;IACf;IAA7B,YAA6B,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAEtD,MAAM,CAAC,MAA+B;QACpC,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;;;;;;;;;mDAY2C,CAC5C;aACA,GAAG,CACF,MAAM,CAAC,EAAE,EACT,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,OAAO,EACd,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAC3B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAC1B,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,CACjB,CAAC;QAEJ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,EAAU;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;;;;;;;;;;;;qBAaa,CACd;aACA,GAAG,CAAC,EAAE,CAA2C,CAAC;QAErD,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1C,CAAC;IAED,eAAe,CAAC,WAAmB;QACjC,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN;;;;;;;;;;;;;;kDAc0C,CAC3C;aACA,GAAG,CAAC,WAAW,CAAC;aAChB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAiC,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,MAA+B;QACpC,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;;;;;;sBASc,CACf;aACA,GAAG,CACF,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,OAAO,EACd,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAC3B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAC1B,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,EAAE,CACV,CAAC;QAEJ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,CACL,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC,qDAAqD,CAAC;aAC9D,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CACvB,CAAC;IACJ,CAAC;CACF;AAgBD,SAAS,cAAc,CAAC,GAA+B;IACrD,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAa;QAC3C,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAA2B;QACvD,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;QACrC,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type Database from "better-sqlite3";
2
+ import type { TerminalInstance, TerminalStatus } from "../../types/domain.js";
3
+ interface UpdateTerminalLifecycleInput {
4
+ id: string;
5
+ status: TerminalStatus;
6
+ processId: number | null;
7
+ lastActiveAt: string;
8
+ closedAt?: string | null;
9
+ exitCode?: number | null;
10
+ statusDetail?: string | null;
11
+ }
12
+ export declare class TerminalInstanceRepository {
13
+ private readonly db;
14
+ constructor(db: Database.Database);
15
+ create(record: TerminalInstance): TerminalInstance;
16
+ findById(id: string): TerminalInstance | null;
17
+ listByWorkspace(workspaceId: string): TerminalInstance[];
18
+ listRecoverable(): TerminalInstance[];
19
+ updateLifecycle(input: UpdateTerminalLifecycleInput): void;
20
+ touchLastActiveAt(id: string, lastActiveAt: string): void;
21
+ delete(id: string): void;
22
+ }
23
+ export {};
@@ -0,0 +1,149 @@
1
+ export class TerminalInstanceRepository {
2
+ db;
3
+ constructor(db) {
4
+ this.db = db;
5
+ }
6
+ create(record) {
7
+ this.db
8
+ .prepare(`INSERT INTO terminal_instances (
9
+ id,
10
+ workspace_id,
11
+ name,
12
+ cwd,
13
+ shell,
14
+ runtime_type,
15
+ runtime_session_id,
16
+ attach_target,
17
+ status,
18
+ process_id,
19
+ created_by_user_id,
20
+ created_at,
21
+ last_active_at,
22
+ closed_at,
23
+ exit_code,
24
+ status_detail
25
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
26
+ .run(record.id, record.workspaceId, record.name, record.cwd, record.shell, record.runtimeType, record.runtimeSessionId, record.attachTarget, record.status, record.processId, record.createdByUserId, record.createdAt, record.lastActiveAt, record.closedAt, record.exitCode, record.statusDetail);
27
+ return record;
28
+ }
29
+ findById(id) {
30
+ const row = this.db
31
+ .prepare(`SELECT
32
+ id,
33
+ workspace_id,
34
+ name,
35
+ cwd,
36
+ shell,
37
+ runtime_type,
38
+ runtime_session_id,
39
+ attach_target,
40
+ status,
41
+ process_id,
42
+ created_by_user_id,
43
+ created_at,
44
+ last_active_at,
45
+ closed_at,
46
+ exit_code,
47
+ status_detail
48
+ FROM terminal_instances
49
+ WHERE id = ?`)
50
+ .get(id);
51
+ return row ? mapTerminalInstanceRow(row) : null;
52
+ }
53
+ listByWorkspace(workspaceId) {
54
+ return this.db
55
+ .prepare(`SELECT
56
+ id,
57
+ workspace_id,
58
+ name,
59
+ cwd,
60
+ shell,
61
+ runtime_type,
62
+ runtime_session_id,
63
+ attach_target,
64
+ status,
65
+ process_id,
66
+ created_by_user_id,
67
+ created_at,
68
+ last_active_at,
69
+ closed_at,
70
+ exit_code,
71
+ status_detail
72
+ FROM terminal_instances
73
+ WHERE workspace_id = ?
74
+ ORDER BY last_active_at DESC, created_at DESC`)
75
+ .all(workspaceId)
76
+ .map((row) => mapTerminalInstanceRow(row));
77
+ }
78
+ listRecoverable() {
79
+ return this.db
80
+ .prepare(`SELECT
81
+ id,
82
+ workspace_id,
83
+ name,
84
+ cwd,
85
+ shell,
86
+ runtime_type,
87
+ runtime_session_id,
88
+ attach_target,
89
+ status,
90
+ process_id,
91
+ created_by_user_id,
92
+ created_at,
93
+ last_active_at,
94
+ closed_at,
95
+ exit_code,
96
+ status_detail
97
+ FROM terminal_instances
98
+ WHERE status IN ('creating', 'running')
99
+ ORDER BY last_active_at DESC, created_at DESC`)
100
+ .all()
101
+ .map((row) => mapTerminalInstanceRow(row));
102
+ }
103
+ updateLifecycle(input) {
104
+ this.db
105
+ .prepare(`UPDATE terminal_instances
106
+ SET status = ?,
107
+ process_id = ?,
108
+ last_active_at = ?,
109
+ closed_at = ?,
110
+ exit_code = ?,
111
+ status_detail = ?
112
+ WHERE id = ?`)
113
+ .run(input.status, input.processId, input.lastActiveAt, input.closedAt ?? null, input.exitCode ?? null, input.statusDetail ?? null, input.id);
114
+ }
115
+ touchLastActiveAt(id, lastActiveAt) {
116
+ this.db
117
+ .prepare(`UPDATE terminal_instances
118
+ SET last_active_at = ?
119
+ WHERE id = ?`)
120
+ .run(lastActiveAt, id);
121
+ }
122
+ delete(id) {
123
+ this.db
124
+ .prepare(`DELETE FROM terminal_instances
125
+ WHERE id = ?`)
126
+ .run(id);
127
+ }
128
+ }
129
+ function mapTerminalInstanceRow(row) {
130
+ return {
131
+ id: row.id,
132
+ workspaceId: row.workspace_id,
133
+ name: row.name,
134
+ cwd: row.cwd,
135
+ shell: row.shell,
136
+ runtimeType: row.runtime_type,
137
+ runtimeSessionId: row.runtime_session_id,
138
+ attachTarget: row.attach_target,
139
+ status: row.status,
140
+ processId: row.process_id,
141
+ createdByUserId: row.created_by_user_id,
142
+ createdAt: row.created_at,
143
+ lastActiveAt: row.last_active_at,
144
+ closedAt: row.closed_at,
145
+ exitCode: row.exit_code,
146
+ statusDetail: row.status_detail
147
+ };
148
+ }
149
+ //# sourceMappingURL=terminal-instance-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-instance-repository.js","sourceRoot":"","sources":["../../../../src/storage/repositories/terminal-instance-repository.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,0BAA0B;IACR;IAA7B,YAA6B,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAEtD,MAAM,CAAC,MAAwB;QAC7B,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;;;;;;;;;;;;;;kEAiB0D,CAC3D;aACA,GAAG,CACF,MAAM,CAAC,EAAE,EACT,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,GAAG,EACV,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,YAAY,CACpB,CAAC;QAEJ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,EAAU;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;;;;;;;;;;;;;;;;;qBAkBa,CACd;aACA,GAAG,CAAC,EAAE,CAAoC,CAAC;QAE9C,OAAO,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,CAAC;IAED,eAAe,CAAC,WAAmB;QACjC,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN;;;;;;;;;;;;;;;;;;;sDAmB8C,CAC/C;aACA,GAAG,CAAC,WAAW,CAAC;aAChB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAA0B,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN;;;;;;;;;;;;;;;;;;;sDAmB8C,CAC/C;aACA,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAA0B,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,eAAe,CAAC,KAAmC;QACjD,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;;;;sBAOc,CACf;aACA,GAAG,CACF,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,QAAQ,IAAI,IAAI,EACtB,KAAK,CAAC,QAAQ,IAAI,IAAI,EACtB,KAAK,CAAC,YAAY,IAAI,IAAI,EAC1B,KAAK,CAAC,EAAE,CACT,CAAC;IACN,CAAC;IAED,iBAAiB,CAAC,EAAU,EAAE,YAAoB;QAChD,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;sBAEc,CACf;aACA,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,EAAU;QACf,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;sBACc,CACf;aACA,GAAG,CAAC,EAAE,CAAC,CAAC;IACb,CAAC;CACF;AAqBD,SAAS,sBAAsB,CAAC,GAAwB;IACtD,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,gBAAgB,EAAE,GAAG,CAAC,kBAAkB;QACxC,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,eAAe,EAAE,GAAG,CAAC,kBAAkB;QACvC,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,YAAY,EAAE,GAAG,CAAC,cAAc;QAChC,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,YAAY,EAAE,GAAG,CAAC,aAAa;KAChC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type Database from "better-sqlite3";
2
+ import type { TerminalLogFile, TerminalLogFileStatus } from "../../types/domain.js";
3
+ interface UpdateTerminalLogFileInput {
4
+ id: string;
5
+ status: TerminalLogFileStatus;
6
+ endSeq: number | null;
7
+ sizeBytes: number;
8
+ updatedAt: string;
9
+ }
10
+ export declare class TerminalLogFileRepository {
11
+ private readonly db;
12
+ constructor(db: Database.Database);
13
+ create(record: TerminalLogFile): TerminalLogFile;
14
+ findById(id: string): TerminalLogFile | null;
15
+ findActiveByTerminalId(terminalId: string): TerminalLogFile | null;
16
+ listByTerminalId(terminalId: string): TerminalLogFile[];
17
+ updateLifecycle(input: UpdateTerminalLogFileInput): void;
18
+ deleteByTerminalId(terminalId: string): void;
19
+ }
20
+ export {};
@@ -0,0 +1,106 @@
1
+ export class TerminalLogFileRepository {
2
+ db;
3
+ constructor(db) {
4
+ this.db = db;
5
+ }
6
+ create(record) {
7
+ this.db
8
+ .prepare(`INSERT INTO terminal_log_files (
9
+ id,
10
+ terminal_id,
11
+ relative_path,
12
+ status,
13
+ start_seq,
14
+ end_seq,
15
+ size_bytes,
16
+ created_at,
17
+ updated_at
18
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`)
19
+ .run(record.id, record.terminalId, record.relativePath, record.status, record.startSeq, record.endSeq, record.sizeBytes, record.createdAt, record.updatedAt);
20
+ return record;
21
+ }
22
+ findById(id) {
23
+ const row = this.db
24
+ .prepare(`SELECT
25
+ id,
26
+ terminal_id,
27
+ relative_path,
28
+ status,
29
+ start_seq,
30
+ end_seq,
31
+ size_bytes,
32
+ created_at,
33
+ updated_at
34
+ FROM terminal_log_files
35
+ WHERE id = ?`)
36
+ .get(id);
37
+ return row ? mapTerminalLogFileRow(row) : null;
38
+ }
39
+ findActiveByTerminalId(terminalId) {
40
+ const row = this.db
41
+ .prepare(`SELECT
42
+ id,
43
+ terminal_id,
44
+ relative_path,
45
+ status,
46
+ start_seq,
47
+ end_seq,
48
+ size_bytes,
49
+ created_at,
50
+ updated_at
51
+ FROM terminal_log_files
52
+ WHERE terminal_id = ? AND status = 'active'
53
+ ORDER BY updated_at DESC, created_at DESC
54
+ LIMIT 1`)
55
+ .get(terminalId);
56
+ return row ? mapTerminalLogFileRow(row) : null;
57
+ }
58
+ listByTerminalId(terminalId) {
59
+ return this.db
60
+ .prepare(`SELECT
61
+ id,
62
+ terminal_id,
63
+ relative_path,
64
+ status,
65
+ start_seq,
66
+ end_seq,
67
+ size_bytes,
68
+ created_at,
69
+ updated_at
70
+ FROM terminal_log_files
71
+ WHERE terminal_id = ?
72
+ ORDER BY created_at DESC, id DESC`)
73
+ .all(terminalId)
74
+ .map((row) => mapTerminalLogFileRow(row));
75
+ }
76
+ updateLifecycle(input) {
77
+ this.db
78
+ .prepare(`UPDATE terminal_log_files
79
+ SET status = ?,
80
+ end_seq = ?,
81
+ size_bytes = ?,
82
+ updated_at = ?
83
+ WHERE id = ?`)
84
+ .run(input.status, input.endSeq, input.sizeBytes, input.updatedAt, input.id);
85
+ }
86
+ deleteByTerminalId(terminalId) {
87
+ this.db
88
+ .prepare(`DELETE FROM terminal_log_files
89
+ WHERE terminal_id = ?`)
90
+ .run(terminalId);
91
+ }
92
+ }
93
+ function mapTerminalLogFileRow(row) {
94
+ return {
95
+ id: row.id,
96
+ terminalId: row.terminal_id,
97
+ relativePath: row.relative_path,
98
+ status: row.status,
99
+ startSeq: row.start_seq,
100
+ endSeq: row.end_seq,
101
+ sizeBytes: row.size_bytes,
102
+ createdAt: row.created_at,
103
+ updatedAt: row.updated_at
104
+ };
105
+ }
106
+ //# sourceMappingURL=terminal-log-file-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-log-file-repository.js","sourceRoot":"","sources":["../../../../src/storage/repositories/terminal-log-file-repository.ts"],"names":[],"mappings":"AAYA,MAAM,OAAO,yBAAyB;IACP;IAA7B,YAA6B,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAEtD,MAAM,CAAC,MAAuB;QAC5B,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;;;;;;;6CAUqC,CACtC;aACA,GAAG,CACF,MAAM,CAAC,EAAE,EACT,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,CACjB,CAAC;QAEJ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,EAAU;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;;;;;;;;;;qBAWa,CACd;aACA,GAAG,CAAC,EAAE,CAAmC,CAAC;QAE7C,OAAO,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IAED,sBAAsB,CAAC,UAAkB;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CACN;;;;;;;;;;;;;gBAaQ,CACT;aACA,GAAG,CAAC,UAAU,CAAmC,CAAC;QAErD,OAAO,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IAED,gBAAgB,CAAC,UAAkB;QACjC,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN;;;;;;;;;;;;0CAYkC,CACnC;aACA,GAAG,CAAC,UAAU,CAAC;aACf,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,qBAAqB,CAAC,GAAyB,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,eAAe,CAAC,KAAiC;QAC/C,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;;sBAKc,CACf;aACA,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,kBAAkB,CAAC,UAAkB;QACnC,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;+BACuB,CACxB;aACA,GAAG,CAAC,UAAU,CAAC,CAAC;IACrB,CAAC;CACF;AAcD,SAAS,qBAAqB,CAAC,GAAuB;IACpD,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type Database from "better-sqlite3";
2
+ import type { TerminalLogSegment } from "../../types/domain.js";
3
+ export declare class TerminalLogSegmentRepository {
4
+ private readonly db;
5
+ constructor(db: Database.Database);
6
+ create(record: TerminalLogSegment): TerminalLogSegment;
7
+ findLatestByTerminalId(terminalId: string): TerminalLogSegment | null;
8
+ listByTerminalId(terminalId: string, limit?: number): TerminalLogSegment[];
9
+ listBeforeSeq(terminalId: string, beforeSeq: number | null, limit: number): TerminalLogSegment[];
10
+ deleteByTerminalId(terminalId: string): void;
11
+ }
@@ -0,0 +1,110 @@
1
+ export class TerminalLogSegmentRepository {
2
+ db;
3
+ constructor(db) {
4
+ this.db = db;
5
+ }
6
+ create(record) {
7
+ this.db
8
+ .prepare(`INSERT INTO terminal_log_segments (
9
+ id,
10
+ terminal_id,
11
+ file_id,
12
+ start_seq,
13
+ end_seq,
14
+ start_offset,
15
+ end_offset,
16
+ byte_length,
17
+ created_at
18
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`)
19
+ .run(record.id, record.terminalId, record.fileId, record.startSeq, record.endSeq, record.startOffset, record.endOffset, record.byteLength, record.createdAt);
20
+ return record;
21
+ }
22
+ findLatestByTerminalId(terminalId) {
23
+ const row = this.db
24
+ .prepare(`SELECT
25
+ id,
26
+ terminal_id,
27
+ file_id,
28
+ start_seq,
29
+ end_seq,
30
+ start_offset,
31
+ end_offset,
32
+ byte_length,
33
+ created_at
34
+ FROM terminal_log_segments
35
+ WHERE terminal_id = ?
36
+ ORDER BY end_seq DESC, created_at DESC
37
+ LIMIT 1`)
38
+ .get(terminalId);
39
+ return row ? mapTerminalLogSegmentRow(row) : null;
40
+ }
41
+ listByTerminalId(terminalId, limit) {
42
+ const resolvedLimit = normalizeLimit(limit);
43
+ return this.db
44
+ .prepare(`SELECT
45
+ id,
46
+ terminal_id,
47
+ file_id,
48
+ start_seq,
49
+ end_seq,
50
+ start_offset,
51
+ end_offset,
52
+ byte_length,
53
+ created_at
54
+ FROM terminal_log_segments
55
+ WHERE terminal_id = ?
56
+ ORDER BY start_seq DESC, created_at DESC
57
+ LIMIT ?`)
58
+ .all(terminalId, resolvedLimit)
59
+ .map((row) => mapTerminalLogSegmentRow(row));
60
+ }
61
+ listBeforeSeq(terminalId, beforeSeq, limit) {
62
+ const resolvedLimit = normalizeLimit(limit);
63
+ if (beforeSeq === null) {
64
+ return this.listByTerminalId(terminalId, resolvedLimit);
65
+ }
66
+ return this.db
67
+ .prepare(`SELECT
68
+ id,
69
+ terminal_id,
70
+ file_id,
71
+ start_seq,
72
+ end_seq,
73
+ start_offset,
74
+ end_offset,
75
+ byte_length,
76
+ created_at
77
+ FROM terminal_log_segments
78
+ WHERE terminal_id = ? AND start_seq < ?
79
+ ORDER BY start_seq DESC, created_at DESC
80
+ LIMIT ?`)
81
+ .all(terminalId, beforeSeq, resolvedLimit)
82
+ .map((row) => mapTerminalLogSegmentRow(row));
83
+ }
84
+ deleteByTerminalId(terminalId) {
85
+ this.db
86
+ .prepare(`DELETE FROM terminal_log_segments
87
+ WHERE terminal_id = ?`)
88
+ .run(terminalId);
89
+ }
90
+ }
91
+ function mapTerminalLogSegmentRow(row) {
92
+ return {
93
+ id: row.id,
94
+ terminalId: row.terminal_id,
95
+ fileId: row.file_id,
96
+ startSeq: row.start_seq,
97
+ endSeq: row.end_seq,
98
+ startOffset: row.start_offset,
99
+ endOffset: row.end_offset,
100
+ byteLength: row.byte_length,
101
+ createdAt: row.created_at
102
+ };
103
+ }
104
+ function normalizeLimit(limit) {
105
+ if (!Number.isInteger(limit) || (limit ?? 0) <= 0) {
106
+ return 50;
107
+ }
108
+ return Math.min(limit, 200);
109
+ }
110
+ //# sourceMappingURL=terminal-log-segment-repository.js.map