librechat-data-provider 0.8.522 → 0.8.523

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/{data-service-CaB7saTP.mjs → data-service-Bx6IFaSa.mjs} +638 -27
  2. package/dist/data-service-Bx6IFaSa.mjs.map +1 -0
  3. package/dist/{data-service-D5kHzBt-.js → data-service-CTX0tVO5.js} +871 -26
  4. package/dist/data-service-CTX0tVO5.js.map +1 -0
  5. package/dist/index.js +557 -19
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +491 -20
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/react-query/index.js +1 -1
  10. package/dist/react-query/index.mjs +1 -1
  11. package/dist/types/accessPermissions.d.ts +54 -1
  12. package/dist/types/api-endpoints.d.ts +6 -0
  13. package/dist/types/bedrock.d.ts +80 -20
  14. package/dist/types/code/approval.d.ts +26 -0
  15. package/dist/types/code/worker.d.ts +10 -0
  16. package/dist/types/code/workspace.d.ts +28 -0
  17. package/dist/types/codeEnvRef.d.ts +5 -0
  18. package/dist/types/config.d.ts +6062 -3828
  19. package/dist/types/data-service.d.ts +8 -0
  20. package/dist/types/errors.d.ts +2 -0
  21. package/dist/types/file-config.d.ts +137 -9
  22. package/dist/types/filters.d.ts +176 -176
  23. package/dist/types/generate.d.ts +28 -4
  24. package/dist/types/index.d.ts +7 -0
  25. package/dist/types/keys.d.ts +11 -1
  26. package/dist/types/mcp.d.ts +336 -330
  27. package/dist/types/messages.d.ts +19 -0
  28. package/dist/types/models.d.ts +367 -238
  29. package/dist/types/parameterSettings.d.ts +8 -0
  30. package/dist/types/providers.d.ts +1 -0
  31. package/dist/types/resolve-llm-delivery-path.d.ts +68 -0
  32. package/dist/types/schemas.d.ts +628 -317
  33. package/dist/types/svg.d.ts +34 -0
  34. package/dist/types/types/agents.d.ts +24 -0
  35. package/dist/types/types/assistants.d.ts +27 -3
  36. package/dist/types/types/files.d.ts +34 -0
  37. package/dist/types/types/insights.d.ts +9 -0
  38. package/dist/types/types/queries.d.ts +8 -1
  39. package/dist/types/types/queuedTurns.d.ts +16 -16
  40. package/dist/types/types/runs.d.ts +24 -5
  41. package/dist/types/types/schedules.d.ts +44 -11
  42. package/dist/types/types/traces.d.ts +85 -0
  43. package/dist/types/types.d.ts +41 -1
  44. package/package.json +2 -2
  45. package/dist/data-service-CaB7saTP.mjs.map +0 -1
  46. package/dist/data-service-D5kHzBt-.js.map +0 -1
@@ -330,6 +330,52 @@ const filtersConfigSchema = z.object({
330
330
  });
331
331
  });
332
332
  //#endregion
333
+ //#region src/code/workspace.ts
334
+ const CODE_WORKSPACE_ID_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/;
335
+ /** Protocol-v1 ceiling enforced by the worker and Code API. */
336
+ const CODE_WORKSPACE_MAX_COUNT = 32;
337
+ /** API/client protocol for immutable conversation-owned environment decisions. */
338
+ const CODE_ENVIRONMENT_DECISION_VERSION = 1;
339
+ const CODE_WORKSPACE_OPERATIONS = [
340
+ "read_file",
341
+ "search_text",
342
+ "list_files",
343
+ "write_file",
344
+ "preview_edit",
345
+ "edit_file",
346
+ "execute_command"
347
+ ];
348
+ const CODE_WORKSPACE_SELECTION_ERROR_REASONS = [
349
+ "required",
350
+ "invalid",
351
+ "worker_unavailable",
352
+ "unsupported",
353
+ "missing",
354
+ "locked"
355
+ ];
356
+ const CODE_ENVIRONMENT_MODES = ["attached", "without_attached"];
357
+ function isCodeEnvironmentMode(value) {
358
+ return CODE_ENVIRONMENT_MODES.some((mode) => mode === value);
359
+ }
360
+ function isCodeWorkspaceSelectionErrorReason(value) {
361
+ return CODE_WORKSPACE_SELECTION_ERROR_REASONS.some((reason) => reason === value);
362
+ }
363
+ function isCodeWorkspaceSelection(value) {
364
+ if (value == null || typeof value !== "object" || Array.isArray(value)) return false;
365
+ const selection = value;
366
+ return Object.keys(selection).every((key) => key === "environmentId" || key === "workspaceId") && typeof selection.environmentId === "string" && CODE_WORKSPACE_ID_PATTERN.test(selection.environmentId) && typeof selection.workspaceId === "string" && CODE_WORKSPACE_ID_PATTERN.test(selection.workspaceId);
367
+ }
368
+ /** One exact workspace per attached environment used by a conversation. */
369
+ function isCodeWorkspaceSelections(value) {
370
+ if (!Array.isArray(value)) return false;
371
+ const environmentIds = /* @__PURE__ */ new Set();
372
+ return value.every((selection) => {
373
+ if (!isCodeWorkspaceSelection(selection) || environmentIds.has(selection.environmentId)) return false;
374
+ environmentIds.add(selection.environmentId);
375
+ return true;
376
+ });
377
+ }
378
+ //#endregion
333
379
  //#region src/feedback.ts
334
380
  const FEEDBACK_RATINGS = ["thumbsUp", "thumbsDown"];
