@jingyi0605/codingns 0.1.4 → 0.2.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 (239) hide show
  1. package/dist/public/assets/{TerminalPage-4ulgBhv9.js → TerminalPage-BlbQuWi1.js} +1 -1
  2. package/dist/public/assets/gemini-D4G1NbrE.png +0 -0
  3. package/dist/public/assets/index-1VIm8lVL.css +1 -0
  4. package/dist/public/assets/index-Dti93O2S.js +109 -0
  5. package/dist/public/assets/kimi-BWNNSh7e.png +0 -0
  6. package/dist/public/index.html +2 -2
  7. package/dist/server/config/env.d.ts +7 -0
  8. package/dist/server/config/env.js +150 -1
  9. package/dist/server/config/env.js.map +1 -1
  10. package/dist/server/config/opencode-system-probe-helper-process.d.ts +24 -0
  11. package/dist/server/config/opencode-system-probe-helper-process.js +70 -5
  12. package/dist/server/config/opencode-system-probe-helper-process.js.map +1 -1
  13. package/dist/server/modules/butler/butler-action-context-service.d.ts +30 -0
  14. package/dist/server/modules/butler/butler-action-context-service.js +108 -0
  15. package/dist/server/modules/butler/butler-action-context-service.js.map +1 -0
  16. package/dist/server/modules/butler/butler-auth-service.d.ts +17 -0
  17. package/dist/server/modules/butler/butler-auth-service.js +91 -0
  18. package/dist/server/modules/butler/butler-auth-service.js.map +1 -0
  19. package/dist/server/modules/butler/butler-control-action-service.d.ts +65 -0
  20. package/dist/server/modules/butler/butler-control-action-service.js +296 -0
  21. package/dist/server/modules/butler/butler-control-action-service.js.map +1 -0
  22. package/dist/server/modules/butler/butler-control-session-service.d.ts +55 -0
  23. package/dist/server/modules/butler/butler-control-session-service.js +367 -0
  24. package/dist/server/modules/butler/butler-control-session-service.js.map +1 -0
  25. package/dist/server/modules/butler/butler-controller.d.ts +367 -0
  26. package/dist/server/modules/butler/butler-controller.js +475 -0
  27. package/dist/server/modules/butler/butler-controller.js.map +1 -0
  28. package/dist/server/modules/butler/butler-follow-up-evaluation-instruction-adapter.d.ts +34 -0
  29. package/dist/server/modules/butler/butler-follow-up-evaluation-instruction-adapter.js +77 -0
  30. package/dist/server/modules/butler/butler-follow-up-evaluation-instruction-adapter.js.map +1 -0
  31. package/dist/server/modules/butler/butler-follow-up-scheduler.d.ts +23 -0
  32. package/dist/server/modules/butler/butler-follow-up-scheduler.js +57 -0
  33. package/dist/server/modules/butler/butler-follow-up-scheduler.js.map +1 -0
  34. package/dist/server/modules/butler/butler-follow-up-service.d.ts +86 -0
  35. package/dist/server/modules/butler/butler-follow-up-service.js +948 -0
  36. package/dist/server/modules/butler/butler-follow-up-service.js.map +1 -0
  37. package/dist/server/modules/butler/butler-inbox-service.d.ts +35 -0
  38. package/dist/server/modules/butler/butler-inbox-service.js +136 -0
  39. package/dist/server/modules/butler/butler-inbox-service.js.map +1 -0
  40. package/dist/server/modules/butler/butler-notification-service.d.ts +12 -0
  41. package/dist/server/modules/butler/butler-notification-service.js +45 -0
  42. package/dist/server/modules/butler/butler-notification-service.js.map +1 -0
  43. package/dist/server/modules/butler/butler-profile-service.d.ts +26 -0
  44. package/dist/server/modules/butler/butler-profile-service.js +529 -0
  45. package/dist/server/modules/butler/butler-profile-service.js.map +1 -0
  46. package/dist/server/modules/butler/butler-project-service.d.ts +48 -0
  47. package/dist/server/modules/butler/butler-project-service.js +253 -0
  48. package/dist/server/modules/butler/butler-project-service.js.map +1 -0
  49. package/dist/server/modules/butler/butler-session-service.d.ts +79 -0
  50. package/dist/server/modules/butler/butler-session-service.js +503 -0
  51. package/dist/server/modules/butler/butler-session-service.js.map +1 -0
  52. package/dist/server/modules/butler/butler-session-summary-service.d.ts +55 -0
  53. package/dist/server/modules/butler/butler-session-summary-service.js +382 -0
  54. package/dist/server/modules/butler/butler-session-summary-service.js.map +1 -0
  55. package/dist/server/modules/butler/context-aggregator.d.ts +187 -0
  56. package/dist/server/modules/butler/context-aggregator.js +807 -0
  57. package/dist/server/modules/butler/context-aggregator.js.map +1 -0
  58. package/dist/server/modules/butler/instruction-adapter.d.ts +28 -0
  59. package/dist/server/modules/butler/instruction-adapter.js +101 -0
  60. package/dist/server/modules/butler/instruction-adapter.js.map +1 -0
  61. package/dist/server/modules/butler/patrol-execution-service.d.ts +47 -0
  62. package/dist/server/modules/butler/patrol-execution-service.js +347 -0
  63. package/dist/server/modules/butler/patrol-execution-service.js.map +1 -0
  64. package/dist/server/modules/butler/patrol-plan-service.d.ts +54 -0
  65. package/dist/server/modules/butler/patrol-plan-service.js +272 -0
  66. package/dist/server/modules/butler/patrol-plan-service.js.map +1 -0
  67. package/dist/server/modules/butler/patrol-run-service.d.ts +60 -0
  68. package/dist/server/modules/butler/patrol-run-service.js +185 -0
  69. package/dist/server/modules/butler/patrol-run-service.js.map +1 -0
  70. package/dist/server/modules/butler/patrol-scheduler.d.ts +36 -0
  71. package/dist/server/modules/butler/patrol-scheduler.js +99 -0
  72. package/dist/server/modules/butler/patrol-scheduler.js.map +1 -0
  73. package/dist/server/modules/butler/project-memory-service.d.ts +30 -0
  74. package/dist/server/modules/butler/project-memory-service.js +103 -0
  75. package/dist/server/modules/butler/project-memory-service.js.map +1 -0
  76. package/dist/server/modules/butler/provider-adapter-registry.d.ts +61 -0
  77. package/dist/server/modules/butler/provider-adapter-registry.js +430 -0
  78. package/dist/server/modules/butler/provider-adapter-registry.js.map +1 -0
  79. package/dist/server/modules/butler/session-summary-instruction-adapter.d.ts +28 -0
  80. package/dist/server/modules/butler/session-summary-instruction-adapter.js +79 -0
  81. package/dist/server/modules/butler/session-summary-instruction-adapter.js.map +1 -0
  82. package/dist/server/modules/butler/session-summary-scheduler.d.ts +23 -0
  83. package/dist/server/modules/butler/session-summary-scheduler.js +57 -0
  84. package/dist/server/modules/butler/session-summary-scheduler.js.map +1 -0
  85. package/dist/server/modules/butler/verification-run-service.d.ts +73 -0
  86. package/dist/server/modules/butler/verification-run-service.js +633 -0
  87. package/dist/server/modules/butler/verification-run-service.js.map +1 -0
  88. package/dist/server/modules/file/file-controller.d.ts +12 -1
  89. package/dist/server/modules/file/file-controller.js +72 -1
  90. package/dist/server/modules/file/file-controller.js.map +1 -1
  91. package/dist/server/modules/file/file-preview-link-service.d.ts +22 -0
  92. package/dist/server/modules/file/file-preview-link-service.js +160 -0
  93. package/dist/server/modules/file/file-preview-link-service.js.map +1 -0
  94. package/dist/server/modules/preferences/profile-service.js +8 -2
  95. package/dist/server/modules/preferences/profile-service.js.map +1 -1
  96. package/dist/server/modules/sessions/claude-runtime-helper-process.js +1 -1
  97. package/dist/server/modules/sessions/claude-runtime-helper-process.js.map +1 -1
  98. package/dist/server/modules/sessions/codex-app-server-helper-client.d.ts +7 -2
  99. package/dist/server/modules/sessions/codex-app-server-helper-client.js +113 -2
  100. package/dist/server/modules/sessions/codex-app-server-helper-client.js.map +1 -1
  101. package/dist/server/modules/sessions/codex-app-server-helper-process.js +106 -1
  102. package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -1
  103. package/dist/server/modules/sessions/session-controller.d.ts +24 -1
  104. package/dist/server/modules/sessions/session-controller.js +34 -3
  105. package/dist/server/modules/sessions/session-controller.js.map +1 -1
  106. package/dist/server/modules/sessions/session-history-service.d.ts +47 -2
  107. package/dist/server/modules/sessions/session-history-service.js +881 -56
  108. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  109. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +30 -2
  110. package/dist/server/modules/sessions/session-live-runtime-service.js +584 -159
  111. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  112. package/dist/server/modules/sessions/session-provider-error-mapper.js +94 -0
  113. package/dist/server/modules/sessions/session-provider-error-mapper.js.map +1 -1
  114. package/dist/server/modules/workbench/workbench-service.d.ts +7 -1
  115. package/dist/server/modules/workbench/workbench-service.js +31 -7
  116. package/dist/server/modules/workbench/workbench-service.js.map +1 -1
  117. package/dist/server/routes/butler.d.ts +3 -0
  118. package/dist/server/routes/butler.js +54 -0
  119. package/dist/server/routes/butler.js.map +1 -0
  120. package/dist/server/routes/files.js +2 -0
  121. package/dist/server/routes/files.js.map +1 -1
  122. package/dist/server/routes/sessions.js +1 -0
  123. package/dist/server/routes/sessions.js.map +1 -1
  124. package/dist/server/server/create-server.d.ts +65 -0
  125. package/dist/server/server/create-server.js +154 -5
  126. package/dist/server/server/create-server.js.map +1 -1
  127. package/dist/server/shared/utils/command-availability.d.ts +1 -0
  128. package/dist/server/shared/utils/command-availability.js +83 -0
  129. package/dist/server/shared/utils/command-availability.js.map +1 -0
  130. package/dist/server/storage/repositories/butler-control-event-repository.d.ts +8 -0
  131. package/dist/server/storage/repositories/butler-control-event-repository.js +78 -0
  132. package/dist/server/storage/repositories/butler-control-event-repository.js.map +1 -0
  133. package/dist/server/storage/repositories/butler-control-session-repository.d.ts +11 -0
  134. package/dist/server/storage/repositories/butler-control-session-repository.js +86 -0
  135. package/dist/server/storage/repositories/butler-control-session-repository.js.map +1 -0
  136. package/dist/server/storage/repositories/butler-follow-up-task-repository.d.ts +16 -0
  137. package/dist/server/storage/repositories/butler-follow-up-task-repository.js +252 -0
  138. package/dist/server/storage/repositories/butler-follow-up-task-repository.js.map +1 -0
  139. package/dist/server/storage/repositories/butler-inbox-item-repository.d.ts +15 -0
  140. package/dist/server/storage/repositories/butler-inbox-item-repository.js +111 -0
  141. package/dist/server/storage/repositories/butler-inbox-item-repository.js.map +1 -0
  142. package/dist/server/storage/repositories/butler-notification-archive-repository.d.ts +9 -0
  143. package/dist/server/storage/repositories/butler-notification-archive-repository.js +48 -0
  144. package/dist/server/storage/repositories/butler-notification-archive-repository.js.map +1 -0
  145. package/dist/server/storage/repositories/butler-profile-repository.d.ts +9 -0
  146. package/dist/server/storage/repositories/butler-profile-repository.js +86 -0
  147. package/dist/server/storage/repositories/butler-profile-repository.js.map +1 -0
  148. package/dist/server/storage/repositories/butler-project-repository.d.ts +14 -0
  149. package/dist/server/storage/repositories/butler-project-repository.js +140 -0
  150. package/dist/server/storage/repositories/butler-project-repository.js.map +1 -0
  151. package/dist/server/storage/repositories/butler-session-repository.d.ts +11 -0
  152. package/dist/server/storage/repositories/butler-session-repository.js +106 -0
  153. package/dist/server/storage/repositories/butler-session-repository.js.map +1 -0
  154. package/dist/server/storage/repositories/butler-session-summary-state-repository.d.ts +8 -0
  155. package/dist/server/storage/repositories/butler-session-summary-state-repository.js +62 -0
  156. package/dist/server/storage/repositories/butler-session-summary-state-repository.js.map +1 -0
  157. package/dist/server/storage/repositories/patrol-plan-repository.d.ts +27 -0
  158. package/dist/server/storage/repositories/patrol-plan-repository.js +119 -0
  159. package/dist/server/storage/repositories/patrol-plan-repository.js.map +1 -0
  160. package/dist/server/storage/repositories/patrol-run-repository.d.ts +28 -0
  161. package/dist/server/storage/repositories/patrol-run-repository.js +121 -0
  162. package/dist/server/storage/repositories/patrol-run-repository.js.map +1 -0
  163. package/dist/server/storage/repositories/project-memory-repository.d.ts +15 -0
  164. package/dist/server/storage/repositories/project-memory-repository.js +150 -0
  165. package/dist/server/storage/repositories/project-memory-repository.js.map +1 -0
  166. package/dist/server/storage/repositories/session-checkpoint-repository.d.ts +9 -0
  167. package/dist/server/storage/repositories/session-checkpoint-repository.js +72 -0
  168. package/dist/server/storage/repositories/session-checkpoint-repository.js.map +1 -0
  169. package/dist/server/storage/repositories/session-fork-repository.d.ts +8 -0
  170. package/dist/server/storage/repositories/session-fork-repository.js +69 -0
  171. package/dist/server/storage/repositories/session-fork-repository.js.map +1 -0
  172. package/dist/server/storage/repositories/session-index-repository.js +40 -2
  173. package/dist/server/storage/repositories/session-index-repository.js.map +1 -1
  174. package/dist/server/storage/repositories/session-message-origin-repository.d.ts +10 -0
  175. package/dist/server/storage/repositories/session-message-origin-repository.js +93 -0
  176. package/dist/server/storage/repositories/session-message-origin-repository.js.map +1 -0
  177. package/dist/server/storage/repositories/verification-run-repository.d.ts +29 -0
  178. package/dist/server/storage/repositories/verification-run-repository.js +125 -0
  179. package/dist/server/storage/repositories/verification-run-repository.js.map +1 -0
  180. package/dist/server/storage/sqlite/client.js +146 -0
  181. package/dist/server/storage/sqlite/client.js.map +1 -1
  182. package/dist/server/storage/sqlite/schema.sql +354 -0
  183. package/dist/server/types/domain.d.ts +286 -2
  184. package/dist/server/ws/ws-server.d.ts +2 -1
  185. package/dist/server/ws/ws-server.js +2 -1
  186. package/dist/server/ws/ws-server.js.map +1 -1
  187. package/node_modules/@codingns/session-sync-core/dist/index.d.ts +4 -0
  188. package/node_modules/@codingns/session-sync-core/dist/index.js +4 -0
  189. package/node_modules/@codingns/session-sync-core/dist/index.js.map +1 -1
  190. package/node_modules/@codingns/session-sync-core/dist/kimi-message-normalizer.d.ts +18 -0
  191. package/node_modules/@codingns/session-sync-core/dist/kimi-message-normalizer.js +659 -0
  192. package/node_modules/@codingns/session-sync-core/dist/kimi-message-normalizer.js.map +1 -0
  193. package/node_modules/@codingns/session-sync-core/dist/kimi-shared.d.ts +11 -0
  194. package/node_modules/@codingns/session-sync-core/dist/kimi-shared.js +72 -0
  195. package/node_modules/@codingns/session-sync-core/dist/kimi-shared.js.map +1 -0
  196. package/node_modules/@codingns/session-sync-core/dist/patch-builder.d.ts +8 -0
  197. package/node_modules/@codingns/session-sync-core/dist/patch-builder.js +89 -0
  198. package/node_modules/@codingns/session-sync-core/dist/patch-builder.js.map +1 -1
  199. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.d.ts +6 -1
  200. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js +228 -7
  201. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js.map +1 -1
  202. package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +26 -1
  203. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +499 -3
  204. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
  205. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.d.ts +41 -0
  206. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js +1175 -0
  207. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js.map +1 -0
  208. package/node_modules/@codingns/session-sync-core/dist/providers/kimi.d.ts +29 -0
  209. package/node_modules/@codingns/session-sync-core/dist/providers/kimi.js +578 -0
  210. package/node_modules/@codingns/session-sync-core/dist/providers/kimi.js.map +1 -0
  211. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.d.ts +5 -1
  212. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js +271 -4
  213. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js.map +1 -1
  214. package/node_modules/@codingns/session-sync-core/dist/providers/utils.d.ts +1 -0
  215. package/node_modules/@codingns/session-sync-core/dist/providers/utils.js +147 -19
  216. package/node_modules/@codingns/session-sync-core/dist/providers/utils.js.map +1 -1
  217. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.d.ts +2 -0
  218. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js +43 -5
  219. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js.map +1 -1
  220. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.d.ts +12 -0
  221. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +442 -71
  222. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
  223. package/node_modules/@codingns/session-sync-core/dist/runtime/gemini-runtime.d.ts +21 -0
  224. package/node_modules/@codingns/session-sync-core/dist/runtime/gemini-runtime.js +537 -0
  225. package/node_modules/@codingns/session-sync-core/dist/runtime/gemini-runtime.js.map +1 -0
  226. package/node_modules/@codingns/session-sync-core/dist/runtime/kimi-runtime.d.ts +38 -0
  227. package/node_modules/@codingns/session-sync-core/dist/runtime/kimi-runtime.js +911 -0
  228. package/node_modules/@codingns/session-sync-core/dist/runtime/kimi-runtime.js.map +1 -0
  229. package/node_modules/@codingns/session-sync-core/dist/services.d.ts +2 -1
  230. package/node_modules/@codingns/session-sync-core/dist/services.js +55 -8
  231. package/node_modules/@codingns/session-sync-core/dist/services.js.map +1 -1
  232. package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.d.ts +6 -0
  233. package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.js +9 -0
  234. package/node_modules/@codingns/session-sync-core/dist/sqlite/node-sqlite.js.map +1 -0
  235. package/node_modules/@codingns/session-sync-core/dist/types.d.ts +27 -0
  236. package/node_modules/@codingns/session-sync-core/package.json +8 -0
  237. package/package.json +1 -1
  238. package/dist/public/assets/index-C5lu52cQ.css +0 -1
  239. package/dist/public/assets/index-WpdUo_Vs.js +0 -108
