@jingyi0605/codingns 0.4.0 → 0.5.1

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 (282) hide show
  1. package/bin/codingns.mjs +425 -1
  2. package/dist/public/assets/AdaptiveButlerPage-B153lk5H.css +1 -0
  3. package/dist/public/assets/AdaptiveButlerPage-SffCV4Vb.js +3 -0
  4. package/dist/public/assets/App-DUAg5urj.css +1 -0
  5. package/dist/public/assets/App-WOLwMld_.js +30 -0
  6. package/dist/public/assets/BootstrapPage--zExdgfM.js +1 -0
  7. package/dist/public/assets/ConversationPage-D9pzRmOg.js +2 -0
  8. package/dist/public/assets/DesktopDetachPreviewPage-DvI9CIKi.js +1 -0
  9. package/dist/public/assets/DesktopWindowPage-D8FpOSLE.js +2 -0
  10. package/dist/public/assets/FileContextPanel-C8T7oqRN.js +1 -0
  11. package/dist/public/assets/GitSidebar-Bze7DNnc.js +6 -0
  12. package/dist/public/assets/MobileCreateSessionSheet-CXSKMnYn.js +1 -0
  13. package/dist/public/assets/MobileSheet-Gzc14EpR.js +1 -0
  14. package/dist/public/assets/MobileTopHeaderFrame-BWorAJ1C.js +1 -0
  15. package/dist/public/assets/MobileWorkspaceSwitcherHeader-DOr4pTUq.js +1 -0
  16. package/dist/public/assets/ServerSettingsModal-BYB0GvTl.js +1 -0
  17. package/dist/public/assets/SessionIndexPage-CR3IARXX.js +1 -0
  18. package/dist/public/assets/SettingsPage-B_BQtnwE.js +1 -0
  19. package/dist/public/assets/TerminalManagerPanel-PQ-EM64j.js +1 -0
  20. package/dist/public/assets/{TerminalPage-6jHZV9Mh.js → TerminalPage-CvnHXBhw.js} +19 -19
  21. package/dist/public/assets/TerminalRuntimeFallbackModal-D7Aq186N.js +1 -0
  22. package/dist/public/assets/ToolFilesPage-Qzkc6K2I.js +1 -0
  23. package/dist/public/assets/ToolGitPage-BdNDN-cV.js +1 -0
  24. package/dist/public/assets/ToolProcessesPage-EXJ9DHWI.js +1 -0
  25. package/dist/public/assets/ToolsHomePage-CjF3CWzR.js +1 -0
  26. package/dist/public/assets/WorkbenchLandingPage-DZPk4SmX.js +1 -0
  27. package/dist/public/assets/WorkbenchLayout-rwQib5In.js +3 -0
  28. package/dist/public/assets/WorkbenchModal-B09hC9b5.js +1 -0
  29. package/dist/public/assets/WorkbenchShellRoute-Cerk5uK7.js +1 -0
  30. package/dist/public/assets/WorkbenchShellRoute-DsW4mBTX.css +1 -0
  31. package/dist/public/assets/WorkspaceDebugDetailPage-Bcq8s-Ma.js +1 -0
  32. package/dist/public/assets/WorkspaceDetailPage-DNAa8pKr.js +1 -0
  33. package/dist/public/assets/WorkspaceHomePage-BoiLuACV.js +1 -0
  34. package/dist/public/assets/butler-records-events-DgWCG364.js +1 -0
  35. package/dist/public/assets/client-runtime-manager-CRQ-F5d2.js +1 -0
  36. package/dist/public/assets/default-session-permission-mode-D0wZ9Jek.js +1 -0
  37. package/dist/public/assets/event-DvH9tcej.js +1 -0
  38. package/dist/public/assets/file-tree-icon-Dp_xhVfD.js +31 -0
  39. package/dist/public/assets/index-C2G8Gmf1.js +42 -0
  40. package/dist/public/assets/index-CpPTUeA3.css +1 -0
  41. package/dist/public/assets/preferences-service-gOt2ZjKZ.js +1 -0
  42. package/dist/public/assets/session-runtime-machine-Dq3pW-UF.js +17 -0
  43. package/dist/public/assets/styles-BWPBZvze.css +1 -0
  44. package/dist/public/assets/styles-CSUx5LGe.js +1 -0
  45. package/dist/public/assets/terminal-runtime-meta-BMT-rSEe.js +1 -0
  46. package/dist/public/assets/useRegisteredDebugTemplates-zMcEOGca.js +1 -0
  47. package/dist/public/assets/window-BWqRixxq.js +1 -0
  48. package/dist/public/index.html +2 -2
  49. package/dist/server/middlewares/auth-guard.d.ts +4 -0
  50. package/dist/server/middlewares/auth-guard.js +42 -4
  51. package/dist/server/middlewares/auth-guard.js.map +1 -1
  52. package/dist/server/modules/assistant-capability/assistant-capability-controller.d.ts +62 -1
  53. package/dist/server/modules/assistant-capability/assistant-capability-controller.js +58 -0
  54. package/dist/server/modules/assistant-capability/assistant-capability-controller.js.map +1 -1
  55. package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +66 -3
  56. package/dist/server/modules/assistant-capability/assistant-capability-service.js +173 -1
  57. package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
  58. package/dist/server/modules/auth/auth-controller.d.ts +11 -1
  59. package/dist/server/modules/auth/auth-controller.js +61 -2
  60. package/dist/server/modules/auth/auth-controller.js.map +1 -1
  61. package/dist/server/modules/auth/auth-device-display-name.d.ts +10 -0
  62. package/dist/server/modules/auth/auth-device-display-name.js +190 -0
  63. package/dist/server/modules/auth/auth-device-display-name.js.map +1 -0
  64. package/dist/server/modules/auth/auth-service.d.ts +80 -5
  65. package/dist/server/modules/auth/auth-service.js +333 -23
  66. package/dist/server/modules/auth/auth-service.js.map +1 -1
  67. package/dist/server/modules/butler/assistant-automation-service.d.ts +2 -0
  68. package/dist/server/modules/butler/assistant-automation-service.js +46 -0
  69. package/dist/server/modules/butler/assistant-automation-service.js.map +1 -1
  70. package/dist/server/modules/butler/assistant-sandbox-cleanup-scheduler.d.ts +32 -0
  71. package/dist/server/modules/butler/assistant-sandbox-cleanup-scheduler.js +93 -0
  72. package/dist/server/modules/butler/assistant-sandbox-cleanup-scheduler.js.map +1 -0
  73. package/dist/server/modules/butler/assistant-sandbox-service.d.ts +16 -2
  74. package/dist/server/modules/butler/assistant-sandbox-service.js +137 -4
  75. package/dist/server/modules/butler/assistant-sandbox-service.js.map +1 -1
  76. package/dist/server/modules/butler/butler-auth-service.js +7 -2
  77. package/dist/server/modules/butler/butler-auth-service.js.map +1 -1
  78. package/dist/server/modules/butler/butler-control-session-service.d.ts +4 -1
  79. package/dist/server/modules/butler/butler-control-session-service.js +20 -1
  80. package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
  81. package/dist/server/modules/butler/butler-follow-up-evaluation-instruction-adapter.d.ts +2 -1
  82. package/dist/server/modules/butler/butler-follow-up-evaluation-instruction-adapter.js +27 -25
  83. package/dist/server/modules/butler/butler-follow-up-evaluation-instruction-adapter.js.map +1 -1
  84. package/dist/server/modules/butler/butler-follow-up-service.d.ts +32 -4
  85. package/dist/server/modules/butler/butler-follow-up-service.js +436 -331
  86. package/dist/server/modules/butler/butler-follow-up-service.js.map +1 -1
  87. package/dist/server/modules/butler/butler-inbox-analysis-service.d.ts +1 -1
  88. package/dist/server/modules/butler/butler-inbox-analysis-service.js.map +1 -1
  89. package/dist/server/modules/butler/butler-inbox-service.js +1 -0
  90. package/dist/server/modules/butler/butler-inbox-service.js.map +1 -1
  91. package/dist/server/modules/butler/butler-session-service.d.ts +3 -1
  92. package/dist/server/modules/butler/butler-session-service.js +15 -1
  93. package/dist/server/modules/butler/butler-session-service.js.map +1 -1
  94. package/dist/server/modules/butler/butler-workspace-context.d.ts +1 -1
  95. package/dist/server/modules/butler/butler-workspace-context.js +54 -28
  96. package/dist/server/modules/butler/butler-workspace-context.js.map +1 -1
  97. package/dist/server/modules/client/client-controller.js +1 -1
  98. package/dist/server/modules/client/client-controller.js.map +1 -1
  99. package/dist/server/modules/client/client-service.d.ts +16 -2
  100. package/dist/server/modules/client/client-service.js +21 -3
  101. package/dist/server/modules/client/client-service.js.map +1 -1
  102. package/dist/server/modules/provider/provider-controller.d.ts +1 -1
  103. package/dist/server/modules/provider/provider-controller.js.map +1 -1
  104. package/dist/server/modules/relay-tunnel/crypto/relay-tunnel-identity-service.d.ts +10 -0
  105. package/dist/server/modules/relay-tunnel/crypto/relay-tunnel-identity-service.js +48 -0
  106. package/dist/server/modules/relay-tunnel/crypto/relay-tunnel-identity-service.js.map +1 -0
  107. package/dist/server/modules/relay-tunnel/crypto/relay-tunnel-packets.d.ts +48 -0
  108. package/dist/server/modules/relay-tunnel/crypto/relay-tunnel-packets.js +11 -0
  109. package/dist/server/modules/relay-tunnel/crypto/relay-tunnel-packets.js.map +1 -0
  110. package/dist/server/modules/relay-tunnel/crypto/relay-tunnel-protocol.d.ts +74 -0
  111. package/dist/server/modules/relay-tunnel/crypto/relay-tunnel-protocol.js +302 -0
  112. package/dist/server/modules/relay-tunnel/crypto/relay-tunnel-protocol.js.map +1 -0
  113. package/dist/server/modules/relay-tunnel/relay-tunnel-controller.d.ts +33 -0
  114. package/dist/server/modules/relay-tunnel/relay-tunnel-controller.js +57 -0
  115. package/dist/server/modules/relay-tunnel/relay-tunnel-controller.js.map +1 -0
  116. package/dist/server/modules/relay-tunnel/relay-tunnel-edge-proof.d.ts +9 -0
  117. package/dist/server/modules/relay-tunnel/relay-tunnel-edge-proof.js +25 -0
  118. package/dist/server/modules/relay-tunnel/relay-tunnel-edge-proof.js.map +1 -0
  119. package/dist/server/modules/relay-tunnel/relay-tunnel-gateway-service.d.ts +18 -0
  120. package/dist/server/modules/relay-tunnel/relay-tunnel-gateway-service.js +230 -0
  121. package/dist/server/modules/relay-tunnel/relay-tunnel-gateway-service.js.map +1 -0
  122. package/dist/server/modules/relay-tunnel/relay-tunnel-runtime-adapter.d.ts +41 -0
  123. package/dist/server/modules/relay-tunnel/relay-tunnel-runtime-adapter.js +443 -0
  124. package/dist/server/modules/relay-tunnel/relay-tunnel-runtime-adapter.js.map +1 -0
  125. package/dist/server/modules/relay-tunnel/relay-tunnel-service.d.ts +112 -0
  126. package/dist/server/modules/relay-tunnel/relay-tunnel-service.js +966 -0
  127. package/dist/server/modules/relay-tunnel/relay-tunnel-service.js.map +1 -0
  128. package/dist/server/modules/sessions/codex-app-server-helper-client.d.ts +2 -1
  129. package/dist/server/modules/sessions/codex-app-server-helper-client.js +78 -0
  130. package/dist/server/modules/sessions/codex-app-server-helper-client.js.map +1 -1
  131. package/dist/server/modules/sessions/codex-app-server-helper-process.js +84 -2
  132. package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -1
  133. package/dist/server/modules/sessions/provider-session-delete-cli.d.ts +15 -0
  134. package/dist/server/modules/sessions/provider-session-delete-cli.js +148 -0
  135. package/dist/server/modules/sessions/provider-session-delete-cli.js.map +1 -0
  136. package/dist/server/modules/sessions/session-controller.d.ts +4 -1
  137. package/dist/server/modules/sessions/session-controller.js +4 -0
  138. package/dist/server/modules/sessions/session-controller.js.map +1 -1
  139. package/dist/server/modules/sessions/session-history-service.d.ts +17 -0
  140. package/dist/server/modules/sessions/session-history-service.js +150 -1
  141. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  142. package/dist/server/modules/sessions/session-live-runtime-router-service.d.ts +25 -0
  143. package/dist/server/modules/sessions/session-live-runtime-router-service.js +42 -0
  144. package/dist/server/modules/sessions/session-live-runtime-router-service.js.map +1 -0
  145. package/dist/server/modules/sessions/session-live-runtime-service.js +34 -18
  146. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  147. package/dist/server/modules/sessions/session-message-attachment-service.d.ts +1 -0
  148. package/dist/server/modules/sessions/session-message-attachment-service.js +22 -0
  149. package/dist/server/modules/sessions/session-message-attachment-service.js.map +1 -1
  150. package/dist/server/modules/sessions/session-permission-request-service.d.ts +1 -0
  151. package/dist/server/modules/sessions/session-permission-request-service.js +200 -5
  152. package/dist/server/modules/sessions/session-permission-request-service.js.map +1 -1
  153. package/dist/server/modules/sessions/session-provider-error-mapper.js +32 -0
  154. package/dist/server/modules/sessions/session-provider-error-mapper.js.map +1 -1
  155. package/dist/server/modules/sessions/session-provider-usage-guard-service.d.ts +37 -0
  156. package/dist/server/modules/sessions/session-provider-usage-guard-service.js +179 -0
  157. package/dist/server/modules/sessions/session-provider-usage-guard-service.js.map +1 -0
  158. package/dist/server/modules/sessions/session-provider-usage-limit.d.ts +17 -0
  159. package/dist/server/modules/sessions/session-provider-usage-limit.js +465 -0
  160. package/dist/server/modules/sessions/session-provider-usage-limit.js.map +1 -0
  161. package/dist/server/modules/skills/assistant-runtime-skill-catalog.d.ts +8 -0
  162. package/dist/server/modules/skills/assistant-runtime-skill-catalog.js +26 -0
  163. package/dist/server/modules/skills/assistant-runtime-skill-catalog.js.map +1 -0
  164. package/dist/server/modules/skills/assistant-runtime-skill-cleanup.d.ts +9 -0
  165. package/dist/server/modules/skills/assistant-runtime-skill-cleanup.js +55 -0
  166. package/dist/server/modules/skills/assistant-runtime-skill-cleanup.js.map +1 -0
  167. package/dist/server/modules/skills/builtin-skill-service.js +1 -6
  168. package/dist/server/modules/skills/builtin-skill-service.js.map +1 -1
  169. package/dist/server/modules/skills/skill-controller.d.ts +2 -2
  170. package/dist/server/modules/skills/skill-controller.js +9 -1
  171. package/dist/server/modules/skills/skill-controller.js.map +1 -1
  172. package/dist/server/modules/skills/skill-manager-service.d.ts +26 -1
  173. package/dist/server/modules/skills/skill-manager-service.js +346 -90
  174. package/dist/server/modules/skills/skill-manager-service.js.map +1 -1
  175. package/dist/server/modules/skills/skill-name-policy.d.ts +2 -0
  176. package/dist/server/modules/skills/skill-name-policy.js +10 -0
  177. package/dist/server/modules/skills/skill-name-policy.js.map +1 -0
  178. package/dist/server/modules/tailscale/tailscale-service.d.ts +2 -0
  179. package/dist/server/modules/tailscale/tailscale-service.js +21 -8
  180. package/dist/server/modules/tailscale/tailscale-service.js.map +1 -1
  181. package/dist/server/modules/tasks/task-types.d.ts +3 -0
  182. package/dist/server/modules/tasks/task-types.js +3 -0
  183. package/dist/server/modules/tasks/task-types.js.map +1 -1
  184. package/dist/server/modules/terminal/template-reverse-proxy-service.js +71 -3
  185. package/dist/server/modules/terminal/template-reverse-proxy-service.js.map +1 -1
  186. package/dist/server/modules/workbench/snapshot-revision.d.ts +4 -0
  187. package/dist/server/modules/workbench/snapshot-revision.js +13 -0
  188. package/dist/server/modules/workbench/snapshot-revision.js.map +1 -0
  189. package/dist/server/modules/workbench/workbench-service.d.ts +1 -0
  190. package/dist/server/modules/workbench/workbench-service.js +3 -2
  191. package/dist/server/modules/workbench/workbench-service.js.map +1 -1
  192. package/dist/server/modules/workbench/workspace-panel-snapshot-service.d.ts +6 -1
  193. package/dist/server/modules/workbench/workspace-panel-snapshot-service.js +10 -8
  194. package/dist/server/modules/workbench/workspace-panel-snapshot-service.js.map +1 -1
  195. package/dist/server/routes/assistant.js +30 -0
  196. package/dist/server/routes/assistant.js.map +1 -1
  197. package/dist/server/routes/auth.js +4 -0
  198. package/dist/server/routes/auth.js.map +1 -1
  199. package/dist/server/routes/sessions.js +1 -0
  200. package/dist/server/routes/sessions.js.map +1 -1
  201. package/dist/server/routes/system.d.ts +2 -1
  202. package/dist/server/routes/system.js +13 -1
  203. package/dist/server/routes/system.js.map +1 -1
  204. package/dist/server/server/create-server.d.ts +10 -0
  205. package/dist/server/server/create-server.js +83 -13
  206. package/dist/server/server/create-server.js.map +1 -1
  207. package/dist/server/shared/utils/tokens.d.ts +3 -1
  208. package/dist/server/shared/utils/tokens.js +9 -2
  209. package/dist/server/shared/utils/tokens.js.map +1 -1
  210. package/dist/server/storage/repositories/assistant-automation-task-repository.d.ts +2 -0
  211. package/dist/server/storage/repositories/assistant-automation-task-repository.js +8 -2
  212. package/dist/server/storage/repositories/assistant-automation-task-repository.js.map +1 -1
  213. package/dist/server/storage/repositories/assistant-sandbox-workspace-repository.d.ts +1 -0
  214. package/dist/server/storage/repositories/assistant-sandbox-workspace-repository.js +27 -0
  215. package/dist/server/storage/repositories/assistant-sandbox-workspace-repository.js.map +1 -1
  216. package/dist/server/storage/repositories/auth-device-repository.d.ts +22 -0
  217. package/dist/server/storage/repositories/auth-device-repository.js +97 -0
  218. package/dist/server/storage/repositories/auth-device-repository.js.map +1 -0
  219. package/dist/server/storage/repositories/auth-device-session-repository.d.ts +17 -0
  220. package/dist/server/storage/repositories/auth-device-session-repository.js +82 -0
  221. package/dist/server/storage/repositories/auth-device-session-repository.js.map +1 -0
  222. package/dist/server/storage/repositories/auth-login-event-repository.d.ts +9 -0
  223. package/dist/server/storage/repositories/auth-login-event-repository.js +53 -0
  224. package/dist/server/storage/repositories/auth-login-event-repository.js.map +1 -0
  225. package/dist/server/storage/repositories/auth-token-repository.d.ts +4 -0
  226. package/dist/server/storage/repositories/auth-token-repository.js +58 -5
  227. package/dist/server/storage/repositories/auth-token-repository.js.map +1 -1
  228. package/dist/server/storage/repositories/butler-follow-up-task-repository.js +21 -3
  229. package/dist/server/storage/repositories/butler-follow-up-task-repository.js.map +1 -1
  230. package/dist/server/storage/repositories/instance-relay-tunnel-identity-repository.d.ts +8 -0
  231. package/dist/server/storage/repositories/instance-relay-tunnel-identity-repository.js +52 -0
  232. package/dist/server/storage/repositories/instance-relay-tunnel-identity-repository.js.map +1 -0
  233. package/dist/server/storage/repositories/instance-relay-tunnel-repository.d.ts +10 -0
  234. package/dist/server/storage/repositories/instance-relay-tunnel-repository.js +153 -0
  235. package/dist/server/storage/repositories/instance-relay-tunnel-repository.js.map +1 -0
  236. package/dist/server/storage/repositories/instance-tailscale-repository.js +6 -3
  237. package/dist/server/storage/repositories/instance-tailscale-repository.js.map +1 -1
  238. package/dist/server/storage/repositories/managed-skill-repository.d.ts +2 -1
  239. package/dist/server/storage/repositories/managed-skill-repository.js +14 -4
  240. package/dist/server/storage/repositories/managed-skill-repository.js.map +1 -1
  241. package/dist/server/storage/repositories/session-message-attachment-repository.d.ts +2 -0
  242. package/dist/server/storage/repositories/session-message-attachment-repository.js +24 -0
  243. package/dist/server/storage/repositories/session-message-attachment-repository.js.map +1 -1
  244. package/dist/server/storage/sqlite/client.js +297 -2
  245. package/dist/server/storage/sqlite/client.js.map +1 -1
  246. package/dist/server/storage/sqlite/schema.sql +122 -4
  247. package/dist/server/types/domain.d.ts +91 -1
  248. package/dist/server/ws/workbench-ws-hub.js +225 -99
  249. package/dist/server/ws/workbench-ws-hub.js.map +1 -1
  250. package/dist/server/ws/ws-auth-guard.js +1 -4
  251. package/dist/server/ws/ws-auth-guard.js.map +1 -1
  252. package/dist/server/ws/ws-server.d.ts +1 -1
  253. package/dist/server/ws/ws-server.js.map +1 -1
  254. package/node_modules/@codingns/session-sync-core/dist/codex-resume-history.d.ts +1 -0
  255. package/node_modules/@codingns/session-sync-core/dist/codex-resume-history.js +80 -0
  256. package/node_modules/@codingns/session-sync-core/dist/codex-resume-history.js.map +1 -0
  257. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.d.ts +1 -0
  258. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js +11 -1
  259. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js.map +1 -1
  260. package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +11 -0
  261. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +132 -21
  262. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
  263. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.d.ts +2 -0
  264. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js +53 -1
  265. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js.map +1 -1
  266. package/node_modules/@codingns/session-sync-core/dist/providers/kimi.d.ts +1 -0
  267. package/node_modules/@codingns/session-sync-core/dist/providers/kimi.js +10 -1
  268. package/node_modules/@codingns/session-sync-core/dist/providers/kimi.js.map +1 -1
  269. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.d.ts +1 -0
  270. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js +30 -0
  271. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js.map +1 -1
  272. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.d.ts +5 -1
  273. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +145 -58
  274. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
  275. package/node_modules/@codingns/session-sync-core/dist/services.d.ts +1 -0
  276. package/node_modules/@codingns/session-sync-core/dist/services.js +7 -0
  277. package/node_modules/@codingns/session-sync-core/dist/services.js.map +1 -1
  278. package/node_modules/@codingns/session-sync-core/dist/types.d.ts +2 -0
  279. package/package.json +1 -1
  280. package/scripts/postinstall.mjs +0 -33
  281. package/dist/public/assets/index-CSVhg7I8.js +0 -123
  282. package/dist/public/assets/index-Ce1VX19m.css +0 -1
