@burdenoff/vibe-agent 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 (100) hide show
  1. package/.env.example +8 -0
  2. package/LICENSE +22 -0
  3. package/README.md +290 -0
  4. package/dist/app.d.ts +15 -0
  5. package/dist/app.d.ts.map +1 -0
  6. package/dist/app.js +445 -0
  7. package/dist/app.js.map +1 -0
  8. package/dist/cli.d.ts +3 -0
  9. package/dist/cli.d.ts.map +1 -0
  10. package/dist/cli.js +1043 -0
  11. package/dist/cli.js.map +1 -0
  12. package/dist/db/schema.d.ts +145 -0
  13. package/dist/db/schema.d.ts.map +1 -0
  14. package/dist/db/schema.js +536 -0
  15. package/dist/db/schema.js.map +1 -0
  16. package/dist/index.d.ts +2 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +61 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/middleware/ModuleAuth.d.ts +61 -0
  21. package/dist/middleware/ModuleAuth.d.ts.map +1 -0
  22. package/dist/middleware/ModuleAuth.js +220 -0
  23. package/dist/middleware/ModuleAuth.js.map +1 -0
  24. package/dist/middleware/auth.d.ts +3 -0
  25. package/dist/middleware/auth.d.ts.map +1 -0
  26. package/dist/middleware/auth.js +11 -0
  27. package/dist/middleware/auth.js.map +1 -0
  28. package/dist/migrations/remove-notes-prompts.d.ts +13 -0
  29. package/dist/migrations/remove-notes-prompts.d.ts.map +1 -0
  30. package/dist/migrations/remove-notes-prompts.js +148 -0
  31. package/dist/migrations/remove-notes-prompts.js.map +1 -0
  32. package/dist/routes/bookmarks.d.ts +3 -0
  33. package/dist/routes/bookmarks.d.ts.map +1 -0
  34. package/dist/routes/bookmarks.js +186 -0
  35. package/dist/routes/bookmarks.js.map +1 -0
  36. package/dist/routes/config.d.ts +3 -0
  37. package/dist/routes/config.d.ts.map +1 -0
  38. package/dist/routes/config.js +108 -0
  39. package/dist/routes/config.js.map +1 -0
  40. package/dist/routes/files.d.ts +3 -0
  41. package/dist/routes/files.d.ts.map +1 -0
  42. package/dist/routes/files.js +471 -0
  43. package/dist/routes/files.js.map +1 -0
  44. package/dist/routes/git.d.ts +3 -0
  45. package/dist/routes/git.d.ts.map +1 -0
  46. package/dist/routes/git.js +498 -0
  47. package/dist/routes/git.js.map +1 -0
  48. package/dist/routes/moduleRegistry.d.ts +41 -0
  49. package/dist/routes/moduleRegistry.d.ts.map +1 -0
  50. package/dist/routes/moduleRegistry.js +356 -0
  51. package/dist/routes/moduleRegistry.js.map +1 -0
  52. package/dist/routes/notifications.d.ts +3 -0
  53. package/dist/routes/notifications.d.ts.map +1 -0
  54. package/dist/routes/notifications.js +250 -0
  55. package/dist/routes/notifications.js.map +1 -0
  56. package/dist/routes/port-forward.d.ts +3 -0
  57. package/dist/routes/port-forward.d.ts.map +1 -0
  58. package/dist/routes/port-forward.js +205 -0
  59. package/dist/routes/port-forward.js.map +1 -0
  60. package/dist/routes/projects.d.ts +3 -0
  61. package/dist/routes/projects.d.ts.map +1 -0
  62. package/dist/routes/projects.js +442 -0
  63. package/dist/routes/projects.js.map +1 -0
  64. package/dist/routes/ssh.d.ts +3 -0
  65. package/dist/routes/ssh.d.ts.map +1 -0
  66. package/dist/routes/ssh.js +192 -0
  67. package/dist/routes/ssh.js.map +1 -0
  68. package/dist/routes/tasks.d.ts +3 -0
  69. package/dist/routes/tasks.d.ts.map +1 -0
  70. package/dist/routes/tasks.js +183 -0
  71. package/dist/routes/tasks.js.map +1 -0
  72. package/dist/routes/tmux.d.ts +3 -0
  73. package/dist/routes/tmux.d.ts.map +1 -0
  74. package/dist/routes/tmux.js +1191 -0
  75. package/dist/routes/tmux.js.map +1 -0
  76. package/dist/routes/tunnel.d.ts +25 -0
  77. package/dist/routes/tunnel.d.ts.map +1 -0
  78. package/dist/routes/tunnel.js +449 -0
  79. package/dist/routes/tunnel.js.map +1 -0
  80. package/dist/services/ModulePermissions.d.ts +100 -0
  81. package/dist/services/ModulePermissions.d.ts.map +1 -0
  82. package/dist/services/ModulePermissions.js +312 -0
  83. package/dist/services/ModulePermissions.js.map +1 -0
  84. package/dist/services/ModuleRegistryService.d.ts +152 -0
  85. package/dist/services/ModuleRegistryService.d.ts.map +1 -0
  86. package/dist/services/ModuleRegistryService.js +522 -0
  87. package/dist/services/ModuleRegistryService.js.map +1 -0
  88. package/dist/services/agent.service.d.ts +19 -0
  89. package/dist/services/agent.service.d.ts.map +1 -0
  90. package/dist/services/agent.service.js +88 -0
  91. package/dist/services/agent.service.js.map +1 -0
  92. package/dist/services/bootstrap.d.ts +22 -0
  93. package/dist/services/bootstrap.d.ts.map +1 -0
  94. package/dist/services/bootstrap.js +206 -0
  95. package/dist/services/bootstrap.js.map +1 -0
  96. package/dist/services/service-manager.d.ts +50 -0
  97. package/dist/services/service-manager.d.ts.map +1 -0
  98. package/dist/services/service-manager.js +382 -0
  99. package/dist/services/service-manager.js.map +1 -0
  100. package/package.json +107 -0
