librechat-data-provider 0.8.402 → 0.8.403

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 (103) hide show
  1. package/dist/types/accessPermissions.d.ts +744 -0
  2. package/dist/types/actions.d.ts +118 -0
  3. package/dist/types/api-endpoints.d.ts +149 -0
  4. package/dist/types/artifacts.d.ts +97 -0
  5. package/dist/types/azure.d.ts +22 -0
  6. package/dist/types/bedrock.d.ts +1220 -0
  7. package/dist/types/config.d.ts +13916 -0
  8. package/dist/types/config.spec.d.ts +1 -0
  9. package/dist/types/createPayload.d.ts +5 -0
  10. package/dist/types/data-service.d.ts +284 -0
  11. package/dist/types/feedback.d.ts +36 -0
  12. package/dist/types/file-config.d.ts +263 -0
  13. package/dist/types/file-config.spec.d.ts +1 -0
  14. package/dist/types/generate.d.ts +597 -0
  15. package/dist/types/headers-helpers.d.ts +2 -0
  16. package/{src/index.ts → dist/types/index.d.ts} +0 -15
  17. package/dist/types/keys.d.ts +92 -0
  18. package/dist/types/mcp.d.ts +2760 -0
  19. package/dist/types/messages.d.ts +10 -0
  20. package/dist/types/models.d.ts +1677 -0
  21. package/dist/types/parameterSettings.d.ts +69 -0
  22. package/dist/types/parsers.d.ts +110 -0
  23. package/dist/types/permissions.d.ts +522 -0
  24. package/dist/types/react-query/react-query-service.d.ts +85 -0
  25. package/dist/types/request.d.ts +25 -0
  26. package/dist/types/roles.d.ts +554 -0
  27. package/dist/types/roles.spec.d.ts +1 -0
  28. package/dist/types/schemas.d.ts +4815 -0
  29. package/dist/types/schemas.spec.d.ts +1 -0
  30. package/dist/types/types/agents.d.ts +433 -0
  31. package/dist/types/types/assistants.d.ts +547 -0
  32. package/dist/types/types/files.d.ts +172 -0
  33. package/dist/types/types/graph.d.ts +135 -0
  34. package/{src/types/mcpServers.ts → dist/types/types/mcpServers.d.ts} +12 -18
  35. package/dist/types/types/mutations.d.ts +209 -0
  36. package/dist/types/types/queries.d.ts +169 -0
  37. package/dist/types/types/runs.d.ts +36 -0
  38. package/dist/types/types/web.d.ts +520 -0
  39. package/dist/types/types.d.ts +503 -0
  40. package/dist/types/utils.d.ts +12 -0
  41. package/package.json +4 -1
  42. package/babel.config.js +0 -4
  43. package/check_updates.sh +0 -52
  44. package/jest.config.js +0 -19
  45. package/react-query/package-lock.json +0 -292
  46. package/react-query/package.json +0 -10
  47. package/rollup.config.js +0 -74
  48. package/server-rollup.config.js +0 -40
  49. package/specs/actions.spec.ts +0 -2533
  50. package/specs/api-endpoints-subdir.spec.ts +0 -140
  51. package/specs/api-endpoints.spec.ts +0 -74
  52. package/specs/azure.spec.ts +0 -844
  53. package/specs/bedrock.spec.ts +0 -862
  54. package/specs/filetypes.spec.ts +0 -175
  55. package/specs/generate.spec.ts +0 -770
  56. package/specs/headers-helpers.spec.ts +0 -24
  57. package/specs/mcp.spec.ts +0 -147
  58. package/specs/openapiSpecs.ts +0 -524
  59. package/specs/parsers.spec.ts +0 -601
  60. package/specs/request-interceptor.spec.ts +0 -304
  61. package/specs/utils.spec.ts +0 -196
  62. package/src/accessPermissions.ts +0 -346
  63. package/src/actions.ts +0 -813
  64. package/src/api-endpoints.ts +0 -440
  65. package/src/artifacts.ts +0 -3104
  66. package/src/azure.ts +0 -328
  67. package/src/bedrock.ts +0 -425
  68. package/src/config.spec.ts +0 -315
  69. package/src/config.ts +0 -2006
  70. package/src/createPayload.ts +0 -46
  71. package/src/data-service.ts +0 -1087
  72. package/src/feedback.ts +0 -141
  73. package/src/file-config.spec.ts +0 -1248
  74. package/src/file-config.ts +0 -764
  75. package/src/generate.ts +0 -634
  76. package/src/headers-helpers.ts +0 -13
  77. package/src/keys.ts +0 -99
  78. package/src/mcp.ts +0 -271
  79. package/src/messages.ts +0 -50
  80. package/src/models.ts +0 -69
  81. package/src/parameterSettings.ts +0 -1111
  82. package/src/parsers.ts +0 -563
  83. package/src/permissions.ts +0 -188
  84. package/src/react-query/react-query-service.ts +0 -566
  85. package/src/request.ts +0 -171
  86. package/src/roles.spec.ts +0 -132
  87. package/src/roles.ts +0 -225
  88. package/src/schemas.spec.ts +0 -355
  89. package/src/schemas.ts +0 -1234
  90. package/src/types/agents.ts +0 -470
  91. package/src/types/assistants.ts +0 -654
  92. package/src/types/files.ts +0 -191
  93. package/src/types/graph.ts +0 -145
  94. package/src/types/mutations.ts +0 -422
  95. package/src/types/queries.ts +0 -208
  96. package/src/types/runs.ts +0 -40
  97. package/src/types/web.ts +0 -588
  98. package/src/types.ts +0 -676
  99. package/src/utils.ts +0 -85
  100. package/tsconfig.json +0 -28
  101. package/tsconfig.spec.json +0 -10
  102. /package/{src/react-query/index.ts → dist/types/react-query/index.d.ts} +0 -0
  103. /package/{src/types/index.ts → dist/types/types/index.d.ts} +0 -0
