@morten-olsen/builder-server 0.0.6

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 (270) hide show
  1. package/dist/app/app.d.ts +11 -0
  2. package/dist/app/app.d.ts.map +1 -0
  3. package/dist/app/app.js +141 -0
  4. package/dist/app/app.js.map +1 -0
  5. package/dist/app/app.routes.d.ts +4 -0
  6. package/dist/app/app.routes.d.ts.map +1 -0
  7. package/dist/app/app.routes.js +22 -0
  8. package/dist/app/app.routes.js.map +1 -0
  9. package/dist/app/app.types.d.ts +15 -0
  10. package/dist/app/app.types.d.ts.map +1 -0
  11. package/dist/app/app.types.js +2 -0
  12. package/dist/app/app.types.js.map +1 -0
  13. package/dist/config/config.d.ts +31 -0
  14. package/dist/config/config.d.ts.map +1 -0
  15. package/dist/config/config.js +93 -0
  16. package/dist/config/config.js.map +1 -0
  17. package/dist/config/config.testing.d.ts +4 -0
  18. package/dist/config/config.testing.d.ts.map +1 -0
  19. package/dist/config/config.testing.js +17 -0
  20. package/dist/config/config.testing.js.map +1 -0
  21. package/dist/container/container.d.ts +38 -0
  22. package/dist/container/container.d.ts.map +1 -0
  23. package/dist/container/container.js +33 -0
  24. package/dist/container/container.js.map +1 -0
  25. package/dist/container/container.test.d.ts +2 -0
  26. package/dist/container/container.test.d.ts.map +1 -0
  27. package/dist/container/container.test.js +65 -0
  28. package/dist/container/container.test.js.map +1 -0
  29. package/dist/exports.d.ts +67 -0
  30. package/dist/exports.d.ts.map +1 -0
  31. package/dist/exports.js +44 -0
  32. package/dist/exports.js.map +1 -0
  33. package/dist/routes/auth/auth.d.ts +4 -0
  34. package/dist/routes/auth/auth.d.ts.map +1 -0
  35. package/dist/routes/auth/auth.js +74 -0
  36. package/dist/routes/auth/auth.js.map +1 -0
  37. package/dist/routes/auth/auth.schemas.d.ts +42 -0
  38. package/dist/routes/auth/auth.schemas.d.ts.map +1 -0
  39. package/dist/routes/auth/auth.schemas.js +34 -0
  40. package/dist/routes/auth/auth.schemas.js.map +1 -0
  41. package/dist/routes/auth/auth.test.d.ts +2 -0
  42. package/dist/routes/auth/auth.test.d.ts.map +1 -0
  43. package/dist/routes/auth/auth.test.js +203 -0
  44. package/dist/routes/auth/auth.test.js.map +1 -0
  45. package/dist/routes/events/events.d.ts +4 -0
  46. package/dist/routes/events/events.d.ts.map +1 -0
  47. package/dist/routes/events/events.js +28 -0
  48. package/dist/routes/events/events.js.map +1 -0
  49. package/dist/routes/identities/identities.d.ts +4 -0
  50. package/dist/routes/identities/identities.d.ts.map +1 -0
  51. package/dist/routes/identities/identities.js +128 -0
  52. package/dist/routes/identities/identities.js.map +1 -0
  53. package/dist/routes/identities/identities.schemas.d.ts +52 -0
  54. package/dist/routes/identities/identities.schemas.d.ts.map +1 -0
  55. package/dist/routes/identities/identities.schemas.js +38 -0
  56. package/dist/routes/identities/identities.schemas.js.map +1 -0
  57. package/dist/routes/identities/identities.test.d.ts +2 -0
  58. package/dist/routes/identities/identities.test.d.ts.map +1 -0
  59. package/dist/routes/identities/identities.test.js +329 -0
  60. package/dist/routes/identities/identities.test.js.map +1 -0
  61. package/dist/routes/models/models.d.ts +4 -0
  62. package/dist/routes/models/models.d.ts.map +1 -0
  63. package/dist/routes/models/models.js +60 -0
  64. package/dist/routes/models/models.js.map +1 -0
  65. package/dist/routes/models/models.schemas.d.ts +16 -0
  66. package/dist/routes/models/models.schemas.d.ts.map +1 -0
  67. package/dist/routes/models/models.schemas.js +9 -0
  68. package/dist/routes/models/models.schemas.js.map +1 -0
  69. package/dist/routes/notifications/notifications.d.ts +4 -0
  70. package/dist/routes/notifications/notifications.d.ts.map +1 -0
  71. package/dist/routes/notifications/notifications.js +226 -0
  72. package/dist/routes/notifications/notifications.js.map +1 -0
  73. package/dist/routes/notifications/notifications.schemas.d.ts +61 -0
  74. package/dist/routes/notifications/notifications.schemas.d.ts.map +1 -0
  75. package/dist/routes/notifications/notifications.schemas.js +44 -0
  76. package/dist/routes/notifications/notifications.schemas.js.map +1 -0
  77. package/dist/routes/notifications/notifications.test.d.ts +2 -0
  78. package/dist/routes/notifications/notifications.test.d.ts.map +1 -0
  79. package/dist/routes/notifications/notifications.test.js +44 -0
  80. package/dist/routes/notifications/notifications.test.js.map +1 -0
  81. package/dist/routes/repos/repos.d.ts +4 -0
  82. package/dist/routes/repos/repos.d.ts.map +1 -0
  83. package/dist/routes/repos/repos.js +142 -0
  84. package/dist/routes/repos/repos.js.map +1 -0
  85. package/dist/routes/repos/repos.schemas.d.ts +47 -0
  86. package/dist/routes/repos/repos.schemas.d.ts.map +1 -0
  87. package/dist/routes/repos/repos.schemas.js +32 -0
  88. package/dist/routes/repos/repos.schemas.js.map +1 -0
  89. package/dist/routes/sessions/sessions.d.ts +4 -0
  90. package/dist/routes/sessions/sessions.d.ts.map +1 -0
  91. package/dist/routes/sessions/sessions.js +299 -0
  92. package/dist/routes/sessions/sessions.js.map +1 -0
  93. package/dist/routes/sessions/sessions.review.d.ts +4 -0
  94. package/dist/routes/sessions/sessions.review.d.ts.map +1 -0
  95. package/dist/routes/sessions/sessions.review.js +294 -0
  96. package/dist/routes/sessions/sessions.review.js.map +1 -0
  97. package/dist/routes/sessions/sessions.review.schemas.d.ts +83 -0
  98. package/dist/routes/sessions/sessions.review.schemas.d.ts.map +1 -0
  99. package/dist/routes/sessions/sessions.review.schemas.js +55 -0
  100. package/dist/routes/sessions/sessions.review.schemas.js.map +1 -0
  101. package/dist/routes/sessions/sessions.schemas.d.ts +81 -0
  102. package/dist/routes/sessions/sessions.schemas.d.ts.map +1 -0
  103. package/dist/routes/sessions/sessions.schemas.js +50 -0
  104. package/dist/routes/sessions/sessions.schemas.js.map +1 -0
  105. package/dist/routes/sessions/sessions.test.d.ts +2 -0
  106. package/dist/routes/sessions/sessions.test.d.ts.map +1 -0
  107. package/dist/routes/sessions/sessions.test.js +297 -0
  108. package/dist/routes/sessions/sessions.test.js.map +1 -0
  109. package/dist/routes/ws/ws.d.ts +4 -0
  110. package/dist/routes/ws/ws.d.ts.map +1 -0
  111. package/dist/routes/ws/ws.js +8 -0
  112. package/dist/routes/ws/ws.js.map +1 -0
  113. package/dist/services/agent/agent.claude.d.ts +4 -0
  114. package/dist/services/agent/agent.claude.d.ts.map +1 -0
  115. package/dist/services/agent/agent.claude.js +141 -0
  116. package/dist/services/agent/agent.claude.js.map +1 -0
  117. package/dist/services/agent/agent.claude.test.d.ts +2 -0
  118. package/dist/services/agent/agent.claude.test.d.ts.map +1 -0
  119. package/dist/services/agent/agent.claude.test.js +43 -0
  120. package/dist/services/agent/agent.claude.test.js.map +1 -0
  121. package/dist/services/agent/agent.d.ts +58 -0
  122. package/dist/services/agent/agent.d.ts.map +1 -0
  123. package/dist/services/agent/agent.errors.d.ts +8 -0
  124. package/dist/services/agent/agent.errors.d.ts.map +1 -0
  125. package/dist/services/agent/agent.errors.js +14 -0
  126. package/dist/services/agent/agent.errors.js.map +1 -0
  127. package/dist/services/agent/agent.js +21 -0
  128. package/dist/services/agent/agent.js.map +1 -0
  129. package/dist/services/agent/agent.queue.d.ts +8 -0
  130. package/dist/services/agent/agent.queue.d.ts.map +1 -0
  131. package/dist/services/agent/agent.queue.js +46 -0
  132. package/dist/services/agent/agent.queue.js.map +1 -0
  133. package/dist/services/auth/auth.d.ts +41 -0
  134. package/dist/services/auth/auth.d.ts.map +1 -0
  135. package/dist/services/auth/auth.errors.d.ts +17 -0
  136. package/dist/services/auth/auth.errors.d.ts.map +1 -0
  137. package/dist/services/auth/auth.errors.js +32 -0
  138. package/dist/services/auth/auth.errors.js.map +1 -0
  139. package/dist/services/auth/auth.js +147 -0
  140. package/dist/services/auth/auth.js.map +1 -0
  141. package/dist/services/auth/auth.test.d.ts +2 -0
  142. package/dist/services/auth/auth.test.d.ts.map +1 -0
  143. package/dist/services/auth/auth.test.js +55 -0
  144. package/dist/services/auth/auth.test.js.map +1 -0
  145. package/dist/services/auth/auth.utils.d.ts +4 -0
  146. package/dist/services/auth/auth.utils.d.ts.map +1 -0
  147. package/dist/services/auth/auth.utils.js +15 -0
  148. package/dist/services/auth/auth.utils.js.map +1 -0
  149. package/dist/services/auth/auth.utils.test.d.ts +2 -0
  150. package/dist/services/auth/auth.utils.test.d.ts.map +1 -0
  151. package/dist/services/auth/auth.utils.test.js +20 -0
  152. package/dist/services/auth/auth.utils.test.js.map +1 -0
  153. package/dist/services/database/database.d.ts +102 -0
  154. package/dist/services/database/database.d.ts.map +1 -0
  155. package/dist/services/database/database.js +41 -0
  156. package/dist/services/database/database.js.map +1 -0
  157. package/dist/services/database/database.migrations.d.ts +4 -0
  158. package/dist/services/database/database.migrations.d.ts.map +1 -0
  159. package/dist/services/database/database.migrations.js +290 -0
  160. package/dist/services/database/database.migrations.js.map +1 -0
  161. package/dist/services/database/database.test.d.ts +2 -0
  162. package/dist/services/database/database.test.d.ts.map +1 -0
  163. package/dist/services/database/database.test.js +60 -0
  164. package/dist/services/database/database.test.js.map +1 -0
  165. package/dist/services/file-review/file-review.d.ts +34 -0
  166. package/dist/services/file-review/file-review.d.ts.map +1 -0
  167. package/dist/services/file-review/file-review.js +71 -0
  168. package/dist/services/file-review/file-review.js.map +1 -0
  169. package/dist/services/file-review/file-review.test.d.ts +2 -0
  170. package/dist/services/file-review/file-review.test.d.ts.map +1 -0
  171. package/dist/services/file-review/file-review.test.js +171 -0
  172. package/dist/services/file-review/file-review.test.js.map +1 -0
  173. package/dist/services/git/git.d.ts +95 -0
  174. package/dist/services/git/git.d.ts.map +1 -0
  175. package/dist/services/git/git.errors.d.ts +20 -0
  176. package/dist/services/git/git.errors.d.ts.map +1 -0
  177. package/dist/services/git/git.errors.js +38 -0
  178. package/dist/services/git/git.errors.js.map +1 -0
  179. package/dist/services/git/git.js +341 -0
  180. package/dist/services/git/git.js.map +1 -0
  181. package/dist/services/git/git.test.d.ts +2 -0
  182. package/dist/services/git/git.test.d.ts.map +1 -0
  183. package/dist/services/git/git.test.js +304 -0
  184. package/dist/services/git/git.test.js.map +1 -0
  185. package/dist/services/identity/identity.d.ts +49 -0
  186. package/dist/services/identity/identity.d.ts.map +1 -0
  187. package/dist/services/identity/identity.errors.d.ts +11 -0
  188. package/dist/services/identity/identity.errors.d.ts.map +1 -0
  189. package/dist/services/identity/identity.errors.js +20 -0
  190. package/dist/services/identity/identity.errors.js.map +1 -0
  191. package/dist/services/identity/identity.js +196 -0
  192. package/dist/services/identity/identity.js.map +1 -0
  193. package/dist/services/identity/identity.test.d.ts +2 -0
  194. package/dist/services/identity/identity.test.d.ts.map +1 -0
  195. package/dist/services/identity/identity.test.js +184 -0
  196. package/dist/services/identity/identity.test.js.map +1 -0
  197. package/dist/services/identity/identity.utils.d.ts +9 -0
  198. package/dist/services/identity/identity.utils.d.ts.map +1 -0
  199. package/dist/services/identity/identity.utils.js +47 -0
  200. package/dist/services/identity/identity.utils.js.map +1 -0
  201. package/dist/services/identity/identity.utils.test.d.ts +2 -0
  202. package/dist/services/identity/identity.utils.test.d.ts.map +1 -0
  203. package/dist/services/identity/identity.utils.test.js +49 -0
  204. package/dist/services/identity/identity.utils.test.js.map +1 -0
  205. package/dist/services/message/message.d.ts +29 -0
  206. package/dist/services/message/message.d.ts.map +1 -0
  207. package/dist/services/message/message.js +85 -0
  208. package/dist/services/message/message.js.map +1 -0
  209. package/dist/services/notification/notification.d.ts +75 -0
  210. package/dist/services/notification/notification.d.ts.map +1 -0
  211. package/dist/services/notification/notification.errors.d.ts +14 -0
  212. package/dist/services/notification/notification.errors.d.ts.map +1 -0
  213. package/dist/services/notification/notification.errors.js +26 -0
  214. package/dist/services/notification/notification.errors.js.map +1 -0
  215. package/dist/services/notification/notification.js +212 -0
  216. package/dist/services/notification/notification.js.map +1 -0
  217. package/dist/services/notification/notification.ntfy.d.ts +12 -0
  218. package/dist/services/notification/notification.ntfy.d.ts.map +1 -0
  219. package/dist/services/notification/notification.ntfy.js +44 -0
  220. package/dist/services/notification/notification.ntfy.js.map +1 -0
  221. package/dist/services/repo/repo.d.ts +46 -0
  222. package/dist/services/repo/repo.d.ts.map +1 -0
  223. package/dist/services/repo/repo.errors.d.ts +11 -0
  224. package/dist/services/repo/repo.errors.d.ts.map +1 -0
  225. package/dist/services/repo/repo.errors.js +20 -0
  226. package/dist/services/repo/repo.errors.js.map +1 -0
  227. package/dist/services/repo/repo.js +138 -0
  228. package/dist/services/repo/repo.js.map +1 -0
  229. package/dist/services/session/session.d.ts +62 -0
  230. package/dist/services/session/session.d.ts.map +1 -0
  231. package/dist/services/session/session.errors.d.ts +11 -0
  232. package/dist/services/session/session.errors.d.ts.map +1 -0
  233. package/dist/services/session/session.errors.js +20 -0
  234. package/dist/services/session/session.errors.js.map +1 -0
  235. package/dist/services/session/session.js +168 -0
  236. package/dist/services/session/session.js.map +1 -0
  237. package/dist/services/session/session.runner.d.ts +8 -0
  238. package/dist/services/session/session.runner.d.ts.map +1 -0
  239. package/dist/services/session/session.runner.js +328 -0
  240. package/dist/services/session/session.runner.js.map +1 -0
  241. package/dist/services/session/session.runner.test.d.ts +2 -0
  242. package/dist/services/session/session.runner.test.d.ts.map +1 -0
  243. package/dist/services/session/session.runner.test.js +143 -0
  244. package/dist/services/session/session.runner.test.js.map +1 -0
  245. package/dist/services/session/session.test.d.ts +2 -0
  246. package/dist/services/session/session.test.d.ts.map +1 -0
  247. package/dist/services/session/session.test.js +146 -0
  248. package/dist/services/session/session.test.js.map +1 -0
  249. package/dist/services/session-event/session-event.d.ts +28 -0
  250. package/dist/services/session-event/session-event.d.ts.map +1 -0
  251. package/dist/services/session-event/session-event.js +86 -0
  252. package/dist/services/session-event/session-event.js.map +1 -0
  253. package/dist/sse/event-bus.d.ts +74 -0
  254. package/dist/sse/event-bus.d.ts.map +1 -0
  255. package/dist/sse/event-bus.js +137 -0
  256. package/dist/sse/event-bus.js.map +1 -0
  257. package/dist/sse/stream.d.ts +20 -0
  258. package/dist/sse/stream.d.ts.map +1 -0
  259. package/dist/sse/stream.js +66 -0
  260. package/dist/sse/stream.js.map +1 -0
  261. package/dist/tsconfig.tsbuildinfo +1 -0
  262. package/dist/utils/crypto.d.ts +4 -0
  263. package/dist/utils/crypto.d.ts.map +1 -0
  264. package/dist/utils/crypto.js +21 -0
  265. package/dist/utils/crypto.js.map +1 -0
  266. package/dist/ws/ws.d.ts +30 -0
  267. package/dist/ws/ws.d.ts.map +1 -0
  268. package/dist/ws/ws.js +137 -0
  269. package/dist/ws/ws.js.map +1 -0
  270. package/package.json +50 -0
