@sudocode-ai/local-server 0.1.7 → 0.1.9

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/README.md +6 -0
  2. package/dist/errors/agent-errors.d.ts +43 -0
  3. package/dist/errors/agent-errors.d.ts.map +1 -0
  4. package/dist/errors/agent-errors.js +69 -0
  5. package/dist/errors/agent-errors.js.map +1 -0
  6. package/dist/execution/adapters/claude-adapter.d.ts +63 -0
  7. package/dist/execution/adapters/claude-adapter.d.ts.map +1 -0
  8. package/dist/execution/adapters/claude-adapter.js +82 -0
  9. package/dist/execution/adapters/claude-adapter.js.map +1 -0
  10. package/dist/execution/adapters/codex-adapter.d.ts +67 -0
  11. package/dist/execution/adapters/codex-adapter.d.ts.map +1 -0
  12. package/dist/execution/adapters/codex-adapter.js +183 -0
  13. package/dist/execution/adapters/codex-adapter.js.map +1 -0
  14. package/dist/execution/adapters/codex-config-builder.d.ts +30 -0
  15. package/dist/execution/adapters/codex-config-builder.d.ts.map +1 -0
  16. package/dist/execution/adapters/codex-config-builder.js +110 -0
  17. package/dist/execution/adapters/codex-config-builder.js.map +1 -0
  18. package/dist/execution/adapters/copilot-adapter.d.ts +94 -0
  19. package/dist/execution/adapters/copilot-adapter.d.ts.map +1 -0
  20. package/dist/execution/adapters/copilot-adapter.js +163 -0
  21. package/dist/execution/adapters/copilot-adapter.js.map +1 -0
  22. package/dist/execution/adapters/copilot-config-builder.d.ts +48 -0
  23. package/dist/execution/adapters/copilot-config-builder.d.ts.map +1 -0
  24. package/dist/execution/adapters/copilot-config-builder.js +125 -0
  25. package/dist/execution/adapters/copilot-config-builder.js.map +1 -0
  26. package/dist/execution/adapters/cursor-adapter.d.ts +66 -0
  27. package/dist/execution/adapters/cursor-adapter.d.ts.map +1 -0
  28. package/dist/execution/adapters/cursor-adapter.js +121 -0
  29. package/dist/execution/adapters/cursor-adapter.js.map +1 -0
  30. package/dist/execution/adapters/cursor-config-builder.d.ts +29 -0
  31. package/dist/execution/adapters/cursor-config-builder.d.ts.map +1 -0
  32. package/dist/execution/adapters/cursor-config-builder.js +49 -0
  33. package/dist/execution/adapters/cursor-config-builder.js.map +1 -0
  34. package/dist/execution/adapters/shared/config-presets.d.ts +102 -0
  35. package/dist/execution/adapters/shared/config-presets.d.ts.map +1 -0
  36. package/dist/execution/adapters/shared/config-presets.js +205 -0
  37. package/dist/execution/adapters/shared/config-presets.js.map +1 -0
  38. package/dist/execution/adapters/shared/config-utils.d.ts +95 -0
  39. package/dist/execution/adapters/shared/config-utils.d.ts.map +1 -0
  40. package/dist/execution/adapters/shared/config-utils.js +163 -0
  41. package/dist/execution/adapters/shared/config-utils.js.map +1 -0
  42. package/dist/execution/adapters/shared/index.d.ts +8 -0
  43. package/dist/execution/adapters/shared/index.d.ts.map +1 -0
  44. package/dist/execution/adapters/shared/index.js +8 -0
  45. package/dist/execution/adapters/shared/index.js.map +1 -0
  46. package/dist/execution/executors/agent-executor-wrapper.d.ts +153 -0
  47. package/dist/execution/executors/agent-executor-wrapper.d.ts.map +1 -0
  48. package/dist/execution/executors/agent-executor-wrapper.js +652 -0
  49. package/dist/execution/executors/agent-executor-wrapper.js.map +1 -0
  50. package/dist/execution/executors/executor-factory.d.ts +95 -0
  51. package/dist/execution/executors/executor-factory.d.ts.map +1 -0
  52. package/dist/execution/executors/executor-factory.js +120 -0
  53. package/dist/execution/executors/executor-factory.js.map +1 -0
  54. package/dist/execution/output/ag-ui-adapter.d.ts +0 -2
  55. package/dist/execution/output/ag-ui-adapter.d.ts.map +1 -1
  56. package/dist/execution/output/ag-ui-adapter.js +0 -2
  57. package/dist/execution/output/ag-ui-adapter.js.map +1 -1
  58. package/dist/execution/output/index.d.ts +0 -3
  59. package/dist/execution/output/index.d.ts.map +1 -1
  60. package/dist/execution/output/index.js +0 -2
  61. package/dist/execution/output/index.js.map +1 -1
  62. package/dist/execution/output/normalized-to-ag-ui-adapter.d.ts +108 -0
  63. package/dist/execution/output/normalized-to-ag-ui-adapter.d.ts.map +1 -0
  64. package/dist/execution/output/normalized-to-ag-ui-adapter.js +321 -0
  65. package/dist/execution/output/normalized-to-ag-ui-adapter.js.map +1 -0
  66. package/dist/execution/process/builders/claude.d.ts +24 -57
  67. package/dist/execution/process/builders/claude.d.ts.map +1 -1
  68. package/dist/execution/process/builders/claude.js +153 -19
  69. package/dist/execution/process/builders/claude.js.map +1 -1
  70. package/dist/execution/transport/ipc-transport-manager.d.ts +74 -0
  71. package/dist/execution/transport/ipc-transport-manager.d.ts.map +1 -0
  72. package/dist/execution/transport/ipc-transport-manager.js +104 -0
  73. package/dist/execution/transport/ipc-transport-manager.js.map +1 -0
  74. package/dist/execution/transport/transport-manager.d.ts.map +1 -1
  75. package/dist/execution/transport/transport-manager.js +3 -0
  76. package/dist/execution/transport/transport-manager.js.map +1 -1
  77. package/dist/execution/worktree/conflict-detector.d.ts +85 -0
  78. package/dist/execution/worktree/conflict-detector.d.ts.map +1 -0
  79. package/dist/execution/worktree/conflict-detector.js +129 -0
  80. package/dist/execution/worktree/conflict-detector.js.map +1 -0
  81. package/dist/execution/worktree/git-cli.d.ts +9 -0
  82. package/dist/execution/worktree/git-cli.d.ts.map +1 -1
  83. package/dist/execution/worktree/git-cli.js +10 -0
  84. package/dist/execution/worktree/git-cli.js.map +1 -1
  85. package/dist/execution/worktree/git-sync-cli.d.ts +198 -0
  86. package/dist/execution/worktree/git-sync-cli.d.ts.map +1 -0
  87. package/dist/execution/worktree/git-sync-cli.js +401 -0
  88. package/dist/execution/worktree/git-sync-cli.js.map +1 -0
  89. package/dist/execution/worktree/manager.d.ts +18 -0
  90. package/dist/execution/worktree/manager.d.ts.map +1 -1
  91. package/dist/execution/worktree/manager.js +9 -3
  92. package/dist/execution/worktree/manager.js.map +1 -1
  93. package/dist/index.d.ts +1 -3
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +124 -229
  96. package/dist/index.js.map +1 -1
  97. package/dist/middleware/project-context.d.ts +37 -0
  98. package/dist/middleware/project-context.d.ts.map +1 -0
  99. package/dist/middleware/project-context.js +91 -0
  100. package/dist/middleware/project-context.js.map +1 -0
  101. package/dist/public/assets/index-DV9Tbujb.css +1 -0
  102. package/dist/public/assets/index-DcDX9-Ad.js +740 -0
  103. package/dist/public/assets/index-DcDX9-Ad.js.map +1 -0
  104. package/dist/public/assets/{react-vendor-ByUx1V_q.js → react-vendor-DiL5hC7l.js} +2 -2
  105. package/dist/public/assets/{react-vendor-ByUx1V_q.js.map → react-vendor-DiL5hC7l.js.map} +1 -1
  106. package/dist/public/assets/ui-vendor-B4WMPEfa.js +54 -0
  107. package/dist/public/assets/ui-vendor-B4WMPEfa.js.map +1 -0
  108. package/dist/public/index.html +4 -4
  109. package/dist/routes/agents.d.ts +3 -0
  110. package/dist/routes/agents.d.ts.map +1 -0
  111. package/dist/routes/agents.js +62 -0
  112. package/dist/routes/agents.js.map +1 -0
  113. package/dist/routes/config.d.ts +3 -0
  114. package/dist/routes/config.d.ts.map +1 -0
  115. package/dist/routes/config.js +25 -0
  116. package/dist/routes/config.js.map +1 -0
  117. package/dist/routes/editors.d.ts +15 -0
  118. package/dist/routes/editors.d.ts.map +1 -0
  119. package/dist/routes/editors.js +98 -0
  120. package/dist/routes/editors.js.map +1 -0
  121. package/dist/routes/executions-stream.d.ts +8 -5
  122. package/dist/routes/executions-stream.d.ts.map +1 -1
  123. package/dist/routes/executions-stream.js +10 -6
  124. package/dist/routes/executions-stream.js.map +1 -1
  125. package/dist/routes/executions.d.ts +6 -10
  126. package/dist/routes/executions.d.ts.map +1 -1
  127. package/dist/routes/executions.js +792 -37
  128. package/dist/routes/executions.js.map +1 -1
  129. package/dist/routes/feedback.d.ts +3 -2
  130. package/dist/routes/feedback.d.ts.map +1 -1
  131. package/dist/routes/feedback.js +12 -10
  132. package/dist/routes/feedback.js.map +1 -1
  133. package/dist/routes/files.d.ts +18 -0
  134. package/dist/routes/files.d.ts.map +1 -0
  135. package/dist/routes/files.js +89 -0
  136. package/dist/routes/files.js.map +1 -0
  137. package/dist/routes/issues.d.ts +3 -2
  138. package/dist/routes/issues.d.ts.map +1 -1
  139. package/dist/routes/issues.js +19 -18
  140. package/dist/routes/issues.js.map +1 -1
  141. package/dist/routes/projects.d.ts +11 -0
  142. package/dist/routes/projects.d.ts.map +1 -0
  143. package/dist/routes/projects.js +447 -0
  144. package/dist/routes/projects.js.map +1 -0
  145. package/dist/routes/relationships.d.ts +3 -2
  146. package/dist/routes/relationships.d.ts.map +1 -1
  147. package/dist/routes/relationships.js +12 -10
  148. package/dist/routes/relationships.js.map +1 -1
  149. package/dist/routes/repo-info.d.ts +3 -0
  150. package/dist/routes/repo-info.d.ts.map +1 -0
  151. package/dist/routes/repo-info.js +203 -0
  152. package/dist/routes/repo-info.js.map +1 -0
  153. package/dist/routes/specs.d.ts +3 -2
  154. package/dist/routes/specs.d.ts.map +1 -1
  155. package/dist/routes/specs.js +19 -18
  156. package/dist/routes/specs.js.map +1 -1
  157. package/dist/routes/version.d.ts +3 -0
  158. package/dist/routes/version.d.ts.map +1 -0
  159. package/dist/routes/version.js +25 -0
  160. package/dist/routes/version.js.map +1 -0
  161. package/dist/services/agent-registry.d.ts +140 -0
  162. package/dist/services/agent-registry.d.ts.map +1 -0
  163. package/dist/services/agent-registry.js +272 -0
  164. package/dist/services/agent-registry.js.map +1 -0
  165. package/dist/services/editor-service.d.ts +57 -0
  166. package/dist/services/editor-service.d.ts.map +1 -0
  167. package/dist/services/editor-service.js +204 -0
  168. package/dist/services/editor-service.js.map +1 -0
  169. package/dist/services/execution-changes-service.d.ts +110 -0
  170. package/dist/services/execution-changes-service.d.ts.map +1 -0
  171. package/dist/services/execution-changes-service.js +700 -0
  172. package/dist/services/execution-changes-service.js.map +1 -0
  173. package/dist/services/execution-lifecycle.d.ts +1 -0
  174. package/dist/services/execution-lifecycle.d.ts.map +1 -1
  175. package/dist/services/execution-lifecycle.js +37 -7
  176. package/dist/services/execution-lifecycle.js.map +1 -1
  177. package/dist/services/execution-logs-store.d.ts +75 -0
  178. package/dist/services/execution-logs-store.d.ts.map +1 -1
  179. package/dist/services/execution-logs-store.js +142 -2
  180. package/dist/services/execution-logs-store.js.map +1 -1
  181. package/dist/services/execution-service.d.ts +82 -59
  182. package/dist/services/execution-service.d.ts.map +1 -1
  183. package/dist/services/execution-service.js +514 -469
  184. package/dist/services/execution-service.js.map +1 -1
  185. package/dist/services/execution-worker-pool.d.ts +116 -0
  186. package/dist/services/execution-worker-pool.d.ts.map +1 -0
  187. package/dist/services/execution-worker-pool.js +326 -0
  188. package/dist/services/execution-worker-pool.js.map +1 -0
  189. package/dist/services/executions.d.ts +3 -0
  190. package/dist/services/executions.d.ts.map +1 -1
  191. package/dist/services/executions.js +11 -17
  192. package/dist/services/executions.js.map +1 -1
  193. package/dist/services/export.d.ts +8 -2
  194. package/dist/services/export.d.ts.map +1 -1
  195. package/dist/services/export.js +29 -23
  196. package/dist/services/export.js.map +1 -1
  197. package/dist/services/file-search/git-ls-files-strategy.d.ts +72 -0
  198. package/dist/services/file-search/git-ls-files-strategy.d.ts.map +1 -0
  199. package/dist/services/file-search/git-ls-files-strategy.js +176 -0
  200. package/dist/services/file-search/git-ls-files-strategy.js.map +1 -0
  201. package/dist/services/file-search/index.d.ts +9 -0
  202. package/dist/services/file-search/index.d.ts.map +1 -0
  203. package/dist/services/file-search/index.js +10 -0
  204. package/dist/services/file-search/index.js.map +1 -0
  205. package/dist/services/file-search/registry.d.ts +97 -0
  206. package/dist/services/file-search/registry.d.ts.map +1 -0
  207. package/dist/services/file-search/registry.js +140 -0
  208. package/dist/services/file-search/registry.js.map +1 -0
  209. package/dist/services/file-search/strategy.d.ts +58 -0
  210. package/dist/services/file-search/strategy.d.ts.map +1 -0
  211. package/dist/services/file-search/strategy.js +8 -0
  212. package/dist/services/file-search/strategy.js.map +1 -0
  213. package/dist/services/project-context.d.ts +69 -0
  214. package/dist/services/project-context.d.ts.map +1 -0
  215. package/dist/services/project-context.js +113 -0
  216. package/dist/services/project-context.js.map +1 -0
  217. package/dist/services/project-manager.d.ts +95 -0
  218. package/dist/services/project-manager.d.ts.map +1 -0
  219. package/dist/services/project-manager.js +388 -0
  220. package/dist/services/project-manager.js.map +1 -0
  221. package/dist/services/project-registry.d.ts +98 -0
  222. package/dist/services/project-registry.d.ts.map +1 -0
  223. package/dist/services/project-registry.js +289 -0
  224. package/dist/services/project-registry.js.map +1 -0
  225. package/dist/services/prompt-resolver.d.ts +97 -0
  226. package/dist/services/prompt-resolver.d.ts.map +1 -0
  227. package/dist/services/prompt-resolver.js +377 -0
  228. package/dist/services/prompt-resolver.js.map +1 -0
  229. package/dist/services/repo-info.d.ts +12 -0
  230. package/dist/services/repo-info.d.ts.map +1 -1
  231. package/dist/services/repo-info.js +46 -0
  232. package/dist/services/repo-info.js.map +1 -1
  233. package/dist/services/version-service.d.ts +14 -0
  234. package/dist/services/version-service.d.ts.map +1 -0
  235. package/dist/services/version-service.js +57 -0
  236. package/dist/services/version-service.js.map +1 -0
  237. package/dist/services/watcher.d.ts +3 -4
  238. package/dist/services/watcher.d.ts.map +1 -1
  239. package/dist/services/watcher.js +18 -35
  240. package/dist/services/watcher.js.map +1 -1
  241. package/dist/services/websocket.d.ts +30 -16
  242. package/dist/services/websocket.d.ts.map +1 -1
  243. package/dist/services/websocket.js +102 -37
  244. package/dist/services/websocket.js.map +1 -1
  245. package/dist/services/worktree-sync-service.d.ts +326 -0
  246. package/dist/services/worktree-sync-service.d.ts.map +1 -0
  247. package/dist/services/worktree-sync-service.js +1091 -0
  248. package/dist/services/worktree-sync-service.js.map +1 -0
  249. package/dist/types/editor.d.ts +49 -0
  250. package/dist/types/editor.d.ts.map +1 -0
  251. package/dist/types/editor.js +50 -0
  252. package/dist/types/editor.js.map +1 -0
  253. package/dist/types/project.d.ts +58 -0
  254. package/dist/types/project.d.ts.map +1 -0
  255. package/dist/types/project.js +10 -0
  256. package/dist/types/project.js.map +1 -0
  257. package/dist/utils/executable-check.d.ts +36 -0
  258. package/dist/utils/executable-check.d.ts.map +1 -0
  259. package/dist/utils/executable-check.js +79 -0
  260. package/dist/utils/executable-check.js.map +1 -0
  261. package/dist/workers/execution-worker.d.ts +18 -0
  262. package/dist/workers/execution-worker.d.ts.map +1 -0
  263. package/dist/workers/execution-worker.js +340 -0
  264. package/dist/workers/execution-worker.js.map +1 -0
  265. package/dist/workers/worker-ipc.d.ts +84 -0
  266. package/dist/workers/worker-ipc.d.ts.map +1 -0
  267. package/dist/workers/worker-ipc.js +29 -0
  268. package/dist/workers/worker-ipc.js.map +1 -0
  269. package/package.json +6 -5
  270. package/dist/execution/output/ag-ui-integration.d.ts +0 -96
  271. package/dist/execution/output/ag-ui-integration.d.ts.map +0 -1
  272. package/dist/execution/output/ag-ui-integration.js +0 -96
  273. package/dist/execution/output/ag-ui-integration.js.map +0 -1
  274. package/dist/execution/output/claude-code-output-processor.d.ts +0 -321
  275. package/dist/execution/output/claude-code-output-processor.d.ts.map +0 -1
  276. package/dist/execution/output/claude-code-output-processor.js +0 -769
  277. package/dist/execution/output/claude-code-output-processor.js.map +0 -1
  278. package/dist/public/assets/index-B3SEMufD.js +0 -580
  279. package/dist/public/assets/index-B3SEMufD.js.map +0 -1
  280. package/dist/public/assets/index-D2YGL3gX.css +0 -1
  281. package/dist/public/assets/ui-vendor-CotR6bx9.js +0 -54
  282. package/dist/public/assets/ui-vendor-CotR6bx9.js.map +0 -1
