@agent-deck/backend 1.1.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 (166) hide show
  1. package/dist/.tsbuildinfo +1 -0
  2. package/dist/cli-runtime.d.ts +4 -0
  3. package/dist/cli-runtime.d.ts.map +1 -0
  4. package/dist/cli-runtime.js +12 -0
  5. package/dist/cli-runtime.js.map +1 -0
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +30 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/lib/agent-deck-context.d.ts +8 -0
  11. package/dist/lib/agent-deck-context.d.ts.map +1 -0
  12. package/dist/lib/agent-deck-context.js +48 -0
  13. package/dist/lib/agent-deck-context.js.map +1 -0
  14. package/dist/lib/bound-deck-scope.d.ts +15 -0
  15. package/dist/lib/bound-deck-scope.d.ts.map +1 -0
  16. package/dist/lib/bound-deck-scope.js +68 -0
  17. package/dist/lib/bound-deck-scope.js.map +1 -0
  18. package/dist/lib/client-scope.d.ts +14 -0
  19. package/dist/lib/client-scope.d.ts.map +1 -0
  20. package/dist/lib/client-scope.js +46 -0
  21. package/dist/lib/client-scope.js.map +1 -0
  22. package/dist/lib/paths.d.ts +2 -0
  23. package/dist/lib/paths.d.ts.map +1 -0
  24. package/dist/lib/paths.js +24 -0
  25. package/dist/lib/paths.js.map +1 -0
  26. package/dist/lib/version.d.ts +3 -0
  27. package/dist/lib/version.d.ts.map +1 -0
  28. package/dist/lib/version.js +20 -0
  29. package/dist/lib/version.js.map +1 -0
  30. package/dist/mcp-index.d.ts +2 -0
  31. package/dist/mcp-index.d.ts.map +1 -0
  32. package/dist/mcp-index.js +32 -0
  33. package/dist/mcp-index.js.map +1 -0
  34. package/dist/mcp-server.d.ts +25 -0
  35. package/dist/mcp-server.d.ts.map +1 -0
  36. package/dist/mcp-server.js +1121 -0
  37. package/dist/mcp-server.js.map +1 -0
  38. package/dist/mcp-stdio.d.ts +2 -0
  39. package/dist/mcp-stdio.d.ts.map +1 -0
  40. package/dist/mcp-stdio.js.map +1 -0
  41. package/dist/models/database.d.ts +64 -0
  42. package/dist/models/database.d.ts.map +1 -0
  43. package/dist/models/database.js +965 -0
  44. package/dist/models/database.js.map +1 -0
  45. package/dist/playbooks/playbook-manager.d.ts +29 -0
  46. package/dist/playbooks/playbook-manager.d.ts.map +1 -0
  47. package/dist/playbooks/playbook-manager.js +198 -0
  48. package/dist/playbooks/playbook-manager.js.map +1 -0
  49. package/dist/playbooks/playbook-parser.d.ts +8 -0
  50. package/dist/playbooks/playbook-parser.d.ts.map +1 -0
  51. package/dist/playbooks/playbook-parser.js +76 -0
  52. package/dist/playbooks/playbook-parser.js.map +1 -0
  53. package/dist/playbooks/playbook-service.d.ts +9 -0
  54. package/dist/playbooks/playbook-service.d.ts.map +1 -0
  55. package/dist/playbooks/playbook-service.js +107 -0
  56. package/dist/playbooks/playbook-service.js.map +1 -0
  57. package/dist/routes/collection.d.ts +3 -0
  58. package/dist/routes/collection.d.ts.map +1 -0
  59. package/dist/routes/collection.js +34 -0
  60. package/dist/routes/collection.js.map +1 -0
  61. package/dist/routes/credentials.d.ts +3 -0
  62. package/dist/routes/credentials.d.ts.map +1 -0
  63. package/dist/routes/credentials.js +241 -0
  64. package/dist/routes/credentials.js.map +1 -0
  65. package/dist/routes/decks.d.ts +3 -0
  66. package/dist/routes/decks.d.ts.map +1 -0
  67. package/dist/routes/decks.js +430 -0
  68. package/dist/routes/decks.js.map +1 -0
  69. package/dist/routes/local-mcp.d.ts +3 -0
  70. package/dist/routes/local-mcp.d.ts.map +1 -0
  71. package/dist/routes/local-mcp.js +189 -0
  72. package/dist/routes/local-mcp.js.map +1 -0
  73. package/dist/routes/mcp.d.ts +3 -0
  74. package/dist/routes/mcp.d.ts.map +1 -0
  75. package/dist/routes/mcp.js +170 -0
  76. package/dist/routes/mcp.js.map +1 -0
  77. package/dist/routes/oauth.d.ts +3 -0
  78. package/dist/routes/oauth.d.ts.map +1 -0
  79. package/dist/routes/oauth.js +242 -0
  80. package/dist/routes/oauth.js.map +1 -0
  81. package/dist/routes/playbooks.d.ts +5 -0
  82. package/dist/routes/playbooks.d.ts.map +1 -0
  83. package/dist/routes/playbooks.js +220 -0
  84. package/dist/routes/playbooks.js.map +1 -0
  85. package/dist/routes/scope.d.ts +3 -0
  86. package/dist/routes/scope.d.ts.map +1 -0
  87. package/dist/routes/scope.js +107 -0
  88. package/dist/routes/scope.js.map +1 -0
  89. package/dist/routes/services.d.ts +3 -0
  90. package/dist/routes/services.d.ts.map +1 -0
  91. package/dist/routes/services.js +281 -0
  92. package/dist/routes/services.js.map +1 -0
  93. package/dist/routes/websocket.d.ts +11 -0
  94. package/dist/routes/websocket.d.ts.map +1 -0
  95. package/dist/routes/websocket.js +154 -0
  96. package/dist/routes/websocket.js.map +1 -0
  97. package/dist/scope/repo-deck.d.ts +10 -0
  98. package/dist/scope/repo-deck.d.ts.map +1 -0
  99. package/dist/scope/repo-deck.js +63 -0
  100. package/dist/scope/repo-deck.js.map +1 -0
  101. package/dist/server/index.d.ts +24 -0
  102. package/dist/server/index.d.ts.map +1 -0
  103. package/dist/server/index.js +111 -0
  104. package/dist/server/index.js.map +1 -0
  105. package/dist/services/collection-warning-service.d.ts +18 -0
  106. package/dist/services/collection-warning-service.d.ts.map +1 -0
  107. package/dist/services/collection-warning-service.js +129 -0
  108. package/dist/services/collection-warning-service.js.map +1 -0
  109. package/dist/services/config-manager.d.ts +32 -0
  110. package/dist/services/config-manager.d.ts.map +1 -0
  111. package/dist/services/config-manager.js +119 -0
  112. package/dist/services/config-manager.js.map +1 -0
  113. package/dist/services/icon-resolver.d.ts +20 -0
  114. package/dist/services/icon-resolver.d.ts.map +1 -0
  115. package/dist/services/icon-resolver.js +224 -0
  116. package/dist/services/icon-resolver.js.map +1 -0
  117. package/dist/services/local-mcp-server-manager.d.ts +51 -0
  118. package/dist/services/local-mcp-server-manager.d.ts.map +1 -0
  119. package/dist/services/local-mcp-server-manager.js +246 -0
  120. package/dist/services/local-mcp-server-manager.js.map +1 -0
  121. package/dist/services/mcp-client-manager.d.ts +22 -0
  122. package/dist/services/mcp-client-manager.d.ts.map +1 -0
  123. package/dist/services/mcp-client-manager.js +257 -0
  124. package/dist/services/mcp-client-manager.js.map +1 -0
  125. package/dist/services/mcp-discovery-service.d.ts +31 -0
  126. package/dist/services/mcp-discovery-service.d.ts.map +1 -0
  127. package/dist/services/mcp-discovery-service.js +164 -0
  128. package/dist/services/mcp-discovery-service.js.map +1 -0
  129. package/dist/services/oauth-manager.d.ts +25 -0
  130. package/dist/services/oauth-manager.d.ts.map +1 -0
  131. package/dist/services/oauth-manager.js +365 -0
  132. package/dist/services/oauth-manager.js.map +1 -0
  133. package/dist/services/service-manager.d.ts +61 -0
  134. package/dist/services/service-manager.d.ts.map +1 -0
  135. package/dist/services/service-manager.js +447 -0
  136. package/dist/services/service-manager.js.map +1 -0
  137. package/dist/test-local-mcp-e2e.d.ts +3 -0
  138. package/dist/test-local-mcp-e2e.d.ts.map +1 -0
  139. package/dist/test-local-mcp-e2e.js +104 -0
  140. package/dist/test-local-mcp-e2e.js.map +1 -0
  141. package/dist/test-local-mcp.d.ts +3 -0
  142. package/dist/test-local-mcp.d.ts.map +1 -0
  143. package/dist/test-local-mcp.js +54 -0
  144. package/dist/test-local-mcp.js.map +1 -0
  145. package/dist/vault/credential-manager.d.ts +45 -0
  146. package/dist/vault/credential-manager.d.ts.map +1 -0
  147. package/dist/vault/credential-manager.js +237 -0
  148. package/dist/vault/credential-manager.js.map +1 -0
  149. package/dist/vault/index.d.ts +4 -0
  150. package/dist/vault/index.d.ts.map +1 -0
  151. package/dist/vault/index.js +20 -0
  152. package/dist/vault/index.js.map +1 -0
  153. package/dist/vault/secret-store.d.ts +36 -0
  154. package/dist/vault/secret-store.d.ts.map +1 -0
  155. package/dist/vault/secret-store.js +207 -0
  156. package/dist/vault/secret-store.js.map +1 -0
  157. package/dist/vault/yaml-sync.d.ts +8 -0
  158. package/dist/vault/yaml-sync.d.ts.map +1 -0
  159. package/dist/vault/yaml-sync.js +60 -0
  160. package/dist/vault/yaml-sync.js.map +1 -0
  161. package/package.json +64 -0
  162. package/static-ui/assets/AgentDeckLogo2-z3pVqJJ3.png +0 -0
  163. package/static-ui/assets/index-BnA3AsqY.css +1 -0
  164. package/static-ui/assets/index-D1IuraRt.js +334 -0
  165. package/static-ui/favicon.png +0 -0
  166. package/static-ui/index.html +17 -0