@@ -11,5 +11,7 @@ export async function registerFileRoutes(app, fileController) {
11
11
  app.get("/api/files/search", fileController.search);
12
12
  app.get("/api/files/recent", fileController.getRecent);
13
13
  app.get("/api/files/preview", fileController.preview);
14
+ app.get("/api/files/preview-link", fileController.createPreviewLink);
15
+ app.get("/preview/files/*", fileController.publicPreview);
14
16
  }
15
17
  //# sourceMappingURL=files.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/routes/files.ts"],"names":[],"mappings":"AAIA,MAAM,4BAA4B,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAoB,EACpB,cAA8B;IAE9B,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACnD,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACzD,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAC1D,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACnD,GAAG,CAAC,IAAI,CACN,mBAAmB,EACnB;QACE,SAAS,EAAE,4BAA4B;KACxC,EACD,cAAc,CAAC,MAAM,CACtB,CAAC;IACF,GAAG,CAAC,GAAG,CAAC,qBAAqB,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxD,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACpD,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACvD,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/routes/files.ts"],"names":[],"mappings":"AAIA,MAAM,4BAA4B,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAoB,EACpB,cAA8B;IAE9B,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACnD,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACzD,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAC1D,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACnD,GAAG,CAAC,IAAI,CACN,mBAAmB,EACnB;QACE,SAAS,EAAE,4BAA4B;KACxC,EACD,cAAc,CAAC,MAAM,CACtB,CAAC;IACF,GAAG,CAAC,GAAG,CAAC,qBAAqB,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxD,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACpD,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACvD,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACtD,GAAG,CAAC,GAAG,CAAC,yBAAyB,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;IACrE,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;AAC5D,CAAC"}
