@jingyi0605/codingns 0.1.5 → 0.2.5

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 (299) hide show
  1. package/README.md +44 -0
  2. package/bin/codingns.mjs +640 -53
  3. package/dist/public/assets/{TerminalPage-4p6EBqrR.js → TerminalPage-BkjqU9NG.js} +19 -19
  4. package/dist/public/assets/index-C6U8-9jg.css +1 -0
  5. package/dist/public/assets/index-CKSumuV2.js +109 -0
  6. package/dist/public/index.html +2 -2
  7. package/dist/server/config/env.d.ts +2 -0
  8. package/dist/server/config/env.js +8 -1
  9. package/dist/server/config/env.js.map +1 -1
  10. package/dist/server/modules/assistant-capability/assistant-capability-controller.d.ts +89 -0
  11. package/dist/server/modules/assistant-capability/assistant-capability-controller.js +138 -0
  12. package/dist/server/modules/assistant-capability/assistant-capability-controller.js.map +1 -0
  13. package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +115 -0
  14. package/dist/server/modules/assistant-capability/assistant-capability-service.js +241 -0
  15. package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -0
  16. package/dist/server/modules/butler/butler-control-session-service.js +69 -30
  17. package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
  18. package/dist/server/modules/butler/butler-follow-up-scheduler.d.ts +9 -0
  19. package/dist/server/modules/butler/butler-follow-up-scheduler.js +47 -11
  20. package/dist/server/modules/butler/butler-follow-up-scheduler.js.map +1 -1
  21. package/dist/server/modules/butler/butler-follow-up-service.d.ts +7 -1
  22. package/dist/server/modules/butler/butler-follow-up-service.js +10 -0
  23. package/dist/server/modules/butler/butler-follow-up-service.js.map +1 -1
  24. package/dist/server/modules/butler/butler-session-service.d.ts +2 -1
  25. package/dist/server/modules/butler/butler-session-service.js +10 -1
  26. package/dist/server/modules/butler/butler-session-service.js.map +1 -1
  27. package/dist/server/modules/butler/butler-session-summary-service.d.ts +8 -1
  28. package/dist/server/modules/butler/butler-session-summary-service.js +34 -7
  29. package/dist/server/modules/butler/butler-session-summary-service.js.map +1 -1
  30. package/dist/server/modules/butler/context-aggregator.js +44 -13
  31. package/dist/server/modules/butler/context-aggregator.js.map +1 -1
  32. package/dist/server/modules/butler/patrol-scheduler.d.ts +9 -0
  33. package/dist/server/modules/butler/patrol-scheduler.js +63 -9
  34. package/dist/server/modules/butler/patrol-scheduler.js.map +1 -1
  35. package/dist/server/modules/butler/session-summary-scheduler.d.ts +9 -0
  36. package/dist/server/modules/butler/session-summary-scheduler.js +47 -11
  37. package/dist/server/modules/butler/session-summary-scheduler.js.map +1 -1
  38. package/dist/server/modules/debug-target/debug-runtime-reconciliation-scheduler.d.ts +38 -0
  39. package/dist/server/modules/debug-target/debug-runtime-reconciliation-scheduler.js +99 -0
  40. package/dist/server/modules/debug-target/debug-runtime-reconciliation-scheduler.js.map +1 -0
  41. package/dist/server/modules/debug-target/debug-target-controller.d.ts +70 -0
  42. package/dist/server/modules/debug-target/debug-target-controller.js +113 -0
  43. package/dist/server/modules/debug-target/debug-target-controller.js.map +1 -0
  44. package/dist/server/modules/debug-target/debug-target-service.d.ts +102 -0
  45. package/dist/server/modules/debug-target/debug-target-service.js +1484 -0
  46. package/dist/server/modules/debug-target/debug-target-service.js.map +1 -0
  47. package/dist/server/modules/debug-target/framework-compatibility-matrix.d.ts +4 -0
  48. package/dist/server/modules/debug-target/framework-compatibility-matrix.js +45 -0
  49. package/dist/server/modules/debug-target/framework-compatibility-matrix.js.map +1 -0
  50. package/dist/server/modules/debug-target/launch-adapter-registry.d.ts +25 -0
  51. package/dist/server/modules/debug-target/launch-adapter-registry.js +445 -0
  52. package/dist/server/modules/debug-target/launch-adapter-registry.js.map +1 -0
  53. package/dist/server/modules/file/file-content-service.d.ts +2 -1
  54. package/dist/server/modules/file/file-content-service.js +53 -0
  55. package/dist/server/modules/file/file-content-service.js.map +1 -1
  56. package/dist/server/modules/file/file-controller.d.ts +12 -1
  57. package/dist/server/modules/file/file-controller.js +72 -1
  58. package/dist/server/modules/file/file-controller.js.map +1 -1
  59. package/dist/server/modules/file/file-preview-link-service.d.ts +22 -0
  60. package/dist/server/modules/file/file-preview-link-service.js +160 -0
  61. package/dist/server/modules/file/file-preview-link-service.js.map +1 -0
  62. package/dist/server/modules/git/commit-orchestrator.d.ts +4 -1
  63. package/dist/server/modules/git/commit-orchestrator.js +18 -1
  64. package/dist/server/modules/git/commit-orchestrator.js.map +1 -1
  65. package/dist/server/modules/git/git-auth.d.ts +25 -0
  66. package/dist/server/modules/git/git-auth.js +88 -0
  67. package/dist/server/modules/git/git-auth.js.map +1 -0
  68. package/dist/server/modules/git/git-controller.d.ts +6 -0
  69. package/dist/server/modules/git/git-controller.js +5 -1
  70. package/dist/server/modules/git/git-controller.js.map +1 -1
  71. package/dist/server/modules/git/git-read-service.d.ts +2 -1
  72. package/dist/server/modules/git/git-read-service.js +19 -2
  73. package/dist/server/modules/git/git-read-service.js.map +1 -1
  74. package/dist/server/modules/git/git-remote-credential-service.d.ts +9 -0
  75. package/dist/server/modules/git/git-remote-credential-service.js +76 -0
  76. package/dist/server/modules/git/git-remote-credential-service.js.map +1 -0
  77. package/dist/server/modules/git/git-write-service.d.ts +5 -2
  78. package/dist/server/modules/git/git-write-service.js +33 -17
  79. package/dist/server/modules/git/git-write-service.js.map +1 -1
  80. package/dist/server/modules/git/types.d.ts +3 -0
  81. package/dist/server/modules/git/workspace-repo-guard.js +3 -2
  82. package/dist/server/modules/git/workspace-repo-guard.js.map +1 -1
  83. package/dist/server/modules/provider/codex-model-options.d.ts +3 -1
  84. package/dist/server/modules/provider/codex-model-options.js +4 -1
  85. package/dist/server/modules/provider/codex-model-options.js.map +1 -1
  86. package/dist/server/modules/provider/opencode-model-options.d.ts +3 -1
  87. package/dist/server/modules/provider/opencode-model-options.js +5 -1
  88. package/dist/server/modules/provider/opencode-model-options.js.map +1 -1
  89. package/dist/server/modules/provider/provider-discovery-helper-client.d.ts +24 -0
  90. package/dist/server/modules/provider/provider-discovery-helper-client.js +14 -0
  91. package/dist/server/modules/provider/provider-discovery-helper-client.js.map +1 -1
  92. package/dist/server/modules/provider/provider-discovery-helper-process.js +54 -0
  93. package/dist/server/modules/provider/provider-discovery-helper-process.js.map +1 -1
  94. package/dist/server/modules/sessions/codex-app-server-helper-client.d.ts +2 -1
  95. package/dist/server/modules/sessions/codex-app-server-helper-client.js +103 -0
  96. package/dist/server/modules/sessions/codex-app-server-helper-client.js.map +1 -1
  97. package/dist/server/modules/sessions/codex-app-server-helper-process.js +106 -1
  98. package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -1
  99. package/dist/server/modules/sessions/session-controller.d.ts +26 -0
  100. package/dist/server/modules/sessions/session-controller.js +39 -1
  101. package/dist/server/modules/sessions/session-controller.js.map +1 -1
  102. package/dist/server/modules/sessions/session-history-service.d.ts +51 -5
  103. package/dist/server/modules/sessions/session-history-service.js +906 -59
  104. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  105. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +5 -0
  106. package/dist/server/modules/sessions/session-live-runtime-service.js +59 -2
  107. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  108. package/dist/server/modules/sessions/session-provider-error-mapper.js +66 -0
  109. package/dist/server/modules/sessions/session-provider-error-mapper.js.map +1 -1
  110. package/dist/server/modules/tasks/event-loop-monitor.d.ts +21 -0
  111. package/dist/server/modules/tasks/event-loop-monitor.js +64 -0
  112. package/dist/server/modules/tasks/event-loop-monitor.js.map +1 -0
  113. package/dist/server/modules/tasks/observability-controller.d.ts +30 -0
  114. package/dist/server/modules/tasks/observability-controller.js +44 -0
  115. package/dist/server/modules/tasks/observability-controller.js.map +1 -0
  116. package/dist/server/modules/tasks/observability-service.d.ts +32 -0
  117. package/dist/server/modules/tasks/observability-service.js +104 -0
  118. package/dist/server/modules/tasks/observability-service.js.map +1 -0
  119. package/dist/server/modules/tasks/scheduler-metrics.d.ts +41 -0
  120. package/dist/server/modules/tasks/scheduler-metrics.js +92 -0
  121. package/dist/server/modules/tasks/scheduler-metrics.js.map +1 -0
  122. package/dist/server/modules/tasks/task-activity-log.d.ts +39 -0
  123. package/dist/server/modules/tasks/task-activity-log.js +43 -0
  124. package/dist/server/modules/tasks/task-activity-log.js.map +1 -0
  125. package/dist/server/modules/tasks/task-helper-client.d.ts +11 -0
  126. package/dist/server/modules/tasks/task-helper-client.js +132 -0
  127. package/dist/server/modules/tasks/task-helper-client.js.map +1 -0
  128. package/dist/server/modules/tasks/task-helper-process-handlers.d.ts +16 -0
  129. package/dist/server/modules/tasks/task-helper-process-handlers.js +14 -0
  130. package/dist/server/modules/tasks/task-helper-process-handlers.js.map +1 -0
  131. package/dist/server/modules/tasks/task-helper-process.d.ts +1 -0
  132. package/dist/server/modules/tasks/task-helper-process.js +49 -0
  133. package/dist/server/modules/tasks/task-helper-process.js.map +1 -0
  134. package/dist/server/modules/tasks/task-lane-executors.d.ts +2 -0
  135. package/dist/server/modules/tasks/task-lane-executors.js +15 -0
  136. package/dist/server/modules/tasks/task-lane-executors.js.map +1 -0
  137. package/dist/server/modules/tasks/task-manager.d.ts +15 -0
  138. package/dist/server/modules/tasks/task-manager.js +36 -0
  139. package/dist/server/modules/tasks/task-manager.js.map +1 -0
  140. package/dist/server/modules/tasks/task-metrics.d.ts +9 -0
  141. package/dist/server/modules/tasks/task-metrics.js +81 -0
  142. package/dist/server/modules/tasks/task-metrics.js.map +1 -0
  143. package/dist/server/modules/tasks/task-registry.d.ts +7 -0
  144. package/dist/server/modules/tasks/task-registry.js +21 -0
  145. package/dist/server/modules/tasks/task-registry.js.map +1 -0
  146. package/dist/server/modules/tasks/task-scheduler.d.ts +31 -0
  147. package/dist/server/modules/tasks/task-scheduler.js +473 -0
  148. package/dist/server/modules/tasks/task-scheduler.js.map +1 -0
  149. package/dist/server/modules/tasks/task-types.d.ts +106 -0
  150. package/dist/server/modules/tasks/task-types.js +23 -0
  151. package/dist/server/modules/tasks/task-types.js.map +1 -0
  152. package/dist/server/modules/terminal/command-template-service.d.ts +4 -0
  153. package/dist/server/modules/terminal/command-template-service.js +5 -3
  154. package/dist/server/modules/terminal/command-template-service.js.map +1 -1
  155. package/dist/server/modules/terminal/runtime/terminal-log-spooler.d.ts +7 -3
  156. package/dist/server/modules/terminal/runtime/terminal-log-spooler.js +95 -15
  157. package/dist/server/modules/terminal/runtime/terminal-log-spooler.js.map +1 -1
  158. package/dist/server/modules/terminal/runtime/terminal-log-writer-client.d.ts +21 -0
  159. package/dist/server/modules/terminal/runtime/terminal-log-writer-client.js +144 -0
  160. package/dist/server/modules/terminal/runtime/terminal-log-writer-client.js.map +1 -0
  161. package/dist/server/modules/terminal/runtime/terminal-log-writer-process.d.ts +1 -0
  162. package/dist/server/modules/terminal/runtime/terminal-log-writer-process.js +187 -0
  163. package/dist/server/modules/terminal/runtime/terminal-log-writer-process.js.map +1 -0
  164. package/dist/server/modules/terminal/terminal-service.d.ts +12 -0
  165. package/dist/server/modules/terminal/terminal-service.js +34 -17
  166. package/dist/server/modules/terminal/terminal-service.js.map +1 -1
  167. package/dist/server/modules/workbench/workbench-service.d.ts +23 -2
  168. package/dist/server/modules/workbench/workbench-service.js +126 -15
  169. package/dist/server/modules/workbench/workbench-service.js.map +1 -1
  170. package/dist/server/modules/workbench/workspace-panel-snapshot-service.d.ts +5 -1
  171. package/dist/server/modules/workbench/workspace-panel-snapshot-service.js +88 -19
  172. package/dist/server/modules/workbench/workspace-panel-snapshot-service.js.map +1 -1
  173. package/dist/server/modules/workspace/workspace-code-composition.d.ts +2 -0
  174. package/dist/server/modules/workspace/workspace-code-composition.js +154 -0
  175. package/dist/server/modules/workspace/workspace-code-composition.js.map +1 -0
  176. package/dist/server/modules/workspace/workspace-controller.d.ts +14 -0
  177. package/dist/server/modules/workspace/workspace-controller.js +19 -0
  178. package/dist/server/modules/workspace/workspace-controller.js.map +1 -1
  179. package/dist/server/modules/workspace/workspace-service.d.ts +21 -14
  180. package/dist/server/modules/workspace/workspace-service.js +183 -234
  181. package/dist/server/modules/workspace/workspace-service.js.map +1 -1
  182. package/dist/server/modules/worktree/worktree-cleanup-service.d.ts +35 -0
  183. package/dist/server/modules/worktree/worktree-cleanup-service.js +210 -0
  184. package/dist/server/modules/worktree/worktree-cleanup-service.js.map +1 -0
  185. package/dist/server/modules/worktree/worktree-controller.d.ts +44 -0
  186. package/dist/server/modules/worktree/worktree-controller.js +40 -0
  187. package/dist/server/modules/worktree/worktree-controller.js.map +1 -0
  188. package/dist/server/modules/worktree/worktree-manager.d.ts +34 -0
  189. package/dist/server/modules/worktree/worktree-manager.js +292 -0
  190. package/dist/server/modules/worktree/worktree-manager.js.map +1 -0
  191. package/dist/server/modules/worktree/worktree-merge-service.d.ts +52 -0
  192. package/dist/server/modules/worktree/worktree-merge-service.js +293 -0
  193. package/dist/server/modules/worktree/worktree-merge-service.js.map +1 -0
  194. package/dist/server/modules/worktree/worktree-sync-service.d.ts +23 -0
  195. package/dist/server/modules/worktree/worktree-sync-service.js +166 -0
  196. package/dist/server/modules/worktree/worktree-sync-service.js.map +1 -0
  197. package/dist/server/routes/assistant.d.ts +3 -0
  198. package/dist/server/routes/assistant.js +15 -0
  199. package/dist/server/routes/assistant.js.map +1 -0
  200. package/dist/server/routes/debug-targets.d.ts +3 -0
  201. package/dist/server/routes/debug-targets.js +15 -0
  202. package/dist/server/routes/debug-targets.js.map +1 -0
  203. package/dist/server/routes/files.js +2 -0
  204. package/dist/server/routes/files.js.map +1 -1
  205. package/dist/server/routes/git.js +1 -0
  206. package/dist/server/routes/git.js.map +1 -1
  207. package/dist/server/routes/observability.d.ts +3 -0
  208. package/dist/server/routes/observability.js +7 -0
  209. package/dist/server/routes/observability.js.map +1 -0
  210. package/dist/server/routes/sessions.js +1 -0
  211. package/dist/server/routes/sessions.js.map +1 -1
  212. package/dist/server/routes/workspaces.js +2 -0
  213. package/dist/server/routes/workspaces.js.map +1 -1
  214. package/dist/server/routes/worktrees.d.ts +3 -0
  215. package/dist/server/routes/worktrees.js +8 -0
  216. package/dist/server/routes/worktrees.js.map +1 -0
  217. package/dist/server/server/create-server.d.ts +38 -0
  218. package/dist/server/server/create-server.js +106 -11
  219. package/dist/server/server/create-server.js.map +1 -1
  220. package/dist/server/shared/utils/command-availability.d.ts +1 -0
  221. package/dist/server/shared/utils/command-availability.js +83 -0
  222. package/dist/server/shared/utils/command-availability.js.map +1 -0
  223. package/dist/server/shared/utils/secret-box.d.ts +2 -0
  224. package/dist/server/shared/utils/secret-box.js +29 -0
  225. package/dist/server/shared/utils/secret-box.js.map +1 -0
  226. package/dist/server/shared/utils/terminal-debug-log.js +5 -3
  227. package/dist/server/shared/utils/terminal-debug-log.js.map +1 -1
  228. package/dist/server/storage/repositories/ai-fallback-edit-repository.d.ts +11 -0
  229. package/dist/server/storage/repositories/ai-fallback-edit-repository.js +118 -0
  230. package/dist/server/storage/repositories/ai-fallback-edit-repository.js.map +1 -0
  231. package/dist/server/storage/repositories/debug-runtime-session-repository.d.ts +11 -0
  232. package/dist/server/storage/repositories/debug-runtime-session-repository.js +100 -0
  233. package/dist/server/storage/repositories/debug-runtime-session-repository.js.map +1 -0
  234. package/dist/server/storage/repositories/debug-service-repository.d.ts +9 -0
  235. package/dist/server/storage/repositories/debug-service-repository.js +99 -0
  236. package/dist/server/storage/repositories/debug-service-repository.js.map +1 -0
  237. package/dist/server/storage/repositories/debug-target-repository.d.ts +11 -0
  238. package/dist/server/storage/repositories/debug-target-repository.js +100 -0
  239. package/dist/server/storage/repositories/debug-target-repository.js.map +1 -0
  240. package/dist/server/storage/repositories/framework-analysis-result-repository.d.ts +9 -0
  241. package/dist/server/storage/repositories/framework-analysis-result-repository.js +98 -0
  242. package/dist/server/storage/repositories/framework-analysis-result-repository.js.map +1 -0
  243. package/dist/server/storage/repositories/git-remote-credential-repository.d.ts +9 -0
  244. package/dist/server/storage/repositories/git-remote-credential-repository.js +51 -0
  245. package/dist/server/storage/repositories/git-remote-credential-repository.js.map +1 -0
  246. package/dist/server/storage/repositories/port-lease-repository.d.ts +12 -0
  247. package/dist/server/storage/repositories/port-lease-repository.js +124 -0
  248. package/dist/server/storage/repositories/port-lease-repository.js.map +1 -0
  249. package/dist/server/storage/repositories/runtime-binding-repository.d.ts +10 -0
  250. package/dist/server/storage/repositories/runtime-binding-repository.js +89 -0
  251. package/dist/server/storage/repositories/runtime-binding-repository.js.map +1 -0
  252. package/dist/server/storage/repositories/session-fork-repository.d.ts +8 -0
  253. package/dist/server/storage/repositories/session-fork-repository.js +69 -0
  254. package/dist/server/storage/repositories/session-fork-repository.js.map +1 -0
  255. package/dist/server/storage/repositories/session-index-repository.js +40 -2
  256. package/dist/server/storage/repositories/session-index-repository.js.map +1 -1
  257. package/dist/server/storage/repositories/terminal-command-template-repository.js +77 -4
  258. package/dist/server/storage/repositories/terminal-command-template-repository.js.map +1 -1
  259. package/dist/server/storage/repositories/terminal-instance-repository.js +89 -7
  260. package/dist/server/storage/repositories/terminal-instance-repository.js.map +1 -1
  261. package/dist/server/storage/repositories/workspace-navigation-state-repository.d.ts +9 -0
  262. package/dist/server/storage/repositories/workspace-navigation-state-repository.js +49 -0
  263. package/dist/server/storage/repositories/workspace-navigation-state-repository.js.map +1 -0
  264. package/dist/server/storage/repositories/workspace-repository.d.ts +7 -1
  265. package/dist/server/storage/repositories/workspace-repository.js +32 -8
  266. package/dist/server/storage/repositories/workspace-repository.js.map +1 -1
  267. package/dist/server/storage/repositories/workspace-worktree-repository.d.ts +13 -0
  268. package/dist/server/storage/repositories/workspace-worktree-repository.js +158 -0
  269. package/dist/server/storage/repositories/workspace-worktree-repository.js.map +1 -0
  270. package/dist/server/storage/sqlite/client.js +408 -0
  271. package/dist/server/storage/sqlite/client.js.map +1 -1
  272. package/dist/server/storage/sqlite/schema.sql +268 -0
  273. package/dist/server/types/domain.d.ts +256 -1
  274. package/dist/server/ws/workbench-ws-hub.js +33 -9
  275. package/dist/server/ws/workbench-ws-hub.js.map +1 -1
  276. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.d.ts +6 -1
  277. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js +240 -7
  278. package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js.map +1 -1
  279. package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +26 -1
  280. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +507 -2
  281. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
  282. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js +94 -5
  283. package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js.map +1 -1
  284. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.d.ts +5 -1
  285. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js +293 -3
  286. package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js.map +1 -1
  287. package/node_modules/@codingns/session-sync-core/dist/providers/utils.d.ts +1 -0
  288. package/node_modules/@codingns/session-sync-core/dist/providers/utils.js +117 -17
  289. package/node_modules/@codingns/session-sync-core/dist/providers/utils.js.map +1 -1
  290. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.d.ts +10 -0
  291. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +128 -8
  292. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
  293. package/node_modules/@codingns/session-sync-core/dist/services.d.ts +2 -1
  294. package/node_modules/@codingns/session-sync-core/dist/services.js +55 -8
  295. package/node_modules/@codingns/session-sync-core/dist/services.js.map +1 -1
  296. package/node_modules/@codingns/session-sync-core/dist/types.d.ts +33 -0
  297. package/package.json +1 -1
  298. package/dist/public/assets/index-CxeghocY.css +0 -1
  299. package/dist/public/assets/index-DXusStl0.js +0 -108