@@ -0,0 +1,430 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerDeckRoutes = registerDeckRoutes;
4
+ const client_scope_1 = require("../lib/client-scope");
5
+ const bound_deck_scope_1 = require("../lib/bound-deck-scope");
6
+ const agent_deck_context_1 = require("../lib/agent-deck-context");
7
+ async function enrichDecksWithCredentialSecrets(credentialManager, decks) {
8
+ return Promise.all(decks.map(async (deck) => ({
9
+ ...deck,
10
+ credentials: deck.credentials
11
+ ? await credentialManager.applySecretStatus(deck.credentials)
12
+ : [],
13
+ })));
14
+ }
15
+ async function registerDeckRoutes(fastify) {
16
+ // Create deck
17
+ fastify.post('/', async (request, reply) => {
18
+ try {
19
+ const deck = await fastify.db.createDeck(request.body);
20
+ const response = {
21
+ success: true,
22
+ data: deck,
23
+ };
24
+ return reply.status(201).send(response);
25
+ }
26
+ catch (error) {
27
+ const response = {
28
+ success: false,
29
+ error: error instanceof Error ? error.message : 'Unknown error',
30
+ };
31
+ return reply.status(400).send(response);
32
+ }
33
+ });
34
+ // Get all decks
35
+ fastify.get('/', async (request, reply) => {
36
+ try {
37
+ const scope = (0, client_scope_1.getClientScope)(request);
38
+ let visibleDeckId;
39
+ if (scope === 'agent') {
40
+ try {
41
+ visibleDeckId = await (0, agent_deck_context_1.resolveAgentDeckId)(request, fastify.db);
42
+ }
43
+ catch (error) {
44
+ if (!(error instanceof agent_deck_context_1.AgentDeckContextError)) {
45
+ throw error;
46
+ }
47
+ }
48
+ }
49
+ const decks = await fastify.db.getAllDecks();
50
+ const decksWithSecrets = await enrichDecksWithCredentialSecrets(fastify.credentialManager, decks);
51
+ const scopedDecks = decksWithSecrets.map((deck) => (0, client_scope_1.applyDeckScope)(deck, scope, visibleDeckId));
52
+ const response = {
53
+ success: true,
54
+ data: scopedDecks,
55
+ };
56
+ return reply.send(response);
57
+ }
58
+ catch (error) {
59
+ const response = {
60
+ success: false,
61
+ error: error instanceof Error ? error.message : 'Unknown error',
62
+ };
63
+ return reply.status(500).send(response);
64
+ }
65
+ });
66
+ // Get active deck
67
+ fastify.get('/active', async (request, reply) => {
68
+ try {
69
+ const deck = await fastify.db.getActiveDeck();
70
+ if (!deck) {
71
+ const response = {
72
+ success: false,
73
+ error: 'No active deck found',
74
+ };
75
+ return reply.status(404).send(response);
76
+ }
77
+ const [deckWithSecrets] = await enrichDecksWithCredentialSecrets(fastify.credentialManager, [deck]);
78
+ const response = {
79
+ success: true,
80
+ data: deckWithSecrets,
81
+ };
82
+ return reply.send(response);
83
+ }
84
+ catch (error) {
85
+ const response = {
86
+ success: false,
87
+ error: error instanceof Error ? error.message : 'Unknown error',
88
+ };
89
+ return reply.status(500).send(response);
90
+ }
91
+ });
92
+ // Get deck by ID
93
+ fastify.get('/:id', async (request, reply) => {
94
+ try {
95
+ const deck = await fastify.db.getDeck(request.params.id);
96
+ if (!deck) {
97
+ const response = {
98
+ success: false,
99
+ error: 'Deck not found',
100
+ };
101
+ return reply.status(404).send(response);
102
+ }
103
+ const scope = (0, client_scope_1.getClientScope)(request);
104
+ let visibleDeckId;
105
+ if (scope === 'agent') {
106
+ try {
107
+ visibleDeckId = await (0, agent_deck_context_1.resolveAgentDeckId)(request, fastify.db);
108
+ }
109
+ catch (error) {
110
+ if (!(error instanceof agent_deck_context_1.AgentDeckContextError)) {
111
+ throw error;
112
+ }
113
+ }
114
+ }
115
+ const [deckWithSecrets] = await enrichDecksWithCredentialSecrets(fastify.credentialManager, [deck]);
116
+ const scopedDeck = (0, client_scope_1.applyDeckScope)(deckWithSecrets, scope, visibleDeckId);
117
+ const response = {
118
+ success: true,
119
+ data: scopedDeck,
120
+ };
121
+ return reply.send(response);
122
+ }
123
+ catch (error) {
124
+ const response = {
125
+ success: false,
126
+ error: error instanceof Error ? error.message : 'Unknown error',
127
+ };
128
+ return reply.status(500).send(response);
129
+ }
130
+ });
131
+ // Update deck
132
+ fastify.put('/:id', async (request, reply) => {
133
+ try {
134
+ const deck = await fastify.db.updateDeck(request.params.id, request.body);
135
+ if (!deck) {
136
+ const response = {
137
+ success: false,
138
+ error: 'Deck not found',
139
+ };
140
+ return reply.status(404).send(response);
141
+ }
142
+ const response = {
143
+ success: true,
144
+ data: deck,
145
+ };
146
+ return reply.send(response);
147
+ }
148
+ catch (error) {
149
+ const response = {
150
+ success: false,
151
+ error: error instanceof Error ? error.message : 'Unknown error',
152
+ };
153
+ return reply.status(400).send(response);
154
+ }
155
+ });
156
+ // Delete deck
157
+ fastify.delete('/:id', async (request, reply) => {
158
+ try {
159
+ const deleted = await fastify.db.deleteDeck(request.params.id);
160
+ if (!deleted) {
161
+ const response = {
162
+ success: false,
163
+ error: 'Deck not found',
164
+ };
165
+ return reply.status(404).send(response);
166
+ }
167
+ const response = {
168
+ success: true,
169
+ message: 'Deck deleted successfully',
170
+ };
171
+ return reply.send(response);
172
+ }
173
+ catch (error) {
174
+ const response = {
175
+ success: false,
176
+ error: error instanceof Error ? error.message : 'Unknown error',
177
+ };
178
+ return reply.status(500).send(response);
179
+ }
180
+ });
181
+ // Set active deck
182
+ fastify.post('/:id/activate', async (request, reply) => {
183
+ try {
184
+ await fastify.db.setActiveDeck(request.params.id);
185
+ // Broadcast deck update via WebSocket
186
+ fastify.broadcastDeckUpdate({
187
+ deckId: request.params.id,
188
+ action: 'updated',
189
+ data: { isActive: true }
190
+ });
191
+ const response = {
192
+ success: true,
193
+ message: 'Deck activated successfully',
194
+ };
195
+ return reply.send(response);
196
+ }
197
+ catch (error) {
198
+ const response = {
199
+ success: false,
200
+ error: error instanceof Error ? error.message : 'Unknown error',
201
+ };
202
+ return reply.status(500).send(response);
203
+ }
204
+ });
205
+ // Add service to deck
206
+ fastify.post('/:id/services', async (request, reply) => {
207
+ try {
208
+ await (0, bound_deck_scope_1.requireBoundDeckScope)(request, fastify.db, request.params.id);
209
+ await fastify.db.addServiceToDeck({
210
+ deckId: request.params.id,
211
+ serviceId: request.body.serviceId,
212
+ position: request.body.position,
213
+ });
214
+ // Broadcast deck update via WebSocket
215
+ fastify.broadcastDeckUpdate({
216
+ deckId: request.params.id,
217
+ action: 'service_added',
218
+ data: { serviceId: request.body.serviceId }
219
+ });
220
+ const response = {
221
+ success: true,
222
+ message: 'Service added to deck successfully',
223
+ };
224
+ return reply.send(response);
225
+ }
226
+ catch (error) {
227
+ const scoped = (0, bound_deck_scope_1.boundDeckScopeResponse)(error);
228
+ const response = {
229
+ success: false,
230
+ error: scoped.message,
231
+ };
232
+ return reply.status(scoped.status).send(response);
233
+ }
234
+ });
235
+ // Remove service from deck
236
+ fastify.delete('/:id/services', async (request, reply) => {
237
+ try {
238
+ await (0, bound_deck_scope_1.requireBoundDeckScope)(request, fastify.db, request.params.id);
239
+ await fastify.db.removeServiceFromDeck({
240
+ deckId: request.params.id,
241
+ serviceId: request.body.serviceId,
242
+ });
243
+ // Broadcast deck update via WebSocket
244
+ fastify.broadcastDeckUpdate({
245
+ deckId: request.params.id,
246
+ action: 'service_removed',
247
+ data: { serviceId: request.body.serviceId }
248
+ });
249
+ const response = {
250
+ success: true,
251
+ message: 'Service removed from deck successfully',
252
+ };
253
+ return reply.send(response);
254
+ }
255
+ catch (error) {
256
+ const scoped = (0, bound_deck_scope_1.boundDeckScopeResponse)(error);
257
+ const response = {
258
+ success: false,
259
+ error: scoped.message,
260
+ };
261
+ return reply.status(scoped.status).send(response);
262
+ }
263
+ });
264
+ // Reorder deck services
265
+ fastify.put('/:id/services/reorder', async (request, reply) => {
266
+ try {
267
+ await (0, bound_deck_scope_1.requireBoundDeckScope)(request, fastify.db, request.params.id);
268
+ await fastify.db.reorderDeckServices({
269
+ deckId: request.params.id,
270
+ serviceIds: request.body.serviceIds,
271
+ });
272
+ // Broadcast deck update via WebSocket
273
+ fastify.broadcastDeckUpdate({
274
+ deckId: request.params.id,
275
+ action: 'updated',
276
+ data: { serviceIds: request.body.serviceIds }
277
+ });
278
+ const response = {
279
+ success: true,
280
+ message: 'Deck services reordered successfully',
281
+ };
282
+ return reply.send(response);
283
+ }
284
+ catch (error) {
285
+ const scoped = (0, bound_deck_scope_1.boundDeckScopeResponse)(error);
286
+ const response = {
287
+ success: false,
288
+ error: scoped.message,
289
+ };
290
+ return reply.status(scoped.status).send(response);
291
+ }
292
+ });
293
+ // Clear all services from deck
294
+ fastify.delete('/:id/services/clear', async (request, reply) => {
295
+ try {
296
+ await (0, bound_deck_scope_1.requireBoundDeckScope)(request, fastify.db, request.params.id);
297
+ await fastify.db.clearDeckServices(request.params.id);
298
+ // Broadcast deck update via WebSocket
299
+ fastify.broadcastDeckUpdate({
300
+ deckId: request.params.id,
301
+ action: 'service_removed',
302
+ data: { allServices: true }
303
+ });
304
+ const response = {
305
+ success: true,
306
+ message: 'All services removed from deck successfully',
307
+ };
308
+ return reply.send(response);
309
+ }
310
+ catch (error) {
311
+ const scoped = (0, bound_deck_scope_1.boundDeckScopeResponse)(error);
312
+ const response = {
313
+ success: false,
314
+ error: scoped.message,
315
+ };
316
+ return reply.status(scoped.status).send(response);
317
+ }
318
+ });
319
+ // Add credential to deck
320
+ fastify.post('/:id/credentials', async (request, reply) => {
321
+ try {
322
+ await (0, bound_deck_scope_1.requireBoundDeckScope)(request, fastify.db, request.params.id);
323
+ await fastify.credentialManager.addToDeck({
324
+ deckId: request.params.id,
325
+ credentialId: request.body.credentialId,
326
+ position: request.body.position,
327
+ });
328
+ fastify.broadcastDeckUpdate({
329
+ deckId: request.params.id,
330
+ action: 'updated',
331
+ data: { credentialId: request.body.credentialId },
332
+ });
333
+ const response = {
334
+ success: true,
335
+ message: 'Credential added to deck successfully',
336
+ };
337
+ return reply.send(response);
338
+ }
339
+ catch (error) {
340
+ const scoped = (0, bound_deck_scope_1.boundDeckScopeResponse)(error);
341
+ const response = {
342
+ success: false,
343
+ error: scoped.message,
344
+ };
345
+ return reply.status(scoped.status).send(response);
346
+ }
347
+ });
348
+ // Remove credential from deck
349
+ fastify.delete('/:id/credentials', async (request, reply) => {
350
+ try {
351
+ await (0, bound_deck_scope_1.requireBoundDeckScope)(request, fastify.db, request.params.id);
352
+ await fastify.credentialManager.removeFromDeck({
353
+ deckId: request.params.id,
354
+ credentialId: request.body.credentialId,
355
+ });
356
+ fastify.broadcastDeckUpdate({
357
+ deckId: request.params.id,
358
+ action: 'updated',
359
+ data: { credentialId: request.body.credentialId },
360
+ });
361
+ const response = {
362
+ success: true,
363
+ message: 'Credential removed from deck successfully',
364
+ };
365
+ return reply.send(response);
366
+ }
367
+ catch (error) {
368
+ const scoped = (0, bound_deck_scope_1.boundDeckScopeResponse)(error);
369
+ const response = {
370
+ success: false,
371
+ error: scoped.message,
372
+ };
373
+ return reply.status(scoped.status).send(response);
374
+ }
375
+ });
376
+ // Add playbook to deck
377
+ fastify.post('/:id/playbooks', async (request, reply) => {
378
+ try {
379
+ await (0, bound_deck_scope_1.requireBoundDeckScope)(request, fastify.db, request.params.id);
380
+ await fastify.playbookManager.addToDeck({
381
+ deckId: request.params.id,
382
+ playbookId: request.body.playbookId,
383
+ position: request.body.position,
384
+ });
385
+ fastify.broadcastDeckUpdate({
386
+ deckId: request.params.id,
387
+ action: 'updated',
388
+ data: { playbookId: request.body.playbookId },
389
+ });
390
+ return reply.send({
391
+ success: true,
392
+ message: 'Playbook added to deck successfully',
393
+ });
394
+ }
395
+ catch (error) {
396
+ const scoped = (0, bound_deck_scope_1.boundDeckScopeResponse)(error);
397
+ return reply.status(scoped.status).send({
398
+ success: false,
399
+ error: scoped.message,
400
+ });
401
+ }
402
+ });
403
+ // Remove playbook from deck
404
+ fastify.delete('/:id/playbooks', async (request, reply) => {
405
+ try {
406
+ await (0, bound_deck_scope_1.requireBoundDeckScope)(request, fastify.db, request.params.id);
407
+ await fastify.playbookManager.removeFromDeck({
408
+ deckId: request.params.id,
409
+ playbookId: request.body.playbookId,
410
+ });
411
+ fastify.broadcastDeckUpdate({
412
+ deckId: request.params.id,
413
+ action: 'updated',
414
+ data: { playbookId: request.body.playbookId },
415
+ });
416
+ return reply.send({
417
+ success: true,
418
+ message: 'Playbook removed from deck successfully',
419
+ });
420
+ }
421
+ catch (error) {
422
+ const scoped = (0, bound_deck_scope_1.boundDeckScopeResponse)(error);
423
+ return reply.status(scoped.status).send({
424
+ success: false,
425
+ error: scoped.message,
426
+ });
427
+ }
428
+ });
429
+ }
430
+ //# sourceMappingURL=decks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decks.js","sourceRoot":"","sources":["../../src/routes/decks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { FastifyInstance } from 'fastify';
2
+ export declare function registerLocalMCPRoutes(fastify: FastifyInstance): Promise<void>;
3
+ //# sourceMappingURL=local-mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-mcp.d.ts","sourceRoot":"","sources":["../../src/routes/local-mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAsBxE,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,eAAe,iBA0MpE"}
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerLocalMCPRoutes = registerLocalMCPRoutes;
4
+ async function registerLocalMCPRoutes(fastify) {
5
+ // Import local MCP servers from JSON configuration
6
+ fastify.post('/import', async (request, reply) => {
7
+ try {
8
+ const { config } = request.body;
9
+ if (!config) {
10
+ return reply.status(400).send({
11
+ success: false,
12
+ error: 'Configuration JSON is required',
13
+ });
14
+ }
15
+ const serviceManager = fastify.serviceManager;
16
+ const services = await serviceManager.importLocalServersFromConfig(config);
17
+ return {
18
+ success: true,
19
+ data: {
20
+ imported: services.length,
21
+ services: services,
22
+ },
23
+ message: `Successfully imported ${services.length} local MCP servers`,
24
+ };
25
+ }
26
+ catch (error) {
27
+ console.error('Failed to import local MCP servers:', error);
28
+ return reply.status(500).send({
29
+ success: false,
30
+ error: error instanceof Error ? error.message : 'Failed to import local MCP servers',
31
+ });
32
+ }
33
+ });
34
+ // Get sample configuration
35
+ fastify.get('/sample-config', async (request, reply) => {
36
+ try {
37
+ const serviceManager = fastify.serviceManager;
38
+ const sampleConfig = serviceManager.getSampleConfig();
39
+ return {
40
+ success: true,
41
+ data: {
42
+ config: sampleConfig,
43
+ },
44
+ };
45
+ }
46
+ catch (error) {
47
+ console.error('Failed to get sample config:', error);
48
+ return reply.status(500).send({
49
+ success: false,
50
+ error: error instanceof Error ? error.message : 'Failed to get sample configuration',
51
+ });
52
+ }
53
+ });
54
+ // Start a local MCP server
55
+ fastify.post('/:serviceId/start', async (request, reply) => {
56
+ try {
57
+ const { serviceId } = request.params;
58
+ const serviceManager = fastify.serviceManager;
59
+ await serviceManager.startLocalServer(serviceId);
60
+ return {
61
+ success: true,
62
+ message: `Local MCP server ${serviceId} started successfully`,
63
+ };
64
+ }
65
+ catch (error) {
66
+ console.error(`Failed to start local MCP server ${request.params.serviceId}:`, error);
67
+ return reply.status(500).send({
68
+ success: false,
69
+ error: error instanceof Error ? error.message : 'Failed to start local MCP server',
70
+ });
71
+ }
72
+ });
73
+ // Stop a local MCP server
74
+ fastify.post('/:serviceId/stop', async (request, reply) => {
75
+ try {
76
+ const { serviceId } = request.params;
77
+ const serviceManager = fastify.serviceManager;
78
+ await serviceManager.stopLocalServer(serviceId);
79
+ return {
80
+ success: true,
81
+ message: `Local MCP server ${serviceId} stopped successfully`,
82
+ };
83
+ }
84
+ catch (error) {
85
+ console.error(`Failed to stop local MCP server ${request.params.serviceId}:`, error);
86
+ return reply.status(500).send({
87
+ success: false,
88
+ error: error instanceof Error ? error.message : 'Failed to stop local MCP server',
89
+ });
90
+ }
91
+ });
92
+ // Get local MCP server status
93
+ fastify.get('/:serviceId/status', async (request, reply) => {
94
+ try {
95
+ const { serviceId } = request.params;
96
+ const service = await fastify.serviceManager.getService(serviceId);
97
+ if (!service) {
98
+ return reply.status(404).send({
99
+ success: false,
100
+ error: 'Service not found',
101
+ });
102
+ }
103
+ if (service.type !== 'local-mcp') {
104
+ return reply.status(400).send({
105
+ success: false,
106
+ error: 'Service is not a local MCP server',
107
+ });
108
+ }
109
+ // Get the local server manager from the MCP client manager
110
+ const mcpClientManager = fastify.serviceManager.mcpClientManager;
111
+ const localManager = mcpClientManager.localServerManager;
112
+ let isRunning = false;
113
+ let processInfo = null;
114
+ if (localManager) {
115
+ isRunning = localManager.isLocalServerRunning(serviceId);
116
+ const processRecord = localManager.getLocalServer(serviceId);
117
+ if (processRecord) {
118
+ processInfo = {
119
+ id: processRecord.id,
120
+ startTime: processRecord.startTime,
121
+ lastActivity: processRecord.lastActivity,
122
+ capabilities: processRecord.capabilities,
123
+ };
124
+ }
125
+ }
126
+ return {
127
+ success: true,
128
+ data: {
129
+ serviceId,
130
+ isRunning,
131
+ processInfo,
132
+ },
133
+ };
134
+ }
135
+ catch (error) {
136
+ console.error(`Failed to get local MCP server status ${request.params.serviceId}:`, error);
137
+ return reply.status(500).send({
138
+ success: false,
139
+ error: error instanceof Error ? error.message : 'Failed to get local MCP server status',
140
+ });
141
+ }
142
+ });
143
+ // List all local MCP servers
144
+ fastify.get('/list', async (request, reply) => {
145
+ try {
146
+ const services = await fastify.serviceManager.getAllServices();
147
+ const localServices = services.filter(s => s.type === 'local-mcp');
148
+ // Get running status for each local service
149
+ const mcpClientManager = fastify.serviceManager.mcpClientManager;
150
+ const localManager = mcpClientManager.localServerManager;
151
+ const localServicesWithStatus = localServices.map(service => {
152
+ let isRunning = false;
153
+ let processInfo = null;
154
+ if (localManager) {
155
+ isRunning = localManager.isLocalServerRunning(service.id);
156
+ const processRecord = localManager.getLocalServer(service.id);
157
+ if (processRecord) {
158
+ processInfo = {
159
+ id: processRecord.id,
160
+ startTime: processRecord.startTime,
161
+ lastActivity: processRecord.lastActivity,
162
+ capabilities: processRecord.capabilities,
163
+ };
164
+ }
165
+ }
166
+ return {
167
+ ...service,
168
+ isRunning,
169
+ processInfo,
170
+ };
171
+ });
172
+ return {
173
+ success: true,
174
+ data: {
175
+ services: localServicesWithStatus,
176
+ count: localServicesWithStatus.length,
177
+ },
178
+ };
179
+ }
180
+ catch (error) {
181
+ console.error('Failed to list local MCP servers:', error);
182
+ return reply.status(500).send({
183
+ success: false,
184
+ error: error instanceof Error ? error.message : 'Failed to list local MCP servers',
185
+ });
186
+ }
187
+ });
188
+ }
189
+ //# sourceMappingURL=local-mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-mcp.js","sourceRoot":"","sources":["../../src/routes/local-mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { FastifyInstance } from 'fastify';
2
+ export default function mcpRoutes(fastify: FastifyInstance): Promise<void>;
3
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/routes/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AA8JxE,wBAA8B,SAAS,CAAC,OAAO,EAAE,eAAe,iBAiC/D"}