librechat-data-provider 0.8.402 → 0.8.404

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 (109) hide show
  1. package/dist/index.es.js +1 -1
  2. package/dist/index.es.js.map +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/react-query/index.es.js +1 -1
  6. package/dist/react-query/index.es.js.map +1 -1
  7. package/dist/types/accessPermissions.d.ts +744 -0
  8. package/dist/types/actions.d.ts +118 -0
  9. package/dist/types/api-endpoints.d.ts +150 -0
  10. package/dist/types/artifacts.d.ts +97 -0
  11. package/dist/types/azure.d.ts +22 -0
  12. package/dist/types/bedrock.d.ts +1220 -0
  13. package/dist/types/config.d.ts +14849 -0
  14. package/dist/types/config.spec.d.ts +1 -0
  15. package/dist/types/createPayload.d.ts +5 -0
  16. package/dist/types/data-service.d.ts +287 -0
  17. package/dist/types/feedback.d.ts +36 -0
  18. package/dist/types/file-config.d.ts +263 -0
  19. package/dist/types/file-config.spec.d.ts +1 -0
  20. package/dist/types/generate.d.ts +597 -0
  21. package/dist/types/headers-helpers.d.ts +2 -0
  22. package/{src/index.ts → dist/types/index.d.ts} +0 -15
  23. package/dist/types/keys.d.ts +92 -0
  24. package/dist/types/mcp.d.ts +2760 -0
  25. package/dist/types/messages.d.ts +10 -0
  26. package/dist/types/models.d.ts +1547 -0
  27. package/dist/types/parameterSettings.d.ts +69 -0
  28. package/dist/types/parsers.d.ts +110 -0
  29. package/dist/types/permissions.d.ts +522 -0
  30. package/dist/types/react-query/react-query-service.d.ts +85 -0
  31. package/dist/types/request.d.ts +25 -0
  32. package/dist/types/roles.d.ts +554 -0
  33. package/dist/types/roles.spec.d.ts +1 -0
  34. package/dist/types/schemas.d.ts +5110 -0
  35. package/dist/types/schemas.spec.d.ts +1 -0
  36. package/dist/types/types/agents.d.ts +433 -0
  37. package/dist/types/types/assistants.d.ts +547 -0
  38. package/dist/types/types/files.d.ts +172 -0
  39. package/dist/types/types/graph.d.ts +135 -0
  40. package/{src/types/mcpServers.ts → dist/types/types/mcpServers.d.ts} +12 -18
  41. package/dist/types/types/mutations.d.ts +209 -0
  42. package/dist/types/types/queries.d.ts +169 -0
  43. package/dist/types/types/runs.d.ts +36 -0
  44. package/dist/types/types/web.d.ts +520 -0
  45. package/dist/types/types.d.ts +503 -0
  46. package/dist/types/utils.d.ts +12 -0
  47. package/package.json +5 -1
  48. package/babel.config.js +0 -4
  49. package/check_updates.sh +0 -52
  50. package/jest.config.js +0 -19
  51. package/react-query/package-lock.json +0 -292
  52. package/react-query/package.json +0 -10
  53. package/rollup.config.js +0 -74
  54. package/server-rollup.config.js +0 -40
  55. package/specs/actions.spec.ts +0 -2533
  56. package/specs/api-endpoints-subdir.spec.ts +0 -140
  57. package/specs/api-endpoints.spec.ts +0 -74
  58. package/specs/azure.spec.ts +0 -844
  59. package/specs/bedrock.spec.ts +0 -862
  60. package/specs/filetypes.spec.ts +0 -175
  61. package/specs/generate.spec.ts +0 -770
  62. package/specs/headers-helpers.spec.ts +0 -24
  63. package/specs/mcp.spec.ts +0 -147
  64. package/specs/openapiSpecs.ts +0 -524
  65. package/specs/parsers.spec.ts +0 -601
  66. package/specs/request-interceptor.spec.ts +0 -304
  67. package/specs/utils.spec.ts +0 -196
  68. package/src/accessPermissions.ts +0 -346
  69. package/src/actions.ts +0 -813
  70. package/src/api-endpoints.ts +0 -440
  71. package/src/artifacts.ts +0 -3104
  72. package/src/azure.ts +0 -328
  73. package/src/bedrock.ts +0 -425
  74. package/src/config.spec.ts +0 -315
  75. package/src/config.ts +0 -2006
  76. package/src/createPayload.ts +0 -46
  77. package/src/data-service.ts +0 -1087
  78. package/src/feedback.ts +0 -141
  79. package/src/file-config.spec.ts +0 -1248
  80. package/src/file-config.ts +0 -764
  81. package/src/generate.ts +0 -634
  82. package/src/headers-helpers.ts +0 -13
  83. package/src/keys.ts +0 -99
  84. package/src/mcp.ts +0 -271
  85. package/src/messages.ts +0 -50
  86. package/src/models.ts +0 -69
  87. package/src/parameterSettings.ts +0 -1111
  88. package/src/parsers.ts +0 -563
  89. package/src/permissions.ts +0 -188
  90. package/src/react-query/react-query-service.ts +0 -566
  91. package/src/request.ts +0 -171
  92. package/src/roles.spec.ts +0 -132
  93. package/src/roles.ts +0 -225
  94. package/src/schemas.spec.ts +0 -355
  95. package/src/schemas.ts +0 -1234
  96. package/src/types/agents.ts +0 -470
  97. package/src/types/assistants.ts +0 -654
  98. package/src/types/files.ts +0 -191
  99. package/src/types/graph.ts +0 -145
  100. package/src/types/mutations.ts +0 -422
  101. package/src/types/queries.ts +0 -208
  102. package/src/types/runs.ts +0 -40
  103. package/src/types/web.ts +0 -588
  104. package/src/types.ts +0 -676
  105. package/src/utils.ts +0 -85
  106. package/tsconfig.json +0 -28
  107. package/tsconfig.spec.json +0 -10
  108. /package/{src/react-query/index.ts → dist/types/react-query/index.d.ts} +0 -0
  109. /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
- };