@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
@@ -23,6 +23,8 @@ CREATE TABLE IF NOT EXISTS auth_tokens (
23
23
  user_id TEXT NOT NULL,
24
24
  token_type TEXT NOT NULL CHECK (token_type IN ('access', 'refresh')),
25
25
  token_hash TEXT NOT NULL UNIQUE,
26
+ device_session_id TEXT,
27
+ caller_kind TEXT CHECK (caller_kind IN ('interactive_user', 'assistant_runtime')),
26
28
  expires_at TEXT NOT NULL,
27
29
  revoked_at TEXT,
28
30
  created_at TEXT NOT NULL,
@@ -31,6 +33,59 @@ CREATE TABLE IF NOT EXISTS auth_tokens (
31
33
 
32
34
  CREATE INDEX IF NOT EXISTS idx_auth_tokens_user_id ON auth_tokens(user_id);
33
35
  CREATE INDEX IF NOT EXISTS idx_auth_tokens_expires_at ON auth_tokens(expires_at);
36
+ CREATE INDEX IF NOT EXISTS idx_auth_tokens_device_session_id ON auth_tokens(device_session_id);
37
+
38
+ CREATE TABLE IF NOT EXISTS auth_devices (
39
+ id TEXT PRIMARY KEY,
40
+ user_id TEXT NOT NULL,
41
+ client_type TEXT NOT NULL CHECK (client_type IN ('desktop', 'web', 'ios', 'android', 'unknown')),
42
+ client_instance_id TEXT,
43
+ display_name TEXT,
44
+ user_agent TEXT,
45
+ is_primary INTEGER NOT NULL DEFAULT 0 CHECK (is_primary IN (0, 1)),
46
+ last_source_address TEXT,
47
+ last_seen_at TEXT NOT NULL,
48
+ primary_set_at TEXT,
49
+ created_at TEXT NOT NULL,
50
+ updated_at TEXT NOT NULL,
51
+ FOREIGN KEY (user_id) REFERENCES auth_users(id)
52
+ );
53
+
54
+ CREATE INDEX IF NOT EXISTS idx_auth_devices_user_id ON auth_devices(user_id, updated_at DESC);
55
+ CREATE INDEX IF NOT EXISTS idx_auth_devices_client_lookup
56
+ ON auth_devices(user_id, client_type, client_instance_id);
57
+
58
+ CREATE TABLE IF NOT EXISTS auth_device_sessions (
59
+ id TEXT PRIMARY KEY,
60
+ user_id TEXT NOT NULL,
61
+ device_id TEXT,
62
+ access_token_id TEXT,
63
+ refresh_token_id TEXT,
64
+ revoked_at TEXT,
65
+ created_at TEXT NOT NULL,
66
+ updated_at TEXT NOT NULL,
67
+ FOREIGN KEY (user_id) REFERENCES auth_users(id),
68
+ FOREIGN KEY (device_id) REFERENCES auth_devices(id)
69
+ );
70
+
71
+ CREATE INDEX IF NOT EXISTS idx_auth_device_sessions_user_id
72
+ ON auth_device_sessions(user_id, updated_at DESC);
73
+ CREATE INDEX IF NOT EXISTS idx_auth_device_sessions_device_id
74
+ ON auth_device_sessions(device_id, updated_at DESC);
75
+
76
+ CREATE TABLE IF NOT EXISTS auth_login_events (
77
+ id TEXT PRIMARY KEY,
78
+ user_id TEXT NOT NULL,
79
+ device_id TEXT,
80
+ client_type TEXT NOT NULL CHECK (client_type IN ('desktop', 'web', 'ios', 'android', 'unknown')),
81
+ source_address TEXT,
82
+ occurred_at TEXT NOT NULL,
83
+ FOREIGN KEY (user_id) REFERENCES auth_users(id),
84
+ FOREIGN KEY (device_id) REFERENCES auth_devices(id)
85
+ );
86
+
87
+ CREATE INDEX IF NOT EXISTS idx_auth_login_events_user_id
88
+ ON auth_login_events(user_id, occurred_at DESC);
34
89
 
35
90
  CREATE TABLE IF NOT EXISTS auth_login_attempts (
36
91
  username TEXT PRIMARY KEY,
@@ -789,7 +844,7 @@ CREATE TABLE IF NOT EXISTS assistant_sandboxes (
789
844
  source_kind TEXT NOT NULL CHECK (source_kind IN ('blank', 'clone')),
790
845
  source_ref TEXT,
791
846
  visibility TEXT NOT NULL CHECK (visibility IN ('assistant_only', 'pinned')),
792
- status TEXT NOT NULL CHECK (status IN ('active', 'archived', 'expired', 'deleted')),
847
+ status TEXT NOT NULL CHECK (status IN ('active', 'archived', 'expired', 'orphaned', 'deleted')),
793
848
  purpose TEXT,
794
849
  expires_at TEXT,
795
850
  promoted_at TEXT,
@@ -905,6 +960,9 @@ CREATE TABLE IF NOT EXISTS butler_follow_up_tasks (
905
960
  project_id TEXT NOT NULL,
906
961
  butler_session_id TEXT NOT NULL,
907
962
  session_id TEXT NOT NULL,
963
+ provider_id TEXT NOT NULL CHECK (provider_id IN ('codex', 'claude-code')),
964
+ assistant_butler_session_id TEXT NOT NULL,
965
+ assistant_session_id TEXT NOT NULL,
908
966
  created_by_user_id TEXT NOT NULL,
909
967
  objective TEXT NOT NULL,
910
968
  completion_criteria TEXT NOT NULL DEFAULT '',
@@ -929,6 +987,8 @@ CREATE TABLE IF NOT EXISTS butler_follow_up_tasks (
929
987
  FOREIGN KEY (project_id) REFERENCES butler_projects(id) ON DELETE CASCADE,
930
988
  FOREIGN KEY (butler_session_id) REFERENCES butler_sessions(id) ON DELETE CASCADE,
931
989
  FOREIGN KEY (session_id) REFERENCES session_bindings(session_id) ON DELETE CASCADE,
990
+ FOREIGN KEY (assistant_butler_session_id) REFERENCES butler_sessions(id) ON DELETE CASCADE,
991
+ FOREIGN KEY (assistant_session_id) REFERENCES session_bindings(session_id) ON DELETE CASCADE,
932
992
  FOREIGN KEY (created_by_user_id) REFERENCES auth_users(id)
933
993
  );
934
994
 
@@ -1085,6 +1145,7 @@ CREATE INDEX IF NOT EXISTS idx_verification_runs_project_status
1085
1145
 
1086
1146
  CREATE TABLE IF NOT EXISTS instance_tailscale_config (
1087
1147
  id TEXT PRIMARY KEY CHECK (id = 'default'),
1148
+ activated INTEGER NOT NULL DEFAULT 0 CHECK (activated IN (0, 1)),
1088
1149
  enabled INTEGER NOT NULL DEFAULT 0 CHECK (enabled IN (0, 1)),
1089
1150
  control_server_url TEXT,
1090
1151
  hostname TEXT,
@@ -1118,20 +1179,77 @@ CREATE TABLE IF NOT EXISTS instance_tailscale_status (
1118
1179
  observed_at TEXT
1119
1180
  );
1120
1181
 
1182
+ CREATE TABLE IF NOT EXISTS instance_relay_tunnel_config (
1183
+ id TEXT PRIMARY KEY CHECK (id = 'default'),
1184
+ activated INTEGER NOT NULL DEFAULT 0 CHECK (activated IN (0, 1)),
1185
+ enabled INTEGER NOT NULL DEFAULT 0 CHECK (enabled IN (0, 1)),
1186
+ provider TEXT NOT NULL CHECK (provider = 'codingns_relay'),
1187
+ relay_base_url TEXT,
1188
+ control_base_url TEXT,
1189
+ control_access_token_ciphertext TEXT,
1190
+ control_account_email TEXT,
1191
+ control_session_expires_at TEXT,
1192
+ account_id TEXT,
1193
+ tunnel_domain TEXT,
1194
+ binding_id TEXT,
1195
+ host_public_key TEXT,
1196
+ host_key_fingerprint TEXT,
1197
+ local_target_base_url TEXT NOT NULL,
1198
+ local_target_source TEXT NOT NULL DEFAULT 'default' CHECK (local_target_source IN ('default', 'custom')),
1199
+ updated_at TEXT NOT NULL
1200
+ );
1201
+
1202
+ CREATE TABLE IF NOT EXISTS instance_relay_tunnel_identity (
1203
+ id TEXT PRIMARY KEY CHECK (id = 'default'),
1204
+ key_algorithm TEXT NOT NULL CHECK (key_algorithm = 'x25519'),
1205
+ private_key_pem TEXT NOT NULL,
1206
+ public_key_pem TEXT NOT NULL,
1207
+ key_fingerprint TEXT NOT NULL,
1208
+ created_at TEXT NOT NULL,
1209
+ updated_at TEXT NOT NULL
1210
+ );
1211
+
1212
+ CREATE TABLE IF NOT EXISTS instance_relay_tunnel_status (
1213
+ id TEXT PRIMARY KEY CHECK (id = 'default'),
1214
+ phase TEXT NOT NULL CHECK (
1215
+ phase IN (
1216
+ 'disabled',
1217
+ 'blocked_uninitialized',
1218
+ 'unbound',
1219
+ 'binding',
1220
+ 'connecting',
1221
+ 'running',
1222
+ 'quota_exhausted',
1223
+ 'error'
1224
+ )
1225
+ ),
1226
+ connected INTEGER NOT NULL DEFAULT 0 CHECK (connected IN (0, 1)),
1227
+ binding_id TEXT,
1228
+ tunnel_domain TEXT,
1229
+ host_fingerprint TEXT,
1230
+ traffic_used_bytes TEXT,
1231
+ traffic_remaining_bytes TEXT,
1232
+ quota_reset_at TEXT,
1233
+ last_error TEXT,
1234
+ observed_at TEXT
1235
+ );
1236
+
1121
1237
  CREATE TABLE IF NOT EXISTS managed_skills (
1122
1238
  id TEXT PRIMARY KEY,
1123
1239
  name TEXT NOT NULL,
1124
- directory_name TEXT NOT NULL UNIQUE,
1240
+ scope TEXT NOT NULL CHECK (scope IN ('workspace', 'assistant')),
1241
+ directory_name TEXT NOT NULL,
1125
1242
  source_type TEXT NOT NULL CHECK (source_type IN ('builtin', 'local-import', 'managed-copy')),
1126
1243
  source_path TEXT,
1127
1244
  content_hash TEXT NOT NULL,
1128
1245
  managed_state TEXT NOT NULL CHECK (managed_state IN ('active', 'conflicted', 'missing')),
1129
1246
  created_at TEXT NOT NULL,
1130
- updated_at TEXT NOT NULL
1247
+ updated_at TEXT NOT NULL,
1248
+ UNIQUE(scope, directory_name)
1131
1249
  );
1132
1250
 
1133
1251
  CREATE INDEX IF NOT EXISTS idx_managed_skills_state
1134
- ON managed_skills(managed_state, updated_at DESC);
1252
+ ON managed_skills(scope, managed_state, updated_at DESC);
1135
1253
 
1136
1254
  CREATE TABLE IF NOT EXISTS skill_target_bindings (
1137
1255
  skill_id TEXT NOT NULL,
@@ -25,10 +25,45 @@ export interface AuthTokenRecord {
25
25
  userId: string;
26
26
  tokenType: "access" | "refresh";
27
27
  tokenHash: string;
28
+ deviceSessionId: string | null;
29
+ callerKind: "interactive_user" | "assistant_runtime" | null;
28
30
  expiresAt: string;
29
31
  revokedAt: string | null;
30
32
  createdAt: string;
31
33
  }
34
+ export type AuthClientType = "desktop" | "web" | "ios" | "android" | "unknown";
35
+ export interface AuthDeviceRecord {
36
+ id: string;
37
+ userId: string;
38
+ clientType: AuthClientType;
39
+ clientInstanceId: string | null;
40
+ displayName: string | null;
41
+ userAgent: string | null;
42
+ isPrimary: boolean;
43
+ lastSourceAddress: string | null;
44
+ lastSeenAt: string;
45
+ primarySetAt: string | null;
46
+ createdAt: string;
47
+ updatedAt: string;
48
+ }
49
+ export interface AuthDeviceSessionRecord {
50
+ id: string;
51
+ userId: string;
52
+ deviceId: string | null;
53
+ accessTokenId: string | null;
54
+ refreshTokenId: string | null;
55
+ revokedAt: string | null;
56
+ createdAt: string;
57
+ updatedAt: string;
58
+ }
59
+ export interface AuthLoginEventRecord {
60
+ id: string;
61
+ userId: string;
62
+ deviceId: string | null;
63
+ clientType: AuthClientType;
64
+ sourceAddress: string | null;
65
+ occurredAt: string;
66
+ }
32
67
  export interface AuthLoginAttemptRecord {
33
68
  username: string;
34
69
  failedAttemptCount: number;
@@ -316,7 +351,7 @@ export type AssistantAutomationStatus = "active" | "paused" | "completed" | "can
316
351
  export type AssistantAutomationTriggerType = "once" | "interval" | "cron" | "condition";
317
352
  export type AssistantAutomationActionType = "send_control_message";
318
353
  export type AssistantAutomationRunStatus = "queued" | "running" | "succeeded" | "failed" | "cancelled" | "skipped";
319
- export type AssistantSandboxStatus = "active" | "archived" | "expired" | "deleted";
354
+ export type AssistantSandboxStatus = "active" | "archived" | "expired" | "orphaned" | "deleted";
320
355
  export type AssistantSandboxSourceKind = "blank" | "clone";
321
356
  export type AssistantSandboxVisibility = "assistant_only" | "pinned";
322
357
  export type ButlerControlEventKind = "action";
@@ -542,6 +577,9 @@ export interface ButlerFollowUpTask {
542
577
  projectId: string;
543
578
  butlerSessionId: string;
544
579
  sessionId: string;
580
+ providerId: ButlerProfileProviderId;
581
+ assistantButlerSessionId: string;
582
+ assistantSessionId: string;
545
583
  createdByUserId: string;
546
584
  objective: string;
547
585
  completionCriteria: string;
@@ -972,12 +1010,14 @@ export interface TerminalTemplateRuntimeStatus {
972
1010
  terminationScope?: "process" | "process_group" | null;
973
1011
  }
974
1012
  export type SkillSourceType = "builtin" | "local-import" | "managed-copy";
1013
+ export type SkillScope = "workspace" | "assistant";
975
1014
  export type ManagedSkillState = "active" | "conflicted" | "missing";
976
1015
  export type SkillTargetCli = "codex" | "claude-code" | "gemini" | "opencode";
977
1016
  export type SkillTargetSyncStatus = "synced" | "pending" | "failed" | "conflicted";
978
1017
  export interface ManagedSkillRecord {
979
1018
  id: string;
980
1019
  name: string;
1020
+ scope: SkillScope;
981
1021
  directoryName: string;
982
1022
  sourceType: SkillSourceType;
983
1023
  sourcePath: string | null;
@@ -1023,6 +1063,7 @@ export interface SkillScanResult {
1023
1063
  }
1024
1064
  export type TailscalePhase = "disabled" | "blocked_uninitialized" | "starting" | "needs_login" | "running" | "stopping" | "error";
1025
1065
  export interface InstanceTailscaleConfig {
1066
+ activated: boolean;
1026
1067
  enabled: boolean;
1027
1068
  controlServerUrl: string | null;
1028
1069
  hostname: string | null;
@@ -1043,3 +1084,52 @@ export interface InstanceTailscaleStatus {
1043
1084
  lastError: string | null;
1044
1085
  observedAt: string | null;
1045
1086
  }
1087
+ export type RelayTunnelProvider = "codingns_relay";
1088
+ export type HostCandidateEndpointKind = "relay" | "lan" | "loopback" | "tailscale" | "custom";
1089
+ export interface HostCandidateEndpoint {
1090
+ endpointId: string;
1091
+ kind: HostCandidateEndpointKind;
1092
+ url: string;
1093
+ priority: number;
1094
+ expiresAt: string | null;
1095
+ source: "host_reported" | "desktop_scan" | "user_saved";
1096
+ }
1097
+ export type RelayTunnelPhase = "disabled" | "blocked_uninitialized" | "unbound" | "binding" | "connecting" | "running" | "quota_exhausted" | "error";
1098
+ export interface InstanceRelayTunnelConfig {
1099
+ activated: boolean;
1100
+ enabled: boolean;
1101
+ provider: RelayTunnelProvider;
1102
+ relayBaseUrl: string | null;
1103
+ controlBaseUrl: string | null;
1104
+ controlAccessTokenCiphertext: string | null;
1105
+ controlAccountEmail: string | null;
1106
+ controlSessionExpiresAt: string | null;
1107
+ accountId: string | null;
1108
+ tunnelDomain: string | null;
1109
+ bindingId: string | null;
1110
+ hostPublicKey: string | null;
1111
+ hostKeyFingerprint: string | null;
1112
+ localTargetBaseUrl: string;
1113
+ localTargetBaseUrlSource?: "default" | "custom";
1114
+ updatedAt: string;
1115
+ }
1116
+ export interface InstanceRelayTunnelIdentity {
1117
+ keyAlgorithm: "x25519";
1118
+ privateKeyPem: string;
1119
+ publicKeyPem: string;
1120
+ keyFingerprint: string;
1121
+ createdAt: string;
1122
+ updatedAt: string;
1123
+ }
1124
+ export interface InstanceRelayTunnelStatus {
1125
+ phase: RelayTunnelPhase;
1126
+ connected: boolean;
1127
+ bindingId: string | null;
1128
+ tunnelDomain: string | null;
1129
+ hostFingerprint: string | null;
1130
+ trafficUsedBytes: string | null;
1131
+ trafficRemainingBytes: string | null;
1132
+ quotaResetAt: string | null;
1133
+ lastError: string | null;
1134
+ observedAt: string | null;
1135
+ }