@sudocode-ai/local-server 0.1.7 → 0.1.8

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 (274) 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 +187 -0
  86. package/dist/execution/worktree/git-sync-cli.d.ts.map +1 -0
  87. package/dist/execution/worktree/git-sync-cli.js +350 -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 +132 -211
  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-Bb_W5bUr.css +1 -0
  102. package/dist/public/assets/index-CFKL113G.js +710 -0
  103. package/dist/public/assets/index-CFKL113G.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 +506 -54
  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 +126 -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/services/agent-registry.d.ts +140 -0
  158. package/dist/services/agent-registry.d.ts.map +1 -0
  159. package/dist/services/agent-registry.js +272 -0
  160. package/dist/services/agent-registry.js.map +1 -0
  161. package/dist/services/editor-service.d.ts +57 -0
  162. package/dist/services/editor-service.d.ts.map +1 -0
  163. package/dist/services/editor-service.js +204 -0
  164. package/dist/services/editor-service.js.map +1 -0
  165. package/dist/services/execution-changes-service.d.ts +92 -0
  166. package/dist/services/execution-changes-service.d.ts.map +1 -0
  167. package/dist/services/execution-changes-service.js +546 -0
  168. package/dist/services/execution-changes-service.js.map +1 -0
  169. package/dist/services/execution-lifecycle.d.ts +1 -0
  170. package/dist/services/execution-lifecycle.d.ts.map +1 -1
  171. package/dist/services/execution-lifecycle.js +37 -7
  172. package/dist/services/execution-lifecycle.js.map +1 -1
  173. package/dist/services/execution-logs-store.d.ts +75 -0
  174. package/dist/services/execution-logs-store.d.ts.map +1 -1
  175. package/dist/services/execution-logs-store.js +142 -2
  176. package/dist/services/execution-logs-store.js.map +1 -1
  177. package/dist/services/execution-service.d.ts +50 -58
  178. package/dist/services/execution-service.d.ts.map +1 -1
  179. package/dist/services/execution-service.js +433 -469
  180. package/dist/services/execution-service.js.map +1 -1
  181. package/dist/services/execution-worker-pool.d.ts +116 -0
  182. package/dist/services/execution-worker-pool.d.ts.map +1 -0
  183. package/dist/services/execution-worker-pool.js +326 -0
  184. package/dist/services/execution-worker-pool.js.map +1 -0
  185. package/dist/services/executions.d.ts +3 -0
  186. package/dist/services/executions.d.ts.map +1 -1
  187. package/dist/services/executions.js +11 -17
  188. package/dist/services/executions.js.map +1 -1
  189. package/dist/services/export.d.ts +8 -2
  190. package/dist/services/export.d.ts.map +1 -1
  191. package/dist/services/export.js +29 -23
  192. package/dist/services/export.js.map +1 -1
  193. package/dist/services/file-search/git-ls-files-strategy.d.ts +72 -0
  194. package/dist/services/file-search/git-ls-files-strategy.d.ts.map +1 -0
  195. package/dist/services/file-search/git-ls-files-strategy.js +176 -0
  196. package/dist/services/file-search/git-ls-files-strategy.js.map +1 -0
  197. package/dist/services/file-search/index.d.ts +9 -0
  198. package/dist/services/file-search/index.d.ts.map +1 -0
  199. package/dist/services/file-search/index.js +10 -0
  200. package/dist/services/file-search/index.js.map +1 -0
  201. package/dist/services/file-search/registry.d.ts +97 -0
  202. package/dist/services/file-search/registry.d.ts.map +1 -0
  203. package/dist/services/file-search/registry.js +140 -0
  204. package/dist/services/file-search/registry.js.map +1 -0
  205. package/dist/services/file-search/strategy.d.ts +58 -0
  206. package/dist/services/file-search/strategy.d.ts.map +1 -0
  207. package/dist/services/file-search/strategy.js +8 -0
  208. package/dist/services/file-search/strategy.js.map +1 -0
  209. package/dist/services/project-context.d.ts +69 -0
  210. package/dist/services/project-context.d.ts.map +1 -0
  211. package/dist/services/project-context.js +113 -0
  212. package/dist/services/project-context.js.map +1 -0
  213. package/dist/services/project-manager.d.ts +95 -0
  214. package/dist/services/project-manager.d.ts.map +1 -0
  215. package/dist/services/project-manager.js +388 -0
  216. package/dist/services/project-manager.js.map +1 -0
  217. package/dist/services/project-registry.d.ts +98 -0
  218. package/dist/services/project-registry.d.ts.map +1 -0
  219. package/dist/services/project-registry.js +289 -0
  220. package/dist/services/project-registry.js.map +1 -0
  221. package/dist/services/prompt-resolver.d.ts +97 -0
  222. package/dist/services/prompt-resolver.d.ts.map +1 -0
  223. package/dist/services/prompt-resolver.js +377 -0
  224. package/dist/services/prompt-resolver.js.map +1 -0
  225. package/dist/services/repo-info.d.ts +12 -0
  226. package/dist/services/repo-info.d.ts.map +1 -1
  227. package/dist/services/repo-info.js +46 -0
  228. package/dist/services/repo-info.js.map +1 -1
  229. package/dist/services/watcher.d.ts +3 -4
  230. package/dist/services/watcher.d.ts.map +1 -1
  231. package/dist/services/watcher.js +18 -35
  232. package/dist/services/watcher.js.map +1 -1
  233. package/dist/services/websocket.d.ts +30 -16
  234. package/dist/services/websocket.d.ts.map +1 -1
  235. package/dist/services/websocket.js +102 -37
  236. package/dist/services/websocket.js.map +1 -1
  237. package/dist/services/worktree-sync-service.d.ts +228 -0
  238. package/dist/services/worktree-sync-service.d.ts.map +1 -0
  239. package/dist/services/worktree-sync-service.js +563 -0
  240. package/dist/services/worktree-sync-service.js.map +1 -0
  241. package/dist/types/editor.d.ts +49 -0
  242. package/dist/types/editor.d.ts.map +1 -0
  243. package/dist/types/editor.js +50 -0
  244. package/dist/types/editor.js.map +1 -0
  245. package/dist/types/project.d.ts +58 -0
  246. package/dist/types/project.d.ts.map +1 -0
  247. package/dist/types/project.js +10 -0
  248. package/dist/types/project.js.map +1 -0
  249. package/dist/utils/executable-check.d.ts +36 -0
  250. package/dist/utils/executable-check.d.ts.map +1 -0
  251. package/dist/utils/executable-check.js +79 -0
  252. package/dist/utils/executable-check.js.map +1 -0
  253. package/dist/workers/execution-worker.d.ts +18 -0
  254. package/dist/workers/execution-worker.d.ts.map +1 -0
  255. package/dist/workers/execution-worker.js +340 -0
  256. package/dist/workers/execution-worker.js.map +1 -0
  257. package/dist/workers/worker-ipc.d.ts +84 -0
  258. package/dist/workers/worker-ipc.d.ts.map +1 -0
  259. package/dist/workers/worker-ipc.js +29 -0
  260. package/dist/workers/worker-ipc.js.map +1 -0
  261. package/package.json +6 -5
  262. package/dist/execution/output/ag-ui-integration.d.ts +0 -96
  263. package/dist/execution/output/ag-ui-integration.d.ts.map +0 -1
  264. package/dist/execution/output/ag-ui-integration.js +0 -96
  265. package/dist/execution/output/ag-ui-integration.js.map +0 -1
  266. package/dist/execution/output/claude-code-output-processor.d.ts +0 -321
  267. package/dist/execution/output/claude-code-output-processor.d.ts.map +0 -1
  268. package/dist/execution/output/claude-code-output-processor.js +0 -769
  269. package/dist/execution/output/claude-code-output-processor.js.map +0 -1
  270. package/dist/public/assets/index-B3SEMufD.js +0 -580
  271. package/dist/public/assets/index-B3SEMufD.js.map +0 -1
  272. package/dist/public/assets/index-D2YGL3gX.css +0 -1
  273. package/dist/public/assets/ui-vendor-CotR6bx9.js +0 -54
  274. package/dist/public/assets/ui-vendor-CotR6bx9.js.map +0 -1