335
381
  const FEEDBACK_REASON_KEYS = [
@@ -439,6 +485,63 @@ function getTagByKey(key) {
439
485
  return FEEDBACK_TAGS.find((tag) => tag.key === key);
440
486
  }
441
487
  //#endregion
488
+ //#region src/code/approval.ts
489
+ const CODE_APPROVAL_MODES = [
490
+ "ask",
491
+ "acceptEdits",
492
+ "fullAccess"
493
+ ];
494
+ const MODE_PERMISSIONS = {
495
+ ask: {
496
+ fileWrite: "ask",
497
+ commandExecution: "ask"
498
+ },
499
+ acceptEdits: {
500
+ fileWrite: "allow",
501
+ commandExecution: "ask"
502
+ },
503
+ fullAccess: {
504
+ fileWrite: "allow",
505
+ commandExecution: "allow"
506
+ }
507
+ };
508
+ /** Omitted deployment configuration never grants unattended execution. */
509
+ function getAllowedCodeApprovalModes({ enabled, allowedModes, configSchema, settings, environment }) {
510
+ if (enabled === false) return [];
511
+ const permitted = new Set(allowedModes ?? ["ask"]);
512
+ return CODE_APPROVAL_MODES.filter((mode) => {
513
+ if (!permitted.has(mode)) return false;
514
+ if (environment === "managed") return true;
515
+ for (const category of ["fileWrite", "commandExecution"]) {
516
+ if (MODE_PERMISSIONS[mode][category] !== "allow") continue;
517
+ const field = configSchema?.permissions?.[category];
518
+ const configured = settings?.permissions?.[category];
519
+ if ((configured != null && field?.allowed.includes(configured) === true ? configured : field?.default ?? "ask") === "deny" || field?.allowed.includes("allow") !== true) return false;
520
+ }
521
+ return true;
522
+ });
523
+ }
524
+ var CodeApprovalModeError = class extends Error {
525
+ constructor() {
526
+ super("The selected code approval mode is not permitted by the current policy.");
527
+ this.code = "CODE_APPROVAL_MODE_NOT_ALLOWED";
528
+ this.name = "CodeApprovalModeError";
529
+ }
530
+ };
531
+ /** Validate untrusted request state again at admission, including after policy changes. */
532
+ function resolveCodeApprovalMode(requested, constraints) {
533
+ if (requested == null) return void 0;
534
+ const selected = getAllowedCodeApprovalModes(constraints).find((mode) => mode === requested);
535
+ if (selected == null) throw new CodeApprovalModeError();
536
+ return selected;
537
+ }
538
+ /** Apply a turn preference without modifying machine settings or overriding an existing deny. */
539
+ function resolveCodePermissionDecision({ mode, category, decision }) {
540
+ if (mode == null || decision === "deny") return decision;
541
+ if (MODE_PERMISSIONS[mode] == null) throw new CodeApprovalModeError();
542
+ return MODE_PERMISSIONS[mode][category];
543
+ }
544
+ //#endregion
442
545
  //#region src/stateful-code.ts
443
546
  const STATEFUL_CODE_ENVIRONMENTS = [
444
547
  "user",
@@ -482,6 +585,10 @@ let EToolResources = /* @__PURE__ */ function(EToolResources) {
482
585
  EToolResources["ocr"] = "ocr";
483
586
  return EToolResources;
484
587
  }({});
588
+ const agentGitIdentitySchema = z.object({
589
+ name: z.string().trim().min(1).max(128).refine((value) => !/[\0\r\n]/.test(value)),
590
+ email: z.string().trim().email().max(254).refine((value) => !/[\0\r\n]/.test(value))
591
+ }).optional();
485
592
  let AnnotationTypes = /* @__PURE__ */ function(AnnotationTypes) {
486
593
  AnnotationTypes["FILE_CITATION"] = "file_citation";
487
594
  AnnotationTypes["FILE_PATH"] = "file_path";
@@ -673,7 +780,35 @@ const inputTokensIncludesCache = (provider) => {
673
780
  return cacheSubsetProviders.has(provider ?? "");
674
781
  };
675
782
  const isDocumentSupportedProvider = (provider) => {
676
- return documentSupportedProviders.has(provider ?? "");
783
+ const normalized = provider?.toLowerCase() ?? "";
784
+ return Array.from(documentSupportedProviders).some((candidate) => candidate.toLowerCase() === normalized);
785
+ };
786
+ /**
787
+ * Endpoints whose encoders actually build native audio/video payloads. Narrower than
788
+ * `documentSupportedProviders`: a provider can accept PDFs and still emit nothing for
789
+ * media, in which case the upload has to fall back to text/STT.
790
+ */
791
+ const mediaSupportedProviders = new Set([
792
+ "google",
793
+ "vertexai",
794
+ "openrouter"
795
+ ]);
796
+ const isMediaSupportedProvider = (provider) => {
797
+ return mediaSupportedProviders.has(provider?.toLowerCase() ?? "");
798
+ };
799
+ /**
800
+ * Built-in endpoint and provider identifiers. A name outside this set is a custom
801
+ * endpoint whose real provider is resolved at request time, so its capabilities
802
+ * cannot be judged from the name alone.
803
+ */
804
+ const knownProviderIdentifiers = new Set([
805
+ ...Object.values(EModelEndpoint),
806
+ ...Object.values(Providers),
807
+ ...Object.values(EModelEndpoint).map((provider) => provider.toLowerCase()),
808
+ ...Object.values(Providers).map((provider) => provider.toLowerCase())
809
+ ]);
810
+ const isKnownProviderIdentifier = (provider) => {
811
+ return knownProviderIdentifiers.has(provider?.toLowerCase() ?? "");
677
812
  };
678
813
  const paramEndpoints = new Set([
679
814
  "agents",
@@ -876,6 +1011,7 @@ const defaultAgentFormValues = {
876
1011
  ["memory"]: false,
877
1012
  stateful_code_environment: "user",
878
1013
  code_environment_id: void 0,
1014
+ code_workspace_id: void 0,
879
1015
  category: "general",
880
1016
  support_contact: {
881
1017
  name: "",
@@ -1366,6 +1502,12 @@ const tConversationSchema = z.object({
1366
1502
  pinned: z.boolean().optional(),
1367
1503
  /** Server-derived: an active shared link exists for this conversation. Not persisted. */
1368
1504
  isShared: z.boolean().optional(),
1505
+ codeApprovalMode: z.enum(CODE_APPROVAL_MODES).optional(),
1506
+ codeEnvironmentMode: z.enum(CODE_ENVIRONMENT_MODES).optional(),
1507
+ codeWorkspaces: z.array(z.object({
1508
+ environmentId: z.string().regex(CODE_WORKSPACE_ID_PATTERN),
1509
+ workspaceId: z.string().regex(CODE_WORKSPACE_ID_PATTERN)
1510
+ }).strict()).optional(),
1369
1511
  title: z.string().nullable().or(z.literal("New Chat")).default("New Chat"),
1370
1512
  user: z.string().optional(),
1371
1513
  messages: z.array(z.string()).optional(),
@@ -2269,6 +2411,7 @@ const MAX_GRAPH_SUBAGENT_MEMBERS = 32;
2269
2411
  const modelSpecSubagentsSchema = z.object({
2270
2412
  enabled: z.boolean().optional(),
2271
2413
  allowSelf: z.boolean().optional(),
2414
+ shareFiles: z.boolean().optional(),
2272
2415
  agent_ids: z.array(z.string()).optional()
2273
2416
  }).superRefine((subagents, ctx) => {
2274
2417
  const maxSubagents = getMaxSubagents();
@@ -2550,6 +2693,49 @@ const bedrockDocumentFormats = {
2550
2693
  "text/plain": "txt",
2551
2694
  "text/markdown": "md"
2552
2695
  };
2696
+ /**
2697
+ * Whether an upload belongs to the conversation rather than to the agent. The value
2698
+ * arrives from multipart form data, so it can be the string "false", which is truthy.
2699
+ * Shared so the route, the authorization check and processing cannot disagree about it.
2700
+ */
2701
+ const isMessageFileUpload = (value) => value === true || value === "true";
2702
+ /**
2703
+ * Whether the upload's conversation uses the Responses API, which decides whether Azure
2704
+ * can carry a document natively. Multipart form data has no booleans, so it arrives as
2705
+ * the string "true".
2706
+ */
2707
+ const isResponsesApiUpload = (value) => value === true || value === "true";
2708
+ /**
2709
+ * The name a file carries inside the code sandbox.
2710
+ *
2711
+ * Image uploads are converted to the configured output type while the record keeps the
2712
+ * original filename, so the extension has to follow the stored bytes or the sandbox
2713
+ * decoder is handed a mismatch. Provisioning and priming both resolve the mount path
2714
+ * from here: deriving it twice under different rules leaves a later turn advertising a
2715
+ * path that does not exist in the sandbox.
2716
+ */
2717
+ const resolveSandboxFilename = (filename, mimeType) => {
2718
+ if (!mimeType?.startsWith("image/")) return filename;
2719
+ const subtype = mimeType.slice(6);
2720
+ if (![
2721
+ "webp",
2722
+ "png",
2723
+ "jpeg",
2724
+ "gif"
2725
+ ].includes(subtype)) return filename;
2726
+ const accepted = subtype === "jpeg" ? [".jpg", ".jpeg"] : [`.${subtype}`];
2727
+ const lastDot = filename.lastIndexOf(".");
2728
+ const currentExt = lastDot > 0 ? filename.slice(lastDot).toLowerCase() : "";
2729
+ if (accepted.includes(currentExt)) return filename;
2730
+ return `${lastDot > 0 ? filename.slice(0, lastDot) : filename}${accepted[0]}`;
2731
+ };
2732
+ /**
2733
+ * The Responses setting a turn actually runs on. A saved agent's own record wins, since
2734
+ * execution reads its model parameters; a conversation only answers for itself. Upload
2735
+ * and delivery must agree here, or a document is stored as raw provider content and then
2736
+ * re-resolved to text it has no extraction for.
2737
+ */
2738
+ const resolveUseResponsesApi = (agentValue, conversationValue) => agentValue ?? conversationValue ?? void 0;
2553
2739
  const isBedrockDocumentType = (mimeType) => mimeType != null && mimeType in bedrockDocumentFormats;
2554
2740
  /** MIME types Bedrock's Converse document path can send to the model (mirrors `bedrockDocumentFormats`). */
2555
2741
  const bedrockDocumentMimeTypes = Object.keys(bedrockDocumentFormats);
@@ -2783,6 +2969,8 @@ const mbToBytes = (mb) => mb * megabyte;
2783
2969
  const defaultSizeLimit = mbToBytes(512);
2784
2970
  const defaultSkillImportSizeLimit = mbToBytes(50);
2785
2971
  const defaultTokenLimit = 1e5;
2972
+ const defaultContextSizeLimit = mbToBytes(128);
2973
+ const defaultContextCharLimit = 1e6;
2786
2974
  const assistantsFileConfig = {
2787
2975
  fileLimit: 10,
2788
2976
  fileSizeLimit: defaultSizeLimit,
@@ -2814,6 +3002,8 @@ const fileConfig = {
2814
3002
  serverFileSizeLimit: defaultSizeLimit,
2815
3003
  avatarSizeLimit: mbToBytes(2),
2816
3004
  fileTokenLimit: defaultTokenLimit,
3005
+ fileContextSizeLimit: defaultContextSizeLimit,
3006
+ fileContextCharLimit: defaultContextCharLimit,
2817
3007
  clientImageResize: {
2818
3008
  enabled: false,
2819
3009
  maxWidth: 1900,
@@ -2829,12 +3019,23 @@ const fileConfig = {
2829
3019
  }
2830
3020
  };
2831
3021
  const supportedMimeTypesSchema = z.array(z.string()).optional();
3022
+ const DefaultLLMDeliveryPath = z.enum([
3023
+ "provider",
3024
+ "text",
3025
+ "none"
3026
+ ]);
3027
+ const defaultLLMDeliveryPathSchema = z.object({
3028
+ fallback: DefaultLLMDeliveryPath.optional(),
3029
+ overrides: z.record(DefaultLLMDeliveryPath).optional()
3030
+ });
2832
3031
  const endpointFileConfigSchema = z.object({
2833
3032
  disabled: z.boolean().optional(),
2834
3033
  fileLimit: z.number().min(0).optional(),
2835
3034
  fileSizeLimit: z.number().min(0).optional(),
2836
3035
  totalSizeLimit: z.number().min(0).optional(),
2837
- supportedMimeTypes: supportedMimeTypesSchema.optional()
3036
+ supportedMimeTypes: supportedMimeTypesSchema.optional(),
3037
+ defaultLLMDeliveryPath: defaultLLMDeliveryPathSchema.optional(),
3038
+ legacyFileUploadUX: z.boolean().optional()
2838
3039
  });
2839
3040
  const skillFileConfigSchema = z.object({ fileSizeLimit: z.number().min(0).optional() });
2840
3041
  const fileConfigSchema = z.object({
@@ -2843,6 +3044,9 @@ const fileConfigSchema = z.object({
2843
3044
  serverFileSizeLimit: z.number().min(0).optional(),
2844
3045
  avatarSizeLimit: z.number().min(0).optional(),
2845
3046
  fileTokenLimit: z.number().min(0).optional(),
3047
+ fileContextSizeLimit: z.number().min(0).optional(),
3048
+ fileContextCharLimit: z.number().min(0).optional(),
3049
+ codeEnvLivenessSafeWindowMs: z.number().min(0).optional(),
2846
3050
  imageGeneration: z.object({
2847
3051
  percentage: z.number().min(0).max(100).optional(),
2848
3052
  px: z.number().min(0).optional()
@@ -2854,7 +3058,9 @@ const fileConfigSchema = z.object({
2854
3058
  quality: z.number().min(0).max(1).optional()
2855
3059
  }).optional(),
2856
3060
  ocr: z.object({ supportedMimeTypes: supportedMimeTypesSchema.optional() }).optional(),
2857
- text: z.object({ supportedMimeTypes: supportedMimeTypesSchema.optional() }).optional()
3061
+ text: z.object({ supportedMimeTypes: supportedMimeTypesSchema.optional() }).optional(),
3062
+ defaultLLMDeliveryPath: defaultLLMDeliveryPathSchema.optional(),
3063
+ legacyFileUploadUX: z.boolean().optional()
2858
3064
  });
2859
3065
  /**
2860
3066
  * Compiler for admin-supplied MIME patterns. Defaults to native `RegExp`, which browser
@@ -2990,6 +3196,12 @@ const documentMimeExtensions = [
2990
3196
  ["text/calendar", [".ics"]],
2991
3197
  ["message/rfc822", [".eml"]]
2992
3198
  ];
3199
+ /** Preferred extension for a known document MIME type, including its leading dot. */
3200
+ function getDocumentFileExtension(mimeType) {
3201
+ const normalized = mimeType?.split(";", 1)[0].trim().toLowerCase();
3202
+ const canonical = normalized === "text/comma-separated-values" ? "text/csv" : normalized;
3203
+ return documentMimeExtensions.find(([type]) => type === canonical)?.[1][0];
3204
+ }
2993
3205
  const documentMimeSet = new Set(documentMimeExtensions.map(([mimeType]) => mimeType));
2994
3206
  /** Every MIME type LibreChat may accept, used to detect patterns that reach beyond the representable set. */
2995
3207
  const knownMimeUniverse = Array.from(new Set([
@@ -3083,7 +3295,45 @@ function mergeWithDefault(endpointConfig, defaultConfig, endpoint) {
3083
3295
  fileLimit: endpointConfig.fileLimit ?? defaultConfig.fileLimit,
3084
3296
  fileSizeLimit: endpointConfig.fileSizeLimit ?? defaultConfig.fileSizeLimit,
3085
3297
  totalSizeLimit: endpointConfig.totalSizeLimit ?? defaultConfig.totalSizeLimit,
3086
- supportedMimeTypes: endpointConfig.supportedMimeTypes ?? defaultMimeTypes
3298
+ supportedMimeTypes: endpointConfig.supportedMimeTypes ?? defaultMimeTypes,
3299
+ defaultLLMDeliveryPath: mergeDeliveryPathConfig(endpointConfig.defaultLLMDeliveryPath, defaultConfig.defaultLLMDeliveryPath),
3300
+ legacyFileUploadUX: endpointConfig.legacyFileUploadUX ?? defaultConfig.legacyFileUploadUX
3301
+ };
3302
+ }
3303
+ /**
3304
+ * Deep-merges delivery-path config so an endpoint that supplies only one override
3305
+ * still inherits the default's fallback and shared overrides. Whole-object
3306
+ * replacement would silently drop the inherited routing.
3307
+ */
3308
+ function mergeDeliveryPathConfig(endpointValue, defaultValue) {
3309
+ if (!endpointValue) return defaultValue;
3310
+ if (!defaultValue) return endpointValue;
3311
+ if (endpointValue.fallback != null) return endpointValue;
3312
+ const hasOverrides = endpointValue.overrides != null || defaultValue.overrides != null;
3313
+ return {
3314
+ ...defaultValue.fallback != null ? { fallback: defaultValue.fallback } : {},
3315
+ ...hasOverrides ? { overrides: { ...shadowByWildcard(defaultValue.overrides, endpointValue.overrides) } } : {}
3316
+ };
3317
+ }
3318
+ /**
3319
+ * Flattens two override layers into one map that still resolves like the layered chain.
3320
+ * Resolution reads exact keys before wildcards, so a plain spread would let a lower
3321
+ * layer's `image/png` outrank the upper layer's `image/*`. Dropping the entries an
3322
+ * upper wildcard covers restores precedence without changing how lookups work.
3323
+ */
3324
+ function shadowByWildcard(lower, upper) {
3325
+ if (!lower) return { ...upper };
3326
+ const upperWildcards = /* @__PURE__ */ new Set();
3327
+ for (const key in upper) if (key.endsWith("/*")) upperWildcards.add(key.slice(0, -1));
3328
+ if (upperWildcards.size === 0) return {
3329
+ ...lower,
3330
+ ...upper
3331
+ };
3332
+ const retained = {};
3333
+ for (const key in lower) if (!(!key.endsWith("/*") && upperWildcards.has(key.slice(0, key.indexOf("/") + 1)) && upper?.[key] == null)) retained[key] = lower[key];
3334
+ return {
3335
+ ...retained,
3336
+ ...upper
3087
3337
  };
3088
3338
  }
3089
3339
  function getEndpointFileConfig(params) {
@@ -3091,8 +3341,13 @@ function getEndpointFileConfig(params) {
3091
3341
  if (!mergedFileConfig?.endpoints) return fileConfig.endpoints.default;
3092
3342
  /** Compute an effective default by merging user-configured default over the base default */
3093
3343
  const baseDefaultConfig = fileConfig.endpoints.default;
3344
+ const globalDefaultConfig = {
3345
+ ...baseDefaultConfig,
3346
+ defaultLLMDeliveryPath: mergeDeliveryPathConfig(mergedFileConfig.defaultLLMDeliveryPath, baseDefaultConfig.defaultLLMDeliveryPath),
3347
+ legacyFileUploadUX: mergedFileConfig.legacyFileUploadUX ?? baseDefaultConfig.legacyFileUploadUX
3348
+ };
3094
3349
  const userDefaultConfig = mergedFileConfig.endpoints.default;
3095
- const defaultConfig = userDefaultConfig ? mergeWithDefault(userDefaultConfig, baseDefaultConfig, "default") : baseDefaultConfig;
3350
+ const defaultConfig = userDefaultConfig ? mergeWithDefault(userDefaultConfig, globalDefaultConfig, "default") : globalDefaultConfig;
3096
3351
  const normalizedEndpoint = normalizeEndpointName(endpoint ?? "");
3097
3352
  const standardEndpoints = new Set([
3098
3353
  "default",
@@ -3147,9 +3402,13 @@ function mergeFileConfig(dynamic) {
3147
3402
  }
3148
3403
  };
3149
3404
  if (!dynamic) return mergedConfig;
3405
+ if (dynamic.defaultLLMDeliveryPath !== void 0) mergedConfig.defaultLLMDeliveryPath = dynamic.defaultLLMDeliveryPath;
3406
+ if (dynamic.legacyFileUploadUX !== void 0) mergedConfig.legacyFileUploadUX = dynamic.legacyFileUploadUX;
3150
3407
  if (dynamic.serverFileSizeLimit !== void 0) mergedConfig.serverFileSizeLimit = mbToBytes(dynamic.serverFileSizeLimit);
3151
3408
  if (dynamic.avatarSizeLimit !== void 0) mergedConfig.avatarSizeLimit = mbToBytes(dynamic.avatarSizeLimit);
3152
3409
  if (dynamic.fileTokenLimit !== void 0) mergedConfig.fileTokenLimit = dynamic.fileTokenLimit;
3410
+ if (dynamic.fileContextSizeLimit !== void 0) mergedConfig.fileContextSizeLimit = mbToBytes(dynamic.fileContextSizeLimit);
3411
+ if (dynamic.fileContextCharLimit !== void 0) mergedConfig.fileContextCharLimit = dynamic.fileContextCharLimit;
3153
3412
  if (dynamic.skills?.fileSizeLimit !== void 0) mergedConfig.skills = {
3154
3413
  ...mergedConfig.skills,
3155
3414
  fileSizeLimit: mbToBytes(dynamic.skills.fileSizeLimit)
@@ -3197,6 +3456,8 @@ function mergeFileConfig(dynamic) {
3197
3456
  });
3198
3457
  if (dynamicEndpoint.disabled !== void 0) mergedEndpoint.disabled = dynamicEndpoint.disabled;
3199
3458
  if (dynamicEndpoint.supportedMimeTypes) mergedEndpoint.supportedMimeTypes = convertStringsToRegex(dynamicEndpoint.supportedMimeTypes);
3459
+ if (dynamicEndpoint.defaultLLMDeliveryPath !== void 0) mergedEndpoint.defaultLLMDeliveryPath = dynamicEndpoint.defaultLLMDeliveryPath;
3460
+ if (dynamicEndpoint.legacyFileUploadUX !== void 0) mergedEndpoint.legacyFileUploadUX = dynamicEndpoint.legacyFileUploadUX;
3200
3461
  }
3201
3462
  return mergedConfig;
3202
3463
  }
@@ -3226,6 +3487,7 @@ const codeEnvironments = () => `${BASE_URL}/api/code-environments`;
3226
3487
  const codeEnvironmentPairings = () => `${codeEnvironments()}/pairings`;
3227
3488
  const codeEnvironmentById = (id) => `${codeEnvironments()}/${encodeURIComponent(id)}`;
3228
3489
  const codeEnvironmentSettings = (id) => `${codeEnvironmentById(id)}/settings`;
3490
+ const codeEnvironmentStatus = (id) => `${codeEnvironmentById(id)}/status`;
3229
3491
  const messagesRoot = `${BASE_URL}/api/messages`;
3230
3492
  const messages = (params) => {
3231
3493
  const { conversationId, messageId, ...rest } = params;
@@ -3438,8 +3700,15 @@ const listSkillsWithFilters = (filter) => {
3438
3700
  };
3439
3701
  const skillFiles = (id) => `${getSkill$1(id)}/files`;
3440
3702
  const skillFile = (id, relativePath) => `${skillFiles(id)}/${encodeURIComponent(relativePath)}`;
3441
- const insights = () => `${BASE_URL}/api/admin/insights`;
3703
+ const insights = () => `${BASE_URL}/api/insights`;
3442
3704
  const insightsAccess = () => `${insights()}/access`;
3705
+ const conversationTrace = (conversationId) => `${BASE_URL}/api/traces/${encodeURIComponent(conversationId)}`;
3706
+ const conversationTraceAvailability = (conversationId) => `${conversationTrace(conversationId)}/availability`;
3707
+ const conversationTraceRecords = (conversationId, cursor) => `${conversationTrace(conversationId)}/records${cursor ? `?${new URLSearchParams({ cursor }).toString()}` : ""}`;
3708
+ const conversationTraceRecord = (conversationId, recordId, messageId, sourceId) => `${conversationTrace(conversationId)}/records/${encodeURIComponent(recordId)}?${new URLSearchParams({
3709
+ message: messageId,
3710
+ ...sourceId ? { source: sourceId } : {}
3711
+ }).toString()}`;
3443
3712
  const adminSkillsSync = () => `${BASE_URL}/api/admin/skills/sync`;
3444
3713
  const adminSkillsSyncStatus = () => `${adminSkillsSync()}/status`;
3445
3714
  const adminSkillsSyncRun = () => `${adminSkillsSync()}/run`;
@@ -3448,6 +3717,7 @@ const skillStates = () => `${BASE_URL}/api/user/settings/skills/active`;
3448
3717
  const adminLangfuseConnection = () => `${BASE_URL}/api/admin/langfuse/connection`;
3449
3718
  const adminLangfuseConnectionTest = () => `${adminLangfuseConnection()}/test`;
3450
3719
  const adminLangfuseSessionLink = (conversationId) => `${adminLangfuseConnection()}/session/${encodeURIComponent(conversationId)}`;
3720
+ const pinnedOrder = () => `${BASE_URL}/api/user/settings/pinned-order`;
3451
3721
  const toolFavorites = () => `${BASE_URL}/api/user/settings/favorites/tools`;
3452
3722
  const toolFavorite = (itemType, itemId) => `${toolFavorites()}/${itemType}/${encodeURIComponent(itemId)}`;
3453
3723
  const roles = () => `${BASE_URL}/api/roles`;
@@ -3519,6 +3789,7 @@ let FileContext = /* @__PURE__ */ function(FileContext) {
3519
3789
  FileContext["image_generation"] = "image_generation";
3520
3790
  FileContext["assistants_output"] = "assistants_output";
3521
3791
  FileContext["message_attachment"] = "message_attachment";
3792
+ FileContext["run_artifact"] = "run_artifact";
3522
3793
  FileContext["skill_file"] = "skill_file";
3523
3794
  FileContext["filename"] = "filename";
3524
3795
  FileContext["updatedAt"] = "updatedAt";
@@ -3549,6 +3820,12 @@ let TokenExchangeMethodEnum = /* @__PURE__ */ function(TokenExchangeMethodEnum)
3549
3820
  }({});
3550
3821
  //#endregion
3551
3822
  //#region src/mcp.ts
3823
+ /**
3824
+ * Upper bound on a stored MCP `iconPath` (URL or data URI). Enforced by
3825
+ * `sanitizeMcpIconPath`, not a schema `.max()`, so re-submitting a server whose
3826
+ * stored icon predates the cap clears the icon instead of rejecting the update.
3827
+ */
3828
+ const MAX_MCP_ICON_PATH_LENGTH = 256 * 1024;
3552
3829
  const validateOAuthClientCredentials = (oauth, ctx) => {
3553
3830
  if (oauth.client_secret && !oauth.client_id) ctx.addIssue({
3554
3831
  code: z.ZodIssueCode.custom,
@@ -3957,6 +4234,8 @@ const excludedKeys = new Set([
3957
4234
  "conversationId",
3958
4235
  "agentEventBinding",
3959
4236
  "agentEventActor",
4237
+ "agentEventActorCleanup",
4238
+ "agentEventActorSuspension",
3960
4239
  "agentEventActorReconciliations",
3961
4240
  "agentEventActorEpoch",
3962
4241
  "agentEventActorLegacyTurn",
@@ -4465,13 +4744,13 @@ function isRemoteOidcUrlAllowed(value) {
4465
4744
  }
4466
4745
  const remoteApiOidcUrlSchema = z.string().url().refine(isRemoteOidcUrlAllowed, { message: "must use https:// unless targeting localhost" });
4467
4746
  const remoteApiOidcScopeSchema = z.string().refine((scope) => !scope.includes(","), { message: "scopes must be space-separated" });
4468
- const remoteApiOidcSchema = z.object({
4747
+ const oidcAccessTokenSchema = z.object({
4469
4748
  enabled: z.boolean().default(false),
4470
4749
  issuer: remoteApiOidcUrlSchema.optional(),
4471
4750
  audience: z.string().min(1).optional(),
4472
- jwksUri: remoteApiOidcUrlSchema.optional(),
4473
- scope: remoteApiOidcScopeSchema.optional()
4474
- }).superRefine((oidc, ctx) => {
4751
+ jwksUri: remoteApiOidcUrlSchema.optional()
4752
+ });
4753
+ function validateEnabledOidc(oidc, ctx) {
4475
4754
  if (oidc.enabled === true && !oidc.issuer) ctx.addIssue({
4476
4755
  code: z.ZodIssueCode.custom,
4477
4756
  path: ["issuer"],
@@ -4482,12 +4761,46 @@ const remoteApiOidcSchema = z.object({
4482
4761
  path: ["audience"],
4483
4762
  message: "audience is required when OIDC auth is enabled"
4484
4763
  });
4485
- });
4764
+ }
4765
+ const remoteApiOidcSchema = oidcAccessTokenSchema.extend({ scope: remoteApiOidcScopeSchema.optional() }).superRefine(validateEnabledOidc);
4486
4766
  const remoteApiAuthSchema = z.object({
4487
4767
  apiKey: z.object({ enabled: z.boolean().default(true) }).optional(),
4488
4768
  oidc: remoteApiOidcSchema.optional()
4489
4769
  });
4490
4770
  const remoteApiSchema = z.object({ auth: remoteApiAuthSchema.optional() });
4771
+ const managementClientBindingSchema = z.object({
4772
+ clientId: z.string().trim().min(1).max(128),
4773
+ subject: z.string().trim().min(1).max(512).optional(),
4774
+ userId: z.string().trim().regex(/^[a-f\d]{24}$/i, "must be a MongoDB ObjectId").transform((userId) => userId.toLowerCase()),
4775
+ tenantId: z.string().trim().min(1).max(128).regex(/^[a-zA-Z0-9][a-zA-Z0-9_.-]*$/, "must be a valid tenant id").refine((tenantId) => tenantId !== "__SYSTEM__", "system tenant is not allowed"),
4776
+ enabled: z.boolean().default(true)
4777
+ }).strict();
4778
+ const managementApiOidcSchema = oidcAccessTokenSchema.strict().superRefine(validateEnabledOidc);
4779
+ const managementApiAuthSchema = z.object({
4780
+ oidc: managementApiOidcSchema,
4781
+ clients: z.array(managementClientBindingSchema).max(100).default([])
4782
+ }).strict().superRefine((auth, ctx) => {
4783
+ if (auth.oidc.enabled === true && auth.clients.length === 0) ctx.addIssue({
4784
+ code: z.ZodIssueCode.custom,
4785
+ path: ["clients"],
4786
+ message: "at least one client binding is required when management auth is enabled"
4787
+ });
4788
+ const clientIds = /* @__PURE__ */ new Set();
4789
+ for (let index = 0; index < auth.clients.length; index++) {
4790
+ const client = auth.clients[index];
4791
+ if (clientIds.has(client.clientId)) ctx.addIssue({
4792
+ code: z.ZodIssueCode.custom,
4793
+ path: [
4794
+ "clients",
4795
+ index,
4796
+ "clientId"
4797
+ ],
4798
+ message: "client IDs must be unique"
4799
+ });
4800
+ clientIds.add(client.clientId);
4801
+ }
4802
+ });
4803
+ const managementApiSchema = z.object({ auth: managementApiAuthSchema.optional() }).strict();
4491
4804
  /**
4492
4805
  * Permission mode applied to a tool call. Mirrors `@librechat/agents`'s
4493
4806
  * `ToolPolicyMode` 1:1.
@@ -4626,15 +4939,25 @@ const codeEnvironmentPermissionFieldSchema = z.object({
4626
4939
  message: "Permission default must be included in allowed values"
4627
4940
  });
4628
4941
  });
4942
+ /** Existing attached commands used a fixed 30-second execution budget. */
4943
+ const CODE_ENVIRONMENT_COMMAND_TIMEOUT_DEFAULT_MS = 3e4;
4944
+ /** Protocol-level ceiling; deployments may only lower this value. */
4945
+ const CODE_ENVIRONMENT_COMMAND_TIMEOUT_HARD_MAX_MS = 5 * 6e4;
4629
4946
  /**
4630
4947
  * Typed user-tunable surface for one attached code environment. Omitted fields
4631
4948
  * remain fixed at LibreChat's safe baseline. Isolation, networking, mounts,
4632
4949
  * privileged execution, and secrets are deliberately not representable here.
4633
4950
  */
4634
- const codeEnvironmentUserConfigSchema = z.object({ permissions: z.object({
4635
- fileWrite: codeEnvironmentPermissionFieldSchema.optional(),
4636
- commandExecution: codeEnvironmentPermissionFieldSchema.optional()
4637
- }).strict().optional() }).strict();
4951
+ const codeEnvironmentUserConfigSchema = z.object({
4952
+ permissions: z.object({
4953
+ fileWrite: codeEnvironmentPermissionFieldSchema.optional(),
4954
+ commandExecution: codeEnvironmentPermissionFieldSchema.optional()
4955
+ }).strict().optional(),
4956
+ limits: z.object({
4957
+ /** Maximum timeout a Bash invocation may request. Omission preserves
4958
+ * the historical 30-second command budget. */
4959
+ maxCommandTimeoutMs: z.number().int().min(1).max(CODE_ENVIRONMENT_COMMAND_TIMEOUT_HARD_MAX_MS).optional() }).strict().optional()
4960
+ }).strict();
4638
4961
  const codeEnvironmentUserSettingsSchema = z.object({ permissions: z.object({
4639
4962
  fileWrite: codeEnvironmentPermissionDecisionSchema.optional(),
4640
4963
  commandExecution: codeEnvironmentPermissionDecisionSchema.optional()
@@ -4659,12 +4982,32 @@ const agentsEndpointSchema = baseEndpointSchema.omit({ baseURL: true }).merge(z.
4659
4982
  * the shipped default of 10 for orchestration-heavy deployments, bounded by
4660
4983
  * `MAX_SUBAGENTS_CEILING`. */
4661
4984
  maxSubagents: z.number().int().min(1).max(50).optional().default(10),
4985
+ /** Run-scoped file access for explicitly opted-in subagent delegations. */
4986
+ fileSharing: z.object({
4987
+ enabled: z.boolean().optional().default(false),
4988
+ allowSiblingSharing: z.boolean().optional().default(false),
4989
+ maxFiles: z.number().int().min(1).max(1e3).optional().default(100),
4990
+ /** Aggregate disk budget for private output versions retained during a run. */
4991
+ maxPrivateBytes: z.number().int().min(1).max(10737418240).optional().default(268435456),
4992
+ ttlMs: z.number().int().min(1).max(864e5).optional().default(36e5)
4993
+ }).optional(),
4994
+ /** Maximum concurrent Code API uploads per route and authenticated principal. */
4995
+ codeApiUploadConcurrency: z.number().int().min(1).max(100).optional().default(3),
4996
+ /** Maximum wall-clock time spent waiting on Code API rate limits per operation. */
4997
+ codeApiMaxRetryWaitMs: z.number().int().min(0).max(3e5).optional().default(2e4),
4662
4998
  allowedProviders: z.array(z.union([z.string(), eModelEndpointSchema])).optional(),
4663
4999
  capabilities: z.array(z.nativeEnum(AgentCapabilities)).optional().default(defaultAgentCapabilities),
4664
5000
  /** Controls which workspace-sharing scopes users may select for stateful code sessions.
4665
5001
  * Omit this block to preserve the legacy behavior of allowing every scope. */
4666
5002
  statefulCodeSessions: z.object({
4667
5003
  allowedEnvironments: z.array(z.enum(STATEFUL_CODE_ENVIRONMENTS)).min(1),
5004
+ /** Server-only personal worker enrollment policy. Effective principal
5005
+ * policy may tighten, but never raise, the deployment ceiling. */
5006
+ principalWorkers: z.object({
5007
+ enabled: z.boolean().optional(),
5008
+ /** Defaults to five. Zero disables enrollment; existing machines remain usable. */
5009
+ maxPerUser: z.number().int().min(0).max(Number.MAX_SAFE_INTEGER).optional()
5010
+ }).optional(),
4668
5011
  /** Operator-managed execution environments. Attached entries route to a
4669
5012
  * Code API deployment backed by an outbound librechat-code worker. */
4670
5013
  environments: z.array(z.object({
@@ -4771,8 +5114,14 @@ const agentsEndpointSchema = baseEndpointSchema.omit({ baseURL: true }).merge(z.
4771
5114
  eventDriven: z.object({ selfUrl: z.string().url().optional() }).optional(),
4772
5115
  /** Conversational background-task delivery policy. Automatic completion wakeups are
4773
5116
  * enabled unless an administrator explicitly restores poll-only behavior. */
4774
- backgroundTasks: z.object({ completionWakeups: z.boolean().optional().default(true) }).optional(),
5117
+ backgroundTasks: z.object({
5118
+ completionWakeups: z.boolean().optional().default(true),
5119
+ /** Cooperative cancellation for process-local ordinary tools. Off
5120
+ * by default so existing deployments opt into the new control. */
5121
+ ordinaryToolCancellation: z.boolean().optional().default(false)
5122
+ }).optional(),
4775
5123
  skills: z.object({ maxCatalogSkills: z.number().int().min(1).max(100).optional() }).optional(),
5124
+ managementApi: managementApiSchema.optional(),
4776
5125
  remoteApi: remoteApiSchema.optional(),
4777
5126
  /** Human-in-the-loop tool approval policy. Off by default. */
4778
5127
  toolApproval: toolApprovalPolicySchema,
@@ -5030,6 +5379,21 @@ const sttSchema = z.object({
5030
5379
  openai: sttOpenaiSchema.optional(),
5031
5380
  azureOpenAI: sttAzureOpenAISchema.optional()
5032
5381
  });
5382
+ /**
5383
+ * The speech providers a schema actually configures. `allowedAddresses` is transport
5384
+ * policy rather than a provider, and a provider key present but empty configures
5385
+ * nothing. The speech services accept a schema only when exactly one survives here, so
5386
+ * the upload router reads availability from the same list and never routes audio to a
5387
+ * transcription that cannot run.
5388
+ */
5389
+ function listConfiguredSpeechProviders(schema) {
5390
+ if (schema == null) return [];
5391
+ return Object.entries(schema).filter(([key, value]) => key !== "allowedAddresses" && value != null && typeof value === "object" && Object.keys(value).length > 0);
5392
+ }
5393
+ /** Whether a speech schema names exactly one usable provider. */
5394
+ function isSpeechProviderConfigured(schema) {
5395
+ return listConfiguredSpeechProviders(schema).length === 1;
5396
+ }
5033
5397
  const speechTab = z.object({
5034
5398
  conversationMode: z.boolean().optional(),
5035
5399
  advancedMode: z.boolean().optional(),
@@ -5114,7 +5478,14 @@ const termsOfServiceSchema = z.object({
5114
5478
  modalContent: z.string().or(z.array(z.string())).optional()
5115
5479
  });
5116
5480
  const localizedStringSchema = z.union([z.string(), z.record(z.string())]);
5481
+ const mcpRefreshDefaults = {
5482
+ toolsRefreshInterval: 300 * 1e3,
5483
+ statusRefreshInterval: 30 * 1e3
5484
+ };
5117
5485
  const mcpServersSchema = z.object({
5486
+ /** Foreground polling intervals in milliseconds; 0 disables polling. */
5487
+ toolsRefreshInterval: z.number().int().nonnegative().max(2147483647).optional(),
5488
+ statusRefreshInterval: z.number().int().nonnegative().max(2147483647).optional(),
5118
5489
  placeholder: z.string().optional(),
5119
5490
  use: z.boolean().optional(),
5120
5491
  create: z.boolean().optional(),
@@ -5126,6 +5497,68 @@ const mcpServersSchema = z.object({
5126
5497
  subLabel: localizedStringSchema.optional()
5127
5498
  }).optional()
5128
5499
  }).optional();
5500
+ /** Values the trace viewer uses for any `interface.traceViewer` field left unset. */
5501
+ const traceViewerDefaults = {
5502
+ enabled: false,
5503
+ showInputOutput: false,
5504
+ maxRecords: 1e3,
5505
+ maxContentLength: 5e4,
5506
+ requestsPerMinute: 30,
5507
+ requestTimeoutMs: 1e4
5508
+ };
5509
+ /** Inclusive bounds for the numeric `interface.traceViewer` fields. */
5510
+ const traceViewerLimits = {
5511
+ maxRecords: {
5512
+ min: 1,
5513
+ max: 1e4
5514
+ },
5515
+ maxContentLength: {
5516
+ min: 1,
5517
+ max: 1e6
5518
+ },
5519
+ requestsPerMinute: {
5520
+ min: 1,
5521
+ max: 1e3
5522
+ },
5523
+ requestTimeoutMs: {
5524
+ min: 1e3,
5525
+ max: 3e5
5526
+ }
5527
+ };
5528
+ const boundedIntegerSchema = (field) => z.number().int().min(traceViewerLimits[field].min).max(traceViewerLimits[field].max).optional();
5529
+ const traceViewerSchema = z.object({
5530
+ /** Shows the conversation trace control for traces this deployment exported. */
5531
+ enabled: z.boolean().optional(),
5532
+ /** Returns observation input, output and metadata in the record inspector. */
5533
+ showInputOutput: z.boolean().optional(),
5534
+ /** Observations read from the tracing backend per request. */
5535
+ maxRecords: boundedIntegerSchema("maxRecords"),
5536
+ /** Characters kept from each input, output and metadata value before truncation. */
5537
+ maxContentLength: boundedIntegerSchema("maxContentLength"),
5538
+ /** Trace reads one user may start per minute. */
5539
+ requestsPerMinute: boundedIntegerSchema("requestsPerMinute"),
5540
+ /** Budget for each round trip to the tracing backend, in milliseconds. */
5541
+ requestTimeoutMs: boundedIntegerSchema("requestTimeoutMs")
5542
+ });
5543
+ function boundedInteger(value, field) {
5544
+ const { min, max } = traceViewerLimits[field];
5545
+ return typeof value === "number" && Number.isSafeInteger(value) && value >= min ? Math.min(value, max) : traceViewerDefaults[field];
5546
+ }
5547
+ /**
5548
+ * Fills unset or invalid `interface.traceViewer` fields from
5549
+ * {@link traceViewerDefaults}. Admin config overrides reach runtime without
5550
+ * schema validation, so every consumer reads the section through this.
5551
+ */
5552
+ function resolveTraceViewerConfig(config) {
5553
+ return {
5554
+ enabled: config?.enabled === true,
5555
+ showInputOutput: config?.showInputOutput === true,
5556
+ maxRecords: boundedInteger(config?.maxRecords, "maxRecords"),
5557
+ maxContentLength: boundedInteger(config?.maxContentLength, "maxContentLength"),
5558
+ requestsPerMinute: boundedInteger(config?.requestsPerMinute, "requestsPerMinute"),
5559
+ requestTimeoutMs: boundedInteger(config?.requestTimeoutMs, "requestTimeoutMs")
5560
+ };
5561
+ }
5129
5562
  let RetentionMode = /* @__PURE__ */ function(RetentionMode) {
5130
5563
  RetentionMode["ALL"] = "all";
5131
5564
  RetentionMode["TEMPORARY"] = "temporary";
@@ -5159,6 +5592,7 @@ const interfaceSchema = z.object({
5159
5592
  })]).optional(),
5160
5593
  temporaryChat: z.boolean().optional(),
5161
5594
  temporaryChatRetention: z.number().min(1).max(8760).optional(),
5595
+ generalChatRetention: z.number().min(1).max(8760).optional(),
5162
5596
  autoSubmitFromUrl: z.boolean().optional(),
5163
5597
  retentionMode: z.nativeEnum(RetentionMode).default("temporary"),
5164
5598
  retainAgentFiles: z.boolean().optional(),
@@ -5179,6 +5613,7 @@ const interfaceSchema = z.object({
5179
5613
  marketplace: z.object({ use: z.boolean().optional() }).optional(),
5180
5614
  fileSearch: z.boolean().optional(),
5181
5615
  fileCitations: z.boolean().optional(),
5616
+ traceViewer: traceViewerSchema.optional(),
5182
5617
  /** Tool keys (and `'mcp'` or an MCP server name) pinned to the prompt bar by default */
5183
5618
  defaultPinnedTools: z.array(z.string()).optional(),
5184
5619
  buildInfo: z.boolean().optional(),
@@ -5207,7 +5642,10 @@ const interfaceSchema = z.object({
5207
5642
  maxPerUser: z.number().int().min(0).optional(),
5208
5643
  minIntervalMinutes: z.number().int().min(1).optional(),
5209
5644
  autoDisableAfterFailures: z.number().int().min(1).optional(),
5645
+ admissionConcurrency: z.number().int().min(1).max(100).optional(),
5210
5646
  fireConcurrency: z.number().int().min(1).optional(),
5647
+ mcpPreflightConcurrency: z.number().int().min(1).max(10).optional(),
5648
+ mcpPreflightTimeoutMs: z.number().int().min(1e3).max(6e5).optional(),
5211
5649
  /** Refuse schedules that are not filed under a chat project. Enforced on
5212
5650
  * create/update AND at every fire, so raising it later stops schedules
5213
5651
  * that predate the policy instead of grandfathering them. */
@@ -5600,6 +6038,57 @@ const messageFilterPiiSchema = z.object({
5600
6038
  });
5601
6039
  });
5602
6040
  const messageFilterSchema = z.object({ pii: messageFilterPiiSchema.optional() });
6041
+ /** User fields a deployment may select as the Langfuse trace `userId`. */
6042
+ const LANGFUSE_TRACE_USER_ID_FIELDS = [
6043
+ "id",
6044
+ "email",
6045
+ "username",
6046
+ "name",
6047
+ "openidId",
6048
+ "samlId",
6049
+ "ldapId",
6050
+ "googleId",
6051
+ "githubId",
6052
+ "discordId",
6053
+ "appleId",
6054
+ "facebookId"
6055
+ ];
6056
+ /** User fields a deployment may copy into Langfuse trace metadata. */
6057
+ const LANGFUSE_TRACE_USER_METADATA_FIELDS = [
6058
+ ...LANGFUSE_TRACE_USER_ID_FIELDS,
6059
+ "role",
6060
+ "provider"
6061
+ ];
6062
+ /** Request fields a deployment may copy into Langfuse trace metadata. */
6063
+ const LANGFUSE_TRACE_CONVERSATION_METADATA_FIELDS = [
6064
+ "conversationId",
6065
+ "endpoint",
6066
+ "endpointType",
6067
+ "provider",
6068
+ "model",
6069
+ "modelLabel",
6070
+ "spec"
6071
+ ];
6072
+ /**
6073
+ * What a deployment attaches to every Langfuse trace beyond the defaults.
6074
+ * Nothing here is exported unless explicitly listed, so the default trace
6075
+ * carries only the internal user id and no user or request metadata.
6076
+ */
6077
+ const langfuseTraceConfigSchema = z.object({
6078
+ /**
6079
+ * Which user field becomes the trace `userId`. Defaults to the internal user
6080
+ * id; a user with no value for the chosen field keeps the internal id.
6081
+ */
6082
+ userIdField: z.enum(LANGFUSE_TRACE_USER_ID_FIELDS).optional(),
6083
+ /** User fields exported as `librechat.user.<field>` trace metadata. */
6084
+ userMetadataFields: z.array(z.enum(LANGFUSE_TRACE_USER_METADATA_FIELDS)).optional(),
6085
+ /**
6086
+ * Request fields exported as trace metadata: `librechat.conversation.id`,
6087
+ * `librechat.endpoint`, `librechat.endpoint.type`, `librechat.provider`,
6088
+ * `librechat.model`, `librechat.model.label`, and `librechat.spec`.
6089
+ */
6090
+ conversationMetadataFields: z.array(z.enum(LANGFUSE_TRACE_CONVERSATION_METADATA_FIELDS)).optional()
6091
+ });
5603
6092
  const langfuseConfigSchema = z.object({
5604
6093
  enabled: z.boolean().optional(),
5605
6094
  publicKey: z.string().optional(),
@@ -5631,7 +6120,9 @@ const langfuseConfigSchema = z.object({
5631
6120
  * schema does not yet express — and note the fanout collector forwards only
5632
6121
  * `Authorization` upstream regardless.
5633
6122
  */
5634
- headers: z.record(z.string()).optional()
6123
+ headers: z.record(z.string()).optional(),
6124
+ /** Trace user identity and allowlisted user/request metadata. */
6125
+ trace: langfuseTraceConfigSchema.optional()
5635
6126
  });
5636
6127
  const configSchema = z.object({
5637
6128
  version: z.string(),
@@ -5649,7 +6140,35 @@ const configSchema = z.object({
5649
6140
  mcpServers: MCPServersSchema.optional(),
5650
6141
  mcpSettings: z.object({
5651
6142
  allowedDomains: z.array(z.string()).optional(),
5652
- allowedAddresses: allowedAddressesSchema
6143
+ allowedAddresses: allowedAddressesSchema,
6144
+ catalogRecovery: z.object({
6145
+ discoveryBackoffMs: z.array(z.number().int().positive().max(1440 * 6e4)).min(1).max(8).default([
6146
+ 5 * 6e4,
6147
+ 10 * 6e4,
6148
+ 20 * 6e4,
6149
+ 30 * 6e4
6150
+ ]),
6151
+ discoveryTimeoutMs: z.number().int().positive().max(5 * 6e4).default(3e3),
6152
+ /** How long past `discoveryTimeoutMs` a stalled discovery may hold its catalog slot and
6153
+ * coalesced requests. It is never cancelled, so OAuth tokens it redeemed still persist,
6154
+ * and no other discovery for the same server state starts until it settles. */
6155
+ discoverySettleGraceMs: z.number().int().nonnegative().max(5 * 6e4).default(1e4),
6156
+ reauthRetryMs: z.number().int().positive().max(1440 * 6e4).default(30 * 6e4),
6157
+ maxStateEntries: z.number().int().positive().max(1e6).default(1e4),
6158
+ /** Process-wide: how many discoveries released past `discoverySettleGraceMs` may still be
6159
+ * running before recovery starts no new discovery until one settles. The default matches
6160
+ * the three catalog slots a stalled dependency could hold before discoveries were released. */
6161
+ maxDetachedDiscoveries: z.number().int().positive().max(1e3).default(3),
6162
+ generationReadTimeoutMs: z.number().int().positive().max(1e4).default(500),
6163
+ authorizationFenceRetryMs: z.array(z.number().int().nonnegative().max(6e4)).min(1).max(8).default([
6164
+ 0,
6165
+ 50,
6166
+ 200
6167
+ ]),
6168
+ authorizationFenceTimeoutMs: z.number().int().positive().max(3e4).default(1e3),
6169
+ authorizationFenceRetryIntervalMs: z.number().int().positive().max(60 * 6e4).default(3e4),
6170
+ authorizationFenceRetryBatchSize: z.number().int().positive().max(1e4).default(100)
6171
+ }).default({})
5653
6172
  }).optional(),
5654
6173
  interface: interfaceSchema,
5655
6174
  turnstile: turnstileSchema.optional(),
@@ -5708,6 +6227,7 @@ let KnownEndpoints = /* @__PURE__ */ function(KnownEndpoints) {
5708
6227
  KnownEndpoints["groq"] = "groq";
5709
6228
  KnownEndpoints["helicone"] = "helicone";
5710
6229
  KnownEndpoints["huggingface"] = "huggingface";
6230
+ KnownEndpoints["lemonade"] = "lemonade";
5711
6231
  KnownEndpoints["mistral"] = "mistral";
5712
6232
  KnownEndpoints["mlx"] = "mlx";
5713
6233
  KnownEndpoints["ollama"] = "ollama";
@@ -5746,6 +6266,7 @@ const alternateName = {
5746
6266
  ["anthropic"]: "Anthropic",
5747
6267
  ["custom"]: "Custom",
5748
6268
  ["bedrock"]: "AWS Bedrock",
6269
+ ["lemonade"]: "AMD Lemonade",
5749
6270
  ["ollama"]: "Ollama",
5750
6271
  ["deepseek"]: "DeepSeek",
5751
6272
  ["moonshot"]: "Moonshot",
@@ -5753,6 +6274,14 @@ const alternateName = {
5753
6274
  ["vercel"]: "Vercel",
5754
6275
  ["helicone"]: "Helicone"
5755
6276
  };
6277
+ /**
6278
+ * Models the Assistants endpoints cannot run. GPT-6 Astra serves tool calls only
6279
+ * from the Responses API, and the Assistants surface does not route through
6280
+ * `getOpenAILLMConfig`, so listing it there would offer a configuration the
6281
+ * provider rejects. Kept out of `sharedOpenAIModels`, which both Assistants
6282
+ * catalogs consume.
6283
+ */
6284
+ const responsesOnlyOpenAIModels = ["gpt-6-astra"];
5756
6285
  const sharedOpenAIModels = [
5757
6286
  "gpt-5.6",
5758
6287
  "gpt-5.6-terra",
@@ -5848,7 +6377,7 @@ const bedrockModels = [
5848
6377
  const defaultModels = {
5849
6378
  ["azureAssistants"]: sharedOpenAIModels,
5850
6379
  ["assistants"]: [...sharedOpenAIModels, "chatgpt-4o-latest"],
5851
- ["agents"]: sharedOpenAIModels,
6380
+ ["agents"]: [...responsesOnlyOpenAIModels, ...sharedOpenAIModels],
5852
6381
  ["google"]: [
5853
6382
  "gemini-3.8-flash",
5854
6383
  "gemini-3.7-flash",
@@ -5866,6 +6395,7 @@ const defaultModels = {
5866
6395
  ],
5867
6396
  ["anthropic"]: sharedAnthropicModels,
5868
6397
  ["openAI"]: [
6398
+ ...responsesOnlyOpenAIModels,
5869
6399
  ...sharedOpenAIModels,
5870
6400
  "chatgpt-4o-latest",
5871
6401
  "gpt-4-vision-preview",
@@ -5878,12 +6408,19 @@ const fitlerAssistantModels = (str) => {
5878
6408
  return /gpt-4|gpt-3\\.5/i.test(str) && !/vision|instruct/i.test(str);
5879
6409
  };
5880
6410
  const openAIModels = defaultModels["openAI"];
6411
+ /**
6412
+ * The OpenAI catalog without the models only the first-party OpenAI endpoint
6413
+ * can run. Azure OpenAI shares this list, but Astra is neither routed to the
6414
+ * Responses API nor given its request constraints there, and listing it first
6415
+ * would let it become the default selection.
6416
+ */
6417
+ const nonResponsesOnlyOpenAIModels = openAIModels.filter((model) => !responsesOnlyOpenAIModels.includes(model));
5881
6418
  const initialModelsConfig = {
5882
6419
  initial: [],
5883
6420
  ["openAI"]: openAIModels,
5884
6421
  ["assistants"]: openAIModels.filter(fitlerAssistantModels),
5885
6422
  ["agents"]: openAIModels,
5886
- ["azureOpenAI"]: openAIModels,
6423
+ ["azureOpenAI"]: nonResponsesOnlyOpenAIModels,
5887
6424
  ["google"]: defaultModels["google"],
5888
6425
  ["anthropic"]: defaultModels["anthropic"],
5889
6426
  ["bedrock"]: defaultModels["bedrock"]
@@ -6181,6 +6718,10 @@ let ViolationTypes = /* @__PURE__ */ function(ViolationTypes) {
6181
6718
  * Registration violations.
6182
6719
  */
6183
6720
  ViolationTypes["REGISTRATIONS"] = "registrations";
6721
+ /**
6722
+ * Shared link retrieval limit violations.
6723
+ */
6724
+ ViolationTypes["SHARE_LIMIT"] = "share_limit";
6184
6725
  return ViolationTypes;
6185
6726
  }({});
6186
6727
  /**
@@ -6248,6 +6789,10 @@ let ErrorTypes = /* @__PURE__ */ function(ErrorTypes) {
6248
6789
  */
6249
6790
  ErrorTypes["STATEFUL_CODE_ENVIRONMENT_NOT_ALLOWED"] = "stateful_code_environment_not_allowed";
6250
6791
  /**
6792
+ * A conversation's selected attached workspace cannot be used as requested.
6793
+ */
6794
+ ErrorTypes["CODE_WORKSPACE_UNAVAILABLE"] = "code_workspace_unavailable";
6795
+ /**
6251
6796
  * Invalid Agent Provider (excluded by Admin)
6252
6797
  */
6253
6798
  ErrorTypes["INVALID_AGENT_PROVIDER"] = "invalid_agent_provider";
@@ -6291,6 +6836,26 @@ let ErrorTypes = /* @__PURE__ */ function(ErrorTypes) {
6291
6836
  * Provider throttled or refused the request for exceeding a rate/spend allowance
6292
6837
  */
6293
6838
  ErrorTypes["MODEL_RATE_LIMIT"] = "model_rate_limit";
6839
+ /**
6840
+ * An agent model provider failed and the run could not recover.
6841
+ */
6842
+ ErrorTypes["UPSTREAM_MODEL_ERROR"] = "upstream_model_error";
6843
+ /**
6844
+ * Context pruning removed every message; nothing fits the configured context window
6845
+ */
6846
+ ErrorTypes["EMPTY_MESSAGES"] = "empty_messages";
6847
+ /**
6848
+ * Formatted provider payload exceeded the context budget before invocation
6849
+ */
6850
+ ErrorTypes["FINAL_CONTEXT_OVERFLOW"] = "final_context_overflow";
6851
+ /**
6852
+ * A manual compaction the graph could not attempt; `reason` says why
6853
+ */
6854
+ ErrorTypes["COMPACTION_SKIPPED"] = "compaction_skipped";
6855
+ /**
6856
+ * A manual compaction whose summarizer produced nothing; history is untouched
6857
+ */
6858
+ ErrorTypes["COMPACTION_FAILED"] = "compaction_failed";
6294
6859
  return ErrorTypes;
6295
6860
  }({});
6296
6861
  /**
@@ -6422,7 +6987,7 @@ let TTSProviders = /* @__PURE__ */ function(TTSProviders) {
6422
6987
  /** Enum for app-wide constants */
6423
6988
  let Constants = /* @__PURE__ */ function(Constants) {
6424
6989
  /**
6425
- * Key for the app's version. The placeholder `v0.8.8-rc2` is
6990
+ * Key for the app's version. The placeholder `v0.8.8-rc3` is
6426
6991
  * swapped in by `@rollup/plugin-replace` during `npm run build:data-provider`
6427
6992
  * using the value of the root `package.json`'s `version` field. Consumers
6428
6993
  * always import this via the built dist bundle (see `main` field in
@@ -6430,9 +6995,9 @@ let Constants = /* @__PURE__ */ function(Constants) {
6430
6995
  * substituted value. Only tests that import the TypeScript source directly
6431
6996
  * would observe the raw placeholder.
6432
6997
  */
6433
- Constants["VERSION"] = "v0.8.8-rc2";
6998
+ Constants["VERSION"] = "v0.8.8-rc3";
6434
6999
  /** Key for the Custom Config's version (librechat.yaml). */
6435
- Constants["CONFIG_VERSION"] = "1.3.15";
7000
+ Constants["CONFIG_VERSION"] = "1.3.16";
6436
7001
  /** Standard value for the first message's `parentMessageId` value, to indicate no parent exists. */
6437
7002
  Constants["NO_PARENT"] = "00000000-0000-0000-0000-000000000000";
6438
7003
  /** Standard value to use whatever the submission prelim. `responseMessageId` is */
@@ -6909,6 +7474,8 @@ let PermissionBits = /* @__PURE__ */ function(PermissionBits) {
6909
7474
  PermissionBits[PermissionBits["DELETE"] = 4] = "DELETE";
6910
7475
  /** 1000 - Can share agent with others (future) */
6911
7476
  PermissionBits[PermissionBits["SHARE"] = 8] = "SHARE";
7477
+ /** 10000 - Can view Insights data for an agent when VIEW is also present */
7478
+ PermissionBits[PermissionBits["VIEW_INSIGHTS"] = 16] = "VIEW_INSIGHTS";
6912
7479
  return PermissionBits;
6913
7480
  }({});
6914
7481
  /**
@@ -6950,6 +7517,8 @@ const principalSchema = z.object({
6950
7517
  description: z.string().optional(),
6951
7518
  idOnTheSource: z.string().optional(),
6952
7519
  accessRoleId: z.nativeEnum(AccessRoleIds).optional(),
7520
+ viewInsights: z.boolean().optional(),
7521
+ isAdmin: z.boolean().optional(),
6953
7522
  memberCount: z.number().optional()
6954
7523
  });
6955
7524
  /**
@@ -7083,6 +7652,9 @@ let QueryKeys = /* @__PURE__ */ function(QueryKeys) {
7083
7652
  QueryKeys["searchEnabled"] = "searchEnabled";
7084
7653
  QueryKeys["langfuseConnection"] = "langfuseConnection";
7085
7654
  QueryKeys["langfuseSessionLink"] = "langfuseSessionLink";
7655
+ QueryKeys["conversationTraceAvailability"] = "conversationTraceAvailability";
7656
+ QueryKeys["conversationTraceRecords"] = "conversationTraceRecords";
7657
+ QueryKeys["conversationTraceRecord"] = "conversationTraceRecord";
7086
7658
  QueryKeys["user"] = "user";
7087
7659
  QueryKeys["name"] = "name";
7088
7660
  QueryKeys["models"] = "models";
@@ -7159,13 +7731,26 @@ let QueryKeys = /* @__PURE__ */ function(QueryKeys) {
7159
7731
  QueryKeys["subagentThread"] = "subagentThread";
7160
7732
  QueryKeys["codeEnvironments"] = "codeEnvironments";
7161
7733
  QueryKeys["agentQueuedTurns"] = "agentQueuedTurns";
7734
+ QueryKeys["pinnedOrder"] = "pinnedOrder";
7162
7735
  return QueryKeys;
7163
7736
  }({});
7164
- const DynamicQueryKeys = { agentFiles: (agentId) => ["agentFiles", agentId] };
7737
+ const DynamicQueryKeys = {
7738
+ agentFiles: (agentId) => ["agentFiles", agentId],
7739
+ codeEnvironmentStatus: (id) => [
7740
+ "codeEnvironments",
7741
+ id,
7742
+ "status"
7743
+ ]
7744
+ };
7165
7745
  let MutationKeys = /* @__PURE__ */ function(MutationKeys) {
7166
7746
  MutationKeys["subagentControl"] = "subagentControl";
7167
7747
  MutationKeys["enqueueAgentQueuedTurn"] = "enqueueAgentQueuedTurn";
7168
7748
  MutationKeys["cancelAgentQueuedTurn"] = "cancelAgentQueuedTurn";
7749
+ /** Whole-array favorites write, keyed so every hook instance's write is
7750
+ * visible to the others through the query client. */
7751
+ MutationKeys["updateFavorites"] = "updateFavorites";
7752
+ /** Pinned-section display order write, keyed for the same reason. */
7753
+ MutationKeys["updatePinnedOrder"] = "updatePinnedOrder";
7169
7754
  MutationKeys["updateLangfuseConnection"] = "updateLangfuseConnection";
7170
7755
  MutationKeys["testLangfuseConnection"] = "testLangfuseConnection";
7171
7756
  MutationKeys["createAgentApiKey"] = "createAgentApiKey";
@@ -7687,10 +8272,14 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
7687
8272
  getAvailableTools: () => getAvailableTools,
7688
8273
  getBanner: () => getBanner,
7689
8274
  getCategories: () => getCategories,
8275
+ getCodeEnvironmentStatus: () => getCodeEnvironmentStatus,
7690
8276
  getCodeEnvironments: () => getCodeEnvironments,
7691
8277
  getCodeOutputDownload: () => getCodeOutputDownload,
7692
8278
  getConversationById: () => getConversationById,
7693
8279
  getConversationTags: () => getConversationTags,
8280
+ getConversationTraceAvailability: () => getConversationTraceAvailability,
8281
+ getConversationTraceRecord: () => getConversationTraceRecord,
8282
+ getConversationTraceRecords: () => getConversationTraceRecords,
7694
8283
  getConversations: () => getConversations,
7695
8284
  getCustomConfigSpeech: () => getCustomConfigSpeech,
7696
8285
  getDomainServerBaseUrl: () => getDomainServerBaseUrl,
@@ -7722,6 +8311,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
7722
8311
  getMessagesByConvoId: () => getMessagesByConvoId,
7723
8312
  getModels: () => getModels,
7724
8313
  getParentSubagents: () => getParentSubagents,
8314
+ getPinnedOrder: () => getPinnedOrder,
7725
8315
  getPresets: () => getPresets,
7726
8316
  getProjectById: () => getProjectById,
7727
8317
  getPrompt: () => getPrompt,
@@ -7813,6 +8403,7 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
7813
8403
  updateMessage: () => updateMessage,
7814
8404
  updateMessageContent: () => updateMessageContent,
7815
8405
  updatePeoplePickerPermissions: () => updatePeoplePickerPermissions,
8406
+ updatePinnedOrder: () => updatePinnedOrder,
7816
8407
  updatePreset: () => updatePreset,
7817
8408
  updateProject: () => updateProject,
7818
8409
  updatePromptGroup: () => updatePromptGroup,
@@ -7844,13 +8435,23 @@ var data_service_exports = /* @__PURE__ */ __exportAll({
7844
8435
  });
7845
8436
  function getInsights(params = {}) {
7846
8437
  const query = new URLSearchParams();
7847
- for (const [key, value] of Object.entries(params)) if (value !== void 0 && value !== null && value !== "") query.set(key, String(value));
8438
+ for (const [key, value] of Object.entries(params)) if (Array.isArray(value)) value.forEach((item) => query.append(key, String(item)));
8439
+ else if (value !== void 0 && value !== null && value !== "") query.set(key, String(value));
7848
8440
  const suffix = query.toString() ? `?${query.toString()}` : "";
7849
8441
  return request_default.get(`${insights()}${suffix}`);
7850
8442
  }
7851
8443
  function getInsightsAccess() {
7852
8444
  return request_default.get(insightsAccess());
7853
8445
  }
8446
+ function getConversationTraceAvailability(conversationId) {
8447
+ return request_default.get(conversationTraceAvailability(conversationId));
8448
+ }
8449
+ function getConversationTraceRecords({ conversationId, cursor }, signal) {
8450
+ return request_default.get(conversationTraceRecords(conversationId, cursor), signal ? { signal } : void 0);
8451
+ }
8452
+ function getConversationTraceRecord({ conversationId, recordId, messageId, sourceId }, signal) {
8453
+ return request_default.get(conversationTraceRecord(conversationId, recordId, messageId, sourceId), signal ? { signal } : void 0);
8454
+ }
7854
8455
  function getLangfuseConnection() {
7855
8456
  return request_default.get(adminLangfuseConnection());
7856
8457
  }
@@ -7875,6 +8476,9 @@ function deleteUser(payload) {
7875
8476
  function getCodeEnvironments() {
7876
8477
  return request_default.get(codeEnvironments());
7877
8478
  }
8479
+ function getCodeEnvironmentStatus(id) {
8480
+ return request_default.get(codeEnvironmentStatus(id));
8481
+ }
7878
8482
  function pairCodeEnvironment(payload) {
7879
8483
  return request_default.post(codeEnvironmentPairings(), payload);
7880
8484
  }
@@ -7890,6 +8494,13 @@ function getFavorites() {
7890
8494
  function updateFavorites(favorites) {
7891
8495
  return request_default.post(`${apiBaseUrl()}/api/user/settings/favorites`, { favorites });
7892
8496
  }
8497
+ /** Combined Pinned-section display order: favorite and pinned-chat entry keys interleaved. */
8498
+ function getPinnedOrder() {
8499
+ return request_default.get(pinnedOrder());
8500
+ }
8501
+ function updatePinnedOrder(pinnedOrder$1) {
8502
+ return request_default.post(pinnedOrder(), { pinnedOrder: pinnedOrder$1 });
8503
+ }
7893
8504
  /** Tool favorites — starred marketplace items (builtins, tools, MCP servers, skills). */
7894
8505
  function getToolFavorites() {
7895
8506
  return request_default.get(toolFavorites());
@@ -8738,6 +9349,6 @@ const getActiveJobs = () => {
8738
9349
  return request_default.get(activeJobs());
8739
9350
  };
8740
9351
  //#endregion
8741
- export { permissionEntrySchema as $, googleSchema as $a, BedrockReasoningConfig as $i, specialVariables as $n, feedbackSchema as $o, defaultTextMimeTypes as $r, normalizeEndpointName as $s, azureGroupConfigsSchema as $t, updateResourcePermissions as A, defaultAgentFormValues as Aa, materializeModelSpecEndpoints as Ai, imageGenTools as An, tQueryParamsSchema as Ao, isProcessMCPServerField as Ar, feedbackFilterFieldSchema as As, SKILL_SYNC_DEFAULT_DISCOVERY_DEPTH as At, MutationKeys as B, eReasoningResponseKeySchema as Ba, getMaxSubagents as Bi, modularEndpoints as Bn, actionDelimiter as Bo, registerPage as Br, hasActivePiiPatterns as Bs, SettingsViews as Bt, resetPassword as C, authTypeSchema as Ca, setFileConfigRegexCompiler as Ci, fileSourceSchema as Cn, tConvoUpdateSchema as Co, MCP_USER_INPUT_FIELDS as Cr, SKILL_FILTER_FIELDS as Cs, MAX_SUBAGENT_DEPTH as Ct, updateFeedback as D, compactAgentsSchema as Da, videoMimeTypes as Di, getDefaultParamsEndpoint as Dn, tPluginAuthConfigSchema as Do, WebSocketOptionsSchema as Dr, agentInstructionFilterFieldSchema as Ds, RateLimitPrefix as Dt, searchPrincipals as E, compactAgentsBaseSchema as Ea, textMimeTypes as Ei, getConfigDefaults as En, tModelSpecPresetSchema as Eo, StreamableHTTPOptionsSchema as Er, actionMetadataFilterFieldSchema as Es, OCRStrategy as Et, request_default as F, eModelEndpointSchema as Fa, MAX_CHAT_PROJECT_DESCRIPTION_LENGTH as Fi, langfuseConfigSchema as Fn, FilePurpose as Fo, FileSources as Fr, filterPiiStarterPatternSchema as Fs, SafeSearchTypes as Ft, PrincipalType as G, endpointSettings as Ga, clampSettingRange as Gi, paramDefinitionSchema as Gn, isActionTool as Go, bedrockDocumentFormats as Gr, skillFilterFieldSchema as Gs, VisionModes as Gt, AccessRoleIds as H, eThinkingDisplaySchema as Ha, ComponentTypes as Hi, normalizeSearxngEngines as Hn, defaultOrderQuery as Ho, applicationMimeTypes as Hr, messageFilterFieldSchema as Hs, TTSProviders as Ht, getTokenHeader as I, eReasoningContextSchema as Ia, MAX_CHAT_PROJECT_NAME_LENGTH as Ii, memorySchema as In, MessageContentTypes as Io, checkOpenAIStorage as Ir, filtersConfigSchema as Is, ScraperProviders as It, accessRoleToPermBits as J, getGoogleThinkingBudgetMax as Ja, generateOpenAISchema as Ji, resolveEndpointType as Jn, resolveStatefulCodeEnvironment as Jo, codeInterpreterMimeTypesList as Jr, userSubmittedMessageFieldPathSchema as Js, alternateName as Jt, ResourceType as K, extendedModelEndpointSchema as Ka, generateDynamicSchema as Ki, providerEndpointMap as Kn, STATEFUL_CODE_ENVIRONMENTS as Ko, bedrockDocumentMimeTypes as Kr, toolArgumentFilterFieldSchema as Ks, agentsEndpointSchema as Kt, setAcceptLanguageHeader as L, eReasoningEffortSchema as La, MAX_GRAPH_SUBAGENT_MEMBERS as Li, messageFilterPiiSchema as Ln, RunStatus as Lo, apiBaseUrl as Lr, getPiiRegexProgramSize as Ls, SearchCategories as Lt, updateUserKey as M, documentSupportedProviders as Ma, resolveModelSpecEndpoint as Mi, interfaceSchema as Mn, AnnotationTypes as Mo, AuthorizationTypeEnum as Mr, filterPiiActionSchema as Ms, SKILL_SYNC_MAX_INTERVAL_MINUTES as Mt, updateUserPlugins as N, eAnthropicEffortSchema as Na, specsConfigSchema as Ni, isRemoteOidcUrlAllowed as Nn, AssistantStreamEvents as No, TokenExchangeMethodEnum as Nr, filterPiiCustomPatternSchema as Ns, SKILL_SYNC_MIN_INTERVAL_MINUTES as Nt, updateMessage as O, compactAssistantSchema as Oa, REFILL_INTERVAL_UNITS as Oi, getEndpointField as On, tPluginSchema as Oo, hasProcessMCPServerConfig as Or, conversationStarterFilterFieldSchema as Os, RerankerTypes as Ot, userKeyQuery as P, eImageDetailSchema as Pa, tModelSpecSchema as Pi, isSecureCodeEnvironmentControlURL as Pn, EToolResources as Po, FileContext as Pr, filterPiiRegexSchema as Ps, STTProviders as Pt, permBitsToAccessLevel as Q, googleGenConfigSchema as Qa, BedrockProviders as Qi, skillSyncGitHubSourceSchema as Qn, feedbackRatingSchema as Qo, defaultSTTMimeTypes as Qr, isSensitiveEnvVar as Qs, azureEndpointSchema as Qt, setTokenHeader as R, eReasoningModeSchema as Ra, MAX_SUBAGENTS as Ri, messageFilterSchema as Rn, StepStatus as Ro, buildLoginRedirectUrl as Rr, hasActiveFiltersConfig as Rs, SearchProviders as Rt, requestPasswordReset as S, assistantSchema as Sa, retrievalMimeTypesList as Si, excludedKeys as Sn, tConversationTagSchema as So, MCP_SERVER_TITLE_PATTERN as Sr, PROMPT_FILTER_FIELDS as Ss, LocalStorageKeys as St, revokeUserKey as T, coerceNumber as Ta, supportsFiles as Ti, fileStrategiesSchema as Tn, tMessageSchema as To, StdioOptionsSchema as Tr, TOOL_ARGUMENT_FILTER_FIELDS as Ts, MAX_SUBAGENT_RUN_CONFIGS as Tt, PermissionBits as U, eThinkingLevelSchema as Ua, OptionTypes as Ui, normalizeServerName as Un, hostImageIdSuffix as Uo, audioMimeTypes as Ur, modelParameterFilterFieldSchema as Us, Time as Ut, QueryKeys as V, eReasoningSummarySchema as Va, setMaxSubagents as Vi, normalizeMCPToolKey as Vn, actionDomainSeparator as Vo, sharedFileDownload as Vr, memoryFilterFieldSchema as Vs, SystemCategories as Vt, PrincipalModel as W, eVerbositySchema as Wa, SettingTypes as Wi, ocrSchema as Wn, hostImageNamePrefix as Wo, bedrockDocumentExtensions as Wr, promptFilterFieldSchema as Ws, ViolationTypes as Wt, getResourcePermissionsResponseSchema as X, getSettingsKeys as Xa, AnthropicEffort as Xi, setMessageFilterRegexValidator as Xn, FEEDBACK_REASON_KEYS as Xo, convertStringsToRegex as Xr, extractEnvVariable as Xs, assistantEndpointSchema as Xt, effectivePermissionsResponseSchema as Y, getModelKey as Ya, validateSettingDefinitions as Yi, retainRecentConfigSchema as Yn, FEEDBACK_RATINGS as Yo, codeTypeMapping as Yr, envVarRegex as Ys, anthropicEndpointSchema as Yt, hasPermissions as Z, googleBaseSchema as Za, AuthType as Zi, skillSyncConfigSchema as Zn, FEEDBACK_TAGS as Zo, defaultOCRMimeTypes as Zr, extractVariableName as Zs, azureBaseSchema as Zt, getResourcePermissions as _, agentsSchema as _a, mbToBytes as _i, defaultEndpoints as _n, removeNullishValues as _o, webSearchSchema as _r, MAX_PII_PATTERN_LABEL_LENGTH as _s, FetchTokenConfig as _t, data_service_exports as a, Providers as aa, fileConfigSchema as ai, bedrockModels as an, isAssistantsEndpoint as ao, summarizationTriggerSchema as ar, AGENT_INSTRUCTION_FILTER_FIELDS as as, AgentCapabilities as at, register as b, anthropicSchema as ba, mimeTypeAliases as bi, defaultSocialLogins as bn, tBannerSchema as bo, MCPServersSchema as br, MESSAGE_FILTER_FIELDS as bs, InfiniteCollections as bt, getAccessRoles as c, ReasoningMode as ca, getEndpointFileConfig as ci, checkpointerTypeSchema as cn, isMythosClassModel as co, toolApprovalModeSchema as cr, FEEDBACK_FILTER_FIELDS as cs, BASE_PRINCIPAL_CONFIG_SECTIONS as ct, getAvailablePlugins as d, ReasoningSummary as da, imageTypeMapping as di, codeEnvironmentUserConfigSchema as dn, isUUID as do, turnstileOptionsSchema as dr, HITL_MESSAGE_FILTER_FIELDS as ds, CohereConstants as dt, EModelEndpoint as ea, documentParserMimeTypes as ei, azureGroupSchema as en, googleSettings as eo, splitMCPToolKey as er, feedbackTagKeySchema as es, principalSchema as et, getConversationById as f, SkillsScope as fa, inferMimeType as fi, codeEnvironmentUserSettingsSchema as fn, openAIBaseSchema as fo, turnstileSchema as fr, MAX_PII_CUSTOM_PATTERNS_TOTAL as fs, Constants as ft, getModels as g, agentsBaseSchema as ga, isPermissiveMimeConfig as gi, defaultAssistantsVersion as gn, paramEndpoints as go, visionModels as gr, MAX_PII_PATTERN_ID_LENGTH as gs, ErrorTypes as gt, getMCPServerConnectionStatus as h, Verbosity as ha, isBedrockDocumentType as hi, defaultAgentCapabilities as hn, openRouterSchema as ho, vertexModelConfigSchema as hr, MAX_PII_PATTERNS_PER_SOURCE as hs, EndpointURLs as ht, createPreset as i, MemoryScope as ia, fileConfig as ii, bedrockGuardrailConfigSchema as in, isAgentsEndpoint as io, summarizationConfigSchema as ir, ACTION_METADATA_FILTER_FIELDS as is, AUTH_USER_DOC_BY_ID_PREFIX as it, updateTokenCount as j, defaultAssistantFormValues as ja, modelSpecSubagentsSchema as ji, initialModelsConfig as jn, tSharedLinkSchema as jo, AuthTypeEnum as jr, fileFilterFieldSchema as js, SKILL_SYNC_MAX_DISCOVERY_DEPTH as jt, updateMessageContent as k, compactGoogleSchema as ka, getRefillEligibilityDate as ki, getSchemaDefaults as kn, tPresetSchema as ko, isProcessMCPServerConfig as kr, conversationTitleFilterFieldSchema as ks, RetentionMode as kt, getAgentApiKeys as l, ReasoningParameterFormat as la, imageExtRegex as li, cloudfrontConfigSchema as ln, isOpenAILikeProvider as lo, toolApprovalPolicySchema as lr, FILE_FILTER_FIELDS as ls, CacheKeys as lt, getEffectivePermissions as m, ThinkingLevel as ma, isAnthropicTextDocumentType as mi, contextPruningSchema as mn, openAISettings as mo, vertexAISchema as mr, MAX_PII_CUSTOM_REGEX_INSTRUCTIONS as ms, EImageOutputType as mt, clearAllConversations as n, ImageVisionTool as na, excelFileTypes as ni, baseEndpointSchema as nn, imageDetailValue as no, stripServerNamePrefix as nr, getTagsForRating as ns, updateResourcePermissionsRequestSchema as nt, deleteAgentApiKey as o, ReasoningContext as oa, fullMimeTypesList as oi, buildServerNameAliases as on, isDocumentSupportedProvider as oo, supportsBalanceCheck as or, CONVERSATION_STARTER_FILTER_FIELDS as os, AuthKeys as ot, getCustomConfigSpeech as p, ThinkingDisplay as pa, isAnthropicDocumentType as pi, configSchema as pn, openAISchema as po, validateVisionModel as pr, MAX_PII_CUSTOM_REGEX_CHARACTERS as ps, DEFAULT_MEMORY_MAX_INPUT_TOKENS as pt, accessRoleSchema as q, getGoogleThinkingBudgetBounds as qa, generateGoogleSchema as qi, rateLimitSchema as qn, resolveAllowedStatefulCodeEnvironments as qo, codeInterpreterMimeTypes as qr, unattributedAssistantContentSchema as qs, allowedAddressesSchema as qt, createAgentApiKey as r, MYTHOS_CLASS_FAMILIES as ra, excelMimeTypes as ri, bedrockEndpointSchema as rn, inputTokensIncludesCache as ro, stripServerNamePrefixes as rr, toMinimalFeedback as rs, updateResourcePermissionsResponseSchema as rt, deletePreset as s, ReasoningEffort as sa, getConfiguredMimeAccept as si, checkpointerSchema as sn, isImageVisionTool as so, toolApprovalHookConfigSchema as sr, CONVERSATION_TITLE_FILTER_FIELDS as ss, BASE_ONLY_CONFIG_SECTIONS as st, cancelMCPOAuth as t, ImageDetail as ta, endpointFileConfigSchema as ti, balanceSchema as tn, imageDetailNumeric as to, splitToolCallName as tr, getTagByKey as ts, resourcePermissionsResponseSchema as tt, getAllEffectivePermissions as u, ReasoningResponseKey as ua, imageMimeTypes as ui, codeEnvironmentPermissionDecisionSchema as un, isParamEndpoint as uo, transactionsSchema as ur, FILTER_PII_STARTER_PATTERNS as us, Capabilities as ut, getSharedLink as v, agentsSettings as va, megabyte as vi, defaultModels as vn, resolveAgentSkillsScope as vo, MCPOptionsSchema as vr, MAX_PII_PATTERN_LENGTH as vs, ForkOptions as vt, revokeAllUserKeys as w, cacheSubsetProviders as wa, supportedMimeTypes as wi, fileStorageSchema as wn, tExampleSchema as wo, SSEOptionsSchema as wr, STORED_MESSAGE_FILTER_FIELDS as ws, MAX_SUBAGENT_GRAPH_NODES as wt, reinitializeMCPServer as x, anthropicSettings as xa, retrievalMimeTypes as xi, endpointSchema as xn, tConversationSchema as xo, MCP_SERVER_TITLE_ERROR as xr, MODEL_PARAMETER_FILTER_FIELDS as xs, KnownEndpoints as xt, getSharedMessages as y, anthropicBaseSchema as ya, mergeFileConfig as yi, defaultRetrievalModels as yn, subagentThreadLineageSchema as yo, MCPServerUserInputSchema as yr, MEMORY_FILTER_FIELDS as ys, ImageDetailCost as yt, DynamicQueryKeys as z, eReasoningParameterFormatSchema as za, MAX_SUBAGENTS_CEILING as zi, modelConfigSchema as zn, Tools as zo, loginPage as zr, hasActivePiiFields as zs, SettingsTabValues as zt };
9352
+ export { permissionEntrySchema as $, eAnthropicEffortSchema as $a, specsConfigSchema as $i, ocrSchema as $n, tQueryParamsSchema as $o, registerPage as $r, MAX_PII_CUSTOM_REGEX_INSTRUCTIONS as $s, alternateName as $t, updateResourcePermissions as A, ReasoningResponseKey as Aa, skillFilterFieldSchema as Ac, isAnthropicTextDocumentType as Ai, fileStrategiesSchema as An, isMythosClassModel as Ao, MAX_MCP_ICON_PATH_LENGTH as Ar, getTagByKey as As, MAX_SUBAGENT_RUN_CONFIGS as At, MutationKeys as B, anthropicSchema as Ba, resolveUseResponsesApi as Bi, isSpeechProviderConfigured as Bn, removeNullishValues as Bo, WebSocketOptionsSchema as Br, isCodeWorkspaceSelection as Bs, SafeSearchTypes as Bt, resetPassword as C, MYTHOS_CLASS_FAMILIES as Ca, hasActiveFiltersConfig as Cc, getDocumentFileExtension as Ci, defaultModels as Cn, inputTokensIncludesCache as Co, turnstileOptionsSchema as Cr, resolveCodePermissionDecision as Cs, KnownEndpoints as Ct, updateFeedback as D, ReasoningEffort as Da, messageFilterFieldSchema as Dc, imageTypeMapping as Di, excludedKeys as Dn, isImageVisionTool as Do, vertexModelConfigSchema as Dr, feedbackRatingSchema as Ds, LocalStorageKeys as Dt, searchPrincipals as E, ReasoningContext as Ea, memoryFilterFieldSchema as Ec, imageMimeTypes as Ei, endpointSchema as En, isDocumentSupportedProvider as Eo, vertexAISchema as Er, FEEDBACK_TAGS as Es, LANGFUSE_TRACE_USER_METADATA_FIELDS as Et, request_default as F, Verbosity as Fa, extractEnvVariable as Fc, mbToBytes as Fi, imageGenTools as Fn, openAIBaseSchema as Fo, MCP_SERVER_TITLE_PATTERN as Fr, CODE_WORKSPACE_ID_PATTERN as Fs, SKILL_SYNC_DEFAULT_DISCOVERY_DEPTH as Ft, PrincipalType as G, coerceNumber as Ga, supportsFiles as Gi, memorySchema as Gn, tConversationTagSchema as Go, AuthorizationTypeEnum as Gr, CONVERSATION_STARTER_FILTER_FIELDS as Gs, SettingsViews as Gt, AccessRoleIds as H, assistantSchema as Ha, retrievalMimeTypesList as Hi, langfuseTraceConfigSchema as Hn, subagentThreadLineageSchema as Ho, isProcessMCPServerConfig as Hr, isCodeWorkspaceSelections as Hs, SearchCategories as Ht, getTokenHeader as I, agentsBaseSchema as Ia, extractVariableName as Ic, megabyte as Ii, initialModelsConfig as In, openAISchema as Io, MCP_USER_INPUT_FIELDS as Ir, CODE_WORKSPACE_MAX_COUNT as Is, SKILL_SYNC_MAX_DISCOVERY_DEPTH as It, accessRoleToPermBits as J, compactAssistantSchema as Ja, REFILL_INTERVAL_UNITS as Ji, modelConfigSchema as Jn, tMessageSchema as Jo, FileSources as Jr, FILE_FILTER_FIELDS as Js, Time as Jt, ResourceType as K, compactAgentsBaseSchema as Ka, textMimeTypes as Ki, messageFilterPiiSchema as Kn, tConvoUpdateSchema as Ko, TokenExchangeMethodEnum as Kr, CONVERSATION_TITLE_FILTER_FIELDS as Ks, SystemCategories as Kt, setAcceptLanguageHeader as L, agentsSchema as La, isSensitiveEnvVar as Lc, mergeFileConfig as Li, interfaceSchema as Ln, openAISettings as Lo, SSEOptionsSchema as Lr, CODE_WORKSPACE_OPERATIONS as Ls, SKILL_SYNC_MAX_INTERVAL_MINUTES as Lt, updateUserKey as M, SkillsScope as Ma, unattributedAssistantContentSchema as Mc, isMessageFileUpload as Mi, getDefaultParamsEndpoint as Mn, isParamEndpoint as Mo, MCPServerUserInputSchema as Mr, toMinimalFeedback as Ms, RateLimitPrefix as Mt, updateUserPlugins as N, ThinkingDisplay as Na, userSubmittedMessageFieldPathSchema as Nc, isPermissiveMimeConfig as Ni, getEndpointField as Nn, isUUID as No, MCPServersSchema as Nr, CODE_ENVIRONMENT_DECISION_VERSION as Ns, RerankerTypes as Nt, updateMessage as O, ReasoningMode as Oa, modelParameterFilterFieldSchema as Oc, inferMimeType as Oi, fileSourceSchema as On, isKnownProviderIdentifier as Oo, visionModels as Or, feedbackSchema as Os, MAX_SUBAGENT_DEPTH as Ot, userKeyQuery as P, ThinkingLevel as Pa, envVarRegex as Pc, isResponsesApiUpload as Pi, getSchemaDefaults as Pn, mediaSupportedProviders as Po, MCP_SERVER_TITLE_ERROR as Pr, CODE_ENVIRONMENT_MODES as Ps, RetentionMode as Pt, permBitsToAccessLevel as Q, documentSupportedProviders as Qa, resolveModelSpecEndpoint as Qi, normalizeServerName as Qn, tPresetSchema as Qo, loginPage as Qr, MAX_PII_CUSTOM_REGEX_CHARACTERS as Qs, allowedAddressesSchema as Qt, setTokenHeader as R, agentsSettings as Ra, normalizeEndpointName as Rc, mimeTypeAliases as Ri, isRemoteOidcUrlAllowed as Rn, openRouterSchema as Ro, StdioOptionsSchema as Rr, CODE_WORKSPACE_SELECTION_ERROR_REASONS as Rs, SKILL_SYNC_MIN_INTERVAL_MINUTES as Rt, requestPasswordReset as S, ImageVisionTool as Sa, getPiiRegexProgramSize as Sc, getConfiguredMimeAccept as Si, defaultEndpoints as Sn, imageDetailValue as So, transactionsSchema as Sr, resolveCodeApprovalMode as Ss, InfiniteCollections as St, revokeUserKey as T, Providers as Ta, hasActivePiiPatterns as Tc, imageExtRegex as Ti, defaultSocialLogins as Tn, isAssistantsEndpoint as To, validateVisionModel as Tr, FEEDBACK_REASON_KEYS as Ts, LANGFUSE_TRACE_USER_ID_FIELDS as Tt, PermissionBits as U, authTypeSchema as Ua, setFileConfigRegexCompiler as Ui, listConfiguredSpeechProviders as Un, tBannerSchema as Uo, isProcessMCPServerField as Ur, ACTION_METADATA_FILTER_FIELDS as Us, SearchProviders as Ut, QueryKeys as V, anthropicSettings as Va, retrievalMimeTypes as Vi, langfuseConfigSchema as Vn, resolveAgentSkillsScope as Vo, hasProcessMCPServerConfig as Vr, isCodeWorkspaceSelectionErrorReason as Vs, ScraperProviders as Vt, PrincipalModel as W, cacheSubsetProviders as Wa, supportedMimeTypes as Wi, mcpRefreshDefaults as Wn, tConversationSchema as Wo, AuthTypeEnum as Wr, AGENT_INSTRUCTION_FILTER_FIELDS as Ws, SettingsTabValues as Wt, getResourcePermissionsResponseSchema as X, defaultAgentFormValues as Xa, materializeModelSpecEndpoints as Xi, normalizeMCPToolKey as Xn, tPluginAuthConfigSchema as Xo, apiBaseUrl as Xr, HITL_MESSAGE_FILTER_FIELDS as Xs, VisionModes as Xt, effectivePermissionsResponseSchema as Y, compactGoogleSchema as Ya, getRefillEligibilityDate as Yi, modularEndpoints as Yn, tModelSpecPresetSchema as Yo, checkOpenAIStorage as Yr, FILTER_PII_STARTER_PATTERNS as Ys, ViolationTypes as Yt, hasPermissions as Z, defaultAssistantFormValues as Za, modelSpecSubagentsSchema as Zi, normalizeSearxngEngines as Zn, tPluginSchema as Zo, buildLoginRedirectUrl as Zr, MAX_PII_CUSTOM_PATTERNS_TOTAL as Zs, agentsEndpointSchema as Zt, getResourcePermissions as _, AuthType as _a, filterPiiActionSchema as _c, excelFileTypes as _i, codeEnvironmentUserSettingsSchema as _n, googleBaseSchema as _o, toolApprovalHookConfigSchema as _r, resolveAllowedStatefulCodeEnvironments as _s, EndpointURLs as _t, data_service_exports as a, MAX_SUBAGENTS_CEILING as aa, MESSAGE_FILTER_FIELDS as ac, bedrockDocumentFormats as ai, azureGroupSchema as an, eReasoningParameterFormatSchema as ao, retainRecentConfigSchema as ar, MessageContentTypes as as, AgentCapabilities as at, register as b, EModelEndpoint as ba, filterPiiStarterPatternSchema as bc, fileConfigSchema as bi, defaultAgentCapabilities as bn, googleSettings as bo, traceViewerDefaults as br, CodeApprovalModeError as bs, ForkOptions as bt, getAccessRoles as c, ComponentTypes as ca, SKILL_FILTER_FIELDS as cc, codeInterpreterMimeTypesList as ci, bedrockEndpointSchema as cn, eThinkingDisplaySchema as co, skillSyncGitHubSourceSchema as cr, Tools as cs, BASE_PRINCIPAL_CONFIG_SECTIONS as ct, getAvailablePlugins as d, clampSettingRange as da, actionMetadataFilterFieldSchema as dc, defaultLLMDeliveryPathSchema as di, buildServerNameAliases as dn, endpointSettings as do, splitToolCallName as dr, agentGitIdentitySchema as ds, CacheKeys as dt, tModelSpecSchema as ea, MAX_PII_PATTERNS_PER_SOURCE as ec, sharedFileDownload as ei, anthropicEndpointSchema as en, eImageDetailSchema as eo, paramDefinitionSchema as er, tSharedLinkSchema as es, principalSchema as et, getConversationById as f, generateDynamicSchema as fa, agentInstructionFilterFieldSchema as fc, defaultOCRMimeTypes as fi, checkpointerSchema as fn, extendedModelEndpointSchema as fo, stripServerNamePrefix as fr, defaultOrderQuery as fs, Capabilities as ft, getModels as g, AnthropicEffort as ga, fileFilterFieldSchema as gc, endpointFileConfigSchema as gi, codeEnvironmentUserConfigSchema as gn, getSettingsKeys as go, supportsBalanceCheck as gr, STATEFUL_CODE_ENVIRONMENTS as gs, EImageOutputType as gt, getMCPServerConnectionStatus as h, validateSettingDefinitions as ha, feedbackFilterFieldSchema as hc, documentParserMimeTypes as hi, codeEnvironmentPermissionDecisionSchema as hn, getModelKey as ho, summarizationTriggerSchema as hr, isActionTool as hs, DEFAULT_MEMORY_MAX_INPUT_TOKENS as ht, createPreset as i, MAX_SUBAGENTS as ia, MEMORY_FILTER_FIELDS as ic, bedrockDocumentExtensions as ii, azureGroupConfigsSchema as in, eReasoningModeSchema as io, resolveTraceViewerConfig as ir, FilePurpose as is, AUTH_USER_DOC_BY_ID_PREFIX as it, updateTokenCount as j, ReasoningSummary as ja, toolArgumentFilterFieldSchema as jc, isBedrockDocumentType as ji, getConfigDefaults as jn, isOpenAILikeProvider as jo, MCPOptionsSchema as jr, getTagsForRating as js, OCRStrategy as jt, updateMessageContent as k, ReasoningParameterFormat as ka, promptFilterFieldSchema as kc, isAnthropicDocumentType as ki, fileStorageSchema as kn, isMediaSupportedProvider as ko, webSearchSchema as kr, feedbackTagKeySchema as ks, MAX_SUBAGENT_GRAPH_NODES as kt, getAgentApiKeys as l, OptionTypes as la, STORED_MESSAGE_FILTER_FIELDS as lc, codeTypeMapping as li, bedrockGuardrailConfigSchema as ln, eThinkingLevelSchema as lo, specialVariables as lr, actionDelimiter as ls, CODE_ENVIRONMENT_COMMAND_TIMEOUT_DEFAULT_MS as lt, getEffectivePermissions as m, generateOpenAISchema as ma, conversationTitleFilterFieldSchema as mc, defaultTextMimeTypes as mi, cloudfrontConfigSchema as mn, getGoogleThinkingBudgetMax as mo, summarizationConfigSchema as mr, hostImageNamePrefix as ms, Constants as mt, clearAllConversations as n, MAX_CHAT_PROJECT_NAME_LENGTH as na, MAX_PII_PATTERN_LABEL_LENGTH as nc, applicationMimeTypes as ni, azureBaseSchema as nn, eReasoningContextSchema as no, rateLimitSchema as nr, AssistantStreamEvents as ns, updateResourcePermissionsRequestSchema as nt, deleteAgentApiKey as o, getMaxSubagents as oa, MODEL_PARAMETER_FILTER_FIELDS as oc, bedrockDocumentMimeTypes as oi, balanceSchema as on, eReasoningResponseKeySchema as oo, setMessageFilterRegexValidator as or, RunStatus as os, AuthKeys as ot, getCustomConfigSpeech as p, generateGoogleSchema as pa, conversationStarterFilterFieldSchema as pc, defaultSTTMimeTypes as pi, checkpointerTypeSchema as pn, getGoogleThinkingBudgetBounds as po, stripServerNamePrefixes as pr, hostImageIdSuffix as ps, CohereConstants as pt, accessRoleSchema as q, compactAgentsSchema as qa, videoMimeTypes as qi, messageFilterSchema as qn, tExampleSchema as qo, FileContext as qr, FEEDBACK_FILTER_FIELDS as qs, TTSProviders as qt, createAgentApiKey as r, MAX_GRAPH_SUBAGENT_MEMBERS as ra, MAX_PII_PATTERN_LENGTH as rc, audioMimeTypes as ri, azureEndpointSchema as rn, eReasoningEffortSchema as ro, resolveEndpointType as rr, EToolResources as rs, updateResourcePermissionsResponseSchema as rt, deletePreset as s, setMaxSubagents as sa, PROMPT_FILTER_FIELDS as sc, codeInterpreterMimeTypes as si, baseEndpointSchema as sn, eReasoningSummarySchema as so, skillSyncConfigSchema as sr, StepStatus as ss, BASE_ONLY_CONFIG_SECTIONS as st, cancelMCPOAuth as t, MAX_CHAT_PROJECT_DESCRIPTION_LENGTH as ta, MAX_PII_PATTERN_ID_LENGTH as tc, DefaultLLMDeliveryPath as ti, assistantEndpointSchema as tn, eModelEndpointSchema as to, providerEndpointMap as tr, AnnotationTypes as ts, resourcePermissionsResponseSchema as tt, getAllEffectivePermissions as u, SettingTypes as ua, TOOL_ARGUMENT_FILTER_FIELDS as uc, convertStringsToRegex as ui, bedrockModels as un, eVerbositySchema as uo, splitMCPToolKey as ur, actionDomainSeparator as us, CODE_ENVIRONMENT_COMMAND_TIMEOUT_HARD_MAX_MS as ut, getSharedLink as v, BedrockProviders as va, filterPiiCustomPatternSchema as vc, excelMimeTypes as vi, configSchema as vn, googleGenConfigSchema as vo, toolApprovalModeSchema as vr, resolveStatefulCodeEnvironment as vs, ErrorTypes as vt, revokeAllUserKeys as w, MemoryScope as wa, hasActivePiiFields as wc, getEndpointFileConfig as wi, defaultRetrievalModels as wn, isAgentsEndpoint as wo, turnstileSchema as wr, FEEDBACK_RATINGS as ws, LANGFUSE_TRACE_CONVERSATION_METADATA_FIELDS as wt, reinitializeMCPServer as x, ImageDetail as xa, filtersConfigSchema as xc, fullMimeTypesList as xi, defaultAssistantsVersion as xn, imageDetailNumeric as xo, traceViewerLimits as xr, getAllowedCodeApprovalModes as xs, ImageDetailCost as xt, getSharedMessages as y, BedrockReasoningConfig as ya, filterPiiRegexSchema as yc, fileConfig as yi, contextPruningSchema as yn, googleSchema as yo, toolApprovalPolicySchema as yr, CODE_APPROVAL_MODES as ys, FetchTokenConfig as yt, DynamicQueryKeys as z, anthropicBaseSchema as za, resolveSandboxFilename as zi, isSecureCodeEnvironmentControlURL as zn, paramEndpoints as zo, StreamableHTTPOptionsSchema as zr, isCodeEnvironmentMode as zs, STTProviders as zt };
8742
9353
 
8743
- //# sourceMappingURL=data-service-CaB7saTP.mjs.map
9354
+ //# sourceMappingURL=data-service-Bx6IFaSa.mjs.map