librechat-data-provider 0.8.509 → 0.8.522

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 (61) hide show
  1. package/dist/{data-service-BsdHkdKS.mjs → data-service-CaB7saTP.mjs} +2175 -113
  2. package/dist/data-service-CaB7saTP.mjs.map +1 -0
  3. package/dist/{data-service-XTxx76uB.js → data-service-D5kHzBt-.js} +2806 -150
  4. package/dist/data-service-D5kHzBt-.js.map +1 -0
  5. package/dist/index.js +1403 -92
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +1248 -93
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/react-query/index.js +2 -1
  10. package/dist/react-query/index.js.map +1 -1
  11. package/dist/react-query/index.mjs +2 -1
  12. package/dist/react-query/index.mjs.map +1 -1
  13. package/dist/types/accessPermissions.d.ts +4 -0
  14. package/dist/types/actions.d.ts +3 -3
  15. package/dist/types/agentToolOptions.d.ts +11 -0
  16. package/dist/types/api-endpoints.d.ts +28 -2
  17. package/dist/types/bedrock.d.ts +220 -0
  18. package/dist/types/cadence.d.ts +33 -0
  19. package/dist/types/codeEnvRef.d.ts +21 -0
  20. package/dist/types/config.d.ts +13457 -1573
  21. package/dist/types/data-service.d.ts +65 -14
  22. package/dist/types/feedback.d.ts +9 -1
  23. package/dist/types/file-config.d.ts +42 -5
  24. package/dist/types/filters.d.ts +1422 -0
  25. package/dist/types/generate.d.ts +85 -1
  26. package/dist/types/index.d.ts +10 -0
  27. package/dist/types/keys.d.ts +29 -4
  28. package/dist/types/langchain.d.ts +4 -0
  29. package/dist/types/limits.d.ts +13 -0
  30. package/dist/types/mcp.d.ts +338 -228
  31. package/dist/types/messages.d.ts +13 -0
  32. package/dist/types/models.d.ts +840 -68
  33. package/dist/types/parameterSettings.d.ts +7 -3
  34. package/dist/types/parsers.d.ts +13 -1
  35. package/dist/types/permissions.d.ts +42 -1
  36. package/dist/types/providers.d.ts +36 -0
  37. package/dist/types/react-query/react-query-service.d.ts +2 -7
  38. package/dist/types/request.d.ts +4 -2
  39. package/dist/types/roles.d.ts +34 -0
  40. package/dist/types/runSteps.d.ts +59 -0
  41. package/dist/types/schemas.d.ts +1358 -34
  42. package/dist/types/stateful-code.d.ts +7 -0
  43. package/dist/types/types/agents.d.ts +303 -8
  44. package/dist/types/types/assistants.d.ts +170 -7
  45. package/dist/types/types/files.d.ts +29 -8
  46. package/dist/types/types/index.d.ts +2 -0
  47. package/dist/types/types/insights.d.ts +62 -0
  48. package/dist/types/types/mcpServers.d.ts +25 -0
  49. package/dist/types/types/mutations.d.ts +2 -0
  50. package/dist/types/types/queries.d.ts +47 -5
  51. package/dist/types/types/queuedTurns.d.ts +870 -0
  52. package/dist/types/types/runs.d.ts +206 -26
  53. package/dist/types/types/schedules.d.ts +306 -0
  54. package/dist/types/types/skills.d.ts +34 -6
  55. package/dist/types/types/subagents.d.ts +159 -0
  56. package/dist/types/types/web.d.ts +12 -2
  57. package/dist/types/types.d.ts +175 -2
  58. package/dist/types/upload.d.ts +2 -0
  59. package/package.json +7 -5
  60. package/dist/data-service-BsdHkdKS.mjs.map +0 -1
  61. package/dist/data-service-XTxx76uB.js.map +0 -1