@@ -0,0 +1,546 @@
1
+ /**
2
+ * Execution Changes Service
3
+ *
4
+ * Calculates code changes (file list + diff statistics) from execution commits.
5
+ * Supports 3 scenarios:
6
+ * - Committed changes (commit-to-commit diff)
7
+ * - Uncommitted changes (working tree diff)
8
+ * - No changes
9
+ *
10
+ * @module services/execution-changes-service
11
+ */
12
+ import { execSync } from "child_process";
13
+ import { getExecution } from "./executions.js";
14
+ import { existsSync } from "fs";
15
+ /**
16
+ * Service for calculating code changes from execution commits
17
+ */
18
+ export class ExecutionChangesService {
19
+ db;
20
+ repoPath;
21
+ constructor(db, repoPath) {
22
+ this.db = db;
23
+ this.repoPath = repoPath;
24
+ }
25
+ /**
26
+ * Get code changes for an execution
27
+ *
28
+ * For execution chains (follow-ups), automatically calculates accumulated changes
29
+ * from the root execution to the current execution.
30
+ *
31
+ * @param executionId - Execution ID
32
+ * @returns ExecutionChangesResult with both captured and current states
33
+ */
34
+ async getChanges(executionId) {
35
+ // 1. Load execution from database
36
+ const execution = getExecution(this.db, executionId);
37
+ if (!execution) {
38
+ console.log(`[ExecutionChangesService] Execution not found: ${executionId}`);
39
+ return {
40
+ available: false,
41
+ reason: "incomplete_execution",
42
+ };
43
+ }
44
+ console.log(`[ExecutionChangesService] Execution ${executionId}:`, {
45
+ status: execution.status,
46
+ before_commit: execution.before_commit,
47
+ after_commit: execution.after_commit,
48
+ parent_execution_id: execution.parent_execution_id,
49
+ });
50
+ // 2. Validate status (must have started executing)
51
+ // Allow running, completed, stopped, failed, cancelled - reject pending, preparing, paused
52
+ const validStatuses = ["running", "completed", "stopped", "failed", "cancelled"];
53
+ if (!validStatuses.includes(execution.status)) {
54
+ console.log(`[ExecutionChangesService] Execution not started: ${execution.status}`);
55
+ return {
56
+ available: false,
57
+ reason: "incomplete_execution",
58
+ };
59
+ }
60
+ // 3. Find root execution (for execution chains)
61
+ const rootExecution = this.getRootExecution(execution);
62
+ const beforeCommit = rootExecution.before_commit || execution.before_commit;
63
+ console.log(`[ExecutionChangesService] Root execution ${rootExecution.id}:`, {
64
+ before_commit: rootExecution.before_commit,
65
+ after_commit: rootExecution.after_commit,
66
+ });
67
+ console.log(`[ExecutionChangesService] Computed beforeCommit: ${beforeCommit}`);
68
+ // 4. Validate before_commit exists (required for calculating any changes)
69
+ if (!beforeCommit) {
70
+ console.log(`[ExecutionChangesService] Missing before_commit - cannot calculate changes`);
71
+ return {
72
+ available: false,
73
+ reason: "missing_commits",
74
+ };
75
+ }
76
+ // 5. Get branch and worktree information
77
+ const branchName = execution.branch_name;
78
+ const executionMode = execution.mode;
79
+ const worktreeExists = execution.worktree_path
80
+ ? existsSync(execution.worktree_path)
81
+ : false;
82
+ // 6. Check if branch exists and get current HEAD
83
+ // Always check the main repo for branch info (branches exist in main repo, not just worktrees)
84
+ let branchExists = false;
85
+ let currentBranchHead = null;
86
+ if (branchName) {
87
+ const branchInfo = this.getBranchInfo(branchName, this.repoPath);
88
+ branchExists = branchInfo.exists;
89
+ currentBranchHead = branchInfo.head;
90
+ }
91
+ // 7. Compute captured state (from root to current execution)
92
+ let captured;
93
+ let uncommittedSnapshot;
94
+ const hasCommittedChanges = beforeCommit &&
95
+ execution.after_commit &&
96
+ execution.after_commit !== beforeCommit;
97
+ if (hasCommittedChanges) {
98
+ // Captured: committed changes (requires beforeCommit from root)
99
+ const capturedResult = await this.getCommittedChanges(beforeCommit, execution.after_commit);
100
+ if (!capturedResult.available) {
101
+ // Preserve specific error reason (commits_not_found, etc.)
102
+ return capturedResult;
103
+ }
104
+ if (capturedResult.changes) {
105
+ captured = {
106
+ files: capturedResult.changes.files,
107
+ summary: capturedResult.changes.summary,
108
+ commitRange: capturedResult.commitRange,
109
+ uncommitted: false,
110
+ };
111
+ }
112
+ // Additionally check for uncommitted changes on top of committed changes
113
+ const uncommittedResult = await this.getUncommittedChanges(execution.worktree_path);
114
+ if (uncommittedResult.available && uncommittedResult.changes && uncommittedResult.changes.files.length > 0) {
115
+ uncommittedSnapshot = {
116
+ files: uncommittedResult.changes.files,
117
+ summary: uncommittedResult.changes.summary,
118
+ commitRange: null,
119
+ uncommitted: true,
120
+ };
121
+ }
122
+ }
123
+ else {
124
+ // Captured: uncommitted changes only (or no changes at completion)
125
+ const capturedResult = await this.getUncommittedChanges(execution.worktree_path);
126
+ if (!capturedResult.available) {
127
+ // Preserve specific error reason (worktree_deleted_with_uncommitted_changes, etc.)
128
+ return capturedResult;
129
+ }
130
+ if (capturedResult.changes) {
131
+ captured = {
132
+ files: capturedResult.changes.files,
133
+ summary: capturedResult.changes.summary,
134
+ commitRange: null,
135
+ uncommitted: true,
136
+ };
137
+ }
138
+ }
139
+ // 8. Compute current state (if branch exists and differs from captured)
140
+ // Requires beforeCommit to calculate diff
141
+ // Note: Use main repo for git operations (worktree may be deleted)
142
+ let current;
143
+ let additionalCommits = 0;
144
+ if (branchExists && currentBranchHead && beforeCommit) {
145
+ // Check if current HEAD is different from captured after_commit
146
+ const isDifferent = currentBranchHead !== execution.after_commit;
147
+ if (isDifferent && execution.after_commit) {
148
+ // Count commits between captured and current
149
+ // Always use main repo path (worktree may be deleted)
150
+ additionalCommits = this.countCommitsBetween(execution.after_commit, currentBranchHead, this.repoPath);
151
+ // Compute current changes (from root to current HEAD)
152
+ const currentResult = await this.getCommittedChanges(beforeCommit, currentBranchHead);
153
+ if (currentResult.available && currentResult.changes) {
154
+ current = {
155
+ files: currentResult.changes.files,
156
+ summary: currentResult.changes.summary,
157
+ commitRange: {
158
+ before: beforeCommit,
159
+ after: currentBranchHead,
160
+ },
161
+ uncommitted: false,
162
+ };
163
+ }
164
+ }
165
+ }
166
+ // 9. Return result with both states
167
+ if (!captured) {
168
+ return {
169
+ available: false,
170
+ reason: "git_error",
171
+ };
172
+ }
173
+ return {
174
+ available: true,
175
+ captured,
176
+ uncommittedSnapshot,
177
+ current,
178
+ branchName,
179
+ branchExists,
180
+ worktreeExists,
181
+ executionMode,
182
+ additionalCommits,
183
+ // Legacy compatibility
184
+ changes: captured,
185
+ commitRange: captured.commitRange,
186
+ uncommitted: captured.uncommitted,
187
+ };
188
+ }
189
+ /**
190
+ * Get root execution by traversing parent_execution_id chain
191
+ *
192
+ * For execution chains (follow-ups), this finds the original root execution.
193
+ * This allows us to calculate accumulated changes from the start of the chain.
194
+ */
195
+ getRootExecution(execution) {
196
+ let current = execution;
197
+ let maxDepth = 100; // Safety limit to prevent infinite loops
198
+ let depth = 0;
199
+ while (current.parent_execution_id && depth < maxDepth) {
200
+ const parent = getExecution(this.db, current.parent_execution_id);
201
+ if (!parent) {
202
+ // Parent not found, return current as root
203
+ break;
204
+ }
205
+ current = parent;
206
+ depth++;
207
+ }
208
+ return current;
209
+ }
210
+ /**
211
+ * Get committed changes (commit-to-commit diff)
212
+ * Scenario A: after_commit exists and differs from before_commit
213
+ */
214
+ async getCommittedChanges(beforeCommit, afterCommit) {
215
+ try {
216
+ // Verify commits exist in repo
217
+ try {
218
+ execSync(`git cat-file -t ${beforeCommit}`, {
219
+ cwd: this.repoPath,
220
+ encoding: "utf-8",
221
+ stdio: "pipe",
222
+ });
223
+ execSync(`git cat-file -t ${afterCommit}`, {
224
+ cwd: this.repoPath,
225
+ encoding: "utf-8",
226
+ stdio: "pipe",
227
+ });
228
+ }
229
+ catch (error) {
230
+ return {
231
+ available: false,
232
+ reason: "commits_not_found",
233
+ };
234
+ }
235
+ // Get diff statistics
236
+ const files = await this.calculateDiff(beforeCommit, afterCommit, this.repoPath);
237
+ return {
238
+ available: true,
239
+ uncommitted: false,
240
+ commitRange: {
241
+ before: beforeCommit,
242
+ after: afterCommit,
243
+ },
244
+ changes: {
245
+ files,
246
+ summary: this.calculateSummary(files),
247
+ commitRange: {
248
+ before: beforeCommit,
249
+ after: afterCommit,
250
+ },
251
+ uncommitted: false,
252
+ },
253
+ };
254
+ }
255
+ catch (error) {
256
+ console.error("[ExecutionChangesService] Error getting committed changes:", error);
257
+ return {
258
+ available: false,
259
+ reason: "git_error",
260
+ };
261
+ }
262
+ }
263
+ /**
264
+ * Get uncommitted changes (working tree diff)
265
+ * Scenario B: after_commit is null or equals before_commit
266
+ */
267
+ async getUncommittedChanges(worktreePath) {
268
+ // Determine the working directory to check
269
+ const workDir = worktreePath || this.repoPath;
270
+ // Check if worktree still exists
271
+ if (worktreePath && !existsSync(worktreePath)) {
272
+ return {
273
+ available: false,
274
+ reason: "worktree_deleted_with_uncommitted_changes",
275
+ };
276
+ }
277
+ try {
278
+ // Get uncommitted changes relative to HEAD
279
+ const files = await this.calculateDiff(null, null, workDir);
280
+ // If no files changed, return empty result
281
+ if (files.length === 0) {
282
+ return {
283
+ available: true,
284
+ uncommitted: true,
285
+ commitRange: null,
286
+ changes: {
287
+ files: [],
288
+ summary: {
289
+ totalFiles: 0,
290
+ totalAdditions: 0,
291
+ totalDeletions: 0,
292
+ },
293
+ commitRange: null,
294
+ uncommitted: true,
295
+ },
296
+ };
297
+ }
298
+ return {
299
+ available: true,
300
+ uncommitted: true,
301
+ commitRange: null,
302
+ changes: {
303
+ files,
304
+ summary: this.calculateSummary(files),
305
+ commitRange: null,
306
+ uncommitted: true,
307
+ },
308
+ };
309
+ }
310
+ catch (error) {
311
+ console.error("[ExecutionChangesService] Error getting uncommitted changes:", error);
312
+ return {
313
+ available: false,
314
+ reason: "git_error",
315
+ };
316
+ }
317
+ }
318
+ /**
319
+ * Calculate diff statistics using git commands
320
+ *
321
+ * @param beforeCommit - Before commit SHA (null for uncommitted)
322
+ * @param afterCommit - After commit SHA (null for uncommitted)
323
+ * @param workDir - Working directory for git commands
324
+ * @returns Array of file change statistics
325
+ */
326
+ async calculateDiff(beforeCommit, afterCommit, workDir) {
327
+ // Build git diff command based on scenario
328
+ let numstatCmd;
329
+ let nameStatusCmd;
330
+ if (beforeCommit && afterCommit) {
331
+ // Committed changes: commit-to-commit diff
332
+ numstatCmd = `git diff --numstat --find-renames ${beforeCommit}..${afterCommit}`;
333
+ nameStatusCmd = `git diff --name-status --find-renames ${beforeCommit}..${afterCommit}`;
334
+ }
335
+ else {
336
+ // Uncommitted changes: working tree diff
337
+ numstatCmd = `git diff --numstat --find-renames HEAD`;
338
+ nameStatusCmd = `git diff --name-status --find-renames HEAD`;
339
+ }
340
+ // Execute git diff --numstat
341
+ const numstatOutput = execSync(numstatCmd, {
342
+ cwd: workDir,
343
+ encoding: "utf-8",
344
+ stdio: "pipe",
345
+ }).trim();
346
+ // Execute git diff --name-status
347
+ const nameStatusOutput = execSync(nameStatusCmd, {
348
+ cwd: workDir,
349
+ encoding: "utf-8",
350
+ stdio: "pipe",
351
+ }).trim();
352
+ // Parse outputs
353
+ const numstatData = this.parseNumstat(numstatOutput);
354
+ const statusData = this.parseNameStatus(nameStatusOutput);
355
+ // Combine numstat and status data
356
+ let files = this.combineFileData(numstatData, statusData);
357
+ // For uncommitted changes, also include untracked files
358
+ if (!beforeCommit && !afterCommit) {
359
+ const untrackedFiles = this.getUntrackedFiles(workDir);
360
+ files = files.concat(untrackedFiles);
361
+ }
362
+ return files;
363
+ }
364
+ /**
365
+ * Parse git diff --numstat output
366
+ *
367
+ * Format: "additions\tdeletions\tfilepath"
368
+ * Binary files: "-\t-\tfilepath"
369
+ */
370
+ parseNumstat(output) {
371
+ const data = new Map();
372
+ if (!output) {
373
+ return data;
374
+ }
375
+ const lines = output.split("\n");
376
+ for (const line of lines) {
377
+ if (!line.trim())
378
+ continue;
379
+ const parts = line.split("\t");
380
+ if (parts.length < 3)
381
+ continue;
382
+ const additions = parts[0] === "-" ? 0 : parseInt(parts[0], 10);
383
+ const deletions = parts[1] === "-" ? 0 : parseInt(parts[1], 10);
384
+ const filePath = parts.slice(2).join("\t"); // Handle filenames with tabs
385
+ data.set(filePath, { additions, deletions });
386
+ }
387
+ return data;
388
+ }
389
+ /**
390
+ * Parse git diff --name-status output
391
+ *
392
+ * Format: "STATUS\tfilepath"
393
+ * Renamed files: "R100\toldpath\tnewpath"
394
+ */
395
+ parseNameStatus(output) {
396
+ const data = new Map();
397
+ if (!output) {
398
+ return data;
399
+ }
400
+ const lines = output.split("\n");
401
+ for (const line of lines) {
402
+ if (!line.trim())
403
+ continue;
404
+ const parts = line.split("\t");
405
+ if (parts.length < 2)
406
+ continue;
407
+ const statusCode = parts[0];
408
+ let status;
409
+ if (statusCode.startsWith("A")) {
410
+ status = "A";
411
+ }
412
+ else if (statusCode.startsWith("M")) {
413
+ status = "M";
414
+ }
415
+ else if (statusCode.startsWith("D")) {
416
+ status = "D";
417
+ }
418
+ else if (statusCode.startsWith("R")) {
419
+ status = "R";
420
+ }
421
+ else {
422
+ // Default to modified for unknown status
423
+ status = "M";
424
+ }
425
+ // For renamed files, use the new path (last part)
426
+ const filePath = parts[parts.length - 1];
427
+ data.set(filePath, status);
428
+ }
429
+ return data;
430
+ }
431
+ /**
432
+ * Combine numstat and name-status data into FileChangeStat array
433
+ */
434
+ combineFileData(numstatData, statusData) {
435
+ const files = [];
436
+ // Iterate through all files from numstat
437
+ for (const [path, { additions, deletions }] of numstatData) {
438
+ const status = statusData.get(path) || "M"; // Default to modified
439
+ files.push({
440
+ path,
441
+ additions,
442
+ deletions,
443
+ status,
444
+ });
445
+ }
446
+ return files;
447
+ }
448
+ /**
449
+ * Calculate summary statistics from file changes
450
+ */
451
+ calculateSummary(files) {
452
+ return {
453
+ totalFiles: files.length,
454
+ totalAdditions: files.reduce((sum, file) => sum + file.additions, 0),
455
+ totalDeletions: files.reduce((sum, file) => sum + file.deletions, 0),
456
+ };
457
+ }
458
+ /**
459
+ * Get branch information (existence and current HEAD)
460
+ */
461
+ getBranchInfo(branchName, workDir) {
462
+ try {
463
+ // Try to get the commit SHA for the branch
464
+ const head = execSync(`git rev-parse ${branchName}`, {
465
+ cwd: workDir,
466
+ encoding: "utf-8",
467
+ stdio: "pipe",
468
+ }).trim();
469
+ return {
470
+ exists: true,
471
+ head,
472
+ };
473
+ }
474
+ catch (error) {
475
+ // Branch doesn't exist
476
+ return {
477
+ exists: false,
478
+ head: null,
479
+ };
480
+ }
481
+ }
482
+ /**
483
+ * Count commits between two commit SHAs
484
+ */
485
+ countCommitsBetween(fromCommit, toCommit, workDir) {
486
+ try {
487
+ const output = execSync(`git rev-list --count ${fromCommit}..${toCommit}`, {
488
+ cwd: workDir,
489
+ encoding: "utf-8",
490
+ stdio: "pipe",
491
+ }).trim();
492
+ return parseInt(output, 10) || 0;
493
+ }
494
+ catch (error) {
495
+ console.error("[ExecutionChangesService] Error counting commits:", error);
496
+ return 0;
497
+ }
498
+ }
499
+ /**
500
+ * Get untracked files (respecting .gitignore)
501
+ */
502
+ getUntrackedFiles(workDir) {
503
+ try {
504
+ // Get untracked files, excluding .gitignore patterns
505
+ const output = execSync("git ls-files --others --exclude-standard", {
506
+ cwd: workDir,
507
+ encoding: "utf-8",
508
+ stdio: "pipe",
509
+ }).trim();
510
+ if (!output) {
511
+ return [];
512
+ }
513
+ const files = [];
514
+ const lines = output.split("\n");
515
+ for (const filePath of lines) {
516
+ if (!filePath.trim())
517
+ continue;
518
+ // Count lines in the file for additions
519
+ const fullPath = `${workDir}/${filePath}`;
520
+ let additions = 0;
521
+ try {
522
+ if (existsSync(fullPath)) {
523
+ const content = require("fs").readFileSync(fullPath, "utf-8");
524
+ additions = content.split("\n").length;
525
+ }
526
+ }
527
+ catch (error) {
528
+ // If we can't read the file (binary, etc.), just set additions to 1
529
+ additions = 1;
530
+ }
531
+ files.push({
532
+ path: filePath,
533
+ additions,
534
+ deletions: 0,
535
+ status: "A", // Untracked files are "Added"
536
+ });
537
+ }
538
+ return files;
539
+ }
540
+ catch (error) {
541
+ console.error("[ExecutionChangesService] Error getting untracked files:", error);
542
+ return [];
543
+ }
544
+ }
545
+ }
546
+ //# sourceMappingURL=execution-changes-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-changes-service.js","sourceRoot":"","sources":["../../src/services/execution-changes-service.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ export interface CreateExecutionWithWorktreeParams {
21
21
  mode?: string;
