@jingyi0605/codingns 0.7.4 → 0.8.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 (416) hide show
  1. package/README.md +6 -0
  2. package/bin/codingns.mjs +747 -28
  3. package/bin/office-mcp-server.mjs +620 -0
  4. package/dist/public/assets/{AdaptiveButlerPage-CgBX49t-.js → AdaptiveButlerPage-BsgVNRAa.js} +1 -1
  5. package/dist/public/assets/{App-tXOqoHNl.js → App-tPcbyRdS.js} +3 -3
  6. package/dist/public/assets/{BootstrapPage-DoRMz87R.js → BootstrapPage--MDOigQi.js} +1 -1
  7. package/dist/public/assets/{ConversationPage-DXR6Hp4O.js → ConversationPage-BBss5ED8.js} +6 -6
  8. package/dist/public/assets/{DesktopDetachPreviewPage-Cyk-ZYCk.js → DesktopDetachPreviewPage-CB8DoqwU.js} +1 -1
  9. package/dist/public/assets/{DesktopWindowPage-DNVNK3hs.js → DesktopWindowPage-GtIx5m8K.js} +1 -1
  10. package/dist/public/assets/FileContextPanel-BcM7AIT4.js +1 -0
  11. package/dist/public/assets/{GitSidebar-Cr3Z9OUI.js → GitSidebar-CMtkaxuI.js} +2 -2
  12. package/dist/public/assets/{MobileCreateSessionSheet-DMW0V6GJ.js → MobileCreateSessionSheet-CrFY41_8.js} +1 -1
  13. package/dist/public/assets/{MobileTopHeaderFrame-CkdnZ_MU.js → MobileTopHeaderFrame-DGVOzXyg.js} +1 -1
  14. package/dist/public/assets/{MobileWorkspaceSwitcherHeader-KIbqBYJN.js → MobileWorkspaceSwitcherHeader-DLkACTnQ.js} +1 -1
  15. package/dist/public/assets/{RelayConnectEntryPage-DIRBH3hw.js → RelayConnectEntryPage-0MPPjxtQ.js} +1 -1
  16. package/dist/public/assets/{ServerSettingsModal-C-9RxdWP.js → ServerSettingsModal-vgOhwus4.js} +1 -1
  17. package/dist/public/assets/{SessionIndexPage-bRlIydRA.js → SessionIndexPage-KK626Ra9.js} +1 -1
  18. package/dist/public/assets/{SettingsPage-CMEt4ua9.js → SettingsPage-B3edBJIo.js} +2 -2
  19. package/dist/public/assets/{TerminalManagerPanel-2bi9wVhT.js → TerminalManagerPanel-BxlhZp8c.js} +1 -1
  20. package/dist/public/assets/{TerminalPage-DayZz2Tf.js → TerminalPage-B6Rdhylx.js} +1 -1
  21. package/dist/public/assets/{TerminalRuntimeFallbackModal-DgwYcp-Y.js → TerminalRuntimeFallbackModal-BVLfrpSa.js} +1 -1
  22. package/dist/public/assets/{ToolFilesPage-YvnP_FXW.js → ToolFilesPage-N_gwwUjD.js} +1 -1
  23. package/dist/public/assets/{ToolGitPage-GMcQKtV9.js → ToolGitPage-DOcuuWM1.js} +1 -1
  24. package/dist/public/assets/{ToolProcessesPage-DFIQ7BCd.js → ToolProcessesPage-D-FfJ7Re.js} +1 -1
  25. package/dist/public/assets/{ToolsHomePage-CSilFzXR.js → ToolsHomePage-CHfPxd20.js} +1 -1
  26. package/dist/public/assets/{WorkbenchLandingPage-1VtToSz9.js → WorkbenchLandingPage-CTTnfovY.js} +1 -1
  27. package/dist/public/assets/WorkbenchLayout-CbpJg0g1.js +244 -0
  28. package/dist/public/assets/{WorkbenchModal-BWXYSXmC.js → WorkbenchModal-Bt_1fYmM.js} +1 -1
  29. package/dist/public/assets/WorkbenchShellRoute-B4XB8SwG.css +1 -0
  30. package/dist/public/assets/WorkbenchShellRoute-DyaMnPfS.js +1 -0
  31. package/dist/public/assets/{WorkspaceDebugDetailPage-Ux8_Q7la.js → WorkspaceDebugDetailPage-s7yuDIxR.js} +1 -1
  32. package/dist/public/assets/{WorkspaceDetailPage-B402p99m.js → WorkspaceDetailPage-Cf-gVpqK.js} +1 -1
  33. package/dist/public/assets/{WorkspaceHomePage-D2pob6HI.js → WorkspaceHomePage-COf6I8sT.js} +1 -1
  34. package/dist/public/assets/{client-runtime-manager-C5D76ewj.js → client-runtime-manager-DGdKvYzx.js} +1 -1
  35. package/dist/public/assets/file-tree-icon-BeHqeru9.js +590 -0
  36. package/dist/public/assets/index-CcaQt50x.css +1 -0
  37. package/dist/public/assets/index-CuzMc7q2.js +42 -0
  38. package/dist/public/assets/{login-direct-candidate-resolver-wXSaB0i7.js → login-direct-candidate-resolver-DEP_xCmR.js} +1 -1
  39. package/dist/public/assets/{model-switch-api-CPtou49j.js → model-switch-api-c6kcbBGm.js} +1 -1
  40. package/dist/public/assets/{preferences-service-CdaK7zA8.js → preferences-service-CV6Ih0BG.js} +1 -1
  41. package/dist/public/assets/{realtime-client-BjQazYsK.js → realtime-client-CRCx5xBt.js} +1 -1
  42. package/dist/public/assets/{relay-entry-BwE5nw0l.js → relay-entry-C751A-Sm.js} +1 -1
  43. package/dist/public/assets/{terminal-runtime-meta-C-Lbyx2i.js → terminal-runtime-meta-CRAVR-8G.js} +1 -1
  44. package/dist/public/assets/{useRegisteredDebugTemplates-BM7-c-gx.js → useRegisteredDebugTemplates-D6YtNS0r.js} +1 -1
  45. package/dist/public/index.html +2 -2
  46. package/dist/server/config/env.d.ts +3 -0
  47. package/dist/server/config/env.js +67 -1
  48. package/dist/server/config/env.js.map +1 -1
  49. package/dist/server/config/opencode-base-url-resolver.d.ts +3 -2
  50. package/dist/server/config/opencode-base-url-resolver.js +64 -24
  51. package/dist/server/config/opencode-base-url-resolver.js.map +1 -1
  52. package/dist/server/middlewares/auth-guard.js +4 -0
  53. package/dist/server/middlewares/auth-guard.js.map +1 -1
  54. package/dist/server/modules/assistant-capability/assistant-capability-controller.d.ts +168 -1
  55. package/dist/server/modules/assistant-capability/assistant-capability-controller.js +205 -4
  56. package/dist/server/modules/assistant-capability/assistant-capability-controller.js.map +1 -1
  57. package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +296 -2
  58. package/dist/server/modules/assistant-capability/assistant-capability-service.js +872 -3
  59. package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
  60. package/dist/server/modules/auth/auth-service.d.ts +21 -1
  61. package/dist/server/modules/auth/auth-service.js +64 -0
  62. package/dist/server/modules/auth/auth-service.js.map +1 -1
  63. package/dist/server/modules/browser-runtime/browser-profile-service.d.ts +26 -0
  64. package/dist/server/modules/browser-runtime/browser-profile-service.js +85 -0
  65. package/dist/server/modules/browser-runtime/browser-profile-service.js.map +1 -0
  66. package/dist/server/modules/browser-runtime/browser-runtime-controller.d.ts +69 -0
  67. package/dist/server/modules/browser-runtime/browser-runtime-controller.js +83 -0
  68. package/dist/server/modules/browser-runtime/browser-runtime-controller.js.map +1 -0
  69. package/dist/server/modules/browser-runtime/browser-runtime-service.d.ts +56 -0
  70. package/dist/server/modules/browser-runtime/browser-runtime-service.js +215 -0
  71. package/dist/server/modules/browser-runtime/browser-runtime-service.js.map +1 -0
  72. package/dist/server/modules/browser-runtime/browser-task-execution-support.d.ts +65 -0
  73. package/dist/server/modules/browser-runtime/browser-task-execution-support.js +432 -0
  74. package/dist/server/modules/browser-runtime/browser-task-execution-support.js.map +1 -0
  75. package/dist/server/modules/browser-runtime/browser-task-executor-registry.d.ts +7 -0
  76. package/dist/server/modules/browser-runtime/browser-task-executor-registry.js +21 -0
  77. package/dist/server/modules/browser-runtime/browser-task-executor-registry.js.map +1 -0
  78. package/dist/server/modules/browser-runtime/browser-task-executor.d.ts +55 -0
  79. package/dist/server/modules/browser-runtime/browser-task-executor.js +2 -0
  80. package/dist/server/modules/browser-runtime/browser-task-executor.js.map +1 -0
  81. package/dist/server/modules/browser-runtime/browser-task-payload.d.ts +31 -0
  82. package/dist/server/modules/browser-runtime/browser-task-payload.js +55 -0
  83. package/dist/server/modules/browser-runtime/browser-task-payload.js.map +1 -0
  84. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.d.ts +19 -0
  85. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.js +219 -0
  86. package/dist/server/modules/browser-runtime/opencli-bridge-browser-executor.js.map +1 -0
  87. package/dist/server/modules/browser-runtime/opencli-browser-bridge-service.d.ts +15 -0
  88. package/dist/server/modules/browser-runtime/opencli-browser-bridge-service.js +33 -0
  89. package/dist/server/modules/browser-runtime/opencli-browser-bridge-service.js.map +1 -0
  90. package/dist/server/modules/browser-runtime/playwright-browser-executor.d.ts +16 -0
  91. package/dist/server/modules/browser-runtime/playwright-browser-executor.js +272 -0
  92. package/dist/server/modules/browser-runtime/playwright-browser-executor.js.map +1 -0
  93. package/dist/server/modules/butler/butler-auth-service.js +4 -0
  94. package/dist/server/modules/butler/butler-auth-service.js.map +1 -1
  95. package/dist/server/modules/butler/butler-inbox-instruction-adapter.js +1 -0
  96. package/dist/server/modules/butler/butler-inbox-instruction-adapter.js.map +1 -1
  97. package/dist/server/modules/butler/butler-session-summary-service.d.ts +1 -0
  98. package/dist/server/modules/butler/butler-session-summary-service.js +5 -3
  99. package/dist/server/modules/butler/butler-session-summary-service.js.map +1 -1
  100. package/dist/server/modules/butler/butler-workspace-context.js +23 -0
  101. package/dist/server/modules/butler/butler-workspace-context.js.map +1 -1
  102. package/dist/server/modules/debug-target/debug-target-service.d.ts +2 -0
  103. package/dist/server/modules/debug-target/debug-target-service.js +14 -0
  104. package/dist/server/modules/debug-target/debug-target-service.js.map +1 -1
  105. package/dist/server/modules/document-runtime/document-docx-fallback-renderer.py +139 -0
  106. package/dist/server/modules/document-runtime/document-export-executor.d.ts +50 -0
  107. package/dist/server/modules/document-runtime/document-export-executor.js +827 -0
  108. package/dist/server/modules/document-runtime/document-export-executor.js.map +1 -0
  109. package/dist/server/modules/document-runtime/document-runtime-controller.d.ts +127 -0
  110. package/dist/server/modules/document-runtime/document-runtime-controller.js +131 -0
  111. package/dist/server/modules/document-runtime/document-runtime-controller.js.map +1 -0
  112. package/dist/server/modules/document-runtime/document-runtime-service.d.ts +125 -0
  113. package/dist/server/modules/document-runtime/document-runtime-service.js +706 -0
  114. package/dist/server/modules/document-runtime/document-runtime-service.js.map +1 -0
  115. package/dist/server/modules/office/office-controller.d.ts +77 -0
  116. package/dist/server/modules/office/office-controller.js +174 -0
  117. package/dist/server/modules/office/office-controller.js.map +1 -0
  118. package/dist/server/modules/office/office-preview-link-service.d.ts +27 -0
  119. package/dist/server/modules/office/office-preview-link-service.js +121 -0
  120. package/dist/server/modules/office/office-preview-link-service.js.map +1 -0
  121. package/dist/server/modules/office/office-service.d.ts +67 -0
  122. package/dist/server/modules/office/office-service.js +359 -0
  123. package/dist/server/modules/office/office-service.js.map +1 -0
  124. package/dist/server/modules/opencli/opencli-bridge-skill-service.js +38 -14
  125. package/dist/server/modules/opencli/opencli-bridge-skill-service.js.map +1 -1
  126. package/dist/server/modules/opencli/opencli-install-discovery.d.ts +4 -0
  127. package/dist/server/modules/opencli/opencli-install-discovery.js +94 -0
  128. package/dist/server/modules/opencli/opencli-install-discovery.js.map +1 -1
  129. package/dist/server/modules/opencli/opencli-runtime-builder.js +29 -0
  130. package/dist/server/modules/opencli/opencli-runtime-builder.js.map +1 -1
  131. package/dist/server/modules/opencli/opencli-runtime-guard.d.ts +2 -0
  132. package/dist/server/modules/opencli/opencli-runtime-guard.js +5 -0
  133. package/dist/server/modules/opencli/opencli-runtime-guard.js.map +1 -0
  134. package/dist/server/modules/ops-runtime/ops-runtime-controller.d.ts +70 -0
  135. package/dist/server/modules/ops-runtime/ops-runtime-controller.js +83 -0
  136. package/dist/server/modules/ops-runtime/ops-runtime-controller.js.map +1 -0
  137. package/dist/server/modules/ops-runtime/ops-runtime-service.d.ts +80 -0
  138. package/dist/server/modules/ops-runtime/ops-runtime-service.js +327 -0
  139. package/dist/server/modules/ops-runtime/ops-runtime-service.js.map +1 -0
  140. package/dist/server/modules/ops-runtime/ssh-ops-executor.d.ts +41 -0
  141. package/dist/server/modules/ops-runtime/ssh-ops-executor.js +478 -0
  142. package/dist/server/modules/ops-runtime/ssh-ops-executor.js.map +1 -0
  143. package/dist/server/modules/presentation/presentation-controller.d.ts +22 -0
  144. package/dist/server/modules/presentation/presentation-controller.js +59 -0
  145. package/dist/server/modules/presentation/presentation-controller.js.map +1 -0
  146. package/dist/server/modules/presentation/presentation-export-task-service.d.ts +24 -0
  147. package/dist/server/modules/presentation/presentation-export-task-service.js +137 -0
  148. package/dist/server/modules/presentation/presentation-export-task-service.js.map +1 -0
  149. package/dist/server/modules/presentation/presentation-export-types.d.ts +12 -0
  150. package/dist/server/modules/presentation/presentation-export-types.js +2 -0
  151. package/dist/server/modules/presentation/presentation-export-types.js.map +1 -0
  152. package/dist/server/modules/presentation/presentation-pdf-export-service.d.ts +20 -0
  153. package/dist/server/modules/presentation/presentation-pdf-export-service.js +29 -0
  154. package/dist/server/modules/presentation/presentation-pdf-export-service.js.map +1 -0
  155. package/dist/server/modules/presentation/presentation-pptx-export-service.d.ts +20 -0
  156. package/dist/server/modules/presentation/presentation-pptx-export-service.js +64 -0
  157. package/dist/server/modules/presentation/presentation-pptx-export-service.js.map +1 -0
  158. package/dist/server/modules/presentation/presentation-renderer.d.ts +21 -0
  159. package/dist/server/modules/presentation/presentation-renderer.js +208 -0
  160. package/dist/server/modules/presentation/presentation-renderer.js.map +1 -0
  161. package/dist/server/modules/relay-tunnel/relay-tunnel-gateway-service.js +3 -3
  162. package/dist/server/modules/relay-tunnel/relay-tunnel-gateway-service.js.map +1 -1
  163. package/dist/server/modules/relay-tunnel/relay-tunnel-service.js +6 -1
  164. package/dist/server/modules/relay-tunnel/relay-tunnel-service.js.map +1 -1
  165. package/dist/server/modules/sessions/codex-app-server-helper-process.js +2 -1
  166. package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -1
  167. package/dist/server/modules/sessions/session-controller.d.ts +1 -0
  168. package/dist/server/modules/sessions/session-controller.js +59 -4
  169. package/dist/server/modules/sessions/session-controller.js.map +1 -1
  170. package/dist/server/modules/sessions/session-history-service.js +17 -5
  171. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  172. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +5 -1
  173. package/dist/server/modules/sessions/session-live-runtime-service.js +86 -8
  174. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  175. package/dist/server/modules/sessions/session-provider-config-service.d.ts +25 -1
  176. package/dist/server/modules/sessions/session-provider-config-service.js +54 -5
  177. package/dist/server/modules/sessions/session-provider-config-service.js.map +1 -1
  178. package/dist/server/modules/sessions/workspace-office-mcp-config.d.ts +14 -0
  179. package/dist/server/modules/sessions/workspace-office-mcp-config.js +54 -0
  180. package/dist/server/modules/sessions/workspace-office-mcp-config.js.map +1 -0
  181. package/dist/server/modules/sessions/workspace-session-auth-service.d.ts +27 -0
  182. package/dist/server/modules/sessions/workspace-session-auth-service.js +109 -0
  183. package/dist/server/modules/sessions/workspace-session-auth-service.js.map +1 -0
  184. package/dist/server/modules/sessions/workspace-session-runtime-context-service.d.ts +50 -0
  185. package/dist/server/modules/sessions/workspace-session-runtime-context-service.js +332 -0
  186. package/dist/server/modules/sessions/workspace-session-runtime-context-service.js.map +1 -0
  187. package/dist/server/modules/skills/assistant-runtime-skill-catalog.js +5 -0
  188. package/dist/server/modules/skills/assistant-runtime-skill-catalog.js.map +1 -1
  189. package/dist/server/modules/skills/builtin-skills/codingns-workspace-session/SKILL.md +67 -0
  190. package/dist/server/modules/skills/builtin-skills/codingns-workspace-session/agents/openai.yaml +4 -0
  191. package/dist/server/modules/skills/builtin-skills/codingns-workspace-session/references/cli-workflow.md +133 -0
  192. package/dist/server/modules/skills/skill-controller.d.ts +7 -0
  193. package/dist/server/modules/skills/skill-controller.js +7 -0
  194. package/dist/server/modules/skills/skill-controller.js.map +1 -1
  195. package/dist/server/modules/skills/skill-manager-service.d.ts +61 -0
  196. package/dist/server/modules/skills/skill-manager-service.js +218 -0
  197. package/dist/server/modules/skills/skill-manager-service.js.map +1 -1
  198. package/dist/server/modules/skills/skill-name-policy.js +2 -1
  199. package/dist/server/modules/skills/skill-name-policy.js.map +1 -1
  200. package/dist/server/modules/tasks/task-helper-client.d.ts +1 -0
  201. package/dist/server/modules/tasks/task-helper-client.js +45 -9
  202. package/dist/server/modules/tasks/task-helper-client.js.map +1 -1
  203. package/dist/server/modules/tasks/task-types.d.ts +5 -0
  204. package/dist/server/modules/tasks/task-types.js +6 -1
  205. package/dist/server/modules/tasks/task-types.js.map +1 -1
  206. package/dist/server/modules/terminal/runtime/conpty-session-agent-process.js +2 -1
  207. package/dist/server/modules/terminal/runtime/conpty-session-agent-process.js.map +1 -1
  208. package/dist/server/modules/terminal/runtime/node-pty-loader.d.ts +5 -0
  209. package/dist/server/modules/terminal/runtime/node-pty-loader.js +68 -0
  210. package/dist/server/modules/terminal/runtime/node-pty-loader.js.map +1 -0
  211. package/dist/server/modules/terminal/runtime/pty-broker-agent-process.js +2 -1
  212. package/dist/server/modules/terminal/runtime/pty-broker-agent-process.js.map +1 -1
  213. package/dist/server/modules/terminal/runtime/pty-host-attachment-manager.js +6 -9
  214. package/dist/server/modules/terminal/runtime/pty-host-attachment-manager.js.map +1 -1
  215. package/dist/server/modules/terminal/runtime/pty-runtime-manager.js +6 -9
  216. package/dist/server/modules/terminal/runtime/pty-runtime-manager.js.map +1 -1
  217. package/dist/server/routes/assistant.d.ts +2 -1
  218. package/dist/server/routes/assistant.js +20 -1
  219. package/dist/server/routes/assistant.js.map +1 -1
  220. package/dist/server/routes/browser-runtime.d.ts +3 -0
  221. package/dist/server/routes/browser-runtime.js +14 -0
  222. package/dist/server/routes/browser-runtime.js.map +1 -0
  223. package/dist/server/routes/document-runtime.d.ts +3 -0
  224. package/dist/server/routes/document-runtime.js +18 -0
  225. package/dist/server/routes/document-runtime.js.map +1 -0
  226. package/dist/server/routes/office.d.ts +3 -0
  227. package/dist/server/routes/office.js +16 -0
  228. package/dist/server/routes/office.js.map +1 -0
  229. package/dist/server/routes/ops-runtime.d.ts +3 -0
  230. package/dist/server/routes/ops-runtime.js +13 -0
  231. package/dist/server/routes/ops-runtime.js.map +1 -0
  232. package/dist/server/routes/presentation.d.ts +3 -0
  233. package/dist/server/routes/presentation.js +5 -0
  234. package/dist/server/routes/presentation.js.map +1 -0
  235. package/dist/server/routes/skills.js +1 -0
  236. package/dist/server/routes/skills.js.map +1 -1
  237. package/dist/server/server/create-server.d.ts +36 -0
  238. package/dist/server/server/create-server.js +215 -4
  239. package/dist/server/server/create-server.js.map +1 -1
  240. package/dist/server/server/release-manifest-sync.d.ts +1 -0
  241. package/dist/server/server/release-manifest-sync.js +2 -2
  242. package/dist/server/server/release-manifest-sync.js.map +1 -1
  243. package/dist/server/server/start-host.js +1 -1
  244. package/dist/server/server/start-host.js.map +1 -1
  245. package/dist/server/storage/repositories/auth-token-repository.js +22 -6
  246. package/dist/server/storage/repositories/auth-token-repository.js.map +1 -1
  247. package/dist/server/storage/repositories/browser-profile-repository.d.ts +18 -0
  248. package/dist/server/storage/repositories/browser-profile-repository.js +134 -0
  249. package/dist/server/storage/repositories/browser-profile-repository.js.map +1 -0
  250. package/dist/server/storage/repositories/document-comment-repository.d.ts +10 -0
  251. package/dist/server/storage/repositories/document-comment-repository.js +118 -0
  252. package/dist/server/storage/repositories/document-comment-repository.js.map +1 -0
  253. package/dist/server/storage/repositories/document-repository.d.ts +16 -0
  254. package/dist/server/storage/repositories/document-repository.js +109 -0
  255. package/dist/server/storage/repositories/document-repository.js.map +1 -0
  256. package/dist/server/storage/repositories/document-revision-repository.d.ts +10 -0
  257. package/dist/server/storage/repositories/document-revision-repository.js +79 -0
  258. package/dist/server/storage/repositories/document-revision-repository.js.map +1 -0
  259. package/dist/server/storage/repositories/document-template-repository.d.ts +13 -0
  260. package/dist/server/storage/repositories/document-template-repository.js +244 -0
  261. package/dist/server/storage/repositories/document-template-repository.js.map +1 -0
  262. package/dist/server/storage/repositories/office-approval-repository.d.ts +11 -0
  263. package/dist/server/storage/repositories/office-approval-repository.js +109 -0
  264. package/dist/server/storage/repositories/office-approval-repository.js.map +1 -0
  265. package/dist/server/storage/repositories/office-artifact-repository.d.ts +10 -0
  266. package/dist/server/storage/repositories/office-artifact-repository.js +89 -0
  267. package/dist/server/storage/repositories/office-artifact-repository.js.map +1 -0
  268. package/dist/server/storage/repositories/office-audit-event-repository.d.ts +8 -0
  269. package/dist/server/storage/repositories/office-audit-event-repository.js +54 -0
  270. package/dist/server/storage/repositories/office-audit-event-repository.js.map +1 -0
  271. package/dist/server/storage/repositories/office-connector-repository.d.ts +10 -0
  272. package/dist/server/storage/repositories/office-connector-repository.js +97 -0
  273. package/dist/server/storage/repositories/office-connector-repository.js.map +1 -0
  274. package/dist/server/storage/repositories/office-receipt-repository.d.ts +8 -0
  275. package/dist/server/storage/repositories/office-receipt-repository.js +48 -0
  276. package/dist/server/storage/repositories/office-receipt-repository.js.map +1 -0
  277. package/dist/server/storage/repositories/office-rollback-record-repository.d.ts +8 -0
  278. package/dist/server/storage/repositories/office-rollback-record-repository.js +60 -0
  279. package/dist/server/storage/repositories/office-rollback-record-repository.js.map +1 -0
  280. package/dist/server/storage/repositories/office-task-repository.d.ts +19 -0
  281. package/dist/server/storage/repositories/office-task-repository.js +199 -0
  282. package/dist/server/storage/repositories/office-task-repository.js.map +1 -0
  283. package/dist/server/storage/repositories/office-task-step-repository.d.ts +10 -0
  284. package/dist/server/storage/repositories/office-task-step-repository.js +110 -0
  285. package/dist/server/storage/repositories/office-task-step-repository.js.map +1 -0
  286. package/dist/server/storage/repositories/ops-target-repository.d.ts +16 -0
  287. package/dist/server/storage/repositories/ops-target-repository.js +119 -0
  288. package/dist/server/storage/repositories/ops-target-repository.js.map +1 -0
  289. package/dist/server/storage/repositories/session-binding-repository.d.ts +4 -0
  290. package/dist/server/storage/repositories/session-binding-repository.js +70 -69
  291. package/dist/server/storage/repositories/session-binding-repository.js.map +1 -1
  292. package/dist/server/storage/repositories/session-changed-file-repository.d.ts +6 -0
  293. package/dist/server/storage/repositories/session-changed-file-repository.js +44 -43
  294. package/dist/server/storage/repositories/session-changed-file-repository.js.map +1 -1
  295. package/dist/server/storage/repositories/session-fork-repository.d.ts +2 -0
  296. package/dist/server/storage/repositories/session-fork-repository.js +42 -41
  297. package/dist/server/storage/repositories/session-fork-repository.js.map +1 -1
  298. package/dist/server/storage/repositories/session-index-repository.d.ts +5 -0
  299. package/dist/server/storage/repositories/session-index-repository.js +153 -152
  300. package/dist/server/storage/repositories/session-index-repository.js.map +1 -1
  301. package/dist/server/storage/repositories/session-message-attachment-repository.d.ts +7 -0
  302. package/dist/server/storage/repositories/session-message-attachment-repository.js +91 -90
  303. package/dist/server/storage/repositories/session-message-attachment-repository.js.map +1 -1
  304. package/dist/server/storage/repositories/session-message-origin-repository.d.ts +2 -0
  305. package/dist/server/storage/repositories/session-message-origin-repository.js +25 -24
  306. package/dist/server/storage/repositories/session-message-origin-repository.js.map +1 -1
  307. package/dist/server/storage/repositories/session-state-repository.d.ts +2 -0
  308. package/dist/server/storage/repositories/session-state-repository.js +35 -34
  309. package/dist/server/storage/repositories/session-state-repository.js.map +1 -1
  310. package/dist/server/storage/repositories/session-status-snapshot-repository.d.ts +2 -0
  311. package/dist/server/storage/repositories/session-status-snapshot-repository.js +25 -24
  312. package/dist/server/storage/repositories/session-status-snapshot-repository.js.map +1 -1
  313. package/dist/server/storage/sqlite/client.js +123 -1
  314. package/dist/server/storage/sqlite/client.js.map +1 -1
  315. package/dist/server/storage/sqlite/schema.sql +300 -1
  316. package/dist/server/types/domain.d.ts +205 -1
  317. package/package.json +14 -7
  318. package/scripts/postinstall.mjs +159 -7
  319. package/dist/public/assets/FileContextPanel-xGTYDclT.js +0 -1
  320. package/dist/public/assets/WorkbenchLayout-DScHaza9.js +0 -244
  321. package/dist/public/assets/WorkbenchShellRoute-DN6LdrqC.js +0 -1
  322. package/dist/public/assets/WorkbenchShellRoute-DhQo_0vu.css +0 -1
  323. package/dist/public/assets/file-tree-icon-lfU9Ag77.js +0 -3
  324. package/dist/public/assets/index-CFYXCsyx.css +0 -1
  325. package/dist/public/assets/index-NGxWr8Ix.js +0 -42
  326. package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.d.ts +0 -42
  327. package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.js +0 -346
  328. package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.js.map +0 -1
  329. package/node_modules/@codingns/session-sync-core/dist/codex-resume-history.d.ts +0 -1
  330. package/node_modules/@codingns/session-sync-core/dist/codex-resume-history.js +0 -80
  331. package/node_modules/@codingns/session-sync-core/dist/codex-resume-history.js.map +0 -1
  332. package/node_modules/@codingns/session-sync-core/dist/index.d.ts +0 -18
  333. package/node_modules/@codingns/session-sync-core/dist/index.js +0 -19
  334. package/node_modules/@codingns/session-sync-core/dist/index.js.map +0 -1
  335. package/node_modules/@codingns/session-sync-core/dist/kimi-message-normalizer.d.ts +0 -18
  336. package/node_modules/@codingns/session-sync-core/dist/kimi-message-normalizer.js +0 -659
  337. package/node_modules/@codingns/session-sync-core/dist/kimi-message-normalizer.js.map +0 -1
  338. package/node_modules/@codingns/session-sync-core/dist/kimi-shared.d.ts +0 -11
  339. package/node_modules/@codingns/session-sync-core/dist/kimi-shared.js +0 -72
  340. package/node_modules/@codingns/session-sync-core/dist/kimi-shared.js.map +0 -1
  341. package/node_modules/@codingns/session-sync-core/dist/patch-builder.d.ts +0 -67
  342. package/node_modules/@codingns/session-sync-core/dist/patch-builder.js +0 -752
  343. package/node_modules/@codingns/session-sync-core/dist/patch-builder.js.map +0 -1
  344. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.d.ts +0 -48
  345. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js +0 -1184
  346. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js.map +0 -1
  347. package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.d.ts +0 -11
  348. package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js +0 -105
  349. package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js.map +0 -1
  350. package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +0 -84
  351. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +0 -2436
  352. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +0 -1
  353. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.d.ts +0 -47
  354. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js +0 -1480
  355. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js.map +0 -1
  356. package/node_modules/@codingns/session-sync-core/dist/providers/kimi.d.ts +0 -33
  357. package/node_modules/@codingns/session-sync-core/dist/providers/kimi.js +0 -684
  358. package/node_modules/@codingns/session-sync-core/dist/providers/kimi.js.map +0 -1
  359. package/node_modules/@codingns/session-sync-core/dist/providers/legna-code.d.ts +0 -9
  360. package/node_modules/@codingns/session-sync-core/dist/providers/legna-code.js +0 -17
  361. package/node_modules/@codingns/session-sync-core/dist/providers/legna-code.js.map +0 -1
  362. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-permissions.d.ts +0 -1
  363. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-permissions.js +0 -8
  364. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-permissions.js.map +0 -1
  365. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.d.ts +0 -48
  366. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.js +0 -373
  367. package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.js.map +0 -1
  368. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.d.ts +0 -61
  369. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js +0 -1191
  370. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js.map +0 -1
  371. package/node_modules/@codingns/session-sync-core/dist/providers/utils.d.ts +0 -27
  372. package/node_modules/@codingns/session-sync-core/dist/providers/utils.js +0 -415
  373. package/node_modules/@codingns/session-sync-core/dist/providers/utils.js.map +0 -1
  374. package/node_modules/@codingns/session-sync-core/dist/registry.d.ts +0 -7
  375. package/node_modules/@codingns/session-sync-core/dist/registry.js +0 -22
  376. package/node_modules/@codingns/session-sync-core/dist/registry.js.map +0 -1
  377. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.d.ts +0 -24
  378. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js +0 -329
  379. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js.map +0 -1
  380. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.d.ts +0 -30
  381. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js +0 -939
  382. package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js.map +0 -1
  383. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.d.ts +0 -1
  384. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js +0 -16
  385. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js.map +0 -1
  386. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.d.ts +0 -70
  387. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +0 -2571
  388. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +0 -1
  389. package/node_modules/@codingns/session-sync-core/dist/runtime/gemini-runtime.d.ts +0 -21
  390. package/node_modules/@codingns/session-sync-core/dist/runtime/gemini-runtime.js +0 -561
  391. package/node_modules/@codingns/session-sync-core/dist/runtime/gemini-runtime.js.map +0 -1
  392. package/node_modules/@codingns/session-sync-core/dist/runtime/kimi-runtime.d.ts +0 -38
  393. package/node_modules/@codingns/session-sync-core/dist/runtime/kimi-runtime.js +0 -911
  394. package/node_modules/@codingns/session-sync-core/dist/runtime/kimi-runtime.js.map +0 -1
  395. package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.d.ts +0 -15
  396. package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js +0 -16
  397. package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js.map +0 -1
  398. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.d.ts +0 -37
  399. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js +0 -963
  400. package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js.map +0 -1
  401. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.d.ts +0 -21
  402. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.js +0 -168
  403. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.js.map +0 -1
  404. package/node_modules/@codingns/session-sync-core/dist/runtime/types.d.ts +0 -152
  405. package/node_modules/@codingns/session-sync-core/dist/runtime/types.js +0 -2
  406. package/node_modules/@codingns/session-sync-core/dist/runtime/types.js.map +0 -1
  407. package/node_modules/@codingns/session-sync-core/dist/services.d.ts +0 -28
  408. package/node_modules/@codingns/session-sync-core/dist/services.js +0 -148
  409. package/node_modules/@codingns/session-sync-core/dist/services.js.map +0 -1
  410. package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.d.ts +0 -6
  411. package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.js +0 -9
  412. package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.js.map +0 -1
  413. package/node_modules/@codingns/session-sync-core/dist/types.d.ts +0 -198
  414. package/node_modules/@codingns/session-sync-core/dist/types.js +0 -2
  415. package/node_modules/@codingns/session-sync-core/dist/types.js.map +0 -1
  416. package/node_modules/@codingns/session-sync-core/package.json +0 -33
