@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,198 @@
1
+ /**
2
+ * Git Sync CLI Wrapper
3
+ *
4
+ * Extends git CLI operations with sync-specific functionality for worktree-to-local synchronization.
5
+ * Provides conflict detection, diff analysis, and merge operations without modifying the working tree.
6
+ *
7
+ * @module execution/worktree/git-sync-cli
8
+ */
9
+ /**
10
+ * Result of diff operation between two commits
11
+ */
12
+ export interface DiffResult {
13
+ files: string[];
14
+ additions: number;
15
+ deletions: number;
16
+ }
17
+ /**
18
+ * Result of conflict check operation
19
+ */
20
+ export interface ConflictCheckResult {
21
+ hasConflicts: boolean;
22
+ conflictingFiles: string[];
23
+ }
24
+ /**
25
+ * Result of cherry-pick operation
26
+ */
27
+ export interface CherryPickResult {
28
+ success: boolean;
29
+ conflictingCommit?: string;
30
+ conflictingFiles?: string[];
31
+ }
32
+ /**
33
+ * Commit information
34
+ */
35
+ export interface Commit {
36
+ sha: string;
37
+ author: string;
38
+ email: string;
39
+ timestamp: number;
40
+ message: string;
41
+ }
42
+ /**
43
+ * GitSyncCli - Git operations for worktree sync
44
+ *
45
+ * Provides sync-specific git operations:
46
+ * - Merge base detection
47
+ * - Diff analysis
48
+ * - Conflict detection (dry-run)
49
+ * - Squash merge
50
+ * - Cherry-pick operations
51
+ * - Working tree status checks
52
+ */
53
+ export declare class GitSyncCli {
54
+ private repoPath;
55
+ constructor(repoPath: string);
56
+ /**
57
+ * Execute a git command
58
+ *
59
+ * @param command - Git command to execute
60
+ * @param cwd - Working directory (defaults to repoPath)
61
+ * @returns Command output
62
+ * @throws WorktreeError on failure
63
+ */
64
+ protected execGit(command: string, cwd?: string): string;
65
+ /**
66
+ * Escape shell argument
67
+ *
68
+ * @param arg - Argument to escape
69
+ * @returns Escaped argument
70
+ */
71
+ private escapeShellArg;
72
+ /**
73
+ * Validate commit SHA format
74
+ *
75
+ * @param sha - Commit SHA to validate
76
+ * @returns true if valid SHA format
77
+ */
78
+ private isValidSha;
79
+ /**
80
+ * Find common ancestor between two branches
81
+ * Equivalent to: git merge-base <branch1> <branch2>
82
+ *
83
+ * @param branch1 - First branch name or commit SHA
84
+ * @param branch2 - Second branch name or commit SHA
85
+ * @returns Commit SHA of merge base
86
+ * @throws WorktreeError if merge base cannot be found
87
+ */
88
+ getMergeBase(branch1: string, branch2: string): string;
89
+ /**
90
+ * Get diff between two commits
91
+ * Equivalent to: git diff --name-status --numstat <from>..<to>
92
+ *
93
+ * @param fromCommit - Starting commit SHA
94
+ * @param toCommit - Ending commit SHA
95
+ * @returns Diff result with file list and line counts
96
+ */
97
+ getDiff(fromCommit: string, toCommit: string): DiffResult;
98
+ /**
99
+ * Check if merge would conflict WITHOUT modifying working tree
100
+ * Detects files that changed in both branches since merge base
101
+ *
102
+ * @param sourceBranch - Source branch to merge from
103
+ * @param targetBranch - Target branch to merge into
104
+ * @returns Conflict check result
105
+ */
106
+ checkMergeConflicts(sourceBranch: string, targetBranch: string): ConflictCheckResult;
107
+ /**
108
+ * Get list of files changed between two refs
109
+ * Equivalent to: git diff --name-only <fromRef>..<toRef>
110
+ *
111
+ * @param fromRef - Starting reference
112
+ * @param toRef - Ending reference
113
+ * @returns Array of changed file paths
114
+ */
115
+ private getChangedFiles;
116
+ /**
117
+ * Perform squash merge
118
+ * Equivalent to: git merge --squash <source>
119
+ *
120
+ * Note: This modifies the working tree. Caller should ensure clean state.
121
+ * The target branch must be the current checked-out branch.
122
+ *
123
+ * @param sourceBranch - Source branch to squash merge
124
+ * @param message - Commit message for the squash commit
125
+ * @throws WorktreeError if merge fails
126
+ */
127
+ squashMerge(sourceBranch: string, message: string): void;
128
+ /**
129
+ * Cherry-pick range of commits
130
+ * Equivalent to: git cherry-pick <start>..<end>
131
+ *
132
+ * Note: This modifies the working tree. May stop on conflicts.
133
+ *
134
+ * @param startCommit - Starting commit SHA (exclusive)
135
+ * @param endCommit - Ending commit SHA (inclusive)
136
+ * @returns Cherry-pick result
137
+ */
138
+ cherryPickRange(startCommit: string, endCommit: string): CherryPickResult;
139
+ /**
140
+ * Get list of commits between two refs
141
+ * Equivalent to: git log --format='%H|%an|%ae|%at|%s' <base>..<head>
142
+ *
143
+ * @param baseRef - Base reference (exclusive)
144
+ * @param headRef - Head reference (inclusive)
145
+ * @returns Array of commits
146
+ */
147
+ getCommitList(baseRef: string, headRef: string): Commit[];
148
+ /**
149
+ * Check if working tree is clean (no uncommitted changes)
150
+ * Equivalent to: git status --porcelain
151
+ *
152
+ * @returns true if working tree is clean, false otherwise
153
+ */
154
+ isWorkingTreeClean(): boolean;
155
+ /**
156
+ * Create safety tag for rollback
157
+ * Equivalent to: git tag -a <tagName> <ref> -m "message"
158
+ *
159
+ * @param tagName - Name of the tag (e.g., "sudocode-sync-before-abc123")
160
+ * @param ref - Reference to tag (commit SHA or branch name)
161
+ * @throws WorktreeError if tag creation fails
162
+ */
163
+ createSafetyTag(tagName: string, ref: string): void;
164
+ /**
165
+ * Get list of uncommitted files, optionally filtered by pattern
166
+ * Equivalent to: git status --porcelain [pattern]
167
+ *
168
+ * @param pattern - Optional glob pattern to filter files (e.g., "*.jsonl")
169
+ * @returns Array of uncommitted file paths
170
+ */
171
+ getUncommittedFiles(pattern?: string): string[];
172
+ /**
173
+ * Get uncommitted file stats including additions and deletions
174
+ * Combines both modified and untracked files
175
+ *
176
+ * @returns Stats about uncommitted changes
177
+ */
178
+ getUncommittedStats(): {
179
+ files: string[];
180
+ additions: number;
181
+ deletions: number;
182
+ };
183
+ /**
184
+ * Get current HEAD commit SHA
185
+ * Equivalent to: git rev-parse HEAD
186
+ *
187
+ * @returns Current HEAD commit SHA
188
+ */
189
+ private getCurrentCommit;
190
+ /**
191
+ * Get list of files with merge conflicts
192
+ * Equivalent to: git diff --name-only --diff-filter=U
193
+ *
194
+ * @returns Array of conflicting file paths
195
+ */
196
+ private getConflictingFiles;
197
+ }
198
+ //# sourceMappingURL=git-sync-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-sync-cli.d.ts","sourceRoot":"","sources":["../../../src/execution/worktree/git-sync-cli.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAEpC;;;;;;;OAOG;IACH,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM;IAoBxD;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAKtB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAIlB;;;;;;;;OAQG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAkBtD;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU;IAyCzD;;;;;;;OAOG;IACH,mBAAmB,CACjB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,mBAAmB;IAyBtB;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAavB;;;;;;;;;;OAUG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAaxD;;;;;;;;;OASG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,gBAAgB;IAkCzE;;;;;;;OAOG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IA6BzD;;;;;OAKG;IACH,kBAAkB,IAAI,OAAO;IAU7B;;;;;;;OAOG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAUnD;;;;;;OAMG;IACH,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAkB/C;;;;;OAKG;IACH,mBAAmB,IAAI;QACrB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB;IAmDD;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;CAW5B"}
@@ -0,0 +1,401 @@
1
+ /**
2
+ * Git Sync CLI Wrapper
3
+ *
4
+ * Extends git CLI operations with sync-specific functionality for worktree-to-local synchronization.
5
+ * Provides conflict detection, diff analysis, and merge operations without modifying the working tree.
6
+ *
7
+ * @module execution/worktree/git-sync-cli
8
+ */
9
+ import { execSync } from 'child_process';
10
+ import { WorktreeError, WorktreeErrorCode } from './types.js';
11
+ /**
12
+ * GitSyncCli - Git operations for worktree sync
13
+ *
14
+ * Provides sync-specific git operations:
15
+ * - Merge base detection
16
+ * - Diff analysis
17
+ * - Conflict detection (dry-run)
18
+ * - Squash merge
19
+ * - Cherry-pick operations
20
+ * - Working tree status checks
21
+ */
22
+ export class GitSyncCli {
23
+ repoPath;
24
+ constructor(repoPath) {
25
+ this.repoPath = repoPath;
26
+ }
27
+ /**
28
+ * Execute a git command
29
+ *
30
+ * @param command - Git command to execute
31
+ * @param cwd - Working directory (defaults to repoPath)
32
+ * @returns Command output
33
+ * @throws WorktreeError on failure
34
+ */
35
+ execGit(command, cwd) {
36
+ try {
37
+ return execSync(command, {
38
+ cwd: cwd || this.repoPath,
39
+ encoding: 'utf8',
40
+ stdio: ['pipe', 'pipe', 'pipe'],
41
+ });
42
+ }
43
+ catch (error) {
44
+ const stderr = error.stderr?.toString() || '';
45
+ const stdout = error.stdout?.toString() || '';
46
+ const message = stderr || stdout || error.message || 'Unknown git error';
47
+ throw new WorktreeError(`Git command failed: ${command}\n${message}`, WorktreeErrorCode.GIT_ERROR, error);
48
+ }
49
+ }
50
+ /**
51
+ * Escape shell argument
52
+ *
53
+ * @param arg - Argument to escape
54
+ * @returns Escaped argument
55
+ */
56
+ escapeShellArg(arg) {
57
+ // Escape single quotes and wrap in single quotes
58
+ return `'${arg.replace(/'/g, "'\\''")}'`;
59
+ }
60
+ /**
61
+ * Validate commit SHA format
62
+ *
63
+ * @param sha - Commit SHA to validate
64
+ * @returns true if valid SHA format
65
+ */
66
+ isValidSha(sha) {
67
+ return /^[0-9a-f]{40}$/.test(sha);
68
+ }
69
+ /**
70
+ * Find common ancestor between two branches
71
+ * Equivalent to: git merge-base <branch1> <branch2>
72
+ *
73
+ * @param branch1 - First branch name or commit SHA
74
+ * @param branch2 - Second branch name or commit SHA
75
+ * @returns Commit SHA of merge base
76
+ * @throws WorktreeError if merge base cannot be found
77
+ */
78
+ getMergeBase(branch1, branch2) {
79
+ const escapedBranch1 = this.escapeShellArg(branch1);
80
+ const escapedBranch2 = this.escapeShellArg(branch2);
81
+ const command = `git merge-base ${escapedBranch1} ${escapedBranch2}`;
82
+ const output = this.execGit(command);
83
+ const sha = output.trim();
84
+ if (!this.isValidSha(sha)) {
85
+ throw new WorktreeError(`Invalid merge base SHA: ${sha}`, WorktreeErrorCode.GIT_ERROR);
86
+ }
87
+ return sha;
88
+ }
89
+ /**
90
+ * Get diff between two commits
91
+ * Equivalent to: git diff --name-status --numstat <from>..<to>
92
+ *
93
+ * @param fromCommit - Starting commit SHA
94
+ * @param toCommit - Ending commit SHA
95
+ * @returns Diff result with file list and line counts
96
+ */
97
+ getDiff(fromCommit, toCommit) {
98
+ const escapedFrom = this.escapeShellArg(fromCommit);
99
+ const escapedTo = this.escapeShellArg(toCommit);
100
+ // Get file list with status
101
+ const nameStatusCmd = `git diff --name-status ${escapedFrom}..${escapedTo}`;
102
+ const nameStatusOutput = this.execGit(nameStatusCmd);
103
+ const files = nameStatusOutput
104
+ .split('\n')
105
+ .filter((line) => line.trim())
106
+ .map((line) => {
107
+ // Format: "M\tpath/to/file.ts" or "A\tpath/to/file.ts"
108
+ const parts = line.split('\t');
109
+ return parts[1] || '';
110
+ })
111
+ .filter((file) => file.length > 0);
112
+ // Get line counts
113
+ const numstatCmd = `git diff --numstat ${escapedFrom}..${escapedTo}`;
114
+ const numstatOutput = this.execGit(numstatCmd);
115
+ let additions = 0;
116
+ let deletions = 0;
117
+ numstatOutput
118
+ .split('\n')
119
+ .filter((line) => line.trim())
120
+ .forEach((line) => {
121
+ // Format: "5\t3\tpath/to/file.ts"
122
+ const parts = line.split('\t');
123
+ const add = parseInt(parts[0], 10);
124
+ const del = parseInt(parts[1], 10);
125
+ if (!isNaN(add))
126
+ additions += add;
127
+ if (!isNaN(del))
128
+ deletions += del;
129
+ });
130
+ return { files, additions, deletions };
131
+ }
132
+ /**
133
+ * Check if merge would conflict WITHOUT modifying working tree
134
+ * Detects files that changed in both branches since merge base
135
+ *
136
+ * @param sourceBranch - Source branch to merge from
137
+ * @param targetBranch - Target branch to merge into
138
+ * @returns Conflict check result
139
+ */
140
+ checkMergeConflicts(sourceBranch, targetBranch) {
141
+ try {
142
+ // Find merge base
143
+ const mergeBase = this.getMergeBase(sourceBranch, targetBranch);
144
+ // Get files changed in source branch since merge base
145
+ const sourceFiles = this.getChangedFiles(mergeBase, sourceBranch);
146
+ // Get files changed in target branch since merge base
147
+ const targetFiles = this.getChangedFiles(mergeBase, targetBranch);
148
+ // Files that changed in both branches are potential conflicts
149
+ const conflictingFiles = sourceFiles.filter((file) => targetFiles.includes(file));
150
+ return {
151
+ hasConflicts: conflictingFiles.length > 0,
152
+ conflictingFiles,
153
+ };
154
+ }
155
+ catch (error) {
156
+ throw error;
157
+ }
158
+ }
159
+ /**
160
+ * Get list of files changed between two refs
161
+ * Equivalent to: git diff --name-only <fromRef>..<toRef>
162
+ *
163
+ * @param fromRef - Starting reference
164
+ * @param toRef - Ending reference
165
+ * @returns Array of changed file paths
166
+ */
167
+ getChangedFiles(fromRef, toRef) {
168
+ const escapedFrom = this.escapeShellArg(fromRef);
169
+ const escapedTo = this.escapeShellArg(toRef);
170
+ const command = `git diff --name-only ${escapedFrom}..${escapedTo}`;
171
+ const output = this.execGit(command);
172
+ return output
173
+ .split('\n')
174
+ .map((line) => line.trim())
175
+ .filter((line) => line.length > 0);
176
+ }
177
+ /**
178
+ * Perform squash merge
179
+ * Equivalent to: git merge --squash <source>
180
+ *
181
+ * Note: This modifies the working tree. Caller should ensure clean state.
182
+ * The target branch must be the current checked-out branch.
183
+ *
184
+ * @param sourceBranch - Source branch to squash merge
185
+ * @param message - Commit message for the squash commit
186
+ * @throws WorktreeError if merge fails
187
+ */
188
+ squashMerge(sourceBranch, message) {
189
+ const escapedSource = this.escapeShellArg(sourceBranch);
190
+ const escapedMessage = this.escapeShellArg(message);
191
+ // Perform squash merge
192
+ const mergeCommand = `git merge --squash ${escapedSource}`;
193
+ this.execGit(mergeCommand);
194
+ // Create commit with provided message
195
+ const commitCommand = `git commit -m ${escapedMessage}`;
196
+ this.execGit(commitCommand);
197
+ }
198
+ /**
199
+ * Cherry-pick range of commits
200
+ * Equivalent to: git cherry-pick <start>..<end>
201
+ *
202
+ * Note: This modifies the working tree. May stop on conflicts.
203
+ *
204
+ * @param startCommit - Starting commit SHA (exclusive)
205
+ * @param endCommit - Ending commit SHA (inclusive)
206
+ * @returns Cherry-pick result
207
+ */
208
+ cherryPickRange(startCommit, endCommit) {
209
+ const escapedStart = this.escapeShellArg(startCommit);
210
+ const escapedEnd = this.escapeShellArg(endCommit);
211
+ try {
212
+ // Cherry-pick the range
213
+ // Format: start..end means all commits reachable from end but not from start
214
+ const command = `git cherry-pick ${escapedStart}..${escapedEnd}`;
215
+ this.execGit(command);
216
+ return { success: true };
217
+ }
218
+ catch (error) {
219
+ // Check if it's a conflict
220
+ const stderr = error.cause?.stderr?.toString() || '';
221
+ if (stderr.includes('conflict') || stderr.includes('CONFLICT')) {
222
+ // Get the commit that caused conflict
223
+ const conflictingCommit = this.getCurrentCommit();
224
+ // Get conflicting files
225
+ const conflictingFiles = this.getConflictingFiles();
226
+ return {
227
+ success: false,
228
+ conflictingCommit,
229
+ conflictingFiles,
230
+ };
231
+ }
232
+ // Some other error
233
+ throw error;
234
+ }
235
+ }
236
+ /**
237
+ * Get list of commits between two refs
238
+ * Equivalent to: git log --format='%H|%an|%ae|%at|%s' <base>..<head>
239
+ *
240
+ * @param baseRef - Base reference (exclusive)
241
+ * @param headRef - Head reference (inclusive)
242
+ * @returns Array of commits
243
+ */
244
+ getCommitList(baseRef, headRef) {
245
+ const escapedBase = this.escapeShellArg(baseRef);
246
+ const escapedHead = this.escapeShellArg(headRef);
247
+ // Format: SHA|author name|author email|timestamp|subject
248
+ const command = `git log --format='%H|%an|%ae|%at|%s' ${escapedBase}..${escapedHead}`;
249
+ const output = this.execGit(command);
250
+ const commits = [];
251
+ output
252
+ .split('\n')
253
+ .filter((line) => line.trim())
254
+ .forEach((line) => {
255
+ const parts = line.split('|');
256
+ if (parts.length >= 5) {
257
+ commits.push({
258
+ sha: parts[0],
259
+ author: parts[1],
260
+ email: parts[2],
261
+ timestamp: parseInt(parts[3], 10),
262
+ message: parts.slice(4).join('|'), // In case message contains |
263
+ });
264
+ }
265
+ });
266
+ return commits;
267
+ }
268
+ /**
269
+ * Check if working tree is clean (no uncommitted changes)
270
+ * Equivalent to: git status --porcelain
271
+ *
272
+ * @returns true if working tree is clean, false otherwise
273
+ */
274
+ isWorkingTreeClean() {
275
+ try {
276
+ const output = this.execGit('git status --porcelain');
277
+ return output.trim().length === 0;
278
+ }
279
+ catch (error) {
280
+ // If git status fails, assume not clean
281
+ return false;
282
+ }
283
+ }
284
+ /**
285
+ * Create safety tag for rollback
286
+ * Equivalent to: git tag -a <tagName> <ref> -m "message"
287
+ *
288
+ * @param tagName - Name of the tag (e.g., "sudocode-sync-before-abc123")
289
+ * @param ref - Reference to tag (commit SHA or branch name)
290
+ * @throws WorktreeError if tag creation fails
291
+ */
292
+ createSafetyTag(tagName, ref) {
293
+ const escapedTag = this.escapeShellArg(tagName);
294
+ const escapedRef = this.escapeShellArg(ref);
295
+ const message = this.escapeShellArg(`Safety snapshot before sync at ${ref}`);
296
+ // Use -f to force update if tag already exists (e.g., after revert and re-sync)
297
+ const command = `git tag -f -a ${escapedTag} ${escapedRef} -m ${message}`;
298
+ this.execGit(command);
299
+ }
300
+ /**
301
+ * Get list of uncommitted files, optionally filtered by pattern
302
+ * Equivalent to: git status --porcelain [pattern]
303
+ *
304
+ * @param pattern - Optional glob pattern to filter files (e.g., "*.jsonl")
305
+ * @returns Array of uncommitted file paths
306
+ */
307
+ getUncommittedFiles(pattern) {
308
+ const escapedPattern = pattern ? this.escapeShellArg(pattern) : '';
309
+ const command = `git status --porcelain ${escapedPattern}`.trim();
310
+ const output = this.execGit(command);
311
+ return output
312
+ .split('\n')
313
+ .filter((line) => line.trim())
314
+ .map((line) => {
315
+ // Format: "XY filename" where XY is status code
316
+ // Extract filename (handle spaces in filenames)
317
+ const match = line.match(/^..\s+(.+)$/);
318
+ return match ? match[1] : '';
319
+ })
320
+ .filter((file) => file.length > 0);
321
+ }
322
+ /**
323
+ * Get uncommitted file stats including additions and deletions
324
+ * Combines both modified and untracked files
325
+ *
326
+ * @returns Stats about uncommitted changes
327
+ */
328
+ getUncommittedStats() {
329
+ try {
330
+ // Get modified files with stats
331
+ const modifiedOutput = this.execGit('git diff --numstat');
332
+ // Get untracked files
333
+ const untrackedFiles = this.execGit('git ls-files --others --exclude-standard')
334
+ .split('\n')
335
+ .filter((line) => line.trim().length > 0);
336
+ // Parse modified file stats
337
+ let additions = 0;
338
+ let deletions = 0;
339
+ const modifiedFiles = [];
340
+ for (const line of modifiedOutput.split('\n')) {
341
+ if (!line.trim())
342
+ continue;
343
+ const parts = line.split('\t');
344
+ if (parts.length >= 3) {
345
+ const add = parts[0] === '-' ? 0 : parseInt(parts[0], 10) || 0;
346
+ const del = parts[1] === '-' ? 0 : parseInt(parts[1], 10) || 0;
347
+ additions += add;
348
+ deletions += del;
349
+ modifiedFiles.push(parts[2]);
350
+ }
351
+ }
352
+ // Count lines in untracked files as additions (simplified)
353
+ // In production, you might want to actually read and count lines
354
+ additions += untrackedFiles.length * 10; // Rough estimate
355
+ // Combine all files
356
+ const allFiles = [...new Set([...modifiedFiles, ...untrackedFiles])];
357
+ return {
358
+ files: allFiles,
359
+ additions,
360
+ deletions,
361
+ };
362
+ }
363
+ catch (error) {
364
+ // Return empty stats on error
365
+ return {
366
+ files: [],
367
+ additions: 0,
368
+ deletions: 0,
369
+ };
370
+ }
371
+ }
372
+ /**
373
+ * Get current HEAD commit SHA
374
+ * Equivalent to: git rev-parse HEAD
375
+ *
376
+ * @returns Current HEAD commit SHA
377
+ */
378
+ getCurrentCommit() {
379
+ const output = this.execGit('git rev-parse HEAD');
380
+ return output.trim();
381
+ }
382
+ /**
383
+ * Get list of files with merge conflicts
384
+ * Equivalent to: git diff --name-only --diff-filter=U
385
+ *
386
+ * @returns Array of conflicting file paths
387
+ */
388
+ getConflictingFiles() {
389
+ try {
390
+ const output = this.execGit('git diff --name-only --diff-filter=U');
391
+ return output
392
+ .split('\n')
393
+ .map((line) => line.trim())
394
+ .filter((line) => line.length > 0);
395
+ }
396
+ catch (error) {
397
+ return [];
398
+ }
399
+ }
400
+ }
401
+ //# sourceMappingURL=git-sync-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-sync-cli.js","sourceRoot":"","sources":["../../../src/execution/worktree/git-sync-cli.ts"],"names":[],"mappings":"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"}
@@ -96,6 +96,22 @@ export interface IWorktreeManager {
96
96
  * @returns Promise resolving to array of branch names
97
97
  */
98
98
  listBranches(repoPath: string): Promise<string[]>;
99
+ /**
100
+ * Get the current branch name
101
+ *
102
+ * @param repoPath - Path to the git repository
103
+ * @returns Promise resolving to current branch name
104
+ */
105
+ getCurrentBranch(repoPath: string): Promise<string>;
106
+ /**
107
+ * Create a new branch
108
+ *
109
+ * @param repoPath - Path to the git repository
110
+ * @param branchName - Name of the branch to create
111
+ * @param baseBranch - Branch or commit to base the new branch on
112
+ * @returns Promise that resolves when branch is created
113
+ */
114
+ createBranch(repoPath: string, branchName: string, baseBranch: string): Promise<void>;
99
115
  }