@@ -2,6 +2,7 @@ import { listTerminalShellOptions } from "../terminal/terminal-shell.js";
2
2
  import { isTerminalDebugEnabled, logTerminalDebug, terminalDebugNowMs } from "../../shared/utils/terminal-debug-log.js";
3
3
  import { createTaskManager } from "../tasks/task-manager.js";
4
4
  import { HOST_TASK_TYPES } from "../tasks/task-types.js";
5
+ import { withSnapshotRevision } from "./snapshot-revision.js";
5
6
  const FILE_TREE_CACHE_MAX_AGE_MS = 5_000;
6
7
  const GIT_SNAPSHOT_CACHE_MAX_AGE_MS = 15_000;
7
8
  const TERMINAL_MANAGER_CACHE_MAX_AGE_MS = 4_000;
@@ -44,11 +45,11 @@ export class WorkspacePanelSnapshotService {
44
45
  return inflight;
45
46
  }
46
47
  const task = Promise.resolve().then(() => {
47
- const snapshot = {
48
+ const snapshot = withSnapshotRevision({
48
49
  workspaceId,
49
50
  path: normalizedPath,
50
51
  items: this.fileTreeService.list(workspaceId, normalizedPath || undefined, options?.limit)
51
- };
52
+ });
52
53
  this.fileTreeCache.set(cacheKey, {
53
54
  snapshot,
54
55
  cachedAt: Date.now()
@@ -105,14 +106,14 @@ export class WorkspacePanelSnapshotService {
105
106
  this.gitReadService.getHistory(workspaceId, null, GIT_HISTORY_LIMIT, controller.signal),
106
107
  this.gitReadService.getBranches(workspaceId, controller.signal)
107
108
  ]);
108
- const snapshot = {
109
+ const snapshot = withSnapshotRevision({
109
110
  workspaceId,
110
111
  status,
111
112
  history: historyPage.items,
112
113
  historyTotalCount: historyPage.totalCount,
113
114
  historyNextCursor: historyPage.nextCursor,
114
115
  branches
115
- };
116
+ });
116
117
  this.gitSnapshotCache.set(workspaceId, {
117
118
  snapshot,
118
119
  cachedAt: Date.now()
@@ -163,11 +164,12 @@ export class WorkspacePanelSnapshotService {
163
164
  }
164
165
  const task = this.workspaceService.getManagementSummary(workspaceId)
165
166
  .then((snapshot) => {
167
+ const nextSnapshot = withSnapshotRevision(snapshot);
166
168
  this.workspaceManagementCache.set(workspaceId, {
167
- snapshot,
169
+ snapshot: nextSnapshot,
168
170
  cachedAt: Date.now()
169
171
  });
170
- return snapshot;
172
+ return nextSnapshot;
171
173
  })
172
174
  .finally(() => {
173
175
  this.workspaceManagementInflight.delete(workspaceId);
@@ -258,13 +260,13 @@ export class WorkspacePanelSnapshotService {
258
260
  const shellOptions = listTerminalShellOptions();
259
261
  const shellOptionsMs = terminalDebugNowMs() - shellOptionsStartedAtMs;
260
262
  const assembleStartedAtMs = terminalDebugNowMs();
261
- const snapshot = {
263
+ const snapshot = withSnapshotRevision({
262
264
  workspaceId,
263
265
  terminals,
264
266
  templates,
265
267
  templateStatuses,
266
268
  shellOptions
267
- };
269
+ });
268
270
  const assembleMs = terminalDebugNowMs() - assembleStartedAtMs;
269
271
  this.terminalManagerCache.set(workspaceId, {
270
272
  snapshot,
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-panel-snapshot-service.js","sourceRoot":"","sources":["../../../../src/modules/workbench/workspace-panel-snapshot-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-panel-snapshot-service.js","sourceRoot":"","sources":["../../../../src/modules/workbench/workspace-panel-snapshot-service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,17 @@
1
1
  export async function registerAssistantCapabilityRoutes(app, assistantCapabilityController) {
2
+ app.addHook("preSerialization", async (request, _reply, payload) => {
3
+ const routePath = request.url.split("?")[0] ?? request.url;
4
+ if (!routePath.startsWith("/api/assistant/")) {
5
+ return payload;
6
+ }
7
+ if (!request.auth?.callerKind || !isAssistantCapabilityReceipt(payload)) {
8
+ return payload;
9
+ }
10
+ return {
11
+ ...payload,
12
+ callerKind: request.auth.callerKind
13
+ };
14
+ });
2
15
  app.get("/api/assistant/capabilities", assistantCapabilityController.listCapabilities);
3
16
  app.get("/api/assistant/projects", assistantCapabilityController.listProjects);
4
17
  app.get("/api/assistant/projects/:projectId", assistantCapabilityController.getProject);
@@ -6,6 +19,7 @@ export async function registerAssistantCapabilityRoutes(app, assistantCapability
6
19
  app.post("/api/assistant/projects/:projectId/sessions", assistantCapabilityController.startProjectSession);
7
20
  app.post("/api/assistant/sessions/start", assistantCapabilityController.startSession);
8
21
  app.get("/api/assistant/sessions/:sessionId", assistantCapabilityController.getSession);
22
+ app.delete("/api/assistant/sessions/:sessionId", assistantCapabilityController.deleteSession);
9
23
  app.get("/api/assistant/sessions/:sessionId/messages", assistantCapabilityController.listSessionMessages);
10
24
  app.get("/api/assistant/sessions/:sessionId/runtime", assistantCapabilityController.getSessionRuntime);
11
25
  app.post("/api/assistant/sessions/:sessionId/messages", assistantCapabilityController.sendSessionMessage);
@@ -27,6 +41,13 @@ export async function registerAssistantCapabilityRoutes(app, assistantCapability
27
41
  app.get("/api/assistant/timers/:timerId", assistantCapabilityController.getTimer);
28
42
  app.post("/api/assistant/timers", assistantCapabilityController.createTimer);
29
43
  app.post("/api/assistant/timers/:timerId/cancel", assistantCapabilityController.cancelTimer);
44
+ app.get("/api/assistant/follow-ups", assistantCapabilityController.listFollowUps);
45
+ app.get("/api/assistant/follow-ups/:taskId", assistantCapabilityController.getFollowUp);
46
+ app.post("/api/assistant/follow-ups", assistantCapabilityController.createFollowUp);
47
+ app.post("/api/assistant/follow-ups/:taskId/continue", assistantCapabilityController.continueFollowUp);
48
+ app.post("/api/assistant/follow-ups/:taskId/waiting-user", assistantCapabilityController.markFollowUpWaitingUser);
49
+ app.post("/api/assistant/follow-ups/:taskId/complete", assistantCapabilityController.completeFollowUp);
50
+ app.post("/api/assistant/follow-ups/:taskId/fail", assistantCapabilityController.failFollowUp);
30
51
  app.get("/api/assistant/terminals", assistantCapabilityController.listTerminals);
31
52
  app.get("/api/assistant/terminals/:terminalId/history", assistantCapabilityController.readTerminalHistory);
32
53
  app.post("/api/assistant/terminals/:terminalId/input", assistantCapabilityController.sendTerminalInput);
@@ -55,4 +76,13 @@ export async function registerAssistantCapabilityRoutes(app, assistantCapability
55
76
  app.get("/api/assistant/debug-targets/:targetId/runtimes", assistantCapabilityController.listDebugRuntimes);
56
77
  app.get("/api/assistant/debug-runtimes/:runtimeId", assistantCapabilityController.getDebugRuntime);
57
78
  }
79
+ function isAssistantCapabilityReceipt(payload) {
80
+ if (typeof payload !== "object" || payload === null) {
81
+ return false;
82
+ }
83
+ const candidate = payload;
84
+ return (candidate.ok === true
85
+ && typeof candidate.capability === "string"
86
+ && typeof candidate.auditId === "string");
87
+ }
58
88
  //# sourceMappingURL=assistant.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assistant.js","sourceRoot":"","sources":["../../../src/routes/assistant.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assistant.js","sourceRoot":"","sources":["../../../src/routes/assistant.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,9 @@ export async function registerAuthRoutes(app, authController) {
2
2
  app.post("/api/auth/login", authController.login);
3
3
  app.post("/api/auth/refresh", authController.refresh);
4
4
  app.post("/api/auth/logout", authController.logout);
5
+ app.get("/api/auth/devices", authController.getDevices);
6
+ app.post("/api/auth/devices/current/primary", authController.updateCurrentDevicePrimary);
7
+ app.post("/api/auth/devices/logout-others", authController.logoutOtherDevices);
8
+ app.post("/api/auth/devices/:deviceId/logout", authController.logoutDevice);
5
9
  }
6
10
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/routes/auth.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAoB,EACpB,cAA8B;IAE9B,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IAClD,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACtD,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/routes/auth.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAoB,EACpB,cAA8B;IAE9B,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IAClD,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACtD,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACpD,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACxD,GAAG,CAAC,IAAI,CAAC,mCAAmC,EAAE,cAAc,CAAC,0BAA0B,CAAC,CAAC;IACzF,GAAG,CAAC,IAAI,CAAC,iCAAiC,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAC/E,GAAG,CAAC,IAAI,CAAC,oCAAoC,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;AAC9E,CAAC"}
@@ -31,6 +31,7 @@ export async function registerSessionRoutes(app, sessionController) {
31
31
  app.post("/api/sessions/start-live", {
32
32
  bodyLimit: SESSION_MESSAGE_BODY_LIMIT_BYTES
33
33
  }, sessionController.startLive);
34
+ app.delete("/api/sessions/:sessionId", sessionController.deleteSession);
34
35
  app.delete("/api/sessions/:sessionId/queue/:queueItemId", sessionController.deleteQueuedMessage);
35
36
  }
36
37
  //# sourceMappingURL=sessions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../src/routes/sessions.ts"],"names":[],"mappings":"AAIA,uDAAuD;AACvD,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"}
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../src/routes/sessions.ts"],"names":[],"mappings":"AAIA,uDAAuD;AACvD,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,0BAA0B,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACxE,GAAG,CAAC,MAAM,CAAC,6CAA6C,EAAE,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AACnG,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { FastifyInstance } from "fastify";
2
2
  import type { ModelSwitchController } from "../modules/model-switch/model-switch-controller.js";
3
+ import type { RelayTunnelController } from "../modules/relay-tunnel/relay-tunnel-controller.js";
3
4
  import type { TailscaleController } from "../modules/tailscale/tailscale-controller.js";
4
- export declare function registerSystemRoutes(app: FastifyInstance, tailscaleController: TailscaleController, modelSwitchController: ModelSwitchController): Promise<void>;
5
+ export declare function registerSystemRoutes(app: FastifyInstance, tailscaleController: TailscaleController, relayTunnelController: RelayTunnelController, modelSwitchController: ModelSwitchController): Promise<void>;
@@ -1,10 +1,22 @@
1
- export async function registerSystemRoutes(app, tailscaleController, modelSwitchController) {
1
+ export async function registerSystemRoutes(app, tailscaleController, relayTunnelController, modelSwitchController) {
2
2
  app.get("/api/system/tailscale/status", tailscaleController.getStatus);
3
3
  app.put("/api/system/tailscale/config", tailscaleController.updateConfig);
4
4
  app.post("/api/system/tailscale/enable", tailscaleController.enable);
5
5
  app.post("/api/system/tailscale/disable", tailscaleController.disable);
6
6
  app.post("/api/system/tailscale/login", tailscaleController.login);
7
7
  app.post("/api/system/tailscale/logout", tailscaleController.logout);
8
+ app.get("/api/system/relay-tunnel/status", relayTunnelController.getStatus);
9
+ app.post("/api/system/relay-tunnel/identity/ensure", relayTunnelController.ensureIdentity);
10
+ app.put("/api/system/relay-tunnel/config", relayTunnelController.updateConfig);
11
+ app.post("/api/system/relay-tunnel/control/login", relayTunnelController.loginControl);
12
+ app.post("/api/system/relay-tunnel/control/logout", relayTunnelController.logoutControl);
13
+ app.get("/api/system/relay-tunnel/control/host-label-availability", relayTunnelController.checkHostLabelAvailability);
14
+ app.post("/api/system/relay-tunnel/control/bind", relayTunnelController.bindControlHost);
15
+ app.get("/api/system/relay-tunnel/control/wallet", relayTunnelController.getTrafficWallet);
16
+ app.post("/api/system/relay-tunnel/bind", relayTunnelController.bind);
17
+ app.post("/api/system/relay-tunnel/unbind", relayTunnelController.unbind);
18
+ app.post("/api/system/relay-tunnel/enable", relayTunnelController.enable);
19
+ app.post("/api/system/relay-tunnel/disable", relayTunnelController.disable);
8
20
  app.get("/api/system/model-switch", modelSwitchController.getSnapshot);
9
21
  app.post("/api/system/model-switch", modelSwitchController.switchPreset);
10
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"system.js","sourceRoot":"","sources":["../../../src/routes/system.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAoB,EACpB,mBAAwC,EACxC,qBAA4C;IAE5C,GAAG,CAAC,GAAG,CAAC,8BAA8B,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACvE,GAAG,CAAC,GAAG,CAAC,8BAA8B,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC1E,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACrE,GAAG,CAAC,IAAI,CAAC,+BAA+B,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACvE,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACnE,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACrE,GAAG,CAAC,GAAG,CAAC,0BAA0B,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACvE,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;AAC3E,CAAC"}
1
+ {"version":3,"file":"system.js","sourceRoot":"","sources":["../../../src/routes/system.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAoB,EACpB,mBAAwC,EACxC,qBAA4C,EAC5C,qBAA4C;IAE5C,GAAG,CAAC,GAAG,CAAC,8BAA8B,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACvE,GAAG,CAAC,GAAG,CAAC,8BAA8B,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC1E,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACrE,GAAG,CAAC,IAAI,CAAC,+BAA+B,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACvE,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACnE,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACrE,GAAG,CAAC,GAAG,CAAC,iCAAiC,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC5E,GAAG,CAAC,IAAI,CAAC,0CAA0C,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAC;IAC3F,GAAG,CAAC,GAAG,CAAC,iCAAiC,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAC/E,GAAG,CAAC,IAAI,CAAC,wCAAwC,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACvF,GAAG,CAAC,IAAI,CAAC,yCAAyC,EAAE,qBAAqB,CAAC,aAAa,CAAC,CAAC;IACzF,GAAG,CAAC,GAAG,CACL,0DAA0D,EAC1D,qBAAqB,CAAC,0BAA0B,CACjD,CAAC;IACF,GAAG,CAAC,IAAI,CAAC,uCAAuC,EAAE,qBAAqB,CAAC,eAAe,CAAC,CAAC;IACzF,GAAG,CAAC,GAAG,CAAC,yCAAyC,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IAC3F,GAAG,CAAC,IAAI,CAAC,+BAA+B,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACtE,GAAG,CAAC,IAAI,CAAC,iCAAiC,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC1E,GAAG,CAAC,IAAI,CAAC,iCAAiC,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC1E,GAAG,CAAC,IAAI,CAAC,kCAAkC,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC5E,GAAG,CAAC,GAAG,CAAC,0BAA0B,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACvE,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;AAC3E,CAAC"}
@@ -53,6 +53,9 @@ import { WorkspaceService } from "../modules/workspace/workspace-service.js";
53
53
  import { AssistantAutomationRunRepository } from "../storage/repositories/assistant-automation-run-repository.js";
54
54
  import { AssistantSandboxWorkspaceRepository } from "../storage/repositories/assistant-sandbox-workspace-repository.js";
55
55
  import { AssistantAutomationTaskRepository } from "../storage/repositories/assistant-automation-task-repository.js";
56
+ import { AuthDeviceRepository } from "../storage/repositories/auth-device-repository.js";
57
+ import { AuthDeviceSessionRepository } from "../storage/repositories/auth-device-session-repository.js";
58
+ import { AuthLoginEventRepository } from "../storage/repositories/auth-login-event-repository.js";
56
59
  import { AuthTokenRepository } from "../storage/repositories/auth-token-repository.js";
57
60
  import { AuthLoginAttemptRepository } from "../storage/repositories/auth-login-attempt-repository.js";
58
61
  import { AuthUserRepository } from "../storage/repositories/auth-user-repository.js";
@@ -94,6 +97,8 @@ import { SessionSendQueueRepository } from "../storage/repositories/session-send
94
97
  import { SessionStateRepository } from "../storage/repositories/session-state-repository.js";
95
98
  import { SessionStatusSnapshotRepository } from "../storage/repositories/session-status-snapshot-repository.js";
96
99
  import { InstanceTailscaleRepository } from "../storage/repositories/instance-tailscale-repository.js";
100
+ import { InstanceRelayTunnelIdentityRepository } from "../storage/repositories/instance-relay-tunnel-identity-repository.js";
101
+ import { InstanceRelayTunnelRepository } from "../storage/repositories/instance-relay-tunnel-repository.js";
97
102
  import { SkillTargetBindingRepository } from "../storage/repositories/skill-target-binding-repository.js";
98
103
  import { TerminalCommandTemplateRepository } from "../storage/repositories/terminal-command-template-repository.js";
99
104
  import { TerminalInstanceRepository } from "../storage/repositories/terminal-instance-repository.js";
@@ -116,6 +121,9 @@ export declare function createServer(config: HostConfig): {
116
121
  bootstrapStateRepository: BootstrapStateRepository;
117
122
  authUserRepository: AuthUserRepository;
118
123
  authTokenRepository: AuthTokenRepository;
124
+ authDeviceRepository: AuthDeviceRepository;
125
+ authDeviceSessionRepository: AuthDeviceSessionRepository;
126
+ authLoginEventRepository: AuthLoginEventRepository;
119
127
  authLoginAttemptRepository: AuthLoginAttemptRepository;
120
128
  assistantAutomationTaskRepository: AssistantAutomationTaskRepository;
121
129
  assistantAutomationRunRepository: AssistantAutomationRunRepository;
@@ -160,6 +168,8 @@ export declare function createServer(config: HostConfig): {
160
168
  sessionStateRepository: SessionStateRepository;
161
169
  sessionStatusSnapshotRepository: SessionStatusSnapshotRepository;
162
170
  instanceTailscaleRepository: InstanceTailscaleRepository;
171
+ instanceRelayTunnelIdentityRepository: InstanceRelayTunnelIdentityRepository;
172
+ instanceRelayTunnelRepository: InstanceRelayTunnelRepository;
163
173
  skillTargetBindingRepository: SkillTargetBindingRepository;
164
174
  userQuickPhrasePreferenceRepository: UserQuickPhrasePreferenceRepository;
165
175
  userPreferenceProfileRepository: UserPreferenceProfileRepository;
@@ -10,6 +10,7 @@ import { BootstrapController } from "../modules/bootstrap/bootstrap-controller.j
10
10
  import { BootstrapService } from "../modules/bootstrap/bootstrap-service.js";
11
11
  import { AssistantAutomationService } from "../modules/butler/assistant-automation-service.js";
12
12
  import { AssistantSandboxService } from "../modules/butler/assistant-sandbox-service.js";
13
+ import { AssistantSandboxCleanupScheduler } from "../modules/butler/assistant-sandbox-cleanup-scheduler.js";
13
14
  import { ButlerControlTimerScheduler } from "../modules/butler/butler-control-timer-scheduler.js";
14
15
  import { ButlerControlTimerService } from "../modules/butler/butler-control-timer-service.js";
15
16
  import { ButlerControlSessionService } from "../modules/butler/butler-control-session-service.js";
@@ -70,6 +71,9 @@ import { ProfileController } from "../modules/preferences/profile-controller.js"
70
71
  import { PreferenceProfileService } from "../modules/preferences/profile-service.js";
71
72
  import { QuickPhraseController } from "../modules/preferences/quick-phrase-controller.js";
72
73
  import { QuickPhraseService } from "../modules/preferences/quick-phrase-service.js";
74
+ import { RelayTunnelController } from "../modules/relay-tunnel/relay-tunnel-controller.js";
75
+ import { RelayTunnelRuntimeEdgeAdapter } from "../modules/relay-tunnel/relay-tunnel-runtime-adapter.js";
76
+ import { RelayTunnelService } from "../modules/relay-tunnel/relay-tunnel-service.js";
73
77
  import { CcSwitchAdapter } from "../modules/model-switch/cc-switch-adapter.js";
74
78
  import { ModelSwitchController } from "../modules/model-switch/model-switch-controller.js";
75
79
  import { ModelSwitchService } from "../modules/model-switch/model-switch-service.js";
@@ -77,6 +81,7 @@ import { ProviderController } from "../modules/provider/provider-controller.js";
77
81
  import { disposeSharedProviderDiscoveryHelperClient } from "../modules/provider/provider-discovery-helper-client.js";
78
82
  import { SkillController } from "../modules/skills/skill-controller.js";
79
83
  import { syncBuiltinSkillsOnStartup } from "../modules/skills/builtin-skill-service.js";
84
+ import { cleanupLegacyAssistantRuntimeSkillCopies } from "../modules/skills/assistant-runtime-skill-cleanup.js";
80
85
  import { SkillManagerService } from "../modules/skills/skill-manager-service.js";
81
86
  import { createDefaultSkillTargetAdapters } from "../modules/skills/skill-target-adapter.js";
82
87
  import { TailscaleManager } from "../modules/tailscale/tailscale-manager.js";
@@ -87,7 +92,9 @@ import { SessionController } from "../modules/sessions/session-controller.js";
87
92
  import { SessionChangedFileService } from "../modules/sessions/session-changed-file-service.js";
88
93
  import { SessionActivityAuthorityService } from "../modules/sessions/session-activity-authority-service.js";
89
94
  import { SessionHistoryService } from "../modules/sessions/session-history-service.js";
95
+ import { SessionLiveRuntimeRouterService } from "../modules/sessions/session-live-runtime-router-service.js";
90
96
  import { SessionLiveRuntimeService } from "../modules/sessions/session-live-runtime-service.js";
97
+ import { SessionProviderUsageLimitGuardService } from "../modules/sessions/session-provider-usage-guard-service.js";
91
98
  import { SessionMessageAttachmentService } from "../modules/sessions/session-message-attachment-service.js";
92
99
  import { EventLoopMonitor } from "../modules/tasks/event-loop-monitor.js";
93
100
  import { ObservabilityController } from "../modules/tasks/observability-controller.js";
@@ -138,6 +145,9 @@ import { startTerminalDebugEventLoopLagMonitor } from "../shared/utils/terminal-
138
145
  import { AssistantAutomationRunRepository } from "../storage/repositories/assistant-automation-run-repository.js";
139
146
  import { AssistantSandboxWorkspaceRepository } from "../storage/repositories/assistant-sandbox-workspace-repository.js";
140
147
  import { AssistantAutomationTaskRepository } from "../storage/repositories/assistant-automation-task-repository.js";
148
+ import { AuthDeviceRepository } from "../storage/repositories/auth-device-repository.js";
149
+ import { AuthDeviceSessionRepository } from "../storage/repositories/auth-device-session-repository.js";
150
+ import { AuthLoginEventRepository } from "../storage/repositories/auth-login-event-repository.js";
141
151
  import { AuthTokenRepository } from "../storage/repositories/auth-token-repository.js";
142
152
  import { AuthLoginAttemptRepository } from "../storage/repositories/auth-login-attempt-repository.js";
143
153
  import { AuthUserRepository } from "../storage/repositories/auth-user-repository.js";
@@ -179,6 +189,8 @@ import { SessionSendQueueRepository } from "../storage/repositories/session-send
179
189
  import { SessionStateRepository } from "../storage/repositories/session-state-repository.js";
180
190
  import { SessionStatusSnapshotRepository } from "../storage/repositories/session-status-snapshot-repository.js";
181
191
  import { InstanceTailscaleRepository } from "../storage/repositories/instance-tailscale-repository.js";
192
+ import { InstanceRelayTunnelIdentityRepository } from "../storage/repositories/instance-relay-tunnel-identity-repository.js";
193
+ import { InstanceRelayTunnelRepository } from "../storage/repositories/instance-relay-tunnel-repository.js";
182
194
  import { SkillTargetBindingRepository } from "../storage/repositories/skill-target-binding-repository.js";
183
195
  import { TerminalCommandTemplateRepository } from "../storage/repositories/terminal-command-template-repository.js";
184
196
  import { TerminalInstanceRepository } from "../storage/repositories/terminal-instance-repository.js";
@@ -211,6 +223,9 @@ export function createServer(config) {
211
223
  bootstrapStateRepository: new BootstrapStateRepository(database.db),
212
224
  authUserRepository: new AuthUserRepository(database.db),
213
225
  authTokenRepository: new AuthTokenRepository(database.db),
226
+ authDeviceRepository: new AuthDeviceRepository(database.db),
227
+ authDeviceSessionRepository: new AuthDeviceSessionRepository(database.db),
228
+ authLoginEventRepository: new AuthLoginEventRepository(database.db),
214
229
  authLoginAttemptRepository: new AuthLoginAttemptRepository(database.db),
215
230
  assistantAutomationTaskRepository: new AssistantAutomationTaskRepository(database.db),
216
231
  assistantAutomationRunRepository: new AssistantAutomationRunRepository(database.db),
@@ -255,6 +270,8 @@ export function createServer(config) {
255
270
  sessionStateRepository: new SessionStateRepository(database.db),
256
271
  sessionStatusSnapshotRepository: new SessionStatusSnapshotRepository(database.db),
257
272
  instanceTailscaleRepository: new InstanceTailscaleRepository(database.db),
273
+ instanceRelayTunnelIdentityRepository: new InstanceRelayTunnelIdentityRepository(database.db),
274
+ instanceRelayTunnelRepository: new InstanceRelayTunnelRepository(database.db),
258
275
  skillTargetBindingRepository: new SkillTargetBindingRepository(database.db),
259
276
  userQuickPhrasePreferenceRepository: new UserQuickPhrasePreferenceRepository(database.db),
260
277
  userPreferenceProfileRepository: new UserPreferenceProfileRepository(database.db),
@@ -275,7 +292,7 @@ export function createServer(config) {
275
292
  const demoServices = (demoCleanupService && demoOnlineTracker)
276
293
  ? { cleanupService: demoCleanupService, onlineTracker: demoOnlineTracker }
277
294
  : undefined;
278
- const authService = new AuthService(repositories.bootstrapStateRepository, repositories.authUserRepository, repositories.authTokenRepository, repositories.authLoginAttemptRepository, effectiveConfig, demoServices);
295
+ const authService = new AuthService(repositories.bootstrapStateRepository, repositories.authUserRepository, repositories.authTokenRepository, repositories.authDeviceRepository, repositories.authDeviceSessionRepository, repositories.authLoginEventRepository, repositories.authLoginAttemptRepository, effectiveConfig, demoServices);
279
296
  const butlerProfileService = new ButlerProfileService(repositories.butlerProfileRepository, repositories.butlerProjectRepository, path.dirname(config.databasePath));
280
297
  const gitCommandRunner = new GitCommandRunner({
281
298
  preferHelperProcess: !process.env.VITEST
@@ -287,7 +304,6 @@ export function createServer(config) {
287
304
  const taskManager = createTaskManager(taskActivityLog, createHostTaskLaneExecutors());
288
305
  const npmGlobalPackageService = new NpmGlobalPackageService(config);
289
306
  const serviceUpdateTaskService = new ServiceUpdateTaskService(taskManager, npmGlobalPackageService);
290
- const clientService = new ClientService(config, npmGlobalPackageService, serviceUpdateTaskService);
291
307
  const workspaceService = new WorkspaceService(repositories.workspaceRepository, gitCommandRunner, repositories.workspaceNavigationStateRepository, butlerProfileService, repositories.workspaceWorktreeRepository, taskManager);
292
308
  const fileAccessGuard = new FileAccessGuard(workspaceService, app.log);
293
309
  const recentFileService = new RecentFileService(repositories.recentFileRepository);
@@ -312,13 +328,33 @@ export function createServer(config) {
312
328
  const tailscaleService = new TailscaleService(database.db, repositories.instanceTailscaleRepository, tailscaleManager, {
313
329
  databasePath: config.databasePath
314
330
  });
331
+ const relayTunnelService = new RelayTunnelService(database.db, repositories.bootstrapStateRepository, repositories.instanceRelayTunnelIdentityRepository, repositories.instanceRelayTunnelRepository, {
332
+ defaultLocalTargetBaseUrl: `http://127.0.0.1:${config.webUiPort}`,
333
+ legacyLocalTargetBaseUrl: config.webUiPort !== config.port
334
+ ? `http://127.0.0.1:${config.port}`
335
+ : null,
336
+ controlSessionSecret: config.gitCredentialSecret
337
+ }, taskManager, new RelayTunnelRuntimeEdgeAdapter(repositories.instanceRelayTunnelIdentityRepository, repositories.instanceRelayTunnelRepository, {
338
+ controlSessionSecret: config.gitCredentialSecret
339
+ }));
340
+ const clientService = new ClientService(config, npmGlobalPackageService, serviceUpdateTaskService, relayTunnelService);
315
341
  const modelSwitchService = new ModelSwitchService(new CcSwitchAdapter({
316
342
  commandPath: config.ccSwitchCliPath,
317
343
  dbPath: config.ccSwitchDbPath
318
344
  }));
319
- const skillManagerService = new SkillManagerService(repositories.managedSkillRepository, repositories.skillTargetBindingRepository, createDefaultSkillTargetAdapters(config), {
345
+ const skillTargetAdapters = createDefaultSkillTargetAdapters(config);
346
+ const skillManagerService = new SkillManagerService(repositories.managedSkillRepository, repositories.skillTargetBindingRepository, skillTargetAdapters, {
320
347
  ssotRootDir: path.join(path.dirname(config.databasePath), "skills")
321
348
  });
349
+ for (const result of cleanupLegacyAssistantRuntimeSkillCopies(skillTargetAdapters)) {
350
+ if (result.status === "removed_legacy_copy") {
351
+ console.info(`[host] 已清理公共 Skill 根目录里的旧助手副本 ${result.targetCli}: ${result.targetPath}`);
352
+ continue;
353
+ }
354
+ if (result.status === "kept_drifted_copy" || result.status === "invalid_entry") {
355
+ console.warn(`[host] 保留公共 Skill 根目录里的助手专用目录 ${result.targetCli}: ${result.targetPath} (${result.detail ?? "unknown"})`);
356
+ }
357
+ }
322
358
  for (const result of syncBuiltinSkillsOnStartup(skillManagerService)) {
323
359
  if (result.ok) {
324
360
  console.info(`[host] 已同步内置 Skill ${result.directoryName} -> ${result.targetCli.join(",")}`);
@@ -358,12 +394,24 @@ export function createServer(config) {
358
394
  sessionHistoryService.registerLiveActivityObservationResolver((sessionId) => butlerSummarySessionLiveRuntimeService.resolveLiveActivityObservation(sessionId));
359
395
  const butlerFollowUpSessionLiveRuntimeService = new SessionLiveRuntimeService(sessionHistoryService, sessionMessageAttachmentService, workspaceService, sessionChangedFileService, repositories.sessionBindingRepository, repositories.authUserRepository, repositories.sessionSendQueueRepository, repositories.sessionIndexRepository, repositories.sessionStateRepository, repositories.sessionStatusSnapshotRepository, butlerFollowUpRuntimeConfig, sessionActivityAuthorityService);
360
396
  sessionHistoryService.registerLiveActivityObservationResolver((sessionId) => butlerFollowUpSessionLiveRuntimeService.resolveLiveActivityObservation(sessionId));
397
+ const routedSessionLiveRuntimeService = new SessionLiveRuntimeRouterService(sessionLiveRuntimeService, [
398
+ butlerSessionLiveRuntimeService,
399
+ butlerSummarySessionLiveRuntimeService,
400
+ butlerFollowUpSessionLiveRuntimeService
401
+ ]);
402
+ const sessionProviderUsageLimitGuardService = new SessionProviderUsageLimitGuardService(sessionHistoryService);
361
403
  const workbenchService = new WorkbenchService(repositories.workspaceRepository, repositories.workspaceNavigationStateRepository, sessionHistoryService, butlerProfileService, repositories.butlerControlSessionRepository, repositories.workspaceWorktreeRepository, taskManager);
362
404
  const butlerProjectService = new ButlerProjectService(repositories.butlerProjectRepository, repositories.butlerSessionRepository, repositories.workspaceRepository, butlerProfileService, repositories.assistantSandboxWorkspaceRepository);
363
- const assistantSandboxService = new AssistantSandboxService(repositories.assistantSandboxWorkspaceRepository, butlerProfileService, workspaceService, butlerProjectService);
405
+ const assistantSandboxService = new AssistantSandboxService(repositories.assistantSandboxWorkspaceRepository, butlerProfileService, workspaceService, butlerProjectService, taskManager);
406
+ sessionHistoryService.registerSessionDeletedObserver(async ({ workspaceId, userId, remainingWorkspaceSessionCount }) => {
407
+ if (remainingWorkspaceSessionCount > 0) {
408
+ return;
409
+ }
410
+ assistantSandboxService.markSandboxOrphanedByWorkspaceId(workspaceId, userId);
411
+ });
364
412
  const butlerInboxService = new ButlerInboxService(repositories.butlerProjectRepository, repositories.butlerInboxItemRepository, taskManager);
365
413
  const butlerNotificationService = new ButlerNotificationService(repositories.butlerNotificationArchiveRepository);
366
- const butlerSessionService = new ButlerSessionService(repositories.butlerProjectRepository, repositories.butlerSessionRepository, repositories.sessionCheckpointRepository, repositories.sessionBindingRepository, repositories.sessionIndexRepository, repositories.sessionStateRepository, sessionLiveRuntimeService, sessionHistoryService, repositories.sessionMessageOriginRepository);
414
+ const butlerSessionService = new ButlerSessionService(repositories.butlerProjectRepository, repositories.butlerSessionRepository, repositories.sessionCheckpointRepository, repositories.sessionBindingRepository, repositories.sessionIndexRepository, repositories.sessionStateRepository, sessionLiveRuntimeService, sessionHistoryService, repositories.sessionMessageOriginRepository, sessionProviderUsageLimitGuardService);
367
415
  const projectMemoryService = new ProjectMemoryService(repositories.butlerProjectRepository, repositories.projectMemoryRepository);
368
416
  const patrolPlanService = new PatrolPlanService(repositories.butlerProjectRepository, repositories.patrolPlanRepository);
369
417
  const patrolRunService = new PatrolRunService(repositories.butlerProjectRepository, repositories.patrolPlanRepository, repositories.patrolRunRepository);
@@ -398,7 +446,7 @@ export function createServer(config) {
398
446
  summaryCodexHomeDir: butlerSummaryRuntimeConfig.codexHomeDir,
399
447
  sourceCodexHomeDir: config.codexHomeDir
400
448
  });
401
- const butlerFollowUpService = new ButlerFollowUpService(butlerProfileService, butlerProjectService, butlerSessionService, repositories.butlerFollowUpTaskRepository, sessionHistoryService, repositories.sessionIndexRepository, sessionLiveRuntimeService, workspaceService, followUpProviderAdapterRegistry, butlerFollowUpEvaluationInstructionAdapter, butlerFollowUpRuntimeConfig.codexHomeDir, config.codexHomeDir, repositories.sessionMessageOriginRepository);
449
+ const butlerFollowUpService = new ButlerFollowUpService(butlerProfileService, butlerProjectService, butlerSessionService, repositories.butlerFollowUpTaskRepository, sessionHistoryService, repositories.sessionIndexRepository, sessionLiveRuntimeService, workspaceService, followUpProviderAdapterRegistry, butlerFollowUpEvaluationInstructionAdapter, butlerFollowUpRuntimeConfig.codexHomeDir, config.codexHomeDir, repositories.sessionMessageOriginRepository, sessionProviderUsageLimitGuardService);
402
450
  const butlerActionContextService = new ButlerActionContextService(butlerProjectService, butlerSessionService, butlerFollowUpService, verificationRunService);
403
451
  const sessionSummaryScheduler = new SessionSummaryScheduler(butlerSessionSummaryService, {
404
452
  schedulerMetrics
@@ -406,10 +454,13 @@ export function createServer(config) {
406
454
  const butlerFollowUpScheduler = new ButlerFollowUpScheduler(butlerFollowUpService, {
407
455
  schedulerMetrics
408
456
  });
457
+ const assistantSandboxCleanupScheduler = new AssistantSandboxCleanupScheduler(assistantSandboxService, {
458
+ schedulerMetrics
459
+ });
409
460
  const butlerFollowUpTerminalSubscription = sessionLiveRuntimeService.registerTerminalStateListener(async (event) => {
410
461
  await butlerFollowUpService.handleSessionTerminal(event.sessionId, event.timestamp);
411
462
  });
412
- const butlerControlSessionService = new ButlerControlSessionService(butlerProfileService, repositories.butlerControlSessionRepository, workspaceService, sessionHistoryService, butlerSessionLiveRuntimeService, butlerContextAggregator, butlerAuthService, skillManagerService, butlerRuntimeConfig.codexHomeDir, config.codexHomeDir, butlerRuntimeConfig.claudeCodeHomeDir, config.claudeCodeHomeDir, repositories.sessionMessageOriginRepository, assistantSandboxService);
463
+ const butlerControlSessionService = new ButlerControlSessionService(butlerProfileService, repositories.butlerControlSessionRepository, workspaceService, sessionHistoryService, butlerSessionLiveRuntimeService, butlerContextAggregator, butlerAuthService, skillManagerService, butlerRuntimeConfig.codexHomeDir, config.codexHomeDir, butlerRuntimeConfig.claudeCodeHomeDir, config.claudeCodeHomeDir, repositories.sessionMessageOriginRepository, assistantSandboxService, sessionProviderUsageLimitGuardService);
413
464
  const assistantAutomationService = new AssistantAutomationService(butlerProfileService, butlerControlSessionService, repositories.assistantAutomationTaskRepository, repositories.assistantAutomationRunRepository, taskManager, {
414
465
  gitCommandRunner,
415
466
  sessionLiveRuntimeService: butlerSessionLiveRuntimeService
@@ -456,11 +507,12 @@ export function createServer(config) {
456
507
  const worktreeController = new WorktreeController(worktreeManager, worktreeSyncService, worktreeMergeService, worktreeCleanupService);
457
508
  const workbenchController = new WorkbenchController(workbenchService);
458
509
  const butlerController = new ButlerController(butlerProfileService, butlerControlSessionService, butlerControlActionService, butlerContextAggregator, butlerFollowUpService, butlerInboxService, butlerNotificationService, butlerProjectService, butlerSessionService, projectMemoryService, patrolPlanService, patrolRunService, patrolExecutionService, verificationRunService, butlerActionContextService, butlerControlTimerService);
459
- const sessionController = new SessionController(sessionHistoryService, sessionLiveRuntimeService, repositories.butlerControlSessionRepository);
460
- const assistantCapabilityController = new AssistantCapabilityController(new AssistantCapabilityService(butlerProjectService, butlerSessionService, butlerControlSessionService, assistantAutomationService, assistantSandboxService, butlerControlTimerService, sessionHistoryService, sessionLiveRuntimeService, terminalService, debugTargetService, workspaceService, worktreeManager, worktreeSyncService, worktreeMergeService, worktreeCleanupService, repositories.sessionMessageOriginRepository));
461
- const providerController = new ProviderController(sessionHistoryService, sessionLiveRuntimeService, config);
510
+ const sessionController = new SessionController(sessionHistoryService, routedSessionLiveRuntimeService, repositories.butlerControlSessionRepository);
511
+ const assistantCapabilityController = new AssistantCapabilityController(new AssistantCapabilityService(butlerProjectService, butlerSessionService, butlerControlSessionService, assistantAutomationService, assistantSandboxService, butlerControlTimerService, sessionHistoryService, sessionLiveRuntimeService, terminalService, debugTargetService, workspaceService, worktreeManager, worktreeSyncService, worktreeMergeService, worktreeCleanupService, repositories.sessionMessageOriginRepository, butlerFollowUpService));
512
+ const providerController = new ProviderController(sessionHistoryService, routedSessionLiveRuntimeService, config);
462
513
  const skillController = new SkillController(skillManagerService);
463
514
  const tailscaleController = new TailscaleController(tailscaleService);
515
+ const relayTunnelController = new RelayTunnelController(relayTunnelService);
464
516
  const modelSwitchController = new ModelSwitchController(modelSwitchService);
465
517
  const quickPhraseController = new QuickPhraseController(quickPhraseService);
466
518
  const profileController = new ProfileController(preferenceProfileService);
@@ -469,7 +521,7 @@ export function createServer(config) {
469
521
  const gitController = new GitController(gitReadService, gitWriteService, commitOrchestrator);
470
522
  const terminalController = new TerminalController(terminalService, commandTemplateService);
471
523
  const observabilityController = new ObservabilityController(runtimeObservabilityService);
472
- const wsHandle = createWsServer(app.server, new WsAuthGuard(authService), sessionHistoryService, sessionLiveRuntimeService, new TerminalWsHub(terminalService), new WorkbenchWsHub(workbenchService, workspacePanelSnapshotService, fileWatcher, terminalService), butlerActionContextService);
524
+ const wsHandle = createWsServer(app.server, new WsAuthGuard(authService), sessionHistoryService, routedSessionLiveRuntimeService, new TerminalWsHub(terminalService), new WorkbenchWsHub(workbenchService, workspacePanelSnapshotService, fileWatcher, terminalService), butlerActionContextService);
473
525
  app.server.on("upgrade", (request, socket, head) => {
474
526
  templateReverseProxyService.handleWebSocketUpgrade(request, socket, head);
475
527
  });
@@ -500,6 +552,14 @@ export function createServer(config) {
500
552
  error: error instanceof Error ? error.message : String(error)
501
553
  });
502
554
  });
555
+ void relayTunnelService.restoreOnStartup().catch((error) => {
556
+ if (shuttingDown) {
557
+ return;
558
+ }
559
+ console.error("[startup-recovery] 公共隧道启动恢复失败", {
560
+ error: error instanceof Error ? error.message : String(error)
561
+ });
562
+ });
503
563
  });
504
564
  // Demo 模式:自动创建演示用户
505
565
  if (config.demoMode) {
@@ -522,7 +582,7 @@ export function createServer(config) {
522
582
  void registerSessionRoutes(app, sessionController);
523
583
  void registerPreferenceRoutes(app, quickPhraseController, profileController);
524
584
  void registerSkillRoutes(app, skillController);
525
- void registerSystemRoutes(app, tailscaleController, modelSwitchController);
585
+ void registerSystemRoutes(app, tailscaleController, relayTunnelController, modelSwitchController);
526
586
  void registerFileRoutes(app, fileController);
527
587
  void registerSessionContextRoutes(app, fileContextController);
528
588
  void registerTerminalRoutes(app, terminalController);
@@ -531,6 +591,7 @@ export function createServer(config) {
531
591
  patrolScheduler.start();
532
592
  sessionSummaryScheduler.start();
533
593
  butlerFollowUpScheduler.start();
594
+ assistantSandboxCleanupScheduler.start();
534
595
  butlerControlTimerScheduler.start();
535
596
  debugRuntimeReconciliationScheduler.start();
536
597
  if (config.webUiDir) {
@@ -544,6 +605,7 @@ export function createServer(config) {
544
605
  await patrolScheduler.dispose();
545
606
  await sessionSummaryScheduler.dispose();
546
607
  await butlerFollowUpScheduler.dispose();
608
+ await assistantSandboxCleanupScheduler.dispose();
547
609
  await butlerControlTimerScheduler.dispose();
548
610
  await debugRuntimeReconciliationScheduler.dispose();
549
611
  terminalService.off("exit", handleDebugTargetTerminalExit);
@@ -632,9 +694,17 @@ function applyCorsHeaders(origin, reply, demoMode) {
632
694
  reply.header("Access-Control-Allow-Origin", allowedOrigin);
633
695
  reply.header("Vary", "Origin");
634
696
  reply.header("Access-Control-Allow-Credentials", "true");
635
- reply.header("Access-Control-Allow-Headers", "Authorization, Content-Type");
697
+ reply.header("Access-Control-Allow-Headers", CORS_ALLOWED_HEADERS);
636
698
  reply.header("Access-Control-Allow-Methods", "GET,POST,PUT,PATCH,DELETE,OPTIONS");
637
699
  }
700
+ const CORS_ALLOWED_HEADERS = [
701
+ "Authorization",
702
+ "Content-Type",
703
+ "x-codingns-client-type",
704
+ "x-codingns-client-instance-id",
705
+ "x-codingns-assistant-source",
706
+ "x-codingns-hook-token"
707
+ ].join(", ");
638
708
  function resolveAllowedCorsOrigin(origin, demoMode) {
639
709
  if (!origin) {
640
710
  return null;