@@ -0,0 +1,159 @@
1
+ export type SubagentThreadStatus = 'dispatched' | 'running' | 'completed' | 'failed' | 'interrupted' | 'cancelled';
2
+ export type ParentSubagentTaskSummary = {
3
+ taskId: string;
4
+ status: SubagentThreadStatus;
5
+ createdAt?: string;
6
+ };
7
+ /**
8
+ * Bounded discovery projection for one child owned by a parent conversation.
9
+ * Event-delivery identities stay private; `actorId` is the only event-binding
10
+ * field intentionally exposed to the parent's UI.
11
+ */
12
+ export type ParentSubagentSummary = {
13
+ threadId: string;
14
+ parentMessageId: string;
15
+ /** Present only for ordinary tool-spawned children. */
16
+ parentToolCallId?: string;
17
+ subagentType: string;
18
+ subagentKind: 'agent' | 'graph';
19
+ agentId?: string;
20
+ title: string;
21
+ origin: 'tool' | 'event';
22
+ actorId?: string;
23
+ status: SubagentThreadStatus;
24
+ updatedAt?: string;
25
+ latestTaskId?: string;
26
+ tasks: ParentSubagentTaskSummary[];
27
+ tasksTruncated: boolean;
28
+ };
29
+ export type ParentSubagentIndex = {
30
+ parentConversationId: string;
31
+ children: ParentSubagentSummary[];
32
+ childrenTruncated: boolean;
33
+ };
34
+ /**
35
+ * A bounded, presentation-safe description of child work. This deliberately
36
+ * models user-visible activity instead of the LangChain messages, SSE events,
37
+ * or durable records that produced it.
38
+ */
39
+ export type SubagentActivityItem = {
40
+ type: 'writing';
41
+ text: string;
42
+ textTruncated?: boolean;
43
+ } | {
44
+ type: 'reasoning';
45
+ /** Bounded user-visible reasoning text; absent on projections persisted
46
+ * before reasoning retention (rendered as a marker). */
47
+ text?: string;
48
+ textTruncated?: boolean;
49
+ } | {
50
+ type: 'activity_label';
51
+ label: string;
52
+ labelType?: 'phase';
53
+ toolCallIds?: string[];
54
+ activityStartIndex?: number;
55
+ activityEndIndex?: number;
56
+ activityCount?: number;
57
+ agentIds?: string[];
58
+ status?: 'ok' | 'partial' | 'failed';
59
+ pending?: boolean;
60
+ labelTruncated?: boolean;
61
+ } | {
62
+ type: 'tool';
63
+ toolCallId: string;
64
+ name: string;
65
+ input?: string;
66
+ output?: string;
67
+ status: 'running' | 'completed' | 'failed' | 'cancelled';
68
+ inputValidationError?: true;
69
+ inputTruncated?: boolean;
70
+ outputTruncated?: boolean;
71
+ };
72
+ export type SubagentControlAction = 'steer' | 'queue' | 'interrupt' | 'cancel' | 'cancel_message';
73
+ export type SubagentControlReceipt = {
74
+ invocationId: string;
75
+ controlId?: string;
76
+ action: SubagentControlAction;
77
+ status: 'accepted' | 'applied' | 'rejected' | 'failed';
78
+ createdAt: string;
79
+ updatedAt: string;
80
+ boundary?: 'preempt' | 'tool' | 'turn';
81
+ reason?: string;
82
+ message?: string;
83
+ messageTruncated?: boolean;
84
+ };
85
+ export type SubagentControlRequest = {
86
+ taskId: string;
87
+ invocationId: string;
88
+ action: SubagentControlAction;
89
+ message?: string;
90
+ controlId?: string;
91
+ };
92
+ export type SubagentControlResponse = {
93
+ receipt: SubagentControlReceipt;
94
+ };
95
+ export type SubagentThreadMessage = {
96
+ messageId: string;
97
+ parentMessageId: string | null;
98
+ role: 'user' | 'assistant';
99
+ text: string;
100
+ createdAt?: string;
101
+ error?: boolean;
102
+ textTruncated?: boolean;
103
+ };
104
+ export type SubagentThreadTriggerKind = 'parent_dispatch' | 'parent_continuation' | 'external_event';
105
+ export type SubagentExternalEventDetails = {
106
+ eventType: string;
107
+ sourceType: string;
108
+ occurredAt: string;
109
+ expectedActionToolName?: string;
110
+ };
111
+ /**
112
+ * One chronological child execution boundary. The trigger is host-authored,
113
+ * while activity and messages are bounded public projections of the child run.
114
+ */
115
+ export type SubagentThreadTurn = {
116
+ taskId: string;
117
+ trigger: {
118
+ kind: SubagentThreadTriggerKind;
119
+ summary: string;
120
+ createdAt?: string;
121
+ summaryTruncated?: boolean;
122
+ externalEvent?: SubagentExternalEventDetails;
123
+ };
124
+ status: SubagentThreadStatus;
125
+ activity: SubagentActivityItem[];
126
+ activityTruncated: boolean;
127
+ controlReceipts?: SubagentControlReceipt[];
128
+ controlReceiptsTruncated?: boolean;
129
+ messages: SubagentThreadMessage[];
130
+ };
131
+ export type SubagentThreadView = {
132
+ threadId: string;
133
+ parentConversationId: string;
134
+ parentMessageId: string;
135
+ parentToolCallId: string;
136
+ subagentType: string;
137
+ subagentKind: 'agent' | 'graph';
138
+ /** Product recursion level, currently bounded to one by the host runtime. */
139
+ depth?: number;
140
+ agentId?: string;
141
+ title: string;
142
+ status: SubagentThreadStatus;
143
+ /** Activity for the exact task requested by the parent card, when retained. */
144
+ activity: SubagentActivityItem[];
145
+ activityTruncated: boolean;
146
+ /** Bounded authoritative parent-to-child command receipts for this task. */
147
+ controlReceipts?: SubagentControlReceipt[];
148
+ /** True when older authoritative command receipts were omitted from this view. */
149
+ controlReceiptsTruncated?: boolean;
150
+ /** Chronological, branch-selected child history for conversation-native rendering. */
151
+ turns?: SubagentThreadTurn[];
152
+ messages: SubagentThreadMessage[];
153
+ historyTruncated: boolean;
154
+ /** True when some branch rows were omitted and cannot be recovered with `nextCursor`. */
155
+ historyUnavailable?: boolean;
156
+ /** Opaque task-message cursor for the next older bounded branch page. */
157
+ nextCursor?: string;
158
+ updatedAt?: string;
159
+ };
@@ -9,8 +9,8 @@ export declare enum DATE_RANGE {
9
9
  PAST_MONTH = "m",
10
10
  PAST_YEAR = "y"
11
11
  }
