librechat-data-provider 0.8.521 → 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-pwrlWjJs.mjs → data-service-CaB7saTP.mjs} +1145 -37
- package/dist/data-service-CaB7saTP.mjs.map +1 -0
- package/dist/{data-service-DOIF4BkW.js → data-service-D5kHzBt-.js} +1588 -36
- package/dist/data-service-D5kHzBt-.js.map +1 -0
- package/dist/index.js +947 -36
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +825 -37
- 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 +2 -2
- package/dist/types/agentToolOptions.d.ts +11 -0
- package/dist/types/api-endpoints.d.ts +18 -0
- package/dist/types/bedrock.d.ts +168 -0
- package/dist/types/cadence.d.ts +33 -0
- package/dist/types/codeEnvRef.d.ts +21 -0
- package/dist/types/config.d.ts +9060 -1135
- package/dist/types/data-service.d.ts +40 -2
- package/dist/types/file-config.d.ts +1 -0
- package/dist/types/filters.d.ts +1422 -0
- package/dist/types/generate.d.ts +79 -1
- package/dist/types/index.d.ts +10 -0
- package/dist/types/keys.d.ts +23 -2
- package/dist/types/langchain.d.ts +4 -0
- package/dist/types/limits.d.ts +13 -0
- package/dist/types/mcp.d.ts +299 -210
- package/dist/types/messages.d.ts +5 -0
- package/dist/types/models.d.ts +732 -68
- package/dist/types/parameterSettings.d.ts +5 -1
- package/dist/types/parsers.d.ts +10 -0
- package/dist/types/permissions.d.ts +42 -1
- package/dist/types/providers.d.ts +36 -0
- package/dist/types/request.d.ts +2 -2
- package/dist/types/roles.d.ts +34 -0
- package/dist/types/runSteps.d.ts +59 -0
- package/dist/types/schemas.d.ts +1191 -26
- package/dist/types/stateful-code.d.ts +7 -0
- package/dist/types/types/agents.d.ts +92 -7
- package/dist/types/types/assistants.d.ts +96 -5
- package/dist/types/types/files.d.ts +12 -2
- package/dist/types/types/index.d.ts +2 -0
- package/dist/types/types/insights.d.ts +62 -0
- package/dist/types/types/mutations.d.ts +1 -0
- package/dist/types/types/queries.d.ts +30 -2
- package/dist/types/types/queuedTurns.d.ts +870 -0
- package/dist/types/types/runs.d.ts +95 -4
- package/dist/types/types/schedules.d.ts +306 -0
- package/dist/types/types/skills.d.ts +9 -0
- package/dist/types/types/subagents.d.ts +159 -0
- package/dist/types/types/web.d.ts +12 -2
- package/dist/types/types.d.ts +61 -1
- package/package.json +4 -2
- package/dist/data-service-DOIF4BkW.js.map +0 -1
- package/dist/data-service-pwrlWjJs.mjs.map +0 -1
|
@@ -30,6 +30,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
30
30
|
}) : target, mod));
|
|
31
31
|
//#endregion
|
|
32
32
|
let zod = require("zod");
|
|
33
|
+
let re2js = require("re2js");
|
|
33
34
|
let axios = require("axios");
|
|
34
35
|
axios = __toESM(axios);
|
|
35
36
|
//#region src/utils.ts
|
|
@@ -97,6 +98,258 @@ function normalizeEndpointName(name = "") {
|
|
|
97
98
|
return name.toLowerCase() === "ollama" ? "ollama" : name;
|
|
98
99
|
}
|
|
99
100
|
//#endregion
|
|
101
|
+
//#region src/filters.ts
|
|
102
|
+
const FILTER_PII_STARTER_PATTERNS = [
|
|
103
|
+
"sk_prefix",
|
|
104
|
+
"bearer_header",
|
|
105
|
+
"api_key_header"
|
|
106
|
+
];
|
|
107
|
+
const MAX_PII_PATTERNS_PER_SOURCE = 256;
|
|
108
|
+
const MAX_PII_PATTERN_LENGTH = 512;
|
|
109
|
+
const MAX_PII_PATTERN_ID_LENGTH = 256;
|
|
110
|
+
const MAX_PII_PATTERN_LABEL_LENGTH = 512;
|
|
111
|
+
const MAX_PII_CUSTOM_REGEX_CHARACTERS = 8192;
|
|
112
|
+
const MAX_PII_CUSTOM_REGEX_INSTRUCTIONS = 8192;
|
|
113
|
+
const MAX_PII_CUSTOM_PATTERNS_TOTAL = 256;
|
|
114
|
+
const MAX_PII_REGEX_SIZE_CACHE_ENTRIES = 512;
|
|
115
|
+
const PII_REGEX_PROGRAM_SIZE_CACHE = /* @__PURE__ */ new Map();
|
|
116
|
+
function getPiiRegexProgramSize(pattern) {
|
|
117
|
+
if (PII_REGEX_PROGRAM_SIZE_CACHE.has(pattern)) return PII_REGEX_PROGRAM_SIZE_CACHE.get(pattern) ?? null;
|
|
118
|
+
let programSize = null;
|
|
119
|
+
let compiled;
|
|
120
|
+
try {
|
|
121
|
+
compiled = re2js.RE2JS.compile(pattern);
|
|
122
|
+
const candidate = compiled.programSize();
|
|
123
|
+
if (Number.isSafeInteger(candidate) && candidate > 0) programSize = candidate;
|
|
124
|
+
} catch {
|
|
125
|
+
programSize = null;
|
|
126
|
+
} finally {
|
|
127
|
+
compiled?.reset();
|
|
128
|
+
}
|
|
129
|
+
if (PII_REGEX_PROGRAM_SIZE_CACHE.size >= MAX_PII_REGEX_SIZE_CACHE_ENTRIES) PII_REGEX_PROGRAM_SIZE_CACHE.clear();
|
|
130
|
+
PII_REGEX_PROGRAM_SIZE_CACHE.set(pattern, programSize);
|
|
131
|
+
return programSize;
|
|
132
|
+
}
|
|
133
|
+
const MESSAGE_FILTER_FIELDS = [
|
|
134
|
+
"name",
|
|
135
|
+
"text",
|
|
136
|
+
"summary",
|
|
137
|
+
"quote",
|
|
138
|
+
"answer",
|
|
139
|
+
"decision_response",
|
|
140
|
+
"decision_reason",
|
|
141
|
+
"content_part",
|
|
142
|
+
"attachment_reference",
|
|
143
|
+
"assembled_context"
|
|
144
|
+
];
|
|
145
|
+
const HITL_MESSAGE_FILTER_FIELDS = [
|
|
146
|
+
"answer",
|
|
147
|
+
"decision_response",
|
|
148
|
+
"decision_reason"
|
|
149
|
+
];
|
|
150
|
+
const REQUEST_ONLY_MESSAGE_FILTER_FIELDS = new Set(HITL_MESSAGE_FILTER_FIELDS);
|
|
151
|
+
/** Message fields structurally recoverable without exact semantic provenance. */
|
|
152
|
+
const STORED_MESSAGE_FILTER_FIELDS = MESSAGE_FILTER_FIELDS.filter((field) => !REQUEST_ONLY_MESSAGE_FILTER_FIELDS.has(field));
|
|
153
|
+
const PROMPT_FILTER_FIELDS = [
|
|
154
|
+
"name",
|
|
155
|
+
"description",
|
|
156
|
+
"oneliner",
|
|
157
|
+
"category",
|
|
158
|
+
"command",
|
|
159
|
+
"text",
|
|
160
|
+
"preset_text",
|
|
161
|
+
"system",
|
|
162
|
+
"context",
|
|
163
|
+
"instructions",
|
|
164
|
+
"additional_instructions",
|
|
165
|
+
"greeting",
|
|
166
|
+
"example_input",
|
|
167
|
+
"example_output"
|
|
168
|
+
];
|
|
169
|
+
const AGENT_INSTRUCTION_FILTER_FIELDS = [
|
|
170
|
+
"name",
|
|
171
|
+
"category",
|
|
172
|
+
"description",
|
|
173
|
+
"instructions",
|
|
174
|
+
"additional_instructions",
|
|
175
|
+
"edge_description",
|
|
176
|
+
"edge_prompt",
|
|
177
|
+
"edge_prompt_key",
|
|
178
|
+
"artifacts",
|
|
179
|
+
"support_contact_name",
|
|
180
|
+
"support_contact_email"
|
|
181
|
+
];
|
|
182
|
+
const CONVERSATION_STARTER_FILTER_FIELDS = ["text"];
|
|
183
|
+
const CONVERSATION_TITLE_FILTER_FIELDS = ["title"];
|
|
184
|
+
const FEEDBACK_FILTER_FIELDS = ["text"];
|
|
185
|
+
const SKILL_FILTER_FIELDS = [
|
|
186
|
+
"name",
|
|
187
|
+
"display_title",
|
|
188
|
+
"description",
|
|
189
|
+
"category",
|
|
190
|
+
"frontmatter",
|
|
191
|
+
"instructions",
|
|
192
|
+
"imported_text",
|
|
193
|
+
"file_name",
|
|
194
|
+
"file_text"
|
|
195
|
+
];
|
|
196
|
+
const MEMORY_FILTER_FIELDS = [
|
|
197
|
+
"key",
|
|
198
|
+
"value",
|
|
199
|
+
"summary"
|
|
200
|
+
];
|
|
201
|
+
const FILE_FILTER_FIELDS = [
|
|
202
|
+
"name",
|
|
203
|
+
"content",
|
|
204
|
+
"extracted_text",
|
|
205
|
+
"transcript",
|
|
206
|
+
"uri"
|
|
207
|
+
];
|
|
208
|
+
const TOOL_ARGUMENT_FILTER_FIELDS = [
|
|
209
|
+
"name",
|
|
210
|
+
"arguments",
|
|
211
|
+
"output"
|
|
212
|
+
];
|
|
213
|
+
const MODEL_PARAMETER_FILTER_FIELDS = [
|
|
214
|
+
"stop",
|
|
215
|
+
"request_fields",
|
|
216
|
+
"response_format",
|
|
217
|
+
"metadata"
|
|
218
|
+
];
|
|
219
|
+
const ACTION_METADATA_FILTER_FIELDS = [
|
|
220
|
+
"raw_spec",
|
|
221
|
+
"domain",
|
|
222
|
+
"privacy_policy_url",
|
|
223
|
+
"authorization_type",
|
|
224
|
+
"custom_auth_header",
|
|
225
|
+
"authorization_content_type",
|
|
226
|
+
"authorization_url",
|
|
227
|
+
"client_url",
|
|
228
|
+
"scope",
|
|
229
|
+
"token_exchange_method",
|
|
230
|
+
"api_key",
|
|
231
|
+
"oauth_client_id",
|
|
232
|
+
"oauth_client_secret"
|
|
233
|
+
];
|
|
234
|
+
const messageFilterFieldSchema = zod.z.enum(MESSAGE_FILTER_FIELDS);
|
|
235
|
+
const promptFilterFieldSchema = zod.z.enum(PROMPT_FILTER_FIELDS);
|
|
236
|
+
const agentInstructionFilterFieldSchema = zod.z.enum(AGENT_INSTRUCTION_FILTER_FIELDS);
|
|
237
|
+
const conversationStarterFilterFieldSchema = zod.z.enum(CONVERSATION_STARTER_FILTER_FIELDS);
|
|
238
|
+
const conversationTitleFilterFieldSchema = zod.z.enum(CONVERSATION_TITLE_FILTER_FIELDS);
|
|
239
|
+
const feedbackFilterFieldSchema = zod.z.enum(FEEDBACK_FILTER_FIELDS);
|
|
240
|
+
const skillFilterFieldSchema = zod.z.enum(SKILL_FILTER_FIELDS);
|
|
241
|
+
const memoryFilterFieldSchema = zod.z.enum(MEMORY_FILTER_FIELDS);
|
|
242
|
+
const fileFilterFieldSchema = zod.z.enum(FILE_FILTER_FIELDS);
|
|
243
|
+
const toolArgumentFilterFieldSchema = zod.z.enum(TOOL_ARGUMENT_FILTER_FIELDS);
|
|
244
|
+
const modelParameterFilterFieldSchema = zod.z.enum(MODEL_PARAMETER_FILTER_FIELDS);
|
|
245
|
+
const filterPiiStarterPatternSchema = zod.z.enum(FILTER_PII_STARTER_PATTERNS);
|
|
246
|
+
const filterPiiActionSchema = zod.z.enum(["block", "audit"]);
|
|
247
|
+
const actionMetadataFilterFieldSchema = zod.z.enum(ACTION_METADATA_FILTER_FIELDS);
|
|
248
|
+
const unattributedAssistantContentSchema = zod.z.enum(["model_output", "inspect"]);
|
|
249
|
+
const userSubmittedMessageFieldPathSchema = zod.z.object({
|
|
250
|
+
path: zod.z.string().startsWith("/").max(2048),
|
|
251
|
+
field: zod.z.enum(HITL_MESSAGE_FILTER_FIELDS)
|
|
252
|
+
}).strict();
|
|
253
|
+
const UNINSPECTABLE_FILE_FIELDS = new Set([
|
|
254
|
+
"content",
|
|
255
|
+
"extracted_text",
|
|
256
|
+
"transcript"
|
|
257
|
+
]);
|
|
258
|
+
/**
|
|
259
|
+
* An omitted starter selection enables the built-in catalog. An explicit
|
|
260
|
+
* empty selection disables it, so a source is active only when custom rules
|
|
261
|
+
* remain. This mirrors the documented filter semantics without compiling
|
|
262
|
+
* regular expressions.
|
|
263
|
+
*/
|
|
264
|
+
function hasActivePiiPatterns(config) {
|
|
265
|
+
return config != null && (config.starterPatterns == null || config.starterPatterns.length > 0 || (config.customPatterns?.length ?? 0) > 0);
|
|
266
|
+
}
|
|
267
|
+
/** Returns whether an active PII rule can inspect at least one candidate field. */
|
|
268
|
+
function hasActivePiiFields(config, candidates) {
|
|
269
|
+
return hasActivePiiPatterns(config) && (config?.fields == null || candidates.some((field) => config.fields?.includes(field)));
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Returns whether a parsed source-aware config can enforce any rule. An
|
|
273
|
+
* explicit fail-close file policy remains active even without text patterns.
|
|
274
|
+
*/
|
|
275
|
+
function hasActiveFiltersConfig(filters) {
|
|
276
|
+
if (filters == null) return false;
|
|
277
|
+
if (filters.messages?.unattributedAssistantContent === "inspect") return true;
|
|
278
|
+
if ([
|
|
279
|
+
filters.messages?.pii,
|
|
280
|
+
filters.prompts?.pii,
|
|
281
|
+
filters.agentInstructions?.pii,
|
|
282
|
+
filters.conversationStarters?.pii,
|
|
283
|
+
filters.conversationTitles?.pii,
|
|
284
|
+
filters.feedback?.pii,
|
|
285
|
+
filters.skills?.pii,
|
|
286
|
+
filters.memories?.pii,
|
|
287
|
+
filters.files?.pii,
|
|
288
|
+
filters.toolArguments?.pii,
|
|
289
|
+
filters.modelParameters?.pii,
|
|
290
|
+
filters.actionMetadata?.pii
|
|
291
|
+
].some(hasActivePiiPatterns)) return true;
|
|
292
|
+
const filePii = filters.files?.pii;
|
|
293
|
+
return filePii?.uninspectable === "block" && (filePii.fields == null || filePii.fields.some((field) => UNINSPECTABLE_FILE_FIELDS.has(field)));
|
|
294
|
+
}
|
|
295
|
+
const filterPiiRegexSchema = zod.z.string().min(1).max(512).refine((value) => getPiiRegexProgramSize(value) != null, { message: "Regex must use supported linear-time syntax" });
|
|
296
|
+
const filterPiiCustomPatternSchema = zod.z.object({
|
|
297
|
+
id: zod.z.string().min(1).max(256),
|
|
298
|
+
label: zod.z.string().min(1).max(512),
|
|
299
|
+
regex: filterPiiRegexSchema
|
|
300
|
+
}).strict();
|
|
301
|
+
function createPiiFilterSchema(fieldSchema) {
|
|
302
|
+
return zod.z.object({
|
|
303
|
+
action: filterPiiActionSchema.optional(),
|
|
304
|
+
fields: zod.z.array(fieldSchema).min(1).max(256).optional(),
|
|
305
|
+
starterPatterns: zod.z.array(filterPiiStarterPatternSchema).max(256).optional(),
|
|
306
|
+
customPatterns: zod.z.array(filterPiiCustomPatternSchema).max(256).optional()
|
|
307
|
+
}).strict();
|
|
308
|
+
}
|
|
309
|
+
function createSourceFilterSchema(fieldSchema) {
|
|
310
|
+
return zod.z.object({ pii: createPiiFilterSchema(fieldSchema).optional() }).strict();
|
|
311
|
+
}
|
|
312
|
+
const messageSourceFilterSchema = zod.z.object({
|
|
313
|
+
pii: createPiiFilterSchema(messageFilterFieldSchema).optional(),
|
|
314
|
+
unattributedAssistantContent: unattributedAssistantContentSchema.optional()
|
|
315
|
+
}).strict();
|
|
316
|
+
const fileSourceFilterSchema = zod.z.object({ pii: createPiiFilterSchema(fileFilterFieldSchema).extend({ uninspectable: zod.z.enum(["allow", "block"]).optional() }).optional() }).strict();
|
|
317
|
+
const filtersConfigSchema = zod.z.object({
|
|
318
|
+
messages: messageSourceFilterSchema.optional(),
|
|
319
|
+
prompts: createSourceFilterSchema(promptFilterFieldSchema).optional(),
|
|
320
|
+
agentInstructions: createSourceFilterSchema(agentInstructionFilterFieldSchema).optional(),
|
|
321
|
+
conversationStarters: createSourceFilterSchema(conversationStarterFilterFieldSchema).optional(),
|
|
322
|
+
conversationTitles: createSourceFilterSchema(conversationTitleFilterFieldSchema).optional(),
|
|
323
|
+
feedback: createSourceFilterSchema(feedbackFilterFieldSchema).optional(),
|
|
324
|
+
skills: createSourceFilterSchema(skillFilterFieldSchema).optional(),
|
|
325
|
+
memories: createSourceFilterSchema(memoryFilterFieldSchema).optional(),
|
|
326
|
+
files: fileSourceFilterSchema.optional(),
|
|
327
|
+
toolArguments: createSourceFilterSchema(toolArgumentFilterFieldSchema).optional(),
|
|
328
|
+
modelParameters: createSourceFilterSchema(modelParameterFilterFieldSchema).optional(),
|
|
329
|
+
actionMetadata: createSourceFilterSchema(actionMetadataFilterFieldSchema).optional()
|
|
330
|
+
}).strict().superRefine((filters, context) => {
|
|
331
|
+
let customPatterns = 0;
|
|
332
|
+
let regexCharacters = 0;
|
|
333
|
+
let regexInstructions = 0;
|
|
334
|
+
for (const source of Object.values(filters)) for (const pattern of source?.pii?.customPatterns ?? []) {
|
|
335
|
+
customPatterns++;
|
|
336
|
+
regexCharacters += pattern.regex.length;
|
|
337
|
+
regexInstructions += getPiiRegexProgramSize(pattern.regex) ?? 0;
|
|
338
|
+
}
|
|
339
|
+
if (customPatterns > 256) context.addIssue({
|
|
340
|
+
code: zod.z.ZodIssueCode.custom,
|
|
341
|
+
message: `At most 256 custom PII patterns may be configured in total`
|
|
342
|
+
});
|
|
343
|
+
if (regexCharacters > 8192) context.addIssue({
|
|
344
|
+
code: zod.z.ZodIssueCode.custom,
|
|
345
|
+
message: `Custom PII regexes may contain at most ${MAX_PII_CUSTOM_REGEX_CHARACTERS} characters in total`
|
|
346
|
+
});
|
|
347
|
+
if (regexInstructions > 8192) context.addIssue({
|
|
348
|
+
code: zod.z.ZodIssueCode.custom,
|
|
349
|
+
message: `Custom PII regexes may compile to at most ${MAX_PII_CUSTOM_REGEX_INSTRUCTIONS} instructions in total`
|
|
350
|
+
});
|
|
351
|
+
});
|
|
352
|
+
//#endregion
|
|
100
353
|
//#region src/feedback.ts
|
|
101
354
|
const FEEDBACK_RATINGS = ["thumbsUp", "thumbsDown"];
|
|
102
355
|
const FEEDBACK_REASON_KEYS = [
|
|
@@ -206,6 +459,25 @@ function getTagByKey(key) {
|
|
|
206
459
|
return FEEDBACK_TAGS.find((tag) => tag.key === key);
|
|
207
460
|
}
|
|
208
461
|
//#endregion
|
|
462
|
+
//#region src/stateful-code.ts
|
|
463
|
+
const STATEFUL_CODE_ENVIRONMENTS = [
|
|
464
|
+
"user",
|
|
465
|
+
"agent-user",
|
|
466
|
+
"conversation"
|
|
467
|
+
];
|
|
468
|
+
/** Resolve a deployment allowlist in stable UI order. An omitted value preserves
|
|
469
|
+
* the backward-compatible behavior where every environment is available. */
|
|
470
|
+
function resolveAllowedStatefulCodeEnvironments(configured) {
|
|
471
|
+
if (configured == null) return [...STATEFUL_CODE_ENVIRONMENTS];
|
|
472
|
+
const configuredSet = new Set(configured);
|
|
473
|
+
return STATEFUL_CODE_ENVIRONMENTS.filter((environment) => configuredSet.has(environment));
|
|
474
|
+
}
|
|
475
|
+
/** Keep an allowed preference, otherwise select the first deployment-allowed scope. */
|
|
476
|
+
function resolveStatefulCodeEnvironment(preferred, configured) {
|
|
477
|
+
const allowed = resolveAllowedStatefulCodeEnvironments(configured);
|
|
478
|
+
return preferred != null && allowed.includes(preferred) ? preferred : allowed[0];
|
|
479
|
+
}
|
|
480
|
+
//#endregion
|
|
209
481
|
//#region src/types/assistants.ts
|
|
210
482
|
let Tools = /* @__PURE__ */ function(Tools) {
|
|
211
483
|
Tools["execute_code"] = "execute_code";
|
|
@@ -622,6 +894,8 @@ const defaultAgentFormValues = {
|
|
|
622
894
|
["file_search"]: false,
|
|
623
895
|
["web_search"]: false,
|
|
624
896
|
["memory"]: false,
|
|
897
|
+
stateful_code_environment: "user",
|
|
898
|
+
code_environment_id: void 0,
|
|
625
899
|
category: "general",
|
|
626
900
|
support_contact: {
|
|
627
901
|
name: "",
|
|
@@ -633,6 +907,10 @@ const defaultAgentFormValues = {
|
|
|
633
907
|
/** Master toggle for skill use on this agent. `true` activates skills
|
|
634
908
|
* (full catalog unless `skills` narrows it). Anything else = inactive. */
|
|
635
909
|
skills_enabled: void 0,
|
|
910
|
+
/** Enables runtime skill creation without exposing an existing skill catalog. */
|
|
911
|
+
skill_authoring_enabled: void 0,
|
|
912
|
+
/** Explicit catalog scope. Missing preserves the legacy enabled + empty = all behavior. */
|
|
913
|
+
skills_scope: void 0,
|
|
636
914
|
/** `undefined` = feature disabled by default (no subagent tool injected). */
|
|
637
915
|
subagents: void 0,
|
|
638
916
|
/** Memory partition: 'agent' isolates memories per (user, agent); default shared pool */
|
|
@@ -650,6 +928,8 @@ const ImageVisionTool = {
|
|
|
650
928
|
}
|
|
651
929
|
}
|
|
652
930
|
};
|
|
931
|
+
/** Structural on purpose: accepts assistants tools/tool calls and agents function tool
|
|
932
|
+
* calls alike — the check only ever reads `type` and `function.name`. */
|
|
653
933
|
const isImageVisionTool = (tool) => tool.type === "function" && tool.function?.name === ImageVisionTool.function?.name;
|
|
654
934
|
const openAISettings = {
|
|
655
935
|
model: { default: "gpt-4o-mini" },
|
|
@@ -708,8 +988,45 @@ const getGoogleMaxOutputTokens = (modelName) => {
|
|
|
708
988
|
}
|
|
709
989
|
return GOOGLE_LEGACY_MAX_OUTPUT;
|
|
710
990
|
};
|
|
991
|
+
/**
|
|
992
|
+
* Per-model thinking budget bounds, documented in
|
|
993
|
+
* `com_endpoint_google_thinking_budget`: Gemini 2.5 Pro accepts 128-32,768,
|
|
994
|
+
* Flash accepts 0-24,576, and Flash Lite accepts 512-24,576. The generic
|
|
995
|
+
* 32,000 in the shared definition both under-limits Pro and lets invalid
|
|
996
|
+
* Flash values through.
|
|
997
|
+
*
|
|
998
|
+
* `-1` remains the "decide automatically" sentinel and is not part of these
|
|
999
|
+
* floors. Callers must keep `range.min` at -1 and apply `min` only to
|
|
1000
|
+
* non-negative values.
|
|
1001
|
+
*/
|
|
1002
|
+
const GOOGLE_THINKING_BUDGET_PRO_MAX = 32768;
|
|
1003
|
+
const GOOGLE_THINKING_BUDGET_FLASH_MAX = 24576;
|
|
1004
|
+
const GOOGLE_THINKING_BUDGET_PRO_MIN = 128;
|
|
1005
|
+
const GOOGLE_THINKING_BUDGET_FLASH_MIN = 0;
|
|
1006
|
+
const GOOGLE_THINKING_BUDGET_FLASH_LITE_MIN = 512;
|
|
1007
|
+
const getGoogleThinkingBudgetBounds = (modelName) => {
|
|
1008
|
+
if (!/gemini-2\.5/i.test(modelName)) return;
|
|
1009
|
+
if (/flash[-_.]?lite/i.test(modelName)) return {
|
|
1010
|
+
min: GOOGLE_THINKING_BUDGET_FLASH_LITE_MIN,
|
|
1011
|
+
max: GOOGLE_THINKING_BUDGET_FLASH_MAX
|
|
1012
|
+
};
|
|
1013
|
+
if (/flash/i.test(modelName)) return {
|
|
1014
|
+
min: GOOGLE_THINKING_BUDGET_FLASH_MIN,
|
|
1015
|
+
max: GOOGLE_THINKING_BUDGET_FLASH_MAX
|
|
1016
|
+
};
|
|
1017
|
+
if (/pro/i.test(modelName)) return {
|
|
1018
|
+
min: GOOGLE_THINKING_BUDGET_PRO_MIN,
|
|
1019
|
+
max: GOOGLE_THINKING_BUDGET_PRO_MAX
|
|
1020
|
+
};
|
|
1021
|
+
};
|
|
1022
|
+
const getGoogleThinkingBudgetMax = (modelName) => getGoogleThinkingBudgetBounds(modelName)?.max;
|
|
711
1023
|
const googleSettings = {
|
|
712
1024
|
model: { default: "gemini-1.5-flash-latest" },
|
|
1025
|
+
maxContextTokens: {
|
|
1026
|
+
min: 10,
|
|
1027
|
+
max: 2e6,
|
|
1028
|
+
step: 1e3
|
|
1029
|
+
},
|
|
713
1030
|
maxOutputTokens: {
|
|
714
1031
|
min: 1,
|
|
715
1032
|
max: GOOGLE_MAX_OUTPUT,
|
|
@@ -928,12 +1245,21 @@ const tPluginSchema = zod.z.object({
|
|
|
928
1245
|
authenticated: zod.z.boolean().optional(),
|
|
929
1246
|
chatMenu: zod.z.boolean().optional(),
|
|
930
1247
|
isButton: zod.z.boolean().optional(),
|
|
931
|
-
toolkit: zod.z.boolean().optional()
|
|
1248
|
+
toolkit: zod.z.boolean().optional(),
|
|
1249
|
+
/** Raw upstream tool name when the model-facing key stripped a redundant
|
|
1250
|
+
* server-name prefix — proves upstream identity for legacy id migration. */
|
|
1251
|
+
serverToolName: zod.z.string().optional()
|
|
932
1252
|
});
|
|
933
1253
|
const tExampleSchema = zod.z.object({
|
|
934
1254
|
input: zod.z.object({ content: zod.z.string() }),
|
|
935
1255
|
output: zod.z.object({ content: zod.z.string() })
|
|
936
1256
|
});
|
|
1257
|
+
/** Compact context-fading tier persisted beside a message's calibration ratio. */
|
|
1258
|
+
const agentFadingTierSchema = zod.z.object({
|
|
1259
|
+
v: zod.z.literal(1),
|
|
1260
|
+
budgetTokens: zod.z.number().positive(),
|
|
1261
|
+
masked: zod.z.boolean()
|
|
1262
|
+
});
|
|
937
1263
|
const tMessageSchema = zod.z.object({
|
|
938
1264
|
messageId: zod.z.string(),
|
|
939
1265
|
endpoint: zod.z.string().optional(),
|
|
@@ -950,6 +1276,12 @@ const tMessageSchema = zod.z.object({
|
|
|
950
1276
|
/** @deprecated */
|
|
951
1277
|
generation: zod.z.string().nullable().optional(),
|
|
952
1278
|
isCreatedByUser: zod.z.boolean(),
|
|
1279
|
+
/** True when the complete stored row came from outside the model. */
|
|
1280
|
+
isUserSubmitted: zod.z.boolean().optional(),
|
|
1281
|
+
/** JSON pointers to caller-authored fields in an otherwise mixed model response. */
|
|
1282
|
+
userSubmittedPaths: zod.z.array(zod.z.string().startsWith("/")).optional(),
|
|
1283
|
+
/** Exact HITL message-field identity for caller-authored values stored in mixed responses. */
|
|
1284
|
+
userSubmittedMessageFieldPaths: zod.z.array(userSubmittedMessageFieldPathSchema).optional(),
|
|
953
1285
|
isTemporary: zod.z.boolean().optional(),
|
|
954
1286
|
expiredAt: zod.z.string().nullable().optional(),
|
|
955
1287
|
error: zod.z.boolean().optional(),
|
|
@@ -969,7 +1301,9 @@ const tMessageSchema = zod.z.object({
|
|
|
969
1301
|
tokenCount: zod.z.number().optional(),
|
|
970
1302
|
contextMeta: zod.z.object({
|
|
971
1303
|
calibrationRatio: zod.z.number().optional().describe("EMA ratio of provider-reported vs local token estimates; seeds the pruner on subsequent runs"),
|
|
972
|
-
encoding: zod.z.string().optional().describe("Tokenizer encoding used when this ratio was computed (e.g. \"claude\", \"o200k_base\")")
|
|
1304
|
+
encoding: zod.z.string().optional().describe("Tokenizer encoding used when this ratio was computed (e.g. \"claude\", \"o200k_base\")"),
|
|
1305
|
+
fading: agentFadingTierSchema.optional().describe("Latched context-fading tier of the default agent; seeds the next run so the provider projection of history keeps the same bytes"),
|
|
1306
|
+
fadingTiers: zod.z.array(agentFadingTierSchema.extend({ agentId: zod.z.string().min(1) })).optional().describe("Latched context-fading tiers keyed by agent ID, stored as entries")
|
|
973
1307
|
}).optional(),
|
|
974
1308
|
/**
|
|
975
1309
|
* Skill names the user invoked manually via the `$` popover on this turn.
|
|
@@ -1007,6 +1341,19 @@ let MemoryScope = /* @__PURE__ */ function(MemoryScope) {
|
|
|
1007
1341
|
MemoryScope["agent"] = "agent";
|
|
1008
1342
|
return MemoryScope;
|
|
1009
1343
|
}({});
|
|
1344
|
+
/** Catalog exposure for a persisted agent with skills enabled. */
|
|
1345
|
+
let SkillsScope = /* @__PURE__ */ function(SkillsScope) {
|
|
1346
|
+
SkillsScope["all"] = "all";
|
|
1347
|
+
SkillsScope["selected"] = "selected";
|
|
1348
|
+
SkillsScope["none"] = "none";
|
|
1349
|
+
return SkillsScope;
|
|
1350
|
+
}({});
|
|
1351
|
+
/** Resolves explicit and legacy persisted-agent skill catalog states. */
|
|
1352
|
+
function resolveAgentSkillsScope(skills, enabled, scope) {
|
|
1353
|
+
if (enabled !== true) return "none";
|
|
1354
|
+
if (scope !== void 0) return scope;
|
|
1355
|
+
return (skills ?? []).length > 0 ? "selected" : "all";
|
|
1356
|
+
}
|
|
1010
1357
|
const coerceNumber = zod.z.union([zod.z.number(), zod.z.string()]).transform((val) => {
|
|
1011
1358
|
if (typeof val === "string") return val.trim() === "" ? void 0 : parseFloat(val);
|
|
1012
1359
|
return val;
|
|
@@ -1019,11 +1366,23 @@ const DocumentType = zod.z.lazy(() => zod.z.union([
|
|
|
1019
1366
|
zod.z.array(zod.z.lazy(() => DocumentType)),
|
|
1020
1367
|
zod.z.record(zod.z.lazy(() => DocumentType))
|
|
1021
1368
|
]));
|
|
1369
|
+
const subagentThreadLineageSchema = zod.z.object({
|
|
1370
|
+
rootConversationId: zod.z.string().min(1),
|
|
1371
|
+
parentConversationId: zod.z.string().min(1),
|
|
1372
|
+
parentMessageId: zod.z.string().min(1),
|
|
1373
|
+
parentToolCallId: zod.z.string().min(1),
|
|
1374
|
+
parentAgentId: zod.z.string().min(1).optional(),
|
|
1375
|
+
subagentType: zod.z.string().min(1),
|
|
1376
|
+
subagentKind: zod.z.enum(["agent", "graph"]),
|
|
1377
|
+
depth: zod.z.number().int().positive()
|
|
1378
|
+
});
|
|
1022
1379
|
const tConversationSchema = zod.z.object({
|
|
1023
1380
|
conversationId: zod.z.string().nullable(),
|
|
1024
1381
|
endpoint: eModelEndpointSchema.nullable(),
|
|
1025
1382
|
endpointType: eModelEndpointSchema.nullable().optional(),
|
|
1026
1383
|
isArchived: zod.z.boolean().optional(),
|
|
1384
|
+
/** When the chat was archived; absent on chats archived before this was recorded. */
|
|
1385
|
+
archivedAt: zod.z.string().nullable().optional(),
|
|
1027
1386
|
pinned: zod.z.boolean().optional(),
|
|
1028
1387
|
/** Server-derived: an active shared link exists for this conversation. Not persisted. */
|
|
1029
1388
|
isShared: zod.z.boolean().optional(),
|
|
@@ -1075,6 +1434,8 @@ const tConversationSchema = zod.z.object({
|
|
|
1075
1434
|
disableStreaming: zod.z.boolean().optional(),
|
|
1076
1435
|
assistant_id: zod.z.string().optional(),
|
|
1077
1436
|
agent_id: zod.z.string().optional(),
|
|
1437
|
+
/** Durable parent/child navigation for a subagent thread. */
|
|
1438
|
+
subagentThread: subagentThreadLineageSchema.optional(),
|
|
1078
1439
|
region: zod.z.string().optional(),
|
|
1079
1440
|
maxTokens: coerceNumber.optional(),
|
|
1080
1441
|
additionalModelRequestFields: DocumentType.optional(),
|
|
@@ -1230,6 +1591,26 @@ const tModelSpecPresetSchema = tPresetSchema.omit({
|
|
|
1230
1591
|
chatGptLabel: true,
|
|
1231
1592
|
presetOverride: true,
|
|
1232
1593
|
spec: true
|
|
1594
|
+
}).merge(zod.z.object({
|
|
1595
|
+
/**
|
|
1596
|
+
* Optional here, unlike `tPresetSchema`, where the key is required (though
|
|
1597
|
+
* nullable). A preset naming an `agent_id` has an unambiguous endpoint, so
|
|
1598
|
+
* config may omit it and `resolveModelSpecEndpoint` infers `agents` when
|
|
1599
|
+
* specs are materialized at config load.
|
|
1600
|
+
*/
|
|
1601
|
+
endpoint: extendedModelEndpointSchema.nullish() })).superRefine((preset, ctx) => {
|
|
1602
|
+
/**
|
|
1603
|
+
* Omission is only legal when the endpoint is inferable, which requires a
|
|
1604
|
+
* NON-EMPTY `agent_id` — form-backed writers persist untouched fields as
|
|
1605
|
+
* `''`, which names no agent. An explicit `endpoint: null` stays accepted:
|
|
1606
|
+
* it validated before the key became optional, so rejecting it now would
|
|
1607
|
+
* break previously valid configs.
|
|
1608
|
+
*/
|
|
1609
|
+
if (preset.endpoint === void 0 && !preset.agent_id) ctx.addIssue({
|
|
1610
|
+
code: zod.z.ZodIssueCode.custom,
|
|
1611
|
+
path: ["endpoint"],
|
|
1612
|
+
message: "endpoint is required unless the preset names a non-empty agent_id (the agents endpoint is then inferred)"
|
|
1613
|
+
});
|
|
1233
1614
|
});
|
|
1234
1615
|
const tSharedLinkSchema = zod.z.object({
|
|
1235
1616
|
conversationId: zod.z.string(),
|
|
@@ -1258,6 +1639,7 @@ const googleBaseSchema = tConversationSchema.pick({
|
|
|
1258
1639
|
examples: true,
|
|
1259
1640
|
temperature: true,
|
|
1260
1641
|
maxOutputTokens: true,
|
|
1642
|
+
resendFiles: true,
|
|
1261
1643
|
artifacts: true,
|
|
1262
1644
|
topP: true,
|
|
1263
1645
|
topK: true,
|
|
@@ -1516,15 +1898,39 @@ const requiredSettingFields = [
|
|
|
1516
1898
|
"type",
|
|
1517
1899
|
"component"
|
|
1518
1900
|
];
|
|
1901
|
+
function clampSettingRange(value, range) {
|
|
1902
|
+
if (range.positiveMin != null) {
|
|
1903
|
+
/** The minimum carries its own meaning here (Google's -1 for automatic),
|
|
1904
|
+
* and the schema admits it outright, so it survives rather than being
|
|
1905
|
+
* lifted to the floor. It need not be negative to be the sentinel. */
|
|
1906
|
+
if (value === range.min) return range.min;
|
|
1907
|
+
/** Below the sentinel there is nothing admissible to lift to, so the value
|
|
1908
|
+
* resolves to it. Between the sentinel and the floor, the floor is the
|
|
1909
|
+
* nearest value the generated schema accepts. */
|
|
1910
|
+
if (value < Math.max(range.min, 0)) return range.min;
|
|
1911
|
+
return Math.min(Math.max(value, range.positiveMin), range.max);
|
|
1912
|
+
}
|
|
1913
|
+
return Math.min(Math.max(value, range.min), range.max);
|
|
1914
|
+
}
|
|
1519
1915
|
function generateDynamicSchema(settings) {
|
|
1520
1916
|
const schemaFields = {};
|
|
1521
1917
|
for (const setting of settings) {
|
|
1522
1918
|
const { key, type, default: defaultValue, range, options, minText, maxText, minTags, maxTags } = setting;
|
|
1523
1919
|
if (type === "number") {
|
|
1524
|
-
let
|
|
1920
|
+
let numberSchema = zod.z.number();
|
|
1525
1921
|
if (range) {
|
|
1526
|
-
|
|
1527
|
-
|
|
1922
|
+
numberSchema = numberSchema.min(range.min);
|
|
1923
|
+
numberSchema = numberSchema.max(range.max);
|
|
1924
|
+
}
|
|
1925
|
+
/** Widened deliberately: refine returns ZodEffects, not ZodNumber, and
|
|
1926
|
+
* the number-specific chaining is already done above. */
|
|
1927
|
+
let schema = numberSchema;
|
|
1928
|
+
if (range?.positiveMin != null) {
|
|
1929
|
+
/** Mirrors clampSettingRange so the generated schema and the clamp
|
|
1930
|
+
* agree: `min` only admits the sentinel, and any non-negative value
|
|
1931
|
+
* must clear the documented floor. */
|
|
1932
|
+
const { positiveMin, min } = range;
|
|
1933
|
+
schema = numberSchema.refine((value) => value === min || value >= positiveMin, `Expected ${min} or a value of at least ${positiveMin}`);
|
|
1528
1934
|
}
|
|
1529
1935
|
if (typeof defaultValue === "number") schemaFields[key] = schema.default(defaultValue);
|
|
1530
1936
|
else schemaFields[key] = schema;
|
|
@@ -1666,7 +2072,14 @@ function validateSettingDefinitions(settings) {
|
|
|
1666
2072
|
setting.includeInput = setting.type === "number" ? setting.includeInput ?? true : false;
|
|
1667
2073
|
}
|
|
1668
2074
|
if (setting.component === "slider" && setting.type === "number") {
|
|
1669
|
-
if (setting.default === void 0 && setting.range)
|
|
2075
|
+
if (setting.default === void 0 && setting.range) {
|
|
2076
|
+
/** The midpoint of the admissible interval, which a positive floor
|
|
2077
|
+
* narrows: the span between the sentinel and that floor holds no value
|
|
2078
|
+
* the generated schema accepts, so a midpoint taken across it would
|
|
2079
|
+
* fail the validation below. */
|
|
2080
|
+
const floor = Math.max(setting.range.min, setting.range.positiveMin ?? setting.range.min);
|
|
2081
|
+
setting.default = Math.round((floor + setting.range.max) / 2);
|
|
2082
|
+
}
|
|
1670
2083
|
}
|
|
1671
2084
|
if (setting.component === "checkbox" || setting.component === "switch") {
|
|
1672
2085
|
if (setting.options && setting.options.length > 2) errors.push({
|
|
@@ -1744,6 +2157,16 @@ function validateSettingDefinitions(settings) {
|
|
|
1744
2157
|
message: `Invalid default value for setting ${setting.key}. Must be within the range [${setting.range.min}, ${setting.range.max}].`,
|
|
1745
2158
|
path: ["default"]
|
|
1746
2159
|
});
|
|
2160
|
+
if (setting.type === "number" && setting.range?.positiveMin != null && setting.range.positiveMin > setting.range.max) errors.push({
|
|
2161
|
+
code: zod.ZodIssueCode.custom,
|
|
2162
|
+
message: `Invalid range for setting ${setting.key}. positiveMin (${setting.range.positiveMin}) cannot exceed max (${setting.range.max}).`,
|
|
2163
|
+
path: ["range"]
|
|
2164
|
+
});
|
|
2165
|
+
if (setting.type === "number" && setting.range?.positiveMin != null && typeof setting.default === "number" && setting.default !== setting.range.min && setting.default < setting.range.positiveMin) errors.push({
|
|
2166
|
+
code: zod.ZodIssueCode.custom,
|
|
2167
|
+
message: `Invalid default value for setting ${setting.key}. Must be ${setting.range.min} or at least ${setting.range.positiveMin}.`,
|
|
2168
|
+
path: ["default"]
|
|
2169
|
+
});
|
|
1747
2170
|
if (setting.enumMappings && setting.type === "enum" && setting.options) {
|
|
1748
2171
|
for (const option of setting.options) if (!(option in setting.enumMappings)) errors.push({
|
|
1749
2172
|
code: zod.ZodIssueCode.custom,
|
|
@@ -1845,13 +2268,83 @@ const generateGoogleSchema = (customGoogle) => {
|
|
|
1845
2268
|
//#region src/limits.ts
|
|
1846
2269
|
/** Maximum number of explicit subagents per parent agent. UI + Zod schema share this. */
|
|
1847
2270
|
const MAX_SUBAGENTS = 10;
|
|
2271
|
+
/** Hard upper bound for `endpoints.agents.maxSubagents`, keeping the request-validation
|
|
2272
|
+
* cap bounded no matter what the config file says. */
|
|
2273
|
+
const MAX_SUBAGENTS_CEILING = 50;
|
|
2274
|
+
let maxSubagents = 10;
|
|
2275
|
+
/** Effective subagents-per-agent cap; initialized from `endpoints.agents.maxSubagents` at startup. */
|
|
2276
|
+
const getMaxSubagents = () => maxSubagents;
|
|
2277
|
+
/** Applies a configured cap; any missing or out-of-range value resets to the default. */
|
|
2278
|
+
const setMaxSubagents = (value) => {
|
|
2279
|
+
maxSubagents = typeof value === "number" && Number.isInteger(value) && value >= 1 && value <= 50 ? value : 10;
|
|
2280
|
+
};
|
|
2281
|
+
/** Chat project field limits. The dialogs and the persistence layer share these,
|
|
2282
|
+
* so the inputs stop at the same point the server would otherwise truncate. */
|
|
2283
|
+
const MAX_CHAT_PROJECT_NAME_LENGTH = 100;
|
|
2284
|
+
const MAX_CHAT_PROJECT_DESCRIPTION_LENGTH = 1e3;
|
|
2285
|
+
/** Mirrors the bounded graph-child member limit in `@librechat/agents`. */
|
|
2286
|
+
const MAX_GRAPH_SUBAGENT_MEMBERS = 32;
|
|
1848
2287
|
//#endregion
|
|
1849
2288
|
//#region src/models.ts
|
|
1850
2289
|
const modelSpecSubagentsSchema = zod.z.object({
|
|
1851
2290
|
enabled: zod.z.boolean().optional(),
|
|
1852
2291
|
allowSelf: zod.z.boolean().optional(),
|
|
1853
|
-
agent_ids: zod.z.array(zod.z.string()).
|
|
2292
|
+
agent_ids: zod.z.array(zod.z.string()).optional()
|
|
2293
|
+
}).superRefine((subagents, ctx) => {
|
|
2294
|
+
const maxSubagents = getMaxSubagents();
|
|
2295
|
+
if ((subagents.agent_ids?.length ?? 0) > maxSubagents) ctx.addIssue({
|
|
2296
|
+
code: zod.z.ZodIssueCode.custom,
|
|
2297
|
+
path: ["agent_ids"],
|
|
2298
|
+
message: `agent_ids must contain at most ${maxSubagents} item(s)`
|
|
2299
|
+
});
|
|
1854
2300
|
});
|
|
2301
|
+
function resolveModelSpecEndpoint(modelSpec) {
|
|
2302
|
+
const preset = modelSpec?.preset;
|
|
2303
|
+
if (preset?.endpoint != null) return preset.endpoint;
|
|
2304
|
+
/**
|
|
2305
|
+
* An explicit `endpoint: null` is a statement, not an omission — such specs
|
|
2306
|
+
* validated (and were skipped downstream) before inference existed, so
|
|
2307
|
+
* inferring here would silently activate them. Only an absent key infers,
|
|
2308
|
+
* and only from a non-empty `agent_id`: form-backed writers persist
|
|
2309
|
+
* untouched fields as `''`, which names no agent.
|
|
2310
|
+
*/
|
|
2311
|
+
if (preset?.endpoint === null) return;
|
|
2312
|
+
return preset?.agent_id ? "agents" : void 0;
|
|
2313
|
+
}
|
|
2314
|
+
/**
|
|
2315
|
+
* Writes each spec's resolved endpoint back onto its preset so every consumer —
|
|
2316
|
+
* endpoint matching, the selector, access filters, startup presets, provider-key
|
|
2317
|
+
* reachability — reads a complete spec instead of re-deriving it. Apply once
|
|
2318
|
+
* where the effective config is assembled (YAML load and DB-override merge);
|
|
2319
|
+
* downstream code then needs no awareness of inference.
|
|
2320
|
+
*
|
|
2321
|
+
* Returns the original object, and the original spec objects, when nothing
|
|
2322
|
+
* needs filling in, so cached configs and memoized consumers see no new
|
|
2323
|
+
* identities.
|
|
2324
|
+
*/
|
|
2325
|
+
function materializeModelSpecEndpoints(modelSpecs) {
|
|
2326
|
+
const list = modelSpecs?.list;
|
|
2327
|
+
if (!list?.length) return modelSpecs;
|
|
2328
|
+
let changed = false;
|
|
2329
|
+
const materialized = list.map((spec) => {
|
|
2330
|
+
if (spec?.preset == null || spec.preset.endpoint != null) return spec;
|
|
2331
|
+
const endpoint = resolveModelSpecEndpoint(spec);
|
|
2332
|
+
if (endpoint == null) return spec;
|
|
2333
|
+
changed = true;
|
|
2334
|
+
return {
|
|
2335
|
+
...spec,
|
|
2336
|
+
preset: {
|
|
2337
|
+
...spec.preset,
|
|
2338
|
+
endpoint
|
|
2339
|
+
}
|
|
2340
|
+
};
|
|
2341
|
+
});
|
|
2342
|
+
if (!changed) return modelSpecs;
|
|
2343
|
+
return {
|
|
2344
|
+
...modelSpecs,
|
|
2345
|
+
list: materialized
|
|
2346
|
+
};
|
|
2347
|
+
}
|
|
1855
2348
|
const tModelSpecSchema = zod.z.object({
|
|
1856
2349
|
name: zod.z.string(),
|
|
1857
2350
|
label: zod.z.string(),
|
|
@@ -2345,7 +2838,8 @@ const fileConfig = {
|
|
|
2345
2838
|
enabled: false,
|
|
2346
2839
|
maxWidth: 1900,
|
|
2347
2840
|
maxHeight: 1900,
|
|
2348
|
-
quality: .92
|
|
2841
|
+
quality: .92,
|
|
2842
|
+
enforced: false
|
|
2349
2843
|
},
|
|
2350
2844
|
ocr: { supportedMimeTypes: defaultOCRMimeTypes },
|
|
2351
2845
|
text: { supportedMimeTypes: defaultTextMimeTypes },
|
|
@@ -2375,8 +2869,8 @@ const fileConfigSchema = zod.z.object({
|
|
|
2375
2869
|
}).optional(),
|
|
2376
2870
|
clientImageResize: zod.z.object({
|
|
2377
2871
|
enabled: zod.z.boolean().optional(),
|
|
2378
|
-
maxWidth: zod.z.number().min(
|
|
2379
|
-
maxHeight: zod.z.number().min(
|
|
2872
|
+
maxWidth: zod.z.number().min(1).optional(),
|
|
2873
|
+
maxHeight: zod.z.number().min(1).optional(),
|
|
2380
2874
|
quality: zod.z.number().min(0).max(1).optional()
|
|
2381
2875
|
}).optional(),
|
|
2382
2876
|
ocr: zod.z.object({ supportedMimeTypes: supportedMimeTypesSchema.optional() }).optional(),
|
|
@@ -2682,7 +3176,8 @@ function mergeFileConfig(dynamic) {
|
|
|
2682
3176
|
};
|
|
2683
3177
|
if (dynamic.clientImageResize !== void 0) mergedConfig.clientImageResize = {
|
|
2684
3178
|
...mergedConfig.clientImageResize,
|
|
2685
|
-
...dynamic.clientImageResize
|
|
3179
|
+
...dynamic.clientImageResize,
|
|
3180
|
+
enforced: dynamic.clientImageResize.enabled !== void 0
|
|
2686
3181
|
};
|
|
2687
3182
|
if (dynamic.ocr !== void 0) {
|
|
2688
3183
|
const { supportedMimeTypes: ocrMimeTypes, ...ocrRest } = dynamic.ocr;
|
|
@@ -2743,9 +3238,14 @@ const buildQuery = (params) => {
|
|
|
2743
3238
|
};
|
|
2744
3239
|
const health = () => `${BASE_URL}/health`;
|
|
2745
3240
|
const user = () => `${BASE_URL}/api/user`;
|
|
3241
|
+
const userPreferences = () => `${user()}/preferences`;
|
|
2746
3242
|
const balance = () => `${BASE_URL}/api/balance`;
|
|
2747
3243
|
const userPlugins = () => `${BASE_URL}/api/user/plugins`;
|
|
2748
3244
|
const deleteUser$1 = () => `${BASE_URL}/api/user/delete`;
|
|
3245
|
+
const codeEnvironments = () => `${BASE_URL}/api/code-environments`;
|
|
3246
|
+
const codeEnvironmentPairings = () => `${codeEnvironments()}/pairings`;
|
|
3247
|
+
const codeEnvironmentById = (id) => `${codeEnvironments()}/${encodeURIComponent(id)}`;
|
|
3248
|
+
const codeEnvironmentSettings = (id) => `${codeEnvironmentById(id)}/settings`;
|
|
2749
3249
|
const messagesRoot = `${BASE_URL}/api/messages`;
|
|
2750
3250
|
const messages = (params) => {
|
|
2751
3251
|
const { conversationId, messageId, ...rest } = params;
|
|
@@ -2786,9 +3286,17 @@ const conversations = (params) => {
|
|
|
2786
3286
|
return `${conversationsRoot}${buildQuery(params)}`;
|
|
2787
3287
|
};
|
|
2788
3288
|
const conversationById = (id) => `${conversationsRoot}/${id}`;
|
|
3289
|
+
const parentSubagents = (parentConversationId) => `${conversationsRoot}/${encodeURIComponent(parentConversationId)}/subagents`;
|
|
3290
|
+
const subagentThread = (parentConversationId, threadId, taskId, cursor) => {
|
|
3291
|
+
const endpoint = `${conversationsRoot}/${encodeURIComponent(parentConversationId)}/subagents/${encodeURIComponent(threadId)}`;
|
|
3292
|
+
if (taskId != null) return `${endpoint}?taskId=${encodeURIComponent(taskId)}`;
|
|
3293
|
+
return cursor == null ? endpoint : `${endpoint}?cursor=${encodeURIComponent(cursor)}`;
|
|
3294
|
+
};
|
|
3295
|
+
const subagentControl = (parentConversationId, threadId) => `${conversationsRoot}/${encodeURIComponent(parentConversationId)}/subagents/${encodeURIComponent(threadId)}/control`;
|
|
2789
3296
|
const genTitle$1 = (conversationId) => `${conversationsRoot}/gen_title/${encodeURIComponent(conversationId)}`;
|
|
2790
3297
|
const updateConversation$1 = () => `${conversationsRoot}/update`;
|
|
2791
3298
|
const archiveConversation$1 = () => `${conversationsRoot}/archive`;
|
|
3299
|
+
const archiveAllConversations$1 = () => `${conversationsRoot}/archive/all`;
|
|
2792
3300
|
const pinConversation$1 = () => `${conversationsRoot}/pin`;
|
|
2793
3301
|
const deleteConversation$1 = () => `${conversationsRoot}`;
|
|
2794
3302
|
const deleteAllConversation = () => `${conversationsRoot}/all`;
|
|
@@ -2873,6 +3381,14 @@ const agents = ({ path = "", options }) => {
|
|
|
2873
3381
|
return url;
|
|
2874
3382
|
};
|
|
2875
3383
|
const activeJobs = () => `${BASE_URL}/api/agents/chat/active`;
|
|
3384
|
+
const agentQueuedTurnsRoot = `${BASE_URL}/api/agents/chat/queued-turns`;
|
|
3385
|
+
const agentQueuedTurns = () => agentQueuedTurnsRoot;
|
|
3386
|
+
const agentQueuedTurnsByConversation = (conversationId, clientRequestIds = []) => {
|
|
3387
|
+
const uniqueIds = Array.from(new Set(clientRequestIds)).slice(0, 100);
|
|
3388
|
+
const knownIds = uniqueIds.length > 0 ? `&${uniqueIds.map((id) => `clientRequestIds=${encodeURIComponent(id)}`).join("&")}` : "";
|
|
3389
|
+
return `${agentQueuedTurnsRoot}?conversationId=${encodeURIComponent(conversationId)}${knownIds}`;
|
|
3390
|
+
};
|
|
3391
|
+
const agentQueuedTurn = (queuedTurnId) => `${agentQueuedTurnsRoot}/${encodeURIComponent(queuedTurnId)}`;
|
|
2876
3392
|
const mcp = {
|
|
2877
3393
|
tools: `${BASE_URL}/api/mcp/tools`,
|
|
2878
3394
|
servers: `${BASE_URL}/api/mcp/servers`
|
|
@@ -2926,6 +3442,9 @@ const deletePrompt$1 = ({ _id, groupId }) => {
|
|
|
2926
3442
|
};
|
|
2927
3443
|
const getCategories$1 = () => `${BASE_URL}/api/categories`;
|
|
2928
3444
|
const getAllPromptGroups$1 = () => `${prompts()}/all`;
|
|
3445
|
+
const schedules = () => `${BASE_URL}/api/schedules`;
|
|
3446
|
+
const schedule = (id) => `${schedules()}/${encodeURIComponent(id)}`;
|
|
3447
|
+
const runSchedule = (id) => `${schedule(id)}/run`;
|
|
2929
3448
|
const skills = () => `${BASE_URL}/api/skills`;
|
|
2930
3449
|
const importSkill$1 = () => `${skills()}/import`;
|
|
2931
3450
|
const getSkill$1 = (id) => `${skills()}/${encodeURIComponent(id)}`;
|
|
@@ -2939,6 +3458,8 @@ const listSkillsWithFilters = (filter) => {
|
|
|
2939
3458
|
};
|
|
2940
3459
|
const skillFiles = (id) => `${getSkill$1(id)}/files`;
|
|
2941
3460
|
const skillFile = (id, relativePath) => `${skillFiles(id)}/${encodeURIComponent(relativePath)}`;
|
|
3461
|
+
const insights = () => `${BASE_URL}/api/admin/insights`;
|
|
3462
|
+
const insightsAccess = () => `${insights()}/access`;
|
|
2942
3463
|
const adminSkillsSync = () => `${BASE_URL}/api/admin/skills/sync`;
|
|
2943
3464
|
const adminSkillsSyncStatus = () => `${adminSkillsSync()}/status`;
|
|
2944
3465
|
const adminSkillsSyncRun = () => `${adminSkillsSync()}/run`;
|
|
@@ -2974,6 +3495,7 @@ const regenerateBackupCodes$1 = () => `${BASE_URL}/api/auth/2fa/backup/regenerat
|
|
|
2974
3495
|
const verifyTwoFactorTemp$1 = () => `${BASE_URL}/api/auth/2fa/verify-temp`;
|
|
2975
3496
|
const memories = () => `${BASE_URL}/api/memories`;
|
|
2976
3497
|
const memory = (key, agentId) => `${memories()}/${encodeURIComponent(key)}${agentId ? `?agentId=${encodeURIComponent(agentId)}` : ""}`;
|
|
3498
|
+
const memoryById = (id, agentId) => `${memories()}/id/${encodeURIComponent(id)}${agentId ? `?agentId=${encodeURIComponent(agentId)}` : ""}`;
|
|
2977
3499
|
const memoryPreferences = () => `${memories()}/preferences`;
|
|
2978
3500
|
const searchPrincipals$1 = (params) => {
|
|
2979
3501
|
const { q: query, limit, types } = params;
|
|
@@ -3151,9 +3673,11 @@ const UserOAuthOptionsSchema = OAuthOptionsBaseSchema.omit({
|
|
|
3151
3673
|
const OboOptionsSchema = zod.z.object({
|
|
3152
3674
|
/** Scopes to request for the downstream MCP server (e.g., "api://<client-id>/Mcp.Tools.ReadWrite") */
|
|
3153
3675
|
scopes: zod.z.string().min(1) });
|
|
3676
|
+
const MCP_SERVER_TITLE_PATTERN = /* @__PURE__ */ new RegExp("^[\\p{L}\\p{N}][\\p{L}\\p{N}\\p{M}'’ -]*$", "u");
|
|
3677
|
+
const MCP_SERVER_TITLE_ERROR = "Title must start with a letter or number and can include spaces, hyphens, and apostrophes";
|
|
3154
3678
|
const BaseOptionsSchema = zod.z.object({
|
|
3155
|
-
/** Display name for the MCP server
|
|
3156
|
-
title: zod.z.string().regex(
|
|
3679
|
+
/** Display name for the MCP server */
|
|
3680
|
+
title: zod.z.string().regex(MCP_SERVER_TITLE_PATTERN, MCP_SERVER_TITLE_ERROR).optional(),
|
|
3157
3681
|
/** Description of the MCP server */
|
|
3158
3682
|
description: zod.z.string().optional(),
|
|
3159
3683
|
/**
|
|
@@ -3168,7 +3692,14 @@ const BaseOptionsSchema = zod.z.object({
|
|
|
3168
3692
|
/** Timeout (ms) for the long-lived SSE GET stream body before undici aborts it. Default: 300_000 (5 min). */
|
|
3169
3693
|
sseReadTimeout: zod.z.number().int().positive().optional(),
|
|
3170
3694
|
initTimeout: zod.z.number().int().nonnegative().optional(),
|
|
3171
|
-
/**
|
|
3695
|
+
/**
|
|
3696
|
+
* Whether the server is offered in chat.
|
|
3697
|
+
*
|
|
3698
|
+
* `false` hides it from the chat dropdown (MCPSelect) AND bars it from the
|
|
3699
|
+
* chat selection a request carries, so a stale or hand-written request cannot
|
|
3700
|
+
* reach it either. It does not restrict agents, nor a server a model spec
|
|
3701
|
+
* pins through `mcpServers` — both are the operator's own choice.
|
|
3702
|
+
*/
|
|
3172
3703
|
chatMenu: zod.z.boolean().optional(),
|
|
3173
3704
|
/**
|
|
3174
3705
|
* Controls server instruction behavior:
|
|
@@ -3224,6 +3755,26 @@ const ProxyUrlSchema = zod.z.string().transform((val) => extractEnvVariable(val)
|
|
|
3224
3755
|
const protocol = new URL(val).protocol;
|
|
3225
3756
|
return protocol === "http:" || protocol === "https:" || protocol === "socks:" || protocol === "socks5:";
|
|
3226
3757
|
}, { message: "Proxy URL must use http://, https://, socks://, or socks5://" });
|
|
3758
|
+
const PROCESS_MCP_SERVER_FIELDS = new Set([
|
|
3759
|
+
"command",
|
|
3760
|
+
"args",
|
|
3761
|
+
"env",
|
|
3762
|
+
"cwd",
|
|
3763
|
+
"stderr"
|
|
3764
|
+
]);
|
|
3765
|
+
function isProcessMCPServerField(field) {
|
|
3766
|
+
return PROCESS_MCP_SERVER_FIELDS.has(field);
|
|
3767
|
+
}
|
|
3768
|
+
function isProcessMCPServerConfig(value) {
|
|
3769
|
+
if (value == null || typeof value !== "object" || Array.isArray(value)) return false;
|
|
3770
|
+
const config = value;
|
|
3771
|
+
if (config.type === "stdio") return true;
|
|
3772
|
+
return Object.keys(config).some(isProcessMCPServerField);
|
|
3773
|
+
}
|
|
3774
|
+
function hasProcessMCPServerConfig(value) {
|
|
3775
|
+
if (value == null || typeof value !== "object" || Array.isArray(value)) return false;
|
|
3776
|
+
return Object.values(value).some(isProcessMCPServerConfig);
|
|
3777
|
+
}
|
|
3227
3778
|
const StdioOptionsSchema = BaseOptionsSchema.extend({
|
|
3228
3779
|
type: zod.z.literal("stdio").default("stdio"),
|
|
3229
3780
|
obo: zod.z.undefined().optional(),
|
|
@@ -3396,7 +3947,7 @@ const defaultSocialLogins = [
|
|
|
3396
3947
|
"discord",
|
|
3397
3948
|
"saml"
|
|
3398
3949
|
];
|
|
3399
|
-
const BASE_ONLY_CONFIG_SECTIONS = [];
|
|
3950
|
+
const BASE_ONLY_CONFIG_SECTIONS = ["filters"];
|
|
3400
3951
|
/** Sections that may be stored in the tenant's base config document but must
|
|
3401
3952
|
* not be overridden or tombstoned by role, group, or user config documents. */
|
|
3402
3953
|
const BASE_PRINCIPAL_CONFIG_SECTIONS = ["langfuse"];
|
|
@@ -3424,6 +3975,12 @@ const defaultRetrievalModels = [
|
|
|
3424
3975
|
];
|
|
3425
3976
|
const excludedKeys = new Set([
|
|
3426
3977
|
"conversationId",
|
|
3978
|
+
"agentEventBinding",
|
|
3979
|
+
"agentEventActor",
|
|
3980
|
+
"agentEventActorReconciliations",
|
|
3981
|
+
"agentEventActorEpoch",
|
|
3982
|
+
"agentEventActorLegacyTurn",
|
|
3983
|
+
"subagentThread",
|
|
3427
3984
|
"title",
|
|
3428
3985
|
"iconURL",
|
|
3429
3986
|
"greeting",
|
|
@@ -3435,6 +3992,8 @@ const excludedKeys = new Set([
|
|
|
3435
3992
|
"isTemporary",
|
|
3436
3993
|
"messages",
|
|
3437
3994
|
"isArchived",
|
|
3995
|
+
"pinned",
|
|
3996
|
+
"archivedAt",
|
|
3438
3997
|
"tags",
|
|
3439
3998
|
"user",
|
|
3440
3999
|
"__v",
|
|
@@ -3824,6 +4383,22 @@ const baseEndpointSchema = zod.z.object({
|
|
|
3824
4383
|
activityPhasePrompt: zod.z.string().optional(),
|
|
3825
4384
|
/** Cost cap: maximum phase summaries generated per run. Default 5. */
|
|
3826
4385
|
activityPhaseMaxPerRun: zod.z.number().int().positive().optional(),
|
|
4386
|
+
/** Generates a live orientation label for sufficiently long top-level response reasoning. */
|
|
4387
|
+
reasoningLabel: zod.z.boolean().optional(),
|
|
4388
|
+
/** Model used for reasoning labels. Defaults to activityModel, titleModel, then run model. */
|
|
4389
|
+
reasoningLabelModel: zod.z.string().optional(),
|
|
4390
|
+
/** Endpoint receiving the bounded visible-reasoning snapshot. Defaults to activityEndpoint. */
|
|
4391
|
+
reasoningLabelEndpoint: zod.z.string().optional(),
|
|
4392
|
+
/** Overrides the dedicated reasoning-label system prompt. */
|
|
4393
|
+
reasoningLabelPrompt: zod.z.string().optional(),
|
|
4394
|
+
/** Characters required before the first reasoning label. Default 500. */
|
|
4395
|
+
reasoningLabelMinChars: zod.z.number().int().positive().optional(),
|
|
4396
|
+
/** New characters required between streaming revisions. Default 400. */
|
|
4397
|
+
reasoningLabelUpdateChars: zod.z.number().int().positive().optional(),
|
|
4398
|
+
/** Minimum milliseconds between streaming revisions. Default 3000. */
|
|
4399
|
+
reasoningLabelUpdateIntervalMs: zod.z.number().int().nonnegative().optional(),
|
|
4400
|
+
/** Cost cap: maximum reasoning-label provider calls attempted per run. Default 8. */
|
|
4401
|
+
reasoningLabelMaxPerRun: zod.z.number().int().positive().optional(),
|
|
3827
4402
|
/** Maximum characters allowed in a single tool result before truncation. */
|
|
3828
4403
|
maxToolResultChars: zod.z.number().positive().optional()
|
|
3829
4404
|
});
|
|
@@ -3955,7 +4530,7 @@ const toolApprovalModeSchema = zod.z.enum([
|
|
|
3955
4530
|
*
|
|
3956
4531
|
* Shape mirrors `@librechat/agents`'s `ToolPolicyConfig` so the host can map it
|
|
3957
4532
|
* directly into `createToolPolicyHook(config)`. The SDK does the evaluation
|
|
3958
|
-
* (`deny →
|
|
4533
|
+
* (`deny → ask → allow → bypass → dontAsk → fallthrough(ask)`); this config
|
|
3959
4534
|
* just describes the surface.
|
|
3960
4535
|
*
|
|
3961
4536
|
* Conventions:
|
|
@@ -4038,6 +4613,52 @@ const checkpointerSchema = zod.z.object({
|
|
|
4038
4613
|
checkpointCollectionName: zod.z.string().optional(),
|
|
4039
4614
|
checkpointWritesCollectionName: zod.z.string().optional()
|
|
4040
4615
|
}).optional();
|
|
4616
|
+
const codeEnvironmentBaseURLSchema = zod.z.string().trim().url().refine((value) => {
|
|
4617
|
+
try {
|
|
4618
|
+
const url = new URL(value);
|
|
4619
|
+
return (url.protocol === "http:" || url.protocol === "https:") && !value.includes("?") && !value.includes("#") && url.search.length === 0 && url.hash.length === 0;
|
|
4620
|
+
} catch {
|
|
4621
|
+
return false;
|
|
4622
|
+
}
|
|
4623
|
+
}, { message: "Code environment baseURL must be an HTTP(S) base URL without query or fragment" });
|
|
4624
|
+
function isSecureCodeEnvironmentControlURL(baseURL) {
|
|
4625
|
+
try {
|
|
4626
|
+
const url = new URL(baseURL.trim());
|
|
4627
|
+
if (url.protocol === "https:") return true;
|
|
4628
|
+
if (url.protocol !== "http:") return false;
|
|
4629
|
+
return url.hostname === "localhost" || url.hostname === "127.0.0.1" || url.hostname === "[::1]";
|
|
4630
|
+
} catch {
|
|
4631
|
+
return false;
|
|
4632
|
+
}
|
|
4633
|
+
}
|
|
4634
|
+
const codeEnvironmentPermissionDecisionSchema = zod.z.enum([
|
|
4635
|
+
"allow",
|
|
4636
|
+
"ask",
|
|
4637
|
+
"deny"
|
|
4638
|
+
]);
|
|
4639
|
+
const codeEnvironmentPermissionFieldSchema = zod.z.object({
|
|
4640
|
+
allowed: zod.z.array(codeEnvironmentPermissionDecisionSchema).min(1),
|
|
4641
|
+
default: codeEnvironmentPermissionDecisionSchema.optional().default("ask")
|
|
4642
|
+
}).strict().superRefine((field, context) => {
|
|
4643
|
+
if (!field.allowed.includes(field.default)) context.addIssue({
|
|
4644
|
+
code: zod.z.ZodIssueCode.custom,
|
|
4645
|
+
path: ["default"],
|
|
4646
|
+
message: "Permission default must be included in allowed values"
|
|
4647
|
+
});
|
|
4648
|
+
});
|
|
4649
|
+
/**
|
|
4650
|
+
* Typed user-tunable surface for one attached code environment. Omitted fields
|
|
4651
|
+
* remain fixed at LibreChat's safe baseline. Isolation, networking, mounts,
|
|
4652
|
+
* privileged execution, and secrets are deliberately not representable here.
|
|
4653
|
+
*/
|
|
4654
|
+
const codeEnvironmentUserConfigSchema = zod.z.object({ permissions: zod.z.object({
|
|
4655
|
+
fileWrite: codeEnvironmentPermissionFieldSchema.optional(),
|
|
4656
|
+
commandExecution: codeEnvironmentPermissionFieldSchema.optional()
|
|
4657
|
+
}).strict().optional() }).strict();
|
|
4658
|
+
const codeEnvironmentUserSettingsSchema = zod.z.object({ permissions: zod.z.object({
|
|
4659
|
+
fileWrite: codeEnvironmentPermissionDecisionSchema.optional(),
|
|
4660
|
+
commandExecution: codeEnvironmentPermissionDecisionSchema.optional()
|
|
4661
|
+
}).strict().optional() }).strict();
|
|
4041
4662
|
const agentsEndpointSchema = baseEndpointSchema.omit({ baseURL: true }).merge(zod.z.object({
|
|
4042
4663
|
recursionLimit: zod.z.number().optional(),
|
|
4043
4664
|
disableBuilder: zod.z.boolean().optional().default(false),
|
|
@@ -4054,8 +4675,123 @@ const agentsEndpointSchema = baseEndpointSchema.omit({ baseURL: true }).merge(zo
|
|
|
4054
4675
|
maxCitations: zod.z.number().min(1).max(50).optional().default(30),
|
|
4055
4676
|
maxCitationsPerFile: zod.z.number().min(1).max(10).optional().default(7),
|
|
4056
4677
|
minRelevanceScore: zod.z.number().min(0).max(1).optional().default(.45),
|
|
4678
|
+
/** Maximum explicit subagents per agent (`agent_ids` and `graphs`); raised from
|
|
4679
|
+
* the shipped default of 10 for orchestration-heavy deployments, bounded by
|
|
4680
|
+
* `MAX_SUBAGENTS_CEILING`. */
|
|
4681
|
+
maxSubagents: zod.z.number().int().min(1).max(50).optional().default(10),
|
|
4057
4682
|
allowedProviders: zod.z.array(zod.z.union([zod.z.string(), eModelEndpointSchema])).optional(),
|
|
4058
4683
|
capabilities: zod.z.array(zod.z.nativeEnum(AgentCapabilities)).optional().default(defaultAgentCapabilities),
|
|
4684
|
+
/** Controls which workspace-sharing scopes users may select for stateful code sessions.
|
|
4685
|
+
* Omit this block to preserve the legacy behavior of allowing every scope. */
|
|
4686
|
+
statefulCodeSessions: zod.z.object({
|
|
4687
|
+
allowedEnvironments: zod.z.array(zod.z.enum(STATEFUL_CODE_ENVIRONMENTS)).min(1),
|
|
4688
|
+
/** Operator-managed execution environments. Attached entries route to a
|
|
4689
|
+
* Code API deployment backed by an outbound librechat-code worker. */
|
|
4690
|
+
environments: zod.z.array(zod.z.object({
|
|
4691
|
+
id: zod.z.string().regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/),
|
|
4692
|
+
name: zod.z.string().min(1).max(100),
|
|
4693
|
+
type: zod.z.enum(["managed", "attached"]),
|
|
4694
|
+
baseURL: codeEnvironmentBaseURLSchema,
|
|
4695
|
+
default: zod.z.boolean().optional(),
|
|
4696
|
+
/** Server-only outbound worker route. Removed from public config. */
|
|
4697
|
+
workerId: zod.z.string().regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/).optional(),
|
|
4698
|
+
/** Distinguishes operator policy from a principal-authorized
|
|
4699
|
+
* environment merged into request-scoped server config. */
|
|
4700
|
+
owner: zod.z.enum(["deployment", "principal"]).optional().default("deployment"),
|
|
4701
|
+
/** Administrator-controlled user-tunable settings. Only fields
|
|
4702
|
+
* represented here may be changed by a principal. */
|
|
4703
|
+
configSchema: codeEnvironmentUserConfigSchema.optional(),
|
|
4704
|
+
/** Request-scoped effective settings for a principal-owned environment.
|
|
4705
|
+
* Deployment config should define defaults through configSchema instead. */
|
|
4706
|
+
settings: codeEnvironmentUserSettingsSchema.optional(),
|
|
4707
|
+
/** Server-only enrollment metadata. `tokenEnv` names an
|
|
4708
|
+
* environment variable and never contains the token itself. */
|
|
4709
|
+
pairing: zod.z.object({
|
|
4710
|
+
workerId: zod.z.string().regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/).optional(),
|
|
4711
|
+
allowPrincipalWorkers: zod.z.boolean().optional().default(false),
|
|
4712
|
+
tokenEnv: zod.z.string().regex(/^[A-Za-z_][A-Za-z0-9_]*$/)
|
|
4713
|
+
}).superRefine((pairing, pairingContext) => {
|
|
4714
|
+
if (pairing.workerId != null || pairing.allowPrincipalWorkers === true) return;
|
|
4715
|
+
pairingContext.addIssue({
|
|
4716
|
+
code: zod.z.ZodIssueCode.custom,
|
|
4717
|
+
message: "Pairing requires a workerId or principal workers"
|
|
4718
|
+
});
|
|
4719
|
+
}).optional()
|
|
4720
|
+
})).optional()
|
|
4721
|
+
}).superRefine((value, context) => {
|
|
4722
|
+
if (!value?.environments) return;
|
|
4723
|
+
const ids = /* @__PURE__ */ new Set();
|
|
4724
|
+
let defaults = 0;
|
|
4725
|
+
let executableEnvironments = 0;
|
|
4726
|
+
for (const environment of value.environments) {
|
|
4727
|
+
const pairingOnly = environment.pairing?.allowPrincipalWorkers === true && environment.pairing.workerId == null && environment.workerId == null;
|
|
4728
|
+
if (environment.pairing != null && environment.type !== "attached") context.addIssue({
|
|
4729
|
+
code: zod.z.ZodIssueCode.custom,
|
|
4730
|
+
message: "Only attached code environments may configure pairing",
|
|
4731
|
+
path: [
|
|
4732
|
+
"environments",
|
|
4733
|
+
environment.id,
|
|
4734
|
+
"pairing"
|
|
4735
|
+
]
|
|
4736
|
+
});
|
|
4737
|
+
if (environment.pairing != null && environment.owner !== "deployment") context.addIssue({
|
|
4738
|
+
code: zod.z.ZodIssueCode.custom,
|
|
4739
|
+
message: "Only deployment-owned code environments may configure pairing",
|
|
4740
|
+
path: [
|
|
4741
|
+
"environments",
|
|
4742
|
+
environment.id,
|
|
4743
|
+
"pairing"
|
|
4744
|
+
]
|
|
4745
|
+
});
|
|
4746
|
+
if (environment.pairing != null && !isSecureCodeEnvironmentControlURL(environment.baseURL)) context.addIssue({
|
|
4747
|
+
code: zod.z.ZodIssueCode.custom,
|
|
4748
|
+
message: "Paired code environments require HTTPS outside loopback development",
|
|
4749
|
+
path: [
|
|
4750
|
+
"environments",
|
|
4751
|
+
environment.id,
|
|
4752
|
+
"baseURL"
|
|
4753
|
+
]
|
|
4754
|
+
});
|
|
4755
|
+
if (environment.workerId != null && environment.pairing?.workerId != null && environment.workerId !== environment.pairing.workerId) context.addIssue({
|
|
4756
|
+
code: zod.z.ZodIssueCode.custom,
|
|
4757
|
+
message: "Code environment workerId must match pairing.workerId",
|
|
4758
|
+
path: [
|
|
4759
|
+
"environments",
|
|
4760
|
+
environment.id,
|
|
4761
|
+
"workerId"
|
|
4762
|
+
]
|
|
4763
|
+
});
|
|
4764
|
+
if (pairingOnly && environment.default === true) context.addIssue({
|
|
4765
|
+
code: zod.z.ZodIssueCode.custom,
|
|
4766
|
+
message: "Pairing-only code control planes cannot be execution defaults",
|
|
4767
|
+
path: [
|
|
4768
|
+
"environments",
|
|
4769
|
+
environment.id,
|
|
4770
|
+
"default"
|
|
4771
|
+
]
|
|
4772
|
+
});
|
|
4773
|
+
if (ids.has(environment.id)) context.addIssue({
|
|
4774
|
+
code: zod.z.ZodIssueCode.custom,
|
|
4775
|
+
message: `Duplicate code environment id: ${environment.id}`,
|
|
4776
|
+
path: ["environments"]
|
|
4777
|
+
});
|
|
4778
|
+
ids.add(environment.id);
|
|
4779
|
+
if (!pairingOnly) {
|
|
4780
|
+
executableEnvironments += 1;
|
|
4781
|
+
if (environment.default === true) defaults += 1;
|
|
4782
|
+
}
|
|
4783
|
+
}
|
|
4784
|
+
if (executableEnvironments > 0 && defaults !== 1) context.addIssue({
|
|
4785
|
+
code: zod.z.ZodIssueCode.custom,
|
|
4786
|
+
message: "Exactly one stateful code environment must be the default",
|
|
4787
|
+
path: ["environments"]
|
|
4788
|
+
});
|
|
4789
|
+
}).optional(),
|
|
4790
|
+
/** Optional trusted origin for in-process agent event delivery. */
|
|
4791
|
+
eventDriven: zod.z.object({ selfUrl: zod.z.string().url().optional() }).optional(),
|
|
4792
|
+
/** Conversational background-task delivery policy. Automatic completion wakeups are
|
|
4793
|
+
* enabled unless an administrator explicitly restores poll-only behavior. */
|
|
4794
|
+
backgroundTasks: zod.z.object({ completionWakeups: zod.z.boolean().optional().default(true) }).optional(),
|
|
4059
4795
|
skills: zod.z.object({ maxCatalogSkills: zod.z.number().int().min(1).max(100).optional() }).optional(),
|
|
4060
4796
|
remoteApi: remoteApiSchema.optional(),
|
|
4061
4797
|
/** Human-in-the-loop tool approval policy. Off by default. */
|
|
@@ -4068,7 +4804,8 @@ const agentsEndpointSchema = baseEndpointSchema.omit({ baseURL: true }).merge(zo
|
|
|
4068
4804
|
capabilities: defaultAgentCapabilities,
|
|
4069
4805
|
maxCitations: 30,
|
|
4070
4806
|
maxCitationsPerFile: 7,
|
|
4071
|
-
minRelevanceScore: .45
|
|
4807
|
+
minRelevanceScore: .45,
|
|
4808
|
+
maxSubagents: 10
|
|
4072
4809
|
});
|
|
4073
4810
|
const paramDefinitionSchema = zod.z.object({
|
|
4074
4811
|
key: zod.z.string(),
|
|
@@ -4086,7 +4823,11 @@ const paramDefinitionSchema = zod.z.object({
|
|
|
4086
4823
|
range: zod.z.object({
|
|
4087
4824
|
min: zod.z.number(),
|
|
4088
4825
|
max: zod.z.number(),
|
|
4089
|
-
step: zod.z.number().optional()
|
|
4826
|
+
step: zod.z.number().optional(),
|
|
4827
|
+
positiveMin: zod.z.number().optional()
|
|
4828
|
+
}).refine((value) => value.positiveMin == null || value.positiveMin <= value.max, {
|
|
4829
|
+
message: "range.positiveMin cannot exceed range.max",
|
|
4830
|
+
path: ["positiveMin"]
|
|
4090
4831
|
}).optional(),
|
|
4091
4832
|
enumMappings: zod.z.record(zod.z.union([
|
|
4092
4833
|
zod.z.number(),
|
|
@@ -4197,7 +4938,15 @@ const azureEndpointSchema = zod.z.object({
|
|
|
4197
4938
|
activityPhaseModel: true,
|
|
4198
4939
|
activityPhaseEndpoint: true,
|
|
4199
4940
|
activityPhasePrompt: true,
|
|
4200
|
-
activityPhaseMaxPerRun: true
|
|
4941
|
+
activityPhaseMaxPerRun: true,
|
|
4942
|
+
reasoningLabel: true,
|
|
4943
|
+
reasoningLabelModel: true,
|
|
4944
|
+
reasoningLabelEndpoint: true,
|
|
4945
|
+
reasoningLabelPrompt: true,
|
|
4946
|
+
reasoningLabelMinChars: true,
|
|
4947
|
+
reasoningLabelUpdateChars: true,
|
|
4948
|
+
reasoningLabelUpdateIntervalMs: true,
|
|
4949
|
+
reasoningLabelMaxPerRun: true
|
|
4201
4950
|
}).partial()
|
|
4202
4951
|
);
|
|
4203
4952
|
/**
|
|
@@ -4342,6 +5091,10 @@ let RateLimitPrefix = /* @__PURE__ */ function(RateLimitPrefix) {
|
|
|
4342
5091
|
return RateLimitPrefix;
|
|
4343
5092
|
}({});
|
|
4344
5093
|
const rateLimitSchema = zod.z.object({
|
|
5094
|
+
agentEvents: zod.z.object({
|
|
5095
|
+
userMax: zod.z.number().int().positive().optional(),
|
|
5096
|
+
userWindowInMinutes: zod.z.number().positive().optional()
|
|
5097
|
+
}).optional(),
|
|
4345
5098
|
fileUploads: zod.z.object({
|
|
4346
5099
|
ipMax: zod.z.number().optional(),
|
|
4347
5100
|
ipWindowInMinutes: zod.z.number().optional(),
|
|
@@ -4433,6 +5186,7 @@ const interfaceSchema = zod.z.object({
|
|
|
4433
5186
|
webSearch: zod.z.boolean().optional(),
|
|
4434
5187
|
contextUsage: zod.z.boolean().optional(),
|
|
4435
5188
|
contextCost: zod.z.boolean().optional(),
|
|
5189
|
+
feedback: zod.z.boolean().optional(),
|
|
4436
5190
|
currency: zod.z.object({
|
|
4437
5191
|
code: zod.z.string(),
|
|
4438
5192
|
rate: zod.z.number().positive()
|
|
@@ -4466,6 +5220,23 @@ const interfaceSchema = zod.z.object({
|
|
|
4466
5220
|
share: zod.z.boolean().optional(),
|
|
4467
5221
|
public: zod.z.boolean().optional(),
|
|
4468
5222
|
snapshotFiles: zod.z.boolean().optional()
|
|
5223
|
+
})]).optional(),
|
|
5224
|
+
schedules: zod.z.union([zod.z.boolean(), zod.z.object({
|
|
5225
|
+
use: zod.z.boolean().optional(),
|
|
5226
|
+
create: zod.z.boolean().optional(),
|
|
5227
|
+
maxPerUser: zod.z.number().int().min(0).optional(),
|
|
5228
|
+
minIntervalMinutes: zod.z.number().int().min(1).optional(),
|
|
5229
|
+
autoDisableAfterFailures: zod.z.number().int().min(1).optional(),
|
|
5230
|
+
fireConcurrency: zod.z.number().int().min(1).optional(),
|
|
5231
|
+
/** Refuse schedules that are not filed under a chat project. Enforced on
|
|
5232
|
+
* create/update AND at every fire, so raising it later stops schedules
|
|
5233
|
+
* that predate the policy instead of grandfathering them. */
|
|
5234
|
+
requireProject: zod.z.boolean().optional(),
|
|
5235
|
+
/** Pins every scheduled run to ONE chat project, ignoring any client
|
|
5236
|
+
* choice. Implies `requireProject`. The project must belong to the
|
|
5237
|
+
* schedule's owner, so a deployment-wide value only makes sense with a
|
|
5238
|
+
* per-user/per-role config override. */
|
|
5239
|
+
projectId: zod.z.string().trim().min(1).optional()
|
|
4469
5240
|
})]).optional()
|
|
4470
5241
|
}).default({
|
|
4471
5242
|
modelSelect: true,
|
|
@@ -4492,6 +5263,7 @@ const interfaceSchema = zod.z.object({
|
|
|
4492
5263
|
webSearch: true,
|
|
4493
5264
|
contextUsage: true,
|
|
4494
5265
|
contextCost: false,
|
|
5266
|
+
feedback: true,
|
|
4495
5267
|
peoplePicker: {
|
|
4496
5268
|
users: true,
|
|
4497
5269
|
groups: true,
|
|
@@ -4561,12 +5333,14 @@ let SearchProviders = /* @__PURE__ */ function(SearchProviders) {
|
|
|
4561
5333
|
SearchProviders["SERPER"] = "serper";
|
|
4562
5334
|
SearchProviders["SEARXNG"] = "searxng";
|
|
4563
5335
|
SearchProviders["TAVILY"] = "tavily";
|
|
5336
|
+
SearchProviders["KEENABLE"] = "keenable";
|
|
4564
5337
|
return SearchProviders;
|
|
4565
5338
|
}({});
|
|
4566
5339
|
let ScraperProviders = /* @__PURE__ */ function(ScraperProviders) {
|
|
4567
5340
|
ScraperProviders["FIRECRAWL"] = "firecrawl";
|
|
4568
5341
|
ScraperProviders["SERPER"] = "serper";
|
|
4569
5342
|
ScraperProviders["TAVILY"] = "tavily";
|
|
5343
|
+
ScraperProviders["KEENABLE"] = "keenable";
|
|
4570
5344
|
return ScraperProviders;
|
|
4571
5345
|
}({});
|
|
4572
5346
|
let RerankerTypes = /* @__PURE__ */ function(RerankerTypes) {
|
|
@@ -4581,6 +5355,17 @@ let SafeSearchTypes = /* @__PURE__ */ function(SafeSearchTypes) {
|
|
|
4581
5355
|
SafeSearchTypes[SafeSearchTypes["STRICT"] = 2] = "STRICT";
|
|
4582
5356
|
return SafeSearchTypes;
|
|
4583
5357
|
}({});
|
|
5358
|
+
/**
|
|
5359
|
+
* Normalizes a SearXNG engine list into the comma-separated form the API expects.
|
|
5360
|
+
* Accepts the YAML list or comma-separated string an operator may write, and is
|
|
5361
|
+
* applied both at the schema boundary and when loading the runtime config, since
|
|
5362
|
+
* `loadCustomConfig` returns the raw YAML object rather than the parsed result.
|
|
5363
|
+
*/
|
|
5364
|
+
function normalizeSearxngEngines(engines) {
|
|
5365
|
+
if (engines == null) return;
|
|
5366
|
+
const normalized = (Array.isArray(engines) ? engines : engines.split(",")).map((engine) => engine.trim()).filter(Boolean);
|
|
5367
|
+
return normalized.length ? normalized.join(",") : void 0;
|
|
5368
|
+
}
|
|
4584
5369
|
const webSearchSchema = zod.z.object({
|
|
4585
5370
|
allowedAddresses: allowedAddressesSchema,
|
|
4586
5371
|
serperApiKey: zod.z.string().optional().default("${SERPER_API_KEY}"),
|
|
@@ -4596,6 +5381,8 @@ const webSearchSchema = zod.z.object({
|
|
|
4596
5381
|
tavilyApiKeyPreview: apiKeyPreviewSchema,
|
|
4597
5382
|
tavilySearchUrl: zod.z.string().optional().default("${TAVILY_SEARCH_URL}"),
|
|
4598
5383
|
tavilyExtractUrl: zod.z.string().optional().default("${TAVILY_EXTRACT_URL}"),
|
|
5384
|
+
keenableApiKey: zod.z.string().optional().default("${KEENABLE_API_KEY}"),
|
|
5385
|
+
keenableApiUrl: zod.z.string().optional().default("${KEENABLE_API_URL}"),
|
|
4599
5386
|
jinaApiKey: zod.z.string().optional().default("${JINA_API_KEY}"),
|
|
4600
5387
|
jinaApiKeyPreview: apiKeyPreviewSchema,
|
|
4601
5388
|
jinaApiUrl: zod.z.string().optional().default("${JINA_API_URL}"),
|
|
@@ -4633,6 +5420,16 @@ const webSearchSchema = zod.z.object({
|
|
|
4633
5420
|
tag: zod.z.string().nullable().optional()
|
|
4634
5421
|
}).optional()
|
|
4635
5422
|
}).optional(),
|
|
5423
|
+
searxngSearchOptions: zod.z.object({
|
|
5424
|
+
engines: zod.z.union([zod.z.string(), zod.z.array(zod.z.string())]).transform(normalizeSearxngEngines).optional(),
|
|
5425
|
+
language: zod.z.string().optional(),
|
|
5426
|
+
timeRange: zod.z.enum([
|
|
5427
|
+
"day",
|
|
5428
|
+
"month",
|
|
5429
|
+
"year"
|
|
5430
|
+
]).optional(),
|
|
5431
|
+
timeout: zod.z.number().int().positive().max(12e4).optional()
|
|
5432
|
+
}).optional(),
|
|
4636
5433
|
tavilySearchOptions: zod.z.object({
|
|
4637
5434
|
searchDepth: zod.z.enum([
|
|
4638
5435
|
"basic",
|
|
@@ -4673,6 +5470,16 @@ const webSearchSchema = zod.z.object({
|
|
|
4673
5470
|
includeFavicon: zod.z.boolean().optional(),
|
|
4674
5471
|
format: zod.z.enum(["markdown", "text"]).optional(),
|
|
4675
5472
|
timeout: zod.z.number().int().nonnegative().max(12e4).optional()
|
|
5473
|
+
}).optional(),
|
|
5474
|
+
keenableSearchOptions: zod.z.object({
|
|
5475
|
+
maxResults: zod.z.number().int().min(1).max(20).optional(),
|
|
5476
|
+
site: zod.z.string().optional(),
|
|
5477
|
+
attributionTitle: zod.z.string().optional(),
|
|
5478
|
+
timeout: zod.z.number().int().nonnegative().max(12e4).optional()
|
|
5479
|
+
}).optional(),
|
|
5480
|
+
keenableScraperOptions: zod.z.object({
|
|
5481
|
+
attributionTitle: zod.z.string().optional(),
|
|
5482
|
+
timeout: zod.z.number().int().nonnegative().max(12e4).optional()
|
|
4676
5483
|
}).optional()
|
|
4677
5484
|
});
|
|
4678
5485
|
const ocrSchema = zod.z.object({
|
|
@@ -4760,13 +5567,6 @@ const summarizationConfigSchema = zod.z.object({
|
|
|
4760
5567
|
retainRecent: retainRecentConfigSchema.optional()
|
|
4761
5568
|
});
|
|
4762
5569
|
const customEndpointsSchema = zod.z.array(endpointSchema.partial()).optional();
|
|
4763
|
-
/**
|
|
4764
|
-
* Validates a messageFilter PII regex at config load. Defaults to native RegExp so browser
|
|
4765
|
-
* builds add no extra engine; the server injects a check backed by the linear-time runtime
|
|
4766
|
-
* engine (RE2) via setMessageFilterRegexValidator, so a pattern the runtime cannot compile
|
|
4767
|
-
* (backreferences, lookaround, control escapes, and so on) is rejected at load rather than
|
|
4768
|
-
* silently dropped at request time.
|
|
4769
|
-
*/
|
|
4770
5570
|
let messageFilterRegexValidator = (value) => {
|
|
4771
5571
|
try {
|
|
4772
5572
|
new RegExp(value, "g");
|
|
@@ -4779,13 +5579,45 @@ const setMessageFilterRegexValidator = (validate) => {
|
|
|
4779
5579
|
messageFilterRegexValidator = validate;
|
|
4780
5580
|
};
|
|
4781
5581
|
const messageFilterPiiCustomPatternSchema = zod.z.object({
|
|
4782
|
-
id: zod.z.string().min(1),
|
|
4783
|
-
label: zod.z.string().min(1),
|
|
4784
|
-
regex: zod.z.string().min(1).
|
|
5582
|
+
id: zod.z.string().min(1).max(256),
|
|
5583
|
+
label: zod.z.string().min(1).max(512),
|
|
5584
|
+
regex: zod.z.string().min(1).max(512)
|
|
4785
5585
|
});
|
|
4786
5586
|
const messageFilterPiiSchema = zod.z.object({
|
|
4787
|
-
starterPatterns: zod.z.array(zod.z.string()).optional(),
|
|
4788
|
-
customPatterns: zod.z.array(messageFilterPiiCustomPatternSchema).optional()
|
|
5587
|
+
starterPatterns: zod.z.array(zod.z.string().max(256)).max(256).optional(),
|
|
5588
|
+
customPatterns: zod.z.array(messageFilterPiiCustomPatternSchema).max(256).optional()
|
|
5589
|
+
}).superRefine((pii, context) => {
|
|
5590
|
+
let regexCharacters = 0;
|
|
5591
|
+
let regexInstructions = 0;
|
|
5592
|
+
for (let index = 0; index < (pii.customPatterns?.length ?? 0); index++) {
|
|
5593
|
+
const pattern = pii.customPatterns?.[index];
|
|
5594
|
+
if (pattern == null) continue;
|
|
5595
|
+
regexCharacters += pattern.regex.length;
|
|
5596
|
+
const result = messageFilterRegexValidator(pattern.regex);
|
|
5597
|
+
if (!(typeof result === "boolean" ? result : result.supported)) {
|
|
5598
|
+
context.addIssue({
|
|
5599
|
+
code: zod.z.ZodIssueCode.custom,
|
|
5600
|
+
path: [
|
|
5601
|
+
"customPatterns",
|
|
5602
|
+
index,
|
|
5603
|
+
"regex"
|
|
5604
|
+
],
|
|
5605
|
+
message: "Unsupported regex: not compatible with the RE2 engine (no backreferences, lookaround, or control escapes)"
|
|
5606
|
+
});
|
|
5607
|
+
continue;
|
|
5608
|
+
}
|
|
5609
|
+
if (typeof result !== "boolean" && result.programSize != null) regexInstructions += result.programSize;
|
|
5610
|
+
}
|
|
5611
|
+
if (regexCharacters > 8192) context.addIssue({
|
|
5612
|
+
code: zod.z.ZodIssueCode.custom,
|
|
5613
|
+
path: ["customPatterns"],
|
|
5614
|
+
message: `Custom PII regexes may contain at most ${MAX_PII_CUSTOM_REGEX_CHARACTERS} characters in total`
|
|
5615
|
+
});
|
|
5616
|
+
if (regexInstructions > 8192) context.addIssue({
|
|
5617
|
+
code: zod.z.ZodIssueCode.custom,
|
|
5618
|
+
path: ["customPatterns"],
|
|
5619
|
+
message: `Custom PII regexes may compile to at most ${MAX_PII_CUSTOM_REGEX_INSTRUCTIONS} instructions in total`
|
|
5620
|
+
});
|
|
4789
5621
|
});
|
|
4790
5622
|
const messageFilterSchema = zod.z.object({ pii: messageFilterPiiSchema.optional() });
|
|
4791
5623
|
const langfuseConfigSchema = zod.z.object({
|
|
@@ -4798,7 +5630,28 @@ const langfuseConfigSchema = zod.z.object({
|
|
|
4798
5630
|
* admin reads can show which secret key is configured without returning the secret. */
|
|
4799
5631
|
secretKeyPreview: zod.z.string().optional(),
|
|
4800
5632
|
/** Routing key for one of the deployment-configured tenant Langfuse destinations. */
|
|
4801
|
-
destination: zod.z.string().optional()
|
|
5633
|
+
destination: zod.z.string().optional(),
|
|
5634
|
+
/**
|
|
5635
|
+
* Custom request headers sent on every outbound Langfuse request — trace and
|
|
5636
|
+
* media export, feedback scores, and credential verification — for
|
|
5637
|
+
* self-hosted instances behind an authenticating proxy or gateway. Values
|
|
5638
|
+
* support `${ENV_VAR}` interpolation.
|
|
5639
|
+
*
|
|
5640
|
+
* Deployment-level only. Trace export batches spans from every user through
|
|
5641
|
+
* one exporter, so unlike endpoint headers these cannot carry per-user
|
|
5642
|
+
* placeholders. Headers referencing an unset variable, naming an
|
|
5643
|
+
* infrastructure secret, or carrying an invalid HTTP field name are dropped
|
|
5644
|
+
* with a warning rather than sent.
|
|
5645
|
+
*
|
|
5646
|
+
* Sent only when the deployment configures exactly one Langfuse origin, and
|
|
5647
|
+
* only to that origin. The map cannot say which endpoint it authenticates
|
|
5648
|
+
* to, so with several configured origins any choice of recipient would risk
|
|
5649
|
+
* disclosing a gateway credential to the others; a warning is logged instead.
|
|
5650
|
+
* Multi-destination deployments need per-destination headers, which this
|
|
5651
|
+
* schema does not yet express — and note the fanout collector forwards only
|
|
5652
|
+
* `Authorization` upstream regardless.
|
|
5653
|
+
*/
|
|
5654
|
+
headers: zod.z.record(zod.z.string()).optional()
|
|
4802
5655
|
});
|
|
4803
5656
|
const configSchema = zod.z.object({
|
|
4804
5657
|
version: zod.z.string(),
|
|
@@ -4841,6 +5694,7 @@ const configSchema = zod.z.object({
|
|
|
4841
5694
|
rateLimits: rateLimitSchema.optional(),
|
|
4842
5695
|
fileConfig: fileConfigSchema.optional(),
|
|
4843
5696
|
modelSpecs: specsConfigSchema.optional(),
|
|
5697
|
+
filters: filtersConfigSchema.optional(),
|
|
4844
5698
|
messageFilter: messageFilterSchema.optional(),
|
|
4845
5699
|
endpoints: zod.z.object({
|
|
4846
5700
|
allowedAddresses: allowedAddressesSchema,
|
|
@@ -4946,6 +5800,7 @@ const sharedOpenAIModels = [
|
|
|
4946
5800
|
"gpt-4o"
|
|
4947
5801
|
];
|
|
4948
5802
|
const sharedAnthropicModels = [
|
|
5803
|
+
"claude-fable-5-1",
|
|
4949
5804
|
"claude-fable-5",
|
|
4950
5805
|
"claude-opus-5",
|
|
4951
5806
|
"claude-opus-4-8",
|
|
@@ -4980,6 +5835,7 @@ const sharedAnthropicModels = [
|
|
|
4980
5835
|
* availability); Opus 4.1 has no global profile, so it uses `us.`.
|
|
4981
5836
|
*/
|
|
4982
5837
|
const bedrockModels = [
|
|
5838
|
+
"global.anthropic.claude-fable-5-1",
|
|
4983
5839
|
"global.anthropic.claude-fable-5",
|
|
4984
5840
|
"global.anthropic.claude-opus-5",
|
|
4985
5841
|
"global.anthropic.claude-opus-4-8",
|
|
@@ -5014,6 +5870,7 @@ const defaultModels = {
|
|
|
5014
5870
|
["assistants"]: [...sharedOpenAIModels, "chatgpt-4o-latest"],
|
|
5015
5871
|
["agents"]: sharedOpenAIModels,
|
|
5016
5872
|
["google"]: [
|
|
5873
|
+
"gemini-3.8-flash",
|
|
5017
5874
|
"gemini-3.7-flash",
|
|
5018
5875
|
"gemini-3.6-flash",
|
|
5019
5876
|
"gemini-3.5-flash",
|
|
@@ -5181,6 +6038,10 @@ let CacheKeys = /* @__PURE__ */ function(CacheKeys) {
|
|
|
5181
6038
|
*/
|
|
5182
6039
|
CacheKeys["USER_PRINCIPALS"] = "USER_PRINCIPALS";
|
|
5183
6040
|
/**
|
|
6041
|
+
* Key for cached prompt group access ID sets (accessible, public, owned).
|
|
6042
|
+
*/
|
|
6043
|
+
CacheKeys["PROMPT_GROUPS_ACCESS"] = "PROMPT_GROUPS_ACCESS";
|
|
6044
|
+
/**
|
|
5184
6045
|
* Key for per-conversation stateful code sandbox prewarm/warm state.
|
|
5185
6046
|
*/
|
|
5186
6047
|
CacheKeys["SANDBOX_PREWARM"] = "SANDBOX_PREWARM";
|
|
@@ -5403,6 +6264,10 @@ let ErrorTypes = /* @__PURE__ */ function(ErrorTypes) {
|
|
|
5403
6264
|
*/
|
|
5404
6265
|
ErrorTypes["RESOURCE_RECOVERY_REQUIRED"] = "resource_recovery_required";
|
|
5405
6266
|
/**
|
|
6267
|
+
* Agent selected a stateful Code API workspace scope disabled by the deployment.
|
|
6268
|
+
*/
|
|
6269
|
+
ErrorTypes["STATEFUL_CODE_ENVIRONMENT_NOT_ALLOWED"] = "stateful_code_environment_not_allowed";
|
|
6270
|
+
/**
|
|
5406
6271
|
* Invalid Agent Provider (excluded by Admin)
|
|
5407
6272
|
*/
|
|
5408
6273
|
ErrorTypes["INVALID_AGENT_PROVIDER"] = "invalid_agent_provider";
|
|
@@ -5423,6 +6288,14 @@ let ErrorTypes = /* @__PURE__ */ function(ErrorTypes) {
|
|
|
5423
6288
|
*/
|
|
5424
6289
|
ErrorTypes["AUTH_FAILED"] = "auth_failed";
|
|
5425
6290
|
/**
|
|
6291
|
+
* Authentication rejected by a rate limiter
|
|
6292
|
+
*/
|
|
6293
|
+
ErrorTypes["AUTH_RATE_LIMITED"] = "auth_rate_limited";
|
|
6294
|
+
/**
|
|
6295
|
+
* Authentication rejected because the account or IP is banned
|
|
6296
|
+
*/
|
|
6297
|
+
ErrorTypes["AUTH_BANNED"] = "auth_banned";
|
|
6298
|
+
/**
|
|
5426
6299
|
* Model refused to respond (content policy violation)
|
|
5427
6300
|
*/
|
|
5428
6301
|
ErrorTypes["REFUSAL"] = "refusal";
|
|
@@ -5430,6 +6303,14 @@ let ErrorTypes = /* @__PURE__ */ function(ErrorTypes) {
|
|
|
5430
6303
|
* SSE stream 404 — job completed, expired, or was deleted before the subscriber connected
|
|
5431
6304
|
*/
|
|
5432
6305
|
ErrorTypes["STREAM_EXPIRED"] = "stream_expired";
|
|
6306
|
+
/**
|
|
6307
|
+
* Provider does not serve the requested model
|
|
6308
|
+
*/
|
|
6309
|
+
ErrorTypes["MODEL_NOT_FOUND"] = "model_not_found";
|
|
6310
|
+
/**
|
|
6311
|
+
* Provider throttled or refused the request for exceeding a rate/spend allowance
|
|
6312
|
+
*/
|
|
6313
|
+
ErrorTypes["MODEL_RATE_LIMIT"] = "model_rate_limit";
|
|
5433
6314
|
return ErrorTypes;
|
|
5434
6315
|
}({});
|
|
5435
6316
|
/**
|
|
@@ -5561,7 +6442,7 @@ let TTSProviders = /* @__PURE__ */ function(TTSProviders) {
|
|
|
5561
6442
|
/** Enum for app-wide constants */
|
|
5562
6443
|
let Constants = /* @__PURE__ */ function(Constants) {
|
|
5563
6444
|
/**
|
|
5564
|
-
* Key for the app's version. The placeholder `v0.8.8-
|
|
6445
|
+
* Key for the app's version. The placeholder `v0.8.8-rc2` is
|
|
5565
6446
|
* swapped in by `@rollup/plugin-replace` during `npm run build:data-provider`
|
|
5566
6447
|
* using the value of the root `package.json`'s `version` field. Consumers
|
|
5567
6448
|
* always import this via the built dist bundle (see `main` field in
|
|
@@ -5569,9 +6450,9 @@ let Constants = /* @__PURE__ */ function(Constants) {
|
|
|
5569
6450
|
* substituted value. Only tests that import the TypeScript source directly
|
|
5570
6451
|
* would observe the raw placeholder.
|
|
5571
6452
|
*/
|
|
5572
|
-
Constants["VERSION"] = "v0.8.8-
|
|
6453
|
+
Constants["VERSION"] = "v0.8.8-rc2";
|
|
5573
6454
|
/** Key for the Custom Config's version (librechat.yaml). */
|
|
5574
|
-
Constants["CONFIG_VERSION"] = "1.3.
|
|
6455
|
+
Constants["CONFIG_VERSION"] = "1.3.15";
|
|
5575
6456
|
/** Standard value for the first message's `parentMessageId` value, to indicate no parent exists. */
|
|
5576
6457
|
Constants["NO_PARENT"] = "00000000-0000-0000-0000-000000000000";
|
|
5577
6458
|
/** Standard value to use whatever the submission prelim. `responseMessageId` is */
|
|
@@ -5625,6 +6506,15 @@ let Constants = /* @__PURE__ */ function(Constants) {
|
|
|
5625
6506
|
Constants["SUBAGENT"] = "subagent";
|
|
5626
6507
|
/** Poll tool for retrieving the status/result of a backgrounded tool call. */
|
|
5627
6508
|
Constants["CHECK_BACKGROUND_TASK"] = "check_background_task";
|
|
6509
|
+
/**
|
|
6510
|
+
* `finish_reason` stamped on an assistant message whose turn ended because the
|
|
6511
|
+
* agent exhausted its per-turn graph step budget (`recursionLimit`) rather than
|
|
6512
|
+
* because the model chose to stop. Distinct from a user abort: nothing failed and
|
|
6513
|
+
* nothing was cancelled, the turn simply ran out of room. The UI keys its
|
|
6514
|
+
* "tool call limit reached" notice off this value. The hover Continue control
|
|
6515
|
+
* is withheld for this reason because the notice already offers the way forward.
|
|
6516
|
+
*/
|
|
6517
|
+
Constants["TOOL_CALL_LIMIT_FINISH_REASON"] = "tool_call_limit";
|
|
5628
6518
|
return Constants;
|
|
5629
6519
|
}({});
|
|
5630
6520
|
/**
|
|
@@ -5711,6 +6601,95 @@ function normalizeMCPToolKey(toolKey, rawServerNames) {
|
|
|
5711
6601
|
if (normalized === matched) return toolKey;
|
|
5712
6602
|
return `${toolKey.slice(0, toolKey.length - matched.length)}${normalized}`;
|
|
5713
6603
|
}
|
|
6604
|
+
/**
|
|
6605
|
+
* Strips a redundant leading server-name prefix from a raw upstream tool name
|
|
6606
|
+
* before it is embedded into a model-facing key, so the key doesn't carry the
|
|
6607
|
+
* server twice (`acme_trace_..._mcp_acme`) and push long tool names
|
|
6608
|
+
* past provider function-name limits (64 chars). The match is case-insensitive
|
|
6609
|
+
* because display-cased server names ("Acme") conventionally prefix their
|
|
6610
|
+
* tools in lowercase. Ingestion that strips must record the original name
|
|
6611
|
+
* (`serverToolName` on the cached definition) — tool calls send THAT name back
|
|
6612
|
+
* to the server, never the stripped one. Catalog producers must not call this
|
|
6613
|
+
* directly: only {@link stripServerNamePrefixes} sees the whole sibling set and
|
|
6614
|
+
* can keep colliding results apart.
|
|
6615
|
+
*/
|
|
6616
|
+
function stripServerNamePrefix(toolName, normalizedServerName) {
|
|
6617
|
+
const prefixLength = normalizedServerName.length + 1;
|
|
6618
|
+
if (toolName.length <= prefixLength) return toolName;
|
|
6619
|
+
if (toolName.slice(0, prefixLength).toLowerCase() !== `${normalizedServerName.toLowerCase()}_`) return toolName;
|
|
6620
|
+
const stripped = toolName.slice(prefixLength);
|
|
6621
|
+
if (isReservedMCPToolName(stripped)) return toolName;
|
|
6622
|
+
/** `isActionTool` classifies keys by the RELATIVE position of `_action_`
|
|
6623
|
+
* and `_mcp_`; stripping moves the first `_mcp_` earlier, so a server
|
|
6624
|
+
* whose normalized name contains `_action_` could see a real MCP tool
|
|
6625
|
+
* reclassified as an OpenAPI action (bypassing MCP authorization). Never
|
|
6626
|
+
* produce a key whose classification differs from the raw key's. */
|
|
6627
|
+
const keySuffix = `_mcp_${normalizedServerName}`;
|
|
6628
|
+
if (isActionTool(`${stripped}${keySuffix}`) !== isActionTool(`${toolName}${keySuffix}`)) return toolName;
|
|
6629
|
+
return stripped;
|
|
6630
|
+
}
|
|
6631
|
+
/**
|
|
6632
|
+
* Synthetic markers consumed by prefix (`isMCPAllPlaceholder`, the server-pin
|
|
6633
|
+
* skip, the client's OAuth stream classification), so each reserves BOTH its
|
|
6634
|
+
* exact name and its `${marker}${mcp_delimiter}` namespace: a stripped
|
|
6635
|
+
* remainder inside any of them would turn a real upstream tool into the
|
|
6636
|
+
* server-wide wildcard, the UI pin placeholder, or a synthetic OAuth call.
|
|
6637
|
+
*/
|
|
6638
|
+
const RESERVED_MCP_TOOL_MARKERS = [
|
|
6639
|
+
`sys__all__sys`,
|
|
6640
|
+
`sys__server__sys`,
|
|
6641
|
+
"oauth"
|
|
6642
|
+
];
|
|
6643
|
+
function isReservedMCPToolName(toolName) {
|
|
6644
|
+
/** `mcp_` opens the server-scoped pluginKey namespace (`mcp_${serverName}`),
|
|
6645
|
+
* and `lc_transfer_to_` opens the agent-handoff namespace (the client
|
|
6646
|
+
* renders such calls as handoffs; the background and intent passes exclude
|
|
6647
|
+
* them) — pre-strip tool keys could never enter either, since they always
|
|
6648
|
+
* began with the server name itself. */
|
|
6649
|
+
if (toolName.startsWith(`mcp_`) || toolName.startsWith(`lc_transfer_to_`)) return true;
|
|
6650
|
+
return RESERVED_MCP_TOOL_MARKERS.some((marker) => toolName === marker || toolName.startsWith(`${marker}_mcp_`));
|
|
6651
|
+
}
|
|
6652
|
+
/**
|
|
6653
|
+
* Maps every raw tool name in a server's catalog to its model-facing name,
|
|
6654
|
+
* stripping redundant server-name prefixes collision-free: when two names
|
|
6655
|
+
* yield the same result — a bare `foo` next to `<server>_foo`, or the
|
|
6656
|
+
* case-variant pair `<server>_Foo` / `<Server>_Foo` under the case-insensitive
|
|
6657
|
+
* prefix match — every collider keeps its raw name, so two distinct upstream
|
|
6658
|
+
* tools can never collapse onto one key. Unprefixed names count against the
|
|
6659
|
+
* result set through their identity mapping, which is what makes the bare-name
|
|
6660
|
+
* case fall out of the same counter.
|
|
6661
|
+
*/
|
|
6662
|
+
function stripServerNamePrefixes(toolNames, normalizedServerName) {
|
|
6663
|
+
const rawNames = new Set(toolNames);
|
|
6664
|
+
const finalNames = new Map(toolNames.map((name) => {
|
|
6665
|
+
const stripped = stripServerNamePrefix(name, normalizedServerName);
|
|
6666
|
+
/** Every sibling's RAW name is reserved even when that sibling itself
|
|
6667
|
+
* strips away: keys persisted BEFORE stripping embed raw names, so a
|
|
6668
|
+
* stripped result landing on another sibling's raw name would route
|
|
6669
|
+
* that sibling's legacy references to the wrong upstream tool. */
|
|
6670
|
+
return [name, stripped !== name && rawNames.has(stripped) ? name : stripped];
|
|
6671
|
+
}));
|
|
6672
|
+
/** Reverting a collider to its raw name can itself collide with ANOTHER
|
|
6673
|
+
* sibling's stripped result (`foo` / `acme_foo` / `acme_acme_foo`), so the
|
|
6674
|
+
* guard iterates to a fixpoint. Each pass converts at least one stripped
|
|
6675
|
+
* result back to its unique raw name, so it terminates within the catalog
|
|
6676
|
+
* size. */
|
|
6677
|
+
let changed = true;
|
|
6678
|
+
while (changed) {
|
|
6679
|
+
changed = false;
|
|
6680
|
+
const counts = /* @__PURE__ */ new Map();
|
|
6681
|
+
finalNames.forEach((result) => {
|
|
6682
|
+
counts.set(result, (counts.get(result) ?? 0) + 1);
|
|
6683
|
+
});
|
|
6684
|
+
finalNames.forEach((result, raw) => {
|
|
6685
|
+
if (result !== raw && (counts.get(result) ?? 0) > 1) {
|
|
6686
|
+
finalNames.set(raw, raw);
|
|
6687
|
+
changed = true;
|
|
6688
|
+
}
|
|
6689
|
+
});
|
|
6690
|
+
}
|
|
6691
|
+
return finalNames;
|
|
6692
|
+
}
|
|
5714
6693
|
function splitMCPToolKey(toolKey, knownServerNames) {
|
|
5715
6694
|
if (knownServerNames?.length) {
|
|
5716
6695
|
let matched;
|
|
@@ -5930,6 +6909,7 @@ let PrincipalModel = /* @__PURE__ */ function(PrincipalModel) {
|
|
|
5930
6909
|
*/
|
|
5931
6910
|
let ResourceType = /* @__PURE__ */ function(ResourceType) {
|
|
5932
6911
|
ResourceType["AGENT"] = "agent";
|
|
6912
|
+
ResourceType["CODE_ENVIRONMENT"] = "codeEnvironment";
|
|
5933
6913
|
ResourceType["PROMPTGROUP"] = "promptGroup";
|
|
5934
6914
|
ResourceType["MCPSERVER"] = "mcpServer";
|
|
5935
6915
|
ResourceType["REMOTE_AGENT"] = "remoteAgent";
|
|
@@ -5958,6 +6938,9 @@ let AccessRoleIds = /* @__PURE__ */ function(AccessRoleIds) {
|
|
|
5958
6938
|
AccessRoleIds["AGENT_VIEWER"] = "agent_viewer";
|
|
5959
6939
|
AccessRoleIds["AGENT_EDITOR"] = "agent_editor";
|
|
5960
6940
|
AccessRoleIds["AGENT_OWNER"] = "agent_owner";
|
|
6941
|
+
AccessRoleIds["CODE_ENVIRONMENT_VIEWER"] = "codeEnvironment_viewer";
|
|
6942
|
+
AccessRoleIds["CODE_ENVIRONMENT_EDITOR"] = "codeEnvironment_editor";
|
|
6943
|
+
AccessRoleIds["CODE_ENVIRONMENT_OWNER"] = "codeEnvironment_owner";
|
|
5961
6944
|
AccessRoleIds["PROMPTGROUP_VIEWER"] = "promptGroup_viewer";
|
|
5962
6945
|
AccessRoleIds["PROMPTGROUP_EDITOR"] = "promptGroup_editor";
|
|
5963
6946
|
AccessRoleIds["PROMPTGROUP_OWNER"] = "promptGroup_owner";
|
|
@@ -6074,17 +7057,20 @@ function permBitsToAccessLevel(permBits) {
|
|
|
6074
7057
|
function accessRoleToPermBits(accessRoleId) {
|
|
6075
7058
|
switch (accessRoleId) {
|
|
6076
7059
|
case "agent_viewer":
|
|
7060
|
+
case "codeEnvironment_viewer":
|
|
6077
7061
|
case "promptGroup_viewer":
|
|
6078
7062
|
case "mcpServer_viewer":
|
|
6079
7063
|
case "remoteAgent_viewer":
|
|
6080
7064
|
case "skill_viewer":
|
|
6081
7065
|
case "sharedLink_viewer": return 1;
|
|
6082
7066
|
case "agent_editor":
|
|
7067
|
+
case "codeEnvironment_editor":
|
|
6083
7068
|
case "promptGroup_editor":
|
|
6084
7069
|
case "mcpServer_editor":
|
|
6085
7070
|
case "remoteAgent_editor":
|
|
6086
7071
|
case "skill_editor": return 3;
|
|
6087
7072
|
case "agent_owner":
|
|
7073
|
+
case "codeEnvironment_owner":
|
|
6088
7074
|
case "promptGroup_owner":
|
|
6089
7075
|
case "mcpServer_owner":
|
|
6090
7076
|
case "remoteAgent_owner":
|
|
@@ -6111,6 +7097,7 @@ let QueryKeys = /* @__PURE__ */ function(QueryKeys) {
|
|
|
6111
7097
|
QueryKeys["sharedLinks"] = "sharedLinks";
|
|
6112
7098
|
QueryKeys["allConversations"] = "allConversations";
|
|
6113
7099
|
QueryKeys["archivedConversations"] = "archivedConversations";
|
|
7100
|
+
QueryKeys["pinnedConversations"] = "pinnedConversations";
|
|
6114
7101
|
QueryKeys["searchConversations"] = "searchConversations";
|
|
6115
7102
|
QueryKeys["conversation"] = "conversation";
|
|
6116
7103
|
QueryKeys["searchEnabled"] = "searchEnabled";
|
|
@@ -6127,6 +7114,8 @@ let QueryKeys = /* @__PURE__ */ function(QueryKeys) {
|
|
|
6127
7114
|
QueryKeys["tokenCount"] = "tokenCount";
|
|
6128
7115
|
QueryKeys["availablePlugins"] = "availablePlugins";
|
|
6129
7116
|
QueryKeys["startupConfig"] = "startupConfig";
|
|
7117
|
+
QueryKeys["insights"] = "insights";
|
|
7118
|
+
QueryKeys["insightsAccess"] = "insightsAccess";
|
|
6130
7119
|
QueryKeys["assistants"] = "assistants";
|
|
6131
7120
|
QueryKeys["assistant"] = "assistant";
|
|
6132
7121
|
QueryKeys["agents"] = "agents";
|
|
@@ -6184,10 +7173,19 @@ let QueryKeys = /* @__PURE__ */ function(QueryKeys) {
|
|
|
6184
7173
|
QueryKeys["toolFavorites"] = "toolFavorites";
|
|
6185
7174
|
QueryKeys["skillStates"] = "skillStates";
|
|
6186
7175
|
QueryKeys["favorites"] = "favorites";
|
|
7176
|
+
QueryKeys["schedules"] = "schedules";
|
|
7177
|
+
QueryKeys["schedule"] = "schedule";
|
|
7178
|
+
QueryKeys["parentSubagents"] = "parentSubagents";
|
|
7179
|
+
QueryKeys["subagentThread"] = "subagentThread";
|
|
7180
|
+
QueryKeys["codeEnvironments"] = "codeEnvironments";
|
|
7181
|
+
QueryKeys["agentQueuedTurns"] = "agentQueuedTurns";
|
|
6187
7182
|
return QueryKeys;
|
|
6188
7183
|
}({});
|
|
6189
7184
|
const DynamicQueryKeys = { agentFiles: (agentId) => ["agentFiles", agentId] };
|
|
6190
7185
|
let MutationKeys = /* @__PURE__ */ function(MutationKeys) {
|
|
7186
|
+
MutationKeys["subagentControl"] = "subagentControl";
|
|
7187
|
+
MutationKeys["enqueueAgentQueuedTurn"] = "enqueueAgentQueuedTurn";
|
|
7188
|
+
MutationKeys["cancelAgentQueuedTurn"] = "cancelAgentQueuedTurn";
|
|
6191
7189
|
MutationKeys["updateLangfuseConnection"] = "updateLangfuseConnection";
|
|
6192
7190
|
MutationKeys["testLangfuseConnection"] = "testLangfuseConnection";
|
|
6193
7191
|
MutationKeys["createAgentApiKey"] = "createAgentApiKey";
|
|
@@ -6211,6 +7209,7 @@ let MutationKeys = /* @__PURE__ */ function(MutationKeys) {
|
|
|
6211
7209
|
MutationKeys["deleteAgentAction"] = "deleteAgentAction";
|
|
6212
7210
|
MutationKeys["revertAgentVersion"] = "revertAgentVersion";
|
|
6213
7211
|
MutationKeys["deleteUser"] = "deleteUser";
|
|
7212
|
+
MutationKeys["updateUserPreferences"] = "updateUserPreferences";
|
|
6214
7213
|
MutationKeys["updateRole"] = "updateRole";
|
|
6215
7214
|
MutationKeys["enableTwoFactor"] = "enableTwoFactor";
|
|
6216
7215
|
MutationKeys["verifyTwoFactor"] = "verifyTwoFactor";
|
|
@@ -6224,6 +7223,14 @@ let MutationKeys = /* @__PURE__ */ function(MutationKeys) {
|
|
|
6224
7223
|
MutationKeys["deleteSkillNode"] = "deleteSkillNode";
|
|
6225
7224
|
MutationKeys["updateSkillNodeContent"] = "updateSkillNodeContent";
|
|
6226
7225
|
MutationKeys["convoPin"] = "convoPin";
|
|
7226
|
+
MutationKeys["archiveAllConversations"] = "archiveAllConversations";
|
|
7227
|
+
MutationKeys["createSchedule"] = "createSchedule";
|
|
7228
|
+
MutationKeys["updateSchedule"] = "updateSchedule";
|
|
7229
|
+
MutationKeys["deleteSchedule"] = "deleteSchedule";
|
|
7230
|
+
MutationKeys["runSchedule"] = "runSchedule";
|
|
7231
|
+
MutationKeys["pairCodeEnvironment"] = "pairCodeEnvironment";
|
|
7232
|
+
MutationKeys["updateCodeEnvironmentSettings"] = "updateCodeEnvironmentSettings";
|
|
7233
|
+
MutationKeys["deleteCodeEnvironment"] = "deleteCodeEnvironment";
|
|
6227
7234
|
return MutationKeys;
|
|
6228
7235
|
}({});
|
|
6229
7236
|
//#endregion
|
|
@@ -6625,15 +7632,18 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6625
7632
|
addPromptToGroup: () => addPromptToGroup,
|
|
6626
7633
|
addTagToConversation: () => addTagToConversation,
|
|
6627
7634
|
addToolFavorite: () => addToolFavorite,
|
|
7635
|
+
archiveAllConversations: () => archiveAllConversations,
|
|
6628
7636
|
archiveConversation: () => archiveConversation,
|
|
6629
7637
|
assignConversationToProject: () => assignConversationToProject,
|
|
6630
7638
|
bindActionOAuth: () => bindActionOAuth,
|
|
6631
7639
|
bindMCPOAuth: () => bindMCPOAuth,
|
|
6632
7640
|
branchMessage: () => branchMessage,
|
|
6633
7641
|
callTool: () => callTool,
|
|
7642
|
+
cancelAgentQueuedTurn: () => cancelAgentQueuedTurn,
|
|
6634
7643
|
cancelMCPOAuth: () => cancelMCPOAuth,
|
|
6635
7644
|
clearAllConversations: () => clearAllConversations,
|
|
6636
7645
|
confirmTwoFactor: () => confirmTwoFactor,
|
|
7646
|
+
controlSubagentTask: () => controlSubagentTask,
|
|
6637
7647
|
createAgent: () => createAgent,
|
|
6638
7648
|
createAgentApiKey: () => createAgentApiKey,
|
|
6639
7649
|
createAssistant: () => createAssistant,
|
|
@@ -6643,6 +7653,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6643
7653
|
createPreset: () => createPreset,
|
|
6644
7654
|
createProject: () => createProject,
|
|
6645
7655
|
createPrompt: () => createPrompt,
|
|
7656
|
+
createSchedule: () => createSchedule,
|
|
6646
7657
|
createSharedLink: () => createSharedLink,
|
|
6647
7658
|
createSkill: () => createSkill,
|
|
6648
7659
|
createSkillNode: () => createSkillNode,
|
|
@@ -6651,16 +7662,19 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6651
7662
|
deleteAgentAction: () => deleteAgentAction,
|
|
6652
7663
|
deleteAgentApiKey: () => deleteAgentApiKey,
|
|
6653
7664
|
deleteAssistant: () => deleteAssistant,
|
|
7665
|
+
deleteCodeEnvironment: () => deleteCodeEnvironment,
|
|
6654
7666
|
deleteConversation: () => deleteConversation,
|
|
6655
7667
|
deleteConversationTag: () => deleteConversationTag,
|
|
6656
7668
|
deleteFiles: () => deleteFiles,
|
|
6657
7669
|
deleteGitHubSkillSyncCredential: () => deleteGitHubSkillSyncCredential,
|
|
6658
7670
|
deleteMCPServer: () => deleteMCPServer,
|
|
6659
7671
|
deleteMemory: () => deleteMemory,
|
|
7672
|
+
deleteMemoryById: () => deleteMemoryById,
|
|
6660
7673
|
deletePreset: () => deletePreset,
|
|
6661
7674
|
deleteProject: () => deleteProject,
|
|
6662
7675
|
deletePrompt: () => deletePrompt,
|
|
6663
7676
|
deletePromptGroup: () => deletePromptGroup,
|
|
7677
|
+
deleteSchedule: () => deleteSchedule,
|
|
6664
7678
|
deleteSharedLink: () => deleteSharedLink,
|
|
6665
7679
|
deleteSkill: () => deleteSkill,
|
|
6666
7680
|
deleteSkillFile: () => deleteSkillFile,
|
|
@@ -6671,6 +7685,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6671
7685
|
duplicateConversation: () => duplicateConversation,
|
|
6672
7686
|
editArtifact: () => editArtifact,
|
|
6673
7687
|
enableTwoFactor: () => enableTwoFactor,
|
|
7688
|
+
enqueueAgentQueuedTurn: () => enqueueAgentQueuedTurn,
|
|
6674
7689
|
forkConversation: () => forkConversation,
|
|
6675
7690
|
forkSharedConversation: () => forkSharedConversation,
|
|
6676
7691
|
genTitle: () => genTitle,
|
|
@@ -6692,6 +7707,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6692
7707
|
getAvailableTools: () => getAvailableTools,
|
|
6693
7708
|
getBanner: () => getBanner,
|
|
6694
7709
|
getCategories: () => getCategories,
|
|
7710
|
+
getCodeEnvironments: () => getCodeEnvironments,
|
|
6695
7711
|
getCodeOutputDownload: () => getCodeOutputDownload,
|
|
6696
7712
|
getConversationById: () => getConversationById,
|
|
6697
7713
|
getConversationTags: () => getConversationTags,
|
|
@@ -6708,6 +7724,8 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6708
7724
|
getFiles: () => getFiles,
|
|
6709
7725
|
getGitHubSkillSyncStatus: () => getGitHubSkillSyncStatus,
|
|
6710
7726
|
getGraphApiToken: () => getGraphApiToken,
|
|
7727
|
+
getInsights: () => getInsights,
|
|
7728
|
+
getInsightsAccess: () => getInsightsAccess,
|
|
6711
7729
|
getLangfuseConnection: () => getLangfuseConnection,
|
|
6712
7730
|
getLangfuseSessionLink: () => getLangfuseSessionLink,
|
|
6713
7731
|
getLoginGoogle: () => getLoginGoogle,
|
|
@@ -6720,8 +7738,10 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6720
7738
|
getMCPTools: () => getMCPTools,
|
|
6721
7739
|
getMarketplaceAgents: () => getMarketplaceAgents,
|
|
6722
7740
|
getMemories: () => getMemories,
|
|
7741
|
+
getMessageById: () => getMessageById,
|
|
6723
7742
|
getMessagesByConvoId: () => getMessagesByConvoId,
|
|
6724
7743
|
getModels: () => getModels,
|
|
7744
|
+
getParentSubagents: () => getParentSubagents,
|
|
6725
7745
|
getPresets: () => getPresets,
|
|
6726
7746
|
getProjectById: () => getProjectById,
|
|
6727
7747
|
getPrompt: () => getPrompt,
|
|
@@ -6731,6 +7751,8 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6731
7751
|
getRandomPrompts: () => getRandomPrompts,
|
|
6732
7752
|
getResourcePermissions: () => getResourcePermissions,
|
|
6733
7753
|
getRole: () => getRole,
|
|
7754
|
+
getSchedule: () => getSchedule,
|
|
7755
|
+
getSchedules: () => getSchedules,
|
|
6734
7756
|
getSearchEnabled: () => getSearchEnabled,
|
|
6735
7757
|
getSharedFileDownload: () => getSharedFileDownload,
|
|
6736
7758
|
getSharedFilePreview: () => getSharedFilePreview,
|
|
@@ -6743,6 +7765,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6743
7765
|
getSkillStates: () => getSkillStates,
|
|
6744
7766
|
getSkillTree: () => getSkillTree,
|
|
6745
7767
|
getStartupConfig: () => getStartupConfig,
|
|
7768
|
+
getSubagentThread: () => getSubagentThread,
|
|
6746
7769
|
getTokenConfig: () => getTokenConfig,
|
|
6747
7770
|
getToolCalls: () => getToolCalls,
|
|
6748
7771
|
getToolFavorites: () => getToolFavorites,
|
|
@@ -6754,6 +7777,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6754
7777
|
healthCheck: () => healthCheck,
|
|
6755
7778
|
importConversationsFile: () => importConversationsFile,
|
|
6756
7779
|
importSkill: () => importSkill,
|
|
7780
|
+
listAgentQueuedTurns: () => listAgentQueuedTurns,
|
|
6757
7781
|
listAgents: () => listAgents,
|
|
6758
7782
|
listAssistants: () => listAssistants,
|
|
6759
7783
|
listConversations: () => listConversations,
|
|
@@ -6767,6 +7791,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6767
7791
|
logout: () => logout,
|
|
6768
7792
|
makePromptProduction: () => makePromptProduction,
|
|
6769
7793
|
markFilesUsage: () => markFilesUsage,
|
|
7794
|
+
pairCodeEnvironment: () => pairCodeEnvironment,
|
|
6770
7795
|
pinConversation: () => pinConversation,
|
|
6771
7796
|
rebuildConversationTags: () => rebuildConversationTags,
|
|
6772
7797
|
recordPromptGroupUsage: () => recordPromptGroupUsage,
|
|
@@ -6781,6 +7806,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6781
7806
|
revokeAllUserKeys: () => revokeAllUserKeys,
|
|
6782
7807
|
revokeUserKey: () => revokeUserKey,
|
|
6783
7808
|
runGitHubSkillSync: () => runGitHubSkillSync,
|
|
7809
|
+
runScheduleNow: () => runScheduleNow,
|
|
6784
7810
|
searchPrincipals: () => searchPrincipals,
|
|
6785
7811
|
setGitHubSkillSyncCredential: () => setGitHubSkillSyncCredential,
|
|
6786
7812
|
speechToText: () => speechToText,
|
|
@@ -6791,6 +7817,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6791
7817
|
updateAgentAction: () => updateAgentAction,
|
|
6792
7818
|
updateAgentPermissions: () => updateAgentPermissions,
|
|
6793
7819
|
updateAssistant: () => updateAssistant,
|
|
7820
|
+
updateCodeEnvironmentSettings: () => updateCodeEnvironmentSettings,
|
|
6794
7821
|
updateConversation: () => updateConversation,
|
|
6795
7822
|
updateConversationTag: () => updateConversationTag,
|
|
6796
7823
|
updateFavorites: () => updateFavorites,
|
|
@@ -6800,6 +7827,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6800
7827
|
updateMCPServersPermissions: () => updateMCPServersPermissions,
|
|
6801
7828
|
updateMarketplacePermissions: () => updateMarketplacePermissions,
|
|
6802
7829
|
updateMemory: () => updateMemory,
|
|
7830
|
+
updateMemoryById: () => updateMemoryById,
|
|
6803
7831
|
updateMemoryPermissions: () => updateMemoryPermissions,
|
|
6804
7832
|
updateMemoryPreferences: () => updateMemoryPreferences,
|
|
6805
7833
|
updateMessage: () => updateMessage,
|
|
@@ -6812,6 +7840,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6812
7840
|
updatePromptPermissions: () => updatePromptPermissions,
|
|
6813
7841
|
updateRemoteAgentsPermissions: () => updateRemoteAgentsPermissions,
|
|
6814
7842
|
updateResourcePermissions: () => updateResourcePermissions,
|
|
7843
|
+
updateSchedule: () => updateSchedule,
|
|
6815
7844
|
updateSharedLink: () => updateSharedLink,
|
|
6816
7845
|
updateSkill: () => updateSkill,
|
|
6817
7846
|
updateSkillNode: () => updateSkillNode,
|
|
@@ -6821,6 +7850,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6821
7850
|
updateTokenCount: () => updateTokenCount,
|
|
6822
7851
|
updateUserKey: () => updateUserKey,
|
|
6823
7852
|
updateUserPlugins: () => updateUserPlugins,
|
|
7853
|
+
updateUserPreferences: () => updateUserPreferences,
|
|
6824
7854
|
uploadAgentAvatar: () => uploadAgentAvatar,
|
|
6825
7855
|
uploadAssistantAvatar: () => uploadAssistantAvatar,
|
|
6826
7856
|
uploadAvatar: () => uploadAvatar,
|
|
@@ -6832,6 +7862,15 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
|
|
|
6832
7862
|
verifyTwoFactor: () => verifyTwoFactor,
|
|
6833
7863
|
verifyTwoFactorTemp: () => verifyTwoFactorTemp
|
|
6834
7864
|
});
|
|
7865
|
+
function getInsights(params = {}) {
|
|
7866
|
+
const query = new URLSearchParams();
|
|
7867
|
+
for (const [key, value] of Object.entries(params)) if (value !== void 0 && value !== null && value !== "") query.set(key, String(value));
|
|
7868
|
+
const suffix = query.toString() ? `?${query.toString()}` : "";
|
|
7869
|
+
return request_default.get(`${insights()}${suffix}`);
|
|
7870
|
+
}
|
|
7871
|
+
function getInsightsAccess() {
|
|
7872
|
+
return request_default.get(insightsAccess());
|
|
7873
|
+
}
|
|
6835
7874
|
function getLangfuseConnection() {
|
|
6836
7875
|
return request_default.get(adminLangfuseConnection());
|
|
6837
7876
|
}
|
|
@@ -6853,6 +7892,18 @@ function revokeAllUserKeys() {
|
|
|
6853
7892
|
function deleteUser(payload) {
|
|
6854
7893
|
return request_default.deleteWithOptions(deleteUser$1(), { data: payload });
|
|
6855
7894
|
}
|
|
7895
|
+
function getCodeEnvironments() {
|
|
7896
|
+
return request_default.get(codeEnvironments());
|
|
7897
|
+
}
|
|
7898
|
+
function pairCodeEnvironment(payload) {
|
|
7899
|
+
return request_default.post(codeEnvironmentPairings(), payload);
|
|
7900
|
+
}
|
|
7901
|
+
function deleteCodeEnvironment(id) {
|
|
7902
|
+
return request_default.delete(codeEnvironmentById(id));
|
|
7903
|
+
}
|
|
7904
|
+
function updateCodeEnvironmentSettings({ id, settings }) {
|
|
7905
|
+
return request_default.patch(codeEnvironmentSettings(id), { settings });
|
|
7906
|
+
}
|
|
6856
7907
|
function getFavorites() {
|
|
6857
7908
|
return request_default.get(`${apiBaseUrl()}/api/user/settings/favorites`);
|
|
6858
7909
|
}
|
|
@@ -6936,6 +7987,9 @@ function getSearchEnabled() {
|
|
|
6936
7987
|
function getUser() {
|
|
6937
7988
|
return request_default.get(user());
|
|
6938
7989
|
}
|
|
7990
|
+
function updateUserPreferences(preferences) {
|
|
7991
|
+
return request_default.patch(userPreferences(), preferences);
|
|
7992
|
+
}
|
|
6939
7993
|
function getUserBalance() {
|
|
6940
7994
|
return request_default.get(balance());
|
|
6941
7995
|
}
|
|
@@ -7314,6 +8368,9 @@ function updateConversation(payload) {
|
|
|
7314
8368
|
function archiveConversation(payload) {
|
|
7315
8369
|
return request_default.post(archiveConversation$1(), { arg: payload });
|
|
7316
8370
|
}
|
|
8371
|
+
function archiveAllConversations() {
|
|
8372
|
+
return request_default.post(archiveAllConversations$1(), {});
|
|
8373
|
+
}
|
|
7317
8374
|
function listProjects(params) {
|
|
7318
8375
|
return request_default.get(projects(params ?? {}));
|
|
7319
8376
|
}
|
|
@@ -7372,6 +8429,21 @@ function getMessagesByConvoId(conversationId) {
|
|
|
7372
8429
|
if (conversationId === "new" || conversationId === "PENDING") return Promise.resolve([]);
|
|
7373
8430
|
return request_default.get(messages({ conversationId }));
|
|
7374
8431
|
}
|
|
8432
|
+
function getMessageById(conversationId, messageId) {
|
|
8433
|
+
return request_default.get(messages({
|
|
8434
|
+
conversationId,
|
|
8435
|
+
messageId
|
|
8436
|
+
}));
|
|
8437
|
+
}
|
|
8438
|
+
function getParentSubagents(parentConversationId) {
|
|
8439
|
+
return request_default.get(parentSubagents(parentConversationId));
|
|
8440
|
+
}
|
|
8441
|
+
function getSubagentThread(parentConversationId, threadId, taskId, cursor) {
|
|
8442
|
+
return request_default.get(subagentThread(parentConversationId, threadId, taskId, cursor));
|
|
8443
|
+
}
|
|
8444
|
+
function controlSubagentTask(parentConversationId, threadId, body) {
|
|
8445
|
+
return request_default.post(subagentControl(parentConversationId, threadId), body);
|
|
8446
|
+
}
|
|
7375
8447
|
function getPrompt(id) {
|
|
7376
8448
|
return request_default.get(getPrompt$1(id));
|
|
7377
8449
|
}
|
|
@@ -7420,6 +8492,33 @@ function getRandomPrompts(variables) {
|
|
|
7420
8492
|
function listSkills(params) {
|
|
7421
8493
|
return request_default.get(listSkillsWithFilters(params ?? {}));
|
|
7422
8494
|
}
|
|
8495
|
+
function getSchedules() {
|
|
8496
|
+
return request_default.get(schedules());
|
|
8497
|
+
}
|
|
8498
|
+
function enqueueAgentQueuedTurn(payload) {
|
|
8499
|
+
return request_default.post(agentQueuedTurns(), payload);
|
|
8500
|
+
}
|
|
8501
|
+
function listAgentQueuedTurns(conversationId, clientRequestIds) {
|
|
8502
|
+
return request_default.get(agentQueuedTurnsByConversation(conversationId, clientRequestIds));
|
|
8503
|
+
}
|
|
8504
|
+
function cancelAgentQueuedTurn(queuedTurnId) {
|
|
8505
|
+
return request_default.delete(agentQueuedTurn(queuedTurnId));
|
|
8506
|
+
}
|
|
8507
|
+
function getSchedule(id) {
|
|
8508
|
+
return request_default.get(schedule(id));
|
|
8509
|
+
}
|
|
8510
|
+
function createSchedule(payload) {
|
|
8511
|
+
return request_default.post(schedules(), payload);
|
|
8512
|
+
}
|
|
8513
|
+
function updateSchedule(id, payload) {
|
|
8514
|
+
return request_default.patch(schedule(id), payload);
|
|
8515
|
+
}
|
|
8516
|
+
function deleteSchedule(id) {
|
|
8517
|
+
return request_default.delete(schedule(id));
|
|
8518
|
+
}
|
|
8519
|
+
function runScheduleNow(id) {
|
|
8520
|
+
return request_default.post(runSchedule(id), {});
|
|
8521
|
+
}
|
|
7423
8522
|
function getSkill(id) {
|
|
7424
8523
|
return request_default.get(getSkill$1(id));
|
|
7425
8524
|
}
|
|
@@ -7610,12 +8709,21 @@ const getMemories = () => {
|
|
|
7610
8709
|
const deleteMemory = (key, agentId) => {
|
|
7611
8710
|
return request_default.delete(memory(key, agentId));
|
|
7612
8711
|
};
|
|
8712
|
+
const deleteMemoryById = (id, agentId) => {
|
|
8713
|
+
return request_default.delete(memoryById(id, agentId));
|
|
8714
|
+
};
|
|
7613
8715
|
const updateMemory = (key, value, originalKey, agentId) => {
|
|
7614
8716
|
return request_default.patch(memory(originalKey || key, agentId), {
|
|
7615
8717
|
key,
|
|
7616
8718
|
value
|
|
7617
8719
|
});
|
|
7618
8720
|
};
|
|
8721
|
+
const updateMemoryById = (id, value, key, agentId) => {
|
|
8722
|
+
return request_default.patch(memoryById(id, agentId), {
|
|
8723
|
+
value,
|
|
8724
|
+
...key ? { key } : {}
|
|
8725
|
+
});
|
|
8726
|
+
};
|
|
7619
8727
|
const updateMemoryPreferences = (preferences) => {
|
|
7620
8728
|
return request_default.patch(memoryPreferences(), preferences);
|
|
7621
8729
|
};
|
|
@@ -7650,6 +8758,18 @@ const getActiveJobs = () => {
|
|
|
7650
8758
|
return request_default.get(activeJobs());
|
|
7651
8759
|
};
|
|
7652
8760
|
//#endregion
|
|
8761
|
+
Object.defineProperty(exports, "ACTION_METADATA_FILTER_FIELDS", {
|
|
8762
|
+
enumerable: true,
|
|
8763
|
+
get: function() {
|
|
8764
|
+
return ACTION_METADATA_FILTER_FIELDS;
|
|
8765
|
+
}
|
|
8766
|
+
});
|
|
8767
|
+
Object.defineProperty(exports, "AGENT_INSTRUCTION_FILTER_FIELDS", {
|
|
8768
|
+
enumerable: true,
|
|
8769
|
+
get: function() {
|
|
8770
|
+
return AGENT_INSTRUCTION_FILTER_FIELDS;
|
|
8771
|
+
}
|
|
8772
|
+
});
|
|
7653
8773
|
Object.defineProperty(exports, "AUTH_USER_DOC_BY_ID_PREFIX", {
|
|
7654
8774
|
enumerable: true,
|
|
7655
8775
|
get: function() {
|
|
@@ -7734,6 +8854,18 @@ Object.defineProperty(exports, "BedrockReasoningConfig", {
|
|
|
7734
8854
|
return BedrockReasoningConfig;
|
|
7735
8855
|
}
|
|
7736
8856
|
});
|
|
8857
|
+
Object.defineProperty(exports, "CONVERSATION_STARTER_FILTER_FIELDS", {
|
|
8858
|
+
enumerable: true,
|
|
8859
|
+
get: function() {
|
|
8860
|
+
return CONVERSATION_STARTER_FILTER_FIELDS;
|
|
8861
|
+
}
|
|
8862
|
+
});
|
|
8863
|
+
Object.defineProperty(exports, "CONVERSATION_TITLE_FILTER_FIELDS", {
|
|
8864
|
+
enumerable: true,
|
|
8865
|
+
get: function() {
|
|
8866
|
+
return CONVERSATION_TITLE_FILTER_FIELDS;
|
|
8867
|
+
}
|
|
8868
|
+
});
|
|
7737
8869
|
Object.defineProperty(exports, "CacheKeys", {
|
|
7738
8870
|
enumerable: true,
|
|
7739
8871
|
get: function() {
|
|
@@ -7806,6 +8938,12 @@ Object.defineProperty(exports, "ErrorTypes", {
|
|
|
7806
8938
|
return ErrorTypes;
|
|
7807
8939
|
}
|
|
7808
8940
|
});
|
|
8941
|
+
Object.defineProperty(exports, "FEEDBACK_FILTER_FIELDS", {
|
|
8942
|
+
enumerable: true,
|
|
8943
|
+
get: function() {
|
|
8944
|
+
return FEEDBACK_FILTER_FIELDS;
|
|
8945
|
+
}
|
|
8946
|
+
});
|
|
7809
8947
|
Object.defineProperty(exports, "FEEDBACK_RATINGS", {
|
|
7810
8948
|
enumerable: true,
|
|
7811
8949
|
get: function() {
|
|
@@ -7824,6 +8962,18 @@ Object.defineProperty(exports, "FEEDBACK_TAGS", {
|
|
|
7824
8962
|
return FEEDBACK_TAGS;
|
|
7825
8963
|
}
|
|
7826
8964
|
});
|
|
8965
|
+
Object.defineProperty(exports, "FILE_FILTER_FIELDS", {
|
|
8966
|
+
enumerable: true,
|
|
8967
|
+
get: function() {
|
|
8968
|
+
return FILE_FILTER_FIELDS;
|
|
8969
|
+
}
|
|
8970
|
+
});
|
|
8971
|
+
Object.defineProperty(exports, "FILTER_PII_STARTER_PATTERNS", {
|
|
8972
|
+
enumerable: true,
|
|
8973
|
+
get: function() {
|
|
8974
|
+
return FILTER_PII_STARTER_PATTERNS;
|
|
8975
|
+
}
|
|
8976
|
+
});
|
|
7827
8977
|
Object.defineProperty(exports, "FetchTokenConfig", {
|
|
7828
8978
|
enumerable: true,
|
|
7829
8979
|
get: function() {
|
|
@@ -7854,6 +9004,12 @@ Object.defineProperty(exports, "ForkOptions", {
|
|
|
7854
9004
|
return ForkOptions;
|
|
7855
9005
|
}
|
|
7856
9006
|
});
|
|
9007
|
+
Object.defineProperty(exports, "HITL_MESSAGE_FILTER_FIELDS", {
|
|
9008
|
+
enumerable: true,
|
|
9009
|
+
get: function() {
|
|
9010
|
+
return HITL_MESSAGE_FILTER_FIELDS;
|
|
9011
|
+
}
|
|
9012
|
+
});
|
|
7857
9013
|
Object.defineProperty(exports, "ImageDetail", {
|
|
7858
9014
|
enumerable: true,
|
|
7859
9015
|
get: function() {
|
|
@@ -7890,12 +9046,78 @@ Object.defineProperty(exports, "LocalStorageKeys", {
|
|
|
7890
9046
|
return LocalStorageKeys;
|
|
7891
9047
|
}
|
|
7892
9048
|
});
|
|
9049
|
+
Object.defineProperty(exports, "MAX_CHAT_PROJECT_DESCRIPTION_LENGTH", {
|
|
9050
|
+
enumerable: true,
|
|
9051
|
+
get: function() {
|
|
9052
|
+
return MAX_CHAT_PROJECT_DESCRIPTION_LENGTH;
|
|
9053
|
+
}
|
|
9054
|
+
});
|
|
9055
|
+
Object.defineProperty(exports, "MAX_CHAT_PROJECT_NAME_LENGTH", {
|
|
9056
|
+
enumerable: true,
|
|
9057
|
+
get: function() {
|
|
9058
|
+
return MAX_CHAT_PROJECT_NAME_LENGTH;
|
|
9059
|
+
}
|
|
9060
|
+
});
|
|
9061
|
+
Object.defineProperty(exports, "MAX_GRAPH_SUBAGENT_MEMBERS", {
|
|
9062
|
+
enumerable: true,
|
|
9063
|
+
get: function() {
|
|
9064
|
+
return MAX_GRAPH_SUBAGENT_MEMBERS;
|
|
9065
|
+
}
|
|
9066
|
+
});
|
|
9067
|
+
Object.defineProperty(exports, "MAX_PII_CUSTOM_PATTERNS_TOTAL", {
|
|
9068
|
+
enumerable: true,
|
|
9069
|
+
get: function() {
|
|
9070
|
+
return MAX_PII_CUSTOM_PATTERNS_TOTAL;
|
|
9071
|
+
}
|
|
9072
|
+
});
|
|
9073
|
+
Object.defineProperty(exports, "MAX_PII_CUSTOM_REGEX_CHARACTERS", {
|
|
9074
|
+
enumerable: true,
|
|
9075
|
+
get: function() {
|
|
9076
|
+
return MAX_PII_CUSTOM_REGEX_CHARACTERS;
|
|
9077
|
+
}
|
|
9078
|
+
});
|
|
9079
|
+
Object.defineProperty(exports, "MAX_PII_CUSTOM_REGEX_INSTRUCTIONS", {
|
|
9080
|
+
enumerable: true,
|
|
9081
|
+
get: function() {
|
|
9082
|
+
return MAX_PII_CUSTOM_REGEX_INSTRUCTIONS;
|
|
9083
|
+
}
|
|
9084
|
+
});
|
|
9085
|
+
Object.defineProperty(exports, "MAX_PII_PATTERNS_PER_SOURCE", {
|
|
9086
|
+
enumerable: true,
|
|
9087
|
+
get: function() {
|
|
9088
|
+
return MAX_PII_PATTERNS_PER_SOURCE;
|
|
9089
|
+
}
|
|
9090
|
+
});
|
|
9091
|
+
Object.defineProperty(exports, "MAX_PII_PATTERN_ID_LENGTH", {
|
|
9092
|
+
enumerable: true,
|
|
9093
|
+
get: function() {
|
|
9094
|
+
return MAX_PII_PATTERN_ID_LENGTH;
|
|
9095
|
+
}
|
|
9096
|
+
});
|
|
9097
|
+
Object.defineProperty(exports, "MAX_PII_PATTERN_LABEL_LENGTH", {
|
|
9098
|
+
enumerable: true,
|
|
9099
|
+
get: function() {
|
|
9100
|
+
return MAX_PII_PATTERN_LABEL_LENGTH;
|
|
9101
|
+
}
|
|
9102
|
+
});
|
|
9103
|
+
Object.defineProperty(exports, "MAX_PII_PATTERN_LENGTH", {
|
|
9104
|
+
enumerable: true,
|
|
9105
|
+
get: function() {
|
|
9106
|
+
return MAX_PII_PATTERN_LENGTH;
|
|
9107
|
+
}
|
|
9108
|
+
});
|
|
7893
9109
|
Object.defineProperty(exports, "MAX_SUBAGENTS", {
|
|
7894
9110
|
enumerable: true,
|
|
7895
9111
|
get: function() {
|
|
7896
9112
|
return MAX_SUBAGENTS;
|
|
7897
9113
|
}
|
|
7898
9114
|
});
|
|
9115
|
+
Object.defineProperty(exports, "MAX_SUBAGENTS_CEILING", {
|
|
9116
|
+
enumerable: true,
|
|
9117
|
+
get: function() {
|
|
9118
|
+
return MAX_SUBAGENTS_CEILING;
|
|
9119
|
+
}
|
|
9120
|
+
});
|
|
7899
9121
|
Object.defineProperty(exports, "MAX_SUBAGENT_DEPTH", {
|
|
7900
9122
|
enumerable: true,
|
|
7901
9123
|
get: function() {
|
|
@@ -7932,12 +9154,42 @@ Object.defineProperty(exports, "MCPServersSchema", {
|
|
|
7932
9154
|
return MCPServersSchema;
|
|
7933
9155
|
}
|
|
7934
9156
|
});
|
|
9157
|
+
Object.defineProperty(exports, "MCP_SERVER_TITLE_ERROR", {
|
|
9158
|
+
enumerable: true,
|
|
9159
|
+
get: function() {
|
|
9160
|
+
return MCP_SERVER_TITLE_ERROR;
|
|
9161
|
+
}
|
|
9162
|
+
});
|
|
9163
|
+
Object.defineProperty(exports, "MCP_SERVER_TITLE_PATTERN", {
|
|
9164
|
+
enumerable: true,
|
|
9165
|
+
get: function() {
|
|
9166
|
+
return MCP_SERVER_TITLE_PATTERN;
|
|
9167
|
+
}
|
|
9168
|
+
});
|
|
7935
9169
|
Object.defineProperty(exports, "MCP_USER_INPUT_FIELDS", {
|
|
7936
9170
|
enumerable: true,
|
|
7937
9171
|
get: function() {
|
|
7938
9172
|
return MCP_USER_INPUT_FIELDS;
|
|
7939
9173
|
}
|
|
7940
9174
|
});
|
|
9175
|
+
Object.defineProperty(exports, "MEMORY_FILTER_FIELDS", {
|
|
9176
|
+
enumerable: true,
|
|
9177
|
+
get: function() {
|
|
9178
|
+
return MEMORY_FILTER_FIELDS;
|
|
9179
|
+
}
|
|
9180
|
+
});
|
|
9181
|
+
Object.defineProperty(exports, "MESSAGE_FILTER_FIELDS", {
|
|
9182
|
+
enumerable: true,
|
|
9183
|
+
get: function() {
|
|
9184
|
+
return MESSAGE_FILTER_FIELDS;
|
|
9185
|
+
}
|
|
9186
|
+
});
|
|
9187
|
+
Object.defineProperty(exports, "MODEL_PARAMETER_FILTER_FIELDS", {
|
|
9188
|
+
enumerable: true,
|
|
9189
|
+
get: function() {
|
|
9190
|
+
return MODEL_PARAMETER_FILTER_FIELDS;
|
|
9191
|
+
}
|
|
9192
|
+
});
|
|
7941
9193
|
Object.defineProperty(exports, "MYTHOS_CLASS_FAMILIES", {
|
|
7942
9194
|
enumerable: true,
|
|
7943
9195
|
get: function() {
|
|
@@ -7974,6 +9226,12 @@ Object.defineProperty(exports, "OptionTypes", {
|
|
|
7974
9226
|
return OptionTypes;
|
|
7975
9227
|
}
|
|
7976
9228
|
});
|
|
9229
|
+
Object.defineProperty(exports, "PROMPT_FILTER_FIELDS", {
|
|
9230
|
+
enumerable: true,
|
|
9231
|
+
get: function() {
|
|
9232
|
+
return PROMPT_FILTER_FIELDS;
|
|
9233
|
+
}
|
|
9234
|
+
});
|
|
7977
9235
|
Object.defineProperty(exports, "PermissionBits", {
|
|
7978
9236
|
enumerable: true,
|
|
7979
9237
|
get: function() {
|
|
@@ -8076,6 +9334,12 @@ Object.defineProperty(exports, "RunStatus", {
|
|
|
8076
9334
|
return RunStatus;
|
|
8077
9335
|
}
|
|
8078
9336
|
});
|
|
9337
|
+
Object.defineProperty(exports, "SKILL_FILTER_FIELDS", {
|
|
9338
|
+
enumerable: true,
|
|
9339
|
+
get: function() {
|
|
9340
|
+
return SKILL_FILTER_FIELDS;
|
|
9341
|
+
}
|
|
9342
|
+
});
|
|
8079
9343
|
Object.defineProperty(exports, "SKILL_SYNC_DEFAULT_DISCOVERY_DEPTH", {
|
|
8080
9344
|
enumerable: true,
|
|
8081
9345
|
get: function() {
|
|
@@ -8106,6 +9370,18 @@ Object.defineProperty(exports, "SSEOptionsSchema", {
|
|
|
8106
9370
|
return SSEOptionsSchema;
|
|
8107
9371
|
}
|
|
8108
9372
|
});
|
|
9373
|
+
Object.defineProperty(exports, "STATEFUL_CODE_ENVIRONMENTS", {
|
|
9374
|
+
enumerable: true,
|
|
9375
|
+
get: function() {
|
|
9376
|
+
return STATEFUL_CODE_ENVIRONMENTS;
|
|
9377
|
+
}
|
|
9378
|
+
});
|
|
9379
|
+
Object.defineProperty(exports, "STORED_MESSAGE_FILTER_FIELDS", {
|
|
9380
|
+
enumerable: true,
|
|
9381
|
+
get: function() {
|
|
9382
|
+
return STORED_MESSAGE_FILTER_FIELDS;
|
|
9383
|
+
}
|
|
9384
|
+
});
|
|
8109
9385
|
Object.defineProperty(exports, "STTProviders", {
|
|
8110
9386
|
enumerable: true,
|
|
8111
9387
|
get: function() {
|
|
@@ -8154,6 +9430,12 @@ Object.defineProperty(exports, "SettingsViews", {
|
|
|
8154
9430
|
return SettingsViews;
|
|
8155
9431
|
}
|
|
8156
9432
|
});
|
|
9433
|
+
Object.defineProperty(exports, "SkillsScope", {
|
|
9434
|
+
enumerable: true,
|
|
9435
|
+
get: function() {
|
|
9436
|
+
return SkillsScope;
|
|
9437
|
+
}
|
|
9438
|
+
});
|
|
8157
9439
|
Object.defineProperty(exports, "StdioOptionsSchema", {
|
|
8158
9440
|
enumerable: true,
|
|
8159
9441
|
get: function() {
|
|
@@ -8178,6 +9460,12 @@ Object.defineProperty(exports, "SystemCategories", {
|
|
|
8178
9460
|
return SystemCategories;
|
|
8179
9461
|
}
|
|
8180
9462
|
});
|
|
9463
|
+
Object.defineProperty(exports, "TOOL_ARGUMENT_FILTER_FIELDS", {
|
|
9464
|
+
enumerable: true,
|
|
9465
|
+
get: function() {
|
|
9466
|
+
return TOOL_ARGUMENT_FILTER_FIELDS;
|
|
9467
|
+
}
|
|
9468
|
+
});
|
|
8181
9469
|
Object.defineProperty(exports, "TTSProviders", {
|
|
8182
9470
|
enumerable: true,
|
|
8183
9471
|
get: function() {
|
|
@@ -8268,6 +9556,18 @@ Object.defineProperty(exports, "actionDomainSeparator", {
|
|
|
8268
9556
|
return actionDomainSeparator;
|
|
8269
9557
|
}
|
|
8270
9558
|
});
|
|
9559
|
+
Object.defineProperty(exports, "actionMetadataFilterFieldSchema", {
|
|
9560
|
+
enumerable: true,
|
|
9561
|
+
get: function() {
|
|
9562
|
+
return actionMetadataFilterFieldSchema;
|
|
9563
|
+
}
|
|
9564
|
+
});
|
|
9565
|
+
Object.defineProperty(exports, "agentInstructionFilterFieldSchema", {
|
|
9566
|
+
enumerable: true,
|
|
9567
|
+
get: function() {
|
|
9568
|
+
return agentInstructionFilterFieldSchema;
|
|
9569
|
+
}
|
|
9570
|
+
});
|
|
8271
9571
|
Object.defineProperty(exports, "agentsBaseSchema", {
|
|
8272
9572
|
enumerable: true,
|
|
8273
9573
|
get: function() {
|
|
@@ -8478,6 +9778,12 @@ Object.defineProperty(exports, "checkpointerTypeSchema", {
|
|
|
8478
9778
|
return checkpointerTypeSchema;
|
|
8479
9779
|
}
|
|
8480
9780
|
});
|
|
9781
|
+
Object.defineProperty(exports, "clampSettingRange", {
|
|
9782
|
+
enumerable: true,
|
|
9783
|
+
get: function() {
|
|
9784
|
+
return clampSettingRange;
|
|
9785
|
+
}
|
|
9786
|
+
});
|
|
8481
9787
|
Object.defineProperty(exports, "clearAllConversations", {
|
|
8482
9788
|
enumerable: true,
|
|
8483
9789
|
get: function() {
|
|
@@ -8490,6 +9796,24 @@ Object.defineProperty(exports, "cloudfrontConfigSchema", {
|
|
|
8490
9796
|
return cloudfrontConfigSchema;
|
|
8491
9797
|
}
|
|
8492
9798
|
});
|
|
9799
|
+
Object.defineProperty(exports, "codeEnvironmentPermissionDecisionSchema", {
|
|
9800
|
+
enumerable: true,
|
|
9801
|
+
get: function() {
|
|
9802
|
+
return codeEnvironmentPermissionDecisionSchema;
|
|
9803
|
+
}
|
|
9804
|
+
});
|
|
9805
|
+
Object.defineProperty(exports, "codeEnvironmentUserConfigSchema", {
|
|
9806
|
+
enumerable: true,
|
|
9807
|
+
get: function() {
|
|
9808
|
+
return codeEnvironmentUserConfigSchema;
|
|
9809
|
+
}
|
|
9810
|
+
});
|
|
9811
|
+
Object.defineProperty(exports, "codeEnvironmentUserSettingsSchema", {
|
|
9812
|
+
enumerable: true,
|
|
9813
|
+
get: function() {
|
|
9814
|
+
return codeEnvironmentUserSettingsSchema;
|
|
9815
|
+
}
|
|
9816
|
+
});
|
|
8493
9817
|
Object.defineProperty(exports, "codeInterpreterMimeTypes", {
|
|
8494
9818
|
enumerable: true,
|
|
8495
9819
|
get: function() {
|
|
@@ -8550,6 +9874,18 @@ Object.defineProperty(exports, "contextPruningSchema", {
|
|
|
8550
9874
|
return contextPruningSchema;
|
|
8551
9875
|
}
|
|
8552
9876
|
});
|
|
9877
|
+
Object.defineProperty(exports, "conversationStarterFilterFieldSchema", {
|
|
9878
|
+
enumerable: true,
|
|
9879
|
+
get: function() {
|
|
9880
|
+
return conversationStarterFilterFieldSchema;
|
|
9881
|
+
}
|
|
9882
|
+
});
|
|
9883
|
+
Object.defineProperty(exports, "conversationTitleFilterFieldSchema", {
|
|
9884
|
+
enumerable: true,
|
|
9885
|
+
get: function() {
|
|
9886
|
+
return conversationTitleFilterFieldSchema;
|
|
9887
|
+
}
|
|
9888
|
+
});
|
|
8553
9889
|
Object.defineProperty(exports, "convertStringsToRegex", {
|
|
8554
9890
|
enumerable: true,
|
|
8555
9891
|
get: function() {
|
|
@@ -8808,6 +10144,12 @@ Object.defineProperty(exports, "extractVariableName", {
|
|
|
8808
10144
|
return extractVariableName;
|
|
8809
10145
|
}
|
|
8810
10146
|
});
|
|
10147
|
+
Object.defineProperty(exports, "feedbackFilterFieldSchema", {
|
|
10148
|
+
enumerable: true,
|
|
10149
|
+
get: function() {
|
|
10150
|
+
return feedbackFilterFieldSchema;
|
|
10151
|
+
}
|
|
10152
|
+
});
|
|
8811
10153
|
Object.defineProperty(exports, "feedbackRatingSchema", {
|
|
8812
10154
|
enumerable: true,
|
|
8813
10155
|
get: function() {
|
|
@@ -8838,6 +10180,12 @@ Object.defineProperty(exports, "fileConfigSchema", {
|
|
|
8838
10180
|
return fileConfigSchema;
|
|
8839
10181
|
}
|
|
8840
10182
|
});
|
|
10183
|
+
Object.defineProperty(exports, "fileFilterFieldSchema", {
|
|
10184
|
+
enumerable: true,
|
|
10185
|
+
get: function() {
|
|
10186
|
+
return fileFilterFieldSchema;
|
|
10187
|
+
}
|
|
10188
|
+
});
|
|
8841
10189
|
Object.defineProperty(exports, "fileSourceSchema", {
|
|
8842
10190
|
enumerable: true,
|
|
8843
10191
|
get: function() {
|
|
@@ -8856,6 +10204,36 @@ Object.defineProperty(exports, "fileStrategiesSchema", {
|
|
|
8856
10204
|
return fileStrategiesSchema;
|
|
8857
10205
|
}
|
|
8858
10206
|
});
|
|
10207
|
+
Object.defineProperty(exports, "filterPiiActionSchema", {
|
|
10208
|
+
enumerable: true,
|
|
10209
|
+
get: function() {
|
|
10210
|
+
return filterPiiActionSchema;
|
|
10211
|
+
}
|
|
10212
|
+
});
|
|
10213
|
+
Object.defineProperty(exports, "filterPiiCustomPatternSchema", {
|
|
10214
|
+
enumerable: true,
|
|
10215
|
+
get: function() {
|
|
10216
|
+
return filterPiiCustomPatternSchema;
|
|
10217
|
+
}
|
|
10218
|
+
});
|
|
10219
|
+
Object.defineProperty(exports, "filterPiiRegexSchema", {
|
|
10220
|
+
enumerable: true,
|
|
10221
|
+
get: function() {
|
|
10222
|
+
return filterPiiRegexSchema;
|
|
10223
|
+
}
|
|
10224
|
+
});
|
|
10225
|
+
Object.defineProperty(exports, "filterPiiStarterPatternSchema", {
|
|
10226
|
+
enumerable: true,
|
|
10227
|
+
get: function() {
|
|
10228
|
+
return filterPiiStarterPatternSchema;
|
|
10229
|
+
}
|
|
10230
|
+
});
|
|
10231
|
+
Object.defineProperty(exports, "filtersConfigSchema", {
|
|
10232
|
+
enumerable: true,
|
|
10233
|
+
get: function() {
|
|
10234
|
+
return filtersConfigSchema;
|
|
10235
|
+
}
|
|
10236
|
+
});
|
|
8859
10237
|
Object.defineProperty(exports, "fullMimeTypesList", {
|
|
8860
10238
|
enumerable: true,
|
|
8861
10239
|
get: function() {
|
|
@@ -8952,12 +10330,30 @@ Object.defineProperty(exports, "getEndpointFileConfig", {
|
|
|
8952
10330
|
return getEndpointFileConfig;
|
|
8953
10331
|
}
|
|
8954
10332
|
});
|
|
10333
|
+
Object.defineProperty(exports, "getGoogleThinkingBudgetBounds", {
|
|
10334
|
+
enumerable: true,
|
|
10335
|
+
get: function() {
|
|
10336
|
+
return getGoogleThinkingBudgetBounds;
|
|
10337
|
+
}
|
|
10338
|
+
});
|
|
10339
|
+
Object.defineProperty(exports, "getGoogleThinkingBudgetMax", {
|
|
10340
|
+
enumerable: true,
|
|
10341
|
+
get: function() {
|
|
10342
|
+
return getGoogleThinkingBudgetMax;
|
|
10343
|
+
}
|
|
10344
|
+
});
|
|
8955
10345
|
Object.defineProperty(exports, "getMCPServerConnectionStatus", {
|
|
8956
10346
|
enumerable: true,
|
|
8957
10347
|
get: function() {
|
|
8958
10348
|
return getMCPServerConnectionStatus;
|
|
8959
10349
|
}
|
|
8960
10350
|
});
|
|
10351
|
+
Object.defineProperty(exports, "getMaxSubagents", {
|
|
10352
|
+
enumerable: true,
|
|
10353
|
+
get: function() {
|
|
10354
|
+
return getMaxSubagents;
|
|
10355
|
+
}
|
|
10356
|
+
});
|
|
8961
10357
|
Object.defineProperty(exports, "getModelKey", {
|
|
8962
10358
|
enumerable: true,
|
|
8963
10359
|
get: function() {
|
|
@@ -8970,6 +10366,12 @@ Object.defineProperty(exports, "getModels", {
|
|
|
8970
10366
|
return getModels;
|
|
8971
10367
|
}
|
|
8972
10368
|
});
|
|
10369
|
+
Object.defineProperty(exports, "getPiiRegexProgramSize", {
|
|
10370
|
+
enumerable: true,
|
|
10371
|
+
get: function() {
|
|
10372
|
+
return getPiiRegexProgramSize;
|
|
10373
|
+
}
|
|
10374
|
+
});
|
|
8973
10375
|
Object.defineProperty(exports, "getRefillEligibilityDate", {
|
|
8974
10376
|
enumerable: true,
|
|
8975
10377
|
get: function() {
|
|
@@ -9054,12 +10456,36 @@ Object.defineProperty(exports, "googleSettings", {
|
|
|
9054
10456
|
return googleSettings;
|
|
9055
10457
|
}
|
|
9056
10458
|
});
|
|
10459
|
+
Object.defineProperty(exports, "hasActiveFiltersConfig", {
|
|
10460
|
+
enumerable: true,
|
|
10461
|
+
get: function() {
|
|
10462
|
+
return hasActiveFiltersConfig;
|
|
10463
|
+
}
|
|
10464
|
+
});
|
|
10465
|
+
Object.defineProperty(exports, "hasActivePiiFields", {
|
|
10466
|
+
enumerable: true,
|
|
10467
|
+
get: function() {
|
|
10468
|
+
return hasActivePiiFields;
|
|
10469
|
+
}
|
|
10470
|
+
});
|
|
10471
|
+
Object.defineProperty(exports, "hasActivePiiPatterns", {
|
|
10472
|
+
enumerable: true,
|
|
10473
|
+
get: function() {
|
|
10474
|
+
return hasActivePiiPatterns;
|
|
10475
|
+
}
|
|
10476
|
+
});
|
|
9057
10477
|
Object.defineProperty(exports, "hasPermissions", {
|
|
9058
10478
|
enumerable: true,
|
|
9059
10479
|
get: function() {
|
|
9060
10480
|
return hasPermissions;
|
|
9061
10481
|
}
|
|
9062
10482
|
});
|
|
10483
|
+
Object.defineProperty(exports, "hasProcessMCPServerConfig", {
|
|
10484
|
+
enumerable: true,
|
|
10485
|
+
get: function() {
|
|
10486
|
+
return hasProcessMCPServerConfig;
|
|
10487
|
+
}
|
|
10488
|
+
});
|
|
9063
10489
|
Object.defineProperty(exports, "hostImageIdSuffix", {
|
|
9064
10490
|
enumerable: true,
|
|
9065
10491
|
get: function() {
|
|
@@ -9204,12 +10630,30 @@ Object.defineProperty(exports, "isPermissiveMimeConfig", {
|
|
|
9204
10630
|
return isPermissiveMimeConfig;
|
|
9205
10631
|
}
|
|
9206
10632
|
});
|
|
10633
|
+
Object.defineProperty(exports, "isProcessMCPServerConfig", {
|
|
10634
|
+
enumerable: true,
|
|
10635
|
+
get: function() {
|
|
10636
|
+
return isProcessMCPServerConfig;
|
|
10637
|
+
}
|
|
10638
|
+
});
|
|
10639
|
+
Object.defineProperty(exports, "isProcessMCPServerField", {
|
|
10640
|
+
enumerable: true,
|
|
10641
|
+
get: function() {
|
|
10642
|
+
return isProcessMCPServerField;
|
|
10643
|
+
}
|
|
10644
|
+
});
|
|
9207
10645
|
Object.defineProperty(exports, "isRemoteOidcUrlAllowed", {
|
|
9208
10646
|
enumerable: true,
|
|
9209
10647
|
get: function() {
|
|
9210
10648
|
return isRemoteOidcUrlAllowed;
|
|
9211
10649
|
}
|
|
9212
10650
|
});
|
|
10651
|
+
Object.defineProperty(exports, "isSecureCodeEnvironmentControlURL", {
|
|
10652
|
+
enumerable: true,
|
|
10653
|
+
get: function() {
|
|
10654
|
+
return isSecureCodeEnvironmentControlURL;
|
|
10655
|
+
}
|
|
10656
|
+
});
|
|
9213
10657
|
Object.defineProperty(exports, "isSensitiveEnvVar", {
|
|
9214
10658
|
enumerable: true,
|
|
9215
10659
|
get: function() {
|
|
@@ -9234,6 +10678,12 @@ Object.defineProperty(exports, "loginPage", {
|
|
|
9234
10678
|
return loginPage;
|
|
9235
10679
|
}
|
|
9236
10680
|
});
|
|
10681
|
+
Object.defineProperty(exports, "materializeModelSpecEndpoints", {
|
|
10682
|
+
enumerable: true,
|
|
10683
|
+
get: function() {
|
|
10684
|
+
return materializeModelSpecEndpoints;
|
|
10685
|
+
}
|
|
10686
|
+
});
|
|
9237
10687
|
Object.defineProperty(exports, "mbToBytes", {
|
|
9238
10688
|
enumerable: true,
|
|
9239
10689
|
get: function() {
|
|
@@ -9246,6 +10696,12 @@ Object.defineProperty(exports, "megabyte", {
|
|
|
9246
10696
|
return megabyte;
|
|
9247
10697
|
}
|
|
9248
10698
|
});
|
|
10699
|
+
Object.defineProperty(exports, "memoryFilterFieldSchema", {
|
|
10700
|
+
enumerable: true,
|
|
10701
|
+
get: function() {
|
|
10702
|
+
return memoryFilterFieldSchema;
|
|
10703
|
+
}
|
|
10704
|
+
});
|
|
9249
10705
|
Object.defineProperty(exports, "memorySchema", {
|
|
9250
10706
|
enumerable: true,
|
|
9251
10707
|
get: function() {
|
|
@@ -9258,6 +10714,12 @@ Object.defineProperty(exports, "mergeFileConfig", {
|
|
|
9258
10714
|
return mergeFileConfig;
|
|
9259
10715
|
}
|
|
9260
10716
|
});
|
|
10717
|
+
Object.defineProperty(exports, "messageFilterFieldSchema", {
|
|
10718
|
+
enumerable: true,
|
|
10719
|
+
get: function() {
|
|
10720
|
+
return messageFilterFieldSchema;
|
|
10721
|
+
}
|
|
10722
|
+
});
|
|
9261
10723
|
Object.defineProperty(exports, "messageFilterPiiSchema", {
|
|
9262
10724
|
enumerable: true,
|
|
9263
10725
|
get: function() {
|
|
@@ -9282,6 +10744,12 @@ Object.defineProperty(exports, "modelConfigSchema", {
|
|
|
9282
10744
|
return modelConfigSchema;
|
|
9283
10745
|
}
|
|
9284
10746
|
});
|
|
10747
|
+
Object.defineProperty(exports, "modelParameterFilterFieldSchema", {
|
|
10748
|
+
enumerable: true,
|
|
10749
|
+
get: function() {
|
|
10750
|
+
return modelParameterFilterFieldSchema;
|
|
10751
|
+
}
|
|
10752
|
+
});
|
|
9285
10753
|
Object.defineProperty(exports, "modelSpecSubagentsSchema", {
|
|
9286
10754
|
enumerable: true,
|
|
9287
10755
|
get: function() {
|
|
@@ -9306,6 +10774,12 @@ Object.defineProperty(exports, "normalizeMCPToolKey", {
|
|
|
9306
10774
|
return normalizeMCPToolKey;
|
|
9307
10775
|
}
|
|
9308
10776
|
});
|
|
10777
|
+
Object.defineProperty(exports, "normalizeSearxngEngines", {
|
|
10778
|
+
enumerable: true,
|
|
10779
|
+
get: function() {
|
|
10780
|
+
return normalizeSearxngEngines;
|
|
10781
|
+
}
|
|
10782
|
+
});
|
|
9309
10783
|
Object.defineProperty(exports, "normalizeServerName", {
|
|
9310
10784
|
enumerable: true,
|
|
9311
10785
|
get: function() {
|
|
@@ -9372,6 +10846,12 @@ Object.defineProperty(exports, "principalSchema", {
|
|
|
9372
10846
|
return principalSchema;
|
|
9373
10847
|
}
|
|
9374
10848
|
});
|
|
10849
|
+
Object.defineProperty(exports, "promptFilterFieldSchema", {
|
|
10850
|
+
enumerable: true,
|
|
10851
|
+
get: function() {
|
|
10852
|
+
return promptFilterFieldSchema;
|
|
10853
|
+
}
|
|
10854
|
+
});
|
|
9375
10855
|
Object.defineProperty(exports, "providerEndpointMap", {
|
|
9376
10856
|
enumerable: true,
|
|
9377
10857
|
get: function() {
|
|
@@ -9426,12 +10906,36 @@ Object.defineProperty(exports, "resetPassword", {
|
|
|
9426
10906
|
return resetPassword;
|
|
9427
10907
|
}
|
|
9428
10908
|
});
|
|
10909
|
+
Object.defineProperty(exports, "resolveAgentSkillsScope", {
|
|
10910
|
+
enumerable: true,
|
|
10911
|
+
get: function() {
|
|
10912
|
+
return resolveAgentSkillsScope;
|
|
10913
|
+
}
|
|
10914
|
+
});
|
|
10915
|
+
Object.defineProperty(exports, "resolveAllowedStatefulCodeEnvironments", {
|
|
10916
|
+
enumerable: true,
|
|
10917
|
+
get: function() {
|
|
10918
|
+
return resolveAllowedStatefulCodeEnvironments;
|
|
10919
|
+
}
|
|
10920
|
+
});
|
|
9429
10921
|
Object.defineProperty(exports, "resolveEndpointType", {
|
|
9430
10922
|
enumerable: true,
|
|
9431
10923
|
get: function() {
|
|
9432
10924
|
return resolveEndpointType;
|
|
9433
10925
|
}
|
|
9434
10926
|
});
|
|
10927
|
+
Object.defineProperty(exports, "resolveModelSpecEndpoint", {
|
|
10928
|
+
enumerable: true,
|
|
10929
|
+
get: function() {
|
|
10930
|
+
return resolveModelSpecEndpoint;
|
|
10931
|
+
}
|
|
10932
|
+
});
|
|
10933
|
+
Object.defineProperty(exports, "resolveStatefulCodeEnvironment", {
|
|
10934
|
+
enumerable: true,
|
|
10935
|
+
get: function() {
|
|
10936
|
+
return resolveStatefulCodeEnvironment;
|
|
10937
|
+
}
|
|
10938
|
+
});
|
|
9435
10939
|
Object.defineProperty(exports, "resourcePermissionsResponseSchema", {
|
|
9436
10940
|
enumerable: true,
|
|
9437
10941
|
get: function() {
|
|
@@ -9486,6 +10990,12 @@ Object.defineProperty(exports, "setFileConfigRegexCompiler", {
|
|
|
9486
10990
|
return setFileConfigRegexCompiler;
|
|
9487
10991
|
}
|
|
9488
10992
|
});
|
|
10993
|
+
Object.defineProperty(exports, "setMaxSubagents", {
|
|
10994
|
+
enumerable: true,
|
|
10995
|
+
get: function() {
|
|
10996
|
+
return setMaxSubagents;
|
|
10997
|
+
}
|
|
10998
|
+
});
|
|
9489
10999
|
Object.defineProperty(exports, "setMessageFilterRegexValidator", {
|
|
9490
11000
|
enumerable: true,
|
|
9491
11001
|
get: function() {
|
|
@@ -9504,6 +11014,12 @@ Object.defineProperty(exports, "sharedFileDownload", {
|
|
|
9504
11014
|
return sharedFileDownload;
|
|
9505
11015
|
}
|
|
9506
11016
|
});
|
|
11017
|
+
Object.defineProperty(exports, "skillFilterFieldSchema", {
|
|
11018
|
+
enumerable: true,
|
|
11019
|
+
get: function() {
|
|
11020
|
+
return skillFilterFieldSchema;
|
|
11021
|
+
}
|
|
11022
|
+
});
|
|
9507
11023
|
Object.defineProperty(exports, "skillSyncConfigSchema", {
|
|
9508
11024
|
enumerable: true,
|
|
9509
11025
|
get: function() {
|
|
@@ -9540,6 +11056,24 @@ Object.defineProperty(exports, "splitToolCallName", {
|
|
|
9540
11056
|
return splitToolCallName;
|
|
9541
11057
|
}
|
|
9542
11058
|
});
|
|
11059
|
+
Object.defineProperty(exports, "stripServerNamePrefix", {
|
|
11060
|
+
enumerable: true,
|
|
11061
|
+
get: function() {
|
|
11062
|
+
return stripServerNamePrefix;
|
|
11063
|
+
}
|
|
11064
|
+
});
|
|
11065
|
+
Object.defineProperty(exports, "stripServerNamePrefixes", {
|
|
11066
|
+
enumerable: true,
|
|
11067
|
+
get: function() {
|
|
11068
|
+
return stripServerNamePrefixes;
|
|
11069
|
+
}
|
|
11070
|
+
});
|
|
11071
|
+
Object.defineProperty(exports, "subagentThreadLineageSchema", {
|
|
11072
|
+
enumerable: true,
|
|
11073
|
+
get: function() {
|
|
11074
|
+
return subagentThreadLineageSchema;
|
|
11075
|
+
}
|
|
11076
|
+
});
|
|
9543
11077
|
Object.defineProperty(exports, "summarizationConfigSchema", {
|
|
9544
11078
|
enumerable: true,
|
|
9545
11079
|
get: function() {
|
|
@@ -9678,6 +11212,12 @@ Object.defineProperty(exports, "toolApprovalPolicySchema", {
|
|
|
9678
11212
|
return toolApprovalPolicySchema;
|
|
9679
11213
|
}
|
|
9680
11214
|
});
|
|
11215
|
+
Object.defineProperty(exports, "toolArgumentFilterFieldSchema", {
|
|
11216
|
+
enumerable: true,
|
|
11217
|
+
get: function() {
|
|
11218
|
+
return toolArgumentFilterFieldSchema;
|
|
11219
|
+
}
|
|
11220
|
+
});
|
|
9681
11221
|
Object.defineProperty(exports, "transactionsSchema", {
|
|
9682
11222
|
enumerable: true,
|
|
9683
11223
|
get: function() {
|
|
@@ -9696,6 +11236,12 @@ Object.defineProperty(exports, "turnstileSchema", {
|
|
|
9696
11236
|
return turnstileSchema;
|
|
9697
11237
|
}
|
|
9698
11238
|
});
|
|
11239
|
+
Object.defineProperty(exports, "unattributedAssistantContentSchema", {
|
|
11240
|
+
enumerable: true,
|
|
11241
|
+
get: function() {
|
|
11242
|
+
return unattributedAssistantContentSchema;
|
|
11243
|
+
}
|
|
11244
|
+
});
|
|
9699
11245
|
Object.defineProperty(exports, "updateFeedback", {
|
|
9700
11246
|
enumerable: true,
|
|
9701
11247
|
get: function() {
|
|
@@ -9756,6 +11302,12 @@ Object.defineProperty(exports, "userKeyQuery", {
|
|
|
9756
11302
|
return userKeyQuery;
|
|
9757
11303
|
}
|
|
9758
11304
|
});
|
|
11305
|
+
Object.defineProperty(exports, "userSubmittedMessageFieldPathSchema", {
|
|
11306
|
+
enumerable: true,
|
|
11307
|
+
get: function() {
|
|
11308
|
+
return userSubmittedMessageFieldPathSchema;
|
|
11309
|
+
}
|
|
11310
|
+
});
|
|
9759
11311
|
Object.defineProperty(exports, "validateSettingDefinitions", {
|
|
9760
11312
|
enumerable: true,
|
|
9761
11313
|
get: function() {
|
|
@@ -9799,4 +11351,4 @@ Object.defineProperty(exports, "webSearchSchema", {
|
|
|
9799
11351
|
}
|
|
9800
11352
|
});
|
|
9801
11353
|
|
|
9802
|
-
//# sourceMappingURL=data-service-
|
|
11354
|
+
//# sourceMappingURL=data-service-D5kHzBt-.js.map
|