22
22
  prompt?: string;
23
23
  config?: string;
24
+ createTargetBranch?: boolean;
24
25
  }
25
26
  /**
26
27
  * Result of creating an execution with worktree
@@ -1 +1 @@
1
- {"version":3,"file":"execution-lifecycle.d.ts","sourceRoot":"","sources":["../../src/services/execution-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,kCAAkC,CAAC;AAK1C;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;;;;OAMG;gBAED,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,QAAQ,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,gBAAgB;IAcpC;;;;;;;;;;OAUG;IACG,2BAA2B,CAC/B,MAAM,EAAE,iCAAiC,GACxC,OAAO,CAAC,iCAAiC,CAAC;IAyG7C;;;;;OAKG;IACH,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IA0BpD;;;;;;;;;;;;;OAaG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC1D;;;;;;OAMG;IACG,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;CA8EhD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAezD"}
1
+ {"version":3,"file":"execution-lifecycle.d.ts","sourceRoot":"","sources":["../../src/services/execution-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,kCAAkC,CAAC;AAK1C;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;;;;OAMG;gBAED,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,QAAQ,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,gBAAgB;IAcpC;;;;;;;;;;OAUG;IACG,2BAA2B,CAC/B,MAAM,EAAE,iCAAiC,GACxC,OAAO,CAAC,iCAAiC,CAAC;IAgJ7C;;;;;OAKG;IACH,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IA0BpD;;;;;;;;;;;;;OAaG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4C1D;;;;;;OAMG;IACG,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;CA8EhD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAezD"}