claudedesk 1.0.0

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 (182) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +431 -0
  3. package/config/repos.example.json +128 -0
  4. package/config/settings.example.json +64 -0
  5. package/config/skills/code-review.md +76 -0
  6. package/config/skills/full-check.md +26 -0
  7. package/config/skills/lint-fix.md +23 -0
  8. package/dist/api/agent-routes.d.ts +2 -0
  9. package/dist/api/agent-routes.d.ts.map +1 -0
  10. package/dist/api/agent-routes.js +251 -0
  11. package/dist/api/agent-routes.js.map +1 -0
  12. package/dist/api/app-routes.d.ts +2 -0
  13. package/dist/api/app-routes.d.ts.map +1 -0
  14. package/dist/api/app-routes.js +150 -0
  15. package/dist/api/app-routes.js.map +1 -0
  16. package/dist/api/docker-routes.d.ts +2 -0
  17. package/dist/api/docker-routes.d.ts.map +1 -0
  18. package/dist/api/docker-routes.js +167 -0
  19. package/dist/api/docker-routes.js.map +1 -0
  20. package/dist/api/middleware.d.ts +6 -0
  21. package/dist/api/middleware.d.ts.map +1 -0
  22. package/dist/api/middleware.js +293 -0
  23. package/dist/api/middleware.js.map +1 -0
  24. package/dist/api/pin-auth.d.ts +65 -0
  25. package/dist/api/pin-auth.d.ts.map +1 -0
  26. package/dist/api/pin-auth.js +218 -0
  27. package/dist/api/pin-auth.js.map +1 -0
  28. package/dist/api/routes.d.ts +2 -0
  29. package/dist/api/routes.d.ts.map +1 -0
  30. package/dist/api/routes.js +473 -0
  31. package/dist/api/routes.js.map +1 -0
  32. package/dist/api/settings-routes.d.ts +2 -0
  33. package/dist/api/settings-routes.d.ts.map +1 -0
  34. package/dist/api/settings-routes.js +570 -0
  35. package/dist/api/settings-routes.js.map +1 -0
  36. package/dist/api/skill-routes.d.ts +2 -0
  37. package/dist/api/skill-routes.d.ts.map +1 -0
  38. package/dist/api/skill-routes.js +88 -0
  39. package/dist/api/skill-routes.js.map +1 -0
  40. package/dist/api/terminal-routes.d.ts +2 -0
  41. package/dist/api/terminal-routes.d.ts.map +1 -0
  42. package/dist/api/terminal-routes.js +3524 -0
  43. package/dist/api/terminal-routes.js.map +1 -0
  44. package/dist/api/tunnel-routes.d.ts +2 -0
  45. package/dist/api/tunnel-routes.d.ts.map +1 -0
  46. package/dist/api/tunnel-routes.js +196 -0
  47. package/dist/api/tunnel-routes.js.map +1 -0
  48. package/dist/api/workspace-routes.d.ts +3 -0
  49. package/dist/api/workspace-routes.d.ts.map +1 -0
  50. package/dist/api/workspace-routes.js +649 -0
  51. package/dist/api/workspace-routes.js.map +1 -0
  52. package/dist/cli.d.ts +3 -0
  53. package/dist/cli.d.ts.map +1 -0
  54. package/dist/cli.js +276 -0
  55. package/dist/cli.js.map +1 -0
  56. package/dist/client/assets/index-B4r0njGe.js +780 -0
  57. package/dist/client/assets/index-CY_9MyE0.css +1 -0
  58. package/dist/client/favicon.svg +5 -0
  59. package/dist/client/icons/icon-192.svg +5 -0
  60. package/dist/client/icons/icon-512.svg +5 -0
  61. package/dist/client/icons/logo-with-message.png +0 -0
  62. package/dist/client/icons/logo.png +0 -0
  63. package/dist/client/index.html +25 -0
  64. package/dist/client/manifest.json +62 -0
  65. package/dist/client/sw.js +243 -0
  66. package/dist/config/agent-usage.d.ts +34 -0
  67. package/dist/config/agent-usage.d.ts.map +1 -0
  68. package/dist/config/agent-usage.js +87 -0
  69. package/dist/config/agent-usage.js.map +1 -0
  70. package/dist/config/repos.d.ts +34 -0
  71. package/dist/config/repos.d.ts.map +1 -0
  72. package/dist/config/repos.js +412 -0
  73. package/dist/config/repos.js.map +1 -0
  74. package/dist/config/settings.d.ts +634 -0
  75. package/dist/config/settings.d.ts.map +1 -0
  76. package/dist/config/settings.js +459 -0
  77. package/dist/config/settings.js.map +1 -0
  78. package/dist/config/skills.d.ts +18 -0
  79. package/dist/config/skills.d.ts.map +1 -0
  80. package/dist/config/skills.js +174 -0
  81. package/dist/config/skills.js.map +1 -0
  82. package/dist/config/workspaces.d.ts +961 -0
  83. package/dist/config/workspaces.d.ts.map +1 -0
  84. package/dist/config/workspaces.js +482 -0
  85. package/dist/config/workspaces.js.map +1 -0
  86. package/dist/core/app-manager.d.ts +85 -0
  87. package/dist/core/app-manager.d.ts.map +1 -0
  88. package/dist/core/app-manager.js +447 -0
  89. package/dist/core/app-manager.js.map +1 -0
  90. package/dist/core/claude-invoker.d.ts +49 -0
  91. package/dist/core/claude-invoker.d.ts.map +1 -0
  92. package/dist/core/claude-invoker.js +583 -0
  93. package/dist/core/claude-invoker.js.map +1 -0
  94. package/dist/core/claude-session-reader.d.ts +25 -0
  95. package/dist/core/claude-session-reader.d.ts.map +1 -0
  96. package/dist/core/claude-session-reader.js +184 -0
  97. package/dist/core/claude-session-reader.js.map +1 -0
  98. package/dist/core/claude-usage-query.d.ts +78 -0
  99. package/dist/core/claude-usage-query.d.ts.map +1 -0
  100. package/dist/core/claude-usage-query.js +294 -0
  101. package/dist/core/claude-usage-query.js.map +1 -0
  102. package/dist/core/git-credential-helper.d.ts +57 -0
  103. package/dist/core/git-credential-helper.d.ts.map +1 -0
  104. package/dist/core/git-credential-helper.js +176 -0
  105. package/dist/core/git-credential-helper.js.map +1 -0
  106. package/dist/core/git-sandbox.d.ts +135 -0
  107. package/dist/core/git-sandbox.d.ts.map +1 -0
  108. package/dist/core/git-sandbox.js +907 -0
  109. package/dist/core/git-sandbox.js.map +1 -0
  110. package/dist/core/github-integration.d.ts +66 -0
  111. package/dist/core/github-integration.d.ts.map +1 -0
  112. package/dist/core/github-integration.js +350 -0
  113. package/dist/core/github-integration.js.map +1 -0
  114. package/dist/core/github-oauth.d.ts +88 -0
  115. package/dist/core/github-oauth.d.ts.map +1 -0
  116. package/dist/core/github-oauth.js +244 -0
  117. package/dist/core/github-oauth.js.map +1 -0
  118. package/dist/core/gitlab-integration.d.ts +66 -0
  119. package/dist/core/gitlab-integration.d.ts.map +1 -0
  120. package/dist/core/gitlab-integration.js +353 -0
  121. package/dist/core/gitlab-integration.js.map +1 -0
  122. package/dist/core/gitlab-oauth.d.ts +100 -0
  123. package/dist/core/gitlab-oauth.d.ts.map +1 -0
  124. package/dist/core/gitlab-oauth.js +366 -0
  125. package/dist/core/gitlab-oauth.js.map +1 -0
  126. package/dist/core/insights-extractor.d.ts +68 -0
  127. package/dist/core/insights-extractor.d.ts.map +1 -0
  128. package/dist/core/insights-extractor.js +402 -0
  129. package/dist/core/insights-extractor.js.map +1 -0
  130. package/dist/core/logger.d.ts +27 -0
  131. package/dist/core/logger.d.ts.map +1 -0
  132. package/dist/core/logger.js +70 -0
  133. package/dist/core/logger.js.map +1 -0
  134. package/dist/core/process-runner.d.ts +27 -0
  135. package/dist/core/process-runner.d.ts.map +1 -0
  136. package/dist/core/process-runner.js +147 -0
  137. package/dist/core/process-runner.js.map +1 -0
  138. package/dist/core/project-detector.d.ts +30 -0
  139. package/dist/core/project-detector.d.ts.map +1 -0
  140. package/dist/core/project-detector.js +482 -0
  141. package/dist/core/project-detector.js.map +1 -0
  142. package/dist/core/qr-generator.d.ts +18 -0
  143. package/dist/core/qr-generator.d.ts.map +1 -0
  144. package/dist/core/qr-generator.js +61 -0
  145. package/dist/core/qr-generator.js.map +1 -0
  146. package/dist/core/remote-tunnel-manager.d.ts +59 -0
  147. package/dist/core/remote-tunnel-manager.d.ts.map +1 -0
  148. package/dist/core/remote-tunnel-manager.js +235 -0
  149. package/dist/core/remote-tunnel-manager.js.map +1 -0
  150. package/dist/core/shared-docker-manager.d.ts +41 -0
  151. package/dist/core/shared-docker-manager.d.ts.map +1 -0
  152. package/dist/core/shared-docker-manager.js +409 -0
  153. package/dist/core/shared-docker-manager.js.map +1 -0
  154. package/dist/core/skill-executor.d.ts +25 -0
  155. package/dist/core/skill-executor.d.ts.map +1 -0
  156. package/dist/core/skill-executor.js +171 -0
  157. package/dist/core/skill-executor.js.map +1 -0
  158. package/dist/core/terminal-session.d.ts +149 -0
  159. package/dist/core/terminal-session.d.ts.map +1 -0
  160. package/dist/core/terminal-session.js +2340 -0
  161. package/dist/core/terminal-session.js.map +1 -0
  162. package/dist/core/tunnel-manager.d.ts +35 -0
  163. package/dist/core/tunnel-manager.d.ts.map +1 -0
  164. package/dist/core/tunnel-manager.js +137 -0
  165. package/dist/core/tunnel-manager.js.map +1 -0
  166. package/dist/core/usage-manager.d.ts +57 -0
  167. package/dist/core/usage-manager.d.ts.map +1 -0
  168. package/dist/core/usage-manager.js +363 -0
  169. package/dist/core/usage-manager.js.map +1 -0
  170. package/dist/core/ws-manager.d.ts +39 -0
  171. package/dist/core/ws-manager.d.ts.map +1 -0
  172. package/dist/core/ws-manager.js +190 -0
  173. package/dist/core/ws-manager.js.map +1 -0
  174. package/dist/index.d.ts +7 -0
  175. package/dist/index.d.ts.map +1 -0
  176. package/dist/index.js +229 -0
  177. package/dist/index.js.map +1 -0
  178. package/dist/types.d.ts +868 -0
  179. package/dist/types.d.ts.map +1 -0
  180. package/dist/types.js +119 -0
  181. package/dist/types.js.map +1 -0
  182. package/package.json +96 -0