@@ -0,0 +1,203 @@
1
+ import { Router } from "express";
2
+ import { getRepositoryInfo, getRepositoryBranches, } from "../services/repo-info.js";
3
+ import { GitSyncCli } from "../execution/worktree/git-sync-cli.js";
4
+ import { ConflictDetector } from "../execution/worktree/conflict-detector.js";
5
+ import * as fs from "fs";
6
+ import * as path from "path";
7
+ export function createRepoInfoRouter() {
8
+ const router = Router();
9
+ // Repository info endpoint - returns git repository information for current project
10
+ router.get("/", async (req, res) => {
11
+ try {
12
+ const repoInfo = await getRepositoryInfo(req.project.path);
13
+ res.status(200).json({
14
+ success: true,
15
+ data: repoInfo,
16
+ });
17
+ }
18
+ catch (error) {
19
+ const err = error;
20
+ if (err.message === "Not a git repository") {
21
+ res.status(404).json({
22
+ success: false,
23
+ data: null,
24
+ message: err.message,
25
+ });
26
+ }
27
+ else {
28
+ console.error("Failed to get repository info:", error);
29
+ res.status(500).json({
30
+ success: false,
31
+ data: null,
32
+ message: "Failed to get repository info",
33
+ });
34
+ }
35
+ }
36
+ });
37
+ // Repository branches endpoint - returns list of all local branches
38
+ router.get("/branches", async (req, res) => {
39
+ try {
40
+ const branchInfo = await getRepositoryBranches(req.project.path);
41
+ res.status(200).json({
42
+ success: true,
43
+ data: branchInfo,
44
+ });
45
+ }
46
+ catch (error) {
47
+ const err = error;
48
+ if (err.message === "Not a git repository") {
49
+ res.status(404).json({
50
+ success: false,
51
+ data: null,
52
+ message: err.message,
53
+ });
54
+ }
55
+ else {
56
+ console.error("Failed to get repository branches:", error);
57
+ res.status(500).json({
58
+ success: false,
59
+ data: null,
60
+ message: "Failed to get repository branches",
61
+ });
62
+ }
63
+ }
64
+ });
65
+ // Worktrees endpoint - returns all worktrees that actually exist in .sudocode/worktrees/
66
+ router.get("/worktrees", (req, res) => {
67
+ try {
68
+ const db = req.project.db;
69
+ const repoPath = req.project.path;
70
+ const worktreesDir = path.join(repoPath, ".sudocode", "worktrees");
71
+ // Check if worktrees directory exists
72
+ if (!fs.existsSync(worktreesDir)) {
73
+ res.json({
74
+ success: true,
75
+ data: [],
76
+ });
77
+ return;
78
+ }
79
+ // Read all directories in .sudocode/worktrees/
80
+ const worktreeDirs = fs
81
+ .readdirSync(worktreesDir, { withFileTypes: true })
82
+ .filter((dirent) => dirent.isDirectory())
83
+ .map((dirent) => dirent.name);
84
+ // For each worktree directory, try to find corresponding execution in database
85
+ const worktrees = worktreeDirs
86
+ .map((dirName) => {
87
+ const worktreePath = path.join(worktreesDir, dirName);
88
+ // Find execution by worktree_path
89
+ const execution = db
90
+ .prepare(`SELECT * FROM executions
91
+ WHERE worktree_path = ?
92
+ LIMIT 1`)
93
+ .get(worktreePath);
94
+ // If execution found, return it; otherwise return basic info
95
+ if (execution) {
96
+ return execution;
97
+ }
98
+ else {
99
+ // Worktree exists but no execution record - return minimal info
100
+ return {
101
+ id: null,
102
+ worktree_path: worktreePath,
103
+ branch_name: dirName,
104
+ status: "orphaned",
105
+ created_at: null,
106
+ updated_at: null,
107
+ };
108
+ }
109
+ })
110
+ .filter((wt) => wt !== null);
111
+ res.json({
112
+ success: true,
113
+ data: worktrees,
114
+ });
115
+ }
116
+ catch (error) {
117
+ console.error("Error listing worktrees:", error);
118
+ res.status(500).json({
119
+ success: false,
120
+ data: null,
121
+ error_data: error instanceof Error ? error.message : String(error),
122
+ message: "Failed to list worktrees",
123
+ });
124
+ }
125
+ });
126
+ // Worktree sync preview endpoint - Preview sync for a worktree
127
+ router.post("/worktrees/preview", async (req, res) => {
128
+ try {
129
+ const projectPath = req.project.path;
130
+ const { worktreePath, branchName, targetBranch } = req.body;
131
+ // Validate inputs
132
+ if (!worktreePath || !branchName || !targetBranch) {
133
+ res.status(400).json({
134
+ success: false,
135
+ error: "Missing required parameters",
136
+ message: "worktreePath, branchName, and targetBranch are required",
137
+ });
138
+ return;
139
+ }
140
+ // Check worktree exists
141
+ if (!fs.existsSync(worktreePath)) {
142
+ res.status(404).json({
143
+ success: false,
144
+ error: "Worktree not found",
145
+ message: `Worktree does not exist at path: ${worktreePath}`,
146
+ });
147
+ return;
148
+ }
149
+ // Create git clients for main repo and worktree
150
+ const mainGitSync = new GitSyncCli(projectPath);
151
+ const worktreeGitSync = new GitSyncCli(worktreePath);
152
+ const worktreeConflictDetector = new ConflictDetector(worktreePath);
153
+ // Find merge base
154
+ const mergeBase = mainGitSync.getMergeBase(branchName, targetBranch);
155
+ // Get commit list
156
+ const commits = mainGitSync.getCommitList(mergeBase, branchName);
157
+ // Get diff summary
158
+ const diff = mainGitSync.getDiff(mergeBase, branchName);
159
+ // Detect conflicts
160
+ const conflicts = worktreeConflictDetector.detectConflicts(branchName, targetBranch);
161
+ // Check for uncommitted changes
162
+ const uncommittedFiles = worktreeGitSync.getUncommittedFiles();
163
+ const uncommittedStats = worktreeGitSync.getUncommittedStats();
164
+ const uncommittedJSONL = uncommittedFiles.filter((file) => file.endsWith(".jsonl") &&
165
+ (file.includes(".sudocode/") || file.startsWith(".sudocode/")));
166
+ // Generate warnings
167
+ const warnings = [];
168
+ if (conflicts.codeConflicts.length > 0) {
169
+ warnings.push(`${conflicts.codeConflicts.length} code conflict(s) detected. Manual resolution required.`);
170
+ }
171
+ if (uncommittedJSONL.length > 0) {
172
+ warnings.push(`${uncommittedJSONL.length} uncommitted JSONL file(s) will be included in sync.`);
173
+ }
174
+ // Determine if sync can proceed
175
+ const canSync = conflicts.codeConflicts.length === 0;
176
+ const preview = {
177
+ canSync,
178
+ conflicts,
179
+ diff,
180
+ commits,
181
+ mergeBase,
182
+ uncommittedJSONLChanges: uncommittedJSONL,
183
+ uncommittedChanges: uncommittedStats,
184
+ executionStatus: null, // Not execution-specific
185
+ warnings,
186
+ };
187
+ res.json({
188
+ success: true,
189
+ data: preview,
190
+ });
191
+ }
192
+ catch (error) {
193
+ console.error("Failed to preview worktree sync:", error);
194
+ res.status(500).json({
195
+ success: false,
196
+ error: "Failed to preview worktree sync",
197
+ message: error instanceof Error ? error.message : String(error),
198
+ });
199
+ }
200
+ });
201
+ return router;
202
+ }
203
+ //# sourceMappingURL=repo-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-info.js","sourceRoot":"","sources":["../../src/routes/repo-info.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * Specs API routes (mapped to /api/specs)
3
+ *
4
+ * Note: All routes require X-Project-ID header via requireProject() middleware
3
5
  */
