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.
- package/dist/{data-service-BsdHkdKS.mjs → data-service-CaB7saTP.mjs} +2175 -113
- package/dist/data-service-CaB7saTP.mjs.map +1 -0
- package/dist/{data-service-XTxx76uB.js → data-service-D5kHzBt-.js} +2806 -150
- package/dist/data-service-D5kHzBt-.js.map +1 -0
- package/dist/index.js +1403 -92
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1248 -93
- package/dist/index.mjs.map +1 -1
- package/dist/react-query/index.js +2 -1
- package/dist/react-query/index.js.map +1 -1
- package/dist/react-query/index.mjs +2 -1
- package/dist/react-query/index.mjs.map +1 -1
- package/dist/types/accessPermissions.d.ts +4 -0
- package/dist/types/actions.d.ts +3 -3
- package/dist/types/agentToolOptions.d.ts +11 -0
- package/dist/types/api-endpoints.d.ts +28 -2
- package/dist/types/bedrock.d.ts +220 -0
- package/dist/types/cadence.d.ts +33 -0
- package/dist/types/codeEnvRef.d.ts +21 -0
- package/dist/types/config.d.ts +13457 -1573
- package/dist/types/data-service.d.ts +65 -14
- package/dist/types/feedback.d.ts +9 -1
- package/dist/types/file-config.d.ts +42 -5
- package/dist/types/filters.d.ts +1422 -0
- package/dist/types/generate.d.ts +85 -1
- package/dist/types/index.d.ts +10 -0
- package/dist/types/keys.d.ts +29 -4
- package/dist/types/langchain.d.ts +4 -0
- package/dist/types/limits.d.ts +13 -0
- package/dist/types/mcp.d.ts +338 -228
- package/dist/types/messages.d.ts +13 -0
- package/dist/types/models.d.ts +840 -68
- package/dist/types/parameterSettings.d.ts +7 -3
- package/dist/types/parsers.d.ts +13 -1
- package/dist/types/permissions.d.ts +42 -1
- package/dist/types/providers.d.ts +36 -0
- package/dist/types/react-query/react-query-service.d.ts +2 -7
- package/dist/types/request.d.ts +4 -2
- package/dist/types/roles.d.ts +34 -0
- package/dist/types/runSteps.d.ts +59 -0
- package/dist/types/schemas.d.ts +1358 -34
- package/dist/types/stateful-code.d.ts +7 -0
- package/dist/types/types/agents.d.ts +303 -8
- package/dist/types/types/assistants.d.ts +170 -7
- package/dist/types/types/files.d.ts +29 -8
- package/dist/types/types/index.d.ts +2 -0
- package/dist/types/types/insights.d.ts +62 -0
- package/dist/types/types/mcpServers.d.ts +25 -0
- package/dist/types/types/mutations.d.ts +2 -0
- package/dist/types/types/queries.d.ts +47 -5
- package/dist/types/types/queuedTurns.d.ts +870 -0
- package/dist/types/types/runs.d.ts +206 -26
- package/dist/types/types/schedules.d.ts +306 -0
- package/dist/types/types/skills.d.ts +34 -6
- package/dist/types/types/subagents.d.ts +159 -0
- package/dist/types/types/web.d.ts +12 -2
- package/dist/types/types.d.ts +175 -2
- package/dist/types/upload.d.ts +2 -0
- package/package.json +7 -5
- package/dist/data-service-BsdHkdKS.mjs.map +0 -1
- 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
|
}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -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 {
|
|
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
|
-
|
|
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
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "librechat-data-provider",
|
|
3
|
-
"version": "0.8.
|
|
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.
|
|
46
|
+
"axios": "^1.20.0",
|
|
47
|
+
"croner": "^10.0.1",
|
|
47
48
|
"dayjs": "^1.11.13",
|
|
48
|
-
"js-yaml": "^4.
|
|
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"
|