@@ -0,0 +1,961 @@
1
+ import { z } from 'zod';
2
+ declare const GitHubCredentialsSchema: z.ZodObject<{
3
+ accessToken: z.ZodString;
4
+ username: z.ZodString;
5
+ tokenScope: z.ZodDefault<z.ZodString>;
6
+ expiresAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
7
+ }, "strip", z.ZodTypeAny, {
8
+ accessToken: string;
9
+ username: string;
10
+ tokenScope: string;
11
+ expiresAt: string | null;
12
+ }, {
13
+ accessToken: string;
14
+ username: string;
15
+ tokenScope?: string | undefined;
16
+ expiresAt?: string | null | undefined;
17
+ }>;
18
+ export type GitHubCredentials = z.infer<typeof GitHubCredentialsSchema>;
19
+ declare const GitLabCredentialsSchema: z.ZodObject<{
20
+ accessToken: z.ZodString;
21
+ refreshToken: z.ZodOptional<z.ZodString>;
22
+ username: z.ZodString;
23
+ tokenScope: z.ZodDefault<z.ZodString>;
24
+ expiresAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
25
+ }, "strip", z.ZodTypeAny, {
26
+ accessToken: string;
27
+ username: string;
28
+ tokenScope: string;
29
+ expiresAt: string | null;
30
+ refreshToken?: string | undefined;
31
+ }, {
32
+ accessToken: string;
33
+ username: string;
34
+ tokenScope?: string | undefined;
35
+ expiresAt?: string | null | undefined;
36
+ refreshToken?: string | undefined;
37
+ }>;
38
+ export type GitLabCredentials = z.infer<typeof GitLabCredentialsSchema>;
39
+ declare const ServiceConfigOverrideSchema: z.ZodObject<{
40
+ proof: z.ZodOptional<z.ZodObject<{
41
+ mode: z.ZodEnum<["web", "api", "cli"]>;
42
+ web: z.ZodOptional<z.ZodObject<{
43
+ url: z.ZodString;
44
+ waitForSelector: z.ZodOptional<z.ZodString>;
45
+ assertText: z.ZodOptional<z.ZodString>;
46
+ }, "strip", z.ZodTypeAny, {
47
+ url: string;
48
+ waitForSelector?: string | undefined;
49
+ assertText?: string | undefined;
50
+ }, {
51
+ url: string;
52
+ waitForSelector?: string | undefined;
53
+ assertText?: string | undefined;
54
+ }>>;
55
+ api: z.ZodOptional<z.ZodObject<{
56
+ healthUrl: z.ZodString;
57
+ timeout: z.ZodOptional<z.ZodNumber>;
58
+ }, "strip", z.ZodTypeAny, {
59
+ healthUrl: string;
60
+ timeout?: number | undefined;
61
+ }, {
62
+ healthUrl: string;
63
+ timeout?: number | undefined;
64
+ }>>;
65
+ cli: z.ZodOptional<z.ZodObject<{
66
+ command: z.ZodString;
67
+ assertStdout: z.ZodOptional<z.ZodString>;
68
+ assertRegex: z.ZodOptional<z.ZodString>;
69
+ }, "strip", z.ZodTypeAny, {
70
+ command: string;
71
+ assertStdout?: string | undefined;
72
+ assertRegex?: string | undefined;
73
+ }, {
74
+ command: string;
75
+ assertStdout?: string | undefined;
76
+ assertRegex?: string | undefined;
77
+ }>>;
78
+ }, "strip", z.ZodTypeAny, {
79
+ mode: "web" | "api" | "cli";
80
+ web?: {
81
+ url: string;
82
+ waitForSelector?: string | undefined;
83
+ assertText?: string | undefined;
84
+ } | undefined;
85
+ api?: {
86
+ healthUrl: string;
87
+ timeout?: number | undefined;
88
+ } | undefined;
89
+ cli?: {
90
+ command: string;
91
+ assertStdout?: string | undefined;
92
+ assertRegex?: string | undefined;
93
+ } | undefined;
94
+ }, {
95
+ mode: "web" | "api" | "cli";
96
+ web?: {
97
+ url: string;
98
+ waitForSelector?: string | undefined;
99
+ assertText?: string | undefined;
100
+ } | undefined;
101
+ api?: {
102
+ healthUrl: string;
103
+ timeout?: number | undefined;
104
+ } | undefined;
105
+ cli?: {
106
+ command: string;
107
+ assertStdout?: string | undefined;
108
+ assertRegex?: string | undefined;
109
+ } | undefined;
110
+ }>>;
111
+ port: z.ZodOptional<z.ZodNumber>;
112
+ }, "strip", z.ZodTypeAny, {
113
+ proof?: {
114
+ mode: "web" | "api" | "cli";
115
+ web?: {
116
+ url: string;
117
+ waitForSelector?: string | undefined;
118
+ assertText?: string | undefined;
119
+ } | undefined;
120
+ api?: {
121
+ healthUrl: string;
122
+ timeout?: number | undefined;
123
+ } | undefined;
124
+ cli?: {
125
+ command: string;
126
+ assertStdout?: string | undefined;
127
+ assertRegex?: string | undefined;
128
+ } | undefined;
129
+ } | undefined;
130
+ port?: number | undefined;
131
+ }, {
132
+ proof?: {
133
+ mode: "web" | "api" | "cli";
134
+ web?: {
135
+ url: string;
136
+ waitForSelector?: string | undefined;
137
+ assertText?: string | undefined;
138
+ } | undefined;
139
+ api?: {
140
+ healthUrl: string;
141
+ timeout?: number | undefined;
142
+ } | undefined;
143
+ cli?: {
144
+ command: string;
145
+ assertStdout?: string | undefined;
146
+ assertRegex?: string | undefined;
147
+ } | undefined;
148
+ } | undefined;
149
+ port?: number | undefined;
150
+ }>;
151
+ export type ServiceConfigOverride = z.infer<typeof ServiceConfigOverrideSchema>;
152
+ declare const RepoConfigOverrideSchema: z.ZodObject<{
153
+ proof: z.ZodOptional<z.ZodObject<{
154
+ mode: z.ZodEnum<["web", "api", "cli"]>;
155
+ web: z.ZodOptional<z.ZodObject<{
156
+ url: z.ZodString;
157
+ waitForSelector: z.ZodOptional<z.ZodString>;
158
+ assertText: z.ZodOptional<z.ZodString>;
159
+ }, "strip", z.ZodTypeAny, {
160
+ url: string;
161
+ waitForSelector?: string | undefined;
162
+ assertText?: string | undefined;
163
+ }, {
164
+ url: string;
165
+ waitForSelector?: string | undefined;
166
+ assertText?: string | undefined;
167
+ }>>;
168
+ api: z.ZodOptional<z.ZodObject<{
169
+ healthUrl: z.ZodString;
170
+ timeout: z.ZodOptional<z.ZodNumber>;
171
+ }, "strip", z.ZodTypeAny, {
172
+ healthUrl: string;
173
+ timeout?: number | undefined;
174
+ }, {
175
+ healthUrl: string;
176
+ timeout?: number | undefined;
177
+ }>>;
178
+ cli: z.ZodOptional<z.ZodObject<{
179
+ command: z.ZodString;
180
+ assertStdout: z.ZodOptional<z.ZodString>;
181
+ assertRegex: z.ZodOptional<z.ZodString>;
182
+ }, "strip", z.ZodTypeAny, {
183
+ command: string;
184
+ assertStdout?: string | undefined;
185
+ assertRegex?: string | undefined;
186
+ }, {
187
+ command: string;
188
+ assertStdout?: string | undefined;
189
+ assertRegex?: string | undefined;
190
+ }>>;
191
+ }, "strip", z.ZodTypeAny, {
192
+ mode: "web" | "api" | "cli";
193
+ web?: {
194
+ url: string;
195
+ waitForSelector?: string | undefined;
196
+ assertText?: string | undefined;
197
+ } | undefined;
198
+ api?: {
199
+ healthUrl: string;
200
+ timeout?: number | undefined;
201
+ } | undefined;
202
+ cli?: {
203
+ command: string;
204
+ assertStdout?: string | undefined;
205
+ assertRegex?: string | undefined;
206
+ } | undefined;
207
+ }, {
208
+ mode: "web" | "api" | "cli";
209
+ web?: {
210
+ url: string;
211
+ waitForSelector?: string | undefined;
212
+ assertText?: string | undefined;
213
+ } | undefined;
214
+ api?: {
215
+ healthUrl: string;
216
+ timeout?: number | undefined;
217
+ } | undefined;
218
+ cli?: {
219
+ command: string;
220
+ assertStdout?: string | undefined;
221
+ assertRegex?: string | undefined;
222
+ } | undefined;
223
+ }>>;
224
+ port: z.ZodOptional<z.ZodNumber>;
225
+ commands: z.ZodOptional<z.ZodObject<{
226
+ install: z.ZodOptional<z.ZodString>;
227
+ build: z.ZodOptional<z.ZodString>;
228
+ test: z.ZodOptional<z.ZodString>;
229
+ run: z.ZodOptional<z.ZodString>;
230
+ }, "strip", z.ZodTypeAny, {
231
+ install?: string | undefined;
232
+ build?: string | undefined;
233
+ test?: string | undefined;
234
+ run?: string | undefined;
235
+ }, {
236
+ install?: string | undefined;
237
+ build?: string | undefined;
238
+ test?: string | undefined;
239
+ run?: string | undefined;
240
+ }>>;
241
+ services: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
242
+ proof: z.ZodOptional<z.ZodObject<{
243
+ mode: z.ZodEnum<["web", "api", "cli"]>;
244
+ web: z.ZodOptional<z.ZodObject<{
245
+ url: z.ZodString;
246
+ waitForSelector: z.ZodOptional<z.ZodString>;
247
+ assertText: z.ZodOptional<z.ZodString>;
248
+ }, "strip", z.ZodTypeAny, {
249
+ url: string;
250
+ waitForSelector?: string | undefined;
251
+ assertText?: string | undefined;
252
+ }, {
253
+ url: string;
254
+ waitForSelector?: string | undefined;
255
+ assertText?: string | undefined;
256
+ }>>;
257
+ api: z.ZodOptional<z.ZodObject<{
258
+ healthUrl: z.ZodString;
259
+ timeout: z.ZodOptional<z.ZodNumber>;
260
+ }, "strip", z.ZodTypeAny, {
261
+ healthUrl: string;
262
+ timeout?: number | undefined;
263
+ }, {
264
+ healthUrl: string;
265
+ timeout?: number | undefined;
266
+ }>>;
267
+ cli: z.ZodOptional<z.ZodObject<{
268
+ command: z.ZodString;
269
+ assertStdout: z.ZodOptional<z.ZodString>;
270
+ assertRegex: z.ZodOptional<z.ZodString>;
271
+ }, "strip", z.ZodTypeAny, {
272
+ command: string;
273
+ assertStdout?: string | undefined;
274
+ assertRegex?: string | undefined;
275
+ }, {
276
+ command: string;
277
+ assertStdout?: string | undefined;
278
+ assertRegex?: string | undefined;
279
+ }>>;
280
+ }, "strip", z.ZodTypeAny, {
281
+ mode: "web" | "api" | "cli";
282
+ web?: {
283
+ url: string;
284
+ waitForSelector?: string | undefined;
285
+ assertText?: string | undefined;
286
+ } | undefined;
287
+ api?: {
288
+ healthUrl: string;
289
+ timeout?: number | undefined;
290
+ } | undefined;
291
+ cli?: {
292
+ command: string;
293
+ assertStdout?: string | undefined;
294
+ assertRegex?: string | undefined;
295
+ } | undefined;
296
+ }, {
297
+ mode: "web" | "api" | "cli";
298
+ web?: {
299
+ url: string;
300
+ waitForSelector?: string | undefined;
301
+ assertText?: string | undefined;
302
+ } | undefined;
303
+ api?: {
304
+ healthUrl: string;
305
+ timeout?: number | undefined;
306
+ } | undefined;
307
+ cli?: {
308
+ command: string;
309
+ assertStdout?: string | undefined;
310
+ assertRegex?: string | undefined;
311
+ } | undefined;
312
+ }>>;
313
+ port: z.ZodOptional<z.ZodNumber>;
314
+ }, "strip", z.ZodTypeAny, {
315
+ proof?: {
316
+ mode: "web" | "api" | "cli";
317
+ web?: {
318
+ url: string;
319
+ waitForSelector?: string | undefined;
320
+ assertText?: string | undefined;
321
+ } | undefined;
322
+ api?: {
323
+ healthUrl: string;
324
+ timeout?: number | undefined;
325
+ } | undefined;
326
+ cli?: {
327
+ command: string;
328
+ assertStdout?: string | undefined;
329
+ assertRegex?: string | undefined;
330
+ } | undefined;
331
+ } | undefined;
332
+ port?: number | undefined;
333
+ }, {
334
+ proof?: {
335
+ mode: "web" | "api" | "cli";
336
+ web?: {
337
+ url: string;
338
+ waitForSelector?: string | undefined;
339
+ assertText?: string | undefined;
340
+ } | undefined;
341
+ api?: {
342
+ healthUrl: string;
343
+ timeout?: number | undefined;
344
+ } | undefined;
345
+ cli?: {
346
+ command: string;
347
+ assertStdout?: string | undefined;
348
+ assertRegex?: string | undefined;
349
+ } | undefined;
350
+ } | undefined;
351
+ port?: number | undefined;
352
+ }>>>;
353
+ }, "strip", z.ZodTypeAny, {
354
+ commands?: {
355
+ install?: string | undefined;
356
+ build?: string | undefined;
357
+ test?: string | undefined;
358
+ run?: string | undefined;
359
+ } | undefined;
360
+ proof?: {
361
+ mode: "web" | "api" | "cli";
362
+ web?: {
363
+ url: string;
364
+ waitForSelector?: string | undefined;
365
+ assertText?: string | undefined;
366
+ } | undefined;
367
+ api?: {
368
+ healthUrl: string;
369
+ timeout?: number | undefined;
370
+ } | undefined;
371
+ cli?: {
372
+ command: string;
373
+ assertStdout?: string | undefined;
374
+ assertRegex?: string | undefined;
375
+ } | undefined;
376
+ } | undefined;
377
+ port?: number | undefined;
378
+ services?: Record<string, {
379
+ proof?: {
380
+ mode: "web" | "api" | "cli";
381
+ web?: {
382
+ url: string;
383
+ waitForSelector?: string | undefined;
384
+ assertText?: string | undefined;
385
+ } | undefined;
386
+ api?: {
387
+ healthUrl: string;
388
+ timeout?: number | undefined;
389
+ } | undefined;
390
+ cli?: {
391
+ command: string;
392
+ assertStdout?: string | undefined;
393
+ assertRegex?: string | undefined;
394
+ } | undefined;
395
+ } | undefined;
396
+ port?: number | undefined;
397
+ }> | undefined;
398
+ }, {
399
+ commands?: {
400
+ install?: string | undefined;
401
+ build?: string | undefined;
402
+ test?: string | undefined;
403
+ run?: string | undefined;
404
+ } | undefined;
405
+ proof?: {
406
+ mode: "web" | "api" | "cli";
407
+ web?: {
408
+ url: string;
409
+ waitForSelector?: string | undefined;
410
+ assertText?: string | undefined;
411
+ } | undefined;
412
+ api?: {
413
+ healthUrl: string;
414
+ timeout?: number | undefined;
415
+ } | undefined;
416
+ cli?: {
417
+ command: string;
418
+ assertStdout?: string | undefined;
419
+ assertRegex?: string | undefined;
420
+ } | undefined;
421
+ } | undefined;
422
+ port?: number | undefined;
423
+ services?: Record<string, {
424
+ proof?: {
425
+ mode: "web" | "api" | "cli";
426
+ web?: {
427
+ url: string;
428
+ waitForSelector?: string | undefined;
429
+ assertText?: string | undefined;
430
+ } | undefined;
431
+ api?: {
432
+ healthUrl: string;
433
+ timeout?: number | undefined;
434
+ } | undefined;
435
+ cli?: {
436
+ command: string;
437
+ assertStdout?: string | undefined;
438
+ assertRegex?: string | undefined;
439
+ } | undefined;
440
+ } | undefined;
441
+ port?: number | undefined;
442
+ }> | undefined;
443
+ }>;
444
+ export type RepoConfigOverride = z.infer<typeof RepoConfigOverrideSchema>;
445
+ export declare const WorkspaceSchema: z.ZodObject<{
446
+ id: z.ZodString;
447
+ name: z.ZodString;
448
+ scanPath: z.ZodString;
449
+ github: z.ZodOptional<z.ZodObject<{
450
+ accessToken: z.ZodString;
451
+ username: z.ZodString;
452
+ tokenScope: z.ZodDefault<z.ZodString>;
453
+ expiresAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
454
+ }, "strip", z.ZodTypeAny, {
455
+ accessToken: string;
456
+ username: string;
457
+ tokenScope: string;
458
+ expiresAt: string | null;
459
+ }, {
460
+ accessToken: string;
461
+ username: string;
462
+ tokenScope?: string | undefined;
463
+ expiresAt?: string | null | undefined;
464
+ }>>;
465
+ gitlab: z.ZodOptional<z.ZodObject<{
466
+ accessToken: z.ZodString;
467
+ refreshToken: z.ZodOptional<z.ZodString>;
468
+ username: z.ZodString;
469
+ tokenScope: z.ZodDefault<z.ZodString>;
470
+ expiresAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
471
+ }, "strip", z.ZodTypeAny, {
472
+ accessToken: string;
473
+ username: string;
474
+ tokenScope: string;
475
+ expiresAt: string | null;
476
+ refreshToken?: string | undefined;
477
+ }, {
478
+ accessToken: string;
479
+ username: string;
480
+ tokenScope?: string | undefined;
481
+ expiresAt?: string | null | undefined;
482
+ refreshToken?: string | undefined;
483
+ }>>;
484
+ repoConfigs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
485
+ proof: z.ZodOptional<z.ZodObject<{
486
+ mode: z.ZodEnum<["web", "api", "cli"]>;
487
+ web: z.ZodOptional<z.ZodObject<{
488
+ url: z.ZodString;
489
+ waitForSelector: z.ZodOptional<z.ZodString>;
490
+ assertText: z.ZodOptional<z.ZodString>;
491
+ }, "strip", z.ZodTypeAny, {
492
+ url: string;
493
+ waitForSelector?: string | undefined;
494
+ assertText?: string | undefined;
495
+ }, {
496
+ url: string;
497
+ waitForSelector?: string | undefined;
498
+ assertText?: string | undefined;
499
+ }>>;
500
+ api: z.ZodOptional<z.ZodObject<{
501
+ healthUrl: z.ZodString;
502
+ timeout: z.ZodOptional<z.ZodNumber>;
503
+ }, "strip", z.ZodTypeAny, {
504
+ healthUrl: string;
505
+ timeout?: number | undefined;
506
+ }, {
507
+ healthUrl: string;
508
+ timeout?: number | undefined;
509
+ }>>;
510
+ cli: z.ZodOptional<z.ZodObject<{
511
+ command: z.ZodString;
512
+ assertStdout: z.ZodOptional<z.ZodString>;
513
+ assertRegex: z.ZodOptional<z.ZodString>;
514
+ }, "strip", z.ZodTypeAny, {
515
+ command: string;
516
+ assertStdout?: string | undefined;
517
+ assertRegex?: string | undefined;
518
+ }, {
519
+ command: string;
520
+ assertStdout?: string | undefined;
521
+ assertRegex?: string | undefined;
522
+ }>>;
523
+ }, "strip", z.ZodTypeAny, {
524
+ mode: "web" | "api" | "cli";
525
+ web?: {
526
+ url: string;
527
+ waitForSelector?: string | undefined;
528
+ assertText?: string | undefined;
529
+ } | undefined;
530
+ api?: {
531
+ healthUrl: string;
532
+ timeout?: number | undefined;
533
+ } | undefined;
534
+ cli?: {
535
+ command: string;
536
+ assertStdout?: string | undefined;
537
+ assertRegex?: string | undefined;
538
+ } | undefined;
539
+ }, {
540
+ mode: "web" | "api" | "cli";
541
+ web?: {
542
+ url: string;
543
+ waitForSelector?: string | undefined;
544
+ assertText?: string | undefined;
545
+ } | undefined;
546
+ api?: {
547
+ healthUrl: string;
548
+ timeout?: number | undefined;
549
+ } | undefined;
550
+ cli?: {
551
+ command: string;
552
+ assertStdout?: string | undefined;
553
+ assertRegex?: string | undefined;
554
+ } | undefined;
555
+ }>>;
556
+ port: z.ZodOptional<z.ZodNumber>;
557
+ commands: z.ZodOptional<z.ZodObject<{
558
+ install: z.ZodOptional<z.ZodString>;
559
+ build: z.ZodOptional<z.ZodString>;
560
+ test: z.ZodOptional<z.ZodString>;
561
+ run: z.ZodOptional<z.ZodString>;
562
+ }, "strip", z.ZodTypeAny, {
563
+ install?: string | undefined;
564
+ build?: string | undefined;
565
+ test?: string | undefined;
566
+ run?: string | undefined;
567
+ }, {
568
+ install?: string | undefined;
569
+ build?: string | undefined;
570
+ test?: string | undefined;
571
+ run?: string | undefined;
572
+ }>>;
573
+ services: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
574
+ proof: z.ZodOptional<z.ZodObject<{
575
+ mode: z.ZodEnum<["web", "api", "cli"]>;
576
+ web: z.ZodOptional<z.ZodObject<{
577
+ url: z.ZodString;
578
+ waitForSelector: z.ZodOptional<z.ZodString>;
579
+ assertText: z.ZodOptional<z.ZodString>;
580
+ }, "strip", z.ZodTypeAny, {
581
+ url: string;
582
+ waitForSelector?: string | undefined;
583
+ assertText?: string | undefined;
584
+ }, {
585
+ url: string;
586
+ waitForSelector?: string | undefined;
587
+ assertText?: string | undefined;
588
+ }>>;
589
+ api: z.ZodOptional<z.ZodObject<{
590
+ healthUrl: z.ZodString;
591
+ timeout: z.ZodOptional<z.ZodNumber>;
592
+ }, "strip", z.ZodTypeAny, {
593
+ healthUrl: string;
594
+ timeout?: number | undefined;
595
+ }, {
596
+ healthUrl: string;
597
+ timeout?: number | undefined;
598
+ }>>;
599
+ cli: z.ZodOptional<z.ZodObject<{
600
+ command: z.ZodString;
601
+ assertStdout: z.ZodOptional<z.ZodString>;
602
+ assertRegex: z.ZodOptional<z.ZodString>;
603
+ }, "strip", z.ZodTypeAny, {
604
+ command: string;
605
+ assertStdout?: string | undefined;
606
+ assertRegex?: string | undefined;
607
+ }, {
608
+ command: string;
609
+ assertStdout?: string | undefined;
610
+ assertRegex?: string | undefined;
611
+ }>>;
612
+ }, "strip", z.ZodTypeAny, {
613
+ mode: "web" | "api" | "cli";
614
+ web?: {
615
+ url: string;
616
+ waitForSelector?: string | undefined;
617
+ assertText?: string | undefined;
618
+ } | undefined;
619
+ api?: {
620
+ healthUrl: string;
621
+ timeout?: number | undefined;
622
+ } | undefined;
623
+ cli?: {
624
+ command: string;
625
+ assertStdout?: string | undefined;
626
+ assertRegex?: string | undefined;
627
+ } | undefined;
628
+ }, {
629
+ mode: "web" | "api" | "cli";
630
+ web?: {
631
+ url: string;
632
+ waitForSelector?: string | undefined;
633
+ assertText?: string | undefined;
634
+ } | undefined;
635
+ api?: {
636
+ healthUrl: string;
637
+ timeout?: number | undefined;
638
+ } | undefined;
639
+ cli?: {
640
+ command: string;
641
+ assertStdout?: string | undefined;
642
+ assertRegex?: string | undefined;
643
+ } | undefined;
644
+ }>>;
645
+ port: z.ZodOptional<z.ZodNumber>;
646
+ }, "strip", z.ZodTypeAny, {
647
+ proof?: {
648
+ mode: "web" | "api" | "cli";
649
+ web?: {
650
+ url: string;
651
+ waitForSelector?: string | undefined;
652
+ assertText?: string | undefined;
653
+ } | undefined;
654
+ api?: {
655
+ healthUrl: string;
656
+ timeout?: number | undefined;
657
+ } | undefined;
658
+ cli?: {
659
+ command: string;
660
+ assertStdout?: string | undefined;
661
+ assertRegex?: string | undefined;
662
+ } | undefined;
663
+ } | undefined;
664
+ port?: number | undefined;
665
+ }, {
666
+ proof?: {
667
+ mode: "web" | "api" | "cli";
668
+ web?: {
669
+ url: string;
670
+ waitForSelector?: string | undefined;
671
+ assertText?: string | undefined;
672
+ } | undefined;
673
+ api?: {
674
+ healthUrl: string;
675
+ timeout?: number | undefined;
676
+ } | undefined;
677
+ cli?: {
678
+ command: string;
679
+ assertStdout?: string | undefined;
680
+ assertRegex?: string | undefined;
681
+ } | undefined;
682
+ } | undefined;
683
+ port?: number | undefined;
684
+ }>>>;
685
+ }, "strip", z.ZodTypeAny, {
686
+ commands?: {
687
+ install?: string | undefined;
688
+ build?: string | undefined;
689
+ test?: string | undefined;
690
+ run?: string | undefined;
691
+ } | undefined;
692
+ proof?: {
693
+ mode: "web" | "api" | "cli";
694
+ web?: {
695
+ url: string;
696
+ waitForSelector?: string | undefined;
697
+ assertText?: string | undefined;
698
+ } | undefined;
699
+ api?: {
700
+ healthUrl: string;
701
+ timeout?: number | undefined;
702
+ } | undefined;
703
+ cli?: {
704
+ command: string;
705
+ assertStdout?: string | undefined;
706
+ assertRegex?: string | undefined;
707
+ } | undefined;
708
+ } | undefined;
709
+ port?: number | undefined;
710
+ services?: Record<string, {
711
+ proof?: {
712
+ mode: "web" | "api" | "cli";
713
+ web?: {
714
+ url: string;
715
+ waitForSelector?: string | undefined;
716
+ assertText?: string | undefined;
717
+ } | undefined;
718
+ api?: {
719
+ healthUrl: string;
720
+ timeout?: number | undefined;
721
+ } | undefined;
722
+ cli?: {
723
+ command: string;
724
+ assertStdout?: string | undefined;
725
+ assertRegex?: string | undefined;
726
+ } | undefined;
727
+ } | undefined;
728
+ port?: number | undefined;
729
+ }> | undefined;
730
+ }, {
731
+ commands?: {
732
+ install?: string | undefined;
733
+ build?: string | undefined;
734
+ test?: string | undefined;
735
+ run?: string | undefined;
736
+ } | undefined;
737
+ proof?: {
738
+ mode: "web" | "api" | "cli";
739
+ web?: {
740
+ url: string;
741
+ waitForSelector?: string | undefined;
742
+ assertText?: string | undefined;
743
+ } | undefined;
744
+ api?: {
745
+ healthUrl: string;
746
+ timeout?: number | undefined;
747
+ } | undefined;
748
+ cli?: {
749
+ command: string;
750
+ assertStdout?: string | undefined;
751
+ assertRegex?: string | undefined;
752
+ } | undefined;
753
+ } | undefined;
754
+ port?: number | undefined;
755
+ services?: Record<string, {
756
+ proof?: {
757
+ mode: "web" | "api" | "cli";
758
+ web?: {
759
+ url: string;
760
+ waitForSelector?: string | undefined;
761
+ assertText?: string | undefined;
762
+ } | undefined;
763
+ api?: {
764
+ healthUrl: string;
765
+ timeout?: number | undefined;
766
+ } | undefined;
767
+ cli?: {
768
+ command: string;
769
+ assertStdout?: string | undefined;
770
+ assertRegex?: string | undefined;
771
+ } | undefined;
772
+ } | undefined;
773
+ port?: number | undefined;
774
+ }> | undefined;
775
+ }>>>;
776
+ claudePermissionMode: z.ZodOptional<z.ZodNullable<z.ZodEnum<["autonomous", "read-only"]>>>;
777
+ createdAt: z.ZodString;
778
+ updatedAt: z.ZodOptional<z.ZodString>;
779
+ }, "strip", z.ZodTypeAny, {
780
+ id: string;
781
+ name: string;
782
+ scanPath: string;
783
+ createdAt: string;
784
+ github?: {
785
+ accessToken: string;
786
+ username: string;
787
+ tokenScope: string;
788
+ expiresAt: string | null;
789
+ } | undefined;
790
+ gitlab?: {
791
+ accessToken: string;
792
+ username: string;
793
+ tokenScope: string;
794
+ expiresAt: string | null;
795
+ refreshToken?: string | undefined;
796
+ } | undefined;
797
+ repoConfigs?: Record<string, {
798
+ commands?: {
799
+ install?: string | undefined;
800
+ build?: string | undefined;
801
+ test?: string | undefined;
802
+ run?: string | undefined;
803
+ } | undefined;
804
+ proof?: {
805
+ mode: "web" | "api" | "cli";
806
+ web?: {
807
+ url: string;
808
+ waitForSelector?: string | undefined;
809
+ assertText?: string | undefined;
810
+ } | undefined;
811
+ api?: {
812
+ healthUrl: string;
813
+ timeout?: number | undefined;
814
+ } | undefined;
815
+ cli?: {
816
+ command: string;
817
+ assertStdout?: string | undefined;
818
+ assertRegex?: string | undefined;
819
+ } | undefined;
820
+ } | undefined;
821
+ port?: number | undefined;
822
+ services?: Record<string, {
823
+ proof?: {
824
+ mode: "web" | "api" | "cli";
825
+ web?: {
826
+ url: string;
827
+ waitForSelector?: string | undefined;
828
+ assertText?: string | undefined;
829
+ } | undefined;
830
+ api?: {
831
+ healthUrl: string;
832
+ timeout?: number | undefined;
833
+ } | undefined;
834
+ cli?: {
835
+ command: string;
836
+ assertStdout?: string | undefined;
837
+ assertRegex?: string | undefined;
838
+ } | undefined;
839
+ } | undefined;
840
+ port?: number | undefined;
841
+ }> | undefined;
842
+ }> | undefined;
843
+ claudePermissionMode?: "autonomous" | "read-only" | null | undefined;
844
+ updatedAt?: string | undefined;
845
+ }, {
846
+ id: string;
847
+ name: string;
848
+ scanPath: string;
849
+ createdAt: string;
850
+ github?: {
851
+ accessToken: string;
852
+ username: string;
853
+ tokenScope?: string | undefined;
854
+ expiresAt?: string | null | undefined;
855
+ } | undefined;
856
+ gitlab?: {
857
+ accessToken: string;
858
+ username: string;
859
+ tokenScope?: string | undefined;
860
+ expiresAt?: string | null | undefined;
861
+ refreshToken?: string | undefined;
862
+ } | undefined;
863
+ repoConfigs?: Record<string, {
864
+ commands?: {
865
+ install?: string | undefined;
866
+ build?: string | undefined;
867
+ test?: string | undefined;
868
+ run?: string | undefined;
869
+ } | undefined;
870
+ proof?: {
871
+ mode: "web" | "api" | "cli";
872
+ web?: {
873
+ url: string;
874
+ waitForSelector?: string | undefined;
875
+ assertText?: string | undefined;
876
+ } | undefined;
877
+ api?: {
878
+ healthUrl: string;
879
+ timeout?: number | undefined;
880
+ } | undefined;
881
+ cli?: {
882
+ command: string;
883
+ assertStdout?: string | undefined;
884
+ assertRegex?: string | undefined;
885
+ } | undefined;
886
+ } | undefined;
887
+ port?: number | undefined;
888
+ services?: Record<string, {
889
+ proof?: {
890
+ mode: "web" | "api" | "cli";
891
+ web?: {
892
+ url: string;
893
+ waitForSelector?: string | undefined;
894
+ assertText?: string | undefined;
895
+ } | undefined;
896
+ api?: {
897
+ healthUrl: string;
898
+ timeout?: number | undefined;
899
+ } | undefined;
900
+ cli?: {
901
+ command: string;
902
+ assertStdout?: string | undefined;
903
+ assertRegex?: string | undefined;
904
+ } | undefined;
905
+ } | undefined;
906
+ port?: number | undefined;
907
+ }> | undefined;
908
+ }> | undefined;
909
+ claudePermissionMode?: "autonomous" | "read-only" | null | undefined;
910
+ updatedAt?: string | undefined;
911
+ }>;
912
+ export type Workspace = z.infer<typeof WorkspaceSchema>;
913
+ export declare class WorkspaceManager {
914
+ private data;
915
+ private encryption;
916
+ constructor();
917
+ private load;
918
+ private save;
919
+ getAll(): Workspace[];
920
+ get(id: string): Workspace | undefined;
921
+ create(name: string, scanPath: string): Workspace;
922
+ update(id: string, updates: Partial<Pick<Workspace, 'name' | 'scanPath' | 'claudePermissionMode'>>): Workspace;
923
+ delete(id: string): boolean;
924
+ setGitHubToken(workspaceId: string, accessToken: string, username: string, scope?: string): void;
925
+ getGitHubToken(workspaceId: string): string | null;
926
+ getGitHubCredentials(workspaceId: string): Omit<GitHubCredentials, 'accessToken'> | null;
927
+ clearGitHubToken(workspaceId: string): void;
928
+ setGitLabToken(workspaceId: string, accessToken: string, username: string, scope?: string, refreshToken?: string, expiresAt?: string | null): void;
929
+ getGitLabToken(workspaceId: string): {
930
+ accessToken: string;
931
+ refreshToken?: string;
932
+ } | null;
933
+ getGitLabCredentials(workspaceId: string): Omit<GitLabCredentials, 'accessToken' | 'refreshToken'> | null;
934
+ clearGitLabToken(workspaceId: string): void;
935
+ setRepoConfig(workspaceId: string, repoId: string, config: RepoConfigOverride): void;
936
+ getRepoConfig(workspaceId: string, repoId: string): RepoConfigOverride | null;
937
+ deleteRepoConfig(workspaceId: string, repoId: string): boolean;
938
+ setServiceConfig(workspaceId: string, repoId: string, serviceId: string, config: ServiceConfigOverride): void;
939
+ getServiceConfig(workspaceId: string, repoId: string, serviceId: string): ServiceConfigOverride | null;
940
+ deleteServiceConfig(workspaceId: string, repoId: string, serviceId: string): boolean;
941
+ getWorkspaceForRepo(repoPath: string): Workspace | null;
942
+ /**
943
+ * Get git credentials for a repository path.
944
+ * Looks up the workspace containing the repo and returns any OAuth tokens.
945
+ *
946
+ * @param repoPath - The path to the repository
947
+ * @returns Object with platform, token, and username; or null values if no credentials
948
+ */
949
+ getGitCredentialsForRepo(repoPath: string): {
950
+ platform: 'github' | 'gitlab' | null;
951
+ token: string | null;
952
+ username: string | null;
953
+ };
954
+ migrateFromScanPaths(scanPaths: string[]): {
955
+ created: string[];
956
+ skipped: string[];
957
+ };
958
+ }
959
+ export declare const workspaceManager: WorkspaceManager;
960
+ export {};
961
+ //# sourceMappingURL=workspaces.d.ts.map