@@ -0,0 +1,171 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
+ import { createTestConfig } from '../../config/config.testing.js';
3
+ import { Services, destroy } from '../../container/container.js';
4
+ import { AuthService } from '../auth/auth.js';
5
+ import { DatabaseService } from '../database/database.js';
6
+ import { FileReviewService } from './file-review.js';
7
+ describe('FileReviewService', () => {
8
+ let services;
9
+ let fileReviewService;
10
+ let userId;
11
+ let sessionId;
12
+ beforeEach(async () => {
13
+ services = new Services(createTestConfig());
14
+ fileReviewService = services.get(FileReviewService);
15
+ const auth = services.get(AuthService);
16
+ const { user } = await auth.register({ email: 'test@example.com', password: 'password123' });
17
+ userId = user.id;
18
+ // Create a session directly in the DB for FK constraints
19
+ const db = await services.get(DatabaseService).getInstance();
20
+ await db
21
+ .insertInto('identities')
22
+ .values({
23
+ id: 'identity-1',
24
+ user_id: userId,
25
+ name: 'Test',
26
+ git_author_name: 'Alice',
27
+ git_author_email: 'alice@test.com',
28
+ public_key: 'pub',
29
+ encrypted_private_key: 'enc',
30
+ created_at: new Date().toISOString(),
31
+ updated_at: new Date().toISOString(),
32
+ })
33
+ .execute();
34
+ sessionId = 'session-1';
35
+ await db
36
+ .insertInto('sessions')
37
+ .values({
38
+ id: sessionId,
39
+ user_id: userId,
40
+ identity_id: 'identity-1',
41
+ repo_url: 'git@github.com:test/repo.git',
42
+ branch: 'main',
43
+ prompt: 'Fix bug',
44
+ status: 'idle',
45
+ error: null,
46
+ repo_id: null,
47
+ created_at: new Date().toISOString(),
48
+ updated_at: new Date().toISOString(),
49
+ })
50
+ .execute();
51
+ });
52
+ afterEach(async () => {
53
+ await services[destroy]();
54
+ });
55
+ describe('markReviewed', () => {
56
+ it('creates a review record', async () => {
57
+ const review = await fileReviewService.markReviewed({
58
+ sessionId,
59
+ userId,
60
+ filePath: 'src/index.ts',
61
+ fileHash: 'abc123',
62
+ });
63
+ expect(review.sessionId).toBe(sessionId);
64
+ expect(review.userId).toBe(userId);
65
+ expect(review.filePath).toBe('src/index.ts');
66
+ expect(review.fileHash).toBe('abc123');
67
+ expect(review.id).toBeTruthy();
68
+ expect(review.createdAt).toBeTruthy();
69
+ });
70
+ it('upserts when re-reviewing the same file', async () => {
71
+ await fileReviewService.markReviewed({
72
+ sessionId,
73
+ userId,
74
+ filePath: 'src/index.ts',
75
+ fileHash: 'abc123',
76
+ });
77
+ const updated = await fileReviewService.markReviewed({
78
+ sessionId,
79
+ userId,
80
+ filePath: 'src/index.ts',
81
+ fileHash: 'def456',
82
+ });
83
+ expect(updated.fileHash).toBe('def456');
84
+ const reviews = await fileReviewService.listBySession({ sessionId, userId });
85
+ expect(reviews).toHaveLength(1);
86
+ expect(reviews[0].fileHash).toBe('def456');
87
+ });
88
+ });
89
+ describe('unmarkReviewed', () => {
90
+ it('removes a review record', async () => {
91
+ await fileReviewService.markReviewed({
92
+ sessionId,
93
+ userId,
94
+ filePath: 'src/index.ts',
95
+ fileHash: 'abc123',
96
+ });
97
+ await fileReviewService.unmarkReviewed({
98
+ sessionId,
99
+ userId,
100
+ filePath: 'src/index.ts',
101
+ });
102
+ const reviews = await fileReviewService.listBySession({ sessionId, userId });
103
+ expect(reviews).toHaveLength(0);
104
+ });
105
+ it('does not throw when unmarking a non-reviewed file', async () => {
106
+ await expect(fileReviewService.unmarkReviewed({
107
+ sessionId,
108
+ userId,
109
+ filePath: 'nonexistent.ts',
110
+ })).resolves.toBeUndefined();
111
+ });
112
+ });
113
+ describe('listBySession', () => {
114
+ it('returns all reviews for a session and user', async () => {
115
+ await fileReviewService.markReviewed({
116
+ sessionId,
117
+ userId,
118
+ filePath: 'src/a.ts',
119
+ fileHash: 'hash-a',
120
+ });
121
+ await fileReviewService.markReviewed({
122
+ sessionId,
123
+ userId,
124
+ filePath: 'src/b.ts',
125
+ fileHash: 'hash-b',
126
+ });
127
+ const reviews = await fileReviewService.listBySession({ sessionId, userId });
128
+ expect(reviews).toHaveLength(2);
129
+ const paths = reviews.map((r) => r.filePath);
130
+ expect(paths).toContain('src/a.ts');
131
+ expect(paths).toContain('src/b.ts');
132
+ });
133
+ it('returns empty array when no reviews exist', async () => {
134
+ const reviews = await fileReviewService.listBySession({ sessionId, userId });
135
+ expect(reviews).toEqual([]);
136
+ });
137
+ it('does not return reviews from other users', async () => {
138
+ await fileReviewService.markReviewed({
139
+ sessionId,
140
+ userId,
141
+ filePath: 'src/a.ts',
142
+ fileHash: 'hash-a',
143
+ });
144
+ const auth = services.get(AuthService);
145
+ const { user: otherUser } = await auth.register({
146
+ email: 'other@example.com',
147
+ password: 'password123',
148
+ });
149
+ const reviews = await fileReviewService.listBySession({
150
+ sessionId,
151
+ userId: otherUser.id,
152
+ });
153
+ expect(reviews).toEqual([]);
154
+ });
155
+ });
156
+ describe('cascade delete', () => {
157
+ it('deletes reviews when session is deleted', async () => {
158
+ await fileReviewService.markReviewed({
159
+ sessionId,
160
+ userId,
161
+ filePath: 'src/a.ts',
162
+ fileHash: 'hash-a',
163
+ });
164
+ const db = await services.get(DatabaseService).getInstance();
165
+ await db.deleteFrom('sessions').where('id', '=', sessionId).execute();
166
+ const reviews = await fileReviewService.listBySession({ sessionId, userId });
167
+ expect(reviews).toEqual([]);
168
+ });
169
+ });
170
+ });
171
+ //# sourceMappingURL=file-review.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-review.test.js","sourceRoot":"","sources":["../../../src/services/file-review/file-review.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ import type { Services } from '../../container/container.js';
2
+ type TempKeyFile = {
3
+ path: string;
4
+ cleanup: () => Promise<void>;
5
+ };
6
+ declare const writeTempKeyFile: (privateKey: string) => Promise<TempKeyFile>;
7
+ declare const repoHash: (repoUrl: string, identityId: string) => string;
8
+ type EnsureBareCloneInput = {
9
+ repoUrl: string;
10
+ identityId: string;
11
+ sshPrivateKey: string;
12
+ };
13
+ type CreateWorktreeInput = {
14
+ bareRepoPath: string;
15
+ sessionId: string;
16
+ ref: string;
17
+ };
18
+ type RemoveWorktreeInput = {
19
+ bareRepoPath: string;
20
+ worktreePath: string;
21
+ };
22
+ type CommitInput = {
23
+ worktreePath: string;
24
+ message: string;
25
+ authorName: string;
26
+ authorEmail: string;
27
+ };
28
+ type PushInput = {
29
+ worktreePath: string;
30
+ branch: string;
31
+ sshPrivateKey: string;
32
+ };
33
+ type FetchInput = {
34
+ bareRepoPath: string;
35
+ sshPrivateKey: string;
36
+ };
37
+ type ChangedFile = {
38
+ path: string;
39
+ status: 'added' | 'modified' | 'deleted' | 'renamed';
40
+ additions: number;
41
+ deletions: number;
42
+ oldPath: string | null;
43
+ };
44
+ type GetChangedFilesInput = {
45
+ worktreePath: string;
46
+ baseRef: string;
47
+ compareRef?: string;
48
+ };
49
+ type GetDiffInput = {
50
+ worktreePath: string;
51
+ baseRef: string;
52
+ compareRef?: string;
53
+ filePath?: string;
54
+ };
55
+ type GetFileHashInput = {
56
+ worktreePath: string;
57
+ filePath: string;
58
+ ref?: string;
59
+ };
60
+ type GetFileContentInput = {
61
+ worktreePath: string;
62
+ filePath: string;
63
+ ref?: string;
64
+ };
65
+ type ListBranchesInput = {
66
+ bareRepoPath: string;
67
+ };
68
+ declare class GitService {
69
+ #private;
70
+ constructor(services: Services);
71
+ ensureBareClone: (input: EnsureBareCloneInput) => Promise<string>;
72
+ fetch: (input: FetchInput) => Promise<void>;
73
+ createWorktree: (input: CreateWorktreeInput) => Promise<string>;
74
+ removeWorktree: (input: RemoveWorktreeInput) => Promise<void>;
75
+ hasUncommittedChanges: (input: {
76
+ worktreePath: string;
77
+ }) => Promise<boolean>;
78
+ commit: (input: CommitInput) => Promise<string>;
79
+ push: (input: PushInput) => Promise<void>;
80
+ getChangedFiles: (input: GetChangedFilesInput) => Promise<ChangedFile[]>;
81
+ getDiff: (input: GetDiffInput) => Promise<string>;
82
+ getFileHash: (input: GetFileHashInput) => Promise<string | null>;
83
+ getFileContent: (input: GetFileContentInput) => Promise<string | null>;
84
+ getHead: (input: {
85
+ worktreePath: string;
86
+ }) => Promise<string>;
87
+ resetHard: (input: {
88
+ worktreePath: string;
89
+ ref: string;
90
+ }) => Promise<void>;
91
+ listBranches: (input: ListBranchesInput) => Promise<string[]>;
92
+ }
93
+ export type { EnsureBareCloneInput, CreateWorktreeInput, RemoveWorktreeInput, CommitInput, PushInput, FetchInput, ChangedFile, GetChangedFilesInput, GetDiffInput, GetFileHashInput, GetFileContentInput, ListBranchesInput, };
94
+ export { GitService, repoHash, writeTempKeyFile };
95
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/services/git/git.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ declare class GitError extends Error {
2
+ constructor(message: string);
3
+ }
4
+ declare class GitCloneError extends GitError {
5
+ constructor(message?: string);
6
+ }
7
+ declare class GitWorktreeError extends GitError {
8
+ constructor(message?: string);
9
+ }
10
+ declare class GitDiffError extends GitError {
11
+ constructor(message?: string);
12
+ }
13
+ declare class GitCommitError extends GitError {
14
+ constructor(message?: string);
15
+ }
16
+ declare class GitPushError extends GitError {
17
+ constructor(message?: string);
18
+ }
19
+ export { GitError, GitCloneError, GitWorktreeError, GitDiffError, GitCommitError, GitPushError };
20
+ //# sourceMappingURL=git.errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.errors.d.ts","sourceRoot":"","sources":["../../../src/services/git/git.errors.ts"],"names":[],"mappings":"AAAA,cAAM,QAAS,SAAQ,KAAK;gBACd,OAAO,EAAE,MAAM;CAI5B;AAED,cAAM,aAAc,SAAQ,QAAQ;gBACtB,OAAO,SAA+B;CAInD;AAED,cAAM,gBAAiB,SAAQ,QAAQ;gBACzB,OAAO,SAA8B;CAIlD;AAED,cAAM,YAAa,SAAQ,QAAQ;gBACrB,OAAO,SAA0B;CAI9C;AAED,cAAM,cAAe,SAAQ,QAAQ;gBACvB,OAAO,SAA4B;CAIhD;AAED,cAAM,YAAa,SAAQ,QAAQ;gBACrB,OAAO,SAA0B;CAI9C;AAED,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,38 @@
1
+ class GitError extends Error {
2
+ constructor(message) {
3
+ super(message);
4
+ this.name = 'GitError';
5
+ }
6
+ }
7
+ class GitCloneError extends GitError {
8
+ constructor(message = 'Failed to clone repository') {
9
+ super(message);
10
+ this.name = 'GitCloneError';
11
+ }
12
+ }
13
+ class GitWorktreeError extends GitError {
14
+ constructor(message = 'Worktree operation failed') {
15
+ super(message);
16
+ this.name = 'GitWorktreeError';
17
+ }
18
+ }
19
+ class GitDiffError extends GitError {
20
+ constructor(message = 'Diff operation failed') {
21
+ super(message);
22
+ this.name = 'GitDiffError';
23
+ }
24
+ }
25
+ class GitCommitError extends GitError {
26
+ constructor(message = 'Commit operation failed') {
27
+ super(message);
28
+ this.name = 'GitCommitError';
29
+ }
30
+ }
31
+ class GitPushError extends GitError {
32
+ constructor(message = 'Push operation failed') {
33
+ super(message);
34
+ this.name = 'GitPushError';
35
+ }
36
+ }
37
+ export { GitError, GitCloneError, GitWorktreeError, GitDiffError, GitCommitError, GitPushError };
38
+ //# sourceMappingURL=git.errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.errors.js","sourceRoot":"","sources":["../../../src/services/git/git.errors.ts"],"names":[],"mappings":"AAAA,MAAM,QAAS,SAAQ,KAAK;IAC1B,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED,MAAM,aAAc,SAAQ,QAAQ;IAClC,YAAY,OAAO,GAAG,4BAA4B;QAChD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,gBAAiB,SAAQ,QAAQ;IACrC,YAAY,OAAO,GAAG,2BAA2B;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,YAAa,SAAQ,QAAQ;IACjC,YAAY,OAAO,GAAG,uBAAuB;QAC3C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,cAAe,SAAQ,QAAQ;IACnC,YAAY,OAAO,GAAG,yBAAyB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,YAAa,SAAQ,QAAQ;IACjC,YAAY,OAAO,GAAG,uBAAuB;QAC3C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC"}