@@ -1,45 +1,98 @@
1
1
  export class SessionMessageAttachmentRepository {
2
2
  db;
3
+ listBySessionAndClientRequestStatement;
4
+ listBySessionStatement;
5
+ findBySessionAndIdStatement;
6
+ insertStatement;
7
+ bindMessageStatement;
8
+ listUnboundBySessionAndClientRequestStatement;
9
+ deleteBySessionStatement;
3
10
  constructor(db) {
4
11
  this.db = db;
12
+ this.listBySessionAndClientRequestStatement = this.db.prepare(`SELECT
13
+ id,
14
+ session_id,
15
+ client_request_id,
16
+ message_id,
17
+ kind,
18
+ file_name,
19
+ mime_type,
20
+ file_size,
21
+ storage_path,
22
+ created_at
23
+ FROM session_message_attachments
24
+ WHERE session_id = ?
25
+ AND client_request_id = ?
26
+ ORDER BY created_at ASC`);
27
+ this.listBySessionStatement = this.db.prepare(`SELECT
28
+ id,
29
+ session_id,
30
+ client_request_id,
31
+ message_id,
32
+ kind,
33
+ file_name,
34
+ mime_type,
35
+ file_size,
36
+ storage_path,
37
+ created_at
38
+ FROM session_message_attachments
39
+ WHERE session_id = ?
40
+ ORDER BY created_at ASC`);
41
+ this.findBySessionAndIdStatement = this.db.prepare(`SELECT
42
+ id,
43
+ session_id,
44
+ client_request_id,
45
+ message_id,
46
+ kind,
47
+ file_name,
48
+ mime_type,
49
+ file_size,
50
+ storage_path,
51
+ created_at
52
+ FROM session_message_attachments
53
+ WHERE session_id = ?
54
+ AND id = ?
55
+ LIMIT 1`);
56
+ this.insertStatement = this.db.prepare(`INSERT INTO session_message_attachments (
57
+ id,
58
+ session_id,
59
+ client_request_id,
60
+ message_id,
61
+ kind,
62
+ file_name,
63
+ mime_type,
64
+ file_size,
65
+ storage_path,
66
+ created_at
67
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
68
+ this.bindMessageStatement = this.db.prepare(`UPDATE session_message_attachments
69
+ SET message_id = ?
70
+ WHERE session_id = ?
71
+ AND client_request_id = ?`);
72
+ this.listUnboundBySessionAndClientRequestStatement = this.db.prepare(`SELECT
73
+ id,
74
+ session_id,
75
+ client_request_id,
76
+ message_id,
77
+ kind,
78
+ file_name,
79
+ mime_type,
80
+ file_size,
81
+ storage_path,
82
+ created_at
83
+ FROM session_message_attachments
84
+ WHERE session_id = ?
85
+ AND client_request_id = ?
86
+ AND message_id IS NULL
87
+ ORDER BY created_at ASC`);
88
+ this.deleteBySessionStatement = this.db.prepare("DELETE FROM session_message_attachments WHERE session_id = ?");
5
89
  }
6
90
  listBySessionAndClientRequest(sessionId, clientRequestId) {
7
- const rows = this.db
8
- .prepare(`SELECT
9
- id,
10
- session_id,
11
- client_request_id,
12
- message_id,
13
- kind,
14
- file_name,
15
- mime_type,
16
- file_size,
17
- storage_path,
18
- created_at
19
- FROM session_message_attachments
20
- WHERE session_id = ?
21
- AND client_request_id = ?
22
- ORDER BY created_at ASC`)
23
- .all(sessionId, clientRequestId);
91
+ const rows = this.listBySessionAndClientRequestStatement.all(sessionId, clientRequestId);
24
92
  return rows.map(mapSessionMessageAttachmentRow);
25
93
  }
26
94
  listBySession(sessionId) {
27
- const rows = this.db
28
- .prepare(`SELECT
29
- id,
30
- session_id,
31
- client_request_id,
32
- message_id,
33
- kind,
34
- file_name,
35
- mime_type,
36
- file_size,
37
- storage_path,
38
- created_at
39
- FROM session_message_attachments
40
- WHERE session_id = ?
41
- ORDER BY created_at ASC`)
42
- .all(sessionId);
95
+ const rows = this.listBySessionStatement.all(sessionId);
43
96
  return rows.map(mapSessionMessageAttachmentRow);
44
97
  }
45
98
  listBySessionAndMessageIds(sessionId, messageIds) {
@@ -67,68 +120,18 @@ export class SessionMessageAttachmentRepository {
67
120
  return rows.map(mapSessionMessageAttachmentRow);
68
121
  }
69
122
  findBySessionAndId(sessionId, attachmentId) {
70
- const row = this.db
71
- .prepare(`SELECT
72
- id,
73
- session_id,
74
- client_request_id,
75
- message_id,
76
- kind,
77
- file_name,
78
- mime_type,
79
- file_size,
80
- storage_path,
81
- created_at
82
- FROM session_message_attachments
83
- WHERE session_id = ?
84
- AND id = ?
85
- LIMIT 1`)
86
- .get(sessionId, attachmentId);
123
+ const row = this.findBySessionAndIdStatement.get(sessionId, attachmentId);
87
124
  return row ? mapSessionMessageAttachmentRow(row) : null;
88
125
  }
89
126
  insert(record) {
90
- this.db
91
- .prepare(`INSERT INTO session_message_attachments (
92
- id,
93
- session_id,
94
- client_request_id,
95
- message_id,
96
- kind,
97
- file_name,
98
- mime_type,
99
- file_size,
100
- storage_path,
101
- created_at
102
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
127
+ this.insertStatement
103
128
  .run(record.id, record.sessionId, record.clientRequestId, record.messageId, record.kind, record.fileName, record.mimeType, record.fileSize, record.storagePath, record.createdAt);
104
129
  }
105
130
  bindMessage(sessionId, clientRequestId, messageId) {
106
- this.db
107
- .prepare(`UPDATE session_message_attachments
108
- SET message_id = ?
109
- WHERE session_id = ?
110
- AND client_request_id = ?`)
111
- .run(messageId, sessionId, clientRequestId);
131
+ this.bindMessageStatement.run(messageId, sessionId, clientRequestId);
112
132
  }
113
133
  listUnboundBySessionAndClientRequest(sessionId, clientRequestId) {
114
- const rows = this.db
115
- .prepare(`SELECT
116
- id,
117
- session_id,
118
- client_request_id,
119
- message_id,
120
- kind,
121
- file_name,
122
- mime_type,
123
- file_size,
124
- storage_path,
125
- created_at
126
- FROM session_message_attachments
127
- WHERE session_id = ?
128
- AND client_request_id = ?
129
- AND message_id IS NULL
130
- ORDER BY created_at ASC`)
131
- .all(sessionId, clientRequestId);
134
+ const rows = this.listUnboundBySessionAndClientRequestStatement.all(sessionId, clientRequestId);
132
135
  return rows.map(mapSessionMessageAttachmentRow);
133
136
  }
134
137
  deleteByIds(attachmentIds) {
@@ -141,9 +144,7 @@ export class SessionMessageAttachmentRepository {
141
144
  .run(...attachmentIds);
142
145
  }
143
146
  deleteBySession(sessionId) {
144
- this.db
145
- .prepare("DELETE FROM session_message_attachments WHERE session_id = ?")
146
- .run(sessionId);
147
+ this.deleteBySessionStatement.run(sessionId);
147
148
  }
148
149
  }
149
150
  function mapSessionMessageAttachmentRow(row) {
@@ -1 +1 @@
1
- {"version":3,"file":"session-message-attachment-repository.js","sourceRoot":"","sources":["../../../../src/storage/repositories/session-message-attachment-repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-message-attachment-repository.js","sourceRoot":"","sources":["../../../../src/storage/repositories/session-message-attachment-repository.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,kCAAkC;IAShB;IARZ,sCAAsC,CAAiC;IACvE,sBAAsB,CAAiC;IACvD,2BAA2B,CAAiC;IAC5D,eAAe,CAAiC;IAChD,oBAAoB,CAAiC;IACrD,6CAA6C,CAAiC;IAC9E,wBAAwB,CAAiC;IAE1E,YAA6B,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;QAChD,IAAI,CAAC,sCAAsC,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC3D;;;;;;;;;;;;;;+BAcyB,CAC1B,CAAC;QACF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC3C;;;;;;;;;;;;;+BAayB,CAC1B,CAAC;QACF,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAChD;;;;;;;;;;;;;;eAcS,CACV,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACpC;;;;;;;;;;;+CAWyC,CAC1C,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACzC;;;mCAG6B,CAC9B,CAAC;QACF,IAAI,CAAC,6CAA6C,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAClE;;;;;;;;;;;;;;;+BAeyB,CAC1B,CAAC;QACF,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAC;IAClH,CAAC;IAED,6BAA6B,CAC3B,SAAiB,EACjB,eAAuB;QAEvB,MAAM,IAAI,GAAG,IAAI,CAAC,sCAAsC,CAAC,GAAG,CAC1D,SAAS,EACT,eAAe,CACiB,CAAC;QAEnC,OAAO,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,aAAa,CAAC,SAAiB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAkC,CAAC;QAEzF,OAAO,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,0BAA0B,CACxB,SAAiB,EACjB,UAAoB;QAEpB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CACN;;;;;;;;;;;;;gCAawB,YAAY;iCACX,CAC1B;aACA,GAAG,CAAC,SAAS,EAAE,GAAG,UAAU,CAAkC,CAAC;QAElE,OAAO,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,kBAAkB,CAChB,SAAiB,EACjB,YAAoB;QAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAC9C,SAAS,EACT,YAAY,CAC8B,CAAC;QAE7C,OAAO,GAAG,CAAC,CAAC,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,MAAsC;QAC3C,IAAI,CAAC,eAAe;aACjB,GAAG,CACF,MAAM,CAAC,EAAE,EACT,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,SAAS,CACjB,CAAC;IACN,CAAC;IAED,WAAW,CAAC,SAAiB,EAAE,eAAuB,EAAE,SAAiB;QACvE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IACvE,CAAC;IAED,oCAAoC,CAClC,SAAiB,EACjB,eAAuB;QAEvB,MAAM,IAAI,GAAG,IAAI,CAAC,6CAA6C,CAAC,GAAG,CACjE,SAAS,EACT,eAAe,CACiB,CAAC;QAEnC,OAAO,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAED,WAAW,CAAC,aAAuB;QACjC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC,wDAAwD,YAAY,GAAG,CAAC;aAChF,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;IAC3B,CAAC;IAED,eAAe,CAAC,SAAiB;QAC/B,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;CACF;AAeD,SAAS,8BAA8B,CACrC,GAAgC;IAEhC,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,eAAe,EAAE,GAAG,CAAC,iBAAiB;QACtC,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC"}
@@ -2,6 +2,8 @@ import type Database from "better-sqlite3";
2
2
  import type { SessionMessageOriginRecord } from "../../types/domain.js";
3
3
  export declare class SessionMessageOriginRepository {
4
4
  private readonly db;
5
+ private readonly upsertStatement;
6
+ private readonly resolveMessageIdStatement;
5
7
  constructor(db: Database.Database);
6
8
  upsert(record: SessionMessageOriginRecord): void;
7
9
  resolveMessageId(sessionId: string, clientRequestId: string, messageId: string, updatedAt: string): void;
@@ -1,36 +1,37 @@
1
1
  export class SessionMessageOriginRepository {
2
2
  db;
3
+ upsertStatement;
4
+ resolveMessageIdStatement;
3
5
  constructor(db) {
4
6
  this.db = db;
7
+ this.upsertStatement = this.db.prepare(`INSERT INTO session_message_origins (
8
+ session_id,
9
+ client_request_id,
10
+ message_id,
11
+ origin,
12
+ origin_ref,
13
+ content,
14
+ created_at,
15
+ updated_at
16
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
17
+ ON CONFLICT(session_id, client_request_id) DO UPDATE SET
18
+ message_id = excluded.message_id,
19
+ origin = excluded.origin,
20
+ origin_ref = excluded.origin_ref,
21
+ content = excluded.content,
22
+ updated_at = excluded.updated_at`);
23
+ this.resolveMessageIdStatement = this.db.prepare(`UPDATE session_message_origins
24
+ SET message_id = ?,
25
+ updated_at = ?
26
+ WHERE session_id = ?
27
+ AND client_request_id = ?`);
5
28
  }
6
29
  upsert(record) {
7
- this.db
8
- .prepare(`INSERT INTO session_message_origins (
9
- session_id,
10
- client_request_id,
11
- message_id,
12
- origin,
13
- origin_ref,
14
- content,
15
- created_at,
16
- updated_at
17
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
18
- ON CONFLICT(session_id, client_request_id) DO UPDATE SET
19
- message_id = excluded.message_id,
20
- origin = excluded.origin,
21
- origin_ref = excluded.origin_ref,
22
- content = excluded.content,
23
- updated_at = excluded.updated_at`)
30
+ this.upsertStatement
24
31
  .run(record.sessionId, record.clientRequestId, record.messageId, record.origin, record.originRef, record.content, record.createdAt, record.updatedAt);
25
32
  }
26
33
  resolveMessageId(sessionId, clientRequestId, messageId, updatedAt) {
27
- this.db
28
- .prepare(`UPDATE session_message_origins
29
- SET message_id = ?,
30
- updated_at = ?
31
- WHERE session_id = ?
32
- AND client_request_id = ?`)
33
- .run(messageId, updatedAt, sessionId, clientRequestId);
34
+ this.resolveMessageIdStatement.run(messageId, updatedAt, sessionId, clientRequestId);
34
35
  }
35
36
  listBySessionAndMessageIds(sessionId, messageIds) {
36
37
  if (messageIds.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"session-message-origin-repository.js","sourceRoot":"","sources":["../../../../src/storage/repositories/session-message-origin-repository.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,8BAA8B;IACZ;IAA7B,YAA6B,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAEtD,MAAM,CAAC,MAAkC;QACvC,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;;;;;;;;;;;;4CAeoC,CACrC;aACA,GAAG,CACF,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,CACjB,CAAC;IACN,CAAC;IAED,gBAAgB,CACd,SAAiB,EACjB,eAAuB,EACvB,SAAiB,EACjB,SAAiB;QAEjB,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;qCAI6B,CAC9B;aACA,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAC3D,CAAC;IAED,0BAA0B,CAAC,SAAiB,EAAE,UAAoB;QAChE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CACN;;;;;;;;;;;gCAWwB,YAAY;kCACV,CAC3B;aACA,GAAG,CAAC,SAAS,EAAE,GAAG,UAAU,CAA8B,CAAC;QAE9D,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,kCAAkC,CAAC,SAAiB,EAAE,QAAkB;QACtE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CACN;;;;;;;;;;;;6BAYqB,YAAY;iDACQ,CAC1C;aACA,GAAG,CAAC,SAAS,EAAE,GAAG,QAAQ,CAA8B,CAAC;QAE5D,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;CACF;AAaD,SAAS,MAAM,CAAC,GAA4B;IAC1C,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,eAAe,EAAE,GAAG,CAAC,iBAAiB;QACtC,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"session-message-origin-repository.js","sourceRoot":"","sources":["../../../../src/storage/repositories/session-message-origin-repository.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,8BAA8B;IAIZ;IAHZ,eAAe,CAAiC;IAChD,yBAAyB,CAAiC;IAE3E,YAA6B,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;QAChD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACpC;;;;;;;;;;;;;;;0CAeoC,CACrC,CAAC;QACF,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC9C;;;;mCAI6B,CAC9B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,MAAkC;QACvC,IAAI,CAAC,eAAe;aACjB,GAAG,CACF,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,SAAS,CACjB,CAAC;IACN,CAAC;IAED,gBAAgB,CACd,SAAiB,EACjB,eAAuB,EACvB,SAAiB,EACjB,SAAiB;QAEjB,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IACvF,CAAC;IAED,0BAA0B,CAAC,SAAiB,EAAE,UAAoB;QAChE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CACN;;;;;;;;;;;gCAWwB,YAAY;kCACV,CAC3B;aACA,GAAG,CAAC,SAAS,EAAE,GAAG,UAAU,CAA8B,CAAC;QAE9D,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,kCAAkC,CAAC,SAAiB,EAAE,QAAkB;QACtE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CACN;;;;;;;;;;;;6BAYqB,YAAY;iDACQ,CAC1C;aACA,GAAG,CAAC,SAAS,EAAE,GAAG,QAAQ,CAA8B,CAAC;QAE5D,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;CACF;AAaD,SAAS,MAAM,CAAC,GAA4B;IAC1C,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,eAAe,EAAE,GAAG,CAAC,iBAAiB;QACtC,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC"}
@@ -2,6 +2,8 @@ import type Database from "better-sqlite3";
2
2
  import type { SessionStateRecord } from "../../types/domain.js";
3
3
  export declare class SessionStateRepository {
4
4
  private readonly db;
5
+ private readonly findBySessionAndUserStatement;
6
+ private readonly upsertStatement;
5
7
  constructor(db: Database.Database);
6
8
  findBySessionAndUser(sessionId: string, userId: string): SessionStateRecord | null;
7
9
  upsert(record: SessionStateRecord): void;
@@ -1,46 +1,47 @@
1
1
  export class SessionStateRepository {
2
2
  db;
3
+ findBySessionAndUserStatement;
4
+ upsertStatement;
3
5
  constructor(db) {
4
6
  this.db = db;
7
+ this.findBySessionAndUserStatement = this.db.prepare(`SELECT
8
+ session_id,
9
+ user_id,
10
+ running_state,
11
+ activity_source,
12
+ favorite,
13
+ last_event_at,
14
+ completed_at,
15
+ last_seen_at,
16
+ updated_at
17
+ FROM session_states
18
+ WHERE session_id = ? AND user_id = ?`);
19
+ this.upsertStatement = this.db.prepare(`INSERT INTO session_states (
20
+ session_id,
21
+ user_id,
22
+ running_state,
23
+ activity_source,
24
+ favorite,
25
+ last_event_at,
26
+ completed_at,
27
+ last_seen_at,
28
+ updated_at
29
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
30
+ ON CONFLICT(session_id, user_id) DO UPDATE SET
31
+ running_state = excluded.running_state,
32
+ activity_source = excluded.activity_source,
33
+ favorite = excluded.favorite,
34
+ last_event_at = excluded.last_event_at,
35
+ completed_at = excluded.completed_at,
36
+ last_seen_at = excluded.last_seen_at,
37
+ updated_at = excluded.updated_at`);
5
38
  }
6
39
  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);
40
+ const row = this.findBySessionAndUserStatement.get(sessionId, userId);
21
41
  return row ? mapSessionStateRow(row) : null;
22
42
  }
23
43
  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
+ this.upsertStatement
44
45
  .run(record.sessionId, record.userId, record.runningState, record.activitySource, record.favorite ? 1 : 0, record.lastEventAt, record.completedAt, record.lastSeenAt, record.updatedAt);
45
46
  }
46
47
  }
@@ -1 +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"}
1
+ {"version":3,"file":"session-state-repository.js","sourceRoot":"","sources":["../../../../src/storage/repositories/session-state-repository.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,sBAAsB;IAIJ;IAHZ,6BAA6B,CAAiC;IAC9D,eAAe,CAAiC;IAEjE,YAA6B,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;QAChD,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAClD;;;;;;;;;;;4CAWsC,CACvC,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACpC;;;;;;;;;;;;;;;;;;0CAkBoC,CACrC,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,SAAiB,EAAE,MAAc;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAgC,CAAC;QAErG,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;aACjB,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"}
@@ -2,6 +2,8 @@ import type Database from "better-sqlite3";
2
2
  import type { SessionStatusSnapshot } from "../../types/domain.js";
3
3
  export declare class SessionStatusSnapshotRepository {
4
4
  private readonly db;
5
+ private readonly findBySessionIdStatement;
6
+ private readonly upsertStatement;
5
7
  constructor(db: Database.Database);
6
8
  findBySessionId(sessionId: string): SessionStatusSnapshot | null;
7
9
  upsert(record: SessionStatusSnapshot): void;
@@ -1,36 +1,37 @@
1
1
  export class SessionStatusSnapshotRepository {
2
2
  db;
3
+ findBySessionIdStatement;
4
+ upsertStatement;
3
5
  constructor(db) {
4
6
  this.db = db;
7
+ this.findBySessionIdStatement = this.db.prepare(`SELECT session_id, sync_status, sync_cursor, last_sync_at, last_error_code, last_error_detail, resumed_at, updated_at
8
+ FROM session_status_snapshots
9
+ WHERE session_id = ?`);
10
+ this.upsertStatement = this.db.prepare(`INSERT INTO session_status_snapshots (
11
+ session_id,
12
+ sync_status,
13
+ sync_cursor,
14
+ last_sync_at,
15
+ last_error_code,
16
+ last_error_detail,
17
+ resumed_at,
18
+ updated_at
19
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
20
+ ON CONFLICT(session_id) DO UPDATE SET
21
+ sync_status = excluded.sync_status,
22
+ sync_cursor = excluded.sync_cursor,
23
+ last_sync_at = excluded.last_sync_at,
24
+ last_error_code = excluded.last_error_code,
25
+ last_error_detail = excluded.last_error_detail,
26
+ resumed_at = excluded.resumed_at,
27
+ updated_at = excluded.updated_at`);
5
28
  }
6
29
  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);
30
+ const row = this.findBySessionIdStatement.get(sessionId);
12
31
  return row ? mapSessionStatusSnapshotRow(row) : null;
13
32
  }
14
33
  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
+ this.upsertStatement
34
35
  .run(record.sessionId, record.syncStatus, record.syncCursor, record.lastSyncAt, record.lastErrorCode, record.lastErrorDetail, record.resumedAt, record.updatedAt);
35
36
  }
36
37
  }
@@ -1 +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"}
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;IAIb;IAHZ,wBAAwB,CAAiC;IACzD,eAAe,CAAiC;IAEjE,YAA6B,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;QAChD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC7C;;4BAEsB,CACvB,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACpC;;;;;;;;;;;;;;;;;0CAiBoC,CACrC,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,SAAiB;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAyC,CAAC;QAEjG,OAAO,GAAG,CAAC,CAAC,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,MAA6B;QAClC,IAAI,CAAC,eAAe;aACjB,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"}
@@ -50,6 +50,8 @@ export function createDatabaseClient(databasePath) {
50
50
  ensureButlerControlTimerSchema(db);
51
51
  ensureAssistantAutomationSchema(db);
52
52
  ensureAssistantSandboxSchema(db);
53
+ ensureDocumentTemplateSchema(db);
54
+ ensureOpsTargetWorkspaceSchema(db);
53
55
  ensureButlerInboxSchema(db);
54
56
  ensureButlerFollowUpTaskSchema(db);
55
57
  ensureVerificationRunSchema(db);
@@ -62,7 +64,9 @@ export function createDatabaseClient(databasePath) {
62
64
  function ensurePreSchemaCompatibility(db) {
63
65
  // 旧库还没有这些列时,schema.sql 里的索引会先炸掉,所以必须先补齐。
64
66
  ensureAuthTokenDeviceColumns(db);
67
+ ensureOpsTargetWorkspaceSchema(db);
65
68
  ensureManagedSkillScopeSchema(db);
69
+ ensureAuthTokenCallerKindSchema(db);
66
70
  }
67
71
  function ensureAuthTokenDeviceColumns(db) {
68
72
  if (!tableExists(db, "auth_tokens")) {
@@ -76,9 +80,99 @@ function ensureAuthTokenDeviceColumns(db) {
76
80
  db.exec("ALTER TABLE auth_tokens ADD COLUMN device_session_id TEXT");
77
81
  }
78
82
  if (!columnNames.has("caller_kind")) {
79
- db.exec("ALTER TABLE auth_tokens ADD COLUMN caller_kind TEXT CHECK (caller_kind IN ('interactive_user', 'assistant_runtime'))");
83
+ db.exec("ALTER TABLE auth_tokens ADD COLUMN caller_kind TEXT CHECK (caller_kind IN ('interactive_user', 'assistant_runtime', 'workspace_session'))");
84
+ }
85
+ if (!columnNames.has("capability_profile")) {
86
+ db.exec("ALTER TABLE auth_tokens ADD COLUMN capability_profile TEXT");
87
+ }
88
+ if (!columnNames.has("workspace_id")) {
89
+ db.exec("ALTER TABLE auth_tokens ADD COLUMN workspace_id TEXT");
90
+ }
91
+ if (!columnNames.has("project_id")) {
92
+ db.exec("ALTER TABLE auth_tokens ADD COLUMN project_id TEXT");
93
+ }
94
+ if (!columnNames.has("session_id")) {
95
+ db.exec("ALTER TABLE auth_tokens ADD COLUMN session_id TEXT");
80
96
  }
81
97
  db.exec("CREATE INDEX IF NOT EXISTS idx_auth_tokens_device_session_id ON auth_tokens(device_session_id)");
98
+ db.exec("CREATE INDEX IF NOT EXISTS idx_auth_tokens_workspace_id ON auth_tokens(workspace_id)");
99
+ db.exec("CREATE INDEX IF NOT EXISTS idx_auth_tokens_session_id ON auth_tokens(session_id)");
100
+ }
101
+ function ensureAuthTokenCallerKindSchema(db) {
102
+ if (!tableExists(db, "auth_tokens")) {
103
+ return;
104
+ }
105
+ const table = db
106
+ .prepare(`SELECT sql
107
+ FROM sqlite_master
108
+ WHERE type = 'table'
109
+ AND name = 'auth_tokens'
110
+ LIMIT 1`)
111
+ .get();
112
+ const definition = table?.sql ?? "";
113
+ if (definition.includes("'interactive_user', 'assistant_runtime', 'workspace_session'")
114
+ || definition.includes("'interactive_user','assistant_runtime','workspace_session'")) {
115
+ return;
116
+ }
117
+ db.exec(`
118
+ ALTER TABLE auth_tokens RENAME TO auth_tokens_legacy;
119
+
120
+ CREATE TABLE auth_tokens (
121
+ id TEXT PRIMARY KEY,
122
+ user_id TEXT NOT NULL,
123
+ token_type TEXT NOT NULL CHECK (token_type IN ('access', 'refresh')),
124
+ token_hash TEXT NOT NULL UNIQUE,
125
+ device_session_id TEXT,
126
+ caller_kind TEXT CHECK (caller_kind IN ('interactive_user', 'assistant_runtime', 'workspace_session')),
127
+ capability_profile TEXT,
128
+ workspace_id TEXT,
129
+ project_id TEXT,
130
+ session_id TEXT,
131
+ expires_at TEXT NOT NULL,
132
+ revoked_at TEXT,
133
+ created_at TEXT NOT NULL,
134
+ FOREIGN KEY (user_id) REFERENCES auth_users(id)
135
+ );
136
+
137
+ INSERT INTO auth_tokens (
138
+ id,
139
+ user_id,
140
+ token_type,
141
+ token_hash,
142
+ device_session_id,
143
+ caller_kind,
144
+ capability_profile,
145
+ workspace_id,
146
+ project_id,
147
+ session_id,
148
+ expires_at,
149
+ revoked_at,
150
+ created_at
151
+ )
152
+ SELECT
153
+ id,
154
+ user_id,
155
+ token_type,
156
+ token_hash,
157
+ device_session_id,
158
+ caller_kind,
159
+ capability_profile,
160
+ workspace_id,
161
+ project_id,
162
+ session_id,
163
+ expires_at,
164
+ revoked_at,
165
+ created_at
166
+ FROM auth_tokens_legacy;
167
+
168
+ DROP TABLE auth_tokens_legacy;
169
+
170
+ CREATE INDEX IF NOT EXISTS idx_auth_tokens_user_id ON auth_tokens(user_id);
171
+ CREATE INDEX IF NOT EXISTS idx_auth_tokens_expires_at ON auth_tokens(expires_at);
172
+ CREATE INDEX IF NOT EXISTS idx_auth_tokens_device_session_id ON auth_tokens(device_session_id);
173
+ CREATE INDEX IF NOT EXISTS idx_auth_tokens_workspace_id ON auth_tokens(workspace_id);
174
+ CREATE INDEX IF NOT EXISTS idx_auth_tokens_session_id ON auth_tokens(session_id);
175
+ `);
82
176
  }
83
177
  function tableExists(db, tableName) {
84
178
  const row = db
@@ -763,6 +857,34 @@ function ensureVerificationRunSchema(db) {
763
857
  PRAGMA foreign_keys = ON;
764
858
  `);
765
859
  }
860
+ function ensureDocumentTemplateSchema(db) {
861
+ if (!tableExists(db, "document_templates")) {
862
+ return;
863
+ }
864
+ const columns = db
865
+ .prepare("PRAGMA table_info(document_templates)")
866
+ .all();
867
+ const columnNames = new Set(columns.map((column) => column.name));
868
+ if (!columnNames.has("mapping_json")) {
869
+ db.exec("ALTER TABLE document_templates ADD COLUMN mapping_json TEXT NOT NULL DEFAULT '{}'");
870
+ }
871
+ if (!columnNames.has("template_source_path")) {
872
+ db.exec("ALTER TABLE document_templates ADD COLUMN template_source_path TEXT");
873
+ }
874
+ }
875
+ function ensureOpsTargetWorkspaceSchema(db) {
876
+ if (!tableExists(db, "ops_targets")) {
877
+ return;
878
+ }
879
+ const columns = db
880
+ .prepare("PRAGMA table_info(ops_targets)")
881
+ .all();
882
+ const columnNames = new Set(columns.map((column) => column.name));
883
+ if (!columnNames.has("workspace_id")) {
884
+ db.exec("ALTER TABLE ops_targets ADD COLUMN workspace_id TEXT");
885
+ }
886
+ db.exec("CREATE INDEX IF NOT EXISTS idx_ops_targets_workspace_id ON ops_targets(workspace_id)");
887
+ }
766
888
  function ensureButlerInboxSchema(db) {
767
889
  const columns = db
768
890
  .prepare("PRAGMA table_info(butler_inbox_items)")