@@ -14,6 +14,7 @@ export async function registerSessionRoutes(app, sessionController) {
14
14
  app.patch("/api/sessions/:sessionId/title", sessionController.renameTitle);
15
15
  app.patch("/api/sessions/:sessionId/archive", sessionController.updateArchiveState);
16
16
  app.patch("/api/sessions/:sessionId/favorite", sessionController.updateFavoriteState);
17
+ app.post("/api/sessions/:sessionId/forks", sessionController.fork);
17
18
  app.post("/api/sessions/:sessionId/messages", sessionController.sendMessage);
18
19
  app.post("/api/sessions/:sessionId/messages/live", {
19
20
  bodyLimit: SESSION_MESSAGE_BODY_LIMIT_BYTES
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../src/routes/sessions.ts"],"names":[],"mappings":"AAIA,yDAAyD;AACzD,iDAAiD;AACjD,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,GAAoB,EACpB,iBAAoC;IAEpC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjD,GAAG,CAAC,GAAG,CAAC,0BAA0B,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACjE,GAAG,CAAC,GAAG,CAAC,wCAAwC,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACrF,GAAG,CAAC,GAAG,CAAC,mCAAmC,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC7E,GAAG,CAAC,GAAG,CAAC,4DAA4D,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;IACxG,GAAG,CAAC,GAAG,CAAC,uCAAuC,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACpF,GAAG,CAAC,GAAG,CAAC,8CAA8C,EAAE,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;IAClG,GAAG,CAAC,GAAG,CAAC,gCAAgC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACvE,GAAG,CAAC,GAAG,CAAC,kCAAkC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC1E,GAAG,CAAC,KAAK,CAAC,gCAAgC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC3E,GAAG,CAAC,KAAK,CAAC,kCAAkC,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACpF,GAAG,CAAC,KAAK,CAAC,mCAAmC,EAAE,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IACtF,GAAG,CAAC,IAAI,CAAC,mCAAmC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC7E,GAAG,CAAC,IAAI,CACN,wCAAwC,EACxC;QACE,SAAS,EAAE,gCAAgC;KAC5C,EACD,iBAAiB,CAAC,eAAe,CAClC,CAAC;IACF,GAAG,CAAC,IAAI,CACN,+DAA+D,EAC/D,iBAAiB,CAAC,sBAAsB,CACzC,CAAC;IACF,GAAG,CAAC,IAAI,CACN,gCAAgC,EAChC;QACE,SAAS,EAAE,gCAAgC;KAC5C,EACD,iBAAiB,CAAC,kBAAkB,CACrC,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,mDAAmD,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACpG,GAAG,CAAC,IAAI,CAAC,oCAAoC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC5E,GAAG,CAAC,IAAI,CAAC,+BAA+B,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACtE,GAAG,CAAC,IAAI,CAAC,iCAAiC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACtE,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzD,GAAG,CAAC,IAAI,CACN,0BAA0B,EAC1B;QACE,SAAS,EAAE,gCAAgC;KAC5C,EACD,iBAAiB,CAAC,SAAS,CAC5B,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,6CAA6C,EAAE,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AACnG,CAAC"}
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../src/routes/sessions.ts"],"names":[],"mappings":"AAIA,yDAAyD;AACzD,iDAAiD;AACjD,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,GAAoB,EACpB,iBAAoC;IAEpC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjD,GAAG,CAAC,GAAG,CAAC,0BAA0B,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACjE,GAAG,CAAC,GAAG,CAAC,wCAAwC,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACrF,GAAG,CAAC,GAAG,CAAC,mCAAmC,EAAE,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC7E,GAAG,CAAC,GAAG,CAAC,4DAA4D,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;IACxG,GAAG,CAAC,GAAG,CAAC,uCAAuC,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACpF,GAAG,CAAC,GAAG,CAAC,8CAA8C,EAAE,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;IAClG,GAAG,CAAC,GAAG,CAAC,gCAAgC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACvE,GAAG,CAAC,GAAG,CAAC,kCAAkC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC1E,GAAG,CAAC,KAAK,CAAC,gCAAgC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC3E,GAAG,CAAC,KAAK,CAAC,kCAAkC,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACpF,GAAG,CAAC,KAAK,CAAC,mCAAmC,EAAE,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IACtF,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACnE,GAAG,CAAC,IAAI,CAAC,mCAAmC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC7E,GAAG,CAAC,IAAI,CACN,wCAAwC,EACxC;QACE,SAAS,EAAE,gCAAgC;KAC5C,EACD,iBAAiB,CAAC,eAAe,CAClC,CAAC;IACF,GAAG,CAAC,IAAI,CACN,+DAA+D,EAC/D,iBAAiB,CAAC,sBAAsB,CACzC,CAAC;IACF,GAAG,CAAC,IAAI,CACN,gCAAgC,EAChC;QACE,SAAS,EAAE,gCAAgC;KAC5C,EACD,iBAAiB,CAAC,kBAAkB,CACrC,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,mDAAmD,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACpG,GAAG,CAAC,IAAI,CAAC,oCAAoC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC5E,GAAG,CAAC,IAAI,CAAC,+BAA+B,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACtE,GAAG,CAAC,IAAI,CAAC,iCAAiC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACtE,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzD,GAAG,CAAC,IAAI,CACN,0BAA0B,EAC1B;QACE,SAAS,EAAE,gCAAgC;KAC5C,EACD,iBAAiB,CAAC,SAAS,CAC5B,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,6CAA6C,EAAE,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AACnG,CAAC"}
@@ -2,9 +2,25 @@ import Fastify from "fastify";
2
2
  import type { HostConfig } from "../config/env.js";
3
3
  import { AuthService } from "../modules/auth/auth-service.js";
4
4
  import { BootstrapService } from "../modules/bootstrap/bootstrap-service.js";
5
+ import { ButlerControlSessionService } from "../modules/butler/butler-control-session-service.js";
6
+ import { ButlerControlActionService } from "../modules/butler/butler-control-action-service.js";
7
+ import { ButlerActionContextService } from "../modules/butler/butler-action-context-service.js";
8
+ import { ButlerFollowUpScheduler } from "../modules/butler/butler-follow-up-scheduler.js";
9
+ import { ButlerFollowUpService } from "../modules/butler/butler-follow-up-service.js";
10
+ import { ButlerProfileService } from "../modules/butler/butler-profile-service.js";
11
+ import { ButlerProjectService } from "../modules/butler/butler-project-service.js";
12
+ import { ButlerSessionService } from "../modules/butler/butler-session-service.js";
13
+ import { ButlerSessionSummaryService } from "../modules/butler/butler-session-summary-service.js";
14
+ import { PatrolPlanService } from "../modules/butler/patrol-plan-service.js";
15
+ import { PatrolRunService } from "../modules/butler/patrol-run-service.js";
16
+ import { PatrolScheduler } from "../modules/butler/patrol-scheduler.js";
17
+ import { ProjectMemoryService } from "../modules/butler/project-memory-service.js";
18
+ import { SessionSummaryScheduler } from "../modules/butler/session-summary-scheduler.js";
19
+ import { VerificationRunService } from "../modules/butler/verification-run-service.js";
5
20
  import { ClientService } from "../modules/client/client-service.js";
6
21
  import { FileContentService } from "../modules/file/file-content-service.js";
7
22
  import { FileContextService } from "../modules/file/file-context-service.js";
23
+ import { FilePreviewLinkService } from "../modules/file/file-preview-link-service.js";
8
24
  import { FilePreviewService } from "../modules/file/file-preview-service.js";
9
25
  import { FileSearchService } from "../modules/file/file-search-service.js";
10
26
  import { FileTreeService } from "../modules/file/file-tree-service.js";
@@ -26,13 +42,29 @@ import { WorkspaceService } from "../modules/workspace/workspace-service.js";
26
42
  import { AuthTokenRepository } from "../storage/repositories/auth-token-repository.js";
27
43
  import { AuthUserRepository } from "../storage/repositories/auth-user-repository.js";
28
44
  import { BootstrapStateRepository } from "../storage/repositories/bootstrap-state-repository.js";
45
+ import { ButlerControlSessionRepository } from "../storage/repositories/butler-control-session-repository.js";
46
+ import { ButlerControlEventRepository } from "../storage/repositories/butler-control-event-repository.js";
47
+ import { ButlerFollowUpTaskRepository } from "../storage/repositories/butler-follow-up-task-repository.js";
48
+ import { ButlerInboxItemRepository } from "../storage/repositories/butler-inbox-item-repository.js";
49
+ import { ButlerNotificationArchiveRepository } from "../storage/repositories/butler-notification-archive-repository.js";
50
+ import { ButlerProfileRepository } from "../storage/repositories/butler-profile-repository.js";
51
+ import { ButlerProjectRepository } from "../storage/repositories/butler-project-repository.js";
52
+ import { ButlerSessionRepository } from "../storage/repositories/butler-session-repository.js";
53
+ import { ButlerSessionSummaryStateRepository } from "../storage/repositories/butler-session-summary-state-repository.js";
54
+ import { PatrolPlanRepository } from "../storage/repositories/patrol-plan-repository.js";
55
+ import { PatrolRunRepository } from "../storage/repositories/patrol-run-repository.js";
56
+ import { ProjectMemoryRepository } from "../storage/repositories/project-memory-repository.js";
57
+ import { VerificationRunRepository } from "../storage/repositories/verification-run-repository.js";
29
58
  import { CommitRuleProfileRepository } from "../storage/repositories/commit-rule-profile-repository.js";
30
59
  import { FileContextBindingRepository } from "../storage/repositories/file-context-binding-repository.js";
31
60
  import { RecentFileRepository } from "../storage/repositories/recent-file-repository.js";
32
61
  import { SessionBindingRepository } from "../storage/repositories/session-binding-repository.js";
33
62
  import { SessionChangedFileRepository } from "../storage/repositories/session-changed-file-repository.js";
63
+ import { SessionForkRepository } from "../storage/repositories/session-fork-repository.js";
34
64
  import { SessionIndexRepository } from "../storage/repositories/session-index-repository.js";
65
+ import { SessionCheckpointRepository } from "../storage/repositories/session-checkpoint-repository.js";
35
66
  import { SessionMessageAttachmentRepository } from "../storage/repositories/session-message-attachment-repository.js";
67
+ import { SessionMessageOriginRepository } from "../storage/repositories/session-message-origin-repository.js";
36
68
  import { SessionSendQueueRepository } from "../storage/repositories/session-send-queue-repository.js";
37
69
  import { SessionStateRepository } from "../storage/repositories/session-state-repository.js";
38
70
  import { SessionStatusSnapshotRepository } from "../storage/repositories/session-status-snapshot-repository.js";
@@ -56,13 +88,29 @@ export declare function createServer(config: HostConfig): {
56
88
  authUserRepository: AuthUserRepository;
57
89
  authTokenRepository: AuthTokenRepository;
58
90
  workspaceRepository: WorkspaceRepository;
91
+ butlerControlSessionRepository: ButlerControlSessionRepository;
92
+ butlerControlEventRepository: ButlerControlEventRepository;
93
+ butlerFollowUpTaskRepository: ButlerFollowUpTaskRepository;
94
+ butlerInboxItemRepository: ButlerInboxItemRepository;
95
+ butlerNotificationArchiveRepository: ButlerNotificationArchiveRepository;
96
+ butlerProfileRepository: ButlerProfileRepository;
97
+ butlerProjectRepository: ButlerProjectRepository;
98
+ butlerSessionRepository: ButlerSessionRepository;
99
+ butlerSessionSummaryStateRepository: ButlerSessionSummaryStateRepository;
100
+ projectMemoryRepository: ProjectMemoryRepository;
101
+ patrolPlanRepository: PatrolPlanRepository;
102
+ patrolRunRepository: PatrolRunRepository;
103
+ verificationRunRepository: VerificationRunRepository;
59
104
  commitRuleProfileRepository: CommitRuleProfileRepository;
60
105
  recentFileRepository: RecentFileRepository;
61
106
  fileContextBindingRepository: FileContextBindingRepository;
62
107
  sessionBindingRepository: SessionBindingRepository;
63
108
  sessionChangedFileRepository: SessionChangedFileRepository;
109
+ sessionForkRepository: SessionForkRepository;
110
+ sessionCheckpointRepository: SessionCheckpointRepository;
64
111
  sessionIndexRepository: SessionIndexRepository;
65
112
  sessionMessageAttachmentRepository: SessionMessageAttachmentRepository;
113
+ sessionMessageOriginRepository: SessionMessageOriginRepository;
66
114
  sessionSendQueueRepository: SessionSendQueueRepository;
67
115
  sessionStateRepository: SessionStateRepository;
68
116
  sessionStatusSnapshotRepository: SessionStatusSnapshotRepository;
@@ -80,11 +128,28 @@ export declare function createServer(config: HostConfig): {
80
128
  authService: AuthService;
81
129
  workspaceService: WorkspaceService;
82
130
  workbenchService: WorkbenchService;
131
+ butlerProfileService: ButlerProfileService;
132
+ butlerSessionLiveRuntimeService: SessionLiveRuntimeService;
133
+ butlerControlSessionService: ButlerControlSessionService;
134
+ butlerControlActionService: ButlerControlActionService;
135
+ butlerFollowUpService: ButlerFollowUpService;
136
+ butlerActionContextService: ButlerActionContextService;
137
+ butlerProjectService: ButlerProjectService;
138
+ butlerSessionService: ButlerSessionService;
139
+ projectMemoryService: ProjectMemoryService;
140
+ patrolPlanService: PatrolPlanService;
141
+ patrolRunService: PatrolRunService;
142
+ verificationRunService: VerificationRunService;
143
+ patrolScheduler: PatrolScheduler;
144
+ butlerSessionSummaryService: ButlerSessionSummaryService;
145
+ sessionSummaryScheduler: SessionSummaryScheduler;
146
+ butlerFollowUpScheduler: ButlerFollowUpScheduler;
83
147
  workspacePanelSnapshotService: WorkspacePanelSnapshotService;
84
148
  fileTreeService: FileTreeService;
85
149
  fileSearchService: FileSearchService;
86
150
  fileContentService: FileContentService;
87
151
  filePreviewService: FilePreviewService;
152
+ filePreviewLinkService: FilePreviewLinkService;
88
153
  fileContextService: FileContextService;
89
154
  recentFileService: RecentFileService;
90
155
  gitReadService: GitReadService;
@@ -5,6 +5,31 @@ import { AuthController } from "../modules/auth/auth-controller.js";
5
5
  import { AuthService } from "../modules/auth/auth-service.js";
6
6
  import { BootstrapController } from "../modules/bootstrap/bootstrap-controller.js";
7
7
  import { BootstrapService } from "../modules/bootstrap/bootstrap-service.js";
8
+ import { ButlerControlSessionService } from "../modules/butler/butler-control-session-service.js";
9
+ import { ButlerControlActionService } from "../modules/butler/butler-control-action-service.js";
10
+ import { ButlerController } from "../modules/butler/butler-controller.js";
11
+ import { ButlerActionContextService } from "../modules/butler/butler-action-context-service.js";
12
+ import { ButlerContextAggregator } from "../modules/butler/context-aggregator.js";
13
+ import { ButlerAuthService } from "../modules/butler/butler-auth-service.js";
14
+ import { ButlerFollowUpEvaluationInstructionAdapter } from "../modules/butler/butler-follow-up-evaluation-instruction-adapter.js";
15
+ import { ButlerFollowUpScheduler } from "../modules/butler/butler-follow-up-scheduler.js";
16
+ import { ButlerFollowUpService } from "../modules/butler/butler-follow-up-service.js";
17
+ import { ButlerInboxService } from "../modules/butler/butler-inbox-service.js";
18
+ import { ButlerNotificationService } from "../modules/butler/butler-notification-service.js";
19
+ import { ButlerProfileService } from "../modules/butler/butler-profile-service.js";
20
+ import { ButlerProjectService } from "../modules/butler/butler-project-service.js";
21
+ import { ButlerSessionService } from "../modules/butler/butler-session-service.js";
22
+ import { ButlerSessionSummaryService } from "../modules/butler/butler-session-summary-service.js";
23
+ import { InstructionAdapter } from "../modules/butler/instruction-adapter.js";
24
+ import { PatrolPlanService } from "../modules/butler/patrol-plan-service.js";
25
+ import { PatrolExecutionService } from "../modules/butler/patrol-execution-service.js";
26
+ import { ProviderAdapterRegistry, RuntimePatrolProviderAdapter } from "../modules/butler/provider-adapter-registry.js";
27
+ import { PatrolRunService } from "../modules/butler/patrol-run-service.js";
28
+ import { PatrolScheduler } from "../modules/butler/patrol-scheduler.js";
29
+ import { ProjectMemoryService } from "../modules/butler/project-memory-service.js";
30
+ import { SessionSummaryInstructionAdapter } from "../modules/butler/session-summary-instruction-adapter.js";
31
+ import { SessionSummaryScheduler } from "../modules/butler/session-summary-scheduler.js";
32
+ import { VerificationRunService } from "../modules/butler/verification-run-service.js";
8
33
  import { ClientController } from "../modules/client/client-controller.js";
9
34
  import { ClientService } from "../modules/client/client-service.js";
10
35
  import { FileAccessGuard } from "../modules/file/file-access-guard.js";
@@ -12,6 +37,7 @@ import { FileContentService } from "../modules/file/file-content-service.js";
12
37
  import { FileContextController } from "../modules/file/file-context-controller.js";
13
38
  import { FileContextService } from "../modules/file/file-context-service.js";
14
39
  import { FileController } from "../modules/file/file-controller.js";
40
+ import { FilePreviewLinkService } from "../modules/file/file-preview-link-service.js";
15
41
  import { FilePreviewService } from "../modules/file/file-preview-service.js";
16
42
  import { FileSearchService } from "../modules/file/file-search-service.js";
17
43
  import { FileTreeService } from "../modules/file/file-tree-service.js";
@@ -48,6 +74,7 @@ import { WorkspaceFileWatcher } from "../modules/workbench/workspace-file-watche
48
74
  import { WorkspaceController } from "../modules/workspace/workspace-controller.js";
49
75
  import { WorkspaceService } from "../modules/workspace/workspace-service.js";
50
76
  import { registerAuthRoutes } from "../routes/auth.js";
77
+ import { registerButlerRoutes } from "../routes/butler.js";
51
78
  import { registerClientRoutes } from "../routes/client.js";
52
79
  import { registerFileRoutes } from "../routes/files.js";
53
80
  import { registerGitRoutes } from "../routes/git.js";
@@ -66,13 +93,29 @@ import { startTerminalDebugEventLoopLagMonitor } from "../shared/utils/terminal-
66
93
  import { AuthTokenRepository } from "../storage/repositories/auth-token-repository.js";
67
94
  import { AuthUserRepository } from "../storage/repositories/auth-user-repository.js";
68
95
  import { BootstrapStateRepository } from "../storage/repositories/bootstrap-state-repository.js";
96
+ import { ButlerControlSessionRepository } from "../storage/repositories/butler-control-session-repository.js";
97
+ import { ButlerControlEventRepository } from "../storage/repositories/butler-control-event-repository.js";
98
+ import { ButlerFollowUpTaskRepository } from "../storage/repositories/butler-follow-up-task-repository.js";
99
+ import { ButlerInboxItemRepository } from "../storage/repositories/butler-inbox-item-repository.js";
100
+ import { ButlerNotificationArchiveRepository } from "../storage/repositories/butler-notification-archive-repository.js";
101
+ import { ButlerProfileRepository } from "../storage/repositories/butler-profile-repository.js";
102
+ import { ButlerProjectRepository } from "../storage/repositories/butler-project-repository.js";
103
+ import { ButlerSessionRepository } from "../storage/repositories/butler-session-repository.js";
104
+ import { ButlerSessionSummaryStateRepository } from "../storage/repositories/butler-session-summary-state-repository.js";
105
+ import { PatrolPlanRepository } from "../storage/repositories/patrol-plan-repository.js";
106
+ import { PatrolRunRepository } from "../storage/repositories/patrol-run-repository.js";
107
+ import { ProjectMemoryRepository } from "../storage/repositories/project-memory-repository.js";
108
+ import { VerificationRunRepository } from "../storage/repositories/verification-run-repository.js";
69
109
  import { CommitRuleProfileRepository } from "../storage/repositories/commit-rule-profile-repository.js";
70
110
  import { FileContextBindingRepository } from "../storage/repositories/file-context-binding-repository.js";
71
111
  import { RecentFileRepository } from "../storage/repositories/recent-file-repository.js";
72
112
  import { SessionBindingRepository } from "../storage/repositories/session-binding-repository.js";
73
113
  import { SessionChangedFileRepository } from "../storage/repositories/session-changed-file-repository.js";
114
+ import { SessionForkRepository } from "../storage/repositories/session-fork-repository.js";
74
115
  import { SessionIndexRepository } from "../storage/repositories/session-index-repository.js";
116
+ import { SessionCheckpointRepository } from "../storage/repositories/session-checkpoint-repository.js";
75
117
  import { SessionMessageAttachmentRepository } from "../storage/repositories/session-message-attachment-repository.js";
118
+ import { SessionMessageOriginRepository } from "../storage/repositories/session-message-origin-repository.js";
76
119
  import { SessionSendQueueRepository } from "../storage/repositories/session-send-queue-repository.js";
77
120
  import { SessionStateRepository } from "../storage/repositories/session-state-repository.js";
78
121
  import { SessionStatusSnapshotRepository } from "../storage/repositories/session-status-snapshot-repository.js";
@@ -105,13 +148,29 @@ export function createServer(config) {
105
148
  authUserRepository: new AuthUserRepository(database.db),
106
149
  authTokenRepository: new AuthTokenRepository(database.db),
107
150
  workspaceRepository: new WorkspaceRepository(database.db),
151
+ butlerControlSessionRepository: new ButlerControlSessionRepository(database.db),
152
+ butlerControlEventRepository: new ButlerControlEventRepository(database.db),
153
+ butlerFollowUpTaskRepository: new ButlerFollowUpTaskRepository(database.db),
154
+ butlerInboxItemRepository: new ButlerInboxItemRepository(database.db),
155
+ butlerNotificationArchiveRepository: new ButlerNotificationArchiveRepository(database.db),
156
+ butlerProfileRepository: new ButlerProfileRepository(database.db),
157
+ butlerProjectRepository: new ButlerProjectRepository(database.db),
158
+ butlerSessionRepository: new ButlerSessionRepository(database.db),
159
+ butlerSessionSummaryStateRepository: new ButlerSessionSummaryStateRepository(database.db),
160
+ projectMemoryRepository: new ProjectMemoryRepository(database.db),
161
+ patrolPlanRepository: new PatrolPlanRepository(database.db),
162
+ patrolRunRepository: new PatrolRunRepository(database.db),
163
+ verificationRunRepository: new VerificationRunRepository(database.db),
108
164
  commitRuleProfileRepository: new CommitRuleProfileRepository(database.db),
109
165
  recentFileRepository: new RecentFileRepository(database.db),
110
166
  fileContextBindingRepository: new FileContextBindingRepository(database.db),
111
167
  sessionBindingRepository: new SessionBindingRepository(database.db),
112
168
  sessionChangedFileRepository: new SessionChangedFileRepository(database.db),
169
+ sessionForkRepository: new SessionForkRepository(database.db),
170
+ sessionCheckpointRepository: new SessionCheckpointRepository(database.db),
113
171
  sessionIndexRepository: new SessionIndexRepository(database.db),
114
172
  sessionMessageAttachmentRepository: new SessionMessageAttachmentRepository(database.db),
173
+ sessionMessageOriginRepository: new SessionMessageOriginRepository(database.db),
115
174
  sessionSendQueueRepository: new SessionSendQueueRepository(database.db),
116
175
  sessionStateRepository: new SessionStateRepository(database.db),
117
176
  sessionStatusSnapshotRepository: new SessionStatusSnapshotRepository(database.db),
@@ -147,6 +206,7 @@ export function createServer(config) {
147
206
  const fileSearchService = new FileSearchService(fileAccessGuard);
148
207
  const fileContentService = new FileContentService(fileAccessGuard, recentFileService, repositories.fileContextBindingRepository, fileVersionChecker);
149
208
  const filePreviewService = new FilePreviewService(fileAccessGuard, fileContentService);
209
+ const filePreviewLinkService = new FilePreviewLinkService(fileAccessGuard, config.filePreviewTokenSecret);
150
210
  const workspaceRepoGuard = new WorkspaceRepoGuard(workspaceService, gitCommandRunner);
151
211
  const gitReadService = new GitReadService(gitCommandRunner, workspaceRepoGuard);
152
212
  const gitWriteService = new GitWriteService(gitCommandRunner, workspaceRepoGuard, gitReadService);
@@ -159,9 +219,69 @@ export function createServer(config) {
159
219
  const sessionMessageAttachmentService = new SessionMessageAttachmentService(repositories.sessionMessageAttachmentRepository, config);
160
220
  const sessionChangedFileService = new SessionChangedFileService(repositories.sessionChangedFileRepository);
161
221
  const sessionActivityAuthorityService = new SessionActivityAuthorityService();
162
- const sessionHistoryService = new SessionHistoryService(database.db, repositories.workspaceRepository, repositories.sessionBindingRepository, sessionChangedFileService, repositories.sessionIndexRepository, sessionMessageAttachmentService, repositories.sessionStateRepository, repositories.sessionStatusSnapshotRepository, config, sessionActivityAuthorityService);
222
+ const sessionHistoryService = new SessionHistoryService(database.db, repositories.workspaceRepository, repositories.sessionBindingRepository, sessionChangedFileService, repositories.sessionIndexRepository, sessionMessageAttachmentService, repositories.sessionStateRepository, repositories.sessionStatusSnapshotRepository, config, sessionActivityAuthorityService, repositories.sessionMessageOriginRepository, repositories.sessionForkRepository);
163
223
  const sessionLiveRuntimeService = new SessionLiveRuntimeService(sessionHistoryService, sessionMessageAttachmentService, workspaceService, sessionChangedFileService, repositories.sessionBindingRepository, repositories.authUserRepository, repositories.sessionSendQueueRepository, repositories.sessionIndexRepository, repositories.sessionStateRepository, repositories.sessionStatusSnapshotRepository, config, sessionActivityAuthorityService);
164
- const workbenchService = new WorkbenchService(repositories.workspaceRepository, sessionHistoryService);
224
+ const butlerProfileService = new ButlerProfileService(repositories.butlerProfileRepository, repositories.butlerProjectRepository, path.dirname(config.databasePath));
225
+ const butlerRuntimeRootDir = path.join(path.dirname(config.databasePath), "butler-runtime");
226
+ const butlerRuntimeConfig = {
227
+ ...config,
228
+ codexHomeDir: path.join(butlerRuntimeRootDir, "codex-home"),
229
+ claudeCodeHomeDir: path.join(butlerRuntimeRootDir, "claude-home")
230
+ };
231
+ const butlerSummaryRuntimeConfig = {
232
+ ...config,
233
+ codexHomeDir: path.join(butlerRuntimeRootDir, "summary-codex-home"),
234
+ claudeCodeHomeDir: path.join(butlerRuntimeRootDir, "summary-claude-home")
235
+ };
236
+ const butlerFollowUpRuntimeConfig = {
237
+ ...config,
238
+ codexHomeDir: path.join(butlerRuntimeRootDir, "follow-up-codex-home"),
239
+ claudeCodeHomeDir: path.join(butlerRuntimeRootDir, "follow-up-claude-home")
240
+ };
241
+ const butlerSessionLiveRuntimeService = new SessionLiveRuntimeService(sessionHistoryService, sessionMessageAttachmentService, workspaceService, sessionChangedFileService, repositories.sessionBindingRepository, repositories.authUserRepository, repositories.sessionSendQueueRepository, repositories.sessionIndexRepository, repositories.sessionStateRepository, repositories.sessionStatusSnapshotRepository, butlerRuntimeConfig, sessionActivityAuthorityService);
242
+ const butlerSummarySessionLiveRuntimeService = new SessionLiveRuntimeService(sessionHistoryService, sessionMessageAttachmentService, workspaceService, sessionChangedFileService, repositories.sessionBindingRepository, repositories.authUserRepository, repositories.sessionSendQueueRepository, repositories.sessionIndexRepository, repositories.sessionStateRepository, repositories.sessionStatusSnapshotRepository, butlerSummaryRuntimeConfig, sessionActivityAuthorityService);
243
+ const butlerFollowUpSessionLiveRuntimeService = new SessionLiveRuntimeService(sessionHistoryService, sessionMessageAttachmentService, workspaceService, sessionChangedFileService, repositories.sessionBindingRepository, repositories.authUserRepository, repositories.sessionSendQueueRepository, repositories.sessionIndexRepository, repositories.sessionStateRepository, repositories.sessionStatusSnapshotRepository, butlerFollowUpRuntimeConfig, sessionActivityAuthorityService);
244
+ const workbenchService = new WorkbenchService(repositories.workspaceRepository, sessionHistoryService, butlerProfileService, repositories.butlerControlSessionRepository);
245
+ const butlerProjectService = new ButlerProjectService(repositories.butlerProjectRepository, repositories.butlerSessionRepository, repositories.workspaceRepository, butlerProfileService);
246
+ const butlerInboxService = new ButlerInboxService(repositories.butlerProjectRepository, repositories.butlerInboxItemRepository);
247
+ const butlerNotificationService = new ButlerNotificationService(repositories.butlerNotificationArchiveRepository);
248
+ const butlerSessionService = new ButlerSessionService(repositories.butlerProjectRepository, repositories.butlerSessionRepository, repositories.sessionCheckpointRepository, repositories.sessionBindingRepository, repositories.sessionIndexRepository, repositories.sessionStateRepository, sessionLiveRuntimeService, sessionHistoryService);
249
+ const projectMemoryService = new ProjectMemoryService(repositories.butlerProjectRepository, repositories.projectMemoryRepository);
250
+ const patrolPlanService = new PatrolPlanService(repositories.butlerProjectRepository, repositories.patrolPlanRepository);
251
+ const patrolRunService = new PatrolRunService(repositories.butlerProjectRepository, repositories.patrolPlanRepository, repositories.patrolRunRepository);
252
+ const instructionAdapter = new InstructionAdapter();
253
+ const providerAdapterRegistry = new ProviderAdapterRegistry([
254
+ new RuntimePatrolProviderAdapter("codex", sessionLiveRuntimeService, sessionHistoryService),
255
+ new RuntimePatrolProviderAdapter("claude-code", sessionLiveRuntimeService, sessionHistoryService)
256
+ ]);
257
+ const summaryProviderAdapterRegistry = new ProviderAdapterRegistry([
258
+ new RuntimePatrolProviderAdapter("codex", butlerSummarySessionLiveRuntimeService, sessionHistoryService),
259
+ new RuntimePatrolProviderAdapter("claude-code", butlerSummarySessionLiveRuntimeService, sessionHistoryService)
260
+ ]);
261
+ const followUpProviderAdapterRegistry = new ProviderAdapterRegistry([
262
+ new RuntimePatrolProviderAdapter("codex", butlerFollowUpSessionLiveRuntimeService, sessionHistoryService),
263
+ new RuntimePatrolProviderAdapter("claude-code", butlerFollowUpSessionLiveRuntimeService, sessionHistoryService)
264
+ ]);
265
+ const patrolExecutionService = new PatrolExecutionService(repositories.butlerProjectRepository, repositories.butlerSessionRepository, repositories.sessionCheckpointRepository, repositories.patrolPlanRepository, patrolRunService, repositories.projectMemoryRepository, repositories.sessionChangedFileRepository, repositories.authUserRepository, providerAdapterRegistry, instructionAdapter);
266
+ const patrolScheduler = new PatrolScheduler(patrolPlanService, patrolRunService, patrolExecutionService);
267
+ const sessionSummaryInstructionAdapter = new SessionSummaryInstructionAdapter();
268
+ const butlerFollowUpEvaluationInstructionAdapter = new ButlerFollowUpEvaluationInstructionAdapter();
269
+ const verificationRunService = new VerificationRunService(repositories.butlerProjectRepository, repositories.butlerSessionRepository, repositories.sessionCheckpointRepository, repositories.verificationRunRepository);
270
+ const butlerContextAggregator = new ButlerContextAggregator(butlerProfileService, butlerProjectService, butlerSessionService, butlerInboxService, projectMemoryService, patrolRunService, verificationRunService, repositories.sessionCheckpointRepository);
271
+ const butlerAuthService = new ButlerAuthService(repositories.authTokenRepository, config);
272
+ const butlerSessionSummaryService = new ButlerSessionSummaryService(butlerProfileService, butlerProjectService, butlerSessionService, repositories.butlerSessionRepository, repositories.butlerSessionSummaryStateRepository, repositories.sessionCheckpointRepository, repositories.sessionIndexRepository, repositories.authUserRepository, workspaceService, sessionHistoryService, summaryProviderAdapterRegistry, sessionSummaryInstructionAdapter, {
273
+ summaryCodexHomeDir: butlerSummaryRuntimeConfig.codexHomeDir,
274
+ sourceCodexHomeDir: config.codexHomeDir
275
+ });
276
+ const butlerFollowUpService = new ButlerFollowUpService(butlerProfileService, butlerProjectService, butlerSessionService, repositories.butlerFollowUpTaskRepository, sessionHistoryService, repositories.sessionIndexRepository, sessionLiveRuntimeService, workspaceService, followUpProviderAdapterRegistry, butlerFollowUpEvaluationInstructionAdapter, butlerFollowUpRuntimeConfig.codexHomeDir, config.codexHomeDir, repositories.sessionMessageOriginRepository);
277
+ const butlerActionContextService = new ButlerActionContextService(butlerProjectService, butlerSessionService, butlerFollowUpService);
278
+ const sessionSummaryScheduler = new SessionSummaryScheduler(butlerSessionSummaryService);
279
+ const butlerFollowUpScheduler = new ButlerFollowUpScheduler(butlerFollowUpService);
280
+ const butlerFollowUpTerminalSubscription = sessionLiveRuntimeService.registerTerminalStateListener(async (event) => {
281
+ await butlerFollowUpService.handleSessionTerminal(event.sessionId, event.timestamp);
282
+ });
283
+ const butlerControlSessionService = new ButlerControlSessionService(butlerProfileService, repositories.butlerControlSessionRepository, workspaceService, sessionHistoryService, butlerSessionLiveRuntimeService, butlerContextAggregator, butlerAuthService, butlerRuntimeConfig.codexHomeDir, config.codexHomeDir);
284
+ const butlerControlActionService = new ButlerControlActionService(butlerProfileService, repositories.butlerControlSessionRepository, repositories.butlerControlEventRepository, butlerProjectService, butlerSessionService, patrolRunService, patrolExecutionService, verificationRunService, butlerContextAggregator);
165
285
  const fileContextService = new FileContextService(sessionHistoryService, repositories.fileContextBindingRepository);
166
286
  const terminalService = new TerminalService(database.db, repositories.terminalInstanceRepository, repositories.terminalRuntimeSessionRepository, workspaceService, config.terminalIdleTimeoutSeconds, {
167
287
  terminalLogRootDir: path.join(path.dirname(config.databasePath), "terminal-logs"),
@@ -177,15 +297,16 @@ export function createServer(config) {
177
297
  const authController = new AuthController(authService);
178
298
  const workspaceController = new WorkspaceController(workspaceService);
179
299
  const workbenchController = new WorkbenchController(workbenchService);
180
- const sessionController = new SessionController(sessionHistoryService, sessionLiveRuntimeService);
300
+ const butlerController = new ButlerController(butlerProfileService, butlerControlSessionService, butlerControlActionService, butlerContextAggregator, butlerFollowUpService, butlerInboxService, butlerNotificationService, butlerProjectService, butlerSessionService, projectMemoryService, patrolPlanService, patrolRunService, patrolExecutionService, verificationRunService, butlerActionContextService);
301
+ const sessionController = new SessionController(sessionHistoryService, sessionLiveRuntimeService, repositories.butlerControlSessionRepository);
181
302
  const providerController = new ProviderController(sessionHistoryService, sessionLiveRuntimeService, config);
182
303
  const quickPhraseController = new QuickPhraseController(quickPhraseService);
183
304
  const profileController = new ProfileController(preferenceProfileService);
184
- const fileController = new FileController(fileTreeService, fileContentService, fileSearchService, recentFileService, filePreviewService);
305
+ const fileController = new FileController(fileTreeService, fileContentService, fileSearchService, recentFileService, filePreviewService, filePreviewLinkService);
185
306
  const fileContextController = new FileContextController(fileContentService, fileContextService);
186
307
  const gitController = new GitController(gitReadService, gitWriteService, commitOrchestrator);
187
308
  const terminalController = new TerminalController(terminalService, commandTemplateService);
188
- const wsHandle = createWsServer(app.server, new WsAuthGuard(authService), sessionHistoryService, sessionLiveRuntimeService, new TerminalWsHub(terminalService), new WorkbenchWsHub(workbenchService, workspacePanelSnapshotService, fileWatcher));
309
+ const wsHandle = createWsServer(app.server, new WsAuthGuard(authService), sessionHistoryService, sessionLiveRuntimeService, new TerminalWsHub(terminalService), new WorkbenchWsHub(workbenchService, workspacePanelSnapshotService, fileWatcher), butlerActionContextService);
189
310
  app.server.on("upgrade", (request, socket, head) => {
190
311
  templateReverseProxyService.handleWebSocketUpgrade(request, socket, head);
191
312
  });
@@ -211,6 +332,7 @@ export function createServer(config) {
211
332
  void registerClientRoutes(app, clientController);
212
333
  void registerWorkspaceRoutes(app, workspaceController);
213
334
  void registerWorkbenchRoutes(app, workbenchController);
335
+ void registerButlerRoutes(app, butlerController);
214
336
  void registerSessionRoutes(app, sessionController);
215
337
  void registerPreferenceRoutes(app, quickPhraseController, profileController);
216
338
  void registerFileRoutes(app, fileController);
@@ -218,12 +340,22 @@ export function createServer(config) {
218
340
  void registerTerminalRoutes(app, terminalController);
219
341
  void registerProviderRoutes(app, providerController);
220
342
  void registerGitRoutes(app, gitController);
343
+ patrolScheduler.start();
344
+ sessionSummaryScheduler.start();
345
+ butlerFollowUpScheduler.start();
221
346
  if (config.webUiDir) {
222
347
  registerStaticWebRoutes(app, config.webUiDir);
223
348
  }
224
349
  app.addHook("onClose", async () => {
225
350
  stopTerminalDebugEventLoopLagMonitor();
351
+ butlerFollowUpTerminalSubscription.close();
352
+ await patrolScheduler.dispose();
353
+ await sessionSummaryScheduler.dispose();
354
+ await butlerFollowUpScheduler.dispose();
226
355
  await terminalService.dispose();
356
+ await butlerFollowUpSessionLiveRuntimeService.dispose();
357
+ await butlerSummarySessionLiveRuntimeService.dispose();
358
+ await butlerSessionLiveRuntimeService.dispose();
227
359
  await sessionLiveRuntimeService.dispose();
228
360
  await wsHandle.close();
229
361
  gitCommandRunner.dispose();
@@ -241,11 +373,28 @@ export function createServer(config) {
241
373
  authService,
242
374
  workspaceService,
243
375
  workbenchService,
376
+ butlerProfileService,
377
+ butlerSessionLiveRuntimeService,
378
+ butlerControlSessionService,
379
+ butlerControlActionService,
380
+ butlerFollowUpService,
381
+ butlerActionContextService,
382
+ butlerProjectService,
383
+ butlerSessionService,
384
+ projectMemoryService,
385
+ patrolPlanService,
386
+ patrolRunService,
387
+ verificationRunService,
388
+ patrolScheduler,
389
+ butlerSessionSummaryService,
390
+ sessionSummaryScheduler,
391
+ butlerFollowUpScheduler,
244
392
  workspacePanelSnapshotService,
245
393
  fileTreeService,
246
394
  fileSearchService,
247
395
  fileContentService,
248
396
  filePreviewService,
397
+ filePreviewLinkService,
249
398
  fileContextService,
250
399
  recentFileService,
251
400
  gitReadService,
@@ -1 +1 @@
1
- {"version":3,"file":"create-server.js","sourceRoot":"","sources":["../../../src/server/create-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-server.js","sourceRoot":"","sources":["../../../src/server/create-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function isCommandAvailable(commandPath: string | null | undefined): boolean;
@@ -0,0 +1,83 @@
1
+ import { accessSync, constants, existsSync } from "node:fs";
2
+ import path from "node:path";
3
+ const SCRIPT_EXTENSIONS = new Set([".js", ".cjs", ".mjs"]);
4
+ export function isCommandAvailable(commandPath) {
5
+ const normalizedCommandPath = stripWrappingQuotes(commandPath ?? "");
6
+ if (!normalizedCommandPath) {
7
+ return false;
8
+ }
9
+ if (isPathLikeCommand(normalizedCommandPath)) {
10
+ return canExecuteResolvedPath(normalizedCommandPath);
11
+ }
12
+ return resolveExecutableOnPath(normalizedCommandPath) !== null;
13
+ }
14
+ function isPathLikeCommand(commandPath) {
15
+ return path.isAbsolute(commandPath) || commandPath.includes("/") || commandPath.includes("\\");
16
+ }
17
+ function canExecuteResolvedPath(commandPath) {
18
+ if (!existsSync(commandPath)) {
19
+ return false;
20
+ }
21
+ const extension = path.extname(commandPath).toLowerCase();
22
+ // JS 脚本最终会通过 node 启动,存在即可视为可用。
23
+ if (SCRIPT_EXTENSIONS.has(extension)) {
24
+ return true;
25
+ }
26
+ if (process.platform === "win32") {
27
+ return true;
28
+ }
29
+ try {
30
+ accessSync(commandPath, constants.X_OK);
31
+ return true;
32
+ }
33
+ catch {
34
+ return false;
35
+ }
36
+ }
37
+ function resolveExecutableOnPath(executableName) {
38
+ const pathEntries = (process.env.PATH ?? "")
39
+ .split(path.delimiter)
40
+ .map((entry) => entry.trim())
41
+ .filter(Boolean);
42
+ if (process.platform === "win32") {
43
+ const pathextEntries = (process.env.PATHEXT ?? ".EXE;.CMD;.BAT;.COM")
44
+ .split(";")
45
+ .map((entry) => entry.trim().toLowerCase())
46
+ .filter(Boolean);
47
+ const candidateNames = path.extname(executableName)
48
+ ? [executableName]
49
+ : pathextEntries.map((extension) => `${executableName}${extension.toLowerCase()}`);
50
+ for (const entry of pathEntries) {
51
+ for (const candidateName of candidateNames) {
52
+ const candidatePath = path.join(entry, candidateName);
53
+ if (existsSync(candidatePath)) {
54
+ return candidatePath;
55
+ }
56
+ }
57
+ }
58
+ return null;
59
+ }
60
+ for (const entry of pathEntries) {
61
+ const candidatePath = path.join(entry, executableName);
62
+ if (!existsSync(candidatePath)) {
63
+ continue;
64
+ }
65
+ try {
66
+ accessSync(candidatePath, constants.X_OK);
67
+ return candidatePath;
68
+ }
69
+ catch {
70
+ continue;
71
+ }
72
+ }
73
+ return null;
74
+ }
75
+ function stripWrappingQuotes(value) {
76
+ const trimmed = value.trim();
77
+ if ((trimmed.startsWith("\"") && trimmed.endsWith("\""))
78
+ || (trimmed.startsWith("'") && trimmed.endsWith("'"))) {
79
+ return trimmed.slice(1, -1).trim();
80
+ }
81
+ return trimmed;
82
+ }
83
+ //# sourceMappingURL=command-availability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-availability.js","sourceRoot":"","sources":["../../../../src/shared/utils/command-availability.ts"],"names":[],"mappings":"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"}