@@ -0,0 +1,498 @@
1
+ import { v4 as uuidv4 } from 'uuid';
2
+ import { promises as fs, readFileSync } from 'fs';
3
+ import path from 'path';
4
+ export const gitRoutes = async (fastify) => {
5
+ // Get all git repositories
6
+ fastify.get('/', async (_request, _reply) => {
7
+ const repositories = fastify.db.getAllGitRepositories();
8
+ return { repositories };
9
+ });
10
+ // Get repository by ID
11
+ fastify.get('/:id', async (request, reply) => {
12
+ const { id } = request.params;
13
+ const repository = fastify.db.getGitRepository(id);
14
+ if (!repository) {
15
+ return reply.code(404).send({ error: 'Repository not found' });
16
+ }
17
+ return { repository };
18
+ });
19
+ // Scan directory for git repositories
20
+ fastify.post('/scan', async (request, reply) => {
21
+ const { directory, includeSubmodules = true } = request.body;
22
+ try {
23
+ // Validate directory exists
24
+ const stats = await fs.stat(directory);
25
+ if (!stats.isDirectory()) {
26
+ return reply.code(400).send({ error: 'Path is not a directory' });
27
+ }
28
+ const repositories = await scanForGitRepositories(directory, includeSubmodules);
29
+ // Save repositories to database
30
+ const savedRepos = [];
31
+ for (const repo of repositories) {
32
+ const existing = fastify.db.getGitRepositoryByPath(repo.path);
33
+ if (existing) {
34
+ // Update existing repository
35
+ fastify.db.updateGitRepository(existing.id, repo);
36
+ savedRepos.push({ ...existing, ...repo });
37
+ }
38
+ else {
39
+ // Create new repository
40
+ const newRepo = fastify.db.createGitRepository({
41
+ id: uuidv4(),
42
+ ...repo
43
+ });
44
+ savedRepos.push(newRepo);
45
+ }
46
+ }
47
+ // Emit scan complete event
48
+ fastify.io.emit('git:scan-complete', {
49
+ directory,
50
+ count: savedRepos.length
51
+ });
52
+ return {
53
+ repositories: savedRepos,
54
+ scannedPath: directory,
55
+ totalFound: savedRepos.length
56
+ };
57
+ }
58
+ catch (error) {
59
+ return reply.code(500).send({
60
+ error: 'Failed to scan directory',
61
+ details: error instanceof Error ? error.message : 'Unknown error'
62
+ });
63
+ }
64
+ });
65
+ // Scan remote directory via SSH
66
+ fastify.post('/scan-remote', async (request, reply) => {
67
+ const { connectionId, directory, includeSubmodules = true } = request.body;
68
+ try {
69
+ const connectionConfig = fastify.db.getSSHConnection(connectionId);
70
+ if (!connectionConfig) {
71
+ return reply.code(404).send({ error: 'SSH connection not found' });
72
+ }
73
+ // Use SSH to scan remote directory
74
+ const { Client } = await import('ssh2');
75
+ const conn = new Client();
76
+ return new Promise((resolve) => {
77
+ conn.on('ready', () => {
78
+ // Command to find git repositories
79
+ const findCommand = includeSubmodules
80
+ ? `find ${directory} -name ".git" -type d 2>/dev/null | sed 's/\\/.git$//'`
81
+ : `find ${directory} -maxdepth 2 -name ".git" -type d 2>/dev/null | sed 's/\\/.git$//'`;
82
+ conn.exec(findCommand, (err, stream) => {
83
+ if (err) {
84
+ conn.end();
85
+ return resolve(reply.code(500).send({
86
+ error: 'Failed to execute remote command',
87
+ details: err.message
88
+ }));
89
+ }
90
+ let output = '';
91
+ stream.on('data', (data) => {
92
+ output += data.toString();
93
+ });
94
+ stream.on('close', async () => {
95
+ conn.end();
96
+ const paths = output.split('\n').filter(p => p.trim());
97
+ const repositories = [];
98
+ for (const repoPath of paths) {
99
+ const name = path.basename(repoPath);
100
+ const parentPath = paths.find(p => p !== repoPath && repoPath.startsWith(p + '/'));
101
+ repositories.push({
102
+ path: repoPath,
103
+ name,
104
+ parentPath: parentPath || undefined,
105
+ isSubmodule: !!parentPath,
106
+ projectType: await detectProjectType(repoPath, true)
107
+ });
108
+ }
109
+ resolve({
110
+ repositories,
111
+ scannedPath: directory,
112
+ connectionId,
113
+ totalFound: repositories.length
114
+ });
115
+ });
116
+ });
117
+ });
118
+ conn.on('error', (err) => {
119
+ resolve(reply.code(500).send({
120
+ error: 'SSH connection failed',
121
+ details: err.message
122
+ }));
123
+ });
124
+ // Connect with appropriate auth
125
+ const connectConfig = {
126
+ host: connectionConfig.host,
127
+ port: connectionConfig.port,
128
+ username: connectionConfig.username,
129
+ };
130
+ if (connectionConfig.privateKeyPath) {
131
+ connectConfig.privateKey = readFileSync(connectionConfig.privateKeyPath);
132
+ }
133
+ else if (connectionConfig.password) {
134
+ connectConfig.password = connectionConfig.password;
135
+ }
136
+ conn.connect(connectConfig);
137
+ });
138
+ }
139
+ catch (error) {
140
+ return reply.code(500).send({
141
+ error: 'Failed to scan remote directory',
142
+ details: error instanceof Error ? error.message : 'Unknown error'
143
+ });
144
+ }
145
+ });
146
+ // Update repository metadata
147
+ fastify.put('/:id', async (request, reply) => {
148
+ const { id } = request.params;
149
+ const updates = request.body;
150
+ try {
151
+ const repository = fastify.db.getGitRepository(id);
152
+ if (!repository) {
153
+ return reply.code(404).send({ error: 'Repository not found' });
154
+ }
155
+ fastify.db.updateGitRepository(id, updates);
156
+ return { success: true };
157
+ }
158
+ catch (error) {
159
+ return reply.code(500).send({
160
+ error: 'Failed to update repository',
161
+ details: error instanceof Error ? error.message : 'Unknown error'
162
+ });
163
+ }
164
+ });
165
+ // Delete repository from tracking
166
+ fastify.delete('/:id', async (request, reply) => {
167
+ const { id } = request.params;
168
+ try {
169
+ const repository = fastify.db.getGitRepository(id);
170
+ if (!repository) {
171
+ return reply.code(404).send({ error: 'Repository not found' });
172
+ }
173
+ fastify.db.deleteGitRepository(id);
174
+ return { success: true };
175
+ }
176
+ catch (error) {
177
+ return reply.code(500).send({
178
+ error: 'Failed to delete repository',
179
+ details: error instanceof Error ? error.message : 'Unknown error'
180
+ });
181
+ }
182
+ });
183
+ // Fix repository hierarchy
184
+ fastify.post('/fix-hierarchy', async (_request, reply) => {
185
+ try {
186
+ const repositories = fastify.db.getAllGitRepositories();
187
+ let fixed = 0;
188
+ for (const repo of repositories) {
189
+ // Check if this repo is inside another repo
190
+ const parentRepo = repositories.find(r => r.path !== repo.path &&
191
+ repo.path.startsWith(r.path + '/'));
192
+ if (parentRepo && repo.parentPath !== parentRepo.path) {
193
+ fastify.db.updateGitRepository(repo.id, {
194
+ parentPath: parentRepo.path,
195
+ isSubmodule: true
196
+ });
197
+ fixed++;
198
+ }
199
+ else if (!parentRepo && (repo.parentPath || repo.isSubmodule)) {
200
+ fastify.db.updateGitRepository(repo.id, {
201
+ parentPath: undefined,
202
+ isSubmodule: false
203
+ });
204
+ fixed++;
205
+ }
206
+ }
207
+ return {
208
+ success: true,
209
+ fixed,
210
+ total: repositories.length
211
+ };
212
+ }
213
+ catch (error) {
214
+ return reply.code(500).send({
215
+ error: 'Failed to fix hierarchy',
216
+ details: error instanceof Error ? error.message : 'Unknown error'
217
+ });
218
+ }
219
+ });
220
+ };
221
+ // Helper function to scan for git repositories
222
+ async function scanForGitRepositories(directory, includeSubmodules, parentPath) {
223
+ const repositories = [];
224
+ try {
225
+ const entries = await fs.readdir(directory, { withFileTypes: true });
226
+ // Check if this directory is a git repository
227
+ const hasGit = entries.some(e => e.name === '.git' && e.isDirectory());
228
+ if (hasGit) {
229
+ const repo = {
230
+ path: directory,
231
+ name: path.basename(directory),
232
+ parentPath,
233
+ isSubmodule: !!parentPath,
234
+ projectType: await detectProjectType(directory),
235
+ vitePort: await detectVitePort(directory)
236
+ };
237
+ repositories.push(repo);
238
+ // If not including submodules, return early
239
+ if (!includeSubmodules) {
240
+ return repositories;
241
+ }
242
+ // Set this as parent for subdirectories
243
+ parentPath = directory;
244
+ }
245
+ // Check if we should skip based on .gitignore
246
+ const shouldSkip = await shouldSkipDirectory(directory);
247
+ if (shouldSkip) {
248
+ return repositories;
249
+ }
250
+ // Recursively scan subdirectories
251
+ for (const entry of entries) {
252
+ if (entry.isDirectory() &&
253
+ entry.name !== '.git' &&
254
+ entry.name !== 'node_modules' &&
255
+ entry.name !== '__pycache__' &&
256
+ entry.name !== '.venv' &&
257
+ entry.name !== 'venv' &&
258
+ entry.name !== 'dist' &&
259
+ entry.name !== 'build' &&
260
+ !entry.name.startsWith('.')) {
261
+ const subPath = path.join(directory, entry.name);
262
+ const subRepos = await scanForGitRepositories(subPath, includeSubmodules, parentPath);
263
+ repositories.push(...subRepos);
264
+ }
265
+ }
266
+ }
267
+ catch {
268
+ // Ignore permission errors
269
+ }
270
+ return repositories;
271
+ }
272
+ // Helper function to detect project type
273
+ async function detectProjectType(directory, remote = false) {
274
+ if (remote) {
275
+ // For remote, we'll need to implement SSH-based detection
276
+ return undefined;
277
+ }
278
+ try {
279
+ const entries = await fs.readdir(directory);
280
+ // Node.js project (check for specific frameworks too)
281
+ if (entries.includes('package.json')) {
282
+ // Try to detect specific Node.js frameworks
283
+ try {
284
+ const packageJson = JSON.parse(await fs.readFile(path.join(directory, 'package.json'), 'utf8'));
285
+ const deps = { ...packageJson.dependencies, ...packageJson.devDependencies };
286
+ if (deps.react || deps['@types/react'])
287
+ return 'react';
288
+ if (deps.vue || deps['@vue/cli'])
289
+ return 'vue';
290
+ if (deps.angular || deps['@angular/core'])
291
+ return 'angular';
292
+ if (deps.next || deps['@types/next'])
293
+ return 'nextjs';
294
+ if (deps.nuxt || deps['@nuxt/core'])
295
+ return 'nuxtjs';
296
+ if (deps.svelte || deps['@sveltejs/kit'])
297
+ return 'svelte';
298
+ if (deps.express || deps.fastify || deps.koa)
299
+ return 'nodejs-backend';
300
+ if (deps.electron)
301
+ return 'electron';
302
+ if (deps.gatsby)
303
+ return 'gatsby';
304
+ if (deps.vite)
305
+ return 'vite';
306
+ }
307
+ catch {
308
+ // Fallback to generic nodejs
309
+ }
310
+ return 'nodejs';
311
+ }
312
+ // Python project
313
+ if (entries.includes('setup.py') ||
314
+ entries.includes('requirements.txt') ||
315
+ entries.includes('pyproject.toml') ||
316
+ entries.includes('Pipfile') ||
317
+ entries.includes('poetry.lock') ||
318
+ entries.includes('conda.yml') ||
319
+ entries.includes('environment.yml')) {
320
+ // Try to detect specific Python frameworks
321
+ try {
322
+ if (entries.includes('manage.py'))
323
+ return 'django';
324
+ if (entries.includes('app.py') || entries.includes('application.py'))
325
+ return 'flask';
326
+ if (entries.includes('main.py'))
327
+ return 'fastapi';
328
+ if (entries.includes('streamlit_app.py'))
329
+ return 'streamlit';
330
+ if (entries.includes('requirements.txt')) {
331
+ const reqs = await fs.readFile(path.join(directory, 'requirements.txt'), 'utf8');
332
+ if (reqs.includes('django'))
333
+ return 'django';
334
+ if (reqs.includes('flask'))
335
+ return 'flask';
336
+ if (reqs.includes('fastapi'))
337
+ return 'fastapi';
338
+ if (reqs.includes('streamlit'))
339
+ return 'streamlit';
340
+ if (reqs.includes('tensorflow') || reqs.includes('pytorch'))
341
+ return 'python-ml';
342
+ if (reqs.includes('jupyter'))
343
+ return 'jupyter';
344
+ }
345
+ }
346
+ catch {
347
+ // Fallback to generic python
348
+ }
349
+ return 'python';
350
+ }
351
+ // Go project
352
+ if (entries.includes('go.mod') || entries.includes('go.sum')) {
353
+ return 'go';
354
+ }
355
+ // Rust project
356
+ if (entries.includes('Cargo.toml') || entries.includes('Cargo.lock')) {
357
+ return 'rust';
358
+ }
359
+ // Java project
360
+ if (entries.includes('pom.xml'))
361
+ return 'maven';
362
+ if (entries.includes('build.gradle') || entries.includes('build.gradle.kts'))
363
+ return 'gradle';
364
+ if (entries.some(e => e.endsWith('.java')))
365
+ return 'java';
366
+ // Ruby project
367
+ if (entries.includes('Gemfile')) {
368
+ try {
369
+ const gemfile = await fs.readFile(path.join(directory, 'Gemfile'), 'utf8');
370
+ if (gemfile.includes('rails'))
371
+ return 'rails';
372
+ if (gemfile.includes('sinatra'))
373
+ return 'sinatra';
374
+ }
375
+ catch {
376
+ // Fallback
377
+ }
378
+ return 'ruby';
379
+ }
380
+ // PHP project
381
+ if (entries.includes('composer.json')) {
382
+ try {
383
+ const composer = JSON.parse(await fs.readFile(path.join(directory, 'composer.json'), 'utf8'));
384
+ const deps = { ...composer.require, ...composer['require-dev'] };
385
+ if (deps.laravel || deps['laravel/framework'])
386
+ return 'laravel';
387
+ if (deps.symfony || deps['symfony/symfony'])
388
+ return 'symfony';
389
+ if (deps.wordpress || entries.includes('wp-config.php'))
390
+ return 'wordpress';
391
+ }
392
+ catch {
393
+ // Fallback
394
+ }
395
+ return 'php';
396
+ }
397
+ // .NET project
398
+ if (entries.some(e => e.endsWith('.csproj') || e.endsWith('.sln') || e.endsWith('.fsproj') || e.endsWith('.vbproj'))) {
399
+ return 'dotnet';
400
+ }
401
+ // C/C++ project
402
+ if (entries.includes('CMakeLists.txt') || entries.includes('Makefile') ||
403
+ entries.some(e => e.endsWith('.c') || e.endsWith('.cpp') || e.endsWith('.h') || e.endsWith('.hpp'))) {
404
+ return 'cpp';
405
+ }
406
+ // Swift project
407
+ if (entries.includes('Package.swift') || entries.some(e => e.endsWith('.xcodeproj') || e.endsWith('.xcworkspace'))) {
408
+ return 'swift';
409
+ }
410
+ // Kotlin project
411
+ if (entries.some(e => e.endsWith('.kt') || e.endsWith('.kts'))) {
412
+ return 'kotlin';
413
+ }
414
+ // Scala project
415
+ if (entries.includes('build.sbt') || entries.some(e => e.endsWith('.scala'))) {
416
+ return 'scala';
417
+ }
418
+ // R project
419
+ if (entries.includes('DESCRIPTION') || entries.some(e => e.endsWith('.R') || e.endsWith('.Rmd'))) {
420
+ return 'r';
421
+ }
422
+ // Dart/Flutter project
423
+ if (entries.includes('pubspec.yaml')) {
424
+ return 'flutter';
425
+ }
426
+ // Unity project
427
+ if (entries.includes('ProjectSettings') && entries.includes('Assets')) {
428
+ return 'unity';
429
+ }
430
+ // Docker project
431
+ if (entries.includes('Dockerfile') || entries.includes('docker-compose.yml')) {
432
+ return 'docker';
433
+ }
434
+ // Terraform project
435
+ if (entries.some(e => e.endsWith('.tf') || e.endsWith('.tfvars'))) {
436
+ return 'terraform';
437
+ }
438
+ // Documentation/Static sites
439
+ if (entries.includes('_config.yml'))
440
+ return 'jekyll';
441
+ if (entries.includes('mkdocs.yml'))
442
+ return 'mkdocs';
443
+ if (entries.includes('docusaurus.config.js'))
444
+ return 'docusaurus';
445
+ if (entries.includes('hugo.toml') || entries.includes('config.toml'))
446
+ return 'hugo';
447
+ }
448
+ catch {
449
+ // Ignore errors
450
+ }
451
+ return undefined;
452
+ }
453
+ // Helper function to detect Vite port
454
+ async function detectVitePort(directory) {
455
+ try {
456
+ const viteConfigPath = path.join(directory, 'vite.config.js');
457
+ const viteConfigTsPath = path.join(directory, 'vite.config.ts');
458
+ let configPath;
459
+ try {
460
+ await fs.access(viteConfigPath);
461
+ configPath = viteConfigPath;
462
+ }
463
+ catch {
464
+ try {
465
+ await fs.access(viteConfigTsPath);
466
+ configPath = viteConfigTsPath;
467
+ }
468
+ catch {
469
+ return undefined;
470
+ }
471
+ }
472
+ const content = await fs.readFile(configPath, 'utf-8');
473
+ // Look for port configuration
474
+ const portMatch = content.match(/port:\s*(\d+)/);
475
+ if (portMatch) {
476
+ return parseInt(portMatch[1], 10);
477
+ }
478
+ }
479
+ catch {
480
+ // Ignore errors
481
+ }
482
+ return undefined;
483
+ }
484
+ // Helper function to check if directory should be skipped
485
+ async function shouldSkipDirectory(directory) {
486
+ try {
487
+ // Check for .gitignore
488
+ const gitignorePath = path.join(directory, '.gitignore');
489
+ await fs.access(gitignorePath);
490
+ // For now, we'll use a simple heuristic
491
+ // In a real implementation, you'd parse .gitignore properly
492
+ return false;
493
+ }
494
+ catch {
495
+ return false;
496
+ }
497
+ }
498
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/routes/git.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { FastifyInstance } from 'fastify';
2
+ export interface RegisterModuleRequest {
3
+ name: string;
4
+ displayName: string;
5
+ version: string;
6
+ description: string;
7
+ category: string;
8
+ tags: string[];
9
+ api: {
10
+ backend: {
11
+ port: number;
12
+ endpoints: string[];
13
+ };
14
+ frontend: {
15
+ port: number;
16
+ route: string;
17
+ };
18
+ };
19
+ permissions: string[];
20
+ features: string[];
21
+ source: {
22
+ type: 'local' | 'remote' | 'marketplace' | 'container';
23
+ url?: string;
24
+ registeredAt: string;
25
+ };
26
+ }
27
+ export interface InstallModuleRequest {
28
+ moduleId: string;
29
+ source: {
30
+ type: 'remote' | 'marketplace' | 'container';
31
+ url: string;
32
+ credentials?: {
33
+ username?: string;
34
+ password?: string;
35
+ token?: string;
36
+ };
37
+ };
38
+ version?: string;
39
+ }
40
+ export declare function moduleRegistryRoutes(fastify: FastifyInstance): Promise<void>;
41
+ //# sourceMappingURL=moduleRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moduleRegistry.d.ts","sourceRoot":"","sources":["../../src/routes/moduleRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAKxE,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE;QACH,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,MAAM,EAAE,CAAC;SACrB,CAAC;QACF,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;IACF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE;QACN,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,CAAC;QACvD,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ,GAAG,aAAa,GAAG,WAAW,CAAC;QAC7C,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,CAAC,EAAE;YACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC;KACH,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,eAAe,iBA2alE"}