4
6
  import { Router } from "express";
5
- import type Database from "better-sqlite3";
6
- export declare function createSpecsRouter(db: Database.Database): Router;
7
+ export declare function createSpecsRouter(): Router;
7
8
  //# sourceMappingURL=specs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../src/routes/specs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AACpD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAc3C,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAgS/D"}
1
+ {"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../src/routes/specs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAapD,wBAAgB,iBAAiB,IAAI,MAAM,CAgS1C"}
@@ -1,14 +1,15 @@
1
1
  /**
2
2
  * Specs API routes (mapped to /api/specs)
3
+ *
4
+ * Note: All routes require X-Project-ID header via requireProject() middleware
3
5
  */
4
6
  import { Router } from "express";
5
7
  import { getAllSpecs, getSpecById, createNewSpec, updateExistingSpec, deleteExistingSpec, } from "../services/specs.js";
6
8
  import { generateSpecId } from "@sudocode-ai/cli/dist/id-generator.js";
7
9
  import { broadcastSpecUpdate } from "../services/websocket.js";
8
- import { getSudocodeDir } from "../utils/sudocode-dir.js";
9
10
  import { triggerExport, syncEntityToMarkdown } from "../services/export.js";
10
11
  import * as path from "path";
11
- export function createSpecsRouter(db) {
12
+ export function createSpecsRouter() {
12
13
  const router = Router();
13
14
  /**
14
15
  * GET /api/specs - List all specs
@@ -31,7 +32,7 @@ export function createSpecsRouter(db) {
31
32
  if (req.query.offset) {
32
33
  options.offset = parseInt(req.query.offset, 10);
33
34
  }
34
- const specs = getAllSpecs(db, options);
35
+ const specs = getAllSpecs(req.project.db, options);
35
36
  res.json({
36
37
  success: true,
37
38
  data: specs,
@@ -53,7 +54,7 @@ export function createSpecsRouter(db) {
53
54
  router.get("/:id", (req, res) => {
54
55
  try {
55
56
  const { id } = req.params;
56
- const spec = getSpecById(db, id);
57
+ const spec = getSpecById(req.project.db, id);
57
58
  if (!spec) {
58
59
  res.status(404).json({
59
60
  success: false,
@@ -101,12 +102,12 @@ export function createSpecsRouter(db) {
101
102
  return;
102
103
  }
103
104
  // Generate new spec ID
104
- const outputDir = getSudocodeDir();
105
- const { id, uuid } = generateSpecId(db, outputDir);
105
+ const outputDir = req.project.sudocodeDir;
106
+ const { id, uuid } = generateSpecId(req.project.db, outputDir);
106
107
  // Generate file path for the spec
107
108
  const file_path = path.join(outputDir, "specs", `${id}.md`);
108
109
  // Create spec using CLI operation
109
- const spec = createNewSpec(db, {
110
+ const spec = createNewSpec(req.project.db, {
110
111
  id,
111
112
  uuid,
112
113
  title,
@@ -116,13 +117,13 @@ export function createSpecsRouter(db) {
116
117
  parent_id: parent_id || undefined,
117
118
  });
118
119
  // Trigger export to JSONL files
119
- triggerExport(db);
120
+ triggerExport(req.project.db, req.project.sudocodeDir);
120
121
  // Sync this specific spec to its markdown file (don't wait for it)
121
- syncEntityToMarkdown(db, spec.id, "spec").catch((error) => {
122
+ syncEntityToMarkdown(req.project.db, spec.id, "spec", req.project.sudocodeDir).catch((error) => {
122
123
  console.error(`Failed to sync spec ${spec.id} to markdown:`, error);
123
124
  });
124
125
  // Broadcast spec creation to WebSocket clients
125
- broadcastSpecUpdate(spec.id, "created", spec);
126
+ broadcastSpecUpdate(req.project.id, spec.id, "created", spec);
126
127
  res.status(201).json({
127
128
  success: true,
128
129
  data: spec,
@@ -184,15 +185,15 @@ export function createSpecsRouter(db) {
184
185
  updateInput.archived_at = archived ? new Date().toISOString() : null;
185
186
  }
186
187
  // Update spec using CLI operation
187
- const spec = updateExistingSpec(db, id, updateInput);
188
+ const spec = updateExistingSpec(req.project.db, id, updateInput);
188
189
  // Trigger export to JSONL files
189
- triggerExport(db);
190
+ triggerExport(req.project.db, req.project.sudocodeDir);
190
191
  // Sync this specific spec to its markdown file (don't wait for it)
191
- syncEntityToMarkdown(db, spec.id, "spec").catch((error) => {
192
+ syncEntityToMarkdown(req.project.db, spec.id, "spec", req.project.sudocodeDir).catch((error) => {
192
193
  console.error(`Failed to sync spec ${spec.id} to markdown:`, error);
193
194
  });
194
195
  // Broadcast spec update to WebSocket clients
195
- broadcastSpecUpdate(spec.id, "updated", spec);
196
+ broadcastSpecUpdate(req.project.id, spec.id, "updated", spec);
196
197
  res.json({
197
198
  success: true,
198
199
  data: spec,
@@ -224,7 +225,7 @@ export function createSpecsRouter(db) {
224
225
  try {
225
226
  const { id } = req.params;
226
227
  // Check if spec exists first
227
- const existingSpec = getSpecById(db, id);
228
+ const existingSpec = getSpecById(req.project.db, id);
228
229
  if (!existingSpec) {
229
230
  res.status(404).json({
230
231
  success: false,
@@ -234,12 +235,12 @@ export function createSpecsRouter(db) {
234
235
  return;
235
236
  }
236
237
  // Delete spec using CLI operation
237
- const deleted = deleteExistingSpec(db, id);
238
+ const deleted = deleteExistingSpec(req.project.db, id);
238
239
  if (deleted) {
239
240
  // Trigger export to JSONL files
240
- triggerExport(db);
241
+ triggerExport(req.project.db, req.project.sudocodeDir);
241
242
  // Broadcast spec deletion to WebSocket clients
242
- broadcastSpecUpdate(id, "deleted", { id });
243
+ broadcastSpecUpdate(req.project.id, id, "deleted", { id });
243
244
  res.json({
244
245
  success: true,
245
246
  data: {
@@ -1 +1 @@
1
- {"version":3,"file":"specs.js","sourceRoot":"","sources":["../../src/routes/specs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"specs.js","sourceRoot":"","sources":["../../src/routes/specs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Router } from "express";
2
+ export declare function createVersionRouter(): Router;
3
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/routes/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAGpD,wBAAgB,mBAAmB,IAAI,MAAM,CAsB5C"}
@@ -0,0 +1,25 @@
1
+ import { Router } from "express";
2
+ import { getVersionInfo } from "../services/version-service.js";
3
+ export function createVersionRouter() {
4
+ const router = Router();
5
+ // Version endpoint - returns versions of all packages
6
+ router.get("/", (_req, res) => {
7
+ try {
8
+ const versions = getVersionInfo();
9
+ res.status(200).json({
10
+ success: true,
11
+ data: versions,
12
+ });
13
+ }
14
+ catch (error) {
15
+ console.error("Failed to read version information:", error);
16
+ res.status(500).json({
17
+ success: false,
18
+ data: null,
19
+ message: "Failed to read version information",
20
+ });
21
+ }
22
+ });
23
+ return router;
24
+ }
25
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/routes/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,MAAM,UAAU,mBAAmB;IACjC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,sDAAsD;IACtD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QAC/C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;YAClC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;YAC5D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,oCAAoC;aAC9C,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Agent Registry Service
3
+ *
4
+ * Centralized service for managing agent adapters and providing agent discovery.
5
+ * Wraps the agent-execution-engine's AgentRegistry with sudocode-specific logic.
6
+ */
7
+ import type { IAgentAdapter, AgentMetadata } from "agent-execution-engine/agents";
8
+ import type { AgentType } from "@sudocode-ai/types/agents";
9
+ import { type VerificationResult } from "../utils/executable-check.js";
10
+ /**
11
+ * Error thrown when an agent is not found in the registry
12
+ */
13
+ export declare class AgentNotFoundError extends Error {
14
+ constructor(agentType: string);
15
+ }
16
+ /**
17
+ * Error thrown when attempting to use an unimplemented agent
18
+ */
19
+ export declare class AgentNotImplementedError extends Error {
20
+ constructor(agentType: string);
21
+ }
22
+ /**
23
+ * Agent metadata with implementation status
24
+ */
25
+ export interface AgentInfo extends AgentMetadata {
26
+ /** Whether the agent is fully implemented (vs. stub) */
27
+ implemented: boolean;
28
+ /** Whether the agent executable is available on the system */
29
+ available?: boolean;
30
+ /** Path to the agent executable if found */
31
+ executablePath?: string;
32
+ /** Error message if verification failed */
33
+ verificationError?: string;
34
+ }
35
+ export declare class AgentRegistryService {
36
+ private registry;
37
+ private implementedAgents;
38
+ private initialized;
39
+ /**
40
+ * Map of agent types to their default executable names
41
+ */
42
+ private agentExecutables;
43
+ /**
44
+ * Cache for verification results
45
+ * Key: agent type, Value: cached verification result with timestamp
46
+ */
47
+ private verificationCache;
48
+ /**
49
+ * Cache TTL in milliseconds (default: 24 hours)
50
+ * Set to a very long duration since agent installations rarely change
51
+ */
52
+ private cacheTTL;
53
+ constructor();
54
+ /**
55
+ * Initialize the registry by registering all agent adapters
56
+ * Called automatically on first use (lazy initialization)
57
+ */
58
+ private initialize;
59
+ /**
60
+ * Get all available agents with their metadata and implementation status
61
+ *
62
+ * @returns Array of agent information
63
+ */
64
+ getAvailableAgents(): AgentInfo[];
65
+ /**
66
+ * Get an agent adapter by type
67
+ *
68
+ * @param agentType - The agent type to retrieve
69
+ * @returns The agent adapter
70
+ * @throws {AgentNotFoundError} If agent is not registered
71
+ */
72
+ getAdapter(agentType: AgentType): IAgentAdapter;
73
+ /**
74
+ * Check if an agent is fully implemented
75
+ *
76
+ * @param agentType - The agent type to check
77
+ * @returns True if the agent is implemented, false if it's a stub
78
+ */
79
+ isAgentImplemented(agentType: AgentType): boolean;
80
+ /**
81
+ * Check if an agent is registered in the registry
82
+ *
83
+ * @param agentType - The agent type to check
84
+ * @returns True if the agent is registered
85
+ */
86
+ hasAgent(agentType: AgentType): boolean;
87
+ /**
88
+ * Mark an agent as implemented
89
+ * Used when upgrading a stub adapter to a full implementation
90
+ *
91
+ * @param agentType - The agent type to mark as implemented
92
+ */
93
+ markAsImplemented(agentType: AgentType): void;
94
+ /**
95
+ * Check if cached verification is still valid
96
+ *
97
+ * @param agentType - The agent type to check
98
+ * @returns Cached result if valid, undefined otherwise
99
+ */
100
+ private getCachedVerification;
101
+ /**
102
+ * Cache a verification result
103
+ *
104
+ * @param agentType - The agent type
105
+ * @param result - The verification result to cache
106
+ */
107
+ private cacheVerification;
108
+ /**
109
+ * Clear verification cache for a specific agent or all agents
110
+ *
111
+ * @param agentType - Optional agent type to clear. If not provided, clears all cache.
112
+ */
113
+ clearVerificationCache(agentType?: AgentType): void;
114
+ /**
115
+ * Verify if a specific agent's executable is available on the system
116
+ * Results are cached for performance
117
+ *
118
+ * @param agentType - The agent type to verify
119
+ * @param skipCache - If true, bypass cache and perform fresh verification
120
+ * @returns Promise<VerificationResult>
121
+ */
122
+ verifyAgent(agentType: AgentType, skipCache?: boolean): Promise<VerificationResult>;
123
+ /**
124
+ * Verify all implemented agents and return their availability status
125
+ *
126
+ * @returns Promise<Map<string, VerificationResult>>
127
+ */
128
+ verifyAllAgents(): Promise<Map<string, VerificationResult>>;
129
+ /**
130
+ * Get all available agents with their verification status included
131
+ *
132
+ * @returns Promise<AgentInfo[]> - Array of agent information with availability status
133
+ */
134
+ getAvailableAgentsWithVerification(): Promise<AgentInfo[]>;
135
+ }
136
+ /**
137
+ * Global agent registry service instance
138
+ */
139
+ export declare const agentRegistryService: AgentRegistryService;
140
+ //# sourceMappingURL=agent-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-registry.d.ts","sourceRoot":"","sources":["../../src/services/agent-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACd,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAK3D,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,8BAA8B,CAAC;AAEtC;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,SAAS,EAAE,MAAM;CAI9B;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,SAAS,EAAE,MAAM;CAI9B;AAED;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,aAAa;IAC9C,wDAAwD;IACxD,WAAW,EAAE,OAAO,CAAC;IACrB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAgBD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,iBAAiB,CAKtB;IACH,OAAO,CAAC,WAAW,CAAS;IAE5B;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAKtB;IAEF;;;OAGG;IACH,OAAO,CAAC,iBAAiB,CAAyC;IAElE;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAuB;;IAMvC;;;OAGG;IACH,OAAO,CAAC,UAAU;IAclB;;;;OAIG;IACH,kBAAkB,IAAI,SAAS,EAAE;IAQjC;;;;;;OAMG;IACH,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,aAAa;IAS/C;;;;;OAKG;IACH,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAKjD;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAKvC;;;;;OAKG;IACH,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAQ7C;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;OAIG;IACH,sBAAsB,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI;IAQnD;;;;;;;OAOG;IACG,WAAW,CACf,SAAS,EAAE,SAAS,EACpB,SAAS,UAAQ,GAChB,OAAO,CAAC,kBAAkB,CAAC;IAgD9B;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAoBjE;;;;OAIG;IACG,kCAAkC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;CAejE;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,sBAA6B,CAAC"}