@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,357 @@
1
+ PRAGMA journal_mode = WAL;
2
+ PRAGMA foreign_keys = ON;
3
+ PRAGMA busy_timeout = 5000;
4
+
5
+ CREATE TABLE IF NOT EXISTS bootstrap_state (
6
+ id TEXT PRIMARY KEY CHECK (id = 'default'),
7
+ initialized INTEGER NOT NULL DEFAULT 0 CHECK (initialized IN (0, 1)),
8
+ initialized_at TEXT,
9
+ initialized_by_user_id TEXT
10
+ );
11
+
12
+ CREATE TABLE IF NOT EXISTS auth_users (
13
+ id TEXT PRIMARY KEY,
14
+ username TEXT NOT NULL UNIQUE,
15
+ password_hash TEXT NOT NULL,
16
+ role TEXT NOT NULL CHECK (role = 'admin'),
17
+ created_at TEXT NOT NULL,
18
+ updated_at TEXT NOT NULL
19
+ );
20
+
21
+ CREATE TABLE IF NOT EXISTS auth_tokens (
22
+ id TEXT PRIMARY KEY,
23
+ user_id TEXT NOT NULL,
24
+ token_type TEXT NOT NULL CHECK (token_type IN ('access', 'refresh')),
25
+ token_hash TEXT NOT NULL UNIQUE,
26
+ expires_at TEXT NOT NULL,
27
+ revoked_at TEXT,
28
+ created_at TEXT NOT NULL,
29
+ FOREIGN KEY (user_id) REFERENCES auth_users(id)
30
+ );
31
+
32
+ CREATE INDEX IF NOT EXISTS idx_auth_tokens_user_id ON auth_tokens(user_id);
33
+ CREATE INDEX IF NOT EXISTS idx_auth_tokens_expires_at ON auth_tokens(expires_at);
34
+
35
+ CREATE TABLE IF NOT EXISTS workspaces (
36
+ id TEXT PRIMARY KEY,
37
+ name TEXT NOT NULL,
38
+ path TEXT NOT NULL UNIQUE,
39
+ repo_root TEXT,
40
+ favorite INTEGER NOT NULL DEFAULT 0 CHECK (favorite IN (0, 1)),
41
+ created_at TEXT NOT NULL,
42
+ updated_at TEXT NOT NULL,
43
+ removed_at TEXT
44
+ );
45
+
46
+ CREATE TABLE IF NOT EXISTS commit_rule_profiles (
47
+ id TEXT PRIMARY KEY,
48
+ workspace_id TEXT NOT NULL UNIQUE,
49
+ name TEXT NOT NULL,
50
+ subject_pattern TEXT NOT NULL,
51
+ max_subject_length INTEGER NOT NULL,
52
+ language TEXT NOT NULL CHECK (language IN ('zh', 'en', 'any')),
53
+ require_body INTEGER NOT NULL DEFAULT 0 CHECK (require_body IN (0, 1)),
54
+ require_issue INTEGER NOT NULL DEFAULT 0 CHECK (require_issue IN (0, 1)),
55
+ issue_pattern TEXT,
56
+ updated_at TEXT NOT NULL,
57
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id)
58
+ );
59
+
60
+ CREATE TABLE IF NOT EXISTS session_bindings (
61
+ session_id TEXT PRIMARY KEY,
62
+ workspace_id TEXT NOT NULL,
63
+ provider TEXT NOT NULL,
64
+ provider_session_id TEXT NOT NULL,
65
+ raw_store_ref TEXT NOT NULL,
66
+ created_at TEXT NOT NULL,
67
+ updated_at TEXT NOT NULL,
68
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id),
69
+ UNIQUE (provider, provider_session_id)
70
+ );
71
+
72
+ CREATE INDEX IF NOT EXISTS idx_session_bindings_workspace_id ON session_bindings(workspace_id);
73
+
74
+ CREATE TABLE IF NOT EXISTS session_indices (
75
+ session_id TEXT PRIMARY KEY,
76
+ workspace_id TEXT NOT NULL,
77
+ provider TEXT NOT NULL,
78
+ parent_session_id TEXT,
79
+ is_subagent INTEGER NOT NULL DEFAULT 0 CHECK (is_subagent IN (0, 1)),
80
+ subagent_label TEXT,
81
+ title TEXT NOT NULL,
82
+ message_count INTEGER NOT NULL DEFAULT 0,
83
+ is_archived INTEGER NOT NULL DEFAULT 0 CHECK (is_archived IN (0, 1)),
84
+ last_message_at TEXT,
85
+ created_at TEXT NOT NULL,
86
+ updated_at TEXT NOT NULL,
87
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id),
88
+ FOREIGN KEY (session_id) REFERENCES session_bindings(session_id)
89
+ );
90
+
91
+ CREATE INDEX IF NOT EXISTS idx_session_indices_workspace_id ON session_indices(workspace_id);
92
+
93
+ CREATE TABLE IF NOT EXISTS session_changed_files (
94
+ session_id TEXT NOT NULL,
95
+ workspace_id TEXT NOT NULL,
96
+ path TEXT NOT NULL,
97
+ first_detected_at TEXT NOT NULL,
98
+ last_detected_at TEXT NOT NULL,
99
+ last_tool_name TEXT,
100
+ PRIMARY KEY (session_id, path),
101
+ FOREIGN KEY (session_id) REFERENCES session_bindings(session_id),
102
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id)
103
+ );
104
+
105
+ CREATE INDEX IF NOT EXISTS idx_session_changed_files_session
106
+ ON session_changed_files(session_id, path);
107
+
108
+ CREATE TABLE IF NOT EXISTS session_changed_file_states (
109
+ session_id TEXT PRIMARY KEY,
110
+ indexed_at TEXT NOT NULL,
111
+ updated_at TEXT NOT NULL,
112
+ FOREIGN KEY (session_id) REFERENCES session_bindings(session_id)
113
+ );
114
+
115
+ CREATE TABLE IF NOT EXISTS session_status_snapshots (
116
+ session_id TEXT PRIMARY KEY,
117
+ sync_status TEXT NOT NULL CHECK (sync_status IN ('idle', 'syncing', 'error')),
118
+ sync_cursor TEXT,
119
+ last_sync_at TEXT,
120
+ last_error_code TEXT,
121
+ last_error_detail TEXT,
122
+ resumed_at TEXT,
123
+ updated_at TEXT NOT NULL,
124
+ FOREIGN KEY (session_id) REFERENCES session_bindings(session_id)
125
+ );
126
+
127
+ CREATE TABLE IF NOT EXISTS session_states (
128
+ session_id TEXT NOT NULL,
129
+ user_id TEXT NOT NULL,
130
+ running_state TEXT NOT NULL CHECK (
131
+ running_state IN ('idle', 'starting', 'running', 'completed', 'interrupted', 'failed')
132
+ ),
133
+ activity_source TEXT NOT NULL CHECK (activity_source IN ('none', 'runtime', 'inferred')),
134
+ favorite INTEGER NOT NULL DEFAULT 0 CHECK (favorite IN (0, 1)),
135
+ last_event_at TEXT,
136
+ completed_at TEXT,
137
+ last_seen_at TEXT,
138
+ updated_at TEXT NOT NULL,
139
+ PRIMARY KEY (session_id, user_id),
140
+ FOREIGN KEY (session_id) REFERENCES session_bindings(session_id),
141
+ FOREIGN KEY (user_id) REFERENCES auth_users(id)
142
+ );
143
+
144
+ CREATE INDEX IF NOT EXISTS idx_session_states_user_id
145
+ ON session_states(user_id, updated_at DESC);
146
+
147
+ CREATE TABLE IF NOT EXISTS session_message_attachments (
148
+ id TEXT PRIMARY KEY,
149
+ session_id TEXT NOT NULL,
150
+ client_request_id TEXT NOT NULL,
151
+ message_id TEXT,
152
+ kind TEXT NOT NULL CHECK (kind IN ('image')),
153
+ file_name TEXT NOT NULL,
154
+ mime_type TEXT NOT NULL,
155
+ file_size INTEGER NOT NULL,
156
+ storage_path TEXT NOT NULL,
157
+ created_at TEXT NOT NULL,
158
+ FOREIGN KEY (session_id) REFERENCES session_bindings(session_id)
159
+ );
160
+
161
+ CREATE INDEX IF NOT EXISTS idx_session_message_attachments_message
162
+ ON session_message_attachments(session_id, message_id);
163
+ CREATE INDEX IF NOT EXISTS idx_session_message_attachments_client_request
164
+ ON session_message_attachments(session_id, client_request_id);
165
+
166
+ CREATE TABLE IF NOT EXISTS session_send_queue (
167
+ id TEXT PRIMARY KEY,
168
+ session_id TEXT NOT NULL,
169
+ user_id TEXT NOT NULL,
170
+ content TEXT NOT NULL,
171
+ client_request_id TEXT,
172
+ model TEXT,
173
+ reasoning_level TEXT,
174
+ permission_mode TEXT,
175
+ status TEXT NOT NULL CHECK (status IN ('queued', 'dispatching', 'failed')),
176
+ order_index INTEGER NOT NULL,
177
+ error_detail TEXT,
178
+ created_at TEXT NOT NULL,
179
+ updated_at TEXT NOT NULL,
180
+ dispatched_at TEXT,
181
+ FOREIGN KEY (session_id) REFERENCES session_bindings(session_id),
182
+ FOREIGN KEY (user_id) REFERENCES auth_users(id)
183
+ );
184
+
185
+ CREATE INDEX IF NOT EXISTS idx_session_send_queue_session_status
186
+ ON session_send_queue(session_id, status, order_index ASC);
187
+ CREATE INDEX IF NOT EXISTS idx_session_send_queue_session_user
188
+ ON session_send_queue(session_id, user_id, order_index ASC);
189
+
190
+ CREATE TABLE IF NOT EXISTS recent_files (
191
+ id TEXT PRIMARY KEY,
192
+ workspace_id TEXT NOT NULL,
193
+ user_id TEXT NOT NULL,
194
+ path TEXT NOT NULL,
195
+ last_opened_at TEXT NOT NULL,
196
+ pinned INTEGER NOT NULL DEFAULT 0 CHECK (pinned IN (0, 1)),
197
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id),
198
+ FOREIGN KEY (user_id) REFERENCES auth_users(id),
199
+ UNIQUE (workspace_id, user_id, path)
200
+ );
201
+
202
+ CREATE INDEX IF NOT EXISTS idx_recent_files_workspace_user
203
+ ON recent_files(workspace_id, user_id, last_opened_at DESC);
204
+
205
+ CREATE TABLE IF NOT EXISTS user_quick_phrase_preferences (
206
+ user_id TEXT PRIMARY KEY,
207
+ phrases_json TEXT NOT NULL,
208
+ created_at TEXT NOT NULL,
209
+ updated_at TEXT NOT NULL,
210
+ FOREIGN KEY (user_id) REFERENCES auth_users(id)
211
+ );
212
+
213
+ CREATE TABLE IF NOT EXISTS session_file_context_bindings (
214
+ id TEXT PRIMARY KEY,
215
+ session_id TEXT NOT NULL,
216
+ workspace_id TEXT NOT NULL,
217
+ path TEXT NOT NULL,
218
+ display_name TEXT NOT NULL,
219
+ selected INTEGER NOT NULL DEFAULT 1 CHECK (selected IN (0, 1)),
220
+ pinned INTEGER NOT NULL DEFAULT 0 CHECK (pinned IN (0, 1)),
221
+ range_start INTEGER,
222
+ range_end INTEGER,
223
+ content_hash TEXT NOT NULL,
224
+ file_version TEXT NOT NULL,
225
+ attached_by TEXT NOT NULL,
226
+ attached_at TEXT NOT NULL,
227
+ FOREIGN KEY (session_id) REFERENCES session_bindings(session_id),
228
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id),
229
+ FOREIGN KEY (attached_by) REFERENCES auth_users(id)
230
+ );
231
+
232
+ CREATE INDEX IF NOT EXISTS idx_session_file_context_bindings_session
233
+ ON session_file_context_bindings(session_id, attached_at DESC);
234
+
235
+ -- 会话同步的硬边界:这里不保存 provider 原始历史正文。
236
+ -- 允许保存项目内待发送队列正文,因为它属于本项目的发送控制面,不属于 provider 原始会话镜像。
237
+
238
+ CREATE TABLE IF NOT EXISTS terminal_instances (
239
+ id TEXT PRIMARY KEY,
240
+ workspace_id TEXT NOT NULL,
241
+ name TEXT NOT NULL,
242
+ cwd TEXT NOT NULL,
243
+ shell TEXT NOT NULL,
244
+ runtime_type TEXT NOT NULL CHECK (
245
+ runtime_type IN ('embedded-pty', 'tmux', 'conpty-powershell', 'conpty-cmd', 'conpty-git-bash')
246
+ ),
247
+ runtime_session_id TEXT NOT NULL,
248
+ attach_target TEXT NOT NULL,
249
+ status TEXT NOT NULL CHECK (status IN ('creating', 'running', 'closed', 'error')),
250
+ process_id INTEGER,
251
+ created_by_user_id TEXT NOT NULL,
252
+ created_at TEXT NOT NULL,
253
+ last_active_at TEXT NOT NULL,
254
+ closed_at TEXT,
255
+ exit_code INTEGER,
256
+ status_detail TEXT,
257
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id),
258
+ FOREIGN KEY (created_by_user_id) REFERENCES auth_users(id)
259
+ );
260
+
261
+ CREATE INDEX IF NOT EXISTS idx_terminal_instances_workspace_id
262
+ ON terminal_instances(workspace_id);
263
+ CREATE INDEX IF NOT EXISTS idx_terminal_instances_last_active_at
264
+ ON terminal_instances(last_active_at DESC);
265
+
266
+ CREATE TABLE IF NOT EXISTS terminal_runtime_sessions (
267
+ id TEXT PRIMARY KEY,
268
+ terminal_id TEXT NOT NULL,
269
+ runtime_type TEXT NOT NULL CHECK (
270
+ runtime_type IN ('embedded-pty', 'tmux', 'conpty-powershell', 'conpty-cmd', 'conpty-git-bash')
271
+ ),
272
+ session_key TEXT NOT NULL,
273
+ attach_target TEXT NOT NULL,
274
+ host_instance_id TEXT,
275
+ agent_pid INTEGER,
276
+ shell_pid INTEGER,
277
+ state TEXT NOT NULL CHECK (state IN ('starting', 'running', 'lost', 'closed', 'error')),
278
+ last_heartbeat_at TEXT,
279
+ last_checked_at TEXT,
280
+ last_error_detail TEXT,
281
+ created_at TEXT NOT NULL,
282
+ updated_at TEXT NOT NULL,
283
+ FOREIGN KEY (terminal_id) REFERENCES terminal_instances(id)
284
+ );
285
+
286
+ CREATE INDEX IF NOT EXISTS idx_terminal_runtime_sessions_terminal_id
287
+ ON terminal_runtime_sessions(terminal_id);
288
+ CREATE INDEX IF NOT EXISTS idx_terminal_runtime_sessions_state
289
+ ON terminal_runtime_sessions(state, updated_at DESC);
290
+
291
+ CREATE TABLE IF NOT EXISTS terminal_log_files (
292
+ id TEXT PRIMARY KEY,
293
+ terminal_id TEXT NOT NULL,
294
+ relative_path TEXT NOT NULL,
295
+ status TEXT NOT NULL CHECK (status IN ('active', 'sealed', 'deleting')),
296
+ start_seq INTEGER NOT NULL,
297
+ end_seq INTEGER,
298
+ size_bytes INTEGER NOT NULL DEFAULT 0,
299
+ created_at TEXT NOT NULL,
300
+ updated_at TEXT NOT NULL,
301
+ FOREIGN KEY (terminal_id) REFERENCES terminal_instances(id) ON DELETE CASCADE
302
+ );
303
+
304
+ CREATE INDEX IF NOT EXISTS idx_terminal_log_files_terminal_id
305
+ ON terminal_log_files(terminal_id, created_at DESC);
306
+ CREATE INDEX IF NOT EXISTS idx_terminal_log_files_terminal_status
307
+ ON terminal_log_files(terminal_id, status, updated_at DESC);
308
+
309
+ CREATE TABLE IF NOT EXISTS terminal_log_segments (
310
+ id TEXT PRIMARY KEY,
311
+ terminal_id TEXT NOT NULL,
312
+ file_id TEXT NOT NULL,
313
+ start_seq INTEGER NOT NULL,
314
+ end_seq INTEGER NOT NULL,
315
+ start_offset INTEGER NOT NULL,
316
+ end_offset INTEGER NOT NULL,
317
+ byte_length INTEGER NOT NULL,
318
+ created_at TEXT NOT NULL,
319
+ FOREIGN KEY (terminal_id) REFERENCES terminal_instances(id) ON DELETE CASCADE,
320
+ FOREIGN KEY (file_id) REFERENCES terminal_log_files(id) ON DELETE CASCADE
321
+ );
322
+
323
+ CREATE INDEX IF NOT EXISTS idx_terminal_log_segments_terminal_id_start_seq
324
+ ON terminal_log_segments(terminal_id, start_seq DESC);
325
+ CREATE INDEX IF NOT EXISTS idx_terminal_log_segments_file_id
326
+ ON terminal_log_segments(file_id, start_offset ASC);
327
+
328
+ CREATE TABLE IF NOT EXISTS terminal_command_templates (
329
+ id TEXT PRIMARY KEY,
330
+ workspace_id TEXT NOT NULL,
331
+ name TEXT NOT NULL,
332
+ cwd TEXT NOT NULL,
333
+ command TEXT NOT NULL,
334
+ args_json TEXT NOT NULL,
335
+ env_json TEXT NOT NULL,
336
+ port INTEGER,
337
+ runtime_type TEXT CHECK (
338
+ runtime_type IS NULL OR runtime_type IN (
339
+ 'embedded-pty',
340
+ 'tmux',
341
+ 'conpty-powershell',
342
+ 'conpty-cmd',
343
+ 'conpty-git-bash'
344
+ )
345
+ ),
346
+ created_at TEXT NOT NULL,
347
+ updated_at TEXT NOT NULL,
348
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id),
349
+ UNIQUE (workspace_id, name)
350
+ );
351
+
352
+ CREATE INDEX IF NOT EXISTS idx_terminal_templates_workspace_id
353
+ ON terminal_command_templates(workspace_id);
354
+
355
+ INSERT INTO bootstrap_state (id, initialized)
356
+ VALUES ('default', 0)
357
+ ON CONFLICT(id) DO NOTHING;
@@ -0,0 +1,306 @@
1
+ import type { ProviderId, SyncStatus } from "@codingns/session-sync-core";
2
+ export type SessionRunningState = "idle" | "starting" | "running" | "completed" | "interrupted" | "failed";
3
+ export type SessionActivityState = "idle" | "running" | "completed_unread";
4
+ export type SessionActivitySource = "none" | "runtime" | "inferred";
5
+ export interface BootstrapState {
6
+ id: "default";
7
+ initialized: boolean;
8
+ initializedAt: string | null;
9
+ initializedByUserId: string | null;
10
+ }
11
+ export interface AuthUser {
12
+ id: string;
13
+ username: string;
14
+ passwordHash: string;
15
+ role: "admin";
16
+ createdAt: string;
17
+ updatedAt: string;
18
+ }
19
+ export interface AuthTokenRecord {
20
+ id: string;
21
+ userId: string;
22
+ tokenType: "access" | "refresh";
23
+ tokenHash: string;
24
+ expiresAt: string;
25
+ revokedAt: string | null;
26
+ createdAt: string;
27
+ }
28
+ export interface Workspace {
29
+ id: string;
30
+ name: string;
31
+ path: string;
32
+ repoRoot: string | null;
33
+ favorite: boolean;
34
+ createdAt: string;
35
+ updatedAt: string;
36
+ removedAt?: string | null;
37
+ }
38
+ export interface SessionBinding {
39
+ sessionId: string;
40
+ workspaceId: string;
41
+ provider: ProviderId;
42
+ providerSessionId: string;
43
+ rawStoreRef: string;
44
+ createdAt: string;
45
+ updatedAt: string;
46
+ }
47
+ export interface SessionIndexRecord {
48
+ sessionId: string;
49
+ workspaceId: string;
50
+ provider: ProviderId;
51
+ parentSessionId?: string | null;
52
+ isSubagent?: boolean;
53
+ subagentLabel?: string | null;
54
+ title: string;
55
+ messageCount: number;
56
+ isArchived: boolean;
57
+ lastMessageAt: string | null;
58
+ createdAt: string;
59
+ updatedAt: string;
60
+ }
61
+ export interface SessionChangedFileRecord {
62
+ sessionId: string;
63
+ workspaceId: string;
64
+ path: string;
65
+ firstDetectedAt: string;
66
+ lastDetectedAt: string;
67
+ lastToolName: string | null;
68
+ }
69
+ export interface SessionChangedFileIndexState {
70
+ sessionId: string;
71
+ indexedAt: string;
72
+ updatedAt: string;
73
+ }
74
+ export interface SessionStatusSnapshot {
75
+ sessionId: string;
76
+ syncStatus: SyncStatus;
77
+ syncCursor: string | null;
78
+ lastSyncAt: string | null;
79
+ lastErrorCode: string | null;
80
+ lastErrorDetail: string | null;
81
+ resumedAt: string | null;
82
+ updatedAt: string;
83
+ }
84
+ export interface SessionStateRecord {
85
+ sessionId: string;
86
+ userId: string;
87
+ runningState: SessionRunningState;
88
+ activitySource: SessionActivitySource;
89
+ favorite: boolean;
90
+ lastEventAt: string | null;
91
+ completedAt: string | null;
92
+ lastSeenAt: string | null;
93
+ updatedAt: string;
94
+ }
95
+ export interface SessionMessageAttachmentRecord {
96
+ id: string;
97
+ sessionId: string;
98
+ clientRequestId: string;
99
+ messageId: string | null;
100
+ kind: "image";
101
+ fileName: string;
102
+ mimeType: string;
103
+ fileSize: number;
104
+ storagePath: string;
105
+ createdAt: string;
106
+ }
107
+ export type SessionSendQueueStatus = "queued" | "dispatching" | "failed";
108
+ export interface SessionSendQueueItemRecord {
109
+ id: string;
110
+ sessionId: string;
111
+ userId: string;
112
+ content: string;
113
+ clientRequestId: string | null;
114
+ model: string | null;
115
+ reasoningLevel: string | null;
116
+ permissionMode: string | null;
117
+ status: SessionSendQueueStatus;
118
+ orderIndex: number;
119
+ errorDetail: string | null;
120
+ createdAt: string;
121
+ updatedAt: string;
122
+ dispatchedAt: string | null;
123
+ }
124
+ export interface SessionListItem {
125
+ sessionId: string;
126
+ workspaceId: string;
127
+ provider: ProviderId;
128
+ providerSessionId: string;
129
+ rawStoreRef: string;
130
+ parentSessionId?: string | null;
131
+ isSubagent?: boolean;
132
+ subagentLabel?: string | null;
133
+ isArchived: boolean;
134
+ isFavorite: boolean;
135
+ title: string;
136
+ messageCount: number;
137
+ lastMessageAt: string | null;
138
+ createdAt: string;
139
+ updatedAt: string;
140
+ syncStatus: SyncStatus | null;
141
+ syncCursor: string | null;
142
+ lastSyncAt: string | null;
143
+ lastErrorCode: string | null;
144
+ lastErrorDetail: string | null;
145
+ resumedAt: string | null;
146
+ runningState: SessionRunningState | null;
147
+ activitySource: SessionActivitySource;
148
+ lastEventAt: string | null;
149
+ completedAt: string | null;
150
+ lastSeenAt: string | null;
151
+ activityState: SessionActivityState;
152
+ }
153
+ export interface FileNode {
154
+ path: string;
155
+ name: string;
156
+ kind: "file" | "directory";
157
+ size: number | null;
158
+ updatedAt: string | null;
159
+ }
160
+ export interface FileSnapshot {
161
+ workspaceId: string;
162
+ path: string;
163
+ content: string;
164
+ encoding: "utf-8";
165
+ version: string;
166
+ size: number;
167
+ updatedAt: string;
168
+ }
169
+ export interface FileSearchItem {
170
+ path: string;
171
+ name: string;
172
+ kind: "file" | "directory";
173
+ size: number | null;
174
+ updatedAt: string | null;
175
+ }
176
+ export interface RecentFileRecord {
177
+ id: string;
178
+ workspaceId: string;
179
+ userId: string;
180
+ path: string;
181
+ lastOpenedAt: string;
182
+ pinned: boolean;
183
+ }
184
+ export interface UserQuickPhraseRecord {
185
+ id: string;
186
+ text: string;
187
+ }
188
+ export interface UserQuickPhrasePreferenceRecord {
189
+ userId: string;
190
+ phrases: UserQuickPhraseRecord[];
191
+ createdAt: string;
192
+ updatedAt: string;
193
+ }
194
+ export interface FileContextBinding {
195
+ id: string;
196
+ sessionId: string;
197
+ workspaceId: string;
198
+ path: string;
199
+ displayName: string;
200
+ selected: boolean;
201
+ pinned: boolean;
202
+ rangeStart: number | null;
203
+ rangeEnd: number | null;
204
+ contentHash: string;
205
+ fileVersion: string;
206
+ attachedBy: string;
207
+ attachedAt: string;
208
+ }
209
+ export type PersistentTerminalRuntimeType = "tmux" | "conpty-powershell" | "conpty-cmd" | "conpty-git-bash";
210
+ export type TerminalRuntimeType = PersistentTerminalRuntimeType | "embedded-pty";
211
+ export type TerminalStatus = "creating" | "running" | "closed" | "error";
212
+ export type TerminalRuntimeSessionState = "starting" | "running" | "lost" | "closed" | "error";
213
+ export interface TerminalInstance {
214
+ id: string;
215
+ workspaceId: string;
216
+ name: string;
217
+ cwd: string;
218
+ shell: string;
219
+ runtimeType: TerminalRuntimeType;
220
+ runtimeSessionId: string;
221
+ attachTarget: string;
222
+ status: TerminalStatus;
223
+ processId: number | null;
224
+ createdByUserId: string;
225
+ createdAt: string;
226
+ lastActiveAt: string;
227
+ closedAt: string | null;
228
+ exitCode: number | null;
229
+ statusDetail: string | null;
230
+ }
231
+ export interface TerminalRuntimeSession {
232
+ id: string;
233
+ terminalId: string;
234
+ runtimeType: TerminalRuntimeType;
235
+ sessionKey: string;
236
+ attachTarget: string;
237
+ hostInstanceId: string | null;
238
+ agentPid: number | null;
239
+ shellPid: number | null;
240
+ state: TerminalRuntimeSessionState;
241
+ lastHeartbeatAt: string | null;
242
+ lastCheckedAt: string | null;
243
+ lastErrorDetail: string | null;
244
+ createdAt: string;
245
+ updatedAt: string;
246
+ }
247
+ export type TerminalConnectionState = "connected" | "disconnected" | "reconnecting";
248
+ export interface TerminalConnection {
249
+ connectionId: string;
250
+ terminalId: string;
251
+ userId: string;
252
+ lastCursor: string | null;
253
+ state: TerminalConnectionState;
254
+ connectedAt: string;
255
+ }
256
+ export interface TerminalOutputChunk {
257
+ terminalId: string;
258
+ cursor: string;
259
+ stream: "stdout";
260
+ content: string;
261
+ timestamp: string;
262
+ }
263
+ export type TerminalLogFileStatus = "active" | "sealed" | "deleting";
264
+ export interface TerminalLogFile {
265
+ id: string;
266
+ terminalId: string;
267
+ relativePath: string;
268
+ status: TerminalLogFileStatus;
269
+ startSeq: number;
270
+ endSeq: number | null;
271
+ sizeBytes: number;
272
+ createdAt: string;
273
+ updatedAt: string;
274
+ }
275
+ export interface TerminalLogSegment {
276
+ id: string;
277
+ terminalId: string;
278
+ fileId: string;
279
+ startSeq: number;
280
+ endSeq: number;
281
+ startOffset: number;
282
+ endOffset: number;
283
+ byteLength: number;
284
+ createdAt: string;
285
+ }
286
+ export interface TerminalCommandTemplate {
287
+ id: string;
288
+ workspaceId: string;
289
+ name: string;
290
+ cwd: string;
291
+ command: string;
292
+ args: string[];
293
+ env: Record<string, string>;
294
+ port: number | null;
295
+ runtimeType: TerminalRuntimeType | null;
296
+ createdAt: string;
297
+ updatedAt: string;
298
+ }
299
+ export interface TerminalTemplateRuntimeStatus {
300
+ templateId: string;
301
+ port: number;
302
+ occupied: boolean;
303
+ processId: number | null;
304
+ processName: string | null;
305
+ processCommandLine: string | null;
306
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=domain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.js","sourceRoot":"","sources":["../../../src/types/domain.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ import type { WebSocket } from "ws";
2
+ import type { AuthContext } from "../modules/auth/auth-service.js";
3
+ import type { TerminalService } from "../modules/terminal/terminal-service.js";
4
+ interface TerminalSubscribeMessage {
5
+ type: "terminal.subscribe";
6
+ terminalId: string;
7
+ lastCursor?: string | null;
8
+ }
9
+ interface TerminalInputMessage {
10
+ type: "terminal.input";
11
+ terminalId: string;
12
+ content: string;
13
+ }
14
+ interface TerminalResizeMessage {
15
+ type: "terminal.resize";
16
+ terminalId: string;
17
+ cols: number;
18
+ rows: number;
19
+ }
20
+ type TerminalWsMessage = TerminalSubscribeMessage | TerminalInputMessage | TerminalResizeMessage;
21
+ export declare class TerminalWsHub {
22
+ private readonly terminalService;
23
+ private readonly clientSubscriptions;
24
+ constructor(terminalService: TerminalService);
25
+ handleMessage(client: WebSocket, payload: unknown, authContext: AuthContext): payload is TerminalWsMessage;
26
+ cleanupClient(client: WebSocket): void;
27
+ private subscribeTerminal;
28
+ private handleTerminalInput;
29
+ private handleTerminalResize;
30
+ private getClientSubscriptions;
31
+ }
32
+ export {};