12
- export type SearchProvider = 'serper' | 'searxng' | 'tavily';
13
- export type ScraperProvider = 'firecrawl' | 'serper' | 'tavily';
12
+ export type SearchProvider = 'serper' | 'searxng' | 'tavily' | 'keenable';
13
+ export type ScraperProvider = 'firecrawl' | 'serper' | 'tavily' | 'keenable';
14
14
  export type RerankerType = 'infinity' | 'jina' | 'cohere' | 'none';
15
15
  export interface Highlight {
16
16
  score: number;
@@ -68,9 +68,13 @@ export interface SearchConfig {
68
68
  serperApiKey?: string;
69
69
  searxngInstanceUrl?: string;
70
70
  searxngApiKey?: string;
71
+ searxngSearchOptions?: z.infer<typeof webSearchSchema>['searxngSearchOptions'];
71
72
  tavilyApiKey?: string;
72
73
  tavilySearchUrl?: string;
73
74
  tavilySearchOptions?: TavilyConfig['tavilySearchOptions'];
75
+ keenableApiKey?: string;
76
+ keenableApiUrl?: string;
77
+ keenableSearchOptions?: KeenableConfig['keenableSearchOptions'];
74
78
  }
75
79
  export type References = {
76
80
  links: MediaReference[];
@@ -130,6 +134,12 @@ export interface TavilyConfig {
130
134
  tavilySearchOptions?: z.infer<typeof webSearchSchema>['tavilySearchOptions'];
131
135
  tavilyScraperOptions?: z.infer<typeof webSearchSchema>['tavilyScraperOptions'];
132
136
  }
137
+ export interface KeenableConfig {
138
+ keenableApiKey?: string;
139
+ keenableApiUrl?: string;
140
+ keenableSearchOptions?: z.infer<typeof webSearchSchema>['keenableSearchOptions'];
141
+ keenableScraperOptions?: z.infer<typeof webSearchSchema>['keenableScraperOptions'];
142
+ }
133
143
  export interface ScraperContentResult {
134
144
  content: string;
135
145
  }
@@ -1,11 +1,14 @@
1
1
  import type { InfiniteData } from '@tanstack/react-query';
2
2
  import type { TConversationTag, EModelEndpoint, TConversation, TSharedLink, TAttachment, TMessage, TBanner, ReasoningResponseKey, ReasoningParameterFormat } from './schemas';
3
+ import type { CodeEnvironmentUserConfigSchema, CodeEnvironmentUserSettings } from './config';
4
+ import type { Agent, EToolResources, StatefulCodeEnvironment } from './types/assistants';
3
5
  import type { RefillIntervalUnit } from './balance';
4
6
  import type { SettingDefinition } from './generate';
5
7
  import type { TMinimalFeedback } from './feedback';
6
8
  import type { ContentTypes } from './types/runs';
7
- import type { Agent } from './types/assistants';
9
+ import type { ProviderId } from './providers';
8
10
  export * from './schemas';
11
+ export * from './types/subagents';
9
12
  export type TMessages = TMessage[];
10
13
  export type TEndpointOption = Pick<TConversation, 'endpoint' | 'endpointType' | 'model' | 'modelLabel' | 'chatGptLabel' | 'promptPrefix' | 'temperature' | 'topP' | 'topK' | 'top_p' | 'frequency_penalty' | 'presence_penalty' | 'maxOutputTokens' | 'maxContextTokens' | 'max_tokens' | 'maxTokens' | 'resendFiles' | 'imageDetail' | 'reasoning_effort' | 'verbosity' | 'instructions' | 'additional_instructions' | 'append_current_datetime' | 'tools' | 'stop' | 'region' | 'additionalModelRequestFields' | 'promptCache' | 'promptCacheTtl' | 'thinking' | 'thinkingBudget' | 'thinkingLevel' | 'effort' | 'thinkingDisplay' | 'assistant_id' | 'agent_id' | 'iconURL' | 'greeting' | 'spec' | 'artifacts' | 'file_ids' | 'system' | 'chatProjectId' | 'examples' | 'context'> & {
11
14
  modelDisplayLabel?: string;
@@ -29,6 +32,21 @@ export type TEphemeralAgent = {
29
32
  execute_code?: boolean;
30
33
  artifacts?: string;
31
34
  skills?: boolean;
35
+ memory?: boolean;
36
+ /** Equip the ephemeral agent with the `ask_user_question` HITL tool. */
37
+ ask_user_question?: boolean;
38
+ /**
39
+ * Let the model dispatch this ephemeral agent's eligible tool calls in the
40
+ * background (poll results via `check_background_task`). Requires the
41
+ * `run_in_background` agent capability to be enabled by the admin.
42
+ */
43
+ run_in_background?: boolean;
44
+ /**
45
+ * Inject the `intent` label param into this ephemeral agent's eligible
46
+ * tools so each call streams a live status label. Requires the
47
+ * `tool_intents` agent capability to be enabled by the admin.
48
+ */
49
+ describe_intent?: boolean;
32
50
  };
33
51
  export type TPayload = Partial<TMessage> & Partial<TEndpointOption> & {
34
52
  isContinued: boolean;
@@ -49,6 +67,21 @@ export type TPayload = Partial<TMessage> & Partial<TEndpointOption> & {
49
67
  manualSkills?: string[];
50
68
  /** Browser IANA timezone (e.g. `America/New_York`) used to resolve local-time prompt variables server-side. */
51
69
  timezone?: string;
70
+ /**
71
+ * Stable per-submission idempotency key (uuid) generated once per `ask()`. Identical
72
+ * across the client's start-generation network retries, unique per user action (including
73
+ * regenerate). The server dedups retried start requests on it so a lost/reset response
74
+ * cannot trigger a second billed generation.
75
+ */
76
+ clientRequestId?: string;
77
+ /** Parked steer source consumed only after this new turn's user message is
78
+ * durably saved. Separate from `clientRequestId`, which identifies one
79
+ * generation attempt and must rotate after a failed recovery. */
80
+ recoverySteerId?: string;
81
+ /** Optional optimistic-serialization fence for a queued follow-up. The
82
+ * server may create only if this observed predecessor is still current or
83
+ * the conversation is still idle after its cleanup. */
84
+ expectedPredecessorCreatedAt?: number;
52
85
  };
53
86
  export type TEditedContent = {
54
87
  index: number;
@@ -74,10 +107,44 @@ export type TSubmission = {
74
107
  clientTimestamp?: string;
75
108
  ephemeralAgent?: TEphemeralAgent | null;
76
109
  editedContent?: TEditedContent | null;
110
+ /**
111
+ * Length of the retained content prefix for an edited resubmission, captured
112
+ * when the submission is built.
113
+ *
114
+ * The server indexes only NEW content, so the client offsets incoming
115
+ * indices by the prefix it kept. `initialResponse.content` cannot be used
116
+ * for that after a reconnect: the resume sync overwrites it with the
117
+ * server's completion-local snapshot, whose length is unrelated to the
118
+ * prefix. Recording the length up front keeps the offset stable across
119
+ * resumes for run steps and activity labels alike.
120
+ */
121
+ editPrefixLength?: number;
122
+ /** True once server index 0 text/reasoning actually merged into the retained tail. */
123
+ editPrefixFirstPartFolded?: boolean;
124
+ /**
125
+ * Set once a resume SYNC has replaced the response's retained prefix with
126
+ * the server's completion-local snapshot. From that point the prefix is
127
+ * gone from the rendered message and server indices are absolute in the
128
+ * new space, so {@link editPrefixLength} must NOT be applied — by run
129
+ * steps or by activity labels. Both event paths read this flag so a
130
+ * batch's tool cards and its header always land in one index space.
131
+ *
132
+ * Stamped per event by the resumable transport, which owns the SYNC
133
+ * boundary; the non-resumable path never sets it.
134
+ */
135
+ editPrefixCleared?: boolean;
77
136
  /** Added conversation for multi-convo feature */
78
137
  addedConvo?: TConversation;
79
138
  /** Skills the user invoked via the `$` popover for this submission. */
80
139
  manualSkills?: string[];
140
+ /** Stable per-submission idempotency key (uuid) forwarded to the server to dedup retried start-generation requests. */
141
+ clientRequestId?: string;
142
+ /** Client-only carry-through for a receipt-bound queued recovery. */
143
+ recoverySteerId?: string;
144
+ expectedPredecessorCreatedAt?: number;
145
+ /** Opaque client-only queue restoration metadata; intentionally omitted by
146
+ * `createPayload`. */
147
+ queuedMessageOrigin?: unknown;
81
148
  };
82
149
  export type EventSubmission = Omit<TSubmission, 'initialResponse'> & {
83
150
  initialResponse: TMessage;
@@ -108,6 +175,8 @@ export type TMarketplaceCategory = TCategory & {
108
175
  export type TError = {
109
176
  message: string;
110
177
  code?: number | string;
178
+ file_id?: string;
179
+ tool_resource?: EToolResources;
111
180
  response?: {
112
181
  data?: {
113
182
  message?: string;
@@ -134,10 +203,18 @@ export type TUser = {
134
203
  backupCodes?: TBackupCode[];
135
204
  personalization?: {
136
205
  memories?: boolean;
206
+ statefulCodeEnvironment?: StatefulCodeEnvironment;
137
207
  };
138
208
  createdAt: string;
139
209
  updatedAt: string;
140
210
  };
211
+ export type TUpdateUserPreferencesRequest = {
212
+ statefulCodeEnvironment: StatefulCodeEnvironment;
213
+ };
214
+ export type TUpdateUserPreferencesResponse = {
215
+ updated: boolean;
216
+ preferences: TUpdateUserPreferencesRequest;
217
+ };
141
218
  export type TGetConversationsResponse = {
142
219
  conversations: TConversation[];
143
220
  pageNumber: string;
@@ -239,6 +316,9 @@ export type TArchiveConversationRequest = {
239
316
  isArchived: boolean;
240
317
  };
241
318
  export type TArchiveConversationResponse = TConversation;
319
+ export type TArchiveAllConversationsResponse = {
320
+ archivedCount: number;
321
+ };
242
322
  export type TPinConversationRequest = {
243
323
  conversationId: string;
244
324
  pinned: boolean;
@@ -246,6 +326,7 @@ export type TPinConversationRequest = {
246
326
  export type TPinConversationResponse = TConversation;
247
327
  export type TSharedMessagesResponse = Omit<TSharedLink, 'messages'> & {
248
328
  messages: TMessage[];
329
+ langfuseSessionUrl?: string;
249
330
  };
250
331
  export type TCreateShareLinkRequest = Pick<TConversation, 'conversationId'>;
251
332
  export type TUpdateShareLinkRequest = Pick<TSharedLink, 'shareId' | 'targetMessageId'>;
@@ -287,6 +368,17 @@ export type TForkConvoResponse = {
287
368
  conversation: TConversation;
288
369
  messages: TMessage[];
289
370
  };
371
+ export type TForkSharedConvoRequest = {
372
+ shareId: string;
373
+ /** Index of the viewer's active message within the shared payload; reduces the
374
+ * fork to that branch. An index is used because shared ids are re-anonymized
375
+ * per request and `createdAt` can collide, while the payload order is stable. */
376
+ targetMessageIndex?: number;
377
+ /** `updatedAt` of the shared payload being forked. The shareId survives an
378
+ * owner update, so the server rejects a fork whose payload has since moved
379
+ * instead of resolving the index against different messages. */
380
+ shareRevision?: string;
381
+ };
290
382
  export type TSearchResults = {
291
383
  conversations: TConversation[];
292
384
  messages: TMessage[];
@@ -295,6 +387,43 @@ export type TSearchResults = {
295
387
  pages: string | number;
296
388
  filter: object;
297
389
  };
390
+ export type TPublicCodeEnvironment = {
391
+ id: string;
392
+ name: string;
393
+ type: 'managed' | 'attached';
394
+ default?: boolean;
395
+ pairingAvailable?: boolean;
396
+ configSchema?: CodeEnvironmentUserConfigSchema;
397
+ settings?: CodeEnvironmentUserSettings;
398
+ };
399
+ export type TCodeEnvironmentSummary = {
400
+ resourceId: string;
401
+ id: string;
402
+ name: string;
403
+ type: 'managed' | 'attached';
404
+ canEdit?: boolean;
405
+ canDelete: boolean;
406
+ configSchema?: CodeEnvironmentUserConfigSchema;
407
+ settings?: CodeEnvironmentUserSettings;
408
+ };
409
+ export type TCodeControlPlane = {
410
+ id: string;
411
+ name: string;
412
+ configSchema?: CodeEnvironmentUserConfigSchema;
413
+ };
414
+ export type TCodeEnvironmentsResponse = {
415
+ environments: TCodeEnvironmentSummary[];
416
+ controlPlanes: TCodeControlPlane[];
417
+ };
418
+ export type TCodeEnvironmentPairingResponse = {
419
+ environment: TCodeEnvironmentSummary;
420
+ pairing: {
421
+ workerId: string;
422
+ code: string;
423
+ expiresAt: string;
424
+ endpoint: string;
425
+ };
426
+ };
298
427
  export type TConfig = {
299
428
  order: number;
300
429
  type?: EModelEndpoint;
@@ -305,6 +434,8 @@ export type TConfig = {
305
434
  plugins?: Record<string, string>;
306
435
  name?: string;
307
436
  iconURL?: string;
437
+ /** Canonical provider identity resolved at config load, used for branding. */
438
+ providerId?: ProviderId;
308
439
  version?: string;
309
440
  modelDisplayLabel?: string;
310
441
  userProvide?: boolean | null;
@@ -316,6 +447,12 @@ export type TConfig = {
316
447
  disableBuilder?: boolean;
317
448
  retrievalModels?: string[];
318
449
  capabilities?: string[];
450
+ statefulCodeSessions?: {
451
+ allowedEnvironments: StatefulCodeEnvironment[];
452
+ environments?: TPublicCodeEnvironment[];
453
+ };
454
+ /** Effective subagents-per-agent cap served from `endpoints.agents.maxSubagents`. */
455
+ maxSubagents?: number;
319
456
  customParams?: {
320
457
  defaultParamsEndpoint?: string;
321
458
  reasoningFormat?: ReasoningParameterFormat;
@@ -557,9 +694,11 @@ export type TCustomConfigSpeechResponse = {
557
694
  };
558
695
  export type TUserTermsResponse = {
559
696
  termsAccepted: boolean;
697
+ termsAcceptedAt: Date | string | null;
560
698
  };
561
699
  export type TAcceptTermsResponse = {
562
- success: boolean;
700
+ message: string;
701
+ termsAcceptedAt: Date | string;
563
702
  };
564
703
  export type TBannerResponse = TBanner | null;
565
704
  export type TUpdateFeedbackRequest = {
@@ -621,3 +760,37 @@ export type TUpdateSkillNodeRequest = {
621
760
  parentId?: string | null;
622
761
  order?: number;
623
762
  };
763
+ export type TLangfuseConnectionStatus = {
764
+ configured: boolean;
765
+ enabled: boolean;
766
+ destinations: TLangfuseDestinationOption[];
767
+ destination?: string;
768
+ publicKey?: string;
769
+ secretKeyPreview?: string;
770
+ updatedAt?: string;
771
+ };
772
+ export type TLangfuseDestinationOption = {
773
+ key: string;
774
+ baseUrl: string;
775
+ };
776
+ export type TUpdateLangfuseConnectionRequest = {
777
+ enabled: boolean;
778
+ destination: string;
779
+ publicKey: string;
780
+ secretKey?: string;
781
+ };
782
+ export type TLangfuseConnectionTestRequest = {
783
+ destination: string;
784
+ publicKey: string;
785
+ secretKey?: string;
786
+ };
787
+ export type TLangfuseConnectionTestErrorCode = 'invalid_credentials' | 'access_denied' | 'rate_limited' | 'server_error' | 'timeout' | 'unreachable' | 'missing_secret' | 'stored_secret_unavailable' | 'unexpected_response';
788
+ export type TLangfuseConnectionTestResponse = {
789
+ success: true;
790
+ } | {
791
+ success: false;
792
+ errorCode: TLangfuseConnectionTestErrorCode;
793
+ };
794
+ export type TLangfuseSessionLinkResponse = {
795
+ url: string | null;
796
+ };
@@ -0,0 +1,2 @@
1
+ import type { TFileUpload } from './types/files';
2
+ export declare function uploadEventStream(url: string, formData: FormData, signal?: AbortSignal | null): Promise<TFileUpload>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "librechat-data-provider",
3
- "version": "0.8.509",
3
+ "version": "0.8.522",
4
4
  "description": "data services for librechat apps",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -43,9 +43,11 @@
43
43
  },
44
44
  "homepage": "https://librechat.ai",
45
45
  "dependencies": {
46
- "axios": "^1.16.0",
46
+ "axios": "^1.20.0",
47
+ "croner": "^10.0.1",
47
48
  "dayjs": "^1.11.13",
48
- "js-yaml": "^4.2.0",
49
+ "js-yaml": "^4.3.1",
50
+ "re2js": "^2.8.6",
49
51
  "zod": "^3.22.4"
50
52
  },
51
53
  "devDependencies": {
@@ -61,14 +63,14 @@
61
63
  "@types/js-yaml": "^4.0.9",
62
64
  "@types/node": "^24.12.4",
63
65
  "@types/react": "^18.2.18",
64
- "@types/winston": "^2.4.4",
65
66
  "jest": "^30.2.0",
66
67
  "jest-junit": "^17.0.0",
67
68
  "openapi-types": "^12.1.3",
68
69
  "rimraf": "^6.1.3",
69
70
  "rollup": "^4.34.9",
70
71
  "tsdown": "^0.22.2",
71
- "typescript": "^5.9.3"
72
+ "typescript": "^5.9.3",
73
+ "winston": "^3.17.0"
72
74
  },
73
75
  "peerDependencies": {
74
76
  "@tanstack/react-query": "^4.28.0"