@@ -38,11 +38,59 @@ CREATE TABLE IF NOT EXISTS workspaces (
38
38
  path TEXT NOT NULL UNIQUE,
39
39
  repo_root TEXT,
40
40
  favorite INTEGER NOT NULL DEFAULT 0 CHECK (favorite IN (0, 1)),
41
+ sort_order INTEGER NOT NULL DEFAULT 0,
41
42
  created_at TEXT NOT NULL,
42
43
  updated_at TEXT NOT NULL,
43
44
  removed_at TEXT
44
45
  );
45
46
 
47
+ CREATE TABLE IF NOT EXISTS workspace_navigation_states (
48
+ workspace_id TEXT NOT NULL,
49
+ user_id TEXT NOT NULL,
50
+ collapsed INTEGER NOT NULL DEFAULT 0 CHECK (collapsed IN (0, 1)),
51
+ background_color TEXT,
52
+ updated_at TEXT NOT NULL,
53
+ PRIMARY KEY (workspace_id, user_id),
54
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id),
55
+ FOREIGN KEY (user_id) REFERENCES auth_users(id)
56
+ );
57
+
58
+ CREATE INDEX IF NOT EXISTS idx_workspace_navigation_states_user_id
59
+ ON workspace_navigation_states(user_id, updated_at DESC);
60
+
61
+ CREATE TABLE IF NOT EXISTS workspace_worktrees (
62
+ workspace_id TEXT PRIMARY KEY,
63
+ root_workspace_id TEXT NOT NULL,
64
+ parent_workspace_id TEXT NOT NULL,
65
+ source_workspace_id TEXT NOT NULL,
66
+ merge_target_workspace_id TEXT NOT NULL,
67
+ branch_name TEXT NOT NULL,
68
+ base_ref TEXT NOT NULL,
69
+ base_commit TEXT NOT NULL,
70
+ head_commit TEXT,
71
+ display_name TEXT NOT NULL,
72
+ depth INTEGER NOT NULL CHECK (depth >= 1),
73
+ lifecycle_status TEXT NOT NULL CHECK (
74
+ lifecycle_status IN ('active', 'merged', 'abandoned', 'removing', 'removed')
75
+ ),
76
+ merged_at TEXT,
77
+ removed_at TEXT,
78
+ created_at TEXT NOT NULL,
79
+ updated_at TEXT NOT NULL,
80
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE CASCADE,
81
+ FOREIGN KEY (root_workspace_id) REFERENCES workspaces(id),
82
+ FOREIGN KEY (parent_workspace_id) REFERENCES workspaces(id),
83
+ FOREIGN KEY (source_workspace_id) REFERENCES workspaces(id),
84
+ FOREIGN KEY (merge_target_workspace_id) REFERENCES workspaces(id)
85
+ );
86
+
87
+ CREATE INDEX IF NOT EXISTS idx_workspace_worktrees_root_workspace_id
88
+ ON workspace_worktrees(root_workspace_id, depth ASC, updated_at DESC);
89
+ CREATE INDEX IF NOT EXISTS idx_workspace_worktrees_parent_workspace_id
90
+ ON workspace_worktrees(parent_workspace_id, updated_at DESC);
91
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_workspace_worktrees_root_branch_name
92
+ ON workspace_worktrees(root_workspace_id, branch_name);
93
+
46
94
  CREATE TABLE IF NOT EXISTS commit_rule_profiles (
47
95
  id TEXT PRIMARY KEY,
48
96
  workspace_id TEXT NOT NULL UNIQUE,
@@ -76,6 +124,9 @@ CREATE TABLE IF NOT EXISTS session_indices (
76
124
  workspace_id TEXT NOT NULL,
77
125
  provider TEXT NOT NULL,
78
126
  parent_session_id TEXT,
127
+ session_kind TEXT NOT NULL DEFAULT 'default' CHECK (session_kind IN ('default', 'annotation')),
128
+ annotation_source_message_id TEXT,
129
+ annotation_source_text TEXT,
79
130
  is_subagent INTEGER NOT NULL DEFAULT 0 CHECK (is_subagent IN (0, 1)),
80
131
  subagent_label TEXT,
81
132
  title TEXT NOT NULL,
@@ -90,6 +141,33 @@ CREATE TABLE IF NOT EXISTS session_indices (
90
141
 
91
142
  CREATE INDEX IF NOT EXISTS idx_session_indices_workspace_id ON session_indices(workspace_id);
92
143
 
144
+ CREATE TABLE IF NOT EXISTS session_forks (
145
+ session_id TEXT PRIMARY KEY,
146
+ parent_session_id TEXT NOT NULL,
147
+ provider TEXT NOT NULL,
148
+ fork_source_type TEXT NOT NULL CHECK (fork_source_type IN ('session', 'message')),
149
+ fork_source_session_id TEXT NOT NULL,
150
+ fork_source_message_id TEXT,
151
+ inherited_prefix_message_count INTEGER NOT NULL DEFAULT 0,
152
+ provider_parent_session_id TEXT,
153
+ provider_source_message_id TEXT,
154
+ fork_method TEXT NOT NULL CHECK (
155
+ fork_method IN (
156
+ 'native_session_fork',
157
+ 'native_message_fork',
158
+ 'reconstructed_session_fork',
159
+ 'reconstructed_message_fork'
160
+ )
161
+ ),
162
+ created_at TEXT NOT NULL,
163
+ FOREIGN KEY (session_id) REFERENCES session_bindings(session_id)
164
+ );
165
+
166
+ CREATE INDEX IF NOT EXISTS idx_session_forks_parent_session_id
167
+ ON session_forks(parent_session_id);
168
+ CREATE INDEX IF NOT EXISTS idx_session_forks_source_message_id
169
+ ON session_forks(fork_source_message_id);
170
+
93
171
  CREATE TABLE IF NOT EXISTS session_changed_files (
94
172
  session_id TEXT NOT NULL,
95
173
  workspace_id TEXT NOT NULL,
@@ -241,6 +319,21 @@ CREATE TABLE IF NOT EXISTS user_preference_profiles (
241
319
  FOREIGN KEY (user_id) REFERENCES auth_users(id)
242
320
  );
243
321
 
322
+ CREATE TABLE IF NOT EXISTS git_remote_credentials (
323
+ user_id TEXT NOT NULL,
324
+ remote_url TEXT NOT NULL,
325
+ auth_mode TEXT NOT NULL CHECK (auth_mode IN ('basic', 'token')),
326
+ username_ciphertext TEXT NOT NULL,
327
+ secret_ciphertext TEXT NOT NULL,
328
+ created_at TEXT NOT NULL,
329
+ updated_at TEXT NOT NULL,
330
+ PRIMARY KEY (user_id, remote_url),
331
+ FOREIGN KEY (user_id) REFERENCES auth_users(id)
332
+ );
333
+
334
+ CREATE INDEX IF NOT EXISTS idx_git_remote_credentials_user_updated_at
335
+ ON git_remote_credentials(user_id, updated_at DESC);
336
+
244
337
  CREATE TABLE IF NOT EXISTS session_file_context_bindings (
245
338
  id TEXT PRIMARY KEY,
246
339
  session_id TEXT NOT NULL,
@@ -285,6 +378,20 @@ CREATE TABLE IF NOT EXISTS terminal_instances (
285
378
  closed_at TEXT,
286
379
  exit_code INTEGER,
287
380
  status_detail TEXT,
381
+ debug_runtime_session_id TEXT,
382
+ debug_target_id TEXT,
383
+ debug_service_id TEXT,
384
+ framework_analysis_id TEXT,
385
+ launcher_source_type TEXT CHECK (
386
+ launcher_source_type IS NULL OR launcher_source_type IN ('manual', 'debug_service')
387
+ ),
388
+ launch_stage TEXT,
389
+ failure_stage TEXT,
390
+ adapter_kind TEXT CHECK (
391
+ adapter_kind IS NULL OR adapter_kind IN ('cli', 'env', 'override', 'ai_fallback')
392
+ ),
393
+ env_patch_summary_json TEXT,
394
+ artifact_ref TEXT,
288
395
  FOREIGN KEY (workspace_id) REFERENCES workspaces(id),
289
396
  FOREIGN KEY (created_by_user_id) REFERENCES auth_users(id)
290
397
  );
@@ -376,6 +483,23 @@ CREATE TABLE IF NOT EXISTS terminal_command_templates (
376
483
  'conpty-git-bash'
377
484
  )
378
485
  ),
486
+ source_type TEXT CHECK (
487
+ source_type IS NULL OR source_type IN ('manual', 'debug_service')
488
+ ),
489
+ debug_target_id TEXT,
490
+ debug_service_id TEXT,
491
+ framework_analysis_id TEXT,
492
+ adapter_kind TEXT CHECK (
493
+ adapter_kind IS NULL OR adapter_kind IN ('cli', 'env', 'override', 'ai_fallback')
494
+ ),
495
+ injection_mode TEXT CHECK (
496
+ injection_mode IS NULL OR injection_mode IN ('cli', 'env', 'override', 'none')
497
+ ),
498
+ generated_artifact_ref TEXT,
499
+ service_discovery_mode TEXT CHECK (
500
+ service_discovery_mode IS NULL OR service_discovery_mode IN ('same_origin', 'api_base_url', 'none')
501
+ ),
502
+ managed_by_system INTEGER NOT NULL DEFAULT 0 CHECK (managed_by_system IN (0, 1)),
379
503
  created_at TEXT NOT NULL,
380
504
  updated_at TEXT NOT NULL,
381
505
  FOREIGN KEY (workspace_id) REFERENCES workspaces(id),
@@ -385,6 +509,150 @@ CREATE TABLE IF NOT EXISTS terminal_command_templates (
385
509
  CREATE INDEX IF NOT EXISTS idx_terminal_templates_workspace_id
386
510
  ON terminal_command_templates(workspace_id);
387
511
 
512
+ CREATE TABLE IF NOT EXISTS debug_targets (
513
+ id TEXT PRIMARY KEY,
514
+ workspace_id TEXT NOT NULL,
515
+ root_path TEXT NOT NULL,
516
+ display_name TEXT NOT NULL,
517
+ stack_hint TEXT,
518
+ source_type TEXT NOT NULL CHECK (source_type IN ('repo', 'worktree')),
519
+ root_workspace_id TEXT,
520
+ created_at TEXT NOT NULL,
521
+ updated_at TEXT NOT NULL,
522
+ FOREIGN KEY (workspace_id) REFERENCES workspaces(id),
523
+ FOREIGN KEY (root_workspace_id) REFERENCES workspaces(id),
524
+ UNIQUE (workspace_id, root_path)
525
+ );
526
+
527
+ CREATE INDEX IF NOT EXISTS idx_debug_targets_workspace_id
528
+ ON debug_targets(workspace_id, updated_at DESC, created_at DESC);
529
+
530
+ CREATE TABLE IF NOT EXISTS debug_services (
531
+ id TEXT PRIMARY KEY,
532
+ target_id TEXT NOT NULL,
533
+ role TEXT NOT NULL CHECK (role IN ('frontend', 'backend', 'worker', 'mock', 'custom')),
534
+ name TEXT NOT NULL,
535
+ cwd TEXT NOT NULL,
536
+ command TEXT NOT NULL,
537
+ args_json TEXT NOT NULL,
538
+ env_json TEXT NOT NULL,
539
+ default_port_hint INTEGER,
540
+ protocol TEXT CHECK (protocol IS NULL OR protocol IN ('http', 'ws', 'tcp')),
541
+ health_path TEXT,
542
+ adapter_kind TEXT CHECK (
543
+ adapter_kind IS NULL OR adapter_kind IN ('cli', 'env', 'override', 'ai_fallback')
544
+ ),
545
+ framework_analysis_id TEXT,
546
+ created_at TEXT NOT NULL,
547
+ updated_at TEXT NOT NULL,
548
+ FOREIGN KEY (target_id) REFERENCES debug_targets(id) ON DELETE CASCADE
549
+ );
550
+
551
+ CREATE INDEX IF NOT EXISTS idx_debug_services_target_id
552
+ ON debug_services(target_id, updated_at DESC, created_at DESC);
553
+
554
+ CREATE TABLE IF NOT EXISTS framework_analysis_results (
555
+ id TEXT PRIMARY KEY,
556
+ target_id TEXT NOT NULL,
557
+ service_id TEXT,
558
+ primary_framework TEXT,
559
+ confidence TEXT NOT NULL CHECK (confidence IN ('high', 'medium', 'low')),
560
+ compatibility_level TEXT NOT NULL CHECK (
561
+ compatibility_level IN ('supported', 'conditional', 'unsupported', 'unknown')
562
+ ),
563
+ recommended_injection_mode TEXT CHECK (
564
+ recommended_injection_mode IS NULL OR recommended_injection_mode IN ('cli', 'env', 'override', 'none')
565
+ ),
566
+ requires_service_discovery_handling INTEGER NOT NULL CHECK (
567
+ requires_service_discovery_handling IN (0, 1)
568
+ ),
569
+ requires_hmr_handling INTEGER NOT NULL CHECK (requires_hmr_handling IN (0, 1)),
570
+ requires_callback_handling INTEGER NOT NULL CHECK (requires_callback_handling IN (0, 1)),
571
+ ai_fallback_policy TEXT NOT NULL CHECK (ai_fallback_policy IN ('never', 'conditional', 'allowed')),
572
+ reasons_json TEXT NOT NULL,
573
+ detected_files_json TEXT NOT NULL DEFAULT '[]',
574
+ raw_evidence_json TEXT NOT NULL DEFAULT '{}',
575
+ created_at TEXT NOT NULL,
576
+ FOREIGN KEY (target_id) REFERENCES debug_targets(id) ON DELETE CASCADE,
577
+ FOREIGN KEY (service_id) REFERENCES debug_services(id) ON DELETE CASCADE
578
+ );
579
+
580
+ CREATE INDEX IF NOT EXISTS idx_framework_analysis_results_target_id
581
+ ON framework_analysis_results(target_id, created_at DESC);
582
+ CREATE INDEX IF NOT EXISTS idx_framework_analysis_results_service_id
583
+ ON framework_analysis_results(service_id, created_at DESC);
584
+
585
+ CREATE TABLE IF NOT EXISTS debug_runtime_sessions (
586
+ id TEXT PRIMARY KEY,
587
+ target_id TEXT NOT NULL,
588
+ status TEXT NOT NULL CHECK (status IN ('PREPARING', 'RUNNING', 'FAILED', 'STOPPED')),
589
+ failure_stage TEXT,
590
+ started_at TEXT,
591
+ stopped_at TEXT,
592
+ created_at TEXT NOT NULL,
593
+ updated_at TEXT NOT NULL,
594
+ FOREIGN KEY (target_id) REFERENCES debug_targets(id) ON DELETE CASCADE
595
+ );
596
+
597
+ CREATE INDEX IF NOT EXISTS idx_debug_runtime_sessions_target_id
598
+ ON debug_runtime_sessions(target_id, updated_at DESC, created_at DESC);
599
+
600
+ CREATE TABLE IF NOT EXISTS port_leases (
601
+ id TEXT PRIMARY KEY,
602
+ runtime_id TEXT NOT NULL,
603
+ service_id TEXT NOT NULL,
604
+ port INTEGER NOT NULL,
605
+ protocol TEXT NOT NULL CHECK (protocol IN ('tcp', 'udp')),
606
+ status TEXT NOT NULL CHECK (status IN ('LEASED', 'RELEASING', 'RELEASED', 'STALE')),
607
+ leased_at TEXT NOT NULL,
608
+ expires_at TEXT,
609
+ released_at TEXT,
610
+ FOREIGN KEY (runtime_id) REFERENCES debug_runtime_sessions(id) ON DELETE CASCADE,
611
+ FOREIGN KEY (service_id) REFERENCES debug_services(id) ON DELETE CASCADE
612
+ );
613
+
614
+ CREATE INDEX IF NOT EXISTS idx_port_leases_runtime_id
615
+ ON port_leases(runtime_id, leased_at DESC);
616
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_port_leases_active_port
617
+ ON port_leases(port, protocol)
618
+ WHERE status IN ('LEASED', 'RELEASING');
619
+
620
+ CREATE TABLE IF NOT EXISTS runtime_bindings (
621
+ id TEXT PRIMARY KEY,
622
+ runtime_id TEXT NOT NULL,
623
+ service_id TEXT NOT NULL,
624
+ process_instance_id TEXT,
625
+ expected_port INTEGER,
626
+ leased_port INTEGER,
627
+ observed_port INTEGER,
628
+ proxy_path TEXT,
629
+ status TEXT NOT NULL CHECK (status IN ('ALLOCATED', 'LISTENING', 'FAILED', 'RELEASED')),
630
+ updated_at TEXT NOT NULL,
631
+ FOREIGN KEY (runtime_id) REFERENCES debug_runtime_sessions(id) ON DELETE CASCADE,
632
+ FOREIGN KEY (service_id) REFERENCES debug_services(id) ON DELETE CASCADE
633
+ );
634
+
635
+ CREATE INDEX IF NOT EXISTS idx_runtime_bindings_runtime_id
636
+ ON runtime_bindings(runtime_id, updated_at DESC);
637
+
638
+ CREATE TABLE IF NOT EXISTS ai_fallback_edits (
639
+ id TEXT PRIMARY KEY,
640
+ runtime_id TEXT NOT NULL,
641
+ service_id TEXT NOT NULL,
642
+ reason TEXT NOT NULL,
643
+ allowed_files_json TEXT NOT NULL,
644
+ target_port INTEGER NOT NULL,
645
+ patch_ref TEXT,
646
+ rollback_ref TEXT,
647
+ status TEXT NOT NULL CHECK (status IN ('PENDING', 'APPLIED', 'ROLLED_BACK', 'REJECTED')),
648
+ created_at TEXT NOT NULL,
649
+ FOREIGN KEY (runtime_id) REFERENCES debug_runtime_sessions(id) ON DELETE CASCADE,
650
+ FOREIGN KEY (service_id) REFERENCES debug_services(id) ON DELETE CASCADE
651
+ );
652
+
653
+ CREATE INDEX IF NOT EXISTS idx_ai_fallback_edits_runtime_id
654
+ ON ai_fallback_edits(runtime_id, created_at DESC);
655
+
388
656
  CREATE TABLE IF NOT EXISTS butler_profiles (
389
657
  id TEXT PRIMARY KEY CHECK (id = 'default'),
390
658
  display_name TEXT NOT NULL,
@@ -1,4 +1,4 @@
1
- import type { ProviderId, SyncStatus } from "@codingns/session-sync-core";
1
+ import type { ForkMethod, ForkSourceType, ProviderId, SyncStatus } from "@codingns/session-sync-core";
2
2
  export type SessionRunningState = "idle" | "starting" | "running" | "completed" | "interrupted" | "failed";
3
3
  export type SessionResolvedRunningState = SessionRunningState | "stale" | "unknown";
4
4
  export type SessionActivityState = "idle" | "running" | "completed_unread";
@@ -33,11 +33,39 @@ export interface Workspace {
33
33
  name: string;
34
34
  path: string;
35
35
  repoRoot: string | null;
36
+ backgroundColor?: string | null;
36
37
  favorite: boolean;
38
+ sortOrder: number;
37
39
  createdAt: string;
38
40
  updatedAt: string;
39
41
  removedAt?: string | null;
40
42
  }
43
+ export type WorkspaceWorktreeLifecycleStatus = "active" | "merged" | "abandoned" | "removing" | "removed";
44
+ export interface WorkspaceWorktreeRecord {
45
+ workspaceId: string;
46
+ rootWorkspaceId: string;
47
+ parentWorkspaceId: string;
48
+ sourceWorkspaceId: string;
49
+ mergeTargetWorkspaceId: string;
50
+ branchName: string;
51
+ baseRef: string;
52
+ baseCommit: string;
53
+ headCommit: string | null;
54
+ displayName: string;
55
+ depth: number;
56
+ lifecycleStatus: WorkspaceWorktreeLifecycleStatus;
57
+ mergedAt: string | null;
58
+ removedAt: string | null;
59
+ createdAt: string;
60
+ updatedAt: string;
61
+ }
62
+ export interface WorkspaceNavigationStateRecord {
63
+ workspaceId: string;
64
+ userId: string;
65
+ collapsed: boolean;
66
+ backgroundColor: string | null;
67
+ updatedAt: string;
68
+ }
41
69
  export interface SessionBinding {
42
70
  sessionId: string;
43
71
  workspaceId: string;
@@ -52,6 +80,9 @@ export interface SessionIndexRecord {
52
80
  workspaceId: string;
53
81
  provider: ProviderId;
54
82
  parentSessionId?: string | null;
83
+ sessionKind?: "default" | "annotation";
84
+ annotationSourceMessageId?: string | null;
85
+ annotationSourceText?: string | null;
55
86
  isSubagent?: boolean;
56
87
  subagentLabel?: string | null;
57
88
  title: string;
@@ -61,6 +92,19 @@ export interface SessionIndexRecord {
61
92
  createdAt: string;
62
93
  updatedAt: string;
63
94
  }
95
+ export interface SessionForkRecord {
96
+ sessionId: string;
97
+ parentSessionId: string;
98
+ provider: ProviderId;
99
+ forkSourceType: ForkSourceType;
100
+ forkSourceSessionId: string;
101
+ forkSourceMessageId: string | null;
102
+ inheritedPrefixMessageCount: number;
103
+ providerParentSessionId: string | null;
104
+ providerSourceMessageId: string | null;
105
+ forkMethod: ForkMethod;
106
+ createdAt: string;
107
+ }
64
108
  export interface SessionChangedFileRecord {
65
109
  sessionId: string;
66
110
  workspaceId: string;
@@ -142,6 +186,14 @@ export interface SessionListItem {
142
186
  providerSessionId: string;
143
187
  rawStoreRef: string;
144
188
  parentSessionId?: string | null;
189
+ sessionKind?: "default" | "annotation";
190
+ annotationSourceMessageId?: string | null;
191
+ annotationSourceText?: string | null;
192
+ forkMethod?: ForkMethod | null;
193
+ forkSourceType?: ForkSourceType | null;
194
+ forkSourceSessionId?: string | null;
195
+ forkSourceMessageId?: string | null;
196
+ inheritedPrefixMessageCount?: number | null;
145
197
  isSubagent?: boolean;
146
198
  subagentLabel?: string | null;
147
199
  isArchived: boolean;
@@ -229,6 +281,15 @@ export interface UserPreferenceProfileRecord extends UserPreferenceProfile {
229
281
  createdAt: string;
230
282
  updatedAt: string;
231
283
  }
284
+ export interface GitRemoteCredentialRecord {
285
+ userId: string;
286
+ remoteUrl: string;
287
+ authMode: "basic" | "token";
288
+ usernameCiphertext: string;
289
+ secretCiphertext: string;
290
+ createdAt: string;
291
+ updatedAt: string;
292
+ }
232
293
  export type ButlerProfileProviderId = "codex" | "claude-code";
233
294
  export type ButlerAgentsMode = "inline" | "file";
234
295
  export type ButlerControlSessionStatus = "idle" | "running" | "failed" | "closed";
@@ -493,6 +554,181 @@ export interface FileContextBinding {
493
554
  attachedBy: string;
494
555
  attachedAt: string;
495
556
  }
557
+ export type DebugTargetSourceType = "repo" | "worktree";
558
+ export type DebugServiceRole = "frontend" | "backend" | "worker" | "mock" | "custom";
559
+ export type DebugServiceProtocol = "http" | "ws" | "tcp";
560
+ export type FrameworkAnalysisConfidence = "high" | "medium" | "low";
561
+ export type FrameworkCompatibilityLevel = "supported" | "conditional" | "unsupported" | "unknown";
562
+ export type DebugInjectionMode = "cli" | "env" | "override" | "ai_fallback" | "none";
563
+ export type DebugAdapterKind = "cli" | "env" | "override" | "ai_fallback";
564
+ export type DebugAiFallbackPolicy = "never" | "conditional" | "allowed";
565
+ export type DebugRuntimeSessionStatus = "PREPARING" | "RUNNING" | "FAILED" | "STOPPED";
566
+ export type RuntimeBindingStatus = "ALLOCATED" | "LISTENING" | "FAILED" | "RELEASED";
567
+ export type PortLeaseStatus = "LEASED" | "RELEASING" | "RELEASED" | "STALE";
568
+ export type AiFallbackEditStatus = "PENDING" | "APPLIED" | "ROLLED_BACK" | "REJECTED";
569
+ export type DebugLaunchAdapterAttemptStatus = "selected" | "skipped" | "blocked" | "fallback_required";
570
+ export type LauncherSourceType = "manual" | "debug_service";
571
+ export type ServiceDiscoveryMode = "same_origin" | "api_base_url" | "none";
572
+ export interface DebugTargetProfile {
573
+ id: string;
574
+ workspaceId: string;
575
+ rootPath: string;
576
+ displayName: string;
577
+ stackHint?: string | null;
578
+ sourceType: DebugTargetSourceType;
579
+ rootWorkspaceId?: string | null;
580
+ createdAt: string;
581
+ updatedAt: string;
582
+ }
583
+ export interface DebugServiceSpec {
584
+ id: string;
585
+ targetId: string;
586
+ role: DebugServiceRole;
587
+ name: string;
588
+ cwd: string;
589
+ command: string;
590
+ args: string[];
591
+ env: Record<string, string>;
592
+ defaultPortHint?: number | null;
593
+ protocol?: DebugServiceProtocol | null;
594
+ healthPath?: string | null;
595
+ adapterKind?: DebugAdapterKind | null;
596
+ frameworkAnalysisId?: string | null;
597
+ createdAt: string;
598
+ updatedAt: string;
599
+ }
600
+ export interface FrameworkAnalysisResult {
601
+ id: string;
602
+ targetId: string;
603
+ serviceId?: string | null;
604
+ primaryFramework?: string | null;
605
+ confidence: FrameworkAnalysisConfidence;
606
+ compatibilityLevel: FrameworkCompatibilityLevel;
607
+ recommendedInjectionMode?: DebugInjectionMode | null;
608
+ requiresServiceDiscoveryHandling: boolean;
609
+ requiresHmrHandling: boolean;
610
+ requiresCallbackHandling: boolean;
611
+ aiFallbackPolicy: DebugAiFallbackPolicy;
612
+ reasons: string[];
613
+ detectedFiles: string[];
614
+ rawEvidence?: Record<string, unknown>;
615
+ createdAt: string;
616
+ }
617
+ export interface DebugRuntimeSession {
618
+ id: string;
619
+ targetId: string;
620
+ status: DebugRuntimeSessionStatus;
621
+ failureStage?: string | null;
622
+ startedAt?: string | null;
623
+ stoppedAt?: string | null;
624
+ createdAt: string;
625
+ updatedAt: string;
626
+ }
627
+ export interface RuntimeBinding {
628
+ id: string;
629
+ runtimeId: string;
630
+ serviceId: string;
631
+ processInstanceId?: string | null;
632
+ expectedPort?: number | null;
633
+ leasedPort?: number | null;
634
+ observedPort?: number | null;
635
+ proxyPath?: string | null;
636
+ status: RuntimeBindingStatus;
637
+ updatedAt: string;
638
+ }
639
+ export interface PortLeaseRecord {
640
+ id: string;
641
+ runtimeId: string;
642
+ serviceId: string;
643
+ port: number;
644
+ protocol: "tcp" | "udp";
645
+ status: PortLeaseStatus;
646
+ leasedAt: string;
647
+ expiresAt?: string | null;
648
+ releasedAt?: string | null;
649
+ }
650
+ export interface AiFallbackEditRecord {
651
+ id: string;
652
+ runtimeId: string;
653
+ serviceId: string;
654
+ reason: string;
655
+ allowedFiles: string[];
656
+ targetPort: number;
657
+ patchRef?: string | null;
658
+ rollbackRef?: string | null;
659
+ status: AiFallbackEditStatus;
660
+ createdAt: string;
661
+ }
662
+ export interface FrameworkCompatibilityMatrixItem {
663
+ framework: string;
664
+ compatibilityLevel: FrameworkCompatibilityLevel;
665
+ recommendedInjectionMode: DebugInjectionMode;
666
+ requiresServiceDiscoveryHandling: boolean;
667
+ requiresHmrHandling: boolean;
668
+ requiresCallbackHandling: boolean;
669
+ aiFallbackPolicy: DebugAiFallbackPolicy;
670
+ notes: string;
671
+ }
672
+ export interface DebugLaunchAdapterAttempt {
673
+ kind: DebugAdapterKind;
674
+ status: DebugLaunchAdapterAttemptStatus;
675
+ reason: string;
676
+ }
677
+ export interface DebugAiFallbackSummary {
678
+ eligible: boolean;
679
+ editId: string | null;
680
+ status: AiFallbackEditStatus | null;
681
+ reason: string;
682
+ allowedFiles: string[];
683
+ }
684
+ export interface DebugLaunchPlanServiceItem {
685
+ serviceId: string;
686
+ role: DebugServiceRole;
687
+ frameworkAnalysisId: string | null;
688
+ primaryFramework: string | null;
689
+ compatibilityLevel: FrameworkCompatibilityLevel;
690
+ adapterKind: DebugAdapterKind | null;
691
+ injectionMode: DebugInjectionMode | null;
692
+ command: string;
693
+ args: string[];
694
+ envPatch: Record<string, string>;
695
+ expectedPort: number | null;
696
+ leasedPort: number | null;
697
+ artifactRef: string | null;
698
+ runtimeBindingId: string;
699
+ portLeaseId: string | null;
700
+ requiresServiceDiscoveryHandling: boolean;
701
+ requiresHmrHandling: boolean;
702
+ requiresCallbackHandling: boolean;
703
+ failureStage: string | null;
704
+ adapterAttempts: DebugLaunchAdapterAttempt[];
705
+ aiFallback: DebugAiFallbackSummary | null;
706
+ missingRequirements: string[];
707
+ autoStartAllowed: boolean;
708
+ }
709
+ export interface DebugLaunchPlan {
710
+ runtimeSession: DebugRuntimeSession;
711
+ targetId: string;
712
+ autoStartAllowed: boolean;
713
+ services: DebugLaunchPlanServiceItem[];
714
+ }
715
+ export interface DebugRuntimeDetailServiceItem {
716
+ service: DebugServiceSpec;
717
+ analysis: FrameworkAnalysisResult | null;
718
+ binding: RuntimeBinding | null;
719
+ portLease: PortLeaseRecord | null;
720
+ processInstance: TerminalInstance | null;
721
+ aiFallbackEdits: AiFallbackEditRecord[];
722
+ }
723
+ export interface DebugRuntimeDetail {
724
+ runtimeSession: DebugRuntimeSession;
725
+ target: DebugTargetProfile;
726
+ services: DebugRuntimeDetailServiceItem[];
727
+ }
728
+ export interface DebugRuntimeHistoryEnvelope {
729
+ targetId: string;
730
+ items: DebugRuntimeDetail[];
731
+ }
496
732
  export type PersistentTerminalRuntimeType = "tmux" | "conpty-powershell" | "conpty-cmd" | "conpty-git-bash";
497
733
  export type TerminalRuntimeType = PersistentTerminalRuntimeType | "embedded-pty";
498
734
  export type TerminalStatus = "creating" | "running" | "closed" | "error";
@@ -514,6 +750,16 @@ export interface TerminalInstance {
514
750
  closedAt: string | null;
515
751
  exitCode: number | null;
516
752
  statusDetail: string | null;
753
+ debugRuntimeSessionId?: string | null;
754
+ debugTargetId?: string | null;
755
+ debugServiceId?: string | null;
756
+ frameworkAnalysisId?: string | null;
757
+ launcherSourceType?: LauncherSourceType | null;
758
+ launchStage?: string | null;
759
+ failureStage?: string | null;
760
+ adapterKind?: DebugAdapterKind | null;
761
+ envPatchSummary?: Record<string, unknown>;
762
+ artifactRef?: string | null;
517
763
  }
518
764
  export interface TerminalRuntimeSession {
519
765
  id: string;
@@ -584,6 +830,15 @@ export interface TerminalCommandTemplate {
584
830
  runtimeType: TerminalRuntimeType | null;
585
831
  createdAt: string;
586
832
  updatedAt: string;
833
+ sourceType?: LauncherSourceType | null;
834
+ debugTargetId?: string | null;
835
+ debugServiceId?: string | null;
836
+ frameworkAnalysisId?: string | null;
837
+ adapterKind?: DebugAdapterKind | null;
838
+ injectionMode?: DebugInjectionMode | null;
839
+ generatedArtifactRef?: string | null;
840
+ serviceDiscoveryMode?: ServiceDiscoveryMode | null;
841
+ managedBySystem?: boolean;
587
842
  }
588
843
  export interface TerminalTemplateRuntimeStatus {
589
844
  templateId: string;