@@ -1,566 +0,0 @@
1
- import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
2
- import type {
3
- UseQueryOptions,
4
- UseMutationResult,
5
- QueryObserverResult,
6
- } from '@tanstack/react-query';
7
- import { Constants, initialModelsConfig } from '../config';
8
- import { defaultOrderQuery } from '../types/assistants';
9
- import { MCPServerConnectionStatusResponse } from '../types/queries';
10
- import * as dataService from '../data-service';
11
- import * as m from '../types/mutations';
12
- import * as q from '../types/queries';
13
- import { QueryKeys } from '../keys';
14
- import * as s from '../schemas';
15
- import * as t from '../types';
16
- import * as permissions from '../accessPermissions';
17
- import { ResourceType } from '../accessPermissions';
18
-
19
- export { hasPermissions } from '../accessPermissions';
20
-
21
- export const useGetSharedMessages = (
22
- shareId: string,
23
- config?: UseQueryOptions<t.TSharedMessagesResponse>,
24
- ): QueryObserverResult<t.TSharedMessagesResponse> => {
25
- return useQuery<t.TSharedMessagesResponse>(
26
- [QueryKeys.sharedMessages, shareId],
27
- () => dataService.getSharedMessages(shareId),
28
- {
29
- refetchOnWindowFocus: false,
30
- refetchOnReconnect: false,
31
- refetchOnMount: false,
32
- ...config,
33
- },
34
- );
35
- };
36
-
37
- export const useGetSharedLinkQuery = (
38
- conversationId: string,
39
- config?: UseQueryOptions<t.TSharedLinkGetResponse>,
40
- ): QueryObserverResult<t.TSharedLinkGetResponse> => {
41
- const queryClient = useQueryClient();
42
- return useQuery<t.TSharedLinkGetResponse>(
43
- [QueryKeys.sharedLinks, conversationId],
44
- () => dataService.getSharedLink(conversationId),
45
- {
46
- enabled:
47
- !!conversationId &&
48
- conversationId !== Constants.NEW_CONVO &&
49
- conversationId !== Constants.PENDING_CONVO,
50
- refetchOnWindowFocus: false,
51
- refetchOnReconnect: false,
52
- refetchOnMount: false,
53
- onSuccess: (data) => {
54
- queryClient.setQueryData([QueryKeys.sharedLinks, conversationId], {
55
- conversationId: data.conversationId,
56
- shareId: data.shareId,
57
- });
58
- },
59
- ...config,
60
- },
61
- );
62
- };
63
-
64
- export const useGetConversationByIdQuery = (
65
- id: string,
66
- config?: UseQueryOptions<s.TConversation>,
67
- ): QueryObserverResult<s.TConversation> => {
68
- return useQuery<s.TConversation>(
69
- [QueryKeys.conversation, id],
70
- () => dataService.getConversationById(id),
71
- {
72
- refetchOnWindowFocus: false,
73
- refetchOnReconnect: false,
74
- refetchOnMount: false,
75
- ...config,
76
- },
77
- );
78
- };
79
-
80
- //This isn't ideal because its just a query and we're using mutation, but it was the only way
81
- //to make it work with how the Chat component is structured
82
- export const useGetConversationByIdMutation = (id: string): UseMutationResult<s.TConversation> => {
83
- const queryClient = useQueryClient();
84
- return useMutation(() => dataService.getConversationById(id), {
85
- // onSuccess: (res: s.TConversation) => {
86
- onSuccess: () => {
87
- queryClient.invalidateQueries([QueryKeys.conversation, id]);
88
- },
89
- });
90
- };
91
-
92
- export const useUpdateMessageMutation = (
93
- id: string,
94
- ): UseMutationResult<unknown, unknown, t.TUpdateMessageRequest, unknown> => {
95
- const queryClient = useQueryClient();
96
- return useMutation((payload: t.TUpdateMessageRequest) => dataService.updateMessage(payload), {
97
- onSuccess: () => {
98
- queryClient.invalidateQueries([QueryKeys.messages, id]);
99
- },
100
- });
101
- };
102
-
103
- export const useUpdateMessageContentMutation = (
104
- conversationId: string,
105
- ): UseMutationResult<unknown, unknown, t.TUpdateMessageContent, unknown> => {
106
- const queryClient = useQueryClient();
107
- return useMutation(
108
- (payload: t.TUpdateMessageContent) => dataService.updateMessageContent(payload),
109
- {
110
- onSuccess: () => {
111
- queryClient.invalidateQueries([QueryKeys.messages, conversationId]);
112
- },
113
- },
114
- );
115
- };
116
-
117
- export const useUpdateUserKeysMutation = (): UseMutationResult<
118
- t.TUser,
119
- unknown,
120
- t.TUpdateUserKeyRequest,
121
- unknown
122
- > => {
123
- const queryClient = useQueryClient();
124
- return useMutation((payload: t.TUpdateUserKeyRequest) => dataService.updateUserKey(payload), {
125
- onSuccess: (data, variables) => {
126
- queryClient.invalidateQueries([QueryKeys.name, variables.name]);
127
- },
128
- });
129
- };
130
-
131
- export const useClearConversationsMutation = (): UseMutationResult<unknown> => {
132
- const queryClient = useQueryClient();
133
- return useMutation(() => dataService.clearAllConversations(), {
134
- onSuccess: () => {
135
- queryClient.invalidateQueries([QueryKeys.allConversations]);
136
- },
137
- });
138
- };
139
-
140
- export const useRevokeUserKeyMutation = (name: string): UseMutationResult<unknown> => {
141
- const queryClient = useQueryClient();
142
- return useMutation(() => dataService.revokeUserKey(name), {
143
- onSuccess: () => {
144
- queryClient.invalidateQueries([QueryKeys.name, name]);
145
- if (s.isAssistantsEndpoint(name)) {
146
- queryClient.invalidateQueries([QueryKeys.assistants, name, defaultOrderQuery]);
147
- queryClient.invalidateQueries([QueryKeys.assistantDocs]);
148
- queryClient.invalidateQueries([QueryKeys.assistants]);
149
- queryClient.invalidateQueries([QueryKeys.assistant]);
150
- queryClient.invalidateQueries([QueryKeys.mcpTools]);
151
- queryClient.invalidateQueries([QueryKeys.actions]);
152
- queryClient.invalidateQueries([QueryKeys.tools]);
153
- }
154
- },
155
- });
156
- };
157
-
158
- export const useRevokeAllUserKeysMutation = (): UseMutationResult<unknown> => {
159
- const queryClient = useQueryClient();
160
- return useMutation(() => dataService.revokeAllUserKeys(), {
161
- onSuccess: () => {
162
- queryClient.invalidateQueries([QueryKeys.name]);
163
- queryClient.invalidateQueries([
164
- QueryKeys.assistants,
165
- s.EModelEndpoint.assistants,
166
- defaultOrderQuery,
167
- ]);
168
- queryClient.invalidateQueries([
169
- QueryKeys.assistants,
170
- s.EModelEndpoint.azureAssistants,
171
- defaultOrderQuery,
172
- ]);
173
- queryClient.invalidateQueries([QueryKeys.assistantDocs]);
174
- queryClient.invalidateQueries([QueryKeys.assistants]);
175
- queryClient.invalidateQueries([QueryKeys.assistant]);
176
- queryClient.invalidateQueries([QueryKeys.mcpTools]);
177
- queryClient.invalidateQueries([QueryKeys.actions]);
178
- queryClient.invalidateQueries([QueryKeys.tools]);
179
- },
180
- });
181
- };
182
-
183
- export const useGetModelsQuery = (
184
- config?: UseQueryOptions<t.TModelsConfig>,
185
- ): QueryObserverResult<t.TModelsConfig> => {
186
- return useQuery<t.TModelsConfig>([QueryKeys.models], () => dataService.getModels(), {
187
- initialData: initialModelsConfig,
188
- refetchOnWindowFocus: false,
189
- refetchOnReconnect: false,
190
- refetchOnMount: false,
191
- staleTime: Infinity,
192
- ...config,
193
- });
194
- };
195
-
196
- export const useCreatePresetMutation = (): UseMutationResult<
197
- s.TPreset,
198
- unknown,
199
- s.TPreset,
200
- unknown
201
- > => {
202
- const queryClient = useQueryClient();
203
- return useMutation((payload: s.TPreset) => dataService.createPreset(payload), {
204
- onSuccess: () => {
205
- queryClient.invalidateQueries([QueryKeys.presets]);
206
- },
207
- });
208
- };
209
-
210
- export const useDeletePresetMutation = (): UseMutationResult<
211
- m.PresetDeleteResponse,
212
- unknown,
213
- s.TPreset | undefined,
214
- unknown
215
- > => {
216
- const queryClient = useQueryClient();
217
- return useMutation((payload: s.TPreset | undefined) => dataService.deletePreset(payload), {
218
- onSuccess: () => {
219
- queryClient.invalidateQueries([QueryKeys.presets]);
220
- },
221
- });
222
- };
223
-
224
- export const useUpdateTokenCountMutation = (): UseMutationResult<
225
- t.TUpdateTokenCountResponse,
226
- unknown,
227
- { text: string },
228
- unknown
229
- > => {
230
- const queryClient = useQueryClient();
231
- return useMutation(({ text }: { text: string }) => dataService.updateTokenCount(text), {
232
- onSuccess: () => {
233
- queryClient.invalidateQueries([QueryKeys.tokenCount]);
234
- },
235
- });
236
- };
237
-
238
- export const useRegisterUserMutation = (
239
- options?: m.RegistrationOptions,
240
- ): UseMutationResult<t.TError, unknown, t.TRegisterUser, unknown> => {
241
- const queryClient = useQueryClient();
242
- return useMutation<t.TRegisterUserResponse, t.TError, t.TRegisterUser>(
243
- (payload: t.TRegisterUser) => dataService.register(payload),
244
- {
245
- ...options,
246
- onSuccess: (...args) => {
247
- queryClient.invalidateQueries([QueryKeys.user]);
248
- if (options?.onSuccess) {
249
- options.onSuccess(...args);
250
- }
251
- },
252
- },
253
- );
254
- };
255
-
256
- export const useUserKeyQuery = (
257
- name: string,
258
- config?: UseQueryOptions<t.TCheckUserKeyResponse>,
259
- ): QueryObserverResult<t.TCheckUserKeyResponse> => {
260
- return useQuery<t.TCheckUserKeyResponse>(
261
- [QueryKeys.name, name],
262
- () => {
263
- if (!name) {
264
- return Promise.resolve({ expiresAt: '' });
265
- }
266
- return dataService.userKeyQuery(name);
267
- },
268
- {
269
- refetchOnWindowFocus: false,
270
- refetchOnReconnect: false,
271
- refetchOnMount: false,
272
- retry: false,
273
- ...config,
274
- },
275
- );
276
- };
277
-
278
- export const useRequestPasswordResetMutation = (): UseMutationResult<
279
- t.TRequestPasswordResetResponse,
280
- unknown,
281
- t.TRequestPasswordReset,
282
- unknown
283
- > => {
284
- return useMutation((payload: t.TRequestPasswordReset) =>
285
- dataService.requestPasswordReset(payload),
286
- );
287
- };
288
-
289
- export const useResetPasswordMutation = (): UseMutationResult<
290
- unknown,
291
- unknown,
292
- t.TResetPassword,
293
- unknown
294
- > => {
295
- return useMutation((payload: t.TResetPassword) => dataService.resetPassword(payload));
296
- };
297
-
298
- export const useAvailablePluginsQuery = <TData = s.TPlugin[]>(
299
- config?: UseQueryOptions<s.TPlugin[], unknown, TData>,
300
- ): QueryObserverResult<TData> => {
301
- return useQuery<s.TPlugin[], unknown, TData>(
302
- [QueryKeys.availablePlugins],
303
- () => dataService.getAvailablePlugins(),
304
- {
305
- refetchOnWindowFocus: false,
306
- refetchOnReconnect: false,
307
- refetchOnMount: false,
308
- ...config,
309
- },
310
- );
311
- };
312
-
313
- export const useUpdateUserPluginsMutation = (
314
- _options?: m.UpdatePluginAuthOptions,
315
- ): UseMutationResult<t.TUser, unknown, t.TUpdateUserPlugins, unknown> => {
316
- const queryClient = useQueryClient();
317
- const { onSuccess, ...options } = _options ?? {};
318
- return useMutation((payload: t.TUpdateUserPlugins) => dataService.updateUserPlugins(payload), {
319
- ...options,
320
- onSuccess: (...args) => {
321
- queryClient.invalidateQueries([QueryKeys.user]);
322
- onSuccess?.(...args);
323
- if (args[1]?.action === 'uninstall' && args[1]?.pluginKey?.startsWith(Constants.mcp_prefix)) {
324
- const serverName = args[1]?.pluginKey?.substring(Constants.mcp_prefix.length);
325
- queryClient.invalidateQueries([QueryKeys.mcpAuthValues, serverName]);
326
- }
327
- },
328
- });
329
- };
330
-
331
- export const useReinitializeMCPServerMutation = (): UseMutationResult<
332
- {
333
- success: boolean;
334
- message: string;
335
- serverName: string;
336
- oauthRequired?: boolean;
337
- oauthUrl?: string;
338
- },
339
- unknown,
340
- string,
341
- unknown
342
- > => {
343
- const queryClient = useQueryClient();
344
- return useMutation((serverName: string) => dataService.reinitializeMCPServer(serverName), {
345
- onSuccess: () => {
346
- queryClient.invalidateQueries([QueryKeys.mcpTools]);
347
- },
348
- });
349
- };
350
-
351
- export const useCancelMCPOAuthMutation = (): UseMutationResult<
352
- m.CancelMCPOAuthResponse,
353
- unknown,
354
- string,
355
- unknown
356
- > => {
357
- const queryClient = useQueryClient();
358
- return useMutation((serverName: string) => dataService.cancelMCPOAuth(serverName), {
359
- onSuccess: () => {
360
- queryClient.invalidateQueries([QueryKeys.mcpConnectionStatus]);
361
- },
362
- });
363
- };
364
-
365
- export const useGetCustomConfigSpeechQuery = (
366
- config?: UseQueryOptions<t.TCustomConfigSpeechResponse>,
367
- ): QueryObserverResult<t.TCustomConfigSpeechResponse> => {
368
- return useQuery<t.TCustomConfigSpeechResponse>(
369
- [QueryKeys.customConfigSpeech],
370
- () => dataService.getCustomConfigSpeech(),
371
- {
372
- refetchOnWindowFocus: false,
373
- refetchOnReconnect: false,
374
- refetchOnMount: false,
375
- ...config,
376
- },
377
- );
378
- };
379
-
380
- export const useUpdateFeedbackMutation = (
381
- conversationId: string,
382
- messageId: string,
383
- ): UseMutationResult<t.TUpdateFeedbackResponse, Error, t.TUpdateFeedbackRequest> => {
384
- const queryClient = useQueryClient();
385
- return useMutation(
386
- (payload: t.TUpdateFeedbackRequest) =>
387
- dataService.updateFeedback(conversationId, messageId, payload),
388
- {
389
- onSuccess: () => {
390
- queryClient.invalidateQueries([QueryKeys.messages, messageId]);
391
- },
392
- },
393
- );
394
- };
395
-
396
- export const useSearchPrincipalsQuery = (
397
- params: q.PrincipalSearchParams,
398
- config?: UseQueryOptions<q.PrincipalSearchResponse>,
399
- ): QueryObserverResult<q.PrincipalSearchResponse> => {
400
- return useQuery<q.PrincipalSearchResponse>(
401
- [QueryKeys.principalSearch, params],
402
- () => dataService.searchPrincipals(params),
403
- {
404
- enabled: !!params.q && params.q.length >= 2,
405
- refetchOnWindowFocus: false,
406
- refetchOnReconnect: false,
407
- refetchOnMount: false,
408
- staleTime: 30000,
409
- ...config,
410
- },
411
- );
412
- };
413
-
414
- export const useGetAccessRolesQuery = (
415
- resourceType: ResourceType,
416
- config?: UseQueryOptions<q.AccessRolesResponse>,
417
- ): QueryObserverResult<q.AccessRolesResponse> => {
418
- return useQuery<q.AccessRolesResponse>(
419
- [QueryKeys.accessRoles, resourceType],
420
- () => dataService.getAccessRoles(resourceType),
421
- {
422
- enabled: !!resourceType,
423
- refetchOnWindowFocus: false,
424
- refetchOnReconnect: false,
425
- refetchOnMount: false,
426
- staleTime: 5 * 60 * 1000, // Cache for 5 minutes
427
- ...config,
428
- },
429
- );
430
- };
431
-
432
- export const useGetResourcePermissionsQuery = (
433
- resourceType: ResourceType,
434
- resourceId: string,
435
- config?: UseQueryOptions<permissions.TGetResourcePermissionsResponse>,
436
- ): QueryObserverResult<permissions.TGetResourcePermissionsResponse> => {
437
- return useQuery<permissions.TGetResourcePermissionsResponse>(
438
- [QueryKeys.resourcePermissions, resourceType, resourceId],
439
- () => dataService.getResourcePermissions(resourceType, resourceId),
440
- {
441
- enabled: !!resourceType && !!resourceId,
442
- refetchOnWindowFocus: false,
443
- refetchOnReconnect: false,
444
- refetchOnMount: false,
445
- staleTime: 2 * 60 * 1000, // Cache for 2 minutes
446
- ...config,
447
- },
448
- );
449
- };
450
-
451
- export const useUpdateResourcePermissionsMutation = (): UseMutationResult<
452
- permissions.TUpdateResourcePermissionsResponse,
453
- Error,
454
- {
455
- resourceType: ResourceType;
456
- resourceId: string;
457
- data: permissions.TUpdateResourcePermissionsRequest;
458
- }
459
- > => {
460
- const queryClient = useQueryClient();
461
-
462
- return useMutation({
463
- mutationFn: ({ resourceType, resourceId, data }) =>
464
- dataService.updateResourcePermissions(resourceType, resourceId, data),
465
- onSuccess: (_, variables) => {
466
- queryClient.invalidateQueries({
467
- queryKey: [QueryKeys.accessRoles, variables.resourceType],
468
- });
469
-
470
- queryClient.invalidateQueries({
471
- queryKey: [QueryKeys.resourcePermissions, variables.resourceType, variables.resourceId],
472
- });
473
-
474
- queryClient.invalidateQueries({
475
- queryKey: [QueryKeys.effectivePermissions, variables.resourceType, variables.resourceId],
476
- });
477
- },
478
- });
479
- };
480
-
481
- export const useGetEffectivePermissionsQuery = (
482
- resourceType: ResourceType,
483
- resourceId: string,
484
- config?: UseQueryOptions<permissions.TEffectivePermissionsResponse>,
485
- ): QueryObserverResult<permissions.TEffectivePermissionsResponse> => {
486
- return useQuery<permissions.TEffectivePermissionsResponse>({
487
- queryKey: [QueryKeys.effectivePermissions, resourceType, resourceId],
488
- queryFn: () => dataService.getEffectivePermissions(resourceType, resourceId),
489
- enabled: !!resourceType && !!resourceId,
490
- refetchOnWindowFocus: false,
491
- staleTime: 30000,
492
- ...config,
493
- });
494
- };
495
-
496
- export const useGetAllEffectivePermissionsQuery = (
497
- resourceType: ResourceType,
498
- config?: UseQueryOptions<permissions.TAllEffectivePermissionsResponse>,
499
- ): QueryObserverResult<permissions.TAllEffectivePermissionsResponse> => {
500
- return useQuery<permissions.TAllEffectivePermissionsResponse>({
501
- queryKey: [QueryKeys.effectivePermissions, 'all', resourceType],
502
- queryFn: () => dataService.getAllEffectivePermissions(resourceType),
503
- enabled: !!resourceType,
504
- refetchOnWindowFocus: false,
505
- staleTime: 30000,
506
- ...config,
507
- });
508
- };
509
-
510
- export const useMCPServerConnectionStatusQuery = (
511
- serverName: string,
512
- config?: UseQueryOptions<MCPServerConnectionStatusResponse>,
513
- ): QueryObserverResult<MCPServerConnectionStatusResponse> => {
514
- return useQuery<MCPServerConnectionStatusResponse>(
515
- [QueryKeys.mcpConnectionStatus, serverName],
516
- () => dataService.getMCPServerConnectionStatus(serverName),
517
- {
518
- refetchOnWindowFocus: false,
519
- refetchOnReconnect: false,
520
- refetchOnMount: false,
521
- staleTime: 10000, // 10 seconds
522
- enabled: !!serverName,
523
- ...config,
524
- },
525
- );
526
- };
527
-
528
- export const useGetAgentApiKeysQuery = (
529
- config?: UseQueryOptions<t.TAgentApiKeyListResponse>,
530
- ): QueryObserverResult<t.TAgentApiKeyListResponse> => {
531
- return useQuery<t.TAgentApiKeyListResponse>(
532
- [QueryKeys.agentApiKeys],
533
- () => dataService.getAgentApiKeys(),
534
- {
535
- refetchOnWindowFocus: false,
536
- refetchOnReconnect: false,
537
- refetchOnMount: false,
538
- ...config,
539
- },
540
- );
541
- };
542
-
543
- export const useCreateAgentApiKeyMutation = (): UseMutationResult<
544
- t.TAgentApiKeyCreateResponse,
545
- unknown,
546
- t.TAgentApiKeyCreateRequest
547
- > => {
548
- const queryClient = useQueryClient();
549
- return useMutation(
550
- (payload: t.TAgentApiKeyCreateRequest) => dataService.createAgentApiKey(payload),
551
- {
552
- onSuccess: () => {
553
- queryClient.invalidateQueries([QueryKeys.agentApiKeys]);
554
- },
555
- },
556
- );
557
- };
558
-
559
- export const useDeleteAgentApiKeyMutation = (): UseMutationResult<void, unknown, string> => {
560
- const queryClient = useQueryClient();
561
- return useMutation((id: string) => dataService.deleteAgentApiKey(id), {
562
- onSuccess: () => {
563
- queryClient.invalidateQueries([QueryKeys.agentApiKeys]);
564
- },
565
- });
566
- };