100
116
  /**
101
117
  * WorktreeManager - Implementation of IWorktreeManager
@@ -164,6 +180,8 @@ export declare class WorktreeManager implements IWorktreeManager {
164
180
  getConfig(): WorktreeConfig;
165
181
  isValidRepo(repoPath: string): Promise<boolean>;
166
182
  listBranches(repoPath: string): Promise<string[]>;
183
+ getCurrentBranch(repoPath: string): Promise<string>;
184
+ createBranch(repoPath: string, branchName: string, baseBranch: string): Promise<void>;
167
185
  /**
168
186
  * Recreate a worktree (internal method)
169
187
  *
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/execution/worktree/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAKH,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAKpD;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D;;;;;;;;;OASG;IACH,oBAAoB,CAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;OAOG;IACH,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE;;;;;;;OAOG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1E;;;;;;OAMG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAEzD;;;;OAIG;IACH,SAAS,IAAI,cAAc,CAAC;IAE5B;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhD;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACnD;AAED;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,sDAAsD;IACtD,OAAO,CAAC,KAAK,CAA4B;IAEzC,sDAAsD;IACtD,OAAO,CAAC,MAAM,CAAiB;IAE/B,sBAAsB;IACtB,OAAO,CAAC,GAAG,CAAU;IAErB;;;;;OAKG;gBACS,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,OAAO;IAKjD;;;;;OAKG;IACH,OAAO,CAAC,OAAO;IAST,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;YACW,wBAAwB;IAkIhC,oBAAoB,CACxB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAkBV,eAAe,CACnB,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;IA0FV,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC;IA6Bb,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAI9D,SAAS,IAAI,cAAc;IAIrB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIvD;;;;;;OAMG;YACW,gBAAgB;IAwE9B;;;;;;OAMG;YACW,aAAa;CA0B5B"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/execution/worktree/manager.ts"],"names